GithubHelp home page GithubHelp logo

orbitdb / orbit-db-cli Goto Github PK

View Code? Open in Web Editor NEW
60.0 10.0 15.0 1.53 MB

CLI for orbit-db

License: MIT License

Makefile 0.21% JavaScript 99.79%
p2p orbit-db orbitdb cli ipfs peer-to-peer distributed database

orbit-db-cli's Introduction

orbitdb - CLI for orbit-db

Gitter Matrix CircleCI npm version node

CLI for orbit-db

A CLI tool to manage orbit-db databases.

Table of Contents

Quick Start

$ orbitdb create hello feed
/orbitdb/QmfSUsdr34iGio68eMezDzZLCKZTnbsxNJgiNipimZtpi1/hello

$ orbitdb add /orbitdb/QmfSUsdr34iGio68eMezDzZLCKZTnbsxNJgiNipimZtpi1/hello "world"
Added QmSwYZheHVa3eWf83XwnWNJtjGG7EWjiWTaTKLeFozVRnz

$ orbitdb get /orbitdb/QmfSUsdr34iGio68eMezDzZLCKZTnbsxNJgiNipimZtpi1/hello
"world"

$ orbitdb del /orbitdb/QmfSUsdr34iGio68eMezDzZLCKZTnbsxNJgiNipimZtpi1/hello QmSwYZheHVa3eWf83XwnWNJtjGG7EWjiWTaTKLeFozVRnz
Deleted QmSwYZheHVa3eWf83XwnWNJtjGG7EWjiWTaTKLeFozVRnz

$ orbitdb get /orbitdb/QmfSUsdr34iGio68eMezDzZLCKZTnbsxNJgiNipimZtpi1/hello
Database '/orbitdb/QmfSUsdr34iGio68eMezDzZLCKZTnbsxNJgiNipimZtpi1/hello' is empty!

$ orbitdb info /orbitdb/QmfSUsdr34iGio68eMezDzZLCKZTnbsxNJgiNipimZtpi1/hello
/orbitdb/QmfSUsdr34iGio68eMezDzZLCKZTnbsxNJgiNipimZtpi1/hello
> Type: feed
> Owner: QmfSUsdr34iGio68eMezDzZLCKZTnbsxNJgiNipimZtpi1
> Data file: ./orbitdb/QmfSUsdr34iGio68eMezDzZLCKZTnbsxNJgiNipimZtpi1/hello.orbitdb
> Entries: 0
> Oplog length: 2 / 2
> Write-access:
> 04986b1db63cdbe0798699da5054477cfda4ec32dc62563b0c77a94ec8ed8e1946c1cfad0e8c2a681ded54f66dc1614cb0dcfac5b04f1fab3d09ca368f0ff0097f

Requirements

Install

From npm:

npm install -g orbit-db-cli

From Git:

git clone https://github.com/orbitdb/orbit-db-cli.git
cd orbit-db-cli/
npm install

Run

orbitdb

When installed from Git, the CLI can be run with node ./src/bin

For complete guide on usage, see the CLI help:

orbitdb help

Output:

                 _     _ _         _ _
                | |   (_) |       | | |
       ___  _ __| |__  _| |_    __| | |__
      / _ \| '__| '_ \| | __|  / _` | '_ \
     | (_) | |  | |_) | | |_  | (_| | |_) |
      \___/|_|  |_.__/|_|\__|  \__,_|_.__/

             Peer-to-Peer Database
       https://github.com/orbitdb/orbit-db


Usage: orbitdb <command> <database>

Commands:
  add <database> [<data>]            Add an entry to an eventlog or feed
                                     database. Can be only used on:
                                     eventlog|feed
  create <database> <type>           Create a new database. Type can be one of:
                                     eventlog|feed|docstore|keyvalue|counter
                                                                  [aliases: new]
  del <database> <key>               Delete an entry from a database. Only valid
                                     for data types of: docstore|keyvalue|feed
                                                       [aliases: delete, remove]
  demo <name>                        Runs a sequence of commands as an example
                                                                 [aliases: tour]
  drop <database> yes                Remove a database locally. This doesn't
                                     remove data on other nodes that have the
                                     removed database replicated.
                                                              [aliases: destroy]
  get <database> [<search>]          Query the database.
                                                        [aliases: query, search]
  id                                 Show information about current orbit-db id
  import <file> <database> <schema>  Import a CSV file to a document database
                                                                  [aliases: csv]
  inc <database> [<increment>]       Increase the value of a counter database.
                                     Default increment is 1. [aliases: increase]
  info <database>                    Show information about a database
                                                               [aliases: status]
  put <database> <document>          Add a document to a document database
  replicate <database>               Replicate a database with peers.
  set <database> <key> <value>       Set a value of a key in KeyValue database
  version                            Show information about current orbit-db

Options:
  -h, --help  Show help                                                [boolean]

Data Directories and Paths

By default, orbit-db creates a data directory ./orbitdb under which metadata of databases is stored along with the actual data blocks saved in IPFS. The metadata can be found under ./orbitdb/QmFoo/database.orbitdb for each database. The data blocks saved in IPFS are in ./orbitdb/ipfs.

To use another orbit-db data directory (as opposed to the default ./orbitdb), set ORBITDB_PATH environment variable to point to the desired data directory. Eg. run the CLI with ORBITDB_PATH=/path/orbitdb orbitdb ...

To use orbit-db with an existing IPFS data repository, set the IPFS_PATH environment variable to the desired IPFS repository path. Eg. run the CLI with IPFS_PATH=/path/to/ipfs orbitdb ...

Demo

node ./src/cli/bin demo FRANK!

Output:

                 _     _ _         _ _
                | |   (_) |       | | |
       ___  _ __| |__  _| |_    __| | |__
      / _ \| '__| '_ \| | __|  / _` | '_ \
     | (_) | |  | |_) | | |_  | (_| | |_) |
      \___/|_|  |_.__/|_|\__|  \__,_|_.__/

             Peer-to-Peer Database
       https://github.com/orbitdb/orbit-db

> node "src/bin.js" create /orbitdb/demo docstore
/orbitdb/QmcE2HMrDTL3SFV1rcB5GaJVSJFfpFsnfTM4qK8SRScjyj/demo

> node "src/bin.js" put /orbitdb/QmcE2HMrDTL3SFV1rcB5GaJVSJFfpFsnfTM4qK8SRScjyj/demo "{\"_id\":1,\"name\":\"FRANK!\"}" --indexBy name
Added document 'FRANK!'

> node "src/bin.js" get /orbitdb/QmcE2HMrDTL3SFV1rcB5GaJVSJFfpFsnfTM4qK8SRScjyj/demo "FRANK!" --progress
Loading '/orbitdb/QmcE2HMrDTL3SFV1rcB5GaJVSJFfpFsnfTM4qK8SRScjyj/demo'
██████████████████████████████████████████ 1/1 | 100.0% | 00:00:00
Searching for 'FRANK!' from '/orbitdb/QmcE2HMrDTL3SFV1rcB5GaJVSJFfpFsnfTM4qK8SRScjyj/demo'
┌────────────────────────────────────────────────────────────────┬───┐
│name                                                            │_id│
├────────────────────────────────────────────────────────────────┼───┤
│FRANK!                                                          │1  │
└────────────────────────────────────────────────────────────────┴───┘
Found 1 matches (0 ms)

> node "src/bin.js" drop /orbitdb/QmcE2HMrDTL3SFV1rcB5GaJVSJFfpFsnfTM4qK8SRScjyj/demo yes
Dropped database '/orbitdb/QmcE2HMrDTL3SFV1rcB5GaJVSJFfpFsnfTM4qK8SRScjyj/demo'

Demo finished!

Replicate

For eventlog or feed type databases

Demo:

Run in the terminal:

orbitdb create a eventlog

Copy the address the above command output. Eg. /orbitdb/QmQxfgdjo3EQZiqBgt4uDiJNoLNedRNCZTHCquohxScsXc/a.

In a second terminal, run:

mkdir tmp/ && cd tmp/
orbitdb replicate <address> --progress

Eg. orbitdb replicate /orbitdb/QmQxfgdjo3EQZiqBgt4uDiJNoLNedRNCZTHCquohxScsXc/a --progress --dashboard

Output:

Replicating '/orbitdb/QmQxfgdjo3EQZiqBgt4uDiJNoLNedRNCZTHCquohxScsXc/a'
░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ 0/0 |   0.0% | 00:00:00

In the first terminal, run:

orbitdb add <address> hi! -r --sync --interval 1000

Observe the database replicating to the second instance.

Output:

Replicating ██████████████████████████░░░░░░░░░░░░░░ 2/3 |  66.7% | 00:00:21
Replicating ████████████████████████████████████████ 77/77 |  100.0% | 00:02:31

For docstore type databases

First, create a database and add an item to it:

$ node src/bin.js create /orbitdb/mydocstore docstore                         ~
/orbitdb/QmapaF6FmS3JgTQBKSpSZUdqgf2t8VUUvXcUCdPd5MaeQB/orbitdb/mydocstore
$ node src/bin.js put /orbitdb/QmapaF6FmS3JgTQBKSpSZUdqgf2t8VUUvXcUCdPd5MaeQB/orbitdb/mydocstore '{"name": "foo", "_id": 1}' --indexBy name
Added document 'foo'

You may now syncrhonise it with another. To do that, run replicate on the current directory as well as in the directory you want to synchronise with. Both should result in the same output:

$ node src/bin.js replicate /orbitdb/QmapaF6FmS3JgTQBKSpSZUdqgf2t8VUUvXcUCdPd5MaeQB/orbitdb/mydocstore --progress
Swarm listening on /ip4/127.0.0.1/tcp/38795/ipfs/QmRvDCjRzBB9PjkcCRJQFBDS8V8hsfivpQGFUh85ERxQeM
Swarm listening on /ip4/1.2.3.4/tcp/38795/ipfs/QmRvDCjRzBB9PjkcCRJQFBDS8V8hsfivpQGFUh85ERxQeM
Loading '/orbitdb/QmapaF6FmS3JgTQBKSpSZUdqgf2t8VUUvXcUCdPd5MaeQB/orbitdb/mydocstore' (docstore)
Loading '/orbitdb/QmapaF6FmS3JgTQBKSpSZUdqgf2t8VUUvXcUCdPd5MaeQB/orbitdb/mydocstore' ░░░ 0/1 |   0.0% | 00:00:00
████████████████████████████████████████████████████████████████████████████████████████ 1/1 | 100.0% | 00:00:00
Replicating '/orbitdb/QmapaF6FmS3JgTQBKSpSZUdqgf2t8VUUvXcUCdPd5MaeQB/orbitdb/mydocstore'
████████████████████████████████████████████████████████████████████████████████████████ 1/1 | 100.0% | 00:00:00

Dev

Random notes

node src/bin.js import 2017.csv /t9 src/schemas/csv-schema1.js --progress --limit 5000 --indexBy name

Contribute

We would be happy to accept PRs! If you want to work on something, it'd be good to talk beforehand to make sure nobody else is working on it. You can reach us on Gitter, or in the issues section.

We also have regular community calls, which we announce in the issues in the @orbitdb welcome repository. Join us!

For specific guidelines for contributing to this repository, check out the Contributing guide. For more on contributing to OrbitDB in general, take a look at the @OrbitDB welcome repository. Please note that all interactions in @OrbitDB fall under our Code of Conduct.

License

MIT ©️ 2017-2018 Haja Networks Oy

orbit-db-cli's People

Contributors

adam-palazzo avatar aphelionz avatar dependabot[bot] avatar dset0x avatar haadcode avatar prabodhmeshram avatar richardlitt avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

orbit-db-cli's Issues

Database doesn't exixists following example in readme.md

nd@ServerFOG ~/node/test $ orbitdb create hello feed
/orbitdb/QmRikainmabCBuqPi945JXhQSkaYwhXo8FvzRNFywKL2Q2/hello
bond@ServerFOG ~/node/test $ orbitdb add /orbitdb/QmRikainmabCBuqPi945JXhQSkaYwhXo8FvzRNFywKL2Q2/hello "world"
Added QmRxjB6N6QVGuzph6wsWTRRcPdqDndsMLESKNcnsaEWUoE
bond@ServerFOG ~/node/test $ orbitdb get /orbitdb/QmfSUsdr34iGio68eMezDzZLCKZTnbsxNJgiNipimZtpi1/hello
Error: Database '/orbitdb/QmfSUsdr34iGio68eMezDzZLCKZTnbsxNJgiNipimZtpi1/hello' doesn't exist!
bond@ServerFOG ~/node/test $ orbitdb get /orbitdb/QmfSUsdr34iGio68eMezDzZLCKZTnbsxNJgiNipimZtpi1/hello
Error: Database '/orbitdb/QmfSUsdr34iGio68eMezDzZLCKZTnbsxNJgiNipimZtpi1/hello' doesn't exist!

Issue installing node modules

After npm install I get following:

npm ERR! code 128
npm ERR! Command failed: /usr/local/bin/git checkout 866ffb0e81d3c4327a06e60ac75402f5b59242c7
npm ERR! fatal: reference is not a tree: 866ffb0e81d3c4327a06e60ac75402f5b59242c7
npm ERR! 

npm ERR! A complete log of this run can be found in:
npm ERR!     /Users/sule/.npm/_logs/2017-09-12T22_03_08_577Z-debug.log

Here's a full log:

0 info it worked if it ends with ok
1 verbose cli [ '/usr/local/bin/node', '/usr/local/bin/npm', 'i' ]
2 info using [email protected]
3 info using [email protected]
4 verbose npm-session 4427b22112837ad1
5 silly install runPreinstallTopLevelLifecycles
6 silly preinstall [email protected]
7 info lifecycle [email protected]~preinstall: [email protected]
8 silly install loadCurrentTree
9 silly install readLocalPackageData
10 silly install loadIdealTree
11 silly install cloneCurrentTreeToIdealTree
12 silly install loadShrinkwrap
13 silly pacote git manifest for fs-ext@github:baudehlo/node-fs-ext#de78dda41f68c658cefc14897abbfeb5172e2fdf fetched in 355ms
14 info lifecycle [email protected]~prepack: [email protected]
15 info lifecycle [email protected]~postpack: [email protected]
16 silly pacote git manifest for ipfs-log@github:haadcode/ipfs-log#ff1df94cd1fd513198578efb1b7bb86096434157 fetched in 1612ms
17 silly pacote git manifest for level-js@github:timkuijsten/level.js#18e03adab34c49523be7d3d58fafb0c632f61303 fetched in 324ms
18 silly pacote git manifest for multiplex@github:dignifiedquire/multiplex#b5d5edd30454e2c978ee8c52df86f5f4840d2eab fetched in 323ms
19 silly fetchPackageMetaData error for orbit-db@github:orbitdb/orbit-db#866ffb0e81d3c4327a06e60ac75402f5b59242c7 Command failed: /usr/local/bin/git checkout 866ffb0e81d3c4327a06e60ac75402f5b59242c7
19 silly fetchPackageMetaData fatal: reference is not a tree: 866ffb0e81d3c4327a06e60ac75402f5b59242c7
20 verbose stack Error: Command failed: /usr/local/bin/git checkout 866ffb0e81d3c4327a06e60ac75402f5b59242c7
20 verbose stack fatal: reference is not a tree: 866ffb0e81d3c4327a06e60ac75402f5b59242c7
20 verbose stack
20 verbose stack     at ChildProcess.exithandler (child_process.js:270:12)
20 verbose stack     at emitTwo (events.js:125:13)
20 verbose stack     at ChildProcess.emit (events.js:213:7)
20 verbose stack     at maybeClose (internal/child_process.js:927:16)
20 verbose stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:211:5)
21 verbose cwd /Users/sule/random_dir/orbit-db-cli
22 verbose Darwin 16.7.0
23 verbose argv "/usr/local/bin/node" "/usr/local/bin/npm" "i"
24 verbose node v8.4.0
25 verbose npm  v5.4.1
26 error code 128
27 error Command failed: /usr/local/bin/git checkout 866ffb0e81d3c4327a06e60ac75402f5b59242c7
27 error fatal: reference is not a tree: 866ffb0e81d3c4327a06e60ac75402f5b59242c7
28 verbose exit [ 1, true ]

Cannot read property 'sign' of undefined.

Hello, devs.
I've just installed orbit-db-cli and trying to replicate the quick start guide this happened. Any ideas?

orbitdb add /orbitdb/zdpuAx2rXQUWpiDCZFN7T5sCNbYb5YcJz87PkPyqBqc75RVoC/testdb "hello"
Error: Cannot read property 'sign' of undefined

Installation bugs with both methods presented in documentation

Has anyone tried installing orbit-db-cli recently (both from npm or from git clone/npm install)?

I've been having some issues with both the installation methods.

I tried using different node versions. Actually I had success with node 11 but when I launched orbit-cli, it crashed because of a globalThis reference (which as far as I know, node 11 does not support).

OUTPUTS:

Using npm (directly)

