diff --git a/conformance/README.md b/conformance/README.md index efba30532..0798c9e61 100644 --- a/conformance/README.md +++ b/conformance/README.md @@ -19,42 +19,28 @@ $ ./setup.sh By default, there is a `http` symlink to `../target/debug/ipfs-http`. You can change this to the release binary by modifying the symlink or use a custom -binary via the environment variable `IPFS_RUST_EXEC`. The default `rust.sh` -wrapper will record all actions taken by the tests into a single large log -file. It's not recommended to trust it to keep all log lines especially for -tests with multiple processes. +binary via the environment variable `IPFS_RUST_EXEC`. -```bash -$ IPFS_RUST_EXEC="$(pwd)/rust.sh" npm test -$ cat /tmp/rust.log -``` - -## Obtaining logs for tests with multiple processes - -Patch the `rust.sh` as follows: +**NOTE**: if you need to invoke `rust-gdb`, remember to do launch it against the +symlink not using the file it points to, otherwise no symbols might get loaded. -```diff --./http "$@" 2>&1 | tee -a /tmp/rust.log || retval=$? -+./http "$@" 2>&1 | tee -a /tmp/rust.log.$$ || retval=$? -``` +**NOTE**: previously we had a `rust.sh` for capturing logs. Turns out it was +unnecessary and even incompatible with the latest behaviour of js-ipfsd-ctl of +sending a SIGKILL to the launched process, which would leave the actual +ipfs-http running while the shell script cannot react. The obtaining logs +section below has been updated to reflect this. -Now the `/tmp/rust.log` will contain only the "pointers" to other log files, for example: - -``` ->>>> new execution 24132 with args: daemon -<<<< exiting 24132 with 0 -``` - -This means there is now a log file `/tmp/rust.log.24132` for that invocation. +## Obtaining logs for tests with multiple processes -Additionally, it helps to clear out the logs often with `rm -f /tmp/rust.log*` -and only run selected tests using `IPFS_RUST_EXEC="$(pwd)/rust.sh" npm test -- --grep 'should do foo'`. -If it's impossible to limit the number of tests to one with `--grep`, you can -comment out the undesired tests in `test/index.js`. +Use environment variable `DEBUG` with a value of `*` to let js-ipfsd-ctl to +passthrough logs. The same mechanism is used in our CI configuration. However +it might not allow one to know which log output comes from which process, for +one needs to rig the process id to be part of tracing-subscriber output. # Patch management -We are currently pinned to `interface-ipfs-core@0.137.0` and the fixes we have upstreamed are kept under `patches/`. +We are currently pinned to `interface-ipfs-core@0.137.0` and the fixes we have +upstreamed are kept under `patches/`. To create a new patch: diff --git a/conformance/package-lock.json b/conformance/package-lock.json index 4565cc536..a56354b0c 100644 --- a/conformance/package-lock.json +++ b/conformance/package-lock.json @@ -4,6 +4,14 @@ "lockfileVersion": 1, "requires": true, "dependencies": { + "@achingbrain/electron-fetch": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/@achingbrain/electron-fetch/-/electron-fetch-1.7.2.tgz", + "integrity": "sha512-ShX5frO+2OddzRIlUb8D0Ao2eC3uZl910CYnRIPGLLM360vQceeOqpivwNdbry41Ph3MMtLR4RpzGdaADGG8Gg==", + "requires": { + "encoding": "^0.1.13" + } + }, "@arr/every": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/@arr/every/-/every-1.0.1.tgz", @@ -1562,6 +1570,7 @@ "version": "3.2.4", "resolved": "https://registry.npmjs.org/@hapi/accept/-/accept-3.2.4.tgz", "integrity": "sha512-soThGB+QMgfxlh0Vzhzlf3ZOEOPk5biEwcOXhkF0Eedqx8VnhGiggL9UYHrIsOb1rUg3Be3K8kp0iDL2wbVSOQ==", + "dev": true, "requires": { "@hapi/boom": "7.x.x", "@hapi/hoek": "8.x.x" @@ -1571,6 +1580,7 @@ "version": "7.4.11", "resolved": "https://registry.npmjs.org/@hapi/boom/-/boom-7.4.11.tgz", "integrity": "sha512-VSU/Cnj1DXouukYxxkes4nNJonCnlogHvIff1v1RVoN4xzkKhMXX+GRmb3NyH1iar10I9WFPDv2JPwfH3GaV0A==", + "dev": true, "requires": { "@hapi/hoek": "8.x.x" } @@ -1580,12 +1590,14 @@ "@hapi/address": { "version": "2.1.4", "resolved": "https://registry.npmjs.org/@hapi/address/-/address-2.1.4.tgz", - "integrity": "sha512-QD1PhQk+s31P1ixsX0H0Suoupp3VMXzIVMSwobR3F3MSUO2YCV0B7xqLcUw/Bh8yuvd3LhpyqLQWTNcRmp6IdQ==" + "integrity": "sha512-QD1PhQk+s31P1ixsX0H0Suoupp3VMXzIVMSwobR3F3MSUO2YCV0B7xqLcUw/Bh8yuvd3LhpyqLQWTNcRmp6IdQ==", + "dev": true }, "@hapi/ammo": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/@hapi/ammo/-/ammo-3.1.2.tgz", "integrity": "sha512-ej9OtFmiZv1qr45g1bxEZNGyaR4jRpyMxU6VhbxjaYThymvOwsyIsUKMZnP5Qw2tfYFuwqCJuIBHGpeIbdX9gQ==", + "dev": true, "requires": { "@hapi/hoek": "8.x.x" } @@ -1594,22 +1606,31 @@ "version": "4.2.1", "resolved": "https://registry.npmjs.org/@hapi/b64/-/b64-4.2.1.tgz", "integrity": "sha512-zqHpQuH5CBMw6hADzKfU/IGNrxq1Q+/wTYV+OiZRQN9F3tMyk+9BUMeBvFRMamduuqL8iSp62QAnJ+7ATiYLWA==", + "dev": true, "requires": { "@hapi/hoek": "8.x.x" } }, "@hapi/boom": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/@hapi/boom/-/boom-8.0.1.tgz", - "integrity": "sha512-SnBM2GzEYEA6AGFKXBqNLWXR3uNBui0bkmklYXX1gYtevVhDTy2uakwkSauxvIWMtlANGRhzChYg95If3FWCwA==", + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/@hapi/boom/-/boom-9.1.0.tgz", + "integrity": "sha512-4nZmpp4tXbm162LaZT45P7F7sgiem8dwAh2vHWT6XX24dozNjGMg6BvKCRvtCUcmcXqeMIUqWN8Rc5X8yKuROQ==", "requires": { - "@hapi/hoek": "8.x.x" + "@hapi/hoek": "9.x.x" + }, + "dependencies": { + "@hapi/hoek": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.1.0.tgz", + "integrity": "sha512-i9YbZPN3QgfighY/1X1Pu118VUz2Fmmhd6b2n0/O8YVgGGfw0FbUYoA97k7FkpGJ+pLCFEDLUmAPPV4D1kpeFw==" + } } }, "@hapi/bounce": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/@hapi/bounce/-/bounce-1.3.2.tgz", "integrity": "sha512-3bnb1AlcEByFZnpDIidxQyw1Gds81z/1rSqlx4bIEE+wUN0ATj0D49B5cE1wGocy90Rp/de4tv7GjsKd5RQeew==", + "dev": true, "requires": { "@hapi/boom": "7.x.x", "@hapi/hoek": "^8.3.1" @@ -1619,6 +1640,7 @@ "version": "7.4.11", "resolved": "https://registry.npmjs.org/@hapi/boom/-/boom-7.4.11.tgz", "integrity": "sha512-VSU/Cnj1DXouukYxxkes4nNJonCnlogHvIff1v1RVoN4xzkKhMXX+GRmb3NyH1iar10I9WFPDv2JPwfH3GaV0A==", + "dev": true, "requires": { "@hapi/hoek": "8.x.x" } @@ -1628,12 +1650,14 @@ "@hapi/bourne": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/@hapi/bourne/-/bourne-1.3.2.tgz", - "integrity": "sha512-1dVNHT76Uu5N3eJNTYcvxee+jzX4Z9lfciqRRHCU27ihbUcYi+iSc2iml5Ke1LXe1SyJCLA0+14Jh4tXJgOppA==" + "integrity": "sha512-1dVNHT76Uu5N3eJNTYcvxee+jzX4Z9lfciqRRHCU27ihbUcYi+iSc2iml5Ke1LXe1SyJCLA0+14Jh4tXJgOppA==", + "dev": true }, "@hapi/call": { "version": "5.1.3", "resolved": "https://registry.npmjs.org/@hapi/call/-/call-5.1.3.tgz", "integrity": "sha512-5DfWpMk7qZiYhvBhM5oUiT4GQ/O8a2rFR121/PdwA/eZ2C1EsuD547ZggMKAR5bZ+FtxOf0fdM20zzcXzq2mZA==", + "dev": true, "requires": { "@hapi/boom": "7.x.x", "@hapi/hoek": "8.x.x" @@ -1643,6 +1667,7 @@ "version": "7.4.11", "resolved": "https://registry.npmjs.org/@hapi/boom/-/boom-7.4.11.tgz", "integrity": "sha512-VSU/Cnj1DXouukYxxkes4nNJonCnlogHvIff1v1RVoN4xzkKhMXX+GRmb3NyH1iar10I9WFPDv2JPwfH3GaV0A==", + "dev": true, "requires": { "@hapi/hoek": "8.x.x" } @@ -1653,6 +1678,7 @@ "version": "10.2.3", "resolved": "https://registry.npmjs.org/@hapi/catbox/-/catbox-10.2.3.tgz", "integrity": "sha512-kN9hXO4NYyOHW09CXiuj5qW1syc/0XeVOBsNNk0Tz89wWNQE5h21WF+VsfAw3uFR8swn/Wj3YEVBnWqo82m/JQ==", + "dev": true, "requires": { "@hapi/boom": "7.x.x", "@hapi/hoek": "8.x.x", @@ -1664,6 +1690,7 @@ "version": "7.4.11", "resolved": "https://registry.npmjs.org/@hapi/boom/-/boom-7.4.11.tgz", "integrity": "sha512-VSU/Cnj1DXouukYxxkes4nNJonCnlogHvIff1v1RVoN4xzkKhMXX+GRmb3NyH1iar10I9WFPDv2JPwfH3GaV0A==", + "dev": true, "requires": { "@hapi/hoek": "8.x.x" } @@ -1674,6 +1701,7 @@ "version": "4.1.1", "resolved": "https://registry.npmjs.org/@hapi/catbox-memory/-/catbox-memory-4.1.1.tgz", "integrity": "sha512-T6Hdy8DExzG0jY7C8yYWZB4XHfc0v+p1EGkwxl2HoaPYAmW7I3E59M/IvmSVpis8RPcIoBp41ZpO2aZPBpM2Ww==", + "dev": true, "requires": { "@hapi/boom": "7.x.x", "@hapi/hoek": "8.x.x" @@ -1683,6 +1711,7 @@ "version": "7.4.11", "resolved": "https://registry.npmjs.org/@hapi/boom/-/boom-7.4.11.tgz", "integrity": "sha512-VSU/Cnj1DXouukYxxkes4nNJonCnlogHvIff1v1RVoN4xzkKhMXX+GRmb3NyH1iar10I9WFPDv2JPwfH3GaV0A==", + "dev": true, "requires": { "@hapi/hoek": "8.x.x" } @@ -1693,6 +1722,7 @@ "version": "4.1.1", "resolved": "https://registry.npmjs.org/@hapi/content/-/content-4.1.1.tgz", "integrity": "sha512-3TWvmwpVPxFSF3KBjKZ8yDqIKKZZIm7VurDSweYpXYENZrJH3C1hd1+qEQW9wQaUaI76pPBLGrXl6I3B7i3ipA==", + "dev": true, "requires": { "@hapi/boom": "7.x.x" }, @@ -1701,6 +1731,7 @@ "version": "7.4.11", "resolved": "https://registry.npmjs.org/@hapi/boom/-/boom-7.4.11.tgz", "integrity": "sha512-VSU/Cnj1DXouukYxxkes4nNJonCnlogHvIff1v1RVoN4xzkKhMXX+GRmb3NyH1iar10I9WFPDv2JPwfH3GaV0A==", + "dev": true, "requires": { "@hapi/hoek": "8.x.x" } @@ -1711,6 +1742,7 @@ "version": "4.2.1", "resolved": "https://registry.npmjs.org/@hapi/cryptiles/-/cryptiles-4.2.1.tgz", "integrity": "sha512-XoqgKsHK0l/VpqPs+tr6j6vE+VQ3+2bkF2stvttmc7xAOf1oSAwHcJ0tlp/6MxMysktt1IEY0Csy3khKaP9/uQ==", + "dev": true, "requires": { "@hapi/boom": "7.x.x" }, @@ -1719,6 +1751,7 @@ "version": "7.4.11", "resolved": "https://registry.npmjs.org/@hapi/boom/-/boom-7.4.11.tgz", "integrity": "sha512-VSU/Cnj1DXouukYxxkes4nNJonCnlogHvIff1v1RVoN4xzkKhMXX+GRmb3NyH1iar10I9WFPDv2JPwfH3GaV0A==", + "dev": true, "requires": { "@hapi/hoek": "8.x.x" } @@ -1728,17 +1761,20 @@ "@hapi/file": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/@hapi/file/-/file-1.0.0.tgz", - "integrity": "sha512-Bsfp/+1Gyf70eGtnIgmScvrH8sSypO3TcK3Zf0QdHnzn/ACnAkI6KLtGACmNRPEzzIy+W7aJX5E+1fc9GwIABQ==" + "integrity": "sha512-Bsfp/+1Gyf70eGtnIgmScvrH8sSypO3TcK3Zf0QdHnzn/ACnAkI6KLtGACmNRPEzzIy+W7aJX5E+1fc9GwIABQ==", + "dev": true }, "@hapi/formula": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/@hapi/formula/-/formula-1.2.0.tgz", - "integrity": "sha512-UFbtbGPjstz0eWHb+ga/GM3Z9EzqKXFWIbSOFURU0A/Gku0Bky4bCk9/h//K2Xr3IrCfjFNhMm4jyZ5dbCewGA==" + "integrity": "sha512-UFbtbGPjstz0eWHb+ga/GM3Z9EzqKXFWIbSOFURU0A/Gku0Bky4bCk9/h//K2Xr3IrCfjFNhMm4jyZ5dbCewGA==", + "dev": true }, "@hapi/hapi": { "version": "18.4.1", "resolved": "https://registry.npmjs.org/@hapi/hapi/-/hapi-18.4.1.tgz", "integrity": "sha512-9HjVGa0Z4Qv9jk9AVoUdJMQLA+KuZ+liKWyEEkVBx3e3H1F0JM6aGbPkY9jRfwsITBWGBU2iXazn65SFKSi/tg==", + "dev": true, "requires": { "@hapi/accept": "^3.2.4", "@hapi/ammo": "^3.1.2", @@ -1764,6 +1800,7 @@ "version": "7.4.11", "resolved": "https://registry.npmjs.org/@hapi/boom/-/boom-7.4.11.tgz", "integrity": "sha512-VSU/Cnj1DXouukYxxkes4nNJonCnlogHvIff1v1RVoN4xzkKhMXX+GRmb3NyH1iar10I9WFPDv2JPwfH3GaV0A==", + "dev": true, "requires": { "@hapi/hoek": "8.x.x" } @@ -1772,6 +1809,7 @@ "version": "15.1.1", "resolved": "https://registry.npmjs.org/@hapi/joi/-/joi-15.1.1.tgz", "integrity": "sha512-entf8ZMOK8sc+8YfeOlM8pCfg3b5+WZIKBfUaaJT8UsjAAPjartzxIYm3TIbjvA4u+u++KbcXD38k682nVHDAQ==", + "dev": true, "requires": { "@hapi/address": "2.x.x", "@hapi/bourne": "1.x.x", @@ -1785,6 +1823,7 @@ "version": "6.2.2", "resolved": "https://registry.npmjs.org/@hapi/heavy/-/heavy-6.2.2.tgz", "integrity": "sha512-PY1dCCO6dsze7RlafIRhTaGeyTgVe49A/lSkxbhKGjQ7x46o/OFf7hLiRqTCDh3atcEKf6362EaB3+kTUbCsVA==", + "dev": true, "requires": { "@hapi/boom": "7.x.x", "@hapi/hoek": "8.x.x", @@ -1795,6 +1834,7 @@ "version": "7.4.11", "resolved": "https://registry.npmjs.org/@hapi/boom/-/boom-7.4.11.tgz", "integrity": "sha512-VSU/Cnj1DXouukYxxkes4nNJonCnlogHvIff1v1RVoN4xzkKhMXX+GRmb3NyH1iar10I9WFPDv2JPwfH3GaV0A==", + "dev": true, "requires": { "@hapi/hoek": "8.x.x" } @@ -1804,7 +1844,8 @@ "@hapi/hoek": { "version": "8.5.1", "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-8.5.1.tgz", - "integrity": "sha512-yN7kbciD87WzLGc5539Tn0sApjyiGHAJgKvG9W8C7O+6c7qmoQMfVs0W4bX17eqz6C78QJqqFrtgdK5EWf6Qow==" + "integrity": "sha512-yN7kbciD87WzLGc5539Tn0sApjyiGHAJgKvG9W8C7O+6c7qmoQMfVs0W4bX17eqz6C78QJqqFrtgdK5EWf6Qow==", + "dev": true }, "@hapi/inert": { "version": "5.2.2", @@ -1851,6 +1892,7 @@ "version": "5.1.4", "resolved": "https://registry.npmjs.org/@hapi/iron/-/iron-5.1.4.tgz", "integrity": "sha512-+ElC+OCiwWLjlJBmm8ZEWjlfzTMQTdgPnU/TsoU5QsktspIWmWi9IU4kU83nH+X/SSya8TP8h8P11Wr5L7dkQQ==", + "dev": true, "requires": { "@hapi/b64": "4.x.x", "@hapi/boom": "7.x.x", @@ -1863,6 +1905,7 @@ "version": "7.4.11", "resolved": "https://registry.npmjs.org/@hapi/boom/-/boom-7.4.11.tgz", "integrity": "sha512-VSU/Cnj1DXouukYxxkes4nNJonCnlogHvIff1v1RVoN4xzkKhMXX+GRmb3NyH1iar10I9WFPDv2JPwfH3GaV0A==", + "dev": true, "requires": { "@hapi/hoek": "8.x.x" } @@ -1873,6 +1916,7 @@ "version": "16.1.8", "resolved": "https://registry.npmjs.org/@hapi/joi/-/joi-16.1.8.tgz", "integrity": "sha512-wAsVvTPe+FwSrsAurNt5vkg3zo+TblvC5Bb1zMVK6SJzZqw9UrJnexxR+76cpePmtUZKHAPxcQ2Bf7oVHyahhg==", + "dev": true, "requires": { "@hapi/address": "^2.1.2", "@hapi/formula": "^1.2.0", @@ -1885,6 +1929,7 @@ "version": "4.1.1", "resolved": "https://registry.npmjs.org/@hapi/mimos/-/mimos-4.1.1.tgz", "integrity": "sha512-CXoi/zfcTWfKYX756eEea8rXJRIb9sR4d7VwyAH9d3BkDyNgAesZxvqIdm55npQc6S9mU3FExinMAQVlIkz0eA==", + "dev": true, "requires": { "@hapi/hoek": "8.x.x", "mime-db": "1.x.x" @@ -1894,6 +1939,7 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/@hapi/nigel/-/nigel-3.1.1.tgz", "integrity": "sha512-R9YWx4S8yu0gcCBrMUDCiEFm1SQT895dMlYoeNBp8I6YhF1BFF1iYPueKA2Kkp9BvyHdjmvrxCOns7GMmpl+Fw==", + "dev": true, "requires": { "@hapi/hoek": "8.x.x", "@hapi/vise": "3.x.x" @@ -1903,6 +1949,7 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/@hapi/pez/-/pez-4.1.2.tgz", "integrity": "sha512-8zSdJ8cZrJLFldTgwjU9Fb1JebID+aBCrCsycgqKYe0OZtM2r3Yv3aAwW5z97VsZWCROC1Vx6Mdn4rujh5Ktcg==", + "dev": true, "requires": { "@hapi/b64": "4.x.x", "@hapi/boom": "7.x.x", @@ -1915,6 +1962,7 @@ "version": "7.4.11", "resolved": "https://registry.npmjs.org/@hapi/boom/-/boom-7.4.11.tgz", "integrity": "sha512-VSU/Cnj1DXouukYxxkes4nNJonCnlogHvIff1v1RVoN4xzkKhMXX+GRmb3NyH1iar10I9WFPDv2JPwfH3GaV0A==", + "dev": true, "requires": { "@hapi/hoek": "8.x.x" } @@ -1924,12 +1972,14 @@ "@hapi/pinpoint": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/@hapi/pinpoint/-/pinpoint-1.0.2.tgz", - "integrity": "sha512-dtXC/WkZBfC5vxscazuiJ6iq4j9oNx1SHknmIr8hofarpKUZKmlUVYVIhNVzIEgK5Wrc4GMHL5lZtt1uS2flmQ==" + "integrity": "sha512-dtXC/WkZBfC5vxscazuiJ6iq4j9oNx1SHknmIr8hofarpKUZKmlUVYVIhNVzIEgK5Wrc4GMHL5lZtt1uS2flmQ==", + "dev": true }, "@hapi/podium": { "version": "3.4.3", "resolved": "https://registry.npmjs.org/@hapi/podium/-/podium-3.4.3.tgz", "integrity": "sha512-QJlnYLEYZWlKQ9fSOtuUcpANyoVGwT68GA9P0iQQCAetBK0fI+nbRBt58+aMixoifczWZUthuGkNjqKxgPh/CQ==", + "dev": true, "requires": { "@hapi/hoek": "8.x.x", "@hapi/joi": "16.x.x" @@ -1939,6 +1989,7 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/@hapi/shot/-/shot-4.1.2.tgz", "integrity": "sha512-6LeHLjvsq/bQ0R+fhEyr7mqExRGguNTrxFZf5DyKe3CK6pNabiGgYO4JVFaRrLZ3JyuhkS0fo8iiRE2Ql2oA/A==", + "dev": true, "requires": { "@hapi/hoek": "8.x.x", "@hapi/joi": "16.x.x" @@ -1948,6 +1999,7 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/@hapi/somever/-/somever-2.1.1.tgz", "integrity": "sha512-cic5Sto4KGd9B0oQSdKTokju+rYhCbdpzbMb0EBnrH5Oc1z048hY8PaZ1lx2vBD7I/XIfTQVQetBH57fU51XRA==", + "dev": true, "requires": { "@hapi/bounce": "1.x.x", "@hapi/hoek": "8.x.x" @@ -1957,6 +2009,7 @@ "version": "6.1.2", "resolved": "https://registry.npmjs.org/@hapi/statehood/-/statehood-6.1.2.tgz", "integrity": "sha512-pYXw1x6npz/UfmtcpUhuMvdK5kuOGTKcJNfLqdNptzietK2UZH5RzNJSlv5bDHeSmordFM3kGItcuQWX2lj2nQ==", + "dev": true, "requires": { "@hapi/boom": "7.x.x", "@hapi/bounce": "1.x.x", @@ -1971,6 +2024,7 @@ "version": "7.4.11", "resolved": "https://registry.npmjs.org/@hapi/boom/-/boom-7.4.11.tgz", "integrity": "sha512-VSU/Cnj1DXouukYxxkes4nNJonCnlogHvIff1v1RVoN4xzkKhMXX+GRmb3NyH1iar10I9WFPDv2JPwfH3GaV0A==", + "dev": true, "requires": { "@hapi/hoek": "8.x.x" } @@ -1981,6 +2035,7 @@ "version": "6.1.3", "resolved": "https://registry.npmjs.org/@hapi/subtext/-/subtext-6.1.3.tgz", "integrity": "sha512-qWN6NbiHNzohVcJMeAlpku/vzbyH4zIpnnMPMPioQMwIxbPFKeNViDCNI6fVBbMPBiw/xB4FjqiJkRG5P9eWWg==", + "dev": true, "requires": { "@hapi/boom": "7.x.x", "@hapi/bourne": "1.x.x", @@ -1995,6 +2050,7 @@ "version": "7.4.11", "resolved": "https://registry.npmjs.org/@hapi/boom/-/boom-7.4.11.tgz", "integrity": "sha512-VSU/Cnj1DXouukYxxkes4nNJonCnlogHvIff1v1RVoN4xzkKhMXX+GRmb3NyH1iar10I9WFPDv2JPwfH3GaV0A==", + "dev": true, "requires": { "@hapi/hoek": "8.x.x" } @@ -2004,20 +2060,47 @@ "@hapi/teamwork": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/@hapi/teamwork/-/teamwork-3.3.1.tgz", - "integrity": "sha512-61tiqWCYvMKP7fCTXy0M4VE6uNIwA0qvgFoiDubgfj7uqJ0fdHJFQNnVPGrxhLWlwz0uBPWrQlBH7r8y9vFITQ==" + "integrity": "sha512-61tiqWCYvMKP7fCTXy0M4VE6uNIwA0qvgFoiDubgfj7uqJ0fdHJFQNnVPGrxhLWlwz0uBPWrQlBH7r8y9vFITQ==", + "dev": true }, "@hapi/topo": { "version": "3.1.6", "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-3.1.6.tgz", "integrity": "sha512-tAag0jEcjwH+P2quUfipd7liWCNX2F8NvYjQp2wtInsZxnMlypdw0FtAOLxtvvkO+GSRRbmNi8m/5y42PQJYCQ==", + "dev": true, "requires": { "@hapi/hoek": "^8.3.0" } }, + "@hapi/validate": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@hapi/validate/-/validate-1.1.3.tgz", + "integrity": "sha512-/XMR0N0wjw0Twzq2pQOzPBZlDzkekGcoCtzO314BpIEsbXdYGthQUbxgkGDf4nhk1+IPDAsXqWjMohRQYO06UA==", + "requires": { + "@hapi/hoek": "^9.0.0", + "@hapi/topo": "^5.0.0" + }, + "dependencies": { + "@hapi/hoek": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.1.0.tgz", + "integrity": "sha512-i9YbZPN3QgfighY/1X1Pu118VUz2Fmmhd6b2n0/O8YVgGGfw0FbUYoA97k7FkpGJ+pLCFEDLUmAPPV4D1kpeFw==" + }, + "@hapi/topo": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.0.0.tgz", + "integrity": "sha512-tFJlT47db0kMqVm3H4nQYgn6Pwg10GTZHb1pwmSiv1K4ks6drQOtfEF5ZnPjkvC+y4/bUPHK+bc87QvLcL+WMw==", + "requires": { + "@hapi/hoek": "^9.0.0" + } + } + } + }, "@hapi/vise": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/@hapi/vise/-/vise-3.1.1.tgz", "integrity": "sha512-OXarbiCSadvtg+bSdVPqu31Z1JoBL+FwNYz3cYoBKQ5xq1/Cr4A3IkGpAZbAuxU5y4NL5pZFZG3d2a3ZGm/dOQ==", + "dev": true, "requires": { "@hapi/hoek": "8.x.x" } @@ -2026,6 +2109,7 @@ "version": "15.1.0", "resolved": "https://registry.npmjs.org/@hapi/wreck/-/wreck-15.1.0.tgz", "integrity": "sha512-tQczYRTTeYBmvhsek/D49En/5khcShaBEmzrAaDjMrFXKJRuF8xA8+tlq1ETLBFwGd6Do6g2OC74rt11kzawzg==", + "dev": true, "requires": { "@hapi/boom": "7.x.x", "@hapi/bourne": "1.x.x", @@ -2036,6 +2120,7 @@ "version": "7.4.11", "resolved": "https://registry.npmjs.org/@hapi/boom/-/boom-7.4.11.tgz", "integrity": "sha512-VSU/Cnj1DXouukYxxkes4nNJonCnlogHvIff1v1RVoN4xzkKhMXX+GRmb3NyH1iar10I9WFPDv2JPwfH3GaV0A==", + "dev": true, "requires": { "@hapi/hoek": "8.x.x" } @@ -2128,6 +2213,11 @@ } } }, + "@multiformats/base-x": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@multiformats/base-x/-/base-x-4.0.1.tgz", + "integrity": "sha512-eMk0b9ReBbV23xXU693TAIrLyeO5iTgBZGSJfpqriG8UkYvr/hC9u9pyMlAakDNHWmbhMZCDs6KQO0jzKD8OTw==" + }, "@nodelib/fs.scandir": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.3.tgz", @@ -2233,6 +2323,31 @@ "any-observable": "^0.3.0" } }, + "@sideway/address": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.0.tgz", + "integrity": "sha512-wAH/JYRXeIFQRsxerIuLjgUu2Xszam+O5xKeatJ4oudShOOirfmsQ1D6LL54XOU2tizpCYku+s1wmU0SYdpoSA==", + "requires": { + "@hapi/hoek": "^9.0.0" + }, + "dependencies": { + "@hapi/hoek": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.1.0.tgz", + "integrity": "sha512-i9YbZPN3QgfighY/1X1Pu118VUz2Fmmhd6b2n0/O8YVgGGfw0FbUYoA97k7FkpGJ+pLCFEDLUmAPPV4D1kpeFw==" + } + } + }, + "@sideway/formula": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.0.tgz", + "integrity": "sha512-vHe7wZ4NOXVfkoRb8T5otiENVlT7a3IAiw7H5M2+GO+9CDgcVUUsX1zalAztCmwyOr2RUTGJdgB+ZvSVqmdHmg==" + }, + "@sideway/pinpoint": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz", + "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==" + }, "@sindresorhus/is": { "version": "0.14.0", "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", @@ -6267,6 +6382,30 @@ "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", "dev": true }, + "dns-over-http-resolver": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/dns-over-http-resolver/-/dns-over-http-resolver-1.0.0.tgz", + "integrity": "sha512-vwr6AR9aoAG+cimwd640GoTcHREy3L5ega/4j8uNp0f+mFz8Grfd8cL+klDBWWS7xqjQoWciR6JNzqXjk1b7Gg==", + "requires": { + "debug": "^4.2.0", + "native-fetch": "^2.0.1" + }, + "dependencies": { + "debug": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz", + "integrity": "sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==", + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } + } + }, "dns-packet": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-4.2.0.tgz", @@ -6661,6 +6800,24 @@ "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" }, + "encoding": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", + "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", + "requires": { + "iconv-lite": "^0.6.2" + }, + "dependencies": { + "iconv-lite": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.2.tgz", + "integrity": "sha512-2y91h5OpQlolefMPmUlivelittSWy0rP+oYVpn6A7GwVHNE8AWzoYOBNmlwks3LobaJxgHCYZAnyNo2GgpNRNQ==", + "requires": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + } + } + } + }, "encoding-down": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/encoding-down/-/encoding-down-6.3.0.tgz", @@ -11773,64 +11930,380 @@ } }, "ipfsd-ctl": { - "version": "github:ipfs-rust/js-ipfsd-ctl#9459479e28b541d9ed53d1d22c0274dfd8615cb5", - "from": "github:ipfs-rust/js-ipfsd-ctl#add_rust_ipfs_http", + "version": "github:koivunej/js-ipfsd-ctl#849fcfaa87e7b72c2c8bf3798d0ad057c2cb7973", + "from": "github:koivunej/js-ipfsd-ctl#add_rust_ipfs_http_on_7_wip", "requires": { - "@hapi/boom": "^8.0.1", - "@hapi/hapi": "^18.3.2", - "@hapi/joi": "^16.1.8", + "@hapi/boom": "^9.1.0", + "@hapi/hapi": "^20.0.0", "debug": "^4.1.1", "execa": "^4.0.0", - "fs-extra": "^8.1.0", - "ipfs-utils": "^0.7.1", - "ky": "^0.15.0", - "ky-universal": "^0.3.0", - "merge-options": "^2.0.0", - "multiaddr": "^7.2.1", - "nanoid": "^2.1.9", + "fs-extra": "^9.0.0", + "ipfs-utils": "^4.0.0", + "joi": "^17.2.1", + "merge-options": "^3.0.1", + "multiaddr": "^8.0.0", + "nanoid": "^3.1.3", + "p-wait-for": "^3.1.0", "temp-write": "^4.0.0" }, "dependencies": { - "debug": { + "@hapi/accept": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@hapi/accept/-/accept-5.0.1.tgz", + "integrity": "sha512-fMr4d7zLzsAXo28PRRQPXR1o2Wmu+6z+VY1UzDp0iFo13Twj8WePakwXBiqn3E1aAlTpSNzCXdnnQXFhst8h8Q==", + "requires": { + "@hapi/boom": "9.x.x", + "@hapi/hoek": "9.x.x" + } + }, + "@hapi/ammo": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@hapi/ammo/-/ammo-5.0.1.tgz", + "integrity": "sha512-FbCNwcTbnQP4VYYhLNGZmA76xb2aHg9AMPiy18NZyWMG310P5KdFGyA9v2rm5ujrIny77dEEIkMOwl0Xv+fSSA==", + "requires": { + "@hapi/hoek": "9.x.x" + } + }, + "@hapi/b64": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@hapi/b64/-/b64-5.0.0.tgz", + "integrity": "sha512-ngu0tSEmrezoiIaNGG6rRvKOUkUuDdf4XTPnONHGYfSGRmDqPZX5oJL6HAdKTo1UQHECbdB4OzhWrfgVppjHUw==", + "requires": { + "@hapi/hoek": "9.x.x" + } + }, + "@hapi/bounce": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@hapi/bounce/-/bounce-2.0.0.tgz", + "integrity": "sha512-JesW92uyzOOyuzJKjoLHM1ThiOvHPOLDHw01YV8yh5nCso7sDwJho1h0Ad2N+E62bZyz46TG3xhAi/78Gsct6A==", + "requires": { + "@hapi/boom": "9.x.x", + "@hapi/hoek": "9.x.x" + } + }, + "@hapi/bourne": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@hapi/bourne/-/bourne-2.0.0.tgz", + "integrity": "sha512-WEezM1FWztfbzqIUbsDzFRVMxSoLy3HugVcux6KDDtTqzPsLE8NDRHfXvev66aH1i2oOKKar3/XDjbvh/OUBdg==" + }, + "@hapi/call": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/@hapi/call/-/call-8.0.1.tgz", + "integrity": "sha512-bOff6GTdOnoe5b8oXRV3lwkQSb/LAWylvDMae6RgEWWntd0SHtkYbQukDHKlfaYtVnSAgIavJ0kqszF/AIBb6g==", + "requires": { + "@hapi/boom": "9.x.x", + "@hapi/hoek": "9.x.x" + } + }, + "@hapi/catbox": { + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/@hapi/catbox/-/catbox-11.1.1.tgz", + "integrity": "sha512-u/8HvB7dD/6X8hsZIpskSDo4yMKpHxFd7NluoylhGrL6cUfYxdQPnvUp9YU2C6F9hsyBVLGulBd9vBN1ebfXOQ==", + "requires": { + "@hapi/boom": "9.x.x", + "@hapi/hoek": "9.x.x", + "@hapi/podium": "4.x.x", + "@hapi/validate": "1.x.x" + } + }, + "@hapi/catbox-memory": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@hapi/catbox-memory/-/catbox-memory-5.0.0.tgz", + "integrity": "sha512-ByuxVJPHNaXwLzbBv4GdTr6ccpe1nG+AfYt+8ftDWEJY7EWBWzD+Klhy5oPTDGzU26pNUh1e7fcYI1ILZRxAXQ==", + "requires": { + "@hapi/boom": "9.x.x", + "@hapi/hoek": "9.x.x" + } + }, + "@hapi/content": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/@hapi/content/-/content-5.0.2.tgz", + "integrity": "sha512-mre4dl1ygd4ZyOH3tiYBrOUBzV7Pu/EOs8VLGf58vtOEECWed8Uuw6B4iR9AN/8uQt42tB04qpVaMyoMQh0oMw==", + "requires": { + "@hapi/boom": "9.x.x" + } + }, + "@hapi/cryptiles": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@hapi/cryptiles/-/cryptiles-5.1.0.tgz", + "integrity": "sha512-fo9+d1Ba5/FIoMySfMqPBR/7Pa29J2RsiPrl7bkwo5W5o+AN1dAYQRi4SPrPwwVxVGKjgLOEWrsvt1BonJSfLA==", + "requires": { + "@hapi/boom": "9.x.x" + } + }, + "@hapi/file": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@hapi/file/-/file-2.0.0.tgz", + "integrity": "sha512-WSrlgpvEqgPWkI18kkGELEZfXr0bYLtr16iIN4Krh9sRnzBZN6nnWxHFxtsnP684wueEySBbXPDg/WfA9xJdBQ==" + }, + "@hapi/hapi": { + "version": "20.0.1", + "resolved": "https://registry.npmjs.org/@hapi/hapi/-/hapi-20.0.1.tgz", + "integrity": "sha512-v8NapLf5vkKWIJoBCUBIOk6ZdH9vrxZco4GZbjdM3ROQBDl4eXwW3pySTBL7xWANYp3Nzdn+fiFWjDwdgsSoQg==", + "requires": { + "@hapi/accept": "^5.0.1", + "@hapi/ammo": "^5.0.1", + "@hapi/boom": "9.x.x", + "@hapi/bounce": "2.x.x", + "@hapi/call": "8.x.x", + "@hapi/catbox": "^11.1.1", + "@hapi/catbox-memory": "5.x.x", + "@hapi/heavy": "^7.0.1", + "@hapi/hoek": "9.x.x", + "@hapi/mimos": "5.x.x", + "@hapi/podium": "^4.1.1", + "@hapi/shot": "^5.0.1", + "@hapi/somever": "3.x.x", + "@hapi/statehood": "^7.0.3", + "@hapi/subtext": "^7.0.3", + "@hapi/teamwork": "5.x.x", + "@hapi/topo": "5.x.x", + "@hapi/validate": "^1.1.0" + } + }, + "@hapi/heavy": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/@hapi/heavy/-/heavy-7.0.1.tgz", + "integrity": "sha512-vJ/vzRQ13MtRzz6Qd4zRHWS3FaUc/5uivV2TIuExGTM9Qk+7Zzqj0e2G7EpE6KztO9SalTbiIkTh7qFKj/33cA==", + "requires": { + "@hapi/boom": "9.x.x", + "@hapi/hoek": "9.x.x", + "@hapi/validate": "1.x.x" + } + }, + "@hapi/hoek": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.1.0.tgz", + "integrity": "sha512-i9YbZPN3QgfighY/1X1Pu118VUz2Fmmhd6b2n0/O8YVgGGfw0FbUYoA97k7FkpGJ+pLCFEDLUmAPPV4D1kpeFw==" + }, + "@hapi/iron": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/@hapi/iron/-/iron-6.0.0.tgz", + "integrity": "sha512-zvGvWDufiTGpTJPG1Y/McN8UqWBu0k/xs/7l++HVU535NLHXsHhy54cfEMdW7EjwKfbBfM9Xy25FmTiobb7Hvw==", + "requires": { + "@hapi/b64": "5.x.x", + "@hapi/boom": "9.x.x", + "@hapi/bourne": "2.x.x", + "@hapi/cryptiles": "5.x.x", + "@hapi/hoek": "9.x.x" + } + }, + "@hapi/mimos": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@hapi/mimos/-/mimos-5.0.0.tgz", + "integrity": "sha512-EVS6wJYeE73InTlPWt+2e3Izn319iIvffDreci3qDNT+t3lA5ylJ0/SoTaID8e0TPNUkHUSsgJZXEmLHvoYzrA==", + "requires": { + "@hapi/hoek": "9.x.x", + "mime-db": "1.x.x" + } + }, + "@hapi/nigel": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@hapi/nigel/-/nigel-4.0.2.tgz", + "integrity": "sha512-ht2KoEsDW22BxQOEkLEJaqfpoKPXxi7tvabXy7B/77eFtOyG5ZEstfZwxHQcqAiZhp58Ae5vkhEqI03kawkYNw==", + "requires": { + "@hapi/hoek": "^9.0.4", + "@hapi/vise": "^4.0.0" + } + }, + "@hapi/pez": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/@hapi/pez/-/pez-5.0.3.tgz", + "integrity": "sha512-mpikYRJjtrbJgdDHG/H9ySqYqwJ+QU/D7FXsYciS9P7NYBXE2ayKDAy3H0ou6CohOCaxPuTV4SZ0D936+VomHA==", + "requires": { + "@hapi/b64": "5.x.x", + "@hapi/boom": "9.x.x", + "@hapi/content": "^5.0.2", + "@hapi/hoek": "9.x.x", + "@hapi/nigel": "4.x.x" + } + }, + "@hapi/podium": { "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "resolved": "https://registry.npmjs.org/@hapi/podium/-/podium-4.1.1.tgz", + "integrity": "sha512-jh7a6+5Z4FUWzx8fgmxjaAa1DTBu+Qfg+NbVdo0f++rE5DgsVidUYrLDp3db65+QjDLleA2MfKQXkpT8ylBDXA==", "requires": { - "ms": "^2.1.1" + "@hapi/hoek": "9.x.x", + "@hapi/teamwork": "5.x.x", + "@hapi/validate": "1.x.x" } }, - "fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "@hapi/shot": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/@hapi/shot/-/shot-5.0.4.tgz", + "integrity": "sha512-PcEz0WJgFDA3xNSMeONgQmothFr7jhbbRRSAKaDh7chN7zOXBlhl13bvKZW6CMb2xVfJUmt34CW3e/oExMgBhQ==", "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" + "@hapi/hoek": "9.x.x", + "@hapi/validate": "1.x.x" + } + }, + "@hapi/somever": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@hapi/somever/-/somever-3.0.0.tgz", + "integrity": "sha512-Upw/kmKotC9iEmK4y047HMYe4LDKsE5NWfjgX41XNKmFvxsQL7OiaCWVhuyyhU0ShDGBfIAnCH8jZr49z/JzZA==", + "requires": { + "@hapi/bounce": "2.x.x", + "@hapi/hoek": "9.x.x" + } + }, + "@hapi/statehood": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/@hapi/statehood/-/statehood-7.0.3.tgz", + "integrity": "sha512-pYB+pyCHkf2Amh67QAXz7e/DN9jcMplIL7Z6N8h0K+ZTy0b404JKPEYkbWHSnDtxLjJB/OtgElxocr2fMH4G7w==", + "requires": { + "@hapi/boom": "9.x.x", + "@hapi/bounce": "2.x.x", + "@hapi/bourne": "2.x.x", + "@hapi/cryptiles": "5.x.x", + "@hapi/hoek": "9.x.x", + "@hapi/iron": "6.x.x", + "@hapi/validate": "1.x.x" + } + }, + "@hapi/subtext": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/@hapi/subtext/-/subtext-7.0.3.tgz", + "integrity": "sha512-CekDizZkDGERJ01C0+TzHlKtqdXZxzSWTOaH6THBrbOHnsr3GY+yiMZC+AfNCypfE17RaIakGIAbpL2Tk1z2+A==", + "requires": { + "@hapi/boom": "9.x.x", + "@hapi/bourne": "2.x.x", + "@hapi/content": "^5.0.2", + "@hapi/file": "2.x.x", + "@hapi/hoek": "9.x.x", + "@hapi/pez": "^5.0.1", + "@hapi/wreck": "17.x.x" + } + }, + "@hapi/teamwork": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@hapi/teamwork/-/teamwork-5.1.0.tgz", + "integrity": "sha512-llqoQTrAJDTXxG3c4Kz/uzhBS1TsmSBa/XG5SPcVXgmffHE1nFtyLIK0hNJHCB3EuBKT84adzd1hZNY9GJLWtg==" + }, + "@hapi/topo": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.0.0.tgz", + "integrity": "sha512-tFJlT47db0kMqVm3H4nQYgn6Pwg10GTZHb1pwmSiv1K4ks6drQOtfEF5ZnPjkvC+y4/bUPHK+bc87QvLcL+WMw==", + "requires": { + "@hapi/hoek": "^9.0.0" + } + }, + "@hapi/vise": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@hapi/vise/-/vise-4.0.0.tgz", + "integrity": "sha512-eYyLkuUiFZTer59h+SGy7hUm+qE9p+UemePTHLlIWppEd+wExn3Df5jO04bFQTm7nleF5V8CtuYQYb+VFpZ6Sg==", + "requires": { + "@hapi/hoek": "9.x.x" + } + }, + "@hapi/wreck": { + "version": "17.0.0", + "resolved": "https://registry.npmjs.org/@hapi/wreck/-/wreck-17.0.0.tgz", + "integrity": "sha512-d8lqCinbKyDByn7GzJDRDbitddhIEydNm44UcAMejfhEH3o4IYvKYq6K8cAqXbilXPuvZc0ErlUOg9SDdgRtMw==", + "requires": { + "@hapi/boom": "9.x.x", + "@hapi/bourne": "2.x.x", + "@hapi/hoek": "9.x.x" + } + }, + "any-signal": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/any-signal/-/any-signal-2.1.1.tgz", + "integrity": "sha512-kjyMTtHQsB3yZAVDZlLVucPJnmnrXhamB/rm3Td3jse5Q+16FXXolP4elWU0yLFDyrxTkjjDXtIdjSPiEznf3w==", + "requires": { + "abort-controller": "^3.0.0", + "native-abort-controller": "0.0.3" + } + }, + "cids": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/cids/-/cids-1.0.2.tgz", + "integrity": "sha512-ohCcYyEHh0Z5Hl+O1IML4kt6Kx5GPho1ybxtqK4zyk6DeV5CvOLoT/mqDh0cgKcAvsls3vcVa9HjZc7RQr3geA==", + "requires": { + "class-is": "^1.1.0", + "multibase": "^3.0.1", + "multicodec": "^2.0.1", + "multihashes": "^3.0.1", + "uint8arrays": "^1.1.0" + } + }, + "debug": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz", + "integrity": "sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==", + "requires": { + "ms": "2.1.2" } }, "ipfs-utils": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/ipfs-utils/-/ipfs-utils-0.7.2.tgz", - "integrity": "sha512-fxsOdat+liS7KjU8JALWClBbvbbZuoc17qIXxXC17FeJzOTeAR0grrWyoExhWV3hPKDH6gm5/5vQP6y/AwExxg==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/ipfs-utils/-/ipfs-utils-4.0.0.tgz", + "integrity": "sha512-HVeDUm4K4fYb44O1y2l4sNvDuzIB3+K6ZqYj45Bv3oqGmpBkm+ELq2Sssghpwk5b4ppsfOzSUoupMFdlg+Fk7w==", "requires": { - "buffer": "^5.2.1", + "@achingbrain/electron-fetch": "^1.7.2", + "abort-controller": "^3.0.0", + "any-signal": "^2.1.0", + "buffer": "^5.6.0", "err-code": "^2.0.0", - "fs-extra": "^8.1.0", + "fs-extra": "^9.0.1", "is-electron": "^2.2.0", - "it-glob": "0.0.7", - "ky": "^0.15.0", - "ky-universal": "^0.3.0", + "iso-url": "^0.4.7", + "it-glob": "0.0.8", + "merge-options": "^2.0.0", + "nanoid": "^3.1.3", + "native-abort-controller": "0.0.3", + "native-fetch": "^2.0.0", + "node-fetch": "^2.6.0", "stream-to-it": "^0.2.0" + }, + "dependencies": { + "fs-extra": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.0.1.tgz", + "integrity": "sha512-h2iAoN838FqAFJY2/qVpzFXy+EBxfVE220PalAqQLDVsFOHLJrZvut5puAbCdNv6WJk+B8ihI+k0c7JK5erwqQ==", + "requires": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^1.0.0" + } + }, + "merge-options": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-options/-/merge-options-2.0.0.tgz", + "integrity": "sha512-S7xYIeWHl2ZUKF7SDeBhGg6rfv5bKxVBdk95s/I7wVF8d+hjLSztJ/B271cnUiF6CAFduEQ5Zn3HYwAjT16DlQ==", + "requires": { + "is-plain-obj": "^2.0.0" + } + } } }, - "it-glob": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/it-glob/-/it-glob-0.0.7.tgz", - "integrity": "sha512-XfbziJs4fi0MfdEGTLkZXeqo2EorF2baFXxFn1E2dGbgYMhFTZlZ2Yn/mx5CkpuLWVJvO1DwtTOVW2mzRyVK8w==", + "is-plain-obj": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", + "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==" + }, + "jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", "requires": { - "fs-extra": "^8.1.0", - "minimatch": "^3.0.4" + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + }, + "dependencies": { + "universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==" + } + } + }, + "merge-options": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/merge-options/-/merge-options-3.0.3.tgz", + "integrity": "sha512-jytfjQxL5mVrtD9O24zOXU4neV3uVbQdn1F0o1pzSa1yH9LTEUOtfwpWSsyAxrrrXqAFTxaU4ynqkmekHLvYew==", + "requires": { + "is-plain-obj": "^2.1.0" } }, "ms": { @@ -11838,10 +12311,71 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, - "nanoid": { - "version": "2.1.11", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-2.1.11.tgz", - "integrity": "sha512-s/snB+WGm6uwi0WjsZdaVcuf3KJXlfGl2LcxgwkEwJF0D/BWzVWAZW/XY4bFaiR7s0Jk3FPvlnepg1H1b1UwlA==" + "multiaddr": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/multiaddr/-/multiaddr-8.1.1.tgz", + "integrity": "sha512-Dyur7rWX44MlgKIqVA2dYPOZx/UwG60PVSffJ5S17uo6Pu31lftJXShMEfPtUDGHnyALAOWOuC3X/iPhDtw4Vg==", + "requires": { + "cids": "^1.0.0", + "class-is": "^1.1.0", + "dns-over-http-resolver": "^1.0.0", + "err-code": "^2.0.3", + "is-ip": "^3.1.0", + "multibase": "^3.0.0", + "uint8arrays": "^1.1.0", + "varint": "^5.0.0" + }, + "dependencies": { + "err-code": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", + "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==" + } + } + }, + "multibase": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/multibase/-/multibase-3.0.1.tgz", + "integrity": "sha512-MRU5WpnSg81/vYO977MweoeUAxBdXl7+F5Af2Es+X6Vcgfk/g/EjIqXTgm3kb+xO3m1Kzr+aIV14oRX7nv5Z9w==", + "requires": { + "@multiformats/base-x": "^4.0.1", + "web-encoding": "^1.0.2" + } + }, + "multicodec": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-2.0.1.tgz", + "integrity": "sha512-YDYeWn9iGa76hOHAyyZa0kbt3tr5FLg1ZXUHrZUJltjnxxdbTIbHnxWLd2zTcMOjdT3QyO+Xs4bQgJUcC2RWUA==", + "requires": { + "uint8arrays": "1.0.0", + "varint": "^5.0.0" + }, + "dependencies": { + "uint8arrays": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-1.0.0.tgz", + "integrity": "sha512-14tqEVujDREW7YwonSZZwLvo7aFDfX7b6ubvM/U7XvZol+CC/LbhaX/550VlWmhddAL9Wou1sxp0Of3tGqXigg==", + "requires": { + "multibase": "^3.0.0", + "web-encoding": "^1.0.2" + } + } + } + }, + "multihashes": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/multihashes/-/multihashes-3.0.1.tgz", + "integrity": "sha512-fFY67WOtb0359IjDZxaCU3gJILlkwkFbxbwrK9Bej5+NqNaYztzLOj8/NgMNMg/InxmhK+Uu8S/U4EcqsHzB7Q==", + "requires": { + "multibase": "^3.0.0", + "uint8arrays": "^1.0.0", + "varint": "^5.0.0" + } + }, + "universalify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz", + "integrity": "sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==" } } }, @@ -13413,6 +13947,33 @@ "integrity": "sha1-o/Iiqarp+Wb10nx5ZRDigJF2Qhc=", "dev": true }, + "joi": { + "version": "17.3.0", + "resolved": "https://registry.npmjs.org/joi/-/joi-17.3.0.tgz", + "integrity": "sha512-Qh5gdU6niuYbUIUV5ejbsMiiFmBdw8Kcp8Buj2JntszCkCfxJ9Cz76OtHxOZMPXrt5810iDIXs+n1nNVoquHgg==", + "requires": { + "@hapi/hoek": "^9.0.0", + "@hapi/topo": "^5.0.0", + "@sideway/address": "^4.1.0", + "@sideway/formula": "^3.0.0", + "@sideway/pinpoint": "^2.0.0" + }, + "dependencies": { + "@hapi/hoek": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.1.0.tgz", + "integrity": "sha512-i9YbZPN3QgfighY/1X1Pu118VUz2Fmmhd6b2n0/O8YVgGGfw0FbUYoA97k7FkpGJ+pLCFEDLUmAPPV4D1kpeFw==" + }, + "@hapi/topo": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.0.0.tgz", + "integrity": "sha512-tFJlT47db0kMqVm3H4nQYgn6Pwg10GTZHb1pwmSiv1K4ks6drQOtfEF5ZnPjkvC+y4/bUPHK+bc87QvLcL+WMw==", + "requires": { + "@hapi/hoek": "^9.0.0" + } + } + } + }, "joycon": { "version": "2.2.5", "resolved": "https://registry.npmjs.org/joycon/-/joycon-2.2.5.tgz", @@ -13921,20 +14482,6 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==" }, - "ky": { - "version": "0.15.0", - "resolved": "https://registry.npmjs.org/ky/-/ky-0.15.0.tgz", - "integrity": "sha512-6IlJRPFHq4ZKRRa9lyh6YqHqlmddAkfyXI9CYvZpLQtg7fQvwncPHyHrmtXAHKCqHOilINPMT88eW6FTA3HwkA==" - }, - "ky-universal": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/ky-universal/-/ky-universal-0.3.0.tgz", - "integrity": "sha512-CM4Bgb2zZZpsprcjI6DNYTaH3oGHXL2u7BU4DK+lfCuC4snkt9/WRpMYeKbBbXscvKkeqBwzzjFX2WwmKY5K/A==", - "requires": { - "abort-controller": "^3.0.0", - "node-fetch": "^2.6.0" - } - }, "latest-version": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz", @@ -17464,6 +18011,22 @@ "integrity": "sha512-A0xLykHtARfueITVDernsAWdtIMbOJgKgcluwENp3AlsKN/PloyO10HtmoqnFAQAcxPkgZN7wdfPfEd0zNGxbg==", "dev": true }, + "native-abort-controller": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/native-abort-controller/-/native-abort-controller-0.0.3.tgz", + "integrity": "sha512-YIxU5nWqSHG1Xbu3eOu3pdFRD882ivQpIcu6AiPVe2oSVoRbfYW63DVkZm3g1gHiMtZSvZzF6THSzTGEBYl8YA==", + "requires": { + "globalthis": "^1.0.1" + } + }, + "native-fetch": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/native-fetch/-/native-fetch-2.0.1.tgz", + "integrity": "sha512-gv4Bea+ga9QdXINurpkEqun3ap3vnB+WYoe4c8ddqUYEH7B2h6iD39RF8uVN7OwmSfMY3RDxkvBnoI4e2/vLXQ==", + "requires": { + "globalthis": "^1.0.1" + } + }, "native-or-another": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/native-or-another/-/native-or-another-2.0.0.tgz", @@ -18431,7 +18994,6 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/p-wait-for/-/p-wait-for-3.1.0.tgz", "integrity": "sha512-0Uy19uhxbssHelu9ynDMcON6BmMk6pH8551CvxROhiz3Vx+yC4RqxjyIDk2V4ll0g9177RKT++PK4zcV58uJ7A==", - "dev": true, "requires": { "p-timeout": "^3.0.0" }, @@ -18440,7 +19002,6 @@ "version": "3.2.0", "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-3.2.0.tgz", "integrity": "sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==", - "dev": true, "requires": { "p-finally": "^1.0.0" } diff --git a/conformance/package.json b/conformance/package.json index 4be9ccfcd..eb3cc1118 100644 --- a/conformance/package.json +++ b/conformance/package.json @@ -11,7 +11,7 @@ "dependencies": { "aegir": "^21.3.0", "interface-ipfs-core": "0.139.0", - "ipfsd-ctl": "github:ipfs-rust/js-ipfsd-ctl#add_rust_ipfs_http", + "ipfsd-ctl": "github:koivunej/js-ipfsd-ctl#add_rust_ipfs_http_on_7_wip", "mocha": "^7.1.0", "ipfs-http-client": "46.0.0", "why-is-node-running": "2.2.0" diff --git a/conformance/patches/await_subprocess.patch b/conformance/patches/await_subprocess.patch deleted file mode 100644 index 66daa969a..000000000 --- a/conformance/patches/await_subprocess.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- node_modules/ipfsd-ctl/src/ipfsd-daemon.js 2020-03-06 15:26:44.365192780 +0200 -+++ node_modules/ipfsd-ctl/src/ipfsd-daemon.js 2020-07-20 14:54:43.353680062 +0300 -@@ -260,6 +250,7 @@ - - try { - await this.api.stop() -+ await this.subprocess; - } catch (err) { - if (!killed) { - throw err // if was killed then ignore error diff --git a/conformance/rust.sh b/conformance/rust.sh deleted file mode 100755 index 8e2a590ec..000000000 --- a/conformance/rust.sh +++ /dev/null @@ -1,60 +0,0 @@ -#!/usr/bin/env bash -# this should be executable with zsh or anything but sh -# -# I had RUST_IPFS_EXEC env variable point to this script -# and a symlink in the same directory to point to the `http` binary. -# -# This will leak http processes at least in some failure cases. - -# fails the script when some command fails without any surrounding ifs or binary operations. -set -e - -# pipefail allows portable-ish capturing of failing ./http "$@" (or failing -# tee) return code alternatives include PIPESTATUS[0] (only bash), -# pipestatus[0] (zsh). if failing `tee` needs to be processed otherwise, this -# can probably be done by redirecting all std{out,err} to file, then worrying -# about only the ./http "$@" return code with `||`. -set -o pipefail - -trap 'on_killed $? $LINENO' EXIT -killed=false -retval=0 - -on_killed () { - # this does not seem to useful in any seen case. - if $killed; then - # this never happens when the "leak" case happens - echo "<<<< killed (retval: $1, lineno: $2) $$" | tee -a /tmp/rust.log >&2 - fi - exit $retval -} - -echo ">>>> new execution $$ with args: $@" | tee -a /tmp/rust.log >&2 -killed=true - -# -# testing around the time of PR #284 -# -# binutils | lld-9 | -# 2.33 | 9.0.0 | notes -# ---------+-------+-------------------------------------- -# 256 | | crashes at id, unlikely inits? -# | 256 | crashes at p2p swarm init -# | 300 | crashes at behaviour building -# | 350 | crashes but built the dns threadpool -# | 375 | crashes at p2p init -# | 387 | crashes at kad init -# | 390 | ok -# | 393 | ok -# | 400 | ok -# | 450 | ok -# 512 | | crashes at id, unlikely inits? -# 1024 | | crashes right away unlikely inits -# 4096 | | still the same -# 8192 | | works without -c unlimited? -# -# ulimit -s 8192 -c unlimited -./http "$@" 2>&1 | tee -a /tmp/rust.log || retval=$? -killed=false -echo "<<<< exiting $$ with $retval" | tee -a /tmp/rust.log >&2 -exit $retval diff --git a/conformance/test/index.js b/conformance/test/index.js index 90553735c..8b71cace7 100644 --- a/conformance/test/index.js +++ b/conformance/test/index.js @@ -28,11 +28,11 @@ const options = { } } -const factory = createFactory(options) +const factory = () => createFactory(options) // Phase 1.0-ish // -tests.miscellaneous(factory, { skip: [ +tests.miscellaneous(factory(), { skip: [ // the cidBase param is not implemented yet 'should resolve an IPFS hash and return a base64url encoded CID in path', // different Cid, the /path/to/testfile.txt suffix shouldn't be there @@ -43,43 +43,38 @@ tests.miscellaneous(factory, { skip: [ 'should resolve an IPNS DNS link', // HTTP: not implemented 'should resolve IPNS link recursively', - // these cause a hang 20% of time: - 'should respect timeout option when getting the node id', - 'should respect timeout option when getting the node version', - // this hangs on windows, see #251 - 'stop', ] }) // Phase 1.1 // these are a bit flaky -tests.pubsub(factory) +tests.pubsub(factory()) // these are rarely flaky -tests.swarm(factory) +tests.swarm(factory()) // Phase 1.2 // ignored as the test doesn't pass at all through ipfs-http-client even // against jsipfs. we do at least return the same value. -tests.dag.get(factory, { skip: ['should get only a CID, due to resolving locally only'] }) -tests.dag.put(factory) +tests.dag.get(factory(), { skip: ['should get only a CID, due to resolving locally only'] }) +tests.dag.put(factory()) -tests.block(factory, { +tests.block(factory(), { skip: [ // both are pinning related 'should put a buffer, using options' ] }) -tests.bitswap(factory); -tests.root.refs(factory); -tests.root.refsLocal(factory); +tests.bitswap(factory()); +tests.root.refs(factory()); +tests.root.refsLocal(factory()); // Phase 2 and beyond... -tests.root.cat(factory); -tests.root.get(factory); -tests.root.add(factory, { +tests.root.cat(factory()); +tests.root.get(factory()); +tests.root.add(factory(), { skip: [ // ordered in the order of most likely implementation // unixfsv1.5 metadata @@ -108,7 +103,7 @@ tests.root.add(factory, { ] }); -tests.dht(factory, { +tests.dht(factory(), { skip: [ // the found address has a much higher port than the expected one "should find other peers", @@ -124,14 +119,14 @@ tests.dht(factory, { ] }); -// tests.repo(factory) -// tests.object(factory) -tests.pin.add(factory, { +// tests.repo(factory()) +// tests.object(factory()) +tests.pin.add(factory(), { skip: [ 'should respect timeout option when pinning a block' ] }) -tests.pin.ls(factory, { +tests.pin.ls(factory(), { skip: [ 'should respect timeout option when listing pins', // ignore these for now: https://github.com/rs-ipfs/rust-ipfs/issues/350 @@ -140,18 +135,18 @@ tests.pin.ls(factory, { 'should list indirect pins for a specific path', ] }) -tests.pin.rm(factory, { +tests.pin.rm(factory(), { skip: [ 'should respect timeout option when unpinning a block' ] }) -tests.bootstrap(factory); +tests.bootstrap(factory()); -// tests.name(factory) -// tests.namePubsub(factory) -// tests.ping(factory) -// tests.key(factory) -// tests.config(factory) -// tests.stats(factory) -// tests.files(factory) +// tests.name(factory()) +// tests.namePubsub(factory()) +// tests.ping(factory()) +// tests.key(factory()) +// tests.config(factory()) +// tests.stats(factory()) +// tests.files(factory())