npm ERR! code 1
npm ERR! path /home/filipedfr/.npm-global/lib/node_modules/orbit-db-cli/node_modules/leveldown
npm ERR! command failed
npm ERR! command sh -c prebuild-install || node-gyp rebuild
npm ERR! make: Entering directory '/home/filipedfr/.npm-global/lib/node_modules/orbit-db-cli/node_modules/leveldown/build'
npm ERR!   CXX(target) Release/obj.target/leveldb/deps/leveldb/leveldb-1.20/db/builder.o
npm ERR!   CXX(target) Release/obj.target/leveldb/deps/leveldb/leveldb-1.20/db/db_impl.o
npm ERR!   CXX(target) Release/obj.target/leveldb/deps/leveldb/leveldb-1.20/db/db_iter.o
npm ERR!   CXX(target) Release/obj.target/leveldb/deps/leveldb/leveldb-1.20/db/filename.o
npm ERR!   CXX(target) Release/obj.target/leveldb/deps/leveldb/leveldb-1.20/db/dbformat.o
npm ERR!   CXX(target) Release/obj.target/leveldb/deps/leveldb/leveldb-1.20/db/log_reader.o
npm ERR!   CXX(target) Release/obj.target/leveldb/deps/leveldb/leveldb-1.20/db/log_writer.o
npm ERR!   CXX(target) Release/obj.target/leveldb/deps/leveldb/leveldb-1.20/db/memtable.o
npm ERR!   CXX(target) Release/obj.target/leveldb/deps/leveldb/leveldb-1.20/db/repair.o
npm ERR!   CXX(target) Release/obj.target/leveldb/deps/leveldb/leveldb-1.20/db/table_cache.o
npm ERR!   CXX(target) Release/obj.target/leveldb/deps/leveldb/leveldb-1.20/db/version_edit.o
npm ERR!   CXX(target) Release/obj.target/leveldb/deps/leveldb/leveldb-1.20/db/version_set.o
npm ERR!   CXX(target) Release/obj.target/leveldb/deps/leveldb/leveldb-1.20/db/write_batch.o
npm ERR!   CXX(target) Release/obj.target/leveldb/deps/leveldb/leveldb-1.20/helpers/memenv/memenv.o
npm ERR!   CXX(target) Release/obj.target/leveldb/deps/leveldb/leveldb-1.20/port/port_posix_sse.o
npm ERR!   CXX(target) Release/obj.target/leveldb/deps/leveldb/leveldb-1.20/table/block.o
npm ERR!   CXX(target) Release/obj.target/leveldb/deps/leveldb/leveldb-1.20/table/block_builder.o
npm ERR!   CXX(target) Release/obj.target/leveldb/deps/leveldb/leveldb-1.20/table/filter_block.o
npm ERR!   CXX(target) Release/obj.target/leveldb/deps/leveldb/leveldb-1.20/table/format.o
npm ERR!   CXX(target) Release/obj.target/leveldb/deps/leveldb/leveldb-1.20/table/iterator.o
npm ERR!   CXX(target) Release/obj.target/leveldb/deps/leveldb/leveldb-1.20/table/merger.o
npm ERR!   CXX(target) Release/obj.target/leveldb/deps/leveldb/leveldb-1.20/table/table.o
npm ERR!   CXX(target) Release/obj.target/leveldb/deps/leveldb/leveldb-1.20/table/table_builder.o
npm ERR!   CXX(target) Release/obj.target/leveldb/deps/leveldb/leveldb-1.20/table/two_level_iterator.o
npm ERR!   CXX(target) Release/obj.target/leveldb/deps/leveldb/leveldb-1.20/util/arena.o
npm ERR!   CXX(target) Release/obj.target/leveldb/deps/leveldb/leveldb-1.20/util/bloom.o
npm ERR!   CXX(target) Release/obj.target/leveldb/deps/leveldb/leveldb-1.20/util/cache.o
npm ERR!   CXX(target) Release/obj.target/leveldb/deps/leveldb/leveldb-1.20/util/coding.o
npm ERR!   CXX(target) Release/obj.target/leveldb/deps/leveldb/leveldb-1.20/util/comparator.o
npm ERR!   CXX(target) Release/obj.target/leveldb/deps/leveldb/leveldb-1.20/util/crc32c.o
npm ERR!   CXX(target) Release/obj.target/leveldb/deps/leveldb/leveldb-1.20/util/env.o
npm ERR!   CXX(target) Release/obj.target/leveldb/deps/leveldb/leveldb-1.20/util/filter_policy.o
npm ERR!   CXX(target) Release/obj.target/leveldb/deps/leveldb/leveldb-1.20/util/hash.o
npm ERR!   CXX(target) Release/obj.target/leveldb/deps/leveldb/leveldb-1.20/util/logging.o
npm ERR!   CXX(target) Release/obj.target/leveldb/deps/leveldb/leveldb-1.20/util/options.o
npm ERR!   CXX(target) Release/obj.target/leveldb/deps/leveldb/leveldb-1.20/util/status.o
npm ERR!   CXX(target) Release/obj.target/leveldb/deps/leveldb/leveldb-1.20/port/port_posix.o
npm ERR!   CXX(target) Release/obj.target/leveldb/deps/leveldb/leveldb-1.20/util/env_posix.o
npm ERR!   AR(target) Release/obj.target/deps/leveldb/leveldb.a
npm ERR!   COPY Release/leveldb.a
npm ERR!   CXX(target) Release/obj.target/snappy/deps/snappy/snappy-1.1.4/snappy-sinksource.o
npm ERR!   CXX(target) Release/obj.target/snappy/deps/snappy/snappy-1.1.4/snappy-stubs-internal.o
npm ERR!   CXX(target) Release/obj.target/snappy/deps/snappy/snappy-1.1.4/snappy.o
npm ERR!   AR(target) Release/obj.target/deps/snappy/snappy.a
npm ERR!   COPY Release/snappy.a
npm ERR!   CXX(target) Release/obj.target/leveldown/src/batch.o
npm ERR! make: Leaving directory '/home/filipedfr/.npm-global/lib/node_modules/orbit-db-cli/node_modules/leveldown/build'
npm ERR! gyp info it worked if it ends with ok
npm ERR! gyp info using [email protected]
npm ERR! gyp info using [email protected] | linux | x64
npm ERR! gyp info find Python using Python version 3.9.6 found at "/usr/local/bin/python3"
npm ERR! gyp info spawn /usr/local/bin/python3
npm ERR! gyp info spawn args [
npm ERR! gyp info spawn args   '/usr/local/lib/node_modules/npm/node_modules/node-gyp/gyp/gyp_main.py',
npm ERR! gyp info spawn args   'binding.gyp',
npm ERR! gyp info spawn args   '-f',
npm ERR! gyp info spawn args   'make',
npm ERR! gyp info spawn args   '-I',
npm ERR! gyp info spawn args   '/home/filipedfr/.npm-global/lib/node_modules/orbit-db-cli/node_modules/leveldown/build/config.gypi',
npm ERR! gyp info spawn args   '-I',
npm ERR! gyp info spawn args   '/usr/local/lib/node_modules/npm/node_modules/node-gyp/addon.gypi',
npm ERR! gyp info spawn args   '-I',
npm ERR! gyp info spawn args   '/home/filipedfr/.cache/node-gyp/16.13.2/include/node/common.gypi',
npm ERR! gyp info spawn args   '-Dlibrary=shared_library',
npm ERR! gyp info spawn args   '-Dvisibility=default',
npm ERR! gyp info spawn args   '-Dnode_root_dir=/home/filipedfr/.cache/node-gyp/16.13.2',
npm ERR! gyp info spawn args   '-Dnode_gyp_dir=/usr/local/lib/node_modules/npm/node_modules/node-gyp',
npm ERR! gyp info spawn args   '-Dnode_lib_file=/home/filipedfr/.cache/node-gyp/16.13.2/<(target_arch)/node.lib',
npm ERR! gyp info spawn args   '-Dmodule_root_dir=/home/filipedfr/.npm-global/lib/node_modules/orbit-db-cli/node_modules/leveldown',
npm ERR! gyp info spawn args   '-Dnode_engine=v8',
npm ERR! gyp info spawn args   '--depth=.',
npm ERR! gyp info spawn args   '--no-parallel',
npm ERR! gyp info spawn args   '--generator-output',
npm ERR! gyp info spawn args   'build',
npm ERR! gyp info spawn args   '-Goutput_dir=.'
npm ERR! gyp info spawn args ]
npm ERR! gyp info spawn make
npm ERR! gyp info spawn args [ 'BUILDTYPE=Release', '-C', 'build' ]
npm ERR! ../deps/leveldb/leveldb-1.20/util/hash.cc: In function ‘uint32_t leveldb::Hash(const char*, size_t, uint32_t)’:
npm ERR! ../deps/leveldb/leveldb-1.20/util/hash.cc:37:9: warning: this statement may fall through [-Wimplicit-fallthrough=]
npm ERR!    37 |       h += static_cast<unsigned char>(data[2]) << 16;
npm ERR!       |       ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
npm ERR! ../deps/leveldb/leveldb-1.20/util/hash.cc:39:5: note: here
npm ERR!    39 |     case 2:
npm ERR!       |     ^~~~
npm ERR! ../deps/leveldb/leveldb-1.20/util/hash.cc:40:9: warning: this statement may fall through [-Wimplicit-fallthrough=]
npm ERR!    40 |       h += static_cast<unsigned char>(data[1]) << 8;
npm ERR!       |       ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
npm ERR! ../deps/leveldb/leveldb-1.20/util/hash.cc:42:5: note: here
npm ERR!    42 |     case 1:
npm ERR!       |     ^~~~
npm ERR! In file included from ../../nan/nan_converters.h:67,
npm ERR!                  from ../../nan/nan.h:202,
npm ERR!                  from ../src/batch.cc:3:
npm ERR! ../../nan/nan_converters_43_inl.h: In static member function ‘static Nan::imp::ToFactoryBase<v8::Boolean>::return_t Nan::imp::ToFactory<v8::Boolean>::convert(v8::Local<v8::Value>)’:
npm ERR! ../../nan/nan_converters_43_inl.h:18:49: error: cannot convert ‘v8::Local<v8::Context>’ to ‘v8::Isolate*’
npm ERR!    18 |       val->To ## TYPE(isolate->GetCurrentContext())                            \
npm ERR!       |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~
npm ERR!       |                                                 |
npm ERR!       |                                                 v8::Local<v8::Context>
npm ERR! ../../nan/nan_converters_43_inl.h:22:1: note: in expansion of macro ‘X’
npm ERR!    22 | X(Boolean)
npm ERR!       | ^
npm ERR! In file included from /home/filipedfr/.cache/node-gyp/16.13.2/include/node/node.h:63,
npm ERR!                  from ../src/batch.cc:1:
npm ERR! /home/filipedfr/.cache/node-gyp/16.13.2/include/node/v8.h:3086:37: note:   initializing argument 1 of ‘v8::Local<v8::Boolean> v8::Value::ToBoolean(v8::Isolate*) const’
npm ERR!  3086 |   Local<Boolean> ToBoolean(Isolate* isolate) const;
npm ERR!       |                            ~~~~~~~~~^~~~~~~
npm ERR! In file included from ../../nan/nan_converters.h:67,
npm ERR!                  from ../../nan/nan.h:202,
npm ERR!                  from ../src/batch.cc:3:
npm ERR! ../../nan/nan_converters_43_inl.h: In static member function ‘static Nan::imp::ValueFactoryBase<bool>::return_t Nan::imp::ToFactory<bool>::convert(v8::Local<v8::Value>)’:
npm ERR! ../../nan/nan_converters_43_inl.h:37:55: error: cannot convert ‘v8::Local<v8::Context>’ to ‘v8::Isolate*’
npm ERR!    37 |   return val->NAME ## Value(isolate->GetCurrentContext());                     \
npm ERR!       |                             ~~~~~~~~~~~~~~~~~~~~~~~~~~^~
npm ERR!       |                                                       |
npm ERR!       |                                                       v8::Local<v8::Context>
npm ERR! ../../nan/nan_converters_43_inl.h:40:1: note: in expansion of macro ‘X’
npm ERR!    40 | X(bool, Boolean)
npm ERR!       | ^
npm ERR! In file included from /home/filipedfr/.cache/node-gyp/16.13.2/include/node/node.h:63,
npm ERR!                  from ../src/batch.cc:1:
npm ERR! /home/filipedfr/.cache/node-gyp/16.13.2/include/node/v8.h:3096:30: note:   initializing argument 1 of ‘bool v8::Value::BooleanValue(v8::Isolate*) const’
npm ERR!  3096 |   bool BooleanValue(Isolate* isolate) const;
npm ERR!       |                     ~~~~~~~~~^~~~~~~
npm ERR! In file included from ../../nan/nan_new.h:189,
npm ERR!                  from ../../nan/nan.h:203,
npm ERR!                  from ../src/batch.cc:3:
npm ERR! ../../nan/nan_implementation_12_inl.h: In static member function ‘static Nan::imp::FactoryBase<v8::Function>::return_t Nan::imp::Factory<v8::Function>::New(Nan::FunctionCallback, v8::Local<v8::Value>)’:
npm ERR! ../../nan/nan_implementation_12_inl.h:103:42: error: cannot convert ‘v8::Isolate*’ to ‘v8::Local<v8::Context>’
npm ERR!   103 |   return scope.Escape(v8::Function::New( isolate
npm ERR!       |                                          ^~~~~~~
npm ERR!       |                                          |
npm ERR!       |                                          v8::Isolate*
npm ERR! In file included from /home/filipedfr/.cache/node-gyp/16.13.2/include/node/node.h:63,
npm ERR!                  from ../src/batch.cc:1:
npm ERR! /home/filipedfr/.cache/node-gyp/16.13.2/include/node/v8.h:4754:22: note:   initializing argument 1 of ‘static v8::MaybeLocal<v8::Function> v8::Function::New(v8::Local<v8::Context>, v8::FunctionCallback, v8::Local<v8::Value>, int, v8::ConstructorBehavior, v8::SideEffectType)’
npm ERR!  4754 |       Local<Context> context, FunctionCallback callback,
npm ERR!       |       ~~~~~~~~~~~~~~~^~~~~~~
npm ERR! In file included from ../../nan/nan_new.h:189,
npm ERR!                  from ../../nan/nan.h:203,
npm ERR!                  from ../src/batch.cc:3:
npm ERR! ../../nan/nan_implementation_12_inl.h: In static member function ‘static Nan::imp::FactoryBase<v8::StringObject>::return_t Nan::imp::Factory<v8::StringObject>::New(v8::Local<v8::String>)’:
npm ERR! ../../nan/nan_implementation_12_inl.h:337:37: error: no matching function for call to ‘v8::StringObject::New(v8::Local<v8::String>&)’
npm ERR!   337 |   return v8::StringObject::New(value).As<v8::StringObject>();
npm ERR!       |                                     ^
npm ERR! In file included from /home/filipedfr/.cache/node-gyp/16.13.2/include/node/node.h:63,
npm ERR!                  from ../src/batch.cc:1:
npm ERR! /home/filipedfr/.cache/node-gyp/16.13.2/include/node/v8.h:6196:23: note: candidate: ‘static v8::Local<v8::Value> v8::StringObject::New(v8::Isolate*, v8::Local<v8::String>)’
npm ERR!  6196 |   static Local<Value> New(Isolate* isolate, Local<String> value);
npm ERR!       |                       ^~~
npm ERR! /home/filipedfr/.cache/node-gyp/16.13.2/include/node/v8.h:6196:23: note:   candidate expects 2 arguments, 1 provided
npm ERR! In file included from ../../nan/nan_new.h:189,
npm ERR!                  from ../../nan/nan.h:203,
npm ERR!                  from ../src/batch.cc:3:
npm ERR! ../../nan/nan_implementation_12_inl.h:337:58: error: expected primary-expression before ‘>’ token
npm ERR!   337 |   return v8::StringObject::New(value).As<v8::StringObject>();
npm ERR!       |                                                          ^
npm ERR! ../../nan/nan_implementation_12_inl.h:337:60: error: expected primary-expression before ‘)’ token
npm ERR!   337 |   return v8::StringObject::New(value).As<v8::StringObject>();
npm ERR!       |                                                            ^
npm ERR! In file included from ../src/batch.cc:3:
npm ERR! ../../nan/nan.h: In constructor ‘Nan::Utf8String::Utf8String(v8::Local<v8::Value>)’:
npm ERR! ../../nan/nan.h:1034:53: error: no matching function for call to ‘v8::Value::ToString()’
npm ERR!  1034 |       v8::Local<v8::String> string = from->ToString();
npm ERR!       |                                                     ^
npm ERR! In file included from /home/filipedfr/.cache/node-gyp/16.13.2/include/node/node.h:63,
npm ERR!                  from ../src/batch.cc:1:
npm ERR! /home/filipedfr/.cache/node-gyp/16.13.2/include/node/v8.h:3048:44: note: candidate: ‘v8::MaybeLocal<v8::String> v8::Value::ToString(v8::Local<v8::Context>) const’
npm ERR!  3048 |   V8_WARN_UNUSED_RESULT MaybeLocal<String> ToString(
npm ERR!       |                                            ^~~~~~~~
npm ERR! /home/filipedfr/.cache/node-gyp/16.13.2/include/node/v8.h:3048:44: note:   candidate expects 1 argument, 0 provided
npm ERR! In file included from ../src/batch.cc:3:
npm ERR! ../../nan/nan.h:1044:37: error: cannot convert ‘char*’ to ‘v8::Isolate*’
npm ERR!  1044 |         length_ = string->WriteUtf8(str_, static_cast<int>(len), 0, flags);
npm ERR!       |                                     ^~~~
npm ERR!       |                                     |
npm ERR!       |                                     char*
npm ERR! In file included from /home/filipedfr/.cache/node-gyp/16.13.2/include/node/node.h:63,
npm ERR!                  from ../src/batch.cc:1:
npm ERR! /home/filipedfr/.cache/node-gyp/16.13.2/include/node/v8.h:3277:26: note:   initializing argument 1 of ‘int v8::String::WriteUtf8(v8::Isolate*, char*, int, int*, int) const’
npm ERR!  3277 |   int WriteUtf8(Isolate* isolate, char* buffer, int length = -1,
npm ERR!       |                 ~~~~~~~~~^~~~~~~
npm ERR! In file included from ../src/batch.cc:3:
npm ERR! ../../nan/nan.h: In member function ‘void Nan::AsyncWorker::SaveToPersistent(const char*, const v8::Local<v8::Value>&)’:
npm ERR! ../../nan/nan.h:1818:64: error: no matching function for call to ‘v8::Object::Set(v8::Local<v8::String>, const v8::Local<v8::Value>&)’
npm ERR!  1818 |     New(persistentHandle)->Set(New(key).ToLocalChecked(), value);
npm ERR!       |                                                                ^
npm ERR! In file included from /home/filipedfr/.cache/node-gyp/16.13.2/include/node/node.h:63,
npm ERR!                  from ../src/batch.cc:1:
npm ERR! /home/filipedfr/.cache/node-gyp/16.13.2/include/node/v8.h:3961:37: note: candidate: ‘v8::Maybe<bool> v8::Object::Set(v8::Local<v8::Context>, v8::Local<v8::Value>, v8::Local<v8::Value>)’
npm ERR!  3961 |   V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context,
npm ERR!       |                                     ^~~
npm ERR! /home/filipedfr/.cache/node-gyp/16.13.2/include/node/v8.h:3961:37: note:   candidate expects 3 arguments, 2 provided
npm ERR! /home/filipedfr/.cache/node-gyp/16.13.2/include/node/v8.h:3964:37: note: candidate: ‘v8::Maybe<bool> v8::Object::Set(v8::Local<v8::Context>, uint32_t, v8::Local<v8::Value>)’
npm ERR!  3964 |   V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context, uint32_t index,
npm ERR!       |                                     ^~~
npm ERR! /home/filipedfr/.cache/node-gyp/16.13.2/include/node/v8.h:3964:37: note:   candidate expects 3 arguments, 2 provided
npm ERR! In file included from ../src/batch.cc:3:
npm ERR! ../../nan/nan.h: In member function ‘void Nan::AsyncWorker::SaveToPersistent(const v8::Local<v8::String>&, const v8::Local<v8::Value>&)’:
npm ERR! ../../nan/nan.h:1824:42: error: no matching function for call to ‘v8::Object::Set(const v8::Local<v8::String>&, const v8::Local<v8::Value>&)’
npm ERR!  1824 |     New(persistentHandle)->Set(key, value);
npm ERR!       |                                          ^
npm ERR! In file included from /home/filipedfr/.cache/node-gyp/16.13.2/include/node/node.h:63,
npm ERR!                  from ../src/batch.cc:1:
npm ERR! /home/filipedfr/.cache/node-gyp/16.13.2/include/node/v8.h:3961:37: note: candidate: ‘v8::Maybe<bool> v8::Object::Set(v8::Local<v8::Context>, v8::Local<v8::Value>, v8::Local<v8::Value>)’
npm ERR!  3961 |   V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context,
npm ERR!       |                                     ^~~
npm ERR! /home/filipedfr/.cache/node-gyp/16.13.2/include/node/v8.h:3961:37: note:   candidate expects 3 arguments, 2 provided
npm ERR! /home/filipedfr/.cache/node-gyp/16.13.2/include/node/v8.h:3964:37: note: candidate: ‘v8::Maybe<bool> v8::Object::Set(v8::Local<v8::Context>, uint32_t, v8::Local<v8::Value>)’
npm ERR!  3964 |   V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context, uint32_t index,
npm ERR!       |                                     ^~~
npm ERR! /home/filipedfr/.cache/node-gyp/16.13.2/include/node/v8.h:3964:37: note:   candidate expects 3 arguments, 2 provided
npm ERR! In file included from ../src/batch.cc:3:
npm ERR! ../../nan/nan.h: In member function ‘void Nan::AsyncWorker::SaveToPersistent(uint32_t, const v8::Local<v8::Value>&)’:
npm ERR! ../../nan/nan.h:1830:44: error: no matching function for call to ‘v8::Object::Set(uint32_t&, const v8::Local<v8::Value>&)’
npm ERR!  1830 |     New(persistentHandle)->Set(index, value);
npm ERR!       |                                            ^
npm ERR! In file included from /home/filipedfr/.cache/node-gyp/16.13.2/include/node/node.h:63,
npm ERR!                  from ../src/batch.cc:1:
npm ERR! /home/filipedfr/.cache/node-gyp/16.13.2/include/node/v8.h:3961:37: note: candidate: ‘v8::Maybe<bool> v8::Object::Set(v8::Local<v8::Context>, v8::Local<v8::Value>, v8::Local<v8::Value>)’
npm ERR!  3961 |   V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context,
npm ERR!       |                                     ^~~
npm ERR! /home/filipedfr/.cache/node-gyp/16.13.2/include/node/v8.h:3961:37: note:   candidate expects 3 arguments, 2 provided
npm ERR! /home/filipedfr/.cache/node-gyp/16.13.2/include/node/v8.h:3964:37: note: candidate: ‘v8::Maybe<bool> v8::Object::Set(v8::Local<v8::Context>, uint32_t, v8::Local<v8::Value>)’
npm ERR!  3964 |   V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context, uint32_t index,
npm ERR!       |                                     ^~~
npm ERR! /home/filipedfr/.cache/node-gyp/16.13.2/include/node/v8.h:3964:37: note:   candidate expects 3 arguments, 2 provided
npm ERR! In file included from ../src/batch.cc:3:
npm ERR! ../../nan/nan.h: In member function ‘v8::Local<v8::Value> Nan::AsyncWorker::GetFromPersistent(const char*) const’:
npm ERR! ../../nan/nan.h:1836:61: error: no matching function for call to ‘v8::Object::Get(v8::Local<v8::String>)’
npm ERR!  1836 |         New(persistentHandle)->Get(New(key).ToLocalChecked()));
npm ERR!       |                                                             ^
npm ERR! In file included from /home/filipedfr/.cache/node-gyp/16.13.2/include/node/node.h:63,
npm ERR!                  from ../src/batch.cc:1:
npm ERR! /home/filipedfr/.cache/node-gyp/16.13.2/include/node/v8.h:4007:43: note: candidate: ‘v8::MaybeLocal<v8::Value> v8::Object::Get(v8::Local<v8::Context>, v8::Local<v8::Value>)’
npm ERR!  4007 |   V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
npm ERR!       |                                           ^~~
npm ERR! /home/filipedfr/.cache/node-gyp/16.13.2/include/node/v8.h:4007:43: note:   candidate expects 2 arguments, 1 provided
npm ERR! /home/filipedfr/.cache/node-gyp/16.13.2/include/node/v8.h:4010:43: note: candidate: ‘v8::MaybeLocal<v8::Value> v8::Object::Get(v8::Local<v8::Context>, uint32_t)’
npm ERR!  4010 |   V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
npm ERR!       |                                           ^~~
npm ERR! /home/filipedfr/.cache/node-gyp/16.13.2/include/node/v8.h:4010:43: note:   candidate expects 2 arguments, 1 provided
npm ERR! In file included from ../src/batch.cc:3:
npm ERR! ../../nan/nan.h: In member function ‘v8::Local<v8::Value> Nan::AsyncWorker::GetFromPersistent(const v8::Local<v8::String>&) const’:
npm ERR! ../../nan/nan.h:1842:55: error: no matching function for call to ‘v8::Object::Get(const v8::Local<v8::String>&)’
npm ERR!  1842 |     return scope.Escape(New(persistentHandle)->Get(key));
npm ERR!       |                                                       ^
npm ERR! In file included from /home/filipedfr/.cache/node-gyp/16.13.2/include/node/node.h:63,
npm ERR!                  from ../src/batch.cc:1:
npm ERR! /home/filipedfr/.cache/node-gyp/16.13.2/include/node/v8.h:4007:43: note: candidate: ‘v8::MaybeLocal<v8::Value> v8::Object::Get(v8::Local<v8::Context>, v8::Local<v8::Value>)’
npm ERR!  4007 |   V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
npm ERR!       |                                           ^~~
npm ERR! /home/filipedfr/.cache/node-gyp/16.13.2/include/node/v8.h:4007:43: note:   candidate expects 2 arguments, 1 provided
npm ERR! /home/filipedfr/.cache/node-gyp/16.13.2/include/node/v8.h:4010:43: note: candidate: ‘v8::MaybeLocal<v8::Value> v8::Object::Get(v8::Local<v8::Context>, uint32_t)’
npm ERR!  4010 |   V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
npm ERR!       |                                           ^~~
npm ERR! /home/filipedfr/.cache/node-gyp/16.13.2/include/node/v8.h:4010:43: note:   candidate expects 2 arguments, 1 provided
npm ERR! In file included from ../src/batch.cc:3:
npm ERR! ../../nan/nan.h: In member function ‘v8::Local<v8::Value> Nan::AsyncWorker::GetFromPersistent(uint32_t) const’:
npm ERR! ../../nan/nan.h:1847:57: error: no matching function for call to ‘v8::Object::Get(uint32_t&)’
npm ERR!  1847 |     return scope.Escape(New(persistentHandle)->Get(index));
npm ERR!       |                                                         ^
npm ERR! In file included from /home/filipedfr/.cache/node-gyp/16.13.2/include/node/node.h:63,
npm ERR!                  from ../src/batch.cc:1:
npm ERR! /home/filipedfr/.cache/node-gyp/16.13.2/include/node/v8.h:4007:43: note: candidate: ‘v8::MaybeLocal<v8::Value> v8::Object::Get(v8::Local<v8::Context>, v8::Local<v8::Value>)’
npm ERR!  4007 |   V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
npm ERR!       |                                           ^~~
npm ERR! /home/filipedfr/.cache/node-gyp/16.13.2/include/node/v8.h:4007:43: note:   candidate expects 2 arguments, 1 provided
npm ERR! /home/filipedfr/.cache/node-gyp/16.13.2/include/node/v8.h:4010:43: note: candidate: ‘v8::MaybeLocal<v8::Value> v8::Object::Get(v8::Local<v8::Context>, uint32_t)’
npm ERR!  4010 |   V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
npm ERR!       |                                           ^~~
npm ERR! /home/filipedfr/.cache/node-gyp/16.13.2/include/node/v8.h:4010:43: note:   candidate expects 2 arguments, 1 provided
npm ERR! In file included from ../src/batch.cc:3:
npm ERR! ../../nan/nan.h: In function ‘void Nan::AsyncQueueWorker(Nan::AsyncWorker*)’:
npm ERR! ../../nan/nan.h:2167:62: warning: cast between incompatible function types from ‘void (*)(uv_work_t*)’ {aka ‘void (*)(uv_work_s*)’} to ‘uv_after_work_cb’ {aka ‘void (*)(uv_work_s*, int)’} [-Wcast-function-type]
npm ERR!  2167 |     , reinterpret_cast<uv_after_work_cb>(AsyncExecuteComplete)
npm ERR!       |                                                              ^
npm ERR! In file included from /usr/include/c++/9/cassert:44,
npm ERR!                  from /home/filipedfr/.cache/node-gyp/16.13.2/include/node/node_object_wrap.h:26,
npm ERR!                  from ../../nan/nan.h:53,
npm ERR!                  from ../src/batch.cc:3:
npm ERR! ../../nan/nan_object_wrap.h: In destructor ‘virtual Nan::ObjectWrap::~ObjectWrap()’:
npm ERR! ../../nan/nan_object_wrap.h:24:25: error: ‘class Nan::Persistent<v8::Object>’ has no member named ‘IsNearDeath’
npm ERR!    24 |     assert(persistent().IsNearDeath());
npm ERR!       |                         ^~~~~~~~~~~
npm ERR! In file included from ../../nan/nan.h:2657,
npm ERR!                  from ../src/batch.cc:3:
npm ERR! ../../nan/nan_object_wrap.h: In member function ‘void Nan::ObjectWrap::MakeWeak()’:
npm ERR! ../../nan/nan_object_wrap.h:67:18: error: ‘class Nan::Persistent<v8::Object>’ has no member named ‘MarkIndependent’
npm ERR!    67 |     persistent().MarkIndependent();
npm ERR!       |                  ^~~~~~~~~~~~~~~
npm ERR! In file included from /usr/include/c++/9/cassert:44,
npm ERR!                  from /home/filipedfr/.cache/node-gyp/16.13.2/include/node/node_object_wrap.h:26,
npm ERR!                  from ../../nan/nan.h:53,
npm ERR!                  from ../src/batch.cc:3:
npm ERR! ../../nan/nan_object_wrap.h: In static member function ‘static void Nan::ObjectWrap::WeakCallback(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)’:
npm ERR! ../../nan/nan_object_wrap.h:124:26: error: ‘class Nan::Persistent<v8::Object>’ has no member named ‘IsNearDeath’
npm ERR!   124 |     assert(wrap->handle_.IsNearDeath());
npm ERR!       |                          ^~~~~~~~~~~
npm ERR! In file included from ../src/database.h:18,
npm ERR!                  from ../src/batch.cc:5:
npm ERR! ../src/leveldown.h: In function ‘size_t StringOrBufferLength(v8::Local<v8::Value>)’:
npm ERR! ../src/leveldown.h:16:26: error: no matching function for call to ‘v8::Value::ToObject()’
npm ERR!    16 |   return (!obj->ToObject().IsEmpty()
npm ERR!       |                          ^
npm ERR! In file included from /home/filipedfr/.cache/node-gyp/16.13.2/include/node/node.h:63,
npm ERR!                  from ../src/batch.cc:1:
npm ERR! /home/filipedfr/.cache/node-gyp/16.13.2/include/node/v8.h:3060:44: note: candidate: ‘v8::MaybeLocal<v8::Object> v8::Value::ToObject(v8::Local<v8::Context>) const’
npm ERR!  3060 |   V8_WARN_UNUSED_RESULT MaybeLocal<Object> ToObject(
npm ERR!       |                                            ^~~~~~~~
npm ERR! /home/filipedfr/.cache/node-gyp/16.13.2/include/node/v8.h:3060:44: note:   candidate expects 1 argument, 0 provided
npm ERR! In file included from ../src/database.h:18,
npm ERR!                  from ../src/batch.cc:5:
npm ERR! ../src/leveldown.h:17:48: error: no matching function for call to ‘v8::Value::ToObject()’
npm ERR!    17 |     && node::Buffer::HasInstance(obj->ToObject()))
npm ERR!       |                                                ^
npm ERR! In file included from /home/filipedfr/.cache/node-gyp/16.13.2/include/node/node.h:63,
npm ERR!                  from ../src/batch.cc:1:
npm ERR! /home/filipedfr/.cache/node-gyp/16.13.2/include/node/v8.h:3060:44: note: candidate: ‘v8::MaybeLocal<v8::Object> v8::Value::ToObject(v8::Local<v8::Context>) const’
npm ERR!  3060 |   V8_WARN_UNUSED_RESULT MaybeLocal<Object> ToObject(
npm ERR!       |                                            ^~~~~~~~
npm ERR! /home/filipedfr/.cache/node-gyp/16.13.2/include/node/v8.h:3060:44: note:   candidate expects 1 argument, 0 provided
npm ERR! In file included from ../src/database.h:18,
npm ERR!                  from ../src/batch.cc:5:
npm ERR! ../src/leveldown.h:18:42: error: no matching function for call to ‘v8::Value::ToObject()’
npm ERR!    18 |     ? node::Buffer::Length(obj->ToObject())
npm ERR!       |                                          ^
npm ERR! In file included from /home/filipedfr/.cache/node-gyp/16.13.2/include/node/node.h:63,
npm ERR!                  from ../src/batch.cc:1:
npm ERR! /home/filipedfr/.cache/node-gyp/16.13.2/include/node/v8.h:3060:44: note: candidate: ‘v8::MaybeLocal<v8::Object> v8::Value::ToObject(v8::Local<v8::Context>) const’
npm ERR!  3060 |   V8_WARN_UNUSED_RESULT MaybeLocal<Object> ToObject(
npm ERR!       |                                            ^~~~~~~~
npm ERR! /home/filipedfr/.cache/node-gyp/16.13.2/include/node/v8.h:3060:44: note:   candidate expects 1 argument, 0 provided
npm ERR! In file included from ../src/database.h:18,
npm ERR!                  from ../src/batch.cc:5:
npm ERR! ../src/leveldown.h:19:21: error: no matching function for call to ‘v8::Value::ToString()’
npm ERR!    19 |     : obj->ToString()->Utf8Length();
npm ERR!       |                     ^
npm ERR! In file included from /home/filipedfr/.cache/node-gyp/16.13.2/include/node/node.h:63,
npm ERR!                  from ../src/batch.cc:1:
npm ERR! /home/filipedfr/.cache/node-gyp/16.13.2/include/node/v8.h:3048:44: note: candidate: ‘v8::MaybeLocal<v8::String> v8::Value::ToString(v8::Local<v8::Context>) const’
npm ERR!  3048 |   V8_WARN_UNUSED_RESULT MaybeLocal<String> ToString(
npm ERR!       |                                            ^~~~~~~~
npm ERR! /home/filipedfr/.cache/node-gyp/16.13.2/include/node/v8.h:3048:44: note:   candidate expects 1 argument, 0 provided
npm ERR! In file included from ../src/database.h:18,
npm ERR!                  from ../src/batch.cc:5:
npm ERR! ../src/leveldown.h: In function ‘void DisposeStringOrBufferFromSlice(Nan::Persistent<v8::Object>&, leveldb::Slice)’:
npm ERR! ../src/leveldown.h:30:110: error: no matching function for call to ‘v8::Object::Get(v8::Local<v8::String>)’
npm ERR!    30 |     v8::Local<v8::Value> obj = Nan::New<v8::Object>(handle)->Get(Nan::New<v8::String>("obj").ToLocalChecked());
npm ERR!       |                                                                                                              ^
npm ERR! In file included from /home/filipedfr/.cache/node-gyp/16.13.2/include/node/node.h:63,
npm ERR!                  from ../src/batch.cc:1:
npm ERR! /home/filipedfr/.cache/node-gyp/16.13.2/include/node/v8.h:4007:43: note: candidate: ‘v8::MaybeLocal<v8::Value> v8::Object::Get(v8::Local<v8::Context>, v8::Local<v8::Value>)’
npm ERR!  4007 |   V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
npm ERR!       |                                           ^~~
npm ERR! /home/filipedfr/.cache/node-gyp/16.13.2/include/node/v8.h:4007:43: note:   candidate expects 2 arguments, 1 provided
npm ERR! /home/filipedfr/.cache/node-gyp/16.13.2/include/node/v8.h:4010:43: note: candidate: ‘v8::MaybeLocal<v8::Value> v8::Object::Get(v8::Local<v8::Context>, uint32_t)’
npm ERR!  4010 |   V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
npm ERR!       |                                           ^~~
npm ERR! /home/filipedfr/.cache/node-gyp/16.13.2/include/node/v8.h:4010:43: note:   candidate expects 2 arguments, 1 provided
npm ERR! In file included from ../src/batch.cc:5:
npm ERR! ../src/database.h: In constructor ‘leveldown::Reference::Reference(v8::Local<v8::Value>, leveldb::Slice)’:
npm ERR! ../src/database.h:31:52: error: no matching function for call to ‘v8::Object::Set(v8::Local<v8::String>, v8::Local<v8::Value>&)’
npm ERR!    31 |     _obj->Set(Nan::New("obj").ToLocalChecked(), obj);
npm ERR!       |                                                    ^
npm ERR! In file included from /home/filipedfr/.cache/node-gyp/16.13.2/include/node/node.h:63,
npm ERR!                  from ../src/batch.cc:1:
npm ERR! /home/filipedfr/.cache/node-gyp/16.13.2/include/node/v8.h:3961:37: note: candidate: ‘v8::Maybe<bool> v8::Object::Set(v8::Local<v8::Context>, v8::Local<v8::Value>, v8::Local<v8::Value>)’
npm ERR!  3961 |   V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context,
npm ERR!       |                                     ^~~
npm ERR! /home/filipedfr/.cache/node-gyp/16.13.2/include/node/v8.h:3961:37: note:   candidate expects 3 arguments, 2 provided
npm ERR! /home/filipedfr/.cache/node-gyp/16.13.2/include/node/v8.h:3964:37: note: candidate: ‘v8::Maybe<bool> v8::Object::Set(v8::Local<v8::Context>, uint32_t, v8::Local<v8::Value>)’
npm ERR!  3964 |   V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context, uint32_t index,
npm ERR!       |                                     ^~~
npm ERR! /home/filipedfr/.cache/node-gyp/16.13.2/include/node/v8.h:3964:37: note:   candidate expects 3 arguments, 2 provided
npm ERR! In file included from ../src/batch.cc:5:
npm ERR! ../src/database.h: At global scope:
npm ERR! ../src/database.h:86:7: warning: unnecessary parentheses in declaration of ‘pendingCloseWorker’ [-Wparentheses]
npm ERR!    86 |   void(*pendingCloseWorker);
npm ERR!       |       ^
npm ERR! In file included from ../src/batch.cc:8:
npm ERR! ../src/common.h: In function ‘bool leveldown::BooleanOptionValue(v8::Local<v8::Object>, const char*, bool)’:
npm ERR! ../src/common.h:19:24: error: no matching function for call to ‘v8::Object::Has(v8::Local<v8::String>&)’
npm ERR!    19 |     && options->Has(key)
npm ERR!       |                        ^
npm ERR! In file included from /home/filipedfr/.cache/node-gyp/16.13.2/include/node/node.h:63,
npm ERR!                  from ../src/batch.cc:1:
npm ERR! /home/filipedfr/.cache/node-gyp/16.13.2/include/node/v8.h:4042:37: note: candidate: ‘v8::Maybe<bool> v8::Object::Has(v8::Local<v8::Context>, v8::Local<v8::Value>)’
npm ERR!  4042 |   V8_WARN_UNUSED_RESULT Maybe<bool> Has(Local<Context> context,
npm ERR!       |                                     ^~~
npm ERR! /home/filipedfr/.cache/node-gyp/16.13.2/include/node/v8.h:4042:37: note:   candidate expects 2 arguments, 1 provided
npm ERR! /home/filipedfr/.cache/node-gyp/16.13.2/include/node/v8.h:4048:37: note: candidate: ‘v8::Maybe<bool> v8::Object::Has(v8::Local<v8::Context>, uint32_t)’
npm ERR!  4048 |   V8_WARN_UNUSED_RESULT Maybe<bool> Has(Local<Context> context, uint32_t index);
npm ERR!       |                                     ^~~
npm ERR! /home/filipedfr/.cache/node-gyp/16.13.2/include/node/v8.h:4048:37: note:   candidate expects 2 arguments, 1 provided
npm ERR! In file included from ../src/batch.cc:8:
npm ERR! ../src/common.h:20:23: error: no matching function for call to ‘v8::Object::Get(v8::Local<v8::String>&)’
npm ERR!    20 |     ? options->Get(key)->BooleanValue()
npm ERR!       |                       ^
npm ERR! In file included from /home/filipedfr/.cache/node-gyp/16.13.2/include/node/node.h:63,
npm ERR!                  from ../src/batch.cc:1:
npm ERR! /home/filipedfr/.cache/node-gyp/16.13.2/include/node/v8.h:4007:43: note: candidate: ‘v8::MaybeLocal<v8::Value> v8::Object::Get(v8::Local<v8::Context>, v8::Local<v8::Value>)’
npm ERR!  4007 |   V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
npm ERR!       |                                           ^~~
npm ERR! /home/filipedfr/.cache/node-gyp/16.13.2/include/node/v8.h:4007:43: note:   candidate expects 2 arguments, 1 provided
npm ERR! /home/filipedfr/.cache/node-gyp/16.13.2/include/node/v8.h:4010:43: note: candidate: ‘v8::MaybeLocal<v8::Value> v8::Object::Get(v8::Local<v8::Context>, uint32_t)’
npm ERR!  4010 |   V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
npm ERR!       |                                           ^~~
npm ERR! /home/filipedfr/.cache/node-gyp/16.13.2/include/node/v8.h:4010:43: note:   candidate expects 2 arguments, 1 provided
npm ERR! In file included from ../src/batch.cc:8:
npm ERR! ../src/common.h: In function ‘uint32_t leveldown::UInt32OptionValue(v8::Local<v8::Object>, const char*, uint32_t)’:
npm ERR! ../src/common.h:30:24: error: no matching function for call to ‘v8::Object::Has(v8::Local<v8::String>&)’
npm ERR!    30 |     && options->Has(key)
npm ERR!       |                        ^
npm ERR! In file included from /home/filipedfr/.cache/node-gyp/16.13.2/include/node/node.h:63,
npm ERR!                  from ../src/batch.cc:1:
npm ERR! /home/filipedfr/.cache/node-gyp/16.13.2/include/node/v8.h:4042:37: note: candidate: ‘v8::Maybe<bool> v8::Object::Has(v8::Local<v8::Context>, v8::Local<v8::Value>)’
npm ERR!  4042 |   V8_WARN_UNUSED_RESULT Maybe<bool> Has(Local<Context> context,
npm ERR!       |                                     ^~~
npm ERR! /home/filipedfr/.cache/node-gyp/16.13.2/include/node/v8.h:4042:37: note:   candidate expects 2 arguments, 1 provided
npm ERR! /home/filipedfr/.cache/node-gyp/16.13.2/include/node/v8.h:4048:37: note: candidate: ‘v8::Maybe<bool> v8::Object::Has(v8::Local<v8::Context>, uint32_t)’
npm ERR!  4048 |   V8_WARN_UNUSED_RESULT Maybe<bool> Has(Local<Context> context, uint32_t index);
npm ERR!       |                                     ^~~
npm ERR! /home/filipedfr/.cache/node-gyp/16.13.2/include/node/v8.h:4048:37: note:   candidate expects 2 arguments, 1 provided
npm ERR! In file included from ../src/batch.cc:8:
npm ERR! ../src/common.h:31:24: error: no matching function for call to ‘v8::Object::Get(v8::Local<v8::String>&)’
npm ERR!    31 |     && options->Get(key)->IsNumber()
npm ERR!       |                        ^
npm ERR! In file included from /home/filipedfr/.cache/node-gyp/16.13.2/include/node/node.h:63,
npm ERR!                  from ../src/batch.cc:1:
npm ERR! /home/filipedfr/.cache/node-gyp/16.13.2/include/node/v8.h:4007:43: note: candidate: ‘v8::MaybeLocal<v8::Value> v8::Object::Get(v8::Local<v8::Context>, v8::Local<v8::Value>)’
npm ERR!  4007 |   V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
npm ERR!       |                                           ^~~
npm ERR! /home/filipedfr/.cache/node-gyp/16.13.2/include/node/v8.h:4007:43: note:   candidate expects 2 arguments, 1 provided
npm ERR! /home/filipedfr/.cache/node-gyp/16.13.2/include/node/v8.h:4010:43: note: candidate: ‘v8::MaybeLocal<v8::Value> v8::Object::Get(v8::Local<v8::Context>, uint32_t)’
npm ERR!  4010 |   V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
npm ERR!       |                                           ^~~
npm ERR! /home/filipedfr/.cache/node-gyp/16.13.2/include/node/v8.h:4010:43: note:   candidate expects 2 arguments, 1 provided
npm ERR! In file included from ../src/batch.cc:8:
npm ERR! ../src/common.h:32:23: error: no matching function for call to ‘v8::Object::Get(v8::Local<v8::String>&)’
npm ERR!    32 |     ? options->Get(key)->Uint32Value()
npm ERR!       |                       ^
npm ERR! In file included from /home/filipedfr/.cache/node-gyp/16.13.2/include/node/node.h:63,
npm ERR!                  from ../src/batch.cc:1:
npm ERR! /home/filipedfr/.cache/node-gyp/16.13.2/include/node/v8.h:4007:43: note: candidate: ‘v8::MaybeLocal<v8::Value> v8::Object::Get(v8::Local<v8::Context>, v8::Local<v8::Value>)’
npm ERR!  4007 |   V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
npm ERR!       |                                           ^~~
npm ERR! /home/filipedfr/.cache/node-gyp/16.13.2/include/node/v8.h:4007:43: note:   candidate expects 2 arguments, 1 provided
npm ERR! /home/filipedfr/.cache/node-gyp/16.13.2/include/node/v8.h:4010:43: note: candidate: ‘v8::MaybeLocal<v8::Value> v8::Object::Get(v8::Local<v8::Context>, uint32_t)’
npm ERR!  4010 |   V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
npm ERR!       |                                           ^~~
npm ERR! /home/filipedfr/.cache/node-gyp/16.13.2/include/node/v8.h:4010:43: note:   candidate expects 2 arguments, 1 provided
npm ERR! ../src/batch.cc: In static member function ‘static Nan::NAN_METHOD_RETURN_TYPE leveldown::Batch::New(Nan::NAN_METHOD_ARGS_TYPE)’:
npm ERR! ../src/batch.cc:42:76: error: no matching function for call to ‘v8::Value::ToObject()’
npm ERR!    42 |   Database* database = Nan::ObjectWrap::Unwrap<Database>(info[0]->ToObject());
npm ERR!       |                                                                            ^
npm ERR! In file included from /home/filipedfr/.cache/node-gyp/16.13.2/include/node/node.h:63,
npm ERR!                  from ../src/batch.cc:1:
npm ERR! /home/filipedfr/.cache/node-gyp/16.13.2/include/node/v8.h:3060:44: note: candidate: ‘v8::MaybeLocal<v8::Object> v8::Value::ToObject(v8::Local<v8::Context>) const’
npm ERR!  3060 |   V8_WARN_UNUSED_RESULT MaybeLocal<Object> ToObject(
npm ERR!       |                                            ^~~~~~~~
npm ERR! /home/filipedfr/.cache/node-gyp/16.13.2/include/node/v8.h:3060:44: note:   candidate expects 1 argument, 0 provided
npm ERR! ../src/batch.cc: In static member function ‘static v8::Local<v8::Value> leveldown::Batch::NewInstance(v8::Local<v8::Object>, v8::Local<v8::Object>)’:
npm ERR! ../src/batch.cc:72:69: error: no matching function for call to ‘v8::FunctionTemplate::GetFunction()’
npm ERR!    72 |     maybeInstance = Nan::NewInstance(constructorHandle->GetFunction(), 1, argv);
npm ERR!       |                                                                     ^
npm ERR! In file included from /home/filipedfr/.cache/node-gyp/16.13.2/include/node/node.h:63,
npm ERR!                  from ../src/batch.cc:1:
npm ERR! /home/filipedfr/.cache/node-gyp/16.13.2/include/node/v8.h:6802:46: note: candidate: ‘v8::MaybeLocal<v8::Function> v8::FunctionTemplate::GetFunction(v8::Local<v8::Context>)’
npm ERR!  6802 |   V8_WARN_UNUSED_RESULT MaybeLocal<Function> GetFunction(
npm ERR!       |                                              ^~~~~~~~~~~
npm ERR! /home/filipedfr/.cache/node-gyp/16.13.2/include/node/v8.h:6802:46: note:   candidate expects 1 argument, 0 provided
npm ERR! ../src/batch.cc:75:69: error: no matching function for call to ‘v8::FunctionTemplate::GetFunction()’
npm ERR!    75 |     maybeInstance = Nan::NewInstance(constructorHandle->GetFunction(), 2, argv);
npm ERR!       |                                                                     ^
npm ERR! In file included from /home/filipedfr/.cache/node-gyp/16.13.2/include/node/node.h:63,
npm ERR!                  from ../src/batch.cc:1:
npm ERR! /home/filipedfr/.cache/node-gyp/16.13.2/include/node/v8.h:6802:46: note: candidate: ‘v8::MaybeLocal<v8::Function> v8::FunctionTemplate::GetFunction(v8::Local<v8::Context>)’
npm ERR!  6802 |   V8_WARN_UNUSED_RESULT MaybeLocal<Function> GetFunction(
npm ERR!       |                                              ^~~~~~~~~~~
npm ERR! /home/filipedfr/.cache/node-gyp/16.13.2/include/node/v8.h:6802:46: note:   candidate expects 1 argument, 0 provided
npm ERR! In file included from ../src/database.h:18,
npm ERR!                  from ../src/batch.cc:5:
npm ERR! ../src/batch.cc: In static member function ‘static Nan::NAN_METHOD_RETURN_TYPE leveldown::Batch::Put(Nan::NAN_METHOD_ARGS_TYPE)’:
npm ERR! ../src/leveldown.h:53:30: error: no matching function for call to ‘v8::Value::ToObject()’
npm ERR!    53 |   } else if (!from->ToObject().IsEmpty()                                       \
npm ERR!       |                              ^
npm ERR! ../src/batch.cc:91:3: note: in expansion of macro ‘LD_STRING_OR_BUFFER_TO_SLICE’
npm ERR!    91 |   LD_STRING_OR_BUFFER_TO_SLICE(key, keyBuffer, key)
npm ERR!       |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
npm ERR! In file included from /home/filipedfr/.cache/node-gyp/16.13.2/include/node/node.h:63,
npm ERR!                  from ../src/batch.cc:1:
npm ERR! /home/filipedfr/.cache/node-gyp/16.13.2/include/node/v8.h:3060:44: note: candidate: ‘v8::MaybeLocal<v8::Object> v8::Value::ToObject(v8::Local<v8::Context>) const’
npm ERR!  3060 |   V8_WARN_UNUSED_RESULT MaybeLocal<Object> ToObject(
npm ERR!       |                                            ^~~~~~~~
npm ERR! /home/filipedfr/.cache/node-gyp/16.13.2/include/node/v8.h:3060:44: note:   candidate expects 1 argument, 0 provided
npm ERR! In file included from ../src/database.h:18,
npm ERR!                  from ../src/batch.cc:5:
npm ERR! ../src/leveldown.h:54:51: error: no matching function for call to ‘v8::Value::ToObject()’
npm ERR!    54 |       && node::Buffer::HasInstance(from->ToObject())) {                        \
npm ERR!       |                                                   ^
npm ERR! ../src/batch.cc:91:3: note: in expansion of macro ‘LD_STRING_OR_BUFFER_TO_SLICE’
npm ERR!    91 |   LD_STRING_OR_BUFFER_TO_SLICE(key, keyBuffer, key)
npm ERR!       |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
npm ERR! In file included from /home/filipedfr/.cache/node-gyp/16.13.2/include/node/node.h:63,
npm ERR!                  from ../src/batch.cc:1:
npm ERR! /home/filipedfr/.cache/node-gyp/16.13.2/include/node/v8.h:3060:44: note: candidate: ‘v8::MaybeLocal<v8::Object> v8::Value::ToObject(v8::Local<v8::Context>) const’
npm ERR!  3060 |   V8_WARN_UNUSED_RESULT MaybeLocal<Object> ToObject(
npm ERR!       |                                            ^~~~~~~~
npm ERR! /home/filipedfr/.cache/node-gyp/16.13.2/include/node/v8.h:3060:44: note:   candidate expects 1 argument, 0 provided
npm ERR! In file included from ../src/database.h:18,
npm ERR!                  from ../src/batch.cc:5:
npm ERR! ../src/leveldown.h:55:53: error: no matching function for call to ‘v8::Value::ToObject()’
npm ERR!    55 |     to ## Sz_ = node::Buffer::Length(from->ToObject());                        \
npm ERR!       |                                                     ^
npm ERR! ../src/batch.cc:91:3: note: in expansion of macro ‘LD_STRING_OR_BUFFER_TO_SLICE’
npm ERR!    91 |   LD_STRING_OR_BUFFER_TO_SLICE(key, keyBuffer, key)
npm ERR!       |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
npm ERR! In file included from /home/filipedfr/.cache/node-gyp/16.13.2/include/node/node.h:63,
npm ERR!                  from ../src/batch.cc:1:
npm ERR! /home/filipedfr/.cache/node-gyp/16.13.2/include/node/v8.h:3060:44: note: candidate: ‘v8::MaybeLocal<v8::Object> v8::Value::ToObject(v8::Local<v8::Context>) const’
npm ERR!  3060 |   V8_WARN_UNUSED_RESULT MaybeLocal<Object> ToObject(
npm ERR!       |                                            ^~~~~~~~
npm ERR! /home/filipedfr/.cache/node-gyp/16.13.2/include/node/v8.h:3060:44: note:   candidate expects 1 argument, 0 provided
npm ERR! In file included from ../src/database.h:18,
npm ERR!                  from ../src/batch.cc:5:
npm ERR! ../src/leveldown.h:56:51: error: no matching function for call to ‘v8::Value::ToObject()’
npm ERR!    56 |     to ## Ch_ = node::Buffer::Data(from->ToObject());                          \
npm ERR!       |                                                   ^
npm ERR! ../src/batch.cc:91:3: note: in expansion of macro ‘LD_STRING_OR_BUFFER_TO_SLICE’
npm ERR!    91 |   LD_STRING_OR_BUFFER_TO_SLICE(key, keyBuffer, key)
npm ERR!       |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
npm ERR! In file included from /home/filipedfr/.cache/node-gyp/16.13.2/include/node/node.h:63,
npm ERR!                  from ../src/batch.cc:1:
npm ERR! /home/filipedfr/.cache/node-gyp/16.13.2/include/node/v8.h:3060:44: note: candidate: ‘v8::MaybeLocal<v8::Object> v8::Value::ToObject(v8::Local<v8::Context>) const’
npm ERR!  3060 |   V8_WARN_UNUSED_RESULT MaybeLocal<Object> ToObject(
npm ERR!       |                                            ^~~~~~~~
npm ERR! /home/filipedfr/.cache/node-gyp/16.13.2/include/node/v8.h:3060:44: note:   candidate expects 1 argument, 0 provided
npm ERR! In file included from ../src/database.h:18,
npm ERR!                  from ../src/batch.cc:5:
npm ERR! ../src/leveldown.h:58:54: error: no matching function for call to ‘v8::Value::ToString()’
npm ERR!    58 |     v8::Local<v8::String> to ## Str = from->ToString();                        \
npm ERR!       |                                                      ^
npm ERR! ../src/batch.cc:91:3: note: in expansion of macro ‘LD_STRING_OR_BUFFER_TO_SLICE’
npm ERR!    91 |   LD_STRING_OR_BUFFER_TO_SLICE(key, keyBuffer, key)
npm ERR!       |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
npm ERR! In file included from /home/filipedfr/.cache/node-gyp/16.13.2/include/node/node.h:63,
npm ERR!                  from ../src/batch.cc:1:
npm ERR! /home/filipedfr/.cache/node-gyp/16.13.2/include/node/v8.h:3048:44: note: candidate: ‘v8::MaybeLocal<v8::String> v8::Value::ToString(v8::Local<v8::Context>) const’
npm ERR!  3048 |   V8_WARN_UNUSED_RESULT MaybeLocal<String> ToString(
npm ERR!       |                                            ^~~~~~~~
npm ERR! /home/filipedfr/.cache/node-gyp/16.13.2/include/node/v8.h:3048:44: note:   candidate expects 1 argument, 0 provided
npm ERR! In file included from ../src/database.h:18,
npm ERR!                  from ../src/batch.cc:5:
npm ERR! ../src/leveldown.h:59:39: error: no matching function for call to ‘v8::String::Utf8Length()’
npm ERR!    59 |     to ## Sz_ = to ## Str->Utf8Length();                                       \
npm ERR!       |                                       ^
npm ERR! ../src/batch.cc:91:3: note: in expansion of macro ‘LD_STRING_OR_BUFFER_TO_SLICE’
npm ERR!    91 |   LD_STRING_OR_BUFFER_TO_SLICE(key, keyBuffer, key)
npm ERR!       |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
npm ERR! In file included from /home/filipedfr/.cache/node-gyp/16.13.2/include/node/node.h:63,
npm ERR!                  from ../src/batch.cc:1:
npm ERR! /home/filipedfr/.cache/node-gyp/16.13.2/include/node/v8.h:3217:7: note: candidate: ‘int v8::String::Utf8Length(v8::Isolate*) const’
npm ERR!  3217 |   int Utf8Length(Isolate* isolate) const;
npm ERR!       |       ^~~~~~~~~~
npm ERR! /home/filipedfr/.cache/node-gyp/16.13.2/include/node/v8.h:3217:7: note:   candidate expects 1 argument, 0 provided
npm ERR! In file included from ../src/database.h:18,
npm ERR!                  from ../src/batch.cc:5:
npm ERR! ../src/batch.cc:91:32: error: cannot convert ‘char*’ to ‘v8::Isolate*’
npm ERR!    91 |   LD_STRING_OR_BUFFER_TO_SLICE(key, keyBuffer, key)
npm ERR!       |                                ^~~
npm ERR!       |                                |
npm ERR!       |                                char*
npm ERR! ../src/leveldown.h:62:9: note: in definition of macro ‘LD_STRING_OR_BUFFER_TO_SLICE’
npm ERR!    62 |         to ## Ch_                                                              \
npm ERR!       |         ^~
npm ERR! In file included from /home/filipedfr/.cache/node-gyp/16.13.2/include/node/node.h:63,
npm ERR!                  from ../src/batch.cc:1:
npm ERR! /home/filipedfr/.cache/node-gyp/16.13.2/include/node/v8.h:3277:26: note:   initializing argument 1 of ‘int v8::String::WriteUtf8(v8::Isolate*, char*, int, int*, int) const’
npm ERR!  3277 |   int WriteUtf8(Isolate* isolate, char* buffer, int length = -1,
npm ERR!       |                 ~~~~~~~~~^~~~~~~
npm ERR! In file included from ../src/database.h:18,
npm ERR!                  from ../src/batch.cc:5:
npm ERR! ../src/leveldown.h:53:30: error: no matching function for call to ‘v8::Value::ToObject()’
npm ERR!    53 |   } else if (!from->ToObject().IsEmpty()                                       \
npm ERR!       |                              ^
npm ERR! ../src/batch.cc:92:3: note: in expansion of macro ‘LD_STRING_OR_BUFFER_TO_SLICE’
npm ERR!    92 |   LD_STRING_OR_BUFFER_TO_SLICE(value, valueBuffer, value)
npm ERR!       |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
npm ERR! In file included from /home/filipedfr/.cache/node-gyp/16.13.2/include/node/node.h:63,
npm ERR!                  from ../src/batch.cc:1:
npm ERR! /home/filipedfr/.cache/node-gyp/16.13.2/include/node/v8.h:3060:44: note: candidate: ‘v8::MaybeLocal<v8::Object> v8::Value::ToObject(v8::Local<v8::Context>) const’
npm ERR!  3060 |   V8_WARN_UNUSED_RESULT MaybeLocal<Object> ToObject(
npm ERR!       |                                            ^~~~~~~~
npm ERR! /home/filipedfr/.cache/node-gyp/16.13.2/include/node/v8.h:3060:44: note:   candidate expects 1 argument, 0 provided
npm ERR! In file included from ../src/database.h:18,
npm ERR!                  from ../src/batch.cc:5:
npm ERR! ../src/leveldown.h:54:51: error: no matching function for call to ‘v8::Value::ToObject()’
npm ERR!    54 |       && node::Buffer::HasInstance(from->ToObject())) {                        \
npm ERR!       |                                                   ^
npm ERR! ../src/batch.cc:92:3: note: in expansion of macro ‘LD_STRING_OR_BUFFER_TO_SLICE’
npm ERR!    92 |   LD_STRING_OR_BUFFER_TO_SLICE(value, valueBuffer, value)
npm ERR!       |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
npm ERR! In file included from /home/filipedfr/.cache/node-gyp/16.13.2/include/node/node.h:63,
npm ERR!                  from ../src/batch.cc:1:
npm ERR! /home/filipedfr/.cache/node-gyp/16.13.2/include/node/v8.h:3060:44: note: candidate: ‘v8::MaybeLocal<v8::Object> v8::Value::ToObject(v8::Local<v8::Context>) const’
npm ERR!  3060 |   V8_WARN_UNUSED_RESULT MaybeLocal<Object> ToObject(
npm ERR!       |                                            ^~~~~~~~
npm ERR! /home/filipedfr/.cache/node-gyp/16.13.2/include/node/v8.h:3060:44: note:   candidate expects 1 argument, 0 provided
npm ERR! In file included from ../src/database.h:18,
npm ERR!                  from ../src/batch.cc:5:
npm ERR! ../src/leveldown.h:55:53: error: no matching function for call to ‘v8::Value::ToObject()’
npm ERR!    55 |     to ## Sz_ = node::Buffer::Length(from->ToObject());                        \
npm ERR!       |                                                     ^
npm ERR! ../src/batch.cc:92:3: note: in expansion of macro ‘LD_STRING_OR_BUFFER_TO_SLICE’
npm ERR!    92 |   LD_STRING_OR_BUFFER_TO_SLICE(value, valueBuffer, value)
npm ERR!       |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
npm ERR! In file included from /home/filipedfr/.cache/node-gyp/16.13.2/include/node/node.h:63,
npm ERR!                  from ../src/batch.cc:1:
npm ERR! /home/filipedfr/.cache/node-gyp/16.13.2/include/node/v8.h:3060:44: note: candidate: ‘v8::MaybeLocal<v8::Object> v8::Value::ToObject(v8::Local<v8::Context>) const’
npm ERR!  3060 |   V8_WARN_UNUSED_RESULT MaybeLocal<Object> ToObject(
npm ERR!       |                                            ^~~~~~~~
npm ERR! /home/filipedfr/.cache/node-gyp/16.13.2/include/node/v8.h:3060:44: note:   candidate expects 1 argument, 0 provided
npm ERR! In file included from ../src/database.h:18,
npm ERR!                  from ../src/batch.cc:5:
npm ERR! ../src/leveldown.h:56:51: error: no matching function for call to ‘v8::Value::ToObject()’
npm ERR!    56 |     to ## Ch_ = node::Buffer::Data(from->ToObject());                          \
npm ERR!       |                                                   ^
npm ERR! ../src/batch.cc:92:3: note: in expansion of macro ‘LD_STRING_OR_BUFFER_TO_SLICE’
npm ERR!    92 |   LD_STRING_OR_BUFFER_TO_SLICE(value, valueBuffer, value)
npm ERR!       |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
npm ERR! In file included from /home/filipedfr/.cache/node-gyp/16.13.2/include/node/node.h:63,
npm ERR!                  from ../src/batch.cc:1:
npm ERR! /home/filipedfr/.cache/node-gyp/16.13.2/include/node/v8.h:3060:44: note: candidate: ‘v8::MaybeLocal<v8::Object> v8::Value::ToObject(v8::Local<v8::Context>) const’
npm ERR!  3060 |   V8_WARN_UNUSED_RESULT MaybeLocal<Object> ToObject(
npm ERR!       |                                            ^~~~~~~~
npm ERR! /home/filipedfr/.cache/node-gyp/16.13.2/include/node/v8.h:3060:44: note:   candidate expects 1 argument, 0 provided
npm ERR! In file included from ../src/database.h:18,
npm ERR!                  from ../src/batch.cc:5:
npm ERR! ../src/leveldown.h:58:54: error: no matching function for call to ‘v8::Value::ToString()’
npm ERR!    58 |     v8::Local<v8::String> to ## Str = from->ToString();                        \
npm ERR!       |                                                      ^
npm ERR! ../src/batch.cc:92:3: note: in expansion of macro ‘LD_STRING_OR_BUFFER_TO_SLICE’
npm ERR!    92 |   LD_STRING_OR_BUFFER_TO_SLICE(value, valueBuffer, value)
npm ERR!       |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
npm ERR! In file included from /home/filipedfr/.cache/node-gyp/16.13.2/include/node/node.h:63,
npm ERR!                  from ../src/batch.cc:1:
npm ERR! /home/filipedfr/.cache/node-gyp/16.13.2/include/node/v8.h:3048:44: note: candidate: ‘v8::MaybeLocal<v8::String> v8::Value::ToString(v8::Local<v8::Context>) const’
npm ERR!  3048 |   V8_WARN_UNUSED_RESULT MaybeLocal<String> ToString(
npm ERR!       |                                            ^~~~~~~~
npm ERR! /home/filipedfr/.cache/node-gyp/16.13.2/include/node/v8.h:3048:44: note:   candidate expects 1 argument, 0 provided
npm ERR! In file included from ../src/database.h:18,
npm ERR!                  from ../src/batch.cc:5:
npm ERR! ../src/leveldown.h:59:39: error: no matching function for call to ‘v8::String::Utf8Length()’
npm ERR!    59 |     to ## Sz_ = to ## Str->Utf8Length();                                       \
npm ERR!       |                                       ^
npm ERR! ../src/batch.cc:92:3: note: in expansion of macro ‘LD_STRING_OR_BUFFER_TO_SLICE’
npm ERR!    92 |   LD_STRING_OR_BUFFER_TO_SLICE(value, valueBuffer, value)
npm ERR!       |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
npm ERR! In file included from /home/filipedfr/.cache/node-gyp/16.13.2/include/node/node.h:63,
npm ERR!                  from ../src/batch.cc:1:
npm ERR! /home/filipedfr/.cache/node-gyp/16.13.2/include/node/v8.h:3217:7: note: candidate: ‘int v8::String::Utf8Length(v8::Isolate*) const’
npm ERR!  3217 |   int Utf8Length(Isolate* isolate) const;
npm ERR!       |       ^~~~~~~~~~
npm ERR! /home/filipedfr/.cache/node-gyp/16.13.2/include/node/v8.h:3217:7: note:   candidate expects 1 argument, 0 provided
npm ERR! In file included from ../src/database.h:18,
npm ERR!                  from ../src/batch.cc:5:
npm ERR! ../src/batch.cc:92:32: error: cannot convert ‘char*’ to ‘v8::Isolate*’
npm ERR!    92 |   LD_STRING_OR_BUFFER_TO_SLICE(value, valueBuffer, value)
npm ERR!       |                                ^~~~~
npm ERR!       |                                |
npm ERR!       |                                char*
npm ERR! ../src/leveldown.h:62:9: note: in definition of macro ‘LD_STRING_OR_BUFFER_TO_SLICE’
npm ERR!    62 |         to ## Ch_                                                              \
npm ERR!       |         ^~
npm ERR! In file included from /home/filipedfr/.cache/node-gyp/16.13.2/include/node/node.h:63,
npm ERR!                  from ../src/batch.cc:1:
npm ERR! /home/filipedfr/.cache/node-gyp/16.13.2/include/node/v8.h:3277:26: note:   initializing argument 1 of ‘int v8::String::WriteUtf8(v8::Isolate*, char*, int, int*, int) const’
npm ERR!  3277 |   int WriteUtf8(Isolate* isolate, char* buffer, int length = -1,
npm ERR!       |                 ~~~~~~~~~^~~~~~~
npm ERR! In file included from ../src/database.h:18,
npm ERR!                  from ../src/batch.cc:5:
npm ERR! ../src/batch.cc: In static member function ‘static Nan::NAN_METHOD_RETURN_TYPE leveldown::Batch::Del(Nan::NAN_METHOD_ARGS_TYPE)’:
npm ERR! ../src/leveldown.h:53:30: error: no matching function for call to ‘v8::Value::ToObject()’
npm ERR!    53 |   } else if (!from->ToObject().IsEmpty()                                       \
npm ERR!       |                              ^
npm ERR! ../src/batch.cc:110:3: note: in expansion of macro ‘LD_STRING_OR_BUFFER_TO_SLICE’
npm ERR!   110 |   LD_STRING_OR_BUFFER_TO_SLICE(key, keyBuffer, key)
npm ERR!       |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
npm ERR! In file included from /home/filipedfr/.cache/node-gyp/16.13.2/include/node/node.h:63,
npm ERR!                  from ../src/batch.cc:1:
npm ERR! /home/filipedfr/.cache/node-gyp/16.13.2/include/node/v8.h:3060:44: note: candidate: ‘v8::MaybeLocal<v8::Object> v8::Value::ToObject(v8::Local<v8::Context>) const’
npm ERR!  3060 |   V8_WARN_UNUSED_RESULT MaybeLocal<Object> ToObject(
npm ERR!       |                                            ^~~~~~~~
npm ERR! /home/filipedfr/.cache/node-gyp/16.13.2/include/node/v8.h:3060:44: note:   candidate expects 1 argument, 0 provided
npm ERR! In file included from ../src/database.h:18,
npm ERR!                  from ../src/batch.cc:5:
npm ERR! ../src/leveldown.h:54:51: error: no matching function for call to ‘v8::Value::ToObject()’
npm ERR!    54 |       && node::Buffer::HasInstance(from->ToObject())) {                        \
npm ERR!       |                                                   ^
npm ERR! ../src/batch.cc:110:3: note: in expansion of macro ‘LD_STRING_OR_BUFFER_TO_SLICE’
npm ERR!   110 |   LD_STRING_OR_BUFFER_TO_SLICE(key, keyBuffer, key)
npm ERR!       |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
npm ERR! In file included from /home/filipedfr/.cache/node-gyp/16.13.2/include/node/node.h:63,
npm ERR!                  from ../src/batch.cc:1:
npm ERR! /home/filipedfr/.cache/node-gyp/16.13.2/include/node/v8.h:3060:44: note: candidate: ‘v8::MaybeLocal<v8::Object> v8::Value::ToObject(v8::Local<v8::Context>) const’
npm ERR!  3060 |   V8_WARN_UNUSED_RESULT MaybeLocal<Object> ToObject(
npm ERR!       |                                            ^~~~~~~~
npm ERR! /home/filipedfr/.cache/node-gyp/16.13.2/include/node/v8.h:3060:44: note:   candidate expects 1 argument, 0 provided
npm ERR! In file included from ../src/database.h:18,
npm ERR!                  from ../src/batch.cc:5:
npm ERR! ../src/leveldown.h:55:53: error: no matching function for call to ‘v8::Value::ToObject()’
npm ERR!    55 |     to ## Sz_ = node::Buffer::Length(from->ToObject());                        \
npm ERR!       |                                                     ^
npm ERR! ../src/batch.cc:110:3: note: in expansion of macro ‘LD_STRING_OR_BUFFER_TO_SLICE’
npm ERR!   110 |   LD_STRING_OR_BUFFER_TO_SLICE(key, keyBuffer, key)
npm ERR!       |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
npm ERR! In file included from /home/filipedfr/.cache/node-gyp/16.13.2/include/node/node.h:63,
npm ERR!                  from ../src/batch.cc:1:
npm ERR! /home/filipedfr/.cache/node-gyp/16.13.2/include/node/v8.h:3060:44: note: candidate: ‘v8::MaybeLocal<v8::Object> v8::Value::ToObject(v8::Local<v8::Context>) const’
npm ERR!  3060 |   V8_WARN_UNUSED_RESULT MaybeLocal<Object> ToObject(
npm ERR!       |                                            ^~~~~~~~
npm ERR! /home/filipedfr/.cache/node-gyp/16.13.2/include/node/v8.h:3060:44: note:   candidate expects 1 argument, 0 provided
npm ERR! In file included from ../src/database.h:18,
npm ERR!                  from ../src/batch.cc:5:
npm ERR! ../src/leveldown.h:56:51: error: no matching function for call to ‘v8::Value::ToObject()’
npm ERR!    56 |     to ## Ch_ = node::Buffer::Data(from->ToObject());                          \
npm ERR!       |                                                   ^
npm ERR! ../src/batch.cc:110:3: note: in expansion of macro ‘LD_STRING_OR_BUFFER_TO_SLICE’
npm ERR!   110 |   LD_STRING_OR_BUFFER_TO_SLICE(key, keyBuffer, key)
npm ERR!       |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
npm ERR! In file included from /home/filipedfr/.cache/node-gyp/16.13.2/include/node/node.h:63,
npm ERR!                  from ../src/batch.cc:1:
npm ERR! /home/filipedfr/.cache/node-gyp/16.13.2/include/node/v8.h:3060:44: note: candidate: ‘v8::MaybeLocal<v8::Object> v8::Value::ToObject(v8::Local<v8::Context>) const’
npm ERR!  3060 |   V8_WARN_UNUSED_RESULT MaybeLocal<Object> ToObject(
npm ERR!       |                                            ^~~~~~~~
npm ERR! /home/filipedfr/.cache/node-gyp/16.13.2/include/node/v8.h:3060:44: note:   candidate expects 1 argument, 0 provided
npm ERR! In file included from ../src/database.h:18,
npm ERR!                  from ../src/batch.cc:5:
npm ERR! ../src/leveldown.h:58:54: error: no matching function for call to ‘v8::Value::ToString()’
npm ERR!    58 |     v8::Local<v8::String> to ## Str = from->ToString();                        \
npm ERR!       |                                                      ^
npm ERR! ../src/batch.cc:110:3: note: in expansion of macro ‘LD_STRING_OR_BUFFER_TO_SLICE’
npm ERR!   110 |   LD_STRING_OR_BUFFER_TO_SLICE(key, keyBuffer, key)
npm ERR!       |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
npm ERR! In file included from /home/filipedfr/.cache/node-gyp/16.13.2/include/node/node.h:63,
npm ERR!                  from ../src/batch.cc:1:
npm ERR! /home/filipedfr/.cache/node-gyp/16.13.2/include/node/v8.h:3048:44: note: candidate: ‘v8::MaybeLocal<v8::String> v8::Value::ToString(v8::Local<v8::Context>) const’
npm ERR!  3048 |   V8_WARN_UNUSED_RESULT MaybeLocal<String> ToString(
npm ERR!       |                                            ^~~~~~~~
npm ERR! /home/filipedfr/.cache/node-gyp/16.13.2/include/node/v8.h:3048:44: note:   candidate expects 1 argument, 0 provided
npm ERR! In file included from ../src/database.h:18,
npm ERR!                  from ../src/batch.cc:5:
npm ERR! ../src/leveldown.h:59:39: error: no matching function for call to ‘v8::String::Utf8Length()’
npm ERR!    59 |     to ## Sz_ = to ## Str->Utf8Length();                                       \
npm ERR!       |                                       ^
npm ERR! ../src/batch.cc:110:3: note: in expansion of macro ‘LD_STRING_OR_BUFFER_TO_SLICE’
npm ERR!   110 |   LD_STRING_OR_BUFFER_TO_SLICE(key, keyBuffer, key)
npm ERR!       |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
npm ERR! In file included from /home/filipedfr/.cache/node-gyp/16.13.2/include/node/node.h:63,
npm ERR!                  from ../src/batch.cc:1:
npm ERR! /home/filipedfr/.cache/node-gyp/16.13.2/include/node/v8.h:3217:7: note: candidate: ‘int v8::String::Utf8Length(v8::Isolate*) const’
npm ERR!  3217 |   int Utf8Length(Isolate* isolate) const;
npm ERR!       |       ^~~~~~~~~~
npm ERR! /home/filipedfr/.cache/node-gyp/16.13.2/include/node/v8.h:3217:7: note:   candidate expects 1 argument, 0 provided
npm ERR! In file included from ../src/database.h:18,
npm ERR!                  from ../src/batch.cc:5:
npm ERR! ../src/batch.cc:110:32: error: cannot convert ‘char*’ to ‘v8::Isolate*’
npm ERR!   110 |   LD_STRING_OR_BUFFER_TO_SLICE(key, keyBuffer, key)
npm ERR!       |                                ^~~
npm ERR!       |                                |
npm ERR!       |                                char*
npm ERR! ../src/leveldown.h:62:9: note: in definition of macro ‘LD_STRING_OR_BUFFER_TO_SLICE’
npm ERR!    62 |         to ## Ch_                                                              \
npm ERR!       |         ^~
npm ERR! In file included from /home/filipedfr/.cache/node-gyp/16.13.2/include/node/node.h:63,
npm ERR!                  from ../src/batch.cc:1:
npm ERR! /home/filipedfr/.cache/node-gyp/16.13.2/include/node/v8.h:3277:26: note:   initializing argument 1 of ‘int v8::String::WriteUtf8(v8::Isolate*, char*, int, int*, int) const’
npm ERR!  3277 |   int WriteUtf8(Isolate* isolate, char* buffer, int length = -1,
npm ERR!       |                 ~~~~~~~~~^~~~~~~
npm ERR! make: *** [leveldown.target.mk:131: Release/obj.target/leveldown/src/batch.o] Error 1
npm ERR! gyp ERR! build error
npm ERR! gyp ERR! stack Error: `make` failed with exit code: 2
npm ERR! gyp ERR! stack     at ChildProcess.onExit (/usr/local/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:194:23)
npm ERR! gyp ERR! stack     at ChildProcess.emit (node:events:390:28)
npm ERR! gyp ERR! stack     at Process.ChildProcess._handle.onexit (node:internal/child_process:290:12)
npm ERR! gyp ERR! System Linux 5.10.16.3-microsoft-standard-WSL2
npm ERR! gyp ERR! command "/usr/local/bin/node" "/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
npm ERR! gyp ERR! cwd /home/filipedfr/.npm-global/lib/node_modules/orbit-db-cli/node_modules/leveldown
npm ERR! gyp ERR! node -v v16.13.2
npm ERR! gyp ERR! node-gyp -v v8.3.0
npm ERR! gyp ERR! not ok

npm ERR! A complete log of this run can be found in:
npm ERR!     /home/filipedfr/.npm/_logs/2022-01-15T14_56_53_201Z-debug.log

Using git clone and npm install

npm ERR! code 1
npm ERR! path /home/filipedfr/orbit-db-cli/node_modules/tiny-secp256k1
npm ERR! command failed
npm ERR! command sh -c node-gyp rebuild
npm ERR! make: Entering directory '/home/filipedfr/orbit-db-cli/node_modules/tiny-secp256k1/build'
npm ERR!   CXX(target) Release/obj.target/secp256k1/native/addon.o
npm ERR! make: Leaving directory '/home/filipedfr/orbit-db-cli/node_modules/tiny-secp256k1/build'
npm ERR! gyp info it worked if it ends with ok
npm ERR! gyp info using [email protected]
npm ERR! gyp info using [email protected] | linux | x64
npm ERR! gyp info find Python using Python version 3.9.6 found at "/usr/local/bin/python3"
npm ERR! gyp info spawn /usr/local/bin/python3
npm ERR! gyp info spawn args [
npm ERR! gyp info spawn args   '/usr/local/lib/node_modules/npm/node_modules/node-gyp/gyp/gyp_main.py',
npm ERR! gyp info spawn args   'binding.gyp',
npm ERR! gyp info spawn args   '-f',
npm ERR! gyp info spawn args   'make',
npm ERR! gyp info spawn args   '-I',
npm ERR! gyp info spawn args   '/home/filipedfr/orbit-db-cli/node_modules/tiny-secp256k1/build/config.gypi',
npm ERR! gyp info spawn args   '-I',
npm ERR! gyp info spawn args   '/usr/local/lib/node_modules/npm/node_modules/node-gyp/addon.gypi',
npm ERR! gyp info spawn args   '-I',
npm ERR! gyp info spawn args   '/home/filipedfr/.cache/node-gyp/16.13.2/include/node/common.gypi',
npm ERR! gyp info spawn args   '-Dlibrary=shared_library',
npm ERR! gyp info spawn args   '-Dvisibility=default',
npm ERR! gyp info spawn args   '-Dnode_root_dir=/home/filipedfr/.cache/node-gyp/16.13.2',
npm ERR! gyp info spawn args   '-Dnode_gyp_dir=/usr/local/lib/node_modules/npm/node_modules/node-gyp',
npm ERR! gyp info spawn args   '-Dnode_lib_file=/home/filipedfr/.cache/node-gyp/16.13.2/<(target_arch)/node.lib',
npm ERR! gyp info spawn args   '-Dmodule_root_dir=/home/filipedfr/orbit-db-cli/node_modules/tiny-secp256k1',
npm ERR! gyp info spawn args   '-Dnode_engine=v8',
npm ERR! gyp info spawn args   '--depth=.',
npm ERR! gyp info spawn args   '--no-parallel',
npm ERR! gyp info spawn args   '--generator-output',
npm ERR! gyp info spawn args   'build',
npm ERR! gyp info spawn args   '-Goutput_dir=.'
npm ERR! gyp info spawn args ]
npm ERR! gyp info spawn make
npm ERR! gyp info spawn args [ 'BUILDTYPE=Release', '-C', 'build' ]
npm ERR! In file included from ../native/addon.cpp:4:
npm ERR! ../../nan/nan.h: In function ‘void Nan::AsyncQueueWorker(Nan::AsyncWorker*)’:
npm ERR! ../../nan/nan.h:2232:62: warning: cast between incompatible function types from ‘void (*)(uv_work_t*)’ {aka ‘void (*)(uv_work_s*)’} to ‘uv_after_work_cb’ {aka ‘void (*)(uv_work_s*, int)’} [-Wcast-function-type]
npm ERR!  2232 |     , reinterpret_cast<uv_after_work_cb>(AsyncExecuteComplete)
npm ERR!       |                                                              ^
npm ERR! ../native/addon.cpp: In function ‘Nan::NAN_METHOD_RETURN_TYPE ecdsaVerify(Nan::NAN_METHOD_ARGS_TYPE)’:
npm ERR! ../native/addon.cpp:320:34: error: no matching function for call to ‘v8::Value::BooleanValue()’
npm ERR!   320 |   strict = info[3]->BooleanValue();
npm ERR!       |                                  ^
npm ERR! In file included from /home/filipedfr/.cache/node-gyp/16.13.2/include/node/node.h:63,
npm ERR!                  from ../../nan/nan.h:53,
npm ERR!                  from ../native/addon.cpp:4:
npm ERR! /home/filipedfr/.cache/node-gyp/16.13.2/include/node/v8.h:3096:8: note: candidate: ‘bool v8::Value::BooleanValue(v8::Isolate*) const’
npm ERR!  3096 |   bool BooleanValue(Isolate* isolate) const;
npm ERR!       |        ^~~~~~~~~~~~
npm ERR! /home/filipedfr/.cache/node-gyp/16.13.2/include/node/v8.h:3096:8: note:   candidate expects 1 argument, 0 provided
npm ERR! In file included from ../../nan/nan.h:53,
npm ERR!                  from ../native/addon.cpp:4:
npm ERR! ../native/addon.cpp: At global scope:
npm ERR! /home/filipedfr/.cache/node-gyp/16.13.2/include/node/node.h:821:43: warning: cast between incompatible function types from ‘void (*)(Nan::ADDON_REGISTER_FUNCTION_ARGS_TYPE)’ {aka ‘void (*)(v8::Local<v8::Object>)’} to ‘node::addon_register_func’ {aka ‘void (*)(v8::Local<v8::Object>, v8::Local<v8::Value>, void*)’} [-Wcast-function-type]
npm ERR!   821 |       (node::addon_register_func) (regfunc),                          \
npm ERR!       |                                           ^
npm ERR! /home/filipedfr/.cache/node-gyp/16.13.2/include/node/node.h:855:3: note: in expansion of macro ‘NODE_MODULE_X’
npm ERR!   855 |   NODE_MODULE_X(modname, regfunc, NULL, 0)  // NOLINT (readability/null_usage)
npm ERR!       |   ^~~~~~~~~~~~~
npm ERR! ../native/addon.cpp:359:1: note: in expansion of macro ‘NODE_MODULE’
npm ERR!   359 | NODE_MODULE(secp256k1, Init)
npm ERR!       | ^~~~~~~~~~~
npm ERR! ../native/addon.cpp: In instantiation of ‘unsigned int {anonymous}::assumeCompression(const I&, const A&) [with long unsigned int index = 2; I = Nan::FunctionCallbackInfo<v8::Value>; A = v8::Local<v8::Object>]’:
npm ERR! ../native/addon.cpp:142:50:   required from here
npm ERR! ../native/addon.cpp:80:21: warning: comparison of integer expressions of different signedness: ‘int’ and ‘long unsigned int’ [-Wsign-compare]
npm ERR!    80 |   if (info.Length() <= index) return __isPointCompressed(p) ? SECP256K1_EC_COMPRESSED : SECP256K1_EC_UNCOMPRESSED;
npm ERR! ../native/addon.cpp:82:38: error: no matching function for call to ‘v8::Value::BooleanValue()’
npm ERR!    82 |   return info[index]->BooleanValue() ? SECP256K1_EC_COMPRESSED : SECP256K1_EC_UNCOMPRESSED;
npm ERR! In file included from /home/filipedfr/.cache/node-gyp/16.13.2/include/node/node.h:63,
npm ERR!                  from ../../nan/nan.h:53,
npm ERR!                  from ../native/addon.cpp:4:
npm ERR! /home/filipedfr/.cache/node-gyp/16.13.2/include/node/v8.h:3096:8: note: candidate: ‘bool v8::Value::BooleanValue(v8::Isolate*) const’
npm ERR!  3096 |   bool BooleanValue(Isolate* isolate) const;
npm ERR!       |        ^~~~~~~~~~~~
npm ERR! /home/filipedfr/.cache/node-gyp/16.13.2/include/node/v8.h:3096:8: note:   candidate expects 1 argument, 0 provided
npm ERR! ../native/addon.cpp: In instantiation of ‘unsigned int {anonymous}::assumeCompression(const I&, const A&) [with long unsigned int index = 1; I = Nan::FunctionCallbackInfo<v8::Value>; A = v8::Local<v8::Object>]’:
npm ERR! ../native/addon.cpp:174:49:   required from here
npm ERR! ../native/addon.cpp:80:21: warning: comparison of integer expressions of different signedness: ‘int’ and ‘long unsigned int’ [-Wsign-compare]
npm ERR!    80 |   if (info.Length() <= index) return __isPointCompressed(p) ? SECP256K1_EC_COMPRESSED : SECP256K1_EC_UNCOMPRESSED;
npm ERR! ../native/addon.cpp:82:38: error: no matching function for call to ‘v8::Value::BooleanValue()’
npm ERR!    82 |   return info[index]->BooleanValue() ? SECP256K1_EC_COMPRESSED : SECP256K1_EC_UNCOMPRESSED;
npm ERR! In file included from /home/filipedfr/.cache/node-gyp/16.13.2/include/node/node.h:63,
npm ERR!                  from ../../nan/nan.h:53,
npm ERR!                  from ../native/addon.cpp:4:
npm ERR! /home/filipedfr/.cache/node-gyp/16.13.2/include/node/v8.h:3096:8: note: candidate: ‘bool v8::Value::BooleanValue(v8::Isolate*) const’
npm ERR!  3096 |   bool BooleanValue(Isolate* isolate) const;
npm ERR!       |        ^~~~~~~~~~~~
npm ERR! /home/filipedfr/.cache/node-gyp/16.13.2/include/node/v8.h:3096:8: note:   candidate expects 1 argument, 0 provided
npm ERR! ../native/addon.cpp: In instantiation of ‘unsigned int {anonymous}::assumeCompression(const I&) [with long unsigned int index = 1; I = Nan::FunctionCallbackInfo<v8::Value>]’:
npm ERR! ../native/addon.cpp:189:46:   required from here
npm ERR! ../native/addon.cpp:87:21: warning: comparison of integer expressions of different signedness: ‘int’ and ‘long unsigned int’ [-Wsign-compare]
npm ERR!    87 |   if (info.Length() <= index) return SECP256K1_EC_COMPRESSED;
npm ERR! ../native/addon.cpp:89:38: error: no matching function for call to ‘v8::Value::BooleanValue()’
npm ERR!    89 |   return info[index]->BooleanValue() ? SECP256K1_EC_COMPRESSED : SECP256K1_EC_UNCOMPRESSED;
npm ERR! In file included from /home/filipedfr/.cache/node-gyp/16.13.2/include/node/node.h:63,
npm ERR!                  from ../../nan/nan.h:53,
npm ERR!                  from ../native/addon.cpp:4:
npm ERR! /home/filipedfr/.cache/node-gyp/16.13.2/include/node/v8.h:3096:8: note: candidate: ‘bool v8::Value::BooleanValue(v8::Isolate*) const’
npm ERR!  3096 |   bool BooleanValue(Isolate* isolate) const;
npm ERR!       |        ^~~~~~~~~~~~
npm ERR! /home/filipedfr/.cache/node-gyp/16.13.2/include/node/v8.h:3096:8: note:   candidate expects 1 argument, 0 provided
npm ERR! ../native/addon.cpp: In function ‘Nan::NAN_METHOD_RETURN_TYPE eccPrivateSub(Nan::NAN_METHOD_ARGS_TYPE)’:
npm ERR! ../native/addon.cpp:240:29: warning: ignoring return value of ‘int secp256k1_ec_privkey_negate(const secp256k1_context*, unsigned char*)’, declared with attribute warn_unused_result [-Wunused-result]
npm ERR!   240 |  secp256k1_ec_privkey_negate(context, tweak_negated); // returns 1 always
npm ERR!       |  ~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
npm ERR! make: *** [secp256k1.target.mk:152: Release/obj.target/secp256k1/native/addon.o] Error 1
npm ERR! gyp ERR! build error
npm ERR! gyp ERR! stack Error: `make` failed with exit code: 2
npm ERR! gyp ERR! stack     at ChildProcess.onExit (/usr/local/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:194:23)
npm ERR! gyp ERR! stack     at ChildProcess.emit (node:events:390:28)
npm ERR! gyp ERR! stack     at Process.ChildProcess._handle.onexit (node:internal/child_process:290:12)
npm ERR! gyp ERR! System Linux 5.10.16.3-microsoft-standard-WSL2
npm ERR! gyp ERR! command "/usr/local/bin/node" "/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
npm ERR! gyp ERR! cwd /home/filipedfr/orbit-db-cli/node_modules/tiny-secp256k1
npm ERR! gyp ERR! node -v v16.13.2
npm ERR! gyp ERR! node-gyp -v v8.3.0
npm ERR! gyp ERR! not ok

npm ERR! A complete log of this run can be found in:
npm ERR!     /home/filipedfr/.npm/_logs/2022-01-15T14_54_45_933Z-debug.log

Thanks!

Error with lock file

I've been using orbit-db in my nodejs projects, which works really great btw! However, when trying to query databases created with the orbit-db-cli, I get a weird error. For example, this command: orbitdb info orbitdb/<hash>/<db_name>, gives me this error: Error: Lock FcntlFlock of <example_path>/orbitdb/ipfs/repo.lock failed: EBADF, Bad file descriptor.

No idea what that means.

Error: Could not locate the bindings file.

I have been trying to install and use orbit-db-cli. After installing it via npm and git clone.

Via npm, it gets installed with no issue, when typing orbitdb in the command line, it shows the following:

danieldev@danieldev:~$ orbitdb
/home/danieldev/orbit-db-cli/node_modules/leveldown/node_modules/bindings/bindings.js:99
  throw err
  ^

Error: Could not locate the bindings file. Tried:
 → /home/danieldev/orbit-db-cli/node_modules/leveldown/build/leveldown.node
 → /home/danieldev/orbit-db-cli/node_modules/leveldown/build/Debug/leveldown.node
 → /home/danieldev/orbit-db-cli/node_modules/leveldown/build/Release/leveldown.node
 → /home/danieldev/orbit-db-cli/node_modules/leveldown/out/Debug/leveldown.node
 → /home/danieldev/orbit-db-cli/node_modules/leveldown/Debug/leveldown.node
 → /home/danieldev/orbit-db-cli/node_modules/leveldown/out/Release/leveldown.node
 → /home/danieldev/orbit-db-cli/node_modules/leveldown/Release/leveldown.node
 → /home/danieldev/orbit-db-cli/node_modules/leveldown/build/default/leveldown.node
 → /home/danieldev/orbit-db-cli/node_modules/leveldown/compiled/12.8.0/linux/x64/leveldown.node
    at bindings (/home/danieldev/orbit-db-cli/node_modules/leveldown/node_modules/bindings/bindings.js:96:9)
    at Object.<anonymous> (/home/danieldev/orbit-db-cli/node_modules/leveldown/leveldown.js:4:46)
    at Module._compile (internal/modules/cjs/loader.js:868:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:879:10)
    at Module.load (internal/modules/cjs/loader.js:731:32)
    at Function.Module._load (internal/modules/cjs/loader.js:644:12)
    at Module.require (internal/modules/cjs/loader.js:771:19)
    at require (internal/modules/cjs/helpers.js:68:18)
    at Object.<anonymous> (/home/danieldev/orbit-db-cli/node_modules/orbit-db-keystore/index-nodejs.js:1:15)
    at Module._compile (internal/modules/cjs/loader.js:868:30) {
  tries: [
    '/home/danieldev/orbit-db-cli/node_modules/leveldown/build/leveldown.node',
    '/home/danieldev/orbit-db-cli/node_modules/leveldown/build/Debug/leveldown.node',
    '/home/danieldev/orbit-db-cli/node_modules/leveldown/build/Release/leveldown.node',
    '/home/danieldev/orbit-db-cli/node_modules/leveldown/out/Debug/leveldown.node',
    '/home/danieldev/orbit-db-cli/node_modules/leveldown/Debug/leveldown.node',
    '/home/danieldev/orbit-db-cli/node_modules/leveldown/out/Release/leveldown.node',
    '/home/danieldev/orbit-db-cli/node_modules/leveldown/Release/leveldown.node',
    '/home/danieldev/orbit-db-cli/node_modules/leveldown/build/default/leveldown.node',
    '/home/danieldev/orbit-db-cli/node_modules/leveldown/compiled/12.8.0/linux/x64/leveldown.node'
  ]
}

I've tried using the following node versions:


danieldev@danieldev:~$ nvm ls
        v8.10.0
        v8.12.0
       v10.16.2
->      v12.8.0
default -> node (-> v12.8.0)
node -> stable (-> v12.8.0) (default)
stable -> 12.8 (-> v12.8.0) (default)
iojs -> N/A (default)
lts/* -> lts/dubnium (-> v10.16.2)
lts/argon -> v4.9.1 (-> N/A)
lts/boron -> v6.17.1 (-> N/A)
lts/carbon -> v8.16.0 (-> N/A)
lts/dubnium -> v10.16.2

Any idea how to solve this situation?

install failed

hey,
I'm new to orbit-db and I got some errors when installing orbit-db-cli
my command is
git clone https://github.com/orbitdb/orbit-db-cli.git cd orbit-db-cli nom install

I tried orbitdb version
Error orbitdb: command not found

I'm using [email protected]& [email protected]

Thanks for your help

Cheers^^

Ipfs repo created by cli neither compatible with go-ipfs nor js-ipfs

What I'm trying to accomplish:

I want to examine single ipfs objects created by orbit-db-cli with go-ipfs or js-ipfs. Given a <hash> from adding to a feed-store with orbitdb add <address> 'Hello World!', then I want to ipfs object get <hash> or jsipfs object get <hash> respectively.

This didn't work at all in the last couple of days, but now I'm at the point that I can make sense of the error messages.

What I think is wrong

The way orbit-db-cli sets up the ipfs repo is somewhat off, especially the /blocks subdirectory .

Take a look at my global ~/.ipfs repo created by go-ipfs init

~/.ipfs on machine
➜ ls blocks
000018.ldb  BE  CQ       L5                 QR       RY        
000020.ldb  BG  CR       L7                 QU       S7        
000021.log  BI  CS       LA                 QV       SA        
23          BJ  CURRENT  LD                 QW       SC        
24          BN  CV       LG                 QX       SD        
25          BO  CY       LH                 R2       SE        
26          BQ  CZ       LJ                 R3       SG        
27          BS  D2       LK                 R4       SH        
2D          BT  D4       LN                 RB       SHARDING  
2E          BV  D6       LO                 RC       SI        
2F          BZ  D7       LOCK               _README  SJ        
2G          C7  DD       LOG                RF       SK        
2H          CA  DE       LOG.old            RG       SM        
2I          CC  DF       LP                 RI       SN        
2L          CF  DH       LS                 RJ       SO        
2M          CG  DL       LT                 RN       SR        
2P          CH  DM       LV                 RP       SS        
2W          CI  DO       LZ                 RQ       SU        
2Z          CJ  DP       M2                 RS       SV        
32          CL  DS       M4                 RV       SW        
35          CP  DU       MANIFEST-000019    RW       SY        

Now take a look at the ipfs repo created by orbit-cb-cli:

➜ ls ./orbitdb/ipfs/blocks
000005.ldb  000008.ldb  000009.log  CURRENT  LOCK  LOG  LOG.old  MANIFEST-000007  _README  SHARDING

And the following was created by a node script using the orbit-db module.

➜ ls ipfs_repo_by_node/blocks
7J  D2  I7  IL  K5  LG  M4  OO  PJ  PU  QP  R3  _README  S2  SHARDING  TD  X3  ZS

How I came to that conclusion

Examining the orbit-db-cli ipfs repo yields following results:

IPFS/experiments/local_orbitdb on machine
➜ IPFS_PATH=./orbitdb/ipfs ipfs object get QmRgyjgbNgDfxt3KQw4b1cM7ZZ9EgLdfmLd2h7m2gN5SVW
Error: required Datastore.Spec entry missing form config file

and

➜ IPFS_PATH=./orbitdb/ipfs jsipfs object get QmRgyjgbNgDfxt3KQw4b1cM7ZZ9EgLdfmLd2h7m2gN5SVW
/home/make/.config/yarn/global/node_modules/ipfs/src/cli/commands/object/get.js:15
        throw err
                ^

                Error: ENOENT: no such file or directory, open '/home/make/College/IPFS/experiments/local_orbitdb/orbitdb/ipfs/blocks/HC/CIQDDSBQ5HQ2AGXT3KOQVS5E3MN3LWYIBYP2F4BENYHJ2PWFKKBFHCI.data'

The js-ipfs implementation tells me, that there need to be the sharded directories and files under the /blocks directory, which is not the case when using orbit-db-cli.
If I use a node script to create an orbitdb database it creates the ipfs repo correctly with the sharded directories under ./<ipfs repo>/blocks and examining the ipfs objects works perfectly fine with jsipfs object get <hash>.

Notes

It seems that the go-ipfs implementation:

  1. Expects some config parameter that the current js implementation doesn't care about.
  2. Creates a directory called /keystore instead of /keys under ./<ipfs repo>. (Has nothing to do with this issue, but maybe that'll be important latter? 😅 )

Whatever module creates the ipfs repo for orbit-db-cli it does not create it how it is expected.

If you use the tool ldb and look at the /blocks directory of orbit-db-cli ipfs repo you will find keys in leveldb what the /blocks directory should have looked like.

IPFS/experiments/local_orbitdb on machine
➜ cd orbitdb/ipfs/blocks

orbitdb/ipfs/blocks on machine
➜ ldb ./
>l
LIMIT set to 1000
>ls
/6T/CIQNNDI62MKDAM5ZVTK2TEINMYYU4HSC74RS3XZLBS2...           /7J/CIQKKLBWAIBQZOIS5X7E32LQAL6236OUKZTMHPQSFIX...
/AL/CIQKXYLYLJ7WHZXF6NX6V45FWAS5U2LQ2K5CU2JWHXO...           /FJ/CIQPWOVV72FZ65H6T6E4SONMKZB4NVBPNHNCHYB2U2Q...
/FR/CIQNTIIUTCQT6OSZS7OKCWEGWJLZW3KOWATDAID3PG4...           /HC/CIQDDSBQ5HQ2AGXT3KOQVS5E3MN3LWYIBYP2F4BENYH...
/IC/CIQIU7KROHOI7JWOGFON3GBBT6PQDJI5AZP7BJG54M7...           /IL/CIQJFGRQHQ45VCQLM7AJNF2GF5UHUAGGHC6LLAH6VYD...
/IV/CIQOWERFZ2KLTU2RN2D2CQKWCCLL3M3BNFRTL3UEENY...           /K5/CIQPW4MAGTUNEBGZCEFZU7XAJL2BMIHGVB5ZR2IOKOS...
/LG/CIQJBQD2O6K4CGJVCCTJNUP57QHR4SKHZ74OIITBBGL...           /M4/CIQOLBQZSZAODJGGH6RYYVBUXHTS3SM5EORZDU63LYP...
/OC/CIQOTRIFYF2I2WQAF6MLWIH3ASSUOU3PI644TXSTA5T...           /OO/CIQBT4N7PS5IZ5IG2ZOUGKFK27IE33WKGJNDW2TY3LS...
/PD/CIQHWF2DR43OINVHEUB5NZ2BVZMCSFOPNPLP4XMATMT...           /PJ/CIQB4F7VKKQDXHMXX6WYQZTRR5QVLP7VBQYAYW2Y5BA...
/PU/CIQJF2E6OPOEYYEVHYML4UD5A3R4QRAVBI7NVH3PL64...           /QP/CIQNLGENZXNRUMUHZYGPPLZNZOMHHZVIU76LCD5GF5D...
/R3/CIQBED3K6YA5I3QQWLJOCHWXDRK5EXZQILBCKAPEDUJ...           /S2/CIQPF3CHDB5GQ5ZBISOV2GWVMLAJPVEUMDMFKJZE7CM...
/SHARDING                                                    /X3/CIQFTFEEHEDF6KLBT32BFAGLXEZL4UWFNWM4LFTLMXQ...
/_README
>

Solution

So far I don't know what really causes this and how to fix it, but I might be able to find the cause of the problem on Saturday. I hope this helps anyone playing around with orbitdb. A workaround is to use node scripts to create orbitdbs and use js-ipfs to examine the ipfs objects.

Add 'version' command

There should be a command 'version' which displays the version of the binary.

The version number should be read from package.json.

The user would run orbitdb version and the output should be one line and display the version number.

Move to CircleCI 2.0

This repo uses an old CircleCI version that is not supported anymore. The configs should be updated to CircleCI 2.0 in order to run the tests automatically again.

Add daemon mode

It was suggested in orbitdb/orbitdb#233 that we should have a daemon mode. I think adding that would be awesome!

I reckon we can start by the "daemon mode" being the same as starting a HTTP API that can be used to interact with OrbitDB. I made a skeleton for that in orbit-db-http-server which we could pull into the CLI. Then, add a new command daemon in src/commands that start the http server.

This would be a good task to work on for someone who's looking to contribute to the project and it shouldn't be too complicated.

Error when installing globally the package

When I am trying to install orbit-db-cli globally using npm i get the following error:

npm ERR! code 1
npm ERR! path /home/mble/.local/share/nvm/v16.15.1/lib/node_modules/orbit-db-cli/node_modules/leveldown
npm ERR! command failed
npm ERR! command sh -c prebuild-install || node-gyp rebuild
npm ERR! make: Entering directory '/home/mble/.local/share/nvm/v16.15.1/lib/node_modules/orbit-db-cli/node_modules/leveldown/build'
npm ERR!   CXX(target) Release/obj.target/leveldb/deps/leveldb/leveldb-1.20/db/builder.o
npm ERR!   CXX(target) Release/obj.target/leveldb/deps/leveldb/leveldb-1.20/db/db_impl.o
npm ERR!   CXX(target) Release/obj.target/leveldb/deps/leveldb/leveldb-1.20/db/db_iter.o
npm ERR!   CXX(target) Release/obj.target/leveldb/deps/leveldb/leveldb-1.20/db/filename.o
npm ERR!   CXX(target) Release/obj.target/leveldb/deps/leveldb/leveldb-1.20/db/dbformat.o
npm ERR!   CXX(target) Release/obj.target/leveldb/deps/leveldb/leveldb-1.20/db/log_reader.o
npm ERR!   CXX(target) Release/obj.target/leveldb/deps/leveldb/leveldb-1.20/db/log_writer.o
npm ERR!   CXX(target) Release/obj.target/leveldb/deps/leveldb/leveldb-1.20/db/memtable.o
npm ERR!   CXX(target) Release/obj.target/leveldb/deps/leveldb/leveldb-1.20/db/repair.o
npm ERR!   CXX(target) Release/obj.target/leveldb/deps/leveldb/leveldb-1.20/db/table_cache.o
npm ERR!   CXX(target) Release/obj.target/leveldb/deps/leveldb/leveldb-1.20/db/version_edit.o
npm ERR!   CXX(target) Release/obj.target/leveldb/deps/leveldb/leveldb-1.20/db/version_set.o
npm ERR!   CXX(target) Release/obj.target/leveldb/deps/leveldb/leveldb-1.20/db/write_batch.o
npm ERR!   CXX(target) Release/obj.target/leveldb/deps/leveldb/leveldb-1.20/helpers/memenv/memenv.o
npm ERR!   CXX(target) Release/obj.target/leveldb/deps/leveldb/leveldb-1.20/port/port_posix_sse.o
npm ERR!   CXX(target) Release/obj.target/leveldb/deps/leveldb/leveldb-1.20/table/block.o
npm ERR!   CXX(target) Release/obj.target/leveldb/deps/leveldb/leveldb-1.20/table/block_builder.o
npm ERR!   CXX(target) Release/obj.target/leveldb/deps/leveldb/leveldb-1.20/table/filter_block.o
npm ERR!   CXX(target) Release/obj.target/leveldb/deps/leveldb/leveldb-1.20/table/format.o
npm ERR!   CXX(target) Release/obj.target/leveldb/deps/leveldb/leveldb-1.20/table/iterator.o
npm ERR!   CXX(target) Release/obj.target/leveldb/deps/leveldb/leveldb-1.20/table/merger.o
npm ERR!   CXX(target) Release/obj.target/leveldb/deps/leveldb/leveldb-1.20/table/table.o
npm ERR!   CXX(target) Release/obj.target/leveldb/deps/leveldb/leveldb-1.20/table/table_builder.o
npm ERR!   CXX(target) Release/obj.target/leveldb/deps/leveldb/leveldb-1.20/table/two_level_iterator.o
npm ERR!   CXX(target) Release/obj.target/leveldb/deps/leveldb/leveldb-1.20/util/arena.o
npm ERR!   CXX(target) Release/obj.target/leveldb/deps/leveldb/leveldb-1.20/util/bloom.o
npm ERR!   CXX(target) Release/obj.target/leveldb/deps/leveldb/leveldb-1.20/util/cache.o
npm ERR!   CXX(target) Release/obj.target/leveldb/deps/leveldb/leveldb-1.20/util/coding.o
npm ERR!   CXX(target) Release/obj.target/leveldb/deps/leveldb/leveldb-1.20/util/comparator.o
npm ERR!   CXX(target) Release/obj.target/leveldb/deps/leveldb/leveldb-1.20/util/crc32c.o
npm ERR!   CXX(target) Release/obj.target/leveldb/deps/leveldb/leveldb-1.20/util/env.o
npm ERR!   CXX(target) Release/obj.target/leveldb/deps/leveldb/leveldb-1.20/util/filter_policy.o
npm ERR!   CXX(target) Release/obj.target/leveldb/deps/leveldb/leveldb-1.20/util/hash.o
npm ERR!   CXX(target) Release/obj.target/leveldb/deps/leveldb/leveldb-1.20/util/logging.o
npm ERR!   CXX(target) Release/obj.target/leveldb/deps/leveldb/leveldb-1.20/util/options.o
npm ERR!   CXX(target) Release/obj.target/leveldb/deps/leveldb/leveldb-1.20/util/status.o
npm ERR!   CXX(target) Release/obj.target/leveldb/deps/leveldb/leveldb-1.20/port/port_posix.o
npm ERR!   CXX(target) Release/obj.target/leveldb/deps/leveldb/leveldb-1.20/util/env_posix.o
npm ERR!   AR(target) Release/obj.target/deps/leveldb/leveldb.a
npm ERR!   COPY Release/leveldb.a
npm ERR!   CXX(target) Release/obj.target/snappy/deps/snappy/snappy-1.1.4/snappy-sinksource.o
npm ERR!   CXX(target) Release/obj.target/snappy/deps/snappy/snappy-1.1.4/snappy-stubs-internal.o
npm ERR!   CXX(target) Release/obj.target/snappy/deps/snappy/snappy-1.1.4/snappy.o
npm ERR!   AR(target) Release/obj.target/deps/snappy/snappy.a
npm ERR!   COPY Release/snappy.a
npm ERR!   CXX(target) Release/obj.target/leveldown/src/batch.o
npm ERR! make: Leaving directory '/home/mble/.local/share/nvm/v16.15.1/lib/node_modules/orbit-db-cli/node_modules/leveldown/build'
npm ERR! gyp info it worked if it ends with ok
npm ERR! gyp info using [email protected]
npm ERR! gyp info using [email protected] | linux | x64
npm ERR! gyp info find Python using Python version 3.10.5 found at "/usr/bin/python3"
npm ERR! gyp info spawn /usr/bin/python3
npm ERR! gyp info spawn args [
npm ERR! gyp info spawn args   '/home/mble/.local/share/nvm/v16.15.1/lib/node_modules/npm/node_modules/node-gyp/gyp/gyp_main.py',
npm ERR! gyp info spawn args   'binding.gyp',
npm ERR! gyp info spawn args   '-f',
npm ERR! gyp info spawn args   'make',
npm ERR! gyp info spawn args   '-I',
npm ERR! gyp info spawn args   '/home/mble/.local/share/nvm/v16.15.1/lib/node_modules/orbit-db-cli/node_modules/leveldown/build/config.gypi',
npm ERR! gyp info spawn args   '-I',
npm ERR! gyp info spawn args   '/home/mble/.local/share/nvm/v16.15.1/lib/node_modules/npm/node_modules/node-gyp/addon.gypi',
npm ERR! gyp info spawn args   '-I',
npm ERR! gyp info spawn args   '/home/mble/.cache/node-gyp/16.15.1/include/node/common.gypi',
npm ERR! gyp info spawn args   '-Dlibrary=shared_library',
npm ERR! gyp info spawn args   '-Dvisibility=default',
npm ERR! gyp info spawn args   '-Dnode_root_dir=/home/mble/.cache/node-gyp/16.15.1',
npm ERR! gyp info spawn args   '-Dnode_gyp_dir=/home/mble/.local/share/nvm/v16.15.1/lib/node_modules/npm/node_modules/node-gyp',
npm ERR! gyp info spawn args   '-Dnode_lib_file=/home/mble/.cache/node-gyp/16.15.1/<(target_arch)/node.lib',
npm ERR! gyp info spawn args   '-Dmodule_root_dir=/home/mble/.local/share/nvm/v16.15.1/lib/node_modules/orbit-db-cli/node_modules/leveldown',
npm ERR! gyp info spawn args   '-Dnode_engine=v8',
npm ERR! gyp info spawn args   '--depth=.',
npm ERR! gyp info spawn args   '--no-parallel',
npm ERR! gyp info spawn args   '--generator-output',
npm ERR! gyp info spawn args   'build',
npm ERR! gyp info spawn args   '-Goutput_dir=.'
npm ERR! gyp info spawn args ]
npm ERR! gyp info spawn make
npm ERR! gyp info spawn args [ 'BUILDTYPE=Release', '-C', 'build' ]
npm ERR! ../deps/leveldb/leveldb-1.20/util/hash.cc: In function ‘uint32_t leveldb::Hash(const char*, size_t, uint32_t)’:
npm ERR! ../deps/leveldb/leveldb-1.20/util/hash.cc:37:9: warning: this statement may fall through [-Wimplicit-fallthrough=]
npm ERR!    37 |       h += static_cast<unsigned char>(data[2]) << 16;
npm ERR!       |       ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
npm ERR! ../deps/leveldb/leveldb-1.20/util/hash.cc:39:5: note: here
npm ERR!    39 |     case 2:
npm ERR!       |     ^~~~
npm ERR! ../deps/leveldb/leveldb-1.20/util/hash.cc:40:9: warning: this statement may fall through [-Wimplicit-fallthrough=]
npm ERR!    40 |       h += static_cast<unsigned char>(data[1]) << 8;
npm ERR!       |       ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
npm ERR! ../deps/leveldb/leveldb-1.20/util/hash.cc:42:5: note: here
npm ERR!    42 |     case 1:
npm ERR!       |     ^~~~
npm ERR! In file included from ../../nan/nan_converters.h:67,
npm ERR!                  from ../../nan/nan.h:202,
npm ERR!                  from ../src/batch.cc:3:
npm ERR! ../../nan/nan_converters_43_inl.h: In static member function ‘static Nan::imp::ToFactoryBase<v8::Boolean>::return_t Nan::imp::ToFactory<v8::Boolean>::convert(v8::Local<v8::Value>)’:
npm ERR! ../../nan/nan_converters_43_inl.h:18:49: error: cannot convert ‘v8::Local<v8::Context>’ to ‘v8::Isolate*’
npm ERR!    18 |       val->To ## TYPE(isolate->GetCurrentContext())                            \
npm ERR!       |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~
npm ERR!       |                                                 |
npm ERR!       |                                                 v8::Local<v8::Context>
npm ERR! ../../nan/nan_converters_43_inl.h:22:1: note: in expansion of macro ‘X’
npm ERR!    22 | X(Boolean)
npm ERR!       | ^
npm ERR! In file included from /home/mble/.cache/node-gyp/16.15.1/include/node/node.h:63,
npm ERR!                  from ../src/batch.cc:1:
npm ERR! /home/mble/.cache/node-gyp/16.15.1/include/node/v8.h:3086:37: note:   initializing argument 1 of ‘v8::Local<v8::Boolean> v8::Value::ToBoolean(v8::Isolate*) const’
npm ERR!  3086 |   Local<Boolean> ToBoolean(Isolate* isolate) const;
npm ERR!       |                            ~~~~~~~~~^~~~~~~
npm ERR! ../../nan/nan_converters_43_inl.h: In static member function ‘static Nan::imp::ValueFactoryBase<bool>::return_t Nan::imp::ToFactory<bool>::convert(v8::Local<v8::Value>)’:
npm ERR! ../../nan/nan_converters_43_inl.h:37:55: error: cannot convert ‘v8::Local<v8::Context>’ to ‘v8::Isolate*’
npm ERR!    37 |   return val->NAME ## Value(isolate->GetCurrentContext());                     \
npm ERR!       |                             ~~~~~~~~~~~~~~~~~~~~~~~~~~^~
npm ERR!       |                                                       |
npm ERR!       |                                                       v8::Local<v8::Context>
npm ERR! ../../nan/nan_converters_43_inl.h:40:1: note: in expansion of macro ‘X’
npm ERR!    40 | X(bool, Boolean)
npm ERR!       | ^
npm ERR! /home/mble/.cache/node-gyp/16.15.1/include/node/v8.h:3096:30: note:   initializing argument 1 of ‘bool v8::Value::BooleanValue(v8::Isolate*) const’
npm ERR!  3096 |   bool BooleanValue(Isolate* isolate) const;
npm ERR!       |                     ~~~~~~~~~^~~~~~~
npm ERR! In file included from ../../nan/nan_new.h:189,
npm ERR!                  from ../../nan/nan.h:203:
npm ERR! ../../nan/nan_implementation_12_inl.h: In static member function ‘static Nan::imp::FactoryBase<v8::Function>::return_t Nan::imp::Factory<v8::Function>::New(Nan::FunctionCallback, v8::Local<v8::Value>)’:
npm ERR! ../../nan/nan_implementation_12_inl.h:103:42: error: cannot convert ‘v8::Isolate*’ to ‘v8::Local<v8::Context>’
npm ERR!   103 |   return scope.Escape(v8::Function::New( isolate
npm ERR!       |                                          ^~~~~~~
npm ERR!       |                                          |
npm ERR!       |                                          v8::Isolate*
npm ERR! /home/mble/.cache/node-gyp/16.15.1/include/node/v8.h:4754:22: note:   initializing argument 1 of ‘static v8::MaybeLocal<v8::Function> v8::Function::New(v8::Local<v8::Context>, v8::FunctionCallback, v8::Local<v8::Value>, int, v8::ConstructorBehavior, v8::SideEffectType)’
npm ERR!  4754 |       Local<Context> context, FunctionCallback callback,
npm ERR!       |       ~~~~~~~~~~~~~~~^~~~~~~
npm ERR! ../../nan/nan_implementation_12_inl.h: In static member function ‘static Nan::imp::FactoryBase<v8::StringObject>::return_t Nan::imp::Factory<v8::StringObject>::New(v8::Local<v8::String>)’:
npm ERR! ../../nan/nan_implementation_12_inl.h:337:31: error: no matching function for call to ‘v8::StringObject::New(v8::Local<v8::String>&)’
npm ERR!   337 |   return v8::StringObject::New(value).As<v8::StringObject>();
npm ERR!       |          ~~~~~~~~~~~~~~~~~~~~~^~~~~~~
npm ERR! /home/mble/.cache/node-gyp/16.15.1/include/node/v8.h:6196:23: note: candidate: ‘static v8::Local<v8::Value> v8::StringObject::New(v8::Isolate*, v8::Local<v8::String>)’
npm ERR!  6196 |   static Local<Value> New(Isolate* isolate, Local<String> value);
npm ERR!       |                       ^~~
npm ERR! /home/mble/.cache/node-gyp/16.15.1/include/node/v8.h:6196:23: note:   candidate expects 2 arguments, 1 provided
npm ERR! ../../nan/nan_implementation_12_inl.h:337:58: error: expected primary-expression before ‘>’ token
npm ERR!   337 |   return v8::StringObject::New(value).As<v8::StringObject>();
npm ERR!       |                                                          ^
npm ERR! ../../nan/nan_implementation_12_inl.h:337:60: error: expected primary-expression before ‘)’ token
npm ERR!   337 |   return v8::StringObject::New(value).As<v8::StringObject>();
npm ERR!       |                                                            ^
npm ERR! ../../nan/nan.h: In constructor ‘Nan::Utf8String::Utf8String(v8::Local<v8::Value>)’:
npm ERR! ../../nan/nan.h:1034:52: error: no matching function for call to ‘v8::Value::ToString()’
npm ERR!  1034 |       v8::Local<v8::String> string = from->ToString();
npm ERR!       |                                      ~~~~~~~~~~~~~~^~
npm ERR! /home/mble/.cache/node-gyp/16.15.1/include/node/v8.h:3048:44: note: candidate: ‘v8::MaybeLocal<v8::String> v8::Value::ToString(v8::Local<v8::Context>) const’
npm ERR!  3048 |   V8_WARN_UNUSED_RESULT MaybeLocal<String> ToString(
npm ERR!       |                                            ^~~~~~~~
npm ERR! /home/mble/.cache/node-gyp/16.15.1/include/node/v8.h:3048:44: note:   candidate expects 1 argument, 0 provided
npm ERR! ../../nan/nan.h:1044:37: error: cannot convert ‘char*’ to ‘v8::Isolate*’
npm ERR!  1044 |         length_ = string->WriteUtf8(str_, static_cast<int>(len), 0, flags);
npm ERR!       |                                     ^~~~
npm ERR!       |                                     |
npm ERR!       |                                     char*
npm ERR! /home/mble/.cache/node-gyp/16.15.1/include/node/v8.h:3277:26: note:   initializing argument 1 of ‘int v8::String::WriteUtf8(v8::Isolate*, char*, int, int*, int) const’
npm ERR!  3277 |   int WriteUtf8(Isolate* isolate, char* buffer, int length = -1,
npm ERR!       |                 ~~~~~~~~~^~~~~~~
npm ERR! ../../nan/nan.h: In member function ‘void Nan::AsyncWorker::SaveToPersistent(const char*, const v8::Local<v8::Value>&)’:
npm ERR! ../../nan/nan.h:1818:31: error: no matching function for call to ‘v8::Object::Set(v8::Local<v8::String>, const v8::Local<v8::Value>&)’
npm ERR!  1818 |     New(persistentHandle)->Set(New(key).ToLocalChecked(), value);
npm ERR!       |     ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
npm ERR! /home/mble/.cache/node-gyp/16.15.1/include/node/v8.h:3961:37: note: candidate: ‘v8::Maybe<bool> v8::Object::Set(v8::Local<v8::Context>, v8::Local<v8::Value>, v8::Local<v8::Value>)’
npm ERR!  3961 |   V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context,
npm ERR!       |                                     ^~~
npm ERR! /home/mble/.cache/node-gyp/16.15.1/include/node/v8.h:3961:37: note:   candidate expects 3 arguments, 2 provided
npm ERR! /home/mble/.cache/node-gyp/16.15.1/include/node/v8.h:3964:37: note: candidate: ‘v8::Maybe<bool> v8::Object::Set(v8::Local<v8::Context>, uint32_t, v8::Local<v8::Value>)’
npm ERR!  3964 |   V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context, uint32_t index,
npm ERR!       |                                     ^~~
npm ERR! /home/mble/.cache/node-gyp/16.15.1/include/node/v8.h:3964:37: note:   candidate expects 3 arguments, 2 provided
npm ERR! ../../nan/nan.h: In member function ‘void Nan::AsyncWorker::SaveToPersistent(const v8::Local<v8::String>&, const v8::Local<v8::Value>&)’:
npm ERR! ../../nan/nan.h:1824:31: error: no matching function for call to ‘v8::Object::Set(const v8::Local<v8::String>&, const v8::Local<v8::Value>&)’
npm ERR!  1824 |     New(persistentHandle)->Set(key, value);
npm ERR!       |     ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~
npm ERR! /home/mble/.cache/node-gyp/16.15.1/include/node/v8.h:3961:37: note: candidate: ‘v8::Maybe<bool> v8::Object::Set(v8::Local<v8::Context>, v8::Local<v8::Value>, v8::Local<v8::Value>)’
npm ERR!  3961 |   V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context,
npm ERR!       |                                     ^~~
npm ERR! /home/mble/.cache/node-gyp/16.15.1/include/node/v8.h:3961:37: note:   candidate expects 3 arguments, 2 provided
npm ERR! /home/mble/.cache/node-gyp/16.15.1/include/node/v8.h:3964:37: note: candidate: ‘v8::Maybe<bool> v8::Object::Set(v8::Local<v8::Context>, uint32_t, v8::Local<v8::Value>)’
npm ERR!  3964 |   V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context, uint32_t index,
npm ERR!       |                                     ^~~
npm ERR! /home/mble/.cache/node-gyp/16.15.1/include/node/v8.h:3964:37: note:   candidate expects 3 arguments, 2 provided
npm ERR! ../../nan/nan.h: In member function ‘void Nan::AsyncWorker::SaveToPersistent(uint32_t, const v8::Local<v8::Value>&)’:
npm ERR! ../../nan/nan.h:1830:31: error: no matching function for call to ‘v8::Object::Set(uint32_t&, const v8::Local<v8::Value>&)’
npm ERR!  1830 |     New(persistentHandle)->Set(index, value);
npm ERR!       |     ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~
npm ERR! /home/mble/.cache/node-gyp/16.15.1/include/node/v8.h:3961:37: note: candidate: ‘v8::Maybe<bool> v8::Object::Set(v8::Local<v8::Context>, v8::Local<v8::Value>, v8::Local<v8::Value>)’
npm ERR!  3961 |   V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context,
npm ERR!       |                                     ^~~
npm ERR! /home/mble/.cache/node-gyp/16.15.1/include/node/v8.h:3961:37: note:   candidate expects 3 arguments, 2 provided
npm ERR! /home/mble/.cache/node-gyp/16.15.1/include/node/v8.h:3964:37: note: candidate: ‘v8::Maybe<bool> v8::Object::Set(v8::Local<v8::Context>, uint32_t, v8::Local<v8::Value>)’
npm ERR!  3964 |   V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context, uint32_t index,
npm ERR!       |                                     ^~~
npm ERR! /home/mble/.cache/node-gyp/16.15.1/include/node/v8.h:3964:37: note:   candidate expects 3 arguments, 2 provided
npm ERR! ../../nan/nan.h: In member function ‘v8::Local<v8::Value> Nan::AsyncWorker::GetFromPersistent(const char*) const’:
npm ERR! ../../nan/nan.h:1836:35: error: no matching function for call to ‘v8::Object::Get(v8::Local<v8::String>)’
npm ERR!  1836 |         New(persistentHandle)->Get(New(key).ToLocalChecked()));
npm ERR!       |         ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
npm ERR! /home/mble/.cache/node-gyp/16.15.1/include/node/v8.h:4007:43: note: candidate: ‘v8::MaybeLocal<v8::Value> v8::Object::Get(v8::Local<v8::Context>, v8::Local<v8::Value>)’
npm ERR!  4007 |   V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
npm ERR!       |                                           ^~~
npm ERR! /home/mble/.cache/node-gyp/16.15.1/include/node/v8.h:4007:43: note:   candidate expects 2 arguments, 1 provided
npm ERR! /home/mble/.cache/node-gyp/16.15.1/include/node/v8.h:4010:43: note: candidate: ‘v8::MaybeLocal<v8::Value> v8::Object::Get(v8::Local<v8::Context>, uint32_t)’
npm ERR!  4010 |   V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
npm ERR!       |                                           ^~~
npm ERR! /home/mble/.cache/node-gyp/16.15.1/include/node/v8.h:4010:43: note:   candidate expects 2 arguments, 1 provided
npm ERR! ../../nan/nan.h: In member function ‘v8::Local<v8::Value> Nan::AsyncWorker::GetFromPersistent(const v8::Local<v8::String>&) const’:
npm ERR! ../../nan/nan.h:1842:51: error: no matching function for call to ‘v8::Object::Get(const v8::Local<v8::String>&)’
npm ERR!  1842 |     return scope.Escape(New(persistentHandle)->Get(key));
npm ERR!       |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~
npm ERR! /home/mble/.cache/node-gyp/16.15.1/include/node/v8.h:4007:43: note: candidate: ‘v8::MaybeLocal<v8::Value> v8::Object::Get(v8::Local<v8::Context>, v8::Local<v8::Value>)’
npm ERR!  4007 |   V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
npm ERR!       |                                           ^~~
npm ERR! /home/mble/.cache/node-gyp/16.15.1/include/node/v8.h:4007:43: note:   candidate expects 2 arguments, 1 provided
npm ERR! /home/mble/.cache/node-gyp/16.15.1/include/node/v8.h:4010:43: note: candidate: ‘v8::MaybeLocal<v8::Value> v8::Object::Get(v8::Local<v8::Context>, uint32_t)’
npm ERR!  4010 |   V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
npm ERR!       |                                           ^~~
npm ERR! /home/mble/.cache/node-gyp/16.15.1/include/node/v8.h:4010:43: note:   candidate expects 2 arguments, 1 provided
npm ERR! ../../nan/nan.h: In member function ‘v8::Local<v8::Value> Nan::AsyncWorker::GetFromPersistent(uint32_t) const’:
npm ERR! ../../nan/nan.h:1847:51: error: no matching function for call to ‘v8::Object::Get(uint32_t&)’
npm ERR!  1847 |     return scope.Escape(New(persistentHandle)->Get(index));
npm ERR!       |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~
npm ERR! /home/mble/.cache/node-gyp/16.15.1/include/node/v8.h:4007:43: note: candidate: ‘v8::MaybeLocal<v8::Value> v8::Object::Get(v8::Local<v8::Context>, v8::Local<v8::Value>)’
npm ERR!  4007 |   V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
npm ERR!       |                                           ^~~
npm ERR! /home/mble/.cache/node-gyp/16.15.1/include/node/v8.h:4007:43: note:   candidate expects 2 arguments, 1 provided
npm ERR! /home/mble/.cache/node-gyp/16.15.1/include/node/v8.h:4010:43: note: candidate: ‘v8::MaybeLocal<v8::Value> v8::Object::Get(v8::Local<v8::Context>, uint32_t)’
npm ERR!  4010 |   V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
npm ERR!       |                                           ^~~
npm ERR! /home/mble/.cache/node-gyp/16.15.1/include/node/v8.h:4010:43: note:   candidate expects 2 arguments, 1 provided
npm ERR! ../../nan/nan.h: In function ‘void Nan::AsyncQueueWorker(AsyncWorker*)’:
npm ERR! ../../nan/nan.h:2167:7: warning: cast between incompatible function types from ‘void (*)(uv_work_t*)’ {aka ‘void (*)(uv_work_s*)’} to ‘uv_after_work_cb’ {aka ‘void (*)(uv_work_s*, int)’} [-Wcast-function-type]
npm ERR!  2167 |     , reinterpret_cast<uv_after_work_cb>(AsyncExecuteComplete)
npm ERR!       |       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
npm ERR! In file included from /usr/include/c++/12.1.0/cassert:44,
npm ERR!                  from /home/mble/.cache/node-gyp/16.15.1/include/node/node_object_wrap.h:26,
npm ERR!                  from ../../nan/nan.h:53:
npm ERR! ../../nan/nan_object_wrap.h: In destructor ‘virtual Nan::ObjectWrap::~ObjectWrap()’:
npm ERR! ../../nan/nan_object_wrap.h:24:25: error: ‘class Nan::Persistent<v8::Object>’ has no member named ‘IsNearDeath’
npm ERR!    24 |     assert(persistent().IsNearDeath());
npm ERR!       |                         ^~~~~~~~~~~
npm ERR! In file included from ../../nan/nan.h:2657:
npm ERR! ../../nan/nan_object_wrap.h: In member function ‘void Nan::ObjectWrap::MakeWeak()’:
npm ERR! ../../nan/nan_object_wrap.h:67:18: error: ‘class Nan::Persistent<v8::Object>’ has no member named ‘MarkIndependent’
npm ERR!    67 |     persistent().MarkIndependent();
npm ERR!       |                  ^~~~~~~~~~~~~~~
npm ERR! ../../nan/nan_object_wrap.h: In static member function ‘static void Nan::ObjectWrap::WeakCallback(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)’:
npm ERR! ../../nan/nan_object_wrap.h:124:26: error: ‘class Nan::Persistent<v8::Object>’ has no member named ‘IsNearDeath’
npm ERR!   124 |     assert(wrap->handle_.IsNearDeath());
npm ERR!       |                          ^~~~~~~~~~~
npm ERR! In file included from ../src/database.h:18,
npm ERR!                  from ../src/batch.cc:5:
npm ERR! ../src/leveldown.h: In function ‘size_t StringOrBufferLength(v8::Local<v8::Value>)’:
npm ERR! ../src/leveldown.h:16:25: error: no matching function for call to ‘v8::Value::ToObject()’
npm ERR!    16 |   return (!obj->ToObject().IsEmpty()
npm ERR!       |            ~~~~~~~~~~~~~^~
npm ERR! /home/mble/.cache/node-gyp/16.15.1/include/node/v8.h:3060:44: note: candidate: ‘v8::MaybeLocal<v8::Object> v8::Value::ToObject(v8::Local<v8::Context>) const’
npm ERR!  3060 |   V8_WARN_UNUSED_RESULT MaybeLocal<Object> ToObject(
npm ERR!       |                                            ^~~~~~~~
npm ERR! /home/mble/.cache/node-gyp/16.15.1/include/node/v8.h:3060:44: note:   candidate expects 1 argument, 0 provided
npm ERR! ../src/leveldown.h:17:47: error: no matching function for call to ‘v8::Value::ToObject()’
npm ERR!    17 |     && node::Buffer::HasInstance(obj->ToObject()))
npm ERR!       |                                  ~~~~~~~~~~~~~^~
npm ERR! /home/mble/.cache/node-gyp/16.15.1/include/node/v8.h:3060:44: note: candidate: ‘v8::MaybeLocal<v8::Object> v8::Value::ToObject(v8::Local<v8::Context>) const’
npm ERR!  3060 |   V8_WARN_UNUSED_RESULT MaybeLocal<Object> ToObject(
npm ERR!       |                                            ^~~~~~~~
npm ERR! /home/mble/.cache/node-gyp/16.15.1/include/node/v8.h:3060:44: note:   candidate expects 1 argument, 0 provided
npm ERR! ../src/leveldown.h:18:41: error: no matching function for call to ‘v8::Value::ToObject()’
npm ERR!    18 |     ? node::Buffer::Length(obj->ToObject())
npm ERR!       |                            ~~~~~~~~~~~~~^~
npm ERR! /home/mble/.cache/node-gyp/16.15.1/include/node/v8.h:3060:44: note: candidate: ‘v8::MaybeLocal<v8::Object> v8::Value::ToObject(v8::Local<v8::Context>) const’
npm ERR!  3060 |   V8_WARN_UNUSED_RESULT MaybeLocal<Object> ToObject(
npm ERR!       |                                            ^~~~~~~~
npm ERR! /home/mble/.cache/node-gyp/16.15.1/include/node/v8.h:3060:44: note:   candidate expects 1 argument, 0 provided
npm ERR! ../src/leveldown.h:19:20: error: no matching function for call to ‘v8::Value::ToString()’
npm ERR!    19 |     : obj->ToString()->Utf8Length();
npm ERR!       |       ~~~~~~~~~~~~~^~
npm ERR! /home/mble/.cache/node-gyp/16.15.1/include/node/v8.h:3048:44: note: candidate: ‘v8::MaybeLocal<v8::String> v8::Value::ToString(v8::Local<v8::Context>) const’
npm ERR!  3048 |   V8_WARN_UNUSED_RESULT MaybeLocal<String> ToString(
npm ERR!       |                                            ^~~~~~~~
npm ERR! /home/mble/.cache/node-gyp/16.15.1/include/node/v8.h:3048:44: note:   candidate expects 1 argument, 0 provided
npm ERR! ../src/leveldown.h: In function ‘void DisposeStringOrBufferFromSlice(Nan::Persistent<v8::Object>&, leveldb::Slice)’:
npm ERR! ../src/leveldown.h:30:65: error: no matching function for call to ‘v8::Object::Get(v8::Local<v8::String>)’
npm ERR!    30 |     v8::Local<v8::Value> obj = Nan::New<v8::Object>(handle)->Get(Nan::New<v8::String>("obj").ToLocalChecked());
npm ERR!       |                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
npm ERR! /home/mble/.cache/node-gyp/16.15.1/include/node/v8.h:4007:43: note: candidate: ‘v8::MaybeLocal<v8::Value> v8::Object::Get(v8::Local<v8::Context>, v8::Local<v8::Value>)’
npm ERR!  4007 |   V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
npm ERR!       |                                           ^~~
npm ERR! /home/mble/.cache/node-gyp/16.15.1/include/node/v8.h:4007:43: note:   candidate expects 2 arguments, 1 provided
npm ERR! /home/mble/.cache/node-gyp/16.15.1/include/node/v8.h:4010:43: note: candidate: ‘v8::MaybeLocal<v8::Value> v8::Object::Get(v8::Local<v8::Context>, uint32_t)’
npm ERR!  4010 |   V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
npm ERR!       |                                           ^~~
npm ERR! /home/mble/.cache/node-gyp/16.15.1/include/node/v8.h:4010:43: note:   candidate expects 2 arguments, 1 provided
npm ERR! ../src/database.h: In constructor ‘leveldown::Reference::Reference(v8::Local<v8::Value>, leveldb::Slice)’:
npm ERR! ../src/database.h:31:14: error: no matching function for call to ‘v8::Object::Set(v8::Local<v8::String>, v8::Local<v8::Value>&)’
npm ERR!    31 |     _obj->Set(Nan::New("obj").ToLocalChecked(), obj);
npm ERR!       |     ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
npm ERR! /home/mble/.cache/node-gyp/16.15.1/include/node/v8.h:3961:37: note: candidate: ‘v8::Maybe<bool> v8::Object::Set(v8::Local<v8::Context>, v8::Local<v8::Value>, v8::Local<v8::Value>)’
npm ERR!  3961 |   V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context,
npm ERR!       |                                     ^~~
npm ERR! /home/mble/.cache/node-gyp/16.15.1/include/node/v8.h:3961:37: note:   candidate expects 3 arguments, 2 provided
npm ERR! /home/mble/.cache/node-gyp/16.15.1/include/node/v8.h:3964:37: note: candidate: ‘v8::Maybe<bool> v8::Object::Set(v8::Local<v8::Context>, uint32_t, v8::Local<v8::Value>)’
npm ERR!  3964 |   V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context, uint32_t index,
npm ERR!       |                                     ^~~
npm ERR! /home/mble/.cache/node-gyp/16.15.1/include/node/v8.h:3964:37: note:   candidate expects 3 arguments, 2 provided
npm ERR! ../src/database.h: At global scope:
npm ERR! ../src/database.h:86:7: warning: unnecessary parentheses in declaration of ‘pendingCloseWorker’ [-Wparentheses]
npm ERR!    86 |   void(*pendingCloseWorker);
npm ERR!       |       ^~~~~~~~~~~~~~~~~~~~~
npm ERR! ../src/database.h:86:7: note: remove parentheses
npm ERR!    86 |   void(*pendingCloseWorker);
npm ERR!       |       ^~~~~~~~~~~~~~~~~~~~~
npm ERR!       |       -                   -
npm ERR! In file included from ../src/batch.cc:8:
npm ERR! ../src/common.h: In function ‘bool leveldown::BooleanOptionValue(v8::Local<v8::Object>, const char*, bool)’:
npm ERR! ../src/common.h:19:20: error: no matching function for call to ‘v8::Object::Has(v8::Local<v8::String>&)’
npm ERR!    19 |     && options->Has(key)
npm ERR!       |        ~~~~~~~~~~~~^~~~~
npm ERR! /home/mble/.cache/node-gyp/16.15.1/include/node/v8.h:4042:37: note: candidate: ‘v8::Maybe<bool> v8::Object::Has(v8::Local<v8::Context>, v8::Local<v8::Value>)’
npm ERR!  4042 |   V8_WARN_UNUSED_RESULT Maybe<bool> Has(Local<Context> context,
npm ERR!       |                                     ^~~
npm ERR! /home/mble/.cache/node-gyp/16.15.1/include/node/v8.h:4042:37: note:   candidate expects 2 arguments, 1 provided
npm ERR! /home/mble/.cache/node-gyp/16.15.1/include/node/v8.h:4048:37: note: candidate: ‘v8::Maybe<bool> v8::Object::Has(v8::Local<v8::Context>, uint32_t)’
npm ERR!  4048 |   V8_WARN_UNUSED_RESULT Maybe<bool> Has(Local<Context> context, uint32_t index);
npm ERR!       |                                     ^~~
npm ERR! /home/mble/.cache/node-gyp/16.15.1/include/node/v8.h:4048:37: note:   candidate expects 2 arguments, 1 provided
npm ERR! ../src/common.h:20:19: error: no matching function for call to ‘v8::Object::Get(v8::Local<v8::String>&)’
npm ERR!    20 |     ? options->Get(key)->BooleanValue()
npm ERR!       |       ~~~~~~~~~~~~^~~~~
npm ERR! /home/mble/.cache/node-gyp/16.15.1/include/node/v8.h:4007:43: note: candidate: ‘v8::MaybeLocal<v8::Value> v8::Object::Get(v8::Local<v8::Context>, v8::Local<v8::Value>)’
npm ERR!  4007 |   V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
npm ERR!       |                                           ^~~
npm ERR! /home/mble/.cache/node-gyp/16.15.1/include/node/v8.h:4007:43: note:   candidate expects 2 arguments, 1 provided
npm ERR! /home/mble/.cache/node-gyp/16.15.1/include/node/v8.h:4010:43: note: candidate: ‘v8::MaybeLocal<v8::Value> v8::Object::Get(v8::Local<v8::Context>, uint32_t)’
npm ERR!  4010 |   V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
npm ERR!       |                                           ^~~
npm ERR! /home/mble/.cache/node-gyp/16.15.1/include/node/v8.h:4010:43: note:   candidate expects 2 arguments, 1 provided
npm ERR! ../src/common.h: In function ‘uint32_t leveldown::UInt32OptionValue(v8::Local<v8::Object>, const char*, uint32_t)’:
npm ERR! ../src/common.h:30:20: error: no matching function for call to ‘v8::Object::Has(v8::Local<v8::String>&)’
npm ERR!    30 |     && options->Has(key)
npm ERR!       |        ~~~~~~~~~~~~^~~~~
npm ERR! /home/mble/.cache/node-gyp/16.15.1/include/node/v8.h:4042:37: note: candidate: ‘v8::Maybe<bool> v8::Object::Has(v8::Local<v8::Context>, v8::Local<v8::Value>)’
npm ERR!  4042 |   V8_WARN_UNUSED_RESULT Maybe<bool> Has(Local<Context> context,
npm ERR!       |                                     ^~~
npm ERR! /home/mble/.cache/node-gyp/16.15.1/include/node/v8.h:4042:37: note:   candidate expects 2 arguments, 1 provided
npm ERR! /home/mble/.cache/node-gyp/16.15.1/include/node/v8.h:4048:37: note: candidate: ‘v8::Maybe<bool> v8::Object::Has(v8::Local<v8::Context>, uint32_t)’
npm ERR!  4048 |   V8_WARN_UNUSED_RESULT Maybe<bool> Has(Local<Context> context, uint32_t index);
npm ERR!       |                                     ^~~
npm ERR! /home/mble/.cache/node-gyp/16.15.1/include/node/v8.h:4048:37: note:   candidate expects 2 arguments, 1 provided
npm ERR! ../src/common.h:31:20: error: no matching function for call to ‘v8::Object::Get(v8::Local<v8::String>&)’
npm ERR!    31 |     && options->Get(key)->IsNumber()
npm ERR!       |        ~~~~~~~~~~~~^~~~~
npm ERR! /home/mble/.cache/node-gyp/16.15.1/include/node/v8.h:4007:43: note: candidate: ‘v8::MaybeLocal<v8::Value> v8::Object::Get(v8::Local<v8::Context>, v8::Local<v8::Value>)’
npm ERR!  4007 |   V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
npm ERR!       |                                           ^~~
npm ERR! /home/mble/.cache/node-gyp/16.15.1/include/node/v8.h:4007:43: note:   candidate expects 2 arguments, 1 provided
npm ERR! /home/mble/.cache/node-gyp/16.15.1/include/node/v8.h:4010:43: note: candidate: ‘v8::MaybeLocal<v8::Value> v8::Object::Get(v8::Local<v8::Context>, uint32_t)’
npm ERR!  4010 |   V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
npm ERR!       |                                           ^~~
npm ERR! /home/mble/.cache/node-gyp/16.15.1/include/node/v8.h:4010:43: note:   candidate expects 2 arguments, 1 provided
npm ERR! ../src/common.h:32:19: error: no matching function for call to ‘v8::Object::Get(v8::Local<v8::String>&)’
npm ERR!    32 |     ? options->Get(key)->Uint32Value()
npm ERR!       |       ~~~~~~~~~~~~^~~~~
npm ERR! /home/mble/.cache/node-gyp/16.15.1/include/node/v8.h:4007:43: note: candidate: ‘v8::MaybeLocal<v8::Value> v8::Object::Get(v8::Local<v8::Context>, v8::Local<v8::Value>)’
npm ERR!  4007 |   V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
npm ERR!       |                                           ^~~
npm ERR! /home/mble/.cache/node-gyp/16.15.1/include/node/v8.h:4007:43: note:   candidate expects 2 arguments, 1 provided
npm ERR! /home/mble/.cache/node-gyp/16.15.1/include/node/v8.h:4010:43: note: candidate: ‘v8::MaybeLocal<v8::Value> v8::Object::Get(v8::Local<v8::Context>, uint32_t)’
npm ERR!  4010 |   V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
npm ERR!       |                                           ^~~
npm ERR! /home/mble/.cache/node-gyp/16.15.1/include/node/v8.h:4010:43: note:   candidate expects 2 arguments, 1 provided
npm ERR! ../src/batch.cc: In static member function ‘static Nan::NAN_METHOD_RETURN_TYPE leveldown::Batch::New(Nan::NAN_METHOD_ARGS_TYPE)’:
npm ERR! ../src/batch.cc:42:75: error: no matching function for call to ‘v8::Value::ToObject()’
npm ERR!    42 |   Database* database = Nan::ObjectWrap::Unwrap<Database>(info[0]->ToObject());
npm ERR!       |                                                          ~~~~~~~~~~~~~~~~~^~
npm ERR! /home/mble/.cache/node-gyp/16.15.1/include/node/v8.h:3060:44: note: candidate: ‘v8::MaybeLocal<v8::Object> v8::Value::ToObject(v8::Local<v8::Context>) const’
npm ERR!  3060 |   V8_WARN_UNUSED_RESULT MaybeLocal<Object> ToObject(
npm ERR!       |                                            ^~~~~~~~
npm ERR! /home/mble/.cache/node-gyp/16.15.1/include/node/v8.h:3060:44: note:   candidate expects 1 argument, 0 provided
npm ERR! ../src/batch.cc: In static member function ‘static v8::Local<v8::Value> leveldown::Batch::NewInstance(v8::Local<v8::Object>, v8::Local<v8::Object>)’:
npm ERR! ../src/batch.cc:72:68: error: no matching function for call to ‘v8::FunctionTemplate::GetFunction()’
npm ERR!    72 |     maybeInstance = Nan::NewInstance(constructorHandle->GetFunction(), 1, argv);
npm ERR!       |                                      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
npm ERR! /home/mble/.cache/node-gyp/16.15.1/include/node/v8.h:6802:46: note: candidate: ‘v8::MaybeLocal<v8::Function> v8::FunctionTemplate::GetFunction(v8::Local<v8::Context>)’
npm ERR!  6802 |   V8_WARN_UNUSED_RESULT MaybeLocal<Function> GetFunction(
npm ERR!       |                                              ^~~~~~~~~~~
npm ERR! /home/mble/.cache/node-gyp/16.15.1/include/node/v8.h:6802:46: note:   candidate expects 1 argument, 0 provided
npm ERR! ../src/batch.cc:75:68: error: no matching function for call to ‘v8::FunctionTemplate::GetFunction()’
npm ERR!    75 |     maybeInstance = Nan::NewInstance(constructorHandle->GetFunction(), 2, argv);
npm ERR!       |                                      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
npm ERR! /home/mble/.cache/node-gyp/16.15.1/include/node/v8.h:6802:46: note: candidate: ‘v8::MaybeLocal<v8::Function> v8::FunctionTemplate::GetFunction(v8::Local<v8::Context>)’
npm ERR!  6802 |   V8_WARN_UNUSED_RESULT MaybeLocal<Function> GetFunction(
npm ERR!       |                                              ^~~~~~~~~~~
npm ERR! /home/mble/.cache/node-gyp/16.15.1/include/node/v8.h:6802:46: note:   candidate expects 1 argument, 0 provided
npm ERR! ../src/batch.cc: In static member function ‘static Nan::NAN_METHOD_RETURN_TYPE leveldown::Batch::Put(Nan::NAN_METHOD_ARGS_TYPE)’:
npm ERR! ../src/leveldown.h:53:29: error: no matching function for call to ‘v8::Value::ToObject()’
npm ERR!    53 |   } else if (!from->ToObject().IsEmpty()                                       \
npm ERR! ../src/batch.cc:91:3: note: in expansion of macro ‘LD_STRING_OR_BUFFER_TO_SLICE’
npm ERR!    91 |   LD_STRING_OR_BUFFER_TO_SLICE(key, keyBuffer, key)
npm ERR!       |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
npm ERR! /home/mble/.cache/node-gyp/16.15.1/include/node/v8.h:3060:44: note: candidate: ‘v8::MaybeLocal<v8::Object> v8::Value::ToObject(v8::Local<v8::Context>) const’
npm ERR!  3060 |   V8_WARN_UNUSED_RESULT MaybeLocal<Object> ToObject(
npm ERR!       |                                            ^~~~~~~~
npm ERR! /home/mble/.cache/node-gyp/16.15.1/include/node/v8.h:3060:44: note:   candidate expects 1 argument, 0 provided
npm ERR! ../src/leveldown.h:54:50: error: no matching function for call to ‘v8::Value::ToObject()’
npm ERR!    54 |       && node::Buffer::HasInstance(from->ToObject())) {                        \
npm ERR! ../src/batch.cc:91:3: note: in expansion of macro ‘LD_STRING_OR_BUFFER_TO_SLICE’
npm ERR!    91 |   LD_STRING_OR_BUFFER_TO_SLICE(key, keyBuffer, key)
npm ERR!       |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
npm ERR! /home/mble/.cache/node-gyp/16.15.1/include/node/v8.h:3060:44: note: candidate: ‘v8::MaybeLocal<v8::Object> v8::Value::ToObject(v8::Local<v8::Context>) const’
npm ERR!  3060 |   V8_WARN_UNUSED_RESULT MaybeLocal<Object> ToObject(
npm ERR!       |                                            ^~~~~~~~
npm ERR! /home/mble/.cache/node-gyp/16.15.1/include/node/v8.h:3060:44: note:   candidate expects 1 argument, 0 provided
npm ERR! ../src/leveldown.h:55:52: error: no matching function for call to ‘v8::Value::ToObject()’
npm ERR!    55 |     to ## Sz_ = node::Buffer::Length(from->ToObject());                        \
npm ERR! ../src/batch.cc:91:3: note: in expansion of macro ‘LD_STRING_OR_BUFFER_TO_SLICE’
npm ERR!    91 |   LD_STRING_OR_BUFFER_TO_SLICE(key, keyBuffer, key)
npm ERR!       |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
npm ERR! /home/mble/.cache/node-gyp/16.15.1/include/node/v8.h:3060:44: note: candidate: ‘v8::MaybeLocal<v8::Object> v8::Value::ToObject(v8::Local<v8::Context>) const’
npm ERR!  3060 |   V8_WARN_UNUSED_RESULT MaybeLocal<Object> ToObject(
npm ERR!       |                                            ^~~~~~~~
npm ERR! /home/mble/.cache/node-gyp/16.15.1/include/node/v8.h:3060:44: note:   candidate expects 1 argument, 0 provided
npm ERR! ../src/leveldown.h:56:50: error: no matching function for call to ‘v8::Value::ToObject()’
npm ERR!    56 |     to ## Ch_ = node::Buffer::Data(from->ToObject());                          \
npm ERR! ../src/batch.cc:91:3: note: in expansion of macro ‘LD_STRING_OR_BUFFER_TO_SLICE’
npm ERR!    91 |   LD_STRING_OR_BUFFER_TO_SLICE(key, keyBuffer, key)
npm ERR!       |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
npm ERR! /home/mble/.cache/node-gyp/16.15.1/include/node/v8.h:3060:44: note: candidate: ‘v8::MaybeLocal<v8::Object> v8::Value::ToObject(v8::Local<v8::Context>) const’
npm ERR!  3060 |   V8_WARN_UNUSED_RESULT MaybeLocal<Object> ToObject(
npm ERR!       |                                            ^~~~~~~~
npm ERR! /home/mble/.cache/node-gyp/16.15.1/include/node/v8.h:3060:44: note:   candidate expects 1 argument, 0 provided
npm ERR! ../src/leveldown.h:58:53: error: no matching function for call to ‘v8::Value::ToString()’
npm ERR!    58 |     v8::Local<v8::String> to ## Str = from->ToString();                        \
npm ERR! ../src/batch.cc:91:3: note: in expansion of macro ‘LD_STRING_OR_BUFFER_TO_SLICE’
npm ERR!    91 |   LD_STRING_OR_BUFFER_TO_SLICE(key, keyBuffer, key)
npm ERR!       |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
npm ERR! /home/mble/.cache/node-gyp/16.15.1/include/node/v8.h:3048:44: note: candidate: ‘v8::MaybeLocal<v8::String> v8::Value::ToString(v8::Local<v8::Context>) const’
npm ERR!  3048 |   V8_WARN_UNUSED_RESULT MaybeLocal<String> ToString(
npm ERR!       |                                            ^~~~~~~~
npm ERR! /home/mble/.cache/node-gyp/16.15.1/include/node/v8.h:3048:44: note:   candidate expects 1 argument, 0 provided
npm ERR! ../src/leveldown.h:59:38: error: no matching function for call to ‘v8::String::Utf8Length()’
npm ERR!    59 |     to ## Sz_ = to ## Str->Utf8Length();                                       \
npm ERR! ../src/batch.cc:91:3: note: in expansion of macro ‘LD_STRING_OR_BUFFER_TO_SLICE’
npm ERR!    91 |   LD_STRING_OR_BUFFER_TO_SLICE(key, keyBuffer, key)
npm ERR!       |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
npm ERR! /home/mble/.cache/node-gyp/16.15.1/include/node/v8.h:3217:7: note: candidate: ‘int v8::String::Utf8Length(v8::Isolate*) const’
npm ERR!  3217 |   int Utf8Length(Isolate* isolate) const;
npm ERR!       |       ^~~~~~~~~~
npm ERR! /home/mble/.cache/node-gyp/16.15.1/include/node/v8.h:3217:7: note:   candidate expects 1 argument, 0 provided
npm ERR! ../src/batch.cc:91:32: error: cannot convert ‘char*’ to ‘v8::Isolate*’
npm ERR!    91 |   LD_STRING_OR_BUFFER_TO_SLICE(key, keyBuffer, key)
npm ERR!       |                                ^~~
npm ERR!       |                                |
npm ERR!       |                                char*
npm ERR! ../src/leveldown.h:62:9: note: in definition of macro ‘LD_STRING_OR_BUFFER_TO_SLICE’
npm ERR!    62 |         to ## Ch_                                                              \
npm ERR!       |         ^~
npm ERR! /home/mble/.cache/node-gyp/16.15.1/include/node/v8.h:3277:26: note:   initializing argument 1 of ‘int v8::String::WriteUtf8(v8::Isolate*, char*, int, int*, int) const’
npm ERR!  3277 |   int WriteUtf8(Isolate* isolate, char* buffer, int length = -1,
npm ERR!       |                 ~~~~~~~~~^~~~~~~
npm ERR! ../src/leveldown.h:53:29: error: no matching function for call to ‘v8::Value::ToObject()’
npm ERR!    53 |   } else if (!from->ToObject().IsEmpty()                                       \
npm ERR! ../src/batch.cc:92:3: note: in expansion of macro ‘LD_STRING_OR_BUFFER_TO_SLICE’
npm ERR!    92 |   LD_STRING_OR_BUFFER_TO_SLICE(value, valueBuffer, value)
npm ERR!       |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
npm ERR! /home/mble/.cache/node-gyp/16.15.1/include/node/v8.h:3060:44: note: candidate: ‘v8::MaybeLocal<v8::Object> v8::Value::ToObject(v8::Local<v8::Context>) const’
npm ERR!  3060 |   V8_WARN_UNUSED_RESULT MaybeLocal<Object> ToObject(
npm ERR!       |                                            ^~~~~~~~
npm ERR! /home/mble/.cache/node-gyp/16.15.1/include/node/v8.h:3060:44: note:   candidate expects 1 argument, 0 provided
npm ERR! ../src/leveldown.h:54:50: error: no matching function for call to ‘v8::Value::ToObject()’
npm ERR!    54 |       && node::Buffer::HasInstance(from->ToObject())) {                        \
npm ERR! ../src/batch.cc:92:3: note: in expansion of macro ‘LD_STRING_OR_BUFFER_TO_SLICE’
npm ERR!    92 |   LD_STRING_OR_BUFFER_TO_SLICE(value, valueBuffer, value)
npm ERR!       |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
npm ERR! /home/mble/.cache/node-gyp/16.15.1/include/node/v8.h:3060:44: note: candidate: ‘v8::MaybeLocal<v8::Object> v8::Value::ToObject(v8::Local<v8::Context>) const’
npm ERR!  3060 |   V8_WARN_UNUSED_RESULT MaybeLocal<Object> ToObject(
npm ERR!       |                                            ^~~~~~~~
npm ERR! /home/mble/.cache/node-gyp/16.15.1/include/node/v8.h:3060:44: note:   candidate expects 1 argument, 0 provided
npm ERR! ../src/leveldown.h:55:52: error: no matching function for call to ‘v8::Value::ToObject()’
npm ERR!    55 |     to ## Sz_ = node::Buffer::Length(from->ToObject());                        \
npm ERR! ../src/batch.cc:92:3: note: in expansion of macro ‘LD_STRING_OR_BUFFER_TO_SLICE’
npm ERR!    92 |   LD_STRING_OR_BUFFER_TO_SLICE(value, valueBuffer, value)
npm ERR!       |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
npm ERR! /home/mble/.cache/node-gyp/16.15.1/include/node/v8.h:3060:44: note: candidate: ‘v8::MaybeLocal<v8::Object> v8::Value::ToObject(v8::Local<v8::Context>) const’
npm ERR!  3060 |   V8_WARN_UNUSED_RESULT MaybeLocal<Object> ToObject(
npm ERR!       |                                            ^~~~~~~~
npm ERR! /home/mble/.cache/node-gyp/16.15.1/include/node/v8.h:3060:44: note:   candidate expects 1 argument, 0 provided
npm ERR! ../src/leveldown.h:56:50: error: no matching function for call to ‘v8::Value::ToObject()’
npm ERR!    56 |     to ## Ch_ = node::Buffer::Data(from->ToObject());                          \
npm ERR! ../src/batch.cc:92:3: note: in expansion of macro ‘LD_STRING_OR_BUFFER_TO_SLICE’
npm ERR!    92 |   LD_STRING_OR_BUFFER_TO_SLICE(value, valueBuffer, value)
npm ERR!       |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
npm ERR! /home/mble/.cache/node-gyp/16.15.1/include/node/v8.h:3060:44: note: candidate: ‘v8::MaybeLocal<v8::Object> v8::Value::ToObject(v8::Local<v8::Context>) const’
npm ERR!  3060 |   V8_WARN_UNUSED_RESULT MaybeLocal<Object> ToObject(
npm ERR!       |                                            ^~~~~~~~
npm ERR! /home/mble/.cache/node-gyp/16.15.1/include/node/v8.h:3060:44: note:   candidate expects 1 argument, 0 provided
npm ERR! ../src/leveldown.h:58:53: error: no matching function for call to ‘v8::Value::ToString()’
npm ERR!    58 |     v8::Local<v8::String> to ## Str = from->ToString();                        \
npm ERR! ../src/batch.cc:92:3: note: in expansion of macro ‘LD_STRING_OR_BUFFER_TO_SLICE’
npm ERR!    92 |   LD_STRING_OR_BUFFER_TO_SLICE(value, valueBuffer, value)
npm ERR!       |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
npm ERR! /home/mble/.cache/node-gyp/16.15.1/include/node/v8.h:3048:44: note: candidate: ‘v8::MaybeLocal<v8::String> v8::Value::ToString(v8::Local<v8::Context>) const’
npm ERR!  3048 |   V8_WARN_UNUSED_RESULT MaybeLocal<String> ToString(
npm ERR!       |                                            ^~~~~~~~
npm ERR! /home/mble/.cache/node-gyp/16.15.1/include/node/v8.h:3048:44: note:   candidate expects 1 argument, 0 provided
npm ERR! ../src/leveldown.h:59:38: error: no matching function for call to ‘v8::String::Utf8Length()’
npm ERR!    59 |     to ## Sz_ = to ## Str->Utf8Length();                                       \
npm ERR! ../src/batch.cc:92:3: note: in expansion of macro ‘LD_STRING_OR_BUFFER_TO_SLICE’
npm ERR!    92 |   LD_STRING_OR_BUFFER_TO_SLICE(value, valueBuffer, value)
npm ERR!       |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
npm ERR! /home/mble/.cache/node-gyp/16.15.1/include/node/v8.h:3217:7: note: candidate: ‘int v8::String::Utf8Length(v8::Isolate*) const’
npm ERR!  3217 |   int Utf8Length(Isolate* isolate) const;
npm ERR!       |       ^~~~~~~~~~
npm ERR! /home/mble/.cache/node-gyp/16.15.1/include/node/v8.h:3217:7: note:   candidate expects 1 argument, 0 provided
npm ERR! ../src/batch.cc:92:32: error: cannot convert ‘char*’ to ‘v8::Isolate*’
npm ERR!    92 |   LD_STRING_OR_BUFFER_TO_SLICE(value, valueBuffer, value)
npm ERR!       |                                ^~~~~
npm ERR!       |                                |
npm ERR!       |                                char*
npm ERR! ../src/leveldown.h:62:9: note: in definition of macro ‘LD_STRING_OR_BUFFER_TO_SLICE’
npm ERR!    62 |         to ## Ch_                                                              \
npm ERR!       |         ^~
npm ERR! /home/mble/.cache/node-gyp/16.15.1/include/node/v8.h:3277:26: note:   initializing argument 1 of ‘int v8::String::WriteUtf8(v8::Isolate*, char*, int, int*, int) const’
npm ERR!  3277 |   int WriteUtf8(Isolate* isolate, char* buffer, int length = -1,
npm ERR!       |                 ~~~~~~~~~^~~~~~~
npm ERR! ../src/batch.cc: In static member function ‘static Nan::NAN_METHOD_RETURN_TYPE leveldown::Batch::Del(Nan::NAN_METHOD_ARGS_TYPE)’:
npm ERR! ../src/leveldown.h:53:29: error: no matching function for call to ‘v8::Value::ToObject()’
npm ERR!    53 |   } else if (!from->ToObject().IsEmpty()                                       \
npm ERR! ../src/batch.cc:110:3: note: in expansion of macro ‘LD_STRING_OR_BUFFER_TO_SLICE’
npm ERR!   110 |   LD_STRING_OR_BUFFER_TO_SLICE(key, keyBuffer, key)
npm ERR!       |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
npm ERR! /home/mble/.cache/node-gyp/16.15.1/include/node/v8.h:3060:44: note: candidate: ‘v8::MaybeLocal<v8::Object> v8::Value::ToObject(v8::Local<v8::Context>) const’
npm ERR!  3060 |   V8_WARN_UNUSED_RESULT MaybeLocal<Object> ToObject(
npm ERR!       |                                            ^~~~~~~~
npm ERR! /home/mble/.cache/node-gyp/16.15.1/include/node/v8.h:3060:44: note:   candidate expects 1 argument, 0 provided
npm ERR! ../src/leveldown.h:54:50: error: no matching function for call to ‘v8::Value::ToObject()’
npm ERR!    54 |       && node::Buffer::HasInstance(from->ToObject())) {                        \
npm ERR! ../src/batch.cc:110:3: note: in expansion of macro ‘LD_STRING_OR_BUFFER_TO_SLICE’
npm ERR!   110 |   LD_STRING_OR_BUFFER_TO_SLICE(key, keyBuffer, key)
npm ERR!       |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
npm ERR! /home/mble/.cache/node-gyp/16.15.1/include/node/v8.h:3060:44: note: candidate: ‘v8::MaybeLocal<v8::Object> v8::Value::ToObject(v8::Local<v8::Context>) const’
npm ERR!  3060 |   V8_WARN_UNUSED_RESULT MaybeLocal<Object> ToObject(
npm ERR!       |                                            ^~~~~~~~
npm ERR! /home/mble/.cache/node-gyp/16.15.1/include/node/v8.h:3060:44: note:   candidate expects 1 argument, 0 provided
npm ERR! ../src/leveldown.h:55:52: error: no matching function for call to ‘v8::Value::ToObject()’
npm ERR!    55 |     to ## Sz_ = node::Buffer::Length(from->ToObject());                        \
npm ERR! ../src/batch.cc:110:3: note: in expansion of macro ‘LD_STRING_OR_BUFFER_TO_SLICE’
npm ERR!   110 |   LD_STRING_OR_BUFFER_TO_SLICE(key, keyBuffer, key)
npm ERR!       |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
npm ERR! /home/mble/.cache/node-gyp/16.15.1/include/node/v8.h:3060:44: note: candidate: ‘v8::MaybeLocal<v8::Object> v8::Value::ToObject(v8::Local<v8::Context>) const’
npm ERR!  3060 |   V8_WARN_UNUSED_RESULT MaybeLocal<Object> ToObject(
npm ERR!       |                                            ^~~~~~~~
npm ERR! /home/mble/.cache/node-gyp/16.15.1/include/node/v8.h:3060:44: note:   candidate expects 1 argument, 0 provided
npm ERR! ../src/leveldown.h:56:50: error: no matching function for call to ‘v8::Value::ToObject()’
npm ERR!    56 |     to ## Ch_ = node::Buffer::Data(from->ToObject());                          \
npm ERR! ../src/batch.cc:110:3: note: in expansion of macro ‘LD_STRING_OR_BUFFER_TO_SLICE’
npm ERR!   110 |   LD_STRING_OR_BUFFER_TO_SLICE(key, keyBuffer, key)
npm ERR!       |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
npm ERR! /home/mble/.cache/node-gyp/16.15.1/include/node/v8.h:3060:44: note: candidate: ‘v8::MaybeLocal<v8::Object> v8::Value::ToObject(v8::Local<v8::Context>) const’
npm ERR!  3060 |   V8_WARN_UNUSED_RESULT MaybeLocal<Object> ToObject(
npm ERR!       |                                            ^~~~~~~~
npm ERR! /home/mble/.cache/node-gyp/16.15.1/include/node/v8.h:3060:44: note:   candidate expects 1 argument, 0 provided
npm ERR! ../src/leveldown.h:58:53: error: no matching function for call to ‘v8::Value::ToString()’
npm ERR!    58 |     v8::Local<v8::String> to ## Str = from->ToString();                        \
npm ERR! ../src/batch.cc:110:3: note: in expansion of macro ‘LD_STRING_OR_BUFFER_TO_SLICE’
npm ERR!   110 |   LD_STRING_OR_BUFFER_TO_SLICE(key, keyBuffer, key)
npm ERR!       |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
npm ERR! /home/mble/.cache/node-gyp/16.15.1/include/node/v8.h:3048:44: note: candidate: ‘v8::MaybeLocal<v8::String> v8::Value::ToString(v8::Local<v8::Context>) const’
npm ERR!  3048 |   V8_WARN_UNUSED_RESULT MaybeLocal<String> ToString(
npm ERR!       |                                            ^~~~~~~~
npm ERR! /home/mble/.cache/node-gyp/16.15.1/include/node/v8.h:3048:44: note:   candidate expects 1 argument, 0 provided
npm ERR! ../src/leveldown.h:59:38: error: no matching function for call to ‘v8::String::Utf8Length()’
npm ERR!    59 |     to ## Sz_ = to ## Str->Utf8Length();                                       \
npm ERR! ../src/batch.cc:110:3: note: in expansion of macro ‘LD_STRING_OR_BUFFER_TO_SLICE’
npm ERR!   110 |   LD_STRING_OR_BUFFER_TO_SLICE(key, keyBuffer, key)
npm ERR!       |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
npm ERR! /home/mble/.cache/node-gyp/16.15.1/include/node/v8.h:3217:7: note: candidate: ‘int v8::String::Utf8Length(v8::Isolate*) const’
npm ERR!  3217 |   int Utf8Length(Isolate* isolate) const;
npm ERR!       |       ^~~~~~~~~~
npm ERR! /home/mble/.cache/node-gyp/16.15.1/include/node/v8.h:3217:7: note:   candidate expects 1 argument, 0 provided
npm ERR! ../src/batch.cc:110:32: error: cannot convert ‘char*’ to ‘v8::Isolate*’
npm ERR!   110 |   LD_STRING_OR_BUFFER_TO_SLICE(key, keyBuffer, key)
npm ERR!       |                                ^~~
npm ERR!       |                                |
npm ERR!       |                                char*
npm ERR! ../src/leveldown.h:62:9: note: in definition of macro ‘LD_STRING_OR_BUFFER_TO_SLICE’
npm ERR!    62 |         to ## Ch_                                                              \
npm ERR!       |         ^~
npm ERR! /home/mble/.cache/node-gyp/16.15.1/include/node/v8.h:3277:26: note:   initializing argument 1 of ‘int v8::String::WriteUtf8(v8::Isolate*, char*, int, int*, int) const’
npm ERR!  3277 |   int WriteUtf8(Isolate* isolate, char* buffer, int length = -1,
npm ERR!       |                 ~~~~~~~~~^~~~~~~
npm ERR! make: *** [leveldown.target.mk:131: Release/obj.target/leveldown/src/batch.o] Error 1
npm ERR! gyp ERR! build error
npm ERR! gyp ERR! stack Error: `make` failed with exit code: 2
npm ERR! gyp ERR! stack     at ChildProcess.onExit (/home/mble/.local/share/nvm/v16.15.1/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:194:23)
npm ERR! gyp ERR! stack     at ChildProcess.emit (node:events:527:28)
npm ERR! gyp ERR! stack     at Process.ChildProcess._handle.onexit (node:internal/child_process:291:12)
npm ERR! gyp ERR! System Linux 5.18.10-zen1-1-zen
npm ERR! gyp ERR! command "/home/mble/.local/share/nvm/v16.15.1/bin/node" "/home/mble/.local/share/nvm/v16.15.1/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
npm ERR! gyp ERR! cwd /home/mble/.local/share/nvm/v16.15.1/lib/node_modules/orbit-db-cli/node_modules/leveldown
npm ERR! gyp ERR! node -v v16.15.1
npm ERR! gyp ERR! node-gyp -v v9.0.0
npm ERR! gyp ERR! not ok

npm ERR! A complete log of this run can be found in:
npm ERR!     /home/mble/.npm/_logs/2022-07-13T17_01_13_651Z-debug-0.log

ORBITDB_PATH is not respected

$ ORBITDB_PATH=/home/xxx/orbitdb npx orbitdb demo hello
                 _     _ _         _ _     
                | |   (_) |       | | |    
       ___  _ __| |__  _| |_    __| | |__  
      / _ \| '__| '_ \| | __|  / _` | '_ \ 
     | (_) | |  | |_) | | |_  | (_| | |_) |
      \___/|_|  |_.__/|_|\__|  \__,_|_.__/ 

             Peer-to-Peer Database
       https://github.com/orbitdb/orbit-db

> node "node_modules/.bin/orbitdb" create /orbitdb/demo docstore
Error: Cannot read property 'set' of undefined
Command failed: node "/home/xxx/orbitdb/node_modules/orbit-db-cli/src/bin" create /orbitdb/demo docstore
Error: Cannot read property 'set' of undefined

The error Cannot read property 'set' of undefined is probably unrelated.

The issue comes with "node_modules/.bin/orbitdb" create /orbitdb/demo docstorewhere it appears the binary tries to make a docstore at/orbitdb/demo`.

Same can be seen with another command:

$ ORBITDB_PATH=/home/xxx/orbitdb npx orbitdb create hello feed
Error: Cannot read property 'set' of undefined
$ file /home/ber/tmp/orbitdb
/home/xxxx/orbitdb: cannot open `/home/xxxx/orbitdb' (No such file or directory)

Note that the xxx is to censor some directory-names only.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.