diff --git a/package-lock.json b/package-lock.json index eb8804a..0e021f2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4,14 +4,6 @@ "lockfileVersion": 1, "requires": true, "dependencies": { - "@nodeutils/defaults-deep": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@nodeutils/defaults-deep/-/defaults-deep-1.1.0.tgz", - "integrity": "sha1-uxEk3I184LxdodZorOWBSSWO8gs=", - "requires": { - "lodash": "^4.15.0" - } - }, "@sindresorhus/is": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.7.0.tgz", @@ -38,6 +30,11 @@ "xtend": "~4.0.0" } }, + "abstract-logging": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/abstract-logging/-/abstract-logging-1.0.0.tgz", + "integrity": "sha1-i33q/TEFWbwo93ck3RuzAXcnjBs=" + }, "accept": { "version": "2.1.4", "resolved": "https://registry.npmjs.org/accept/-/accept-2.1.4.tgz", @@ -156,16 +153,29 @@ } } }, + "args": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/args/-/args-5.0.1.tgz", + "integrity": "sha512-1kqmFCFsPffavQFGt8OxJdIcETti99kySRUPMpOhaGjL6mRJn8HFU1OxKY5bMqfZKUwTQc1mZkAjmGYaVOHFtQ==", + "requires": { + "camelcase": "5.0.0", + "chalk": "2.4.2", + "leven": "2.1.0", + "mri": "1.1.4" + }, + "dependencies": { + "camelcase": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.0.0.tgz", + "integrity": "sha512-faqwZqnWxbxn+F1d399ygeamQNy3lPp/H9H6rNrqYh4FSVCtcY+3cub1MxA8o9mDd55mM8Aghuu/kuyYA6VTsA==" + } + } + }, "argsarray": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/argsarray/-/argsarray-0.0.1.tgz", "integrity": "sha1-bnIHtOzbObCviDA/pa4ivajfYcs=" }, - "array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" - }, "arraybuffer.slice": { "version": "0.0.7", "resolved": "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz", @@ -187,11 +197,19 @@ } }, "assert": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/assert/-/assert-1.4.1.tgz", - "integrity": "sha1-mZEtWRg2tab1s0XA8H7vwI/GXZE=", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz", + "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==", "requires": { + "object-assign": "^4.1.1", "util": "0.10.3" + }, + "dependencies": { + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" + } } }, "async": { @@ -349,28 +367,11 @@ } }, "bl": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-2.2.0.tgz", - "integrity": "sha512-wbgvOpqopSr7uq6fJrLH8EsvYMJf9gzfo2jCsL2eTy75qXPukA4pCgHamOQkZtY5vmfVtjB+P3LNlMHW5CEZXA==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-3.0.0.tgz", + "integrity": "sha512-EUAyP5UHU5hxF8BPT0LKW8gjYLhq1DQIcneOX/pL/m2Alo+OYDQAJlHq+yseMP50Os2nHXOSic6Ss3vSQeyf4A==", "requires": { - "readable-stream": "^2.3.5", - "safe-buffer": "^5.1.1" - }, - "dependencies": { - "readable-stream": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - } + "readable-stream": "^3.0.1" } }, "blakejs": { @@ -388,23 +389,6 @@ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==" }, - "body-parser": { - "version": "1.18.3", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.18.3.tgz", - "integrity": "sha1-WykhmP/dVTs6DyDe0FkrlWlVyLQ=", - "requires": { - "bytes": "3.0.0", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "~1.1.2", - "http-errors": "~1.6.3", - "iconv-lite": "0.4.23", - "on-finished": "~2.3.0", - "qs": "6.5.2", - "raw-body": "2.3.3", - "type-is": "~1.6.16" - } - }, "boom": { "version": "7.3.0", "resolved": "https://registry.npmjs.org/boom/-/boom-7.3.0.tgz", @@ -557,11 +541,6 @@ "resolved": "https://registry.npmjs.org/byteman/-/byteman-1.3.5.tgz", "integrity": "sha512-FzWDstifFRxtHX234b93AGa1b77dA6NUFpEXe+AoG1NydGN//XDZLMXxRNUoMf7SYYhVxfpwUEUgQOziearJvA==" }, - "bytes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", - "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=" - }, "call": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/call/-/call-4.0.2.tgz", @@ -624,6 +603,11 @@ "resolved": "https://registry.npmjs.org/hoek/-/hoek-4.2.1.tgz", "integrity": "sha512-QLg82fGkfnJ/4iy1xZ81/9SIJiq1NGFUMGs6ParyjBZr6jW2Ufj/snDqTHixNlHdPNwN2RLVD0Pi3igeK9+JfA==" }, + "isemail": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/isemail/-/isemail-2.2.1.tgz", + "integrity": "sha1-A1PT2aYpUQgMJiwqoKQrjqjp4qY=" + }, "joi": { "version": "10.6.0", "resolved": "https://registry.npmjs.org/joi/-/joi-10.6.0.tgz", @@ -634,6 +618,14 @@ "items": "2.x.x", "topo": "2.x.x" } + }, + "topo": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/topo/-/topo-2.0.2.tgz", + "integrity": "sha1-zVYVdSU5BXwNwEkaYhw7xvvh0YI=", + "requires": { + "hoek": "4.x.x" + } } } }, @@ -692,6 +684,27 @@ "multibase": "~0.6.0", "multihashes": "~0.4.14", "yargs": "^12.0.2" + }, + "dependencies": { + "yargs": { + "version": "12.0.5", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.5.tgz", + "integrity": "sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==", + "requires": { + "cliui": "^4.0.0", + "decamelize": "^1.2.0", + "find-up": "^3.0.0", + "get-caller-file": "^1.0.1", + "os-locale": "^3.0.0", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^2.0.0", + "which-module": "^2.0.0", + "y18n": "^3.2.1 || ^4.0.0", + "yargs-parser": "^11.1.1" + } + } } }, "cids": { @@ -734,6 +747,17 @@ "wrap-ansi": "^2.0.0" } }, + "clone-deep": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-2.0.2.tgz", + "integrity": "sha512-SZegPTKjCgpQH63E+eN6mVEEPdQBOUzjyJm5Pora4lrwWRFS8I0QAxV/KD6vV/i0WuijHZWQC1fMsPEdxfdVCQ==", + "requires": { + "for-own": "^1.0.0", + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.0", + "shallow-clone": "^1.0.0" + } + }, "code-point-at": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", @@ -778,14 +802,30 @@ "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" }, "concat-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-2.0.0.tgz", - "integrity": "sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==", + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", "requires": { "buffer-from": "^1.0.0", "inherits": "^2.0.3", - "readable-stream": "^3.0.2", + "readable-stream": "^2.2.2", "typedarray": "^0.0.6" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + } } }, "configstore": { @@ -829,26 +869,11 @@ } } }, - "content-disposition": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz", - "integrity": "sha1-DPaLud318r55YcOoUXjLhdunjLQ=" - }, - "content-type": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", - "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" - }, "cookie": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=" }, - "cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" - }, "core-util-is": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", @@ -970,17 +995,39 @@ } }, "datastore-level": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/datastore-level/-/datastore-level-0.10.0.tgz", - "integrity": "sha512-2ZkfI3xwtRK50N7DKCu4TmohUev0gs2KIR27QaE12Zo32wNJMIHY1OV5AES/VCdC1N8raAr/JIgPAInnPb1yLQ==", + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/datastore-level/-/datastore-level-0.11.0.tgz", + "integrity": "sha512-kbxtHSI37EFpqy/u91VqZdzoFZMq11eRS7x9ZOtXDMToYJspyG7G8GXvq4NIB9+41+BZGIzNQuXL1M4SNoWtaA==", "requires": { "datastore-core": "~0.6.0", - "encoding-down": "^5.0.4", + "encoding-down": "^6.0.2", "interface-datastore": "~0.6.0", "level-js": "github:timkuijsten/level.js#idbunwrapper", - "leveldown": "^3.0.2", - "levelup": "^2.0.2", + "leveldown": "^5.0.0", + "levelup": "^4.0.1", "pull-stream": "^3.6.9" + }, + "dependencies": { + "abstract-leveldown": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-6.0.3.tgz", + "integrity": "sha512-jzewKKpZbaYUa6HTThnrl+GrJhzjEAeuc7hTVpZdzg7kupXZFoqQDFwyOwLNbmJKJlmzw8yiipMPkDiuKkT06Q==", + "requires": { + "level-concat-iterator": "~2.0.0", + "xtend": "~4.0.0" + } + }, + "leveldown": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/leveldown/-/leveldown-5.0.3.tgz", + "integrity": "sha512-isfWtOQIXbGbQRI8nmU9FqCZM0klmqTAOFi0vF6G/D0O1ZgxLrSh6Xd4Zj9iVQfGt6+8jpYwkRbN07VLrxRM8w==", + "requires": { + "abstract-leveldown": "~6.0.3", + "fast-future": "~1.0.2", + "napi-macros": "~1.8.1", + "node-gyp-build": "~3.8.0" + } + } } }, "datastore-pubsub": { @@ -1010,6 +1057,11 @@ } } }, + "dateformat": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-3.0.3.tgz", + "integrity": "sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==" + }, "debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", @@ -1037,18 +1089,20 @@ "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==" }, "deferred-leveldown": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/deferred-leveldown/-/deferred-leveldown-3.0.0.tgz", - "integrity": "sha512-ajbXqRPMXRlcdyt0TuWqknOJkp1JgQjGB7xOl2V+ebol7/U11E9h3/nCZAtN1M7djmAJEIhypCUc1tIWxdQAuQ==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/deferred-leveldown/-/deferred-leveldown-5.0.1.tgz", + "integrity": "sha512-BXohsvTedWOLkj2n/TY+yqVlrCWa2Zs8LSxh3uCAgFOru7/pjxKyZAexGa1j83BaKloER4PqUyQ9rGPJLt9bqA==", "requires": { - "abstract-leveldown": "~4.0.0" + "abstract-leveldown": "~6.0.0", + "inherits": "^2.0.3" }, "dependencies": { "abstract-leveldown": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-4.0.3.tgz", - "integrity": "sha512-qsIHFQy0u17JqSY+3ZUT+ykqxYY17yOfvAsLkFkw8kSQqi05d1jyj0bCuSX6sjYlXuY9cKpgUt5EudQdP4aXyA==", + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-6.0.3.tgz", + "integrity": "sha512-jzewKKpZbaYUa6HTThnrl+GrJhzjEAeuc7hTVpZdzg7kupXZFoqQDFwyOwLNbmJKJlmzw8yiipMPkDiuKkT06Q==", "requires": { + "level-concat-iterator": "~2.0.0", "xtend": "~4.0.0" } } @@ -1064,16 +1118,6 @@ "resolved": "https://registry.npmjs.org/delimit-stream/-/delimit-stream-0.1.0.tgz", "integrity": "sha1-m4MZR3wOX4rrPONXrjBfwl6hzSs=" }, - "depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" - }, - "destroy": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", - "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" - }, "detect-libc": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", @@ -1158,11 +1202,6 @@ "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=" }, - "ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" - }, "elliptic": { "version": "6.4.1", "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.1.tgz", @@ -1177,21 +1216,31 @@ "minimalistic-crypto-utils": "^1.0.0" } }, - "encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==" }, "encoding-down": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/encoding-down/-/encoding-down-5.0.4.tgz", - "integrity": "sha512-8CIZLDcSKxgzT+zX8ZVfgNbu8Md2wq/iqa1Y7zyVR18QBEAc0Nmzuvj/N5ykSKpfGzjM8qxbaFntLPwnVoUhZw==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/encoding-down/-/encoding-down-6.0.2.tgz", + "integrity": "sha512-oAEANslmNb64AF4kvHXjTxB7KecwD7X0qf8MffMfhpjP6gjGcnCTOkRgps/1yUNeR4Bhe6ckN6aAzZz+RIYgTw==", "requires": { - "abstract-leveldown": "^5.0.0", + "abstract-leveldown": "^6.0.0", "inherits": "^2.0.3", "level-codec": "^9.0.0", - "level-errors": "^2.0.0", - "xtend": "^4.0.1" + "level-errors": "^2.0.0" + }, + "dependencies": { + "abstract-leveldown": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-6.0.3.tgz", + "integrity": "sha512-jzewKKpZbaYUa6HTThnrl+GrJhzjEAeuc7hTVpZdzg7kupXZFoqQDFwyOwLNbmJKJlmzw8yiipMPkDiuKkT06Q==", + "requires": { + "level-concat-iterator": "~2.0.0", + "xtend": "~4.0.0" + } + } } }, "end-of-stream": { @@ -1312,29 +1361,11 @@ "prr": "~1.0.1" } }, - "error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "requires": { - "is-arrayish": "^0.2.1" - } - }, - "escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" - }, "escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" }, - "etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" - }, "ethereum-common": { "version": "0.0.18", "resolved": "https://registry.npmjs.org/ethereum-common/-/ethereum-common-0.0.18.tgz", @@ -1621,48 +1652,26 @@ "resolved": "https://registry.npmjs.org/explain-error/-/explain-error-1.0.4.tgz", "integrity": "sha1-p5PTrAytTGq1cemWj7urbLJTKSk=" }, - "express": { - "version": "4.16.4", - "resolved": "https://registry.npmjs.org/express/-/express-4.16.4.tgz", - "integrity": "sha512-j12Uuyb4FMrd/qQAm6uCHAkPtO8FDTRJZBDd5D2KOL2eLaz1yUNdUB/NOIyq0iU4q4cFarsUCrnFDPBcnksuOg==", - "requires": { - "accepts": "~1.3.5", - "array-flatten": "1.1.1", - "body-parser": "1.18.3", - "content-disposition": "0.5.2", - "content-type": "~1.0.4", - "cookie": "0.3.1", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "~1.1.2", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "1.1.1", - "fresh": "0.5.2", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "~2.3.0", - "parseurl": "~1.3.2", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.4", - "qs": "6.5.2", - "range-parser": "~1.2.0", - "safe-buffer": "5.1.2", - "send": "0.16.2", - "serve-static": "1.13.2", - "setprototypeof": "1.1.0", - "statuses": "~1.4.0", - "type-is": "~1.6.16", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - } - }, "fast-future": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/fast-future/-/fast-future-1.0.2.tgz", "integrity": "sha1-hDWpqqAteSSNF9cE52JZMB2ZKAo=" }, + "fast-json-parse": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/fast-json-parse/-/fast-json-parse-1.0.3.tgz", + "integrity": "sha512-FRWsaZRWEJ1ESVNbDWmsAlqDk96gPQezzLghafp5J4GUKjbCz3OkAHuZs5TuPEtkbVQERysLp9xv6c24fBm8Aw==" + }, + "fast-redact": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/fast-redact/-/fast-redact-1.5.0.tgz", + "integrity": "sha512-Afo61CgUjkzdvOKDHn08qnZ0kwck38AOGcMlvSGzvJbIab6soAP5rdoQayecGCDsD69AiF9vJBXyq31eoEO2tQ==" + }, + "fast-safe-stringify": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.0.6.tgz", + "integrity": "sha512-q8BZ89jjc+mz08rSxROs8VsrBBcn1SIw1kq9NjolL509tkABRk9io01RAjSaEv1Xb2uFLt8VtRiZbGp5H8iDtg==" + }, "fast-write-atomic": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/fast-write-atomic/-/fast-write-atomic-0.2.1.tgz", @@ -1692,20 +1701,6 @@ "resolved": "https://registry.npmjs.org/filesize/-/filesize-3.6.1.tgz", "integrity": "sha512-7KjR1vv6qnicaPMi1iiTcI85CyYwRO/PSFCu6SvqL8jN2Wjt/NIYQTFtFs7fSDCYOstUkEWIQGFUg5YZQfjlcg==" }, - "finalhandler": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.1.tgz", - "integrity": "sha512-Y1GUDo39ez4aHAw7MysnUD5JzYX+WaIj8I57kO3aEPT1fFRL4sr7mjei97FgnwhAyyzRYmQZaTHb2+9uZ1dPtg==", - "requires": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "~2.3.0", - "parseurl": "~1.3.2", - "statuses": "~1.4.0", - "unpipe": "~1.0.0" - } - }, "find-up": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", @@ -1719,20 +1714,28 @@ "resolved": "https://registry.npmjs.org/flatmap/-/flatmap-0.0.3.tgz", "integrity": "sha1-Hxik2TgVLUlZZfnJWNkjqy3WabQ=" }, + "flatstr": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/flatstr/-/flatstr-1.0.11.tgz", + "integrity": "sha512-CrkRmL8HgArqohPW5udNdtVae+fj5tvJdHwoo91m5OvaLk1a4lqa0R4/aPUO2zbVEnIrk+i5uTVNbSxaR1dQkQ==" + }, "fnv1a": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/fnv1a/-/fnv1a-1.0.1.tgz", "integrity": "sha1-kV4tbQI8Q9UiStn20qPEFW9XEvU=" }, - "forwarded": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", - "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=" + "for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=" }, - "fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" + "for-own": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz", + "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=", + "requires": { + "for-in": "^1.0.1" + } }, "from2": { "version": "2.3.0", @@ -2426,82 +2429,302 @@ } }, "hapi": { - "version": "16.7.0", - "resolved": "https://registry.npmjs.org/hapi/-/hapi-16.7.0.tgz", - "integrity": "sha512-UeMX1LMWmHEIgMlwZGK/3lhI7X0VRvOioVply0Y9qF+/O5woGdQzNB8ZmDnLOBjnB6bdWWHyo5DEamuCsE1vmg==", - "requires": { - "accept": "2.x.x", - "ammo": "2.x.x", - "boom": "5.x.x", - "call": "4.x.x", - "catbox": "7.x.x", - "catbox-memory": "2.x.x", - "cryptiles": "3.x.x", - "heavy": "4.x.x", - "hoek": "4.x.x", - "iron": "4.x.x", - "items": "2.x.x", - "joi": "11.x.x", - "mimos": "3.x.x", - "podium": "1.x.x", - "shot": "3.x.x", - "somever": "1.x.x", - "statehood": "5.x.x", - "subtext": "5.x.x", - "topo": "2.x.x" + "version": "18.1.0", + "resolved": "https://registry.npmjs.org/hapi/-/hapi-18.1.0.tgz", + "integrity": "sha512-nSU1VLyTAgp7P5gy47QzJIP2JAb+wOFvJIV3gnL0lFj/mD+HuTXhyUsDYXjF/dhADMVXVEz31z6SUHBJhtsvGA==", + "requires": { + "accept": "3.x.x", + "ammo": "3.x.x", + "boom": "7.x.x", + "bounce": "1.x.x", + "call": "5.x.x", + "catbox": "10.x.x", + "catbox-memory": "4.x.x", + "heavy": "6.x.x", + "hoek": "6.x.x", + "joi": "14.x.x", + "mimos": "4.x.x", + "podium": "3.x.x", + "shot": "4.x.x", + "somever": "2.x.x", + "statehood": "6.x.x", + "subtext": "6.x.x", + "teamwork": "3.x.x", + "topo": "3.x.x" }, "dependencies": { + "accept": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/accept/-/accept-3.1.3.tgz", + "integrity": "sha512-OgOEAidVEOKPup+Gv2+2wdH2AgVKI9LxsJ4hicdJ6cY0faUuZdZoi56kkXWlHp9qicN1nWQLmW5ZRGk+SBS5xg==", + "requires": { + "boom": "7.x.x", + "hoek": "6.x.x" + } + }, + "ammo": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/ammo/-/ammo-3.0.3.tgz", + "integrity": "sha512-vo76VJ44MkUBZL/BzpGXaKzMfroF4ZR6+haRuw9p+eSWfoNaH2AxVc8xmiEPC08jhzJSeM6w7/iMUGet8b4oBQ==", + "requires": { + "hoek": "6.x.x" + } + }, + "b64": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/b64/-/b64-4.1.2.tgz", + "integrity": "sha512-+GUspBxlH3CJaxMUGUE1EBoWM6RKgWiYwUDal0qdf8m3ArnXNN1KzKVo5HOnE/FSq4HHyWf3TlHLsZI8PKQgrQ==", + "requires": { + "hoek": "6.x.x" + } + }, "boom": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/boom/-/boom-5.2.0.tgz", - "integrity": "sha512-Z5BTk6ZRe4tXXQlkqftmsAUANpXmuwlsF5Oov8ThoMbQRzdGTA1ngYRW160GexgOgjsFOKJz0LYhoNi+2AMBUw==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/boom/-/boom-7.3.0.tgz", + "integrity": "sha512-Swpoyi2t5+GhOEGw8rEsKvTxFLIDiiKoUc2gsoV6Lyr43LHBIzch3k2MvYUs8RTROrIkVJ3Al0TkaOGjnb+B6A==", "requires": { - "hoek": "4.x.x" + "hoek": "6.x.x" } }, - "hoek": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/hoek/-/hoek-4.2.1.tgz", - "integrity": "sha512-QLg82fGkfnJ/4iy1xZ81/9SIJiq1NGFUMGs6ParyjBZr6jW2Ufj/snDqTHixNlHdPNwN2RLVD0Pi3igeK9+JfA==" + "bounce": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/bounce/-/bounce-1.2.3.tgz", + "integrity": "sha512-3G7B8CyBnip5EahCZJjnvQ1HLyArC6P5e+xcolo13BVI9ogFaDOsNMAE7FIWliHtIkYI8/nTRCvCY9tZa3Mu4g==", + "requires": { + "boom": "7.x.x", + "hoek": "6.x.x" + } }, - "isemail": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/isemail/-/isemail-3.2.0.tgz", - "integrity": "sha512-zKqkK+O+dGqevc93KNsbZ/TqTUFd46MwWjYOoMrjIMZ51eU7DtQG3Wmd9SQQT7i7RVnuTPEiYEWHU3MSbxC1Tg==", + "bourne": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/bourne/-/bourne-1.1.1.tgz", + "integrity": "sha512-Ou0l3W8+n1FuTOoIfIrCk9oF9WVWc+9fKoAl67XQr9Ws0z7LgILRZ7qtc9xdT4BveSKtnYXfKPgn8pFAqeQRew==" + }, + "call": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/call/-/call-5.0.3.tgz", + "integrity": "sha512-eX16KHiAYXugbFu6VifstSdwH6aMuWWb4s0qvpq1nR1b+Sf+u68jjttg8ixDBEldPqBi30bDU35OJQWKeTLKxg==", + "requires": { + "boom": "7.x.x", + "hoek": "6.x.x" + } + }, + "catbox": { + "version": "10.0.6", + "resolved": "https://registry.npmjs.org/catbox/-/catbox-10.0.6.tgz", + "integrity": "sha512-gQWCnF/jbHcfwGbQ4FQxyRiAwLRipqWTTXjpq7rTqqdcsnZosFa0L3LsCZcPTF33QIeMMkS7QmFBHt6QdzGPvg==", + "requires": { + "boom": "7.x.x", + "hoek": "6.x.x", + "joi": "14.x.x" + } + }, + "catbox-memory": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/catbox-memory/-/catbox-memory-4.0.1.tgz", + "integrity": "sha512-ZmqNiLsYCIu9qvBJ/MQbznDV2bFH5gFiH67TgIJgSSffJFtTXArT+MM3AvJQlby9NSkLHOX4eH/uuUqnch/Ldw==", + "requires": { + "boom": "7.x.x", + "hoek": "6.x.x" + } + }, + "content": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/content/-/content-4.0.6.tgz", + "integrity": "sha512-lR9ND3dXiMdmsE84K6l02rMdgiBVmtYWu1Vr/gfSGHcIcznBj2QxmSdUgDuNFOA+G9yrb1IIWkZ7aKtB6hDGyA==", + "requires": { + "boom": "7.x.x" + } + }, + "cryptiles": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-4.1.3.tgz", + "integrity": "sha512-gT9nyTMSUC1JnziQpPbxKGBbUg8VL7Zn2NB4E1cJYvuXdElHrwxrV9bmltZGDzet45zSDGyYceueke1TjynGzw==", + "requires": { + "boom": "7.x.x" + } + }, + "heavy": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/heavy/-/heavy-6.1.2.tgz", + "integrity": "sha512-cJp884bqhiebNcEHydW0g6V1MUGYOXRPw9c7MFiHQnuGxtbWuSZpsbojwb2kxb3AA1/Rfs8CNiV9MMOF8pFRDg==", "requires": { - "punycode": "2.x.x" + "boom": "7.x.x", + "hoek": "6.x.x", + "joi": "14.x.x" + } + }, + "hoek": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/hoek/-/hoek-6.1.2.tgz", + "integrity": "sha512-6qhh/wahGYZHFSFw12tBbJw5fsAhhwrrG/y3Cs0YMTv2WzMnL0oLPnQJjv1QJvEfylRSOFuP+xCu+tdx0tD16Q==" + }, + "iron": { + "version": "5.0.6", + "resolved": "https://registry.npmjs.org/iron/-/iron-5.0.6.tgz", + "integrity": "sha512-zYUMOSkEXGBdwlV/AXF9zJC0aLuTJUKHkGeYS5I2g225M5i6SrxQyGJGhPgOR8BK1omL6N5i6TcwfsXbP8/Exw==", + "requires": { + "b64": "4.x.x", + "boom": "7.x.x", + "cryptiles": "4.x.x", + "hoek": "6.x.x" } }, "joi": { - "version": "11.4.0", - "resolved": "https://registry.npmjs.org/joi/-/joi-11.4.0.tgz", - "integrity": "sha512-O7Uw+w/zEWgbL6OcHbyACKSj0PkQeUgmehdoXVSxt92QFCq4+1390Rwh5moI2K/OgC7D8RHRZqHZxT2husMJHA==", + "version": "14.3.1", + "resolved": "https://registry.npmjs.org/joi/-/joi-14.3.1.tgz", + "integrity": "sha512-LQDdM+pkOrpAn4Lp+neNIFV3axv1Vna3j38bisbQhETPMANYRbFJFUyOZcOClYvM/hppMhGWuKSFEK9vjrB+bQ==", "requires": { - "hoek": "4.x.x", + "hoek": "6.x.x", "isemail": "3.x.x", - "topo": "2.x.x" + "topo": "3.x.x" } - } - } - }, - "hapi-set-header": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/hapi-set-header/-/hapi-set-header-1.0.2.tgz", - "integrity": "sha1-KvrgAsZxnW1U8/qIRi+CKJLS3xM=" - }, - "has-binary2": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-binary2/-/has-binary2-1.0.3.tgz", - "integrity": "sha512-G1LWKhDSvhGeAQ8mPVQlqNcOB2sJdwATtZKl2pDKKHfpf/rYj24lkinxf69blJbnsvtqqNU+L3SL50vzZhXOnw==", - "requires": { - "isarray": "2.0.1" - }, - "dependencies": { - "isarray": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", - "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=" - } + }, + "mime-db": { + "version": "1.37.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.37.0.tgz", + "integrity": "sha512-R3C4db6bgQhlIhPU48fUtdVmKnflq+hRdad7IyKhtFj06VPNVdk2RhiYL3UjQIlso8L+YxAtFkobT0VK+S/ybg==" + }, + "mimos": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/mimos/-/mimos-4.0.2.tgz", + "integrity": "sha512-5XBsDqBqzSN88XPPH/TFpOalWOjHJM5Z2d3AMx/30iq+qXvYKd/8MPhqBwZDOLtoaIWInR3nLzMQcxfGK9djXA==", + "requires": { + "hoek": "6.x.x", + "mime-db": "1.x.x" + } + }, + "nigel": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/nigel/-/nigel-3.0.4.tgz", + "integrity": "sha512-3SZCCS/duVDGxFpTROHEieC+itDo4UqL9JNUyQJv3rljudQbK6aqus5B4470OxhESPJLN93Qqxg16rH7DUjbfQ==", + "requires": { + "hoek": "6.x.x", + "vise": "3.x.x" + } + }, + "pez": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/pez/-/pez-4.0.5.tgz", + "integrity": "sha512-HvL8uiFIlkXbx/qw4B8jKDCWzo7Pnnd65Uvanf9OOCtb20MRcb9gtTVBf9NCnhETif1/nzbDHIjAWC/sUp7LIQ==", + "requires": { + "b64": "4.x.x", + "boom": "7.x.x", + "content": "4.x.x", + "hoek": "6.x.x", + "nigel": "3.x.x" + } + }, + "podium": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/podium/-/podium-3.2.0.tgz", + "integrity": "sha512-rbwvxwVkI6gRRlxZQ1zUeafrpGxZ7QPHIheinehAvGATvGIPfWRkaTeWedc5P4YjXJXEV8ZbBxPtglNylF9hjw==", + "requires": { + "hoek": "6.x.x", + "joi": "14.x.x" + } + }, + "shot": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/shot/-/shot-4.0.7.tgz", + "integrity": "sha512-RKaKAGKxJ11EjJl0cf2fYVSsd4KB5Cncb9J0v7w+0iIaXpxNqFWTYNDNhBX7f0XSyDrjOH9a4OWZ9Gp/ZML+ew==", + "requires": { + "hoek": "6.x.x", + "joi": "14.x.x" + } + }, + "somever": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/somever/-/somever-2.0.0.tgz", + "integrity": "sha512-9JaIPP+HxwYGqCDqqK3tRaTqdtQHoK6Qy3IrXhIt2q5x8fs8RcfU7BMWlFTCOgFazK8p88zIv1tHQXvAwtXMyw==", + "requires": { + "bounce": "1.x.x", + "hoek": "6.x.x" + } + }, + "statehood": { + "version": "6.0.9", + "resolved": "https://registry.npmjs.org/statehood/-/statehood-6.0.9.tgz", + "integrity": "sha512-jbFg1+MYEqfC7ABAoWZoeF4cQUtp3LUvMDUGExL76cMmleBHG7I6xlZFsE8hRi7nEySIvutHmVlLmBe9+2R5LQ==", + "requires": { + "boom": "7.x.x", + "bounce": "1.x.x", + "bourne": "1.x.x", + "cryptiles": "4.x.x", + "hoek": "6.x.x", + "iron": "5.x.x", + "joi": "14.x.x" + } + }, + "subtext": { + "version": "6.0.12", + "resolved": "https://registry.npmjs.org/subtext/-/subtext-6.0.12.tgz", + "integrity": "sha512-yT1wCDWVgqvL9BIkWzWqgj5spUSYo/Enu09iUV8t2ZvHcr2tKGTGg2kc9tUpVEsdhp1ihsZeTAiDqh0TQciTPQ==", + "requires": { + "boom": "7.x.x", + "bourne": "1.x.x", + "content": "4.x.x", + "hoek": "6.x.x", + "pez": "4.x.x", + "wreck": "14.x.x" + } + }, + "teamwork": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/teamwork/-/teamwork-3.0.3.tgz", + "integrity": "sha512-OCB56z+G70iA1A1OFoT+51TPzfcgN0ks75uN3yhxA+EU66WTz2BevNDK4YzMqfaL5tuAvxy4iFUn35/u8pxMaQ==" + }, + "topo": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/topo/-/topo-3.0.3.tgz", + "integrity": "sha512-IgpPtvD4kjrJ7CRA3ov2FhWQADwv+Tdqbsf1ZnPUSAtCJ9e1Z44MmoSGDXGk4IppoZA7jd/QRkNddlLJWlUZsQ==", + "requires": { + "hoek": "6.x.x" + } + }, + "vise": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/vise/-/vise-3.0.2.tgz", + "integrity": "sha512-X52VtdRQbSBXdjcazRiY3eRgV3vTQ0B+7Wh8uC9cVv7lKfML5m9+9NHlbcgCY0R9EAqD1v/v7o9mhGh2A3ANFg==", + "requires": { + "hoek": "6.x.x" + } + }, + "wreck": { + "version": "14.1.3", + "resolved": "https://registry.npmjs.org/wreck/-/wreck-14.1.3.tgz", + "integrity": "sha512-hb/BUtjX3ObbwO3slCOLCenQ4EP8e+n8j6FmTne3VhEFp5XV1faSJojiyxVSvw34vgdeTG5baLTl4NmjwokLlw==", + "requires": { + "boom": "7.x.x", + "hoek": "6.x.x" + } + } + } + }, + "hapi-pino": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/hapi-pino/-/hapi-pino-5.4.1.tgz", + "integrity": "sha512-Bmt0XtRm5xPRE26bcn4dakgLPyAPyadEI5LF9P4EMP43XDzbxl4wQqwe2uVC463X9txdkwOAjaan3vDTC/guaQ==", + "requires": { + "abstract-logging": "^1.0.0", + "hoek": "^6.1.2", + "pino": "^5.10.1", + "pino-pretty": "^2.5.0" + } + }, + "has-binary2": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-binary2/-/has-binary2-1.0.3.tgz", + "integrity": "sha512-G1LWKhDSvhGeAQ8mPVQlqNcOB2sJdwATtZKl2pDKKHfpf/rYj24lkinxf69blJbnsvtqqNU+L3SL50vzZhXOnw==", + "requires": { + "isarray": "2.0.1" + }, + "dependencies": { + "isarray": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", + "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=" + } } }, "has-cors": { @@ -2575,6 +2798,11 @@ "resolved": "https://registry.npmjs.org/hoek/-/hoek-4.2.1.tgz", "integrity": "sha512-QLg82fGkfnJ/4iy1xZ81/9SIJiq1NGFUMGs6ParyjBZr6jW2Ufj/snDqTHixNlHdPNwN2RLVD0Pi3igeK9+JfA==" }, + "isemail": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/isemail/-/isemail-2.2.1.tgz", + "integrity": "sha1-A1PT2aYpUQgMJiwqoKQrjqjp4qY=" + }, "joi": { "version": "10.6.0", "resolved": "https://registry.npmjs.org/joi/-/joi-10.6.0.tgz", @@ -2585,6 +2813,14 @@ "items": "2.x.x", "topo": "2.x.x" } + }, + "topo": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/topo/-/topo-2.0.2.tgz", + "integrity": "sha1-zVYVdSU5BXwNwEkaYhw7xvvh0YI=", + "requires": { + "hoek": "4.x.x" + } } } }, @@ -2603,21 +2839,10 @@ "resolved": "https://registry.npmjs.org/hoek/-/hoek-6.1.3.tgz", "integrity": "sha512-YXXAAhmF9zpQbC7LEcREFtXfGq5K1fmd+4PHkBq8NUqmzW3G+Dq10bI/i0KucLRwss3YYFQ0fSfoxBZYiGUqtQ==" }, - "hosted-git-info": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.7.1.tgz", - "integrity": "sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w==" - }, - "http-errors": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", - "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", - "requires": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.0", - "statuses": ">= 1.4.0 < 2" - } + "http2": { + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/http2/-/http2-3.3.7.tgz", + "integrity": "sha512-puSi8M8WNlFJm9Pk4c/Mbz9Gwparuj3gO9/RRO5zv6piQ0FY+9Qywp0PdWshYgsMJSalixFY7eC6oPu0zRxLAQ==" }, "human-to-milliseconds": { "version": "1.0.0", @@ -2636,14 +2861,6 @@ "localstorage-memory": "^1.0.1" } }, - "iconv-lite": { - "version": "0.4.23", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz", - "integrity": "sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==", - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, "idb-readable-stream": { "version": "0.0.4", "resolved": "https://registry.npmjs.org/idb-readable-stream/-/idb-readable-stream-0.0.4.tgz", @@ -2703,6 +2920,11 @@ "resolved": "https://registry.npmjs.org/hoek/-/hoek-4.2.1.tgz", "integrity": "sha512-QLg82fGkfnJ/4iy1xZ81/9SIJiq1NGFUMGs6ParyjBZr6jW2Ufj/snDqTHixNlHdPNwN2RLVD0Pi3igeK9+JfA==" }, + "isemail": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/isemail/-/isemail-2.2.1.tgz", + "integrity": "sha1-A1PT2aYpUQgMJiwqoKQrjqjp4qY=" + }, "joi": { "version": "10.6.0", "resolved": "https://registry.npmjs.org/joi/-/joi-10.6.0.tgz", @@ -2723,6 +2945,14 @@ "yallist": "^2.1.2" } }, + "topo": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/topo/-/topo-2.0.2.tgz", + "integrity": "sha1-zVYVdSU5BXwNwEkaYhw7xvvh0YI=", + "requires": { + "hoek": "4.x.x" + } + }, "yallist": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", @@ -2799,69 +3029,67 @@ "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz", "integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=" }, - "ipaddr.js": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.0.tgz", - "integrity": "sha512-M4Sjn6N/+O6/IXSJseKqHoFc+5FdGJ22sXqnjTpdZweHK64MzEPAyQZyEU3R/KRv2GLoa7nNtg/C2Ev6m7z+eA==" - }, "ipfs": { - "version": "0.34.4", - "resolved": "https://registry.npmjs.org/ipfs/-/ipfs-0.34.4.tgz", - "integrity": "sha512-BhNVdWRE9lP+D/DfAI4L3rtIFg3trxpkEbCELBA7+mLi5ZkVnNpsOvvlcn3eJdufwqBj0/9x2xbOP1YQzZfEKg==", + "version": "0.35.0", + "resolved": "https://registry.npmjs.org/ipfs/-/ipfs-0.35.0.tgz", + "integrity": "sha512-79hxhXd4s+FzfYsgoMitAqekwg41+2iU5XZ0UgWONQoxQtTOX7bZGw7N6jws8l5NJpYqckv1MLSMsH/j4bDoZg==", "requires": { - "@nodeutils/defaults-deep": "^1.1.0", "async": "^2.6.1", "bignumber.js": "^8.0.2", "binary-querystring": "~0.1.2", - "bl": "^2.1.2", + "bl": "^3.0.0", "boom": "^7.2.0", "bs58": "^4.0.1", "byteman": "^1.3.5", "cid-tool": "~0.2.0", - "cids": "~0.5.5", + "cids": "~0.5.8", "class-is": "^1.1.0", "datastore-core": "~0.6.0", "datastore-pubsub": "~0.1.1", "debug": "^4.1.0", + "dlv": "^1.1.2", "err-code": "^1.1.2", "file-type": "^10.2.0", "fnv1a": "^1.0.1", "fsm-event": "^2.1.0", "get-folder-size": "^2.0.0", "glob": "^7.1.3", - "hapi": "^16.6.2", - "hapi-set-header": "^1.0.2", - "hoek": "^6.1.2", + "hapi": "^18.0.0", + "hapi-pino": "^5.2.0", "human-to-milliseconds": "^1.0.0", "interface-datastore": "~0.6.0", - "ipfs-bitswap": "~0.22.0", + "ipfs-bitswap": "~0.23.0", "ipfs-block": "~0.8.0", "ipfs-block-service": "~0.15.1", - "ipfs-http-client": "^29.0.0", + "ipfs-http-client": "^30.1.1", "ipfs-http-response": "~0.2.1", - "ipfs-mfs": "~0.8.0", + "ipfs-mfs": "~0.10.2", "ipfs-multipart": "~0.1.0", "ipfs-repo": "~0.26.1", "ipfs-unixfs": "~0.1.16", - "ipfs-unixfs-engine": "~0.35.3", - "ipld": "~0.20.1", + "ipfs-unixfs-exporter": "~0.36.1", + "ipfs-unixfs-importer": "~0.38.5", + "ipld": "~0.21.1", "ipld-bitcoin": "~0.1.8", - "ipld-dag-pb": "~0.15.0", + "ipld-dag-cbor": "~0.13.1", + "ipld-dag-pb": "~0.15.3", "ipld-ethereum": "^2.0.1", - "ipld-git": "~0.2.2", + "ipld-git": "~0.3.0", + "ipld-raw": "^2.0.1", "ipld-zcash": "~0.1.6", "ipns": "~0.5.0", - "is-ipfs": "~0.4.8", + "is-ipfs": "~0.6.0", "is-pull-stream": "~0.0.0", "is-stream": "^1.1.0", + "iso-url": "~0.4.6", "joi": "^14.3.0", - "joi-browser": "^13.4.0", - "joi-multiaddr": "^4.0.0", - "libp2p": "~0.24.1", + "just-flatten-it": "^2.1.0", + "just-safe-set": "^2.1.0", + "libp2p": "~0.25.0", "libp2p-bootstrap": "~0.9.3", "libp2p-crypto": "~0.16.0", - "libp2p-kad-dht": "~0.14.4", - "libp2p-keychain": "~0.3.3", + "libp2p-kad-dht": "~0.14.12", + "libp2p-keychain": "~0.4.1", "libp2p-mdns": "~0.12.0", "libp2p-mplex": "~0.8.4", "libp2p-record": "~0.6.1", @@ -2869,18 +3097,19 @@ "libp2p-tcp": "~0.13.0", "libp2p-webrtc-star": "~0.15.5", "libp2p-websocket-star-multi": "~0.4.0", - "libp2p-websockets": "~0.12.0", + "libp2p-websockets": "~0.12.2", "lodash": "^4.17.11", "mafmt": "^6.0.2", + "merge-options": "^1.0.1", "mime-types": "^2.1.21", "mkdirp": "~0.5.1", "multiaddr": "^6.0.0", - "multiaddr-to-uri": "^4.0.0", + "multiaddr-to-uri": "^4.0.1", "multibase": "~0.6.0", + "multicodec": "~0.5.0", "multihashes": "~0.4.14", "multihashing-async": "~0.5.1", "node-fetch": "^2.3.0", - "once": "^1.4.0", "peer-book": "~0.9.0", "peer-id": "~0.12.0", "peer-info": "~0.15.0", @@ -2898,16 +3127,16 @@ "pull-sort": "^1.0.1", "pull-stream": "^3.6.9", "pull-stream-to-stream": "^1.3.4", - "pump": "^3.0.0", - "read-pkg-up": "^4.0.0", "readable-stream": "^3.1.1", "receptacle": "^1.3.2", - "stream-to-pull-stream": "^1.7.2", - "tar-stream": "^1.6.2", + "stream-to-pull-stream": "^1.7.3", + "superstruct": "~0.6.0", + "tar-stream": "^2.0.0", "temp": "~0.9.0", "update-notifier": "^2.5.0", + "uri-to-multiaddr": "^3.0.1", "varint": "^5.0.0", - "yargs": "^12.0.5", + "yargs": "^13.2.2", "yargs-promise": "^1.1.0" }, "dependencies": { @@ -2919,75 +3148,39 @@ "ms": "^2.1.1" } }, - "ipfs-http-client": { - "version": "29.1.1", - "resolved": "https://registry.npmjs.org/ipfs-http-client/-/ipfs-http-client-29.1.1.tgz", - "integrity": "sha512-aAjqZ9RwnpQECkMO058YjWG79U4w4wEKvHfVdXMhgkXDFkErxRpSqoCvwIVozbTU34NwEjWsZ9WoG0lr2FtgvA==", - "requires": { - "async": "^2.6.1", - "bignumber.js": "^8.0.2", - "bl": "^2.1.2", - "bs58": "^4.0.1", - "cids": "~0.5.5", - "concat-stream": "^2.0.0", - "debug": "^4.1.0", - "detect-node": "^2.0.4", - "end-of-stream": "^1.4.1", - "err-code": "^1.1.2", - "flatmap": "0.0.3", - "glob": "^7.1.3", - "ipfs-block": "~0.8.0", - "ipfs-unixfs": "~0.1.16", - "ipld-dag-cbor": "~0.13.0", - "ipld-dag-pb": "~0.15.0", - "is-ipfs": "~0.4.7", - "is-pull-stream": "0.0.0", - "is-stream": "^1.1.0", - "libp2p-crypto": "~0.16.0", - "lodash": "^4.17.11", - "lru-cache": "^5.1.1", - "multiaddr": "^6.0.0", - "multibase": "~0.6.0", - "multihashes": "~0.4.14", - "ndjson": "^1.5.0", - "once": "^1.4.0", - "peer-id": "~0.12.1", - "peer-info": "~0.15.0", - "promisify-es6": "^1.0.3", - "pull-defer": "~0.2.3", - "pull-pushable": "^2.2.0", - "pull-stream-to-stream": "^1.3.4", - "pump": "^3.0.0", - "qs": "^6.5.2", - "readable-stream": "^3.0.6", - "stream-http": "^3.0.0", - "stream-to-pull-stream": "^1.7.2", - "streamifier": "~0.1.1", - "tar-stream": "^1.6.2", - "through2": "^3.0.0" - } - }, "ms": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" + }, + "tar-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.0.1.tgz", + "integrity": "sha512-I6OJF7wE62BC6zNPdHDtseK0D0187PBjbKSLYY4ffvVkBM6tyBn2O9plDvVM2229/mozfEL/X3++qSvYYQE2xw==", + "requires": { + "bl": "^3.0.0", + "end-of-stream": "^1.4.1", + "fs-constants": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^3.1.1" + } } } }, "ipfs-bitswap": { - "version": "0.22.0", - "resolved": "https://registry.npmjs.org/ipfs-bitswap/-/ipfs-bitswap-0.22.0.tgz", - "integrity": "sha512-hgLwX1PUTMgVFbjWjSdasZLhj6ODEuJ/65xwkQGXSDZCrLIyKILp9kH2ZMspSBeSWzeQF4B5QDpB5FxKg6J2PA==", + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/ipfs-bitswap/-/ipfs-bitswap-0.23.0.tgz", + "integrity": "sha512-6gim1Y3WUk4hh+EmrWFiPwtHdeVXCr0QwAHOs2Y8mLLpuYF29Y2weugO3Ggkjcx1t+0wiQFIj7SMwsBBUNe8FA==", "requires": { "async": "^2.6.1", "bignumber.js": "^8.0.1", - "cids": "~0.5.5", + "cids": "~0.5.8", "debug": "^4.1.0", "ipfs-block": "~0.8.0", "just-debounce-it": "^1.1.0", "lodash.isequalwith": "^4.4.0", "moving-average": "^1.0.0", - "multicodec": "~0.2.7", + "multicodec": "~0.5.0", "multihashing-async": "~0.5.1", "protons": "^1.0.1", "pull-length-prefixed": "^1.3.1", @@ -3007,14 +3200,6 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" - }, - "multicodec": { - "version": "0.2.7", - "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-0.2.7.tgz", - "integrity": "sha512-96xc9zs7bsclMW0Po9ERnRFqcsWHY8OZ8JW/I8DeHG58YYJZy3cBGI00Ze7hz9Ix56DNHMTSxEj9cgoZByruMg==", - "requires": { - "varint": "^5.0.0" - } } } }, @@ -3224,9 +3409,9 @@ } }, "ipfs-mfs": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/ipfs-mfs/-/ipfs-mfs-0.8.2.tgz", - "integrity": "sha512-+HxjWSI9L6v/qXTEZgoPydMYBHYydjfmqnWzGprrWp3I60Yt+eGoao4+6aiPOepinWMF2Peh7wkaefTVUJFXpA==", + "version": "0.10.4", + "resolved": "https://registry.npmjs.org/ipfs-mfs/-/ipfs-mfs-0.10.4.tgz", + "integrity": "sha512-WFGSkbSdpUcHXstLhhK1Tn/CFXtQTtRH6zPGvjGoZ+Zmap3LXc4gwVkIlaswllZhzP9lOYhPULC3rLZc/IuUUw==", "requires": { "async": "^2.6.1", "cids": "~0.5.5", @@ -3236,12 +3421,12 @@ "interface-datastore": "~0.6.0", "ipfs-multipart": "~0.1.0", "ipfs-unixfs": "~0.1.16", - "ipfs-unixfs-exporter": "~0.35.5", - "ipfs-unixfs-importer": "~0.38.0", - "ipld-dag-pb": "~0.15.0", + "ipfs-unixfs-exporter": "~0.36.1", + "ipfs-unixfs-importer": "~0.38.5", + "ipld-dag-pb": "~0.15.2", "is-pull-stream": "~0.0.0", "is-stream": "^1.1.0", - "joi": "^14.0.4", + "joi": "^14.3.0", "joi-browser": "^13.4.0", "mortice": "^1.2.1", "once": "^1.4.0", @@ -3294,9 +3479,9 @@ } }, "ipfs-repo": { - "version": "0.26.4", - "resolved": "https://registry.npmjs.org/ipfs-repo/-/ipfs-repo-0.26.4.tgz", - "integrity": "sha512-Qm03uPER+s+tGgBbznd8+7ncSxTyYzJQ95Z6BuZU+j/hQNzdJfm4283dOQ+PXV0cfT5DQrPf2jDJmL5ZU2ZqIA==", + "version": "0.26.5", + "resolved": "https://registry.npmjs.org/ipfs-repo/-/ipfs-repo-0.26.5.tgz", + "integrity": "sha512-B6Yk4QXJIC2FeTf6EPuDzx/5mKE9KqjQRtVWDhayLFr62gIsyYEEhKUnsOXNs1BtNEsKOD05lfx8RfQInBU+aA==", "requires": { "async": "^2.6.2", "base32.js": "~0.1.0", @@ -3305,7 +3490,7 @@ "cids": "~0.5.8", "datastore-core": "~0.6.0", "datastore-fs": "~0.8.0", - "datastore-level": "~0.10.0", + "datastore-level": "~0.11.0", "debug": "^4.1.0", "dlv": "^1.1.2", "interface-datastore": "~0.6.0", @@ -3340,19 +3525,10 @@ "protons": "^1.0.1" } }, - "ipfs-unixfs-engine": { - "version": "0.35.4", - "resolved": "https://registry.npmjs.org/ipfs-unixfs-engine/-/ipfs-unixfs-engine-0.35.4.tgz", - "integrity": "sha512-6DkrJgPDAWJc1zZSnOqYp6gxe525pnyg2qCxE+PF1KoBz989WWogBrw1h1AfozMrbR5GSrL+peSgg34WAlE8ew==", - "requires": { - "ipfs-unixfs-exporter": "~0.35.4", - "ipfs-unixfs-importer": "~0.38.0" - } - }, "ipfs-unixfs-exporter": { - "version": "0.35.9", - "resolved": "https://registry.npmjs.org/ipfs-unixfs-exporter/-/ipfs-unixfs-exporter-0.35.9.tgz", - "integrity": "sha512-a0faOzE2VfOsW/9MiXhstHRK1YAO/k8YVHN9PGsewsyAeZNL+/dLFqHbYmBcbg31tEmYYluBea9Dr7whw4+Dqg==", + "version": "0.36.1", + "resolved": "https://registry.npmjs.org/ipfs-unixfs-exporter/-/ipfs-unixfs-exporter-0.36.1.tgz", + "integrity": "sha512-J8vrUFcREYSovUm6fdwxM3X2lgumg40YDc/oKsfFxPV0K5xzfmrj+aU2AUCik8W5GBhFH24DJwwfLAY7FkwytQ==", "requires": { "async": "^2.6.1", "cids": "~0.5.5", @@ -3390,29 +3566,16 @@ "pull-write": "^1.1.4", "rabin": "^1.6.0", "stream-to-pull-stream": "^1.7.2" - }, - "dependencies": { - "bl": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-3.0.0.tgz", - "integrity": "sha512-EUAyP5UHU5hxF8BPT0LKW8gjYLhq1DQIcneOX/pL/m2Alo+OYDQAJlHq+yseMP50Os2nHXOSic6Ss3vSQeyf4A==", - "requires": { - "readable-stream": "^3.0.1" - } - } } }, "ipld": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/ipld/-/ipld-0.20.2.tgz", - "integrity": "sha512-VXGUqcMSfS1L0n8hCFCEbMj86nOkNRCXBihjAlzEOcUbdfdZZsv0wnhgExYCE1JPrCuTqmVV5b/PBfSrhQdMqQ==", + "version": "0.21.1", + "resolved": "https://registry.npmjs.org/ipld/-/ipld-0.21.1.tgz", + "integrity": "sha512-3RWJEtJtX8m3iaUNZCYD+4/F/ETF7MRYPN+2S4gl2OEHV8S0Cs3PoI6KvyZYDKlAkWTQtFLpWUYlUy1tMj4zqw==", "requires": { "async": "^2.6.1", "cids": "~0.5.5", - "interface-datastore": "~0.6.0", "ipfs-block": "~0.8.0", - "ipfs-block-service": "~0.15.0", - "ipfs-repo": "~0.26.0", "ipld-dag-cbor": "~0.13.0", "ipld-dag-pb": "~0.15.2", "ipld-raw": "^2.0.1", @@ -3498,27 +3661,18 @@ } }, "ipld-git": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/ipld-git/-/ipld-git-0.2.3.tgz", - "integrity": "sha512-AbIlgbK0vgLqQ/U+kJmnLnK2+uxaMS6PdP/PBK5heBQII3Lb2IpYoMqdJja5wYISTYxGzJeh9PB2U/de3B0ucw==", + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/ipld-git/-/ipld-git-0.3.0.tgz", + "integrity": "sha512-4ZqMHkKr7f2v9rizVpI9ax+2sNmYyWV48Snsf88b2DIZ/FrnukrTcRGS5NNw8f86lAkphICcczrkwhGifDtp4Q==", "requires": { - "async": "^2.6.0", - "cids": "~0.5.2", - "multicodec": "~0.4.0", - "multihashes": "~0.4.12", - "multihashing-async": "~0.5.1", - "smart-buffer": "^4.0.0", + "async": "^2.6.2", + "cids": "~0.5.8", + "multicodec": "~0.5.0", + "multihashes": "~0.4.14", + "multihashing-async": "~0.5.2", + "smart-buffer": "^4.0.2", + "strftime": "~0.10.0", "traverse": "~0.6.6" - }, - "dependencies": { - "multicodec": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-0.4.0.tgz", - "integrity": "sha512-npzvuOHRJD172WiolvyF8mAS5JfWWJlVh22OcGZ4I5ZKyFVI4aFQYB5AcMtmMTWRsjiePlOHH/dnaZi8ZidWuA==", - "requires": { - "varint": "^5.0.0" - } - } } }, "ipld-raw": { @@ -3598,11 +3752,6 @@ } } }, - "is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" - }, "is-ci": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-1.2.1.tgz", @@ -3616,6 +3765,11 @@ "resolved": "https://registry.npmjs.org/is-circular/-/is-circular-1.0.2.tgz", "integrity": "sha512-YttjnrswnUYRVJvxCvu8z+PGMUSzC2JttP0OEXezlAEdp3EXzhf7IZ3j0gRAybJBQupedIZFhY61Tga6E0qASA==" }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" + }, "is-fullwidth-code-point": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", @@ -3644,14 +3798,29 @@ } }, "is-ipfs": { - "version": "0.4.8", - "resolved": "https://registry.npmjs.org/is-ipfs/-/is-ipfs-0.4.8.tgz", - "integrity": "sha512-xIKUeA24IFMfkmeAPEOZL448X7a08c/KzAGQp1e/QxC9bx/NNEdT/ohob3SW6eJO2UwJNjsbfMeNZ2B+Dk2Fdg==", + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/is-ipfs/-/is-ipfs-0.6.1.tgz", + "integrity": "sha512-WhqQylam6pODS2RyqT/u0PR5KWtBZNCgPjgargFOVQjzw/3+6d0midXenzU65klM4LH13IUiCC6ObhDUdXZ7Nw==", "requires": { - "bs58": "4.0.1", - "cids": "~0.5.6", + "bs58": "^4.0.1", + "cids": "~0.7.0", + "mafmt": "^6.0.7", + "multiaddr": "^6.0.4", "multibase": "~0.6.0", "multihashes": "~0.4.13" + }, + "dependencies": { + "cids": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/cids/-/cids-0.7.0.tgz", + "integrity": "sha512-Vo0Pd/UZjtQ0R8JQHf57yaDMcsz58/+7nbaNXpN++l5o9VZiFdAOzkADV4siZuTGxfTjf/O11T6+nm+KTP26Pw==", + "requires": { + "class-is": "^1.1.0", + "multibase": "~0.6.0", + "multicodec": "~0.5.1", + "multihashes": "~0.4.14" + } + } } }, "is-npm": { @@ -3677,6 +3846,14 @@ "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=" }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "requires": { + "isobject": "^3.0.1" + } + }, "is-promise": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-1.0.1.tgz", @@ -3713,9 +3890,12 @@ "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" }, "isemail": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/isemail/-/isemail-2.2.1.tgz", - "integrity": "sha1-A1PT2aYpUQgMJiwqoKQrjqjp4qY=" + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/isemail/-/isemail-3.2.0.tgz", + "integrity": "sha512-zKqkK+O+dGqevc93KNsbZ/TqTUFd46MwWjYOoMrjIMZ51eU7DtQG3Wmd9SQQT7i7RVnuTPEiYEWHU3MSbxC1Tg==", + "requires": { + "punycode": "2.x.x" + } }, "isexe": { "version": "2.0.0", @@ -3742,11 +3922,21 @@ "resolved": "https://registry.npmjs.org/iso-url/-/iso-url-0.4.6.tgz", "integrity": "sha512-YQO7+aIe6l1aSJUKOx+Vrv08DlhZeLFIVfehG2L29KLSEb9RszqPXilxJRVpp57px36BddKR5ZsebacO5qG0tg==" }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + }, "items": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/items/-/items-2.1.2.tgz", "integrity": "sha512-kezcEqgB97BGeZZYtX/MA8AG410ptURstvnz5RAgyFZ8wQFPMxHY8GpTq+/ZHKT3frSlIthUq7EvLt9xn3TvXg==" }, + "jmespath": { + "version": "0.15.0", + "resolved": "https://registry.npmjs.org/jmespath/-/jmespath-0.15.0.tgz", + "integrity": "sha1-o/Iiqarp+Wb10nx5ZRDigJF2Qhc=" + }, "joi": { "version": "14.3.1", "resolved": "https://registry.npmjs.org/joi/-/joi-14.3.1.tgz", @@ -3755,24 +3945,6 @@ "hoek": "6.x.x", "isemail": "3.x.x", "topo": "3.x.x" - }, - "dependencies": { - "isemail": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/isemail/-/isemail-3.2.0.tgz", - "integrity": "sha512-zKqkK+O+dGqevc93KNsbZ/TqTUFd46MwWjYOoMrjIMZ51eU7DtQG3Wmd9SQQT7i7RVnuTPEiYEWHU3MSbxC1Tg==", - "requires": { - "punycode": "2.x.x" - } - }, - "topo": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/topo/-/topo-3.0.3.tgz", - "integrity": "sha512-IgpPtvD4kjrJ7CRA3ov2FhWQADwv+Tdqbsf1ZnPUSAtCJ9e1Z44MmoSGDXGk4IppoZA7jd/QRkNddlLJWlUZsQ==", - "requires": { - "hoek": "6.x.x" - } - } } }, "joi-browser": { @@ -3780,15 +3952,6 @@ "resolved": "https://registry.npmjs.org/joi-browser/-/joi-browser-13.4.0.tgz", "integrity": "sha512-TfzJd2JaJ/lg/gU+q5j9rLAjnfUNF9DUmXTP9w+GfmG79LjFOXFeM7hIFuXCBcZCivUDFwd9l1btTV9rhHumtQ==" }, - "joi-multiaddr": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/joi-multiaddr/-/joi-multiaddr-4.0.0.tgz", - "integrity": "sha512-c/QaICFM2nscoHfltv5XBfNBcUNMDBCus5arSwIrMIMJ/yRcKMrzDL1vCtckhtDczajMGkcu1vyRg17rPJsd6g==", - "requires": { - "mafmt": "^6.0.0", - "multiaddr": "^6.0.2" - } - }, "js-sha3": { "version": "0.8.0", "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz", @@ -3799,11 +3962,6 @@ "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-1.1.0.tgz", "integrity": "sha1-sBMHyym2GKHtJux56RH4A8TaAEA=" }, - "json-parse-better-errors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==" - }, "json-stringify-deterministic": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/json-stringify-deterministic/-/json-stringify-deterministic-1.0.1.tgz", @@ -3827,6 +3985,11 @@ "resolved": "https://registry.npmjs.org/just-debounce-it/-/just-debounce-it-1.1.0.tgz", "integrity": "sha512-87Nnc0qZKgBZuhFZjYVjSraic0x7zwjhaTMrCKlj0QYKH6lh0KbFzVnfu6LHan03NO7J8ygjeBeD0epejn5Zcg==" }, + "just-flatten-it": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/just-flatten-it/-/just-flatten-it-2.1.0.tgz", + "integrity": "sha512-mX3NUt/LF6EzohLJZXhywCwz2zqdhx6wVkEu6UfUx00lVQlSB6SBV1O+/Le15NfsimrWRD82H69ZkSVQZffhmw==" + }, "just-kebab-case": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/just-kebab-case/-/just-kebab-case-1.1.0.tgz", @@ -3866,6 +4029,11 @@ "resolved": "https://registry.npmjs.org/keypair/-/keypair-1.0.1.tgz", "integrity": "sha1-dgNxknCvtlZO04oiCHoG/Jqk6hs=" }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" + }, "latency-monitor": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/latency-monitor/-/latency-monitor-0.2.1.tgz", @@ -3897,29 +4065,13 @@ "integrity": "sha512-XI5MPzVNApjAyhQzphX8BkmKsKUxD4LdyK24iZeQGinBN9yTQT3bFlCBy/aVx2HrNcqQGsdot8ghrjyrvMCoEA==" }, "length-prefixed-stream": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/length-prefixed-stream/-/length-prefixed-stream-1.6.0.tgz", - "integrity": "sha512-gsJvrb5giDqil/ScQ7fEoplsI2Ch4DwnvnfTW2EGl9KBW6Ekzn8JSNESObqNAeZD8HkSjEMvc5XjhuB66fsSZQ==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/length-prefixed-stream/-/length-prefixed-stream-2.0.0.tgz", + "integrity": "sha512-dvjTuWTKWe0oEznQcG6a9osfiYknCs7DEFJMP88n9Y581IFhYh1sZIgAFcuDOojKB0G7ftPreKhh4D0kh/VPjQ==", "requires": { - "buffer-alloc-unsafe": "^1.0.0", - "readable-stream": "^2.0.0", + "inherits": "^2.0.3", + "readable-stream": "^3.1.1", "varint": "^5.0.0" - }, - "dependencies": { - "readable-stream": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - } } }, "level-codec": { @@ -3941,29 +4093,13 @@ } }, "level-iterator-stream": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/level-iterator-stream/-/level-iterator-stream-2.0.3.tgz", - "integrity": "sha512-I6Heg70nfF+e5Y3/qfthJFexhRw/Gi3bIymCoXAlijZdAcLaPuWSJs3KXyTYf23ID6g0o2QF62Yh+grOXY3Rig==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/level-iterator-stream/-/level-iterator-stream-4.0.1.tgz", + "integrity": "sha512-pSZWqXK6/yHQkZKCHrR59nKpU5iqorKM22C/BOHTb/cwNQ2EOZG+bovmFFGcOgaBoF3KxqJEI27YwewhJQTzsw==", "requires": { "inherits": "^2.0.1", - "readable-stream": "^2.0.5", + "readable-stream": "^3.0.2", "xtend": "^4.0.0" - }, - "dependencies": { - "readable-stream": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - } } }, "level-js": { @@ -4028,6 +4164,18 @@ "inherits": "^2.0.3" } }, + "encoding-down": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/encoding-down/-/encoding-down-5.0.4.tgz", + "integrity": "sha512-8CIZLDcSKxgzT+zX8ZVfgNbu8Md2wq/iqa1Y7zyVR18QBEAc0Nmzuvj/N5ykSKpfGzjM8qxbaFntLPwnVoUhZw==", + "requires": { + "abstract-leveldown": "^5.0.0", + "inherits": "^2.0.3", + "level-codec": "^9.0.0", + "level-errors": "^2.0.0", + "xtend": "^4.0.1" + } + }, "level-iterator-stream": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/level-iterator-stream/-/level-iterator-stream-3.0.1.tgz", @@ -4169,47 +4317,42 @@ } }, "levelup": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/levelup/-/levelup-2.0.2.tgz", - "integrity": "sha512-us+nTLUyd/eLnclYYddOCdAVw1hnymGx/9p4Jr5ThohStsjLqMVmbYiz6/SYFZEPXNF+AKQSvh6fA2e2KZpC8w==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/levelup/-/levelup-4.0.1.tgz", + "integrity": "sha512-l7KXOkINXHgNqmz0v9bxvRnMCUG4gmShFrzFSZXXhcqFnfvKAW8NerVsTICpZtVhGOMAmhY6JsVoVh/tUPBmdg==", "requires": { - "deferred-leveldown": "~3.0.0", - "level-errors": "~1.1.0", - "level-iterator-stream": "~2.0.0", + "deferred-leveldown": "~5.0.0", + "level-errors": "~2.0.0", + "level-iterator-stream": "~4.0.0", "xtend": "~4.0.0" - }, - "dependencies": { - "level-errors": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/level-errors/-/level-errors-1.1.2.tgz", - "integrity": "sha512-Sw/IJwWbPKF5Ai4Wz60B52yj0zYeqzObLh8k1Tk88jVmD51cJSKWSYpRyhVIvFzZdvsPqlH5wfhp/yxdsaQH4w==", - "requires": { - "errno": "~0.1.1" - } - } } }, + "leven": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-2.1.0.tgz", + "integrity": "sha1-wuep93IJTe6dNCAq6KzORoeHVYA=" + }, "libp2p": { - "version": "0.24.4", - "resolved": "https://registry.npmjs.org/libp2p/-/libp2p-0.24.4.tgz", - "integrity": "sha512-Od6we8H6P/sm3tuJCYFiP/PJ+O6ZNaNw0q5DuNw6obMHgKm/XSsJcDYzgfrPs1P9ASpAMTXAe0cYtjHRoQ9yPQ==", + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/libp2p/-/libp2p-0.25.3.tgz", + "integrity": "sha512-zeWUErS3izSjlm4FO0Wq6YpqUyml6Fl25Ahxu7gXBg/HJU6R+ujWuPke0O0MI8EHpCdcTxPF7TreD20h+LSWsw==", "requires": { - "async": "^2.6.1", - "debug": "^4.1.0", + "async": "^2.6.2", + "debug": "^4.1.1", "err-code": "^1.1.2", "fsm-event": "^2.1.0", - "joi": "^14.0.6", - "joi-browser": "^13.4.0", - "libp2p-connection-manager": "~0.0.2", - "libp2p-floodsub": "~0.15.1", - "libp2p-ping": "~0.8.3", - "libp2p-switch": "~0.41.3", - "libp2p-websockets": "~0.12.0", - "mafmt": "^6.0.2", - "multiaddr": "^6.0.2", - "peer-book": "~0.9.0", - "peer-id": "~0.12.0", - "peer-info": "~0.15.0" + "libp2p-connection-manager": "~0.1.0", + "libp2p-floodsub": "~0.16.0", + "libp2p-ping": "~0.8.5", + "libp2p-switch": "~0.42.9", + "libp2p-websockets": "~0.12.2", + "mafmt": "^6.0.7", + "multiaddr": "^6.0.6", + "once": "^1.4.0", + "peer-book": "~0.9.1", + "peer-id": "~0.12.2", + "peer-info": "~0.15.1", + "superstruct": "~0.6.0" }, "dependencies": { "debug": { @@ -4291,18 +4434,18 @@ } }, "libp2p-connection-manager": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/libp2p-connection-manager/-/libp2p-connection-manager-0.0.2.tgz", - "integrity": "sha512-G/OzMfxQe0lHx7ujibPqpFLCeMN9I5vNH0+Rs9zat6+uIT51Saupx95lyoyh5J8nh93ui2cNH7PQnwJMZVKa1A==", + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/libp2p-connection-manager/-/libp2p-connection-manager-0.1.0.tgz", + "integrity": "sha512-Md5UERlkD+KUsdUQRJE+B+UBq/KwOTo650z8Bl0zEfKjfnv/yMeFhucnf14suYBnzIIdGsckYn66xbeki31BLw==", "requires": { - "debug": "^3.1.0", - "latency-monitor": "^0.2.1" + "debug": "^4.1.1", + "latency-monitor": "~0.2.1" }, "dependencies": { "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", "requires": { "ms": "^2.1.1" } @@ -4351,21 +4494,20 @@ } }, "libp2p-floodsub": { - "version": "0.15.8", - "resolved": "https://registry.npmjs.org/libp2p-floodsub/-/libp2p-floodsub-0.15.8.tgz", - "integrity": "sha512-tsRTRRz9vg3iPqhSgkn4gotX635Hp/VMxPd4VQZlRvO8pZsfZwd61Qn9Vx8bES881RhRX0YpGM4Sa0izInHEWA==", + "version": "0.16.1", + "resolved": "https://registry.npmjs.org/libp2p-floodsub/-/libp2p-floodsub-0.16.1.tgz", + "integrity": "sha512-3Y+BMwlgit5LGKFUwEn5hNH9+WvhK4mkSEKe7mu0xtQ0KmFvwUpYt+UO/By1iZRpYDyEhQ8rya0ZJtYcqFkxvg==", "requires": { - "async": "^2.6.1", + "async": "^2.6.2", "bs58": "^4.0.1", "debug": "^4.1.1", - "length-prefixed-stream": "^1.6.0", - "libp2p-crypto": "~0.16.0", - "libp2p-pubsub": "~0.0.1", + "length-prefixed-stream": "^2.0.0", + "libp2p-crypto": "~0.16.1", + "libp2p-pubsub": "~0.1.0", "protons": "^1.0.1", - "pull-length-prefixed": "^1.3.1", + "pull-length-prefixed": "^1.3.2", "pull-pushable": "^2.2.0", - "pull-stream": "^3.6.9", - "time-cache": "~0.3.0" + "pull-stream": "^3.6.9" }, "dependencies": { "debug": { @@ -4397,9 +4539,9 @@ } }, "libp2p-kad-dht": { - "version": "0.14.13", - "resolved": "https://registry.npmjs.org/libp2p-kad-dht/-/libp2p-kad-dht-0.14.13.tgz", - "integrity": "sha512-mbR9m31m9/Ru1baraguDVEhGEt+OFy8kHGZVaULbTzLJNB53C05IW6NzzgC/v5d05fFFwnqDA9b1FYhGjr2gow==", + "version": "0.14.15", + "resolved": "https://registry.npmjs.org/libp2p-kad-dht/-/libp2p-kad-dht-0.14.15.tgz", + "integrity": "sha512-3bvTvOUxWqA2WNIRqct9uivHp7b3FpWivShfQKNojn7Fuz+2ern7+su0TZEgWTq2BTsQ9lfHA3OYsSh7EGg/Pw==", "requires": { "abort-controller": "^3.0.0", "async": "^2.6.2", @@ -4454,13 +4596,13 @@ } }, "libp2p-keychain": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/libp2p-keychain/-/libp2p-keychain-0.3.6.tgz", - "integrity": "sha512-pwZoPCNyMIhKqMXgCgr87JIjW8H/0I0EtclzHKwQh/Ej5EbZMX/GjvrkBiYplgBvrWFtOl76GokTTvW0bOPB8Q==", + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/libp2p-keychain/-/libp2p-keychain-0.4.1.tgz", + "integrity": "sha512-ZEEIBICSkWqbJEs3hAr/gAGjkoQb/H0VpJnK34w1xAyiTL+uZEAFmQUM6XaMMpuwZk4S+J3rbWXfVEGEYs94Pw==", "requires": { "async": "^2.6.1", "interface-datastore": "~0.6.0", - "libp2p-crypto": "~0.16.0", + "libp2p-crypto": "~0.16.1", "merge-options": "^1.0.1", "node-forge": "~0.7.6", "pull-stream": "^3.6.8", @@ -4468,15 +4610,32 @@ } }, "libp2p-mdns": { - "version": "0.12.2", - "resolved": "https://registry.npmjs.org/libp2p-mdns/-/libp2p-mdns-0.12.2.tgz", - "integrity": "sha512-EDAt4GcRGOp2VkeeeEBU5VSRKv2znnSIBBF1XOkOM/1lbKifrlUiW+9GvXoJJFfrtfAh0F2yQFSAgHD06Y3KcQ==", + "version": "0.12.3", + "resolved": "https://registry.npmjs.org/libp2p-mdns/-/libp2p-mdns-0.12.3.tgz", + "integrity": "sha512-jJvmRc2hd8inWRpWBGwJnu4t4Qxg/5LCMwivwTp3Rqf/NRHdqAuArT5VroFdgIiay9pQ9LjrA2zXIpT2ZLDusA==", "requires": { + "async": "^2.6.2", + "debug": "^4.1.1", "libp2p-tcp": "~0.13.0", - "multiaddr": "^6.0.2", + "multiaddr": "^6.0.6", "multicast-dns": "^7.2.0", - "peer-id": "~0.12.0", - "peer-info": "~0.15.0" + "peer-id": "~0.12.2", + "peer-info": "~0.15.1" + }, + "dependencies": { + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" + } } }, "libp2p-mplex": { @@ -4498,33 +4657,6 @@ "varint": "^5.0.0" }, "dependencies": { - "concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "requires": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - }, - "dependencies": { - "readable-stream": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - } - } - }, "debug": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", @@ -4551,9 +4683,9 @@ } }, "libp2p-pubsub": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/libp2p-pubsub/-/libp2p-pubsub-0.0.4.tgz", - "integrity": "sha512-j6cup6pQ1060Qhn8Lw2wzoGISyvQgvsFNiGngn5Yld8LaHKgP2T6wgJMEe0e69uEa3yqCWxe+QWFO5RcA1AJDw==", + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/libp2p-pubsub/-/libp2p-pubsub-0.1.0.tgz", + "integrity": "sha512-oppDCIZLmqODAgt1r625yO0j9wy7auro7B6/5bw2WN5ctqTsG791dn3SGVRLV8Dvd7uSfMlOaZ/Bkw8jle0Ytg==", "requires": { "async": "^2.6.2", "bs58": "^4.0.1", @@ -4576,16 +4708,6 @@ "ms": "^2.1.1" } }, - "length-prefixed-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/length-prefixed-stream/-/length-prefixed-stream-2.0.0.tgz", - "integrity": "sha512-dvjTuWTKWe0oEznQcG6a9osfiYknCs7DEFJMP88n9Y581IFhYh1sZIgAFcuDOojKB0G7ftPreKhh4D0kh/VPjQ==", - "requires": { - "inherits": "^2.0.3", - "readable-stream": "^3.1.1", - "varint": "^5.0.0" - } - }, "ms": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", @@ -4642,22 +4764,22 @@ } }, "libp2p-switch": { - "version": "0.41.7", - "resolved": "https://registry.npmjs.org/libp2p-switch/-/libp2p-switch-0.41.7.tgz", - "integrity": "sha512-56T9JlHydFkX91TzPP+YDqbI8W3JuLQTiKdtbg74P5lbse0VOaPzgDaDdSfXq9qGtlBHl9sG116Kz3U8GrCcvA==", + "version": "0.42.11", + "resolved": "https://registry.npmjs.org/libp2p-switch/-/libp2p-switch-0.42.11.tgz", + "integrity": "sha512-F0iIZXG8snM/ADwD9bsCzwJzxYv/tF4jHsn7n9MUypAN3aESJtexiI9KeDisRRY8rlwvUzwMZLx4C1NE5PFTxA==", "requires": { "async": "^2.6.2", - "bignumber.js": "^8.0.2", + "bignumber.js": "^8.1.1", "class-is": "^1.1.0", "debug": "^4.1.1", "err-code": "^1.1.2", "fsm-event": "^2.1.0", "hashlru": "^2.3.0", "interface-connection": "~0.3.3", - "libp2p-circuit": "~0.3.4", - "libp2p-identify": "~0.7.5", + "libp2p-circuit": "~0.3.6", + "libp2p-identify": "~0.7.6", "moving-average": "^1.0.0", - "multiaddr": "^6.0.4", + "multiaddr": "^6.0.6", "multistream-select": "~0.14.4", "once": "^1.4.0", "peer-id": "~0.12.2", @@ -4754,6 +4876,14 @@ "webrtcsupport": "github:ipfs/webrtcsupport" }, "dependencies": { + "boom": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/boom/-/boom-5.2.0.tgz", + "integrity": "sha512-Z5BTk6ZRe4tXXQlkqftmsAUANpXmuwlsF5Oov8ThoMbQRzdGTA1ngYRW160GexgOgjsFOKJz0LYhoNi+2AMBUw==", + "requires": { + "hoek": "4.x.x" + } + }, "debug": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", @@ -4762,10 +4892,59 @@ "ms": "^2.1.1" } }, + "hapi": { + "version": "16.7.0", + "resolved": "https://registry.npmjs.org/hapi/-/hapi-16.7.0.tgz", + "integrity": "sha512-UeMX1LMWmHEIgMlwZGK/3lhI7X0VRvOioVply0Y9qF+/O5woGdQzNB8ZmDnLOBjnB6bdWWHyo5DEamuCsE1vmg==", + "requires": { + "accept": "2.x.x", + "ammo": "2.x.x", + "boom": "5.x.x", + "call": "4.x.x", + "catbox": "7.x.x", + "catbox-memory": "2.x.x", + "cryptiles": "3.x.x", + "heavy": "4.x.x", + "hoek": "4.x.x", + "iron": "4.x.x", + "items": "2.x.x", + "joi": "11.x.x", + "mimos": "3.x.x", + "podium": "1.x.x", + "shot": "3.x.x", + "somever": "1.x.x", + "statehood": "5.x.x", + "subtext": "5.x.x", + "topo": "2.x.x" + } + }, + "hoek": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/hoek/-/hoek-4.2.1.tgz", + "integrity": "sha512-QLg82fGkfnJ/4iy1xZ81/9SIJiq1NGFUMGs6ParyjBZr6jW2Ufj/snDqTHixNlHdPNwN2RLVD0Pi3igeK9+JfA==" + }, + "joi": { + "version": "11.4.0", + "resolved": "https://registry.npmjs.org/joi/-/joi-11.4.0.tgz", + "integrity": "sha512-O7Uw+w/zEWgbL6OcHbyACKSj0PkQeUgmehdoXVSxt92QFCq4+1390Rwh5moI2K/OgC7D8RHRZqHZxT2husMJHA==", + "requires": { + "hoek": "4.x.x", + "isemail": "3.x.x", + "topo": "2.x.x" + } + }, "ms": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" + }, + "topo": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/topo/-/topo-2.0.2.tgz", + "integrity": "sha1-zVYVdSU5BXwNwEkaYhw7xvvh0YI=", + "requires": { + "hoek": "4.x.x" + } } } }, @@ -4861,17 +5040,6 @@ } } }, - "load-json-file": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", - "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^4.0.0", - "pify": "^3.0.0", - "strip-bom": "^3.0.0" - } - }, "localstorage-down": { "version": "0.6.7", "resolved": "https://registry.npmjs.org/localstorage-down/-/localstorage-down-0.6.7.tgz", @@ -5050,11 +5218,6 @@ "safe-buffer": "^5.1.2" } }, - "media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" - }, "mem": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/mem/-/mem-4.3.0.tgz", @@ -5088,11 +5251,6 @@ } } }, - "merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" - }, "merge-options": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/merge-options/-/merge-options-1.0.1.tgz", @@ -5148,16 +5306,6 @@ } } }, - "methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" - }, - "mime": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz", - "integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==" - }, "mime-db": { "version": "1.40.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz", @@ -5220,6 +5368,22 @@ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" }, + "mixin-object": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mixin-object/-/mixin-object-2.0.1.tgz", + "integrity": "sha1-T7lJRB2rGCVA8f4DW6YOGUel5X4=", + "requires": { + "for-in": "^0.1.3", + "is-extendable": "^0.1.1" + }, + "dependencies": { + "for-in": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-0.1.8.tgz", + "integrity": "sha1-2Hc5COMSVhCZUrH9ubP6hn0ndeE=" + } + } + }, "mkdirp": { "version": "0.5.1", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", @@ -5251,6 +5415,11 @@ "resolved": "https://registry.npmjs.org/moving-average/-/moving-average-1.0.0.tgz", "integrity": "sha512-97cgMz0U2zciiDp4xRl/n+MYgrm9l7UiYbtsBLPr0rhw6KH3m4LyK2w4d96V6+UwKo+ph7KtQSoL2qgnqZVgvA==" }, + "mri": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/mri/-/mri-1.1.4.tgz", + "integrity": "sha512-6y7IjGPm8AzlvoUrwAaw1tLnUBudaS3752vcd8JtrpGGQn+rXIe63LFVHm/YMwtqAuh+LJPCFdlLYPWM1nYn6w==" + }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", @@ -5383,42 +5552,6 @@ "resolved": "https://registry.npmjs.org/napi-macros/-/napi-macros-1.8.2.tgz", "integrity": "sha512-Tr0DNY4RzTaBG2W2m3l7ZtFuJChTH6VZhXVhkGGjF/4cZTt+i8GcM9ozD+30Lmr4mDoZ5Xx34t2o4GJqYWDGcg==" }, - "ndjson": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/ndjson/-/ndjson-1.5.0.tgz", - "integrity": "sha1-rmA7NrE0vOw0e0UkIrC/mNWDLsg=", - "requires": { - "json-stringify-safe": "^5.0.1", - "minimist": "^1.2.0", - "split2": "^2.1.0", - "through2": "^2.0.3" - }, - "dependencies": { - "readable-stream": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "requires": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - } - } - }, "negotiator": { "version": "0.6.2", "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", @@ -5482,17 +5615,6 @@ "resolved": "https://registry.npmjs.org/noop-logger/-/noop-logger-0.1.1.tgz", "integrity": "sha1-lKKxYzxPExdVMAfYlm/Q6EG2pMI=" }, - "normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "requires": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, "npm-run-path": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", @@ -5537,14 +5659,6 @@ "resolved": "https://registry.npmjs.org/observable-webworkers/-/observable-webworkers-1.0.0.tgz", "integrity": "sha512-+cECwCR8IEh8UY5nefQVLO9Cydqpk1izO+o7BABmKjXfJZyEOzBWY3ss5jbOPM6KmEa9aQExvAtTW6tVTOsNAQ==" }, - "on-finished": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", - "requires": { - "ee-first": "1.1.1" - } - }, "once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", @@ -5946,15 +6060,6 @@ "semver": "^5.1.0" } }, - "parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", - "requires": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - } - }, "parseqs": { "version": "0.0.5", "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.5.tgz", @@ -5971,11 +6076,6 @@ "better-assert": "~1.0.0" } }, - "parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" - }, "path-exists": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", @@ -5996,24 +6096,6 @@ "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=" }, - "path-parse": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", - "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==" - }, - "path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" - }, - "path-type": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", - "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", - "requires": { - "pify": "^3.0.0" - } - }, "peer-book": { "version": "0.9.1", "resolved": "https://registry.npmjs.org/peer-book/-/peer-book-0.9.1.tgz", @@ -6086,6 +6168,40 @@ "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" }, + "pino": { + "version": "5.12.3", + "resolved": "https://registry.npmjs.org/pino/-/pino-5.12.3.tgz", + "integrity": "sha512-/PiX7QXOMZz7edRVGm/apt22nkdRByB6ki0ftWcDpHjjNmjnE7UubNd7NeDX7cBey27obxvBvZy3oQuJbz1+Ag==", + "requires": { + "fast-redact": "^1.4.4", + "fast-safe-stringify": "^2.0.6", + "flatstr": "^1.0.9", + "pino-std-serializers": "^2.3.0", + "quick-format-unescaped": "^3.0.2", + "sonic-boom": "^0.7.3" + } + }, + "pino-pretty": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/pino-pretty/-/pino-pretty-2.6.1.tgz", + "integrity": "sha512-e/CWtKLidqkr7sinfIVVcsfcHgnFVlGvuEfKuuPFnxBo+9dZZsmgF8a9Rj7SYJ5LMZ8YBxNY9Ca46eam4ajKtQ==", + "requires": { + "args": "^5.0.0", + "chalk": "^2.3.2", + "dateformat": "^3.0.3", + "fast-json-parse": "^1.0.3", + "fast-safe-stringify": "^2.0.6", + "jmespath": "^0.15.0", + "pump": "^3.0.0", + "readable-stream": "^3.0.6", + "split2": "^3.0.0" + } + }, + "pino-std-serializers": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-2.4.1.tgz", + "integrity": "sha512-v/JglhO0aFcvkMV9VUxhgyuJo8K1si857Ww86Tx8H2cjC/kp0ndzzcF6Vbxr4RgKFYJdHfLVpEuD55znMZuxnw==" + }, "podium": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/podium/-/podium-1.3.0.tgz", @@ -6101,6 +6217,11 @@ "resolved": "https://registry.npmjs.org/hoek/-/hoek-4.2.1.tgz", "integrity": "sha512-QLg82fGkfnJ/4iy1xZ81/9SIJiq1NGFUMGs6ParyjBZr6jW2Ufj/snDqTHixNlHdPNwN2RLVD0Pi3igeK9+JfA==" }, + "isemail": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/isemail/-/isemail-2.2.1.tgz", + "integrity": "sha1-A1PT2aYpUQgMJiwqoKQrjqjp4qY=" + }, "joi": { "version": "10.6.0", "resolved": "https://registry.npmjs.org/joi/-/joi-10.6.0.tgz", @@ -6111,6 +6232,14 @@ "items": "2.x.x", "topo": "2.x.x" } + }, + "topo": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/topo/-/topo-2.0.2.tgz", + "integrity": "sha1-zVYVdSU5BXwNwEkaYhw7xvvh0YI=", + "requires": { + "hoek": "4.x.x" + } } } }, @@ -6232,15 +6361,6 @@ "varint": "^5.0.0" } }, - "proxy-addr": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.5.tgz", - "integrity": "sha512-t/7RxHXPH6cJtP0pRG6smSr9QJidhB+3kXu0KgXnbGYMgzEnUxRQ4/LDdfOwZEMyIh3/xHb8PX3t+lfL9z+YVQ==", - "requires": { - "forwarded": "~0.1.2", - "ipaddr.js": "1.9.0" - } - }, "prr": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", @@ -6482,6 +6602,11 @@ "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" }, + "quick-format-unescaped": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/quick-format-unescaped/-/quick-format-unescaped-3.0.2.tgz", + "integrity": "sha512-FXTaCkwvpIlkdKeGDNgcq07SXWS383noQUuZjvdE1QcTt+eLuqof6/BDiEPqB59FWLie/l91+HtlJSw7iCViSA==" + }, "rabin": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/rabin/-/rabin-1.6.0.tgz", @@ -6532,22 +6657,6 @@ "safe-buffer": "^5.1.0" } }, - "range-parser": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", - "integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4=" - }, - "raw-body": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.3.3.tgz", - "integrity": "sha512-9esiElv1BrZoI3rCDuOuKCBRbuApGGaDPQfjSflGxdy4oyzqghxu6klEkkVIvBje+FF0BX9coEv8KqW6X/7njw==", - "requires": { - "bytes": "3.0.0", - "http-errors": "1.6.3", - "iconv-lite": "0.4.23", - "unpipe": "1.0.0" - } - }, "rc": { "version": "1.2.8", "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", @@ -6559,25 +6668,6 @@ "strip-json-comments": "~2.0.1" } }, - "read-pkg": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", - "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", - "requires": { - "load-json-file": "^4.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^3.0.0" - } - }, - "read-pkg-up": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-4.0.0.tgz", - "integrity": "sha512-6etQSH7nJGsK0RbG/2TeDzZFa8shjQ1um+SwQQ5cwKy0dhSXdOncEhb1CPpvQG4h7FyOV6EB6YlV0yJvZQNAkA==", - "requires": { - "find-up": "^3.0.0", - "read-pkg": "^3.0.0" - } - }, "readable-stream": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.3.0.tgz", @@ -6635,14 +6725,6 @@ "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=" }, - "resolve": { - "version": "1.10.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.10.1.tgz", - "integrity": "sha512-KuIe4mf++td/eFb6wkaPbMDnP6kObCaEtIDuHOUED6MNUo4K670KZUHuuvYPZDxNF0WVLw49n06M2m2dXphEzA==", - "requires": { - "path-parse": "^1.0.6" - } - }, "retimer": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/retimer/-/retimer-2.0.0.tgz", @@ -6701,11 +6783,6 @@ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, "sanitize-filename": { "version": "1.6.1", "resolved": "https://registry.npmjs.org/sanitize-filename/-/sanitize-filename-1.6.1.tgz", @@ -6752,37 +6829,6 @@ "semver": "^5.0.3" } }, - "send": { - "version": "0.16.2", - "resolved": "https://registry.npmjs.org/send/-/send-0.16.2.tgz", - "integrity": "sha512-E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw==", - "requires": { - "debug": "2.6.9", - "depd": "~1.1.2", - "destroy": "~1.0.4", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "~1.6.2", - "mime": "1.4.1", - "ms": "2.0.0", - "on-finished": "~2.3.0", - "range-parser": "~1.2.0", - "statuses": "~1.4.0" - } - }, - "serve-static": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.13.2.tgz", - "integrity": "sha512-p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw==", - "requires": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.2", - "send": "0.16.2" - } - }, "set-blocking": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", @@ -6793,11 +6839,6 @@ "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.4.tgz", "integrity": "sha1-IOgd5iLUoCWIzgyNqJc8vPHTE48=" }, - "setprototypeof": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", - "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==" - }, "sha.js": { "version": "2.4.11", "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", @@ -6807,6 +6848,23 @@ "safe-buffer": "^5.0.1" } }, + "shallow-clone": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-1.0.0.tgz", + "integrity": "sha512-oeXreoKR/SyNJtRJMAKPDSvd28OqEwG4eR/xc856cRGBII7gX9lvAqDxusPm0846z/w/hWYjI1NpKwJ00NHzRA==", + "requires": { + "is-extendable": "^0.1.1", + "kind-of": "^5.0.0", + "mixin-object": "^2.0.1" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" + } + } + }, "shebang-command": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", @@ -6842,6 +6900,11 @@ "resolved": "https://registry.npmjs.org/hoek/-/hoek-4.2.1.tgz", "integrity": "sha512-QLg82fGkfnJ/4iy1xZ81/9SIJiq1NGFUMGs6ParyjBZr6jW2Ufj/snDqTHixNlHdPNwN2RLVD0Pi3igeK9+JfA==" }, + "isemail": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/isemail/-/isemail-2.2.1.tgz", + "integrity": "sha1-A1PT2aYpUQgMJiwqoKQrjqjp4qY=" + }, "joi": { "version": "10.6.0", "resolved": "https://registry.npmjs.org/joi/-/joi-10.6.0.tgz", @@ -6852,6 +6915,14 @@ "items": "2.x.x", "topo": "2.x.x" } + }, + "topo": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/topo/-/topo-2.0.2.tgz", + "integrity": "sha1-zVYVdSU5BXwNwEkaYhw7xvvh0YI=", + "requires": { + "hoek": "4.x.x" + } } } }, @@ -7059,6 +7130,14 @@ } } }, + "sonic-boom": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-0.7.3.tgz", + "integrity": "sha512-A9EyoIeLD+g9vMLYQKjNCatJtAKdBQMW03+L8ZWWX/A6hq+srRCwdqHrBD1R8oSMLXov3oHN13dljtZf12q2Ow==", + "requires": { + "flatstr": "^1.0.9" + } + }, "sort-keys": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-2.0.0.tgz", @@ -7072,34 +7151,6 @@ "resolved": "https://registry.npmjs.org/sparse-array/-/sparse-array-1.3.2.tgz", "integrity": "sha512-ZT711fePGn3+kQyLuv1fpd3rNSkNF8vd5Kv2D+qnOANeyKs3fx6bUMGWRPvgTTcYV64QMqZKZwcuaQSP3AZ0tg==" }, - "spdx-correct": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz", - "integrity": "sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==", - "requires": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-exceptions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz", - "integrity": "sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==" - }, - "spdx-expression-parse": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", - "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", - "requires": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-license-ids": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.4.tgz", - "integrity": "sha512-7j8LYJLeY/Yb6ACbQ7F76qy5jHkp0U6jgBfJsk97bwWlVUnUWsAgpyaCvo17h0/RQGnQ036tVDomiwoI4pDkQA==" - }, "split": { "version": "0.3.3", "resolved": "https://registry.npmjs.org/split/-/split-0.3.3.tgz", @@ -7109,36 +7160,11 @@ } }, "split2": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/split2/-/split2-2.2.0.tgz", - "integrity": "sha512-RAb22TG39LhI31MbreBgIuKiIKhVsawfTgEGqKHTK87aG+ul/PB8Sqoi3I7kVdRWiCfrKxK3uo4/YUkpNvhPbw==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/split2/-/split2-3.1.1.tgz", + "integrity": "sha512-emNzr1s7ruq4N+1993yht631/JH+jaj0NYBosuKmLcq+JkGQ9MmTw1RB1fGaTCzUuseRIClrlSLHRNYGwWQ58Q==", "requires": { - "through2": "^2.0.2" - }, - "dependencies": { - "readable-stream": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "requires": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - } + "readable-stream": "^3.0.0" } }, "sprintf-js": { @@ -7178,14 +7204,6 @@ "resolved": "https://registry.npmjs.org/hoek/-/hoek-4.2.1.tgz", "integrity": "sha512-QLg82fGkfnJ/4iy1xZ81/9SIJiq1NGFUMGs6ParyjBZr6jW2Ufj/snDqTHixNlHdPNwN2RLVD0Pi3igeK9+JfA==" }, - "isemail": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/isemail/-/isemail-3.2.0.tgz", - "integrity": "sha512-zKqkK+O+dGqevc93KNsbZ/TqTUFd46MwWjYOoMrjIMZ51eU7DtQG3Wmd9SQQT7i7RVnuTPEiYEWHU3MSbxC1Tg==", - "requires": { - "punycode": "2.x.x" - } - }, "joi": { "version": "12.0.0", "resolved": "https://registry.npmjs.org/joi/-/joi-12.0.0.tgz", @@ -7195,25 +7213,17 @@ "isemail": "3.x.x", "topo": "2.x.x" } + }, + "topo": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/topo/-/topo-2.0.2.tgz", + "integrity": "sha1-zVYVdSU5BXwNwEkaYhw7xvvh0YI=", + "requires": { + "hoek": "4.x.x" + } } } }, - "statuses": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz", - "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==" - }, - "stream-http": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-3.0.0.tgz", - "integrity": "sha512-JELJfd+btL9GHtxU3+XXhg9NLYrKFnhybfvRuDghtyVkOFydz3PKNT1df07AMr88qW03WHF+FSV0PySpXignCA==", - "requires": { - "builtin-status-codes": "^3.0.0", - "inherits": "^2.0.1", - "readable-stream": "^3.0.6", - "xtend": "^4.0.0" - } - }, "stream-to-blob": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/stream-to-blob/-/stream-to-blob-1.0.1.tgz", @@ -7231,16 +7241,16 @@ "pull-stream": "^3.2.3" } }, - "streamifier": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/streamifier/-/streamifier-0.1.1.tgz", - "integrity": "sha1-l+mNj6TRBdYqJpHR3AfoINuN/E8=" - }, "streamsearch": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-0.1.2.tgz", "integrity": "sha1-gIudDlb8Jz2Am6VzOOkpkZoanxo=" }, + "strftime": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/strftime/-/strftime-0.10.0.tgz", + "integrity": "sha1-s/D6QZKVICpaKJ9ta+n0kJphcZM=" + }, "string-width": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", @@ -7266,11 +7276,6 @@ "ansi-regex": "^3.0.0" } }, - "strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=" - }, "strip-eof": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", @@ -7317,6 +7322,15 @@ } } }, + "superstruct": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/superstruct/-/superstruct-0.6.1.tgz", + "integrity": "sha512-LDbOKL5sNbOJ00Q36iYRhSexKIptZje0/mhNznnz04wT9CmsPDZg/K/UV1dgYuCwNMuOBHTbVROZsGB9EhhK4w==", + "requires": { + "clone-deep": "^2.0.1", + "kind-of": "^6.0.1" + } + }, "supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", @@ -7502,15 +7516,15 @@ "integrity": "sha1-xJ/LXIdVW+G0pd9+uHEB1beLydw=" }, "tiny-secp256k1": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/tiny-secp256k1/-/tiny-secp256k1-1.1.0.tgz", - "integrity": "sha512-DIl0SCUIVcPrk/oOiq8/YgQ69Beayw4XSW2icyXJN8xfKMmxo5XM8gXVG1Ex+rYsHg2xuEpNFeeU6J4CtqQFrA==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/tiny-secp256k1/-/tiny-secp256k1-1.1.1.tgz", + "integrity": "sha512-jA9WalQuhKun1svJrAVi9Vu8aUWKMfR7nMV903kHjrHTTY/IFa0petSq+Jk/Mv447dGD9LC8fGsmGRubBbcNng==", "requires": { "bindings": "^1.3.0", "bn.js": "^4.11.8", "create-hmac": "^1.1.7", "elliptic": "^6.4.0", - "nan": "^2.12.1" + "nan": "^2.13.2" } }, "to-array": { @@ -7524,18 +7538,11 @@ "integrity": "sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg==" }, "topo": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/topo/-/topo-2.0.2.tgz", - "integrity": "sha1-zVYVdSU5BXwNwEkaYhw7xvvh0YI=", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/topo/-/topo-3.0.3.tgz", + "integrity": "sha512-IgpPtvD4kjrJ7CRA3ov2FhWQADwv+Tdqbsf1ZnPUSAtCJ9e1Z44MmoSGDXGk4IppoZA7jd/QRkNddlLJWlUZsQ==", "requires": { - "hoek": "4.x.x" - }, - "dependencies": { - "hoek": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/hoek/-/hoek-4.2.1.tgz", - "integrity": "sha512-QLg82fGkfnJ/4iy1xZ81/9SIJiq1NGFUMGs6ParyjBZr6jW2Ufj/snDqTHixNlHdPNwN2RLVD0Pi3igeK9+JfA==" - } + "hoek": "6.x.x" } }, "traverse": { @@ -7564,15 +7571,6 @@ "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.1.tgz", "integrity": "sha512-kcoMoKTPYnoeS50tzoqjPY3Uv9axeuuFAZY9M/9zFnhoVvRfxz9K29IMPD7jGmt2c8SW7i3gT9WqDl2+nV7p4A==" }, - "type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "requires": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - } - }, "typedarray": { "version": "0.0.6", "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", @@ -7609,11 +7607,6 @@ "crypto-random-string": "^1.0.0" } }, - "unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" - }, "unzip-response": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/unzip-response/-/unzip-response-2.0.1.tgz", @@ -7636,6 +7629,15 @@ "xdg-basedir": "^3.0.0" } }, + "uri-to-multiaddr": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/uri-to-multiaddr/-/uri-to-multiaddr-3.0.1.tgz", + "integrity": "sha512-77slJiNB/IxM35zgflBEgp8T8ywpyYAbEh8Ezdnq7kAuA6TRg6wfvNTi4Uixfh6CsPv9K2fAkI5+E4C2dw3tXA==", + "requires": { + "is-ip": "^2.0.0", + "multiaddr": "^6.0.3" + } + }, "url-parse-lax": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz", @@ -7678,25 +7680,11 @@ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" }, - "utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" - }, "uuid": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==" }, - "validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "requires": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, "varint": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/varint/-/varint-5.0.0.tgz", @@ -7718,11 +7706,6 @@ "safe-buffer": "^5.1.1" } }, - "vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" - }, "vise": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/vise/-/vise-2.0.2.tgz", @@ -7915,22 +7898,65 @@ "integrity": "sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A==" }, "yargs": { - "version": "12.0.5", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.5.tgz", - "integrity": "sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==", + "version": "13.2.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.2.2.tgz", + "integrity": "sha512-WyEoxgyTD3w5XRpAQNYUB9ycVH/PQrToaTXdYXRdOXvEy1l19br+VJsc0vcO8PTGg5ro/l/GY7F/JMEBmI0BxA==", "requires": { "cliui": "^4.0.0", - "decamelize": "^1.2.0", "find-up": "^3.0.0", - "get-caller-file": "^1.0.1", - "os-locale": "^3.0.0", + "get-caller-file": "^2.0.1", + "os-locale": "^3.1.0", "require-directory": "^2.1.1", - "require-main-filename": "^1.0.1", + "require-main-filename": "^2.0.0", "set-blocking": "^2.0.0", - "string-width": "^2.0.0", + "string-width": "^3.0.0", "which-module": "^2.0.0", - "y18n": "^3.2.1 || ^4.0.0", - "yargs-parser": "^11.1.1" + "y18n": "^4.0.0", + "yargs-parser": "^13.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" + }, + "require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==" + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "requires": { + "ansi-regex": "^4.1.0" + } + }, + "yargs-parser": { + "version": "13.1.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.0.tgz", + "integrity": "sha512-Yq+32PrijHRri0vVKQEm+ys8mbqWjLiwQkMFNXEENutzLPP0bE4Lcd4iA3OQY5HF+GD3xXxf0MEHb8E4/SA3AA==", + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + } } }, "yargs-parser": { diff --git a/package.json b/package.json index 54ff7fd..39fa584 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "orbit-db-http-api", - "version": "0.1.0", + "version": "0.2.0-rc.1", "description": "An HTTP API Server for the OrbitDB distributed peer-to-peer database", "main": "src/cli.js", "keywords": [ @@ -26,10 +26,11 @@ "node": ">=10.0.0" }, "dependencies": { - "docopt": "^0.6.2", - "express": "^4.16.4", - "ipfs": "~0.35.0", + "docopt": "~0.6.2", + "hapi": ">17.0.0", + "http2":"^3.2.0", + "ipfs": "^0.35.0", "ipfs-http-client": "^30.0.0", - "orbit-db": "~0.20.0" + "orbit-db": "^0.20.0" } } diff --git a/src/cli.js b/src/cli.js index 13e763f..858239b 100755 --- a/src/cli.js +++ b/src/cli.js @@ -1,9 +1,9 @@ #!/usr/bin/env node -const fs = require('fs'); -const {docopt} = require('docopt'); -const version = require('../package.json').version; - +const fs = require('fs'); +const {docopt} = require('docopt'); +const version = require('../package.json').version; +const http2 = require('http2') class Cli { constructor() { @@ -14,13 +14,15 @@ OrbitDb HTTP API v${version} Usage: cli.js local [--ipfs-conf=IPFS_CONF] [options] - cli.js api --ipfs-host=HOST [--ipfs-port=IPFS_PORT] [options] + cli.js api [--ipfs-host=HOST] [--ipfs-port=IPFS_PORT] [options] cli.js -h | --help | --version Options: --api-port=API_PORT Listen for api calls on API_PORT --orbitdb-dir=ORBITDB_DIR Store orbit-db files in ORBITDB_DIR --orbitdb-conf=ORBITDB_CONF Load orbit-db conf options from ORBITDB_CONF + --https-cert=HTTPS_CERT Path to https cert + --https-key=HTTPS_KEY Path to https cert key `; @@ -49,6 +51,23 @@ async function init () { }); } + api_port = args['--api-port'] || process.env.API_PORT || 3000 + let cert, cert_key, server_opts + + cert = args['--https-cert'] || process.env.HTTPS_CERT + cert_key = args['--https-key'] || process.env.HTTPS_KEY + + if (!cert) throw new Error('--https-cert is required'); + if (!cert_key) throw new Error('--https-key is required'); + + server_opts = { + api_port: api_port, + http2_opts: { + key: fs.readFileSync(cert_key), + cert: fs.readFileSync(cert) + } + } + switch(true){ case args['local']: const api_factory_local = require('./factory/ipfs-local.js'); @@ -61,24 +80,23 @@ async function init () { ipfs_opts = JSON.parse(data); }); } - orbitdb_api = await api_factory_local(ipfs_opts, orbitdb_dir, orbitdb_opts) + orbitdb_api = await api_factory_local(ipfs_opts, orbitdb_dir, orbitdb_opts, server_opts) break; case args['api']: const api_factory_remote = require('./factory/ipfs-api.js'); ipfs_host = args['--ipfs-host'] || process.env.IPFS_HOST; - if (!ipfs_host) throw new Error ('Missing IPFS_HOST'); + if (!ipfs_host) throw new Error ('--ipfs-host is required'); ipfs_port = args['--ipfs-port'] || process.env.IPFS_PORT || 5001; - orbitdb_api = await api_factory_remote(ipfs_host, ipfs_port, orbitdb_dir, orbitdb_opts) + orbitdb_api = await api_factory_remote(ipfs_host, ipfs_port, orbitdb_dir, orbitdb_opts, server_opts) break; - default: - throw new Error('Unrecognised ipfs type'); + default: + throw new Error("Unrecognised ipfs type. Please specify either 'api' or 'local'"); } - api_port = args['--api-port'] || process.env.API_PORT || 3000 - orbitdb_api.listen(api_port, () => { - console.log(`Server running on port ${api_port}`); - }); + + await orbitdb_api.server.start() + console.log(`Server running on port ${api_port}`); } catch(err) { console.error(err); diff --git a/src/factory/ipfs-api.js b/src/factory/ipfs-api.js index fa5b8c7..359eee8 100644 --- a/src/factory/ipfs-api.js +++ b/src/factory/ipfs-api.js @@ -4,7 +4,7 @@ const DBManager = require('../lib/db-manager.js') const OrbitApi = require('../lib/orbitdb-api.js') -async function api_factory(ipfs_host, ipfs_port, orbitdb_dir, orbitdb_opts) { +async function api_factory(ipfs_host, ipfs_port, orbitdb_dir, orbitdb_opts, server_opts) { let ipfs let orbitdb let dbm @@ -14,7 +14,7 @@ async function api_factory(ipfs_host, ipfs_port, orbitdb_dir, orbitdb_opts) { ipfs = new IpfsApi(ipfs_host, ipfs_port) orbitdb = await OrbitDB.createInstance(ipfs, orbitdb_opts) dbm = new DBManager(orbitdb) - orbitdb_api = new OrbitApi(dbm) + orbitdb_api = new OrbitApi(dbm, server_opts) return orbitdb_api } diff --git a/src/factory/ipfs-local.js b/src/factory/ipfs-local.js index a003f19..d552269 100644 --- a/src/factory/ipfs-local.js +++ b/src/factory/ipfs-local.js @@ -4,7 +4,7 @@ const DBManager = require('../lib/db-manager.js') const OrbitApi = require('../lib/orbitdb-api.js') -async function api_factory(ipfs_opts, orbitdb_dir, orbitdb_opts) { +async function api_factory(ipfs_opts, orbitdb_dir, orbitdb_opts, server_opts) { let ipfs, orbitdb, dbm, orbitdb_api, ipfs_defaults ipfs_defaults = { @@ -31,7 +31,7 @@ async function api_factory(ipfs_opts, orbitdb_dir, orbitdb_opts) { }).catch((ex) => {throw ex}) orbitdb = await OrbitDB.createInstance(ipfs, orbitdb_opts) dbm = new DBManager(orbitdb) - orbitdb_api = new OrbitApi(dbm) + orbitdb_api = new OrbitApi(dbm, server_opts) return orbitdb_api } diff --git a/src/lib/orbitdb-api.js b/src/lib/orbitdb-api.js index e68d2b1..bd458e2 100644 --- a/src/lib/orbitdb-api.js +++ b/src/lib/orbitdb-api.js @@ -1,118 +1,28 @@ -const Express = require('express'); +const Hapi = require('hapi'); +const Boom = require('boom'); +const Http2 = require('http2'); -const asyncMiddleware = fn => -(req, res, next) => { - Promise.resolve(fn(req, res, next)) - .catch(next); -}; - -class OrbitdbAPI extends Express { - constructor (dbm) { - super(); - - this.use(Express.urlencoded({extended: true })); - this.use(Express.json()); - - this.get('/dbs', (req, res, next) => { - try { - return res.json(dbm.db_list()); - } catch(err) { - next(err) - } - }); - - this.post('/db', asyncMiddleware( async (req, res, next) => { - let db - db = await dbm.get(req.body.dbname, req.body) - return res.json(dbm.db_info(db.dbname)); - })); - - this.post('/db/:dbname', asyncMiddleware( async (req, res, next) => { - let db - db = await dbm.get(req.params.dbname, req.body) - return res.json(dbm.db_info(db.dbname)); - })); - - this.get('/db/:dbname', (req, res, next) => { - try { - return res.json(dbm.db_info(req.params.dbname)); - } catch(err) { - next(err) - } - }); - - this.delete('/db/:dbname', asyncMiddleware( async (req, res, next) => { - await dbm.db_list_remove(req.params.dbname) - return res.json('') - })) - this.delete('/db/:dbname/:item', asyncMiddleware( async (req, res, next) => { - let db, hash - db = await dbm.get(req.params.dbname) - if (db.del) { - hash = await db.del(req.params.item) - } else if (db.remove) { - hash = await db.remove(req.params.item) - } else { - throw new Error(`DB type ${db.type} does not support removing data`) - } - return res.json(hash) - })); - - var db_put = asyncMiddleware( async (req, res, next) => { - let db, hash - db = await dbm.get(req.params.dbname) - - if (db.type == 'keyvalue') { - let params, key, value - params = req.body; - if (!params['key']) { - [key,value] = [Object.keys(params)[0], Object.values(params)[0]] - } else { - ({key,value} = params) - } - hash = await db.put(key, value) - } else { - hash = await db.put(req.body) - } - - return res.json(hash) - }); - - this.post('/db/:dbname/put', db_put); - this.put('/db/:dbname/put', db_put); - - var db_add = asyncMiddleware( async (req, res, next) => { - let db, hash - db = await dbm.get(req.params.dbname) - hash = await db.add(req.body) - return res.json(hash) - }); - - this.post('/db/:dbname/add', db_add); - this.put('/db/:dbname/add', db_add); - - var db_inc = asyncMiddleware( async (req, res, next) => { - let db, hash - db = await dbm.get(req.params.dbname) - hash = await db.inc(parseInt(req.body.val || 1)) - return res.json(hash) - }); +const asyncMiddleware = fn => + (request, h) => Promise.resolve(fn(request, h)) + .catch((err) => ErrorHandler(err, h)); - this.post('/db/:dbname/inc', db_inc); - this.put('/db/:dbname/inc', db_inc); +const ErrorHandler = (err, _h) => { + console.error(err); + return Boom.badImplementation(); +}; - var db_inc_val = asyncMiddleware( async (req, res, next) => { - let db, hash - db = await dbm.get(req.params.dbname) - hash = await db.inc(parseInt(req.params.val)) - return res.json(hash) - }); +class OrbitdbAPI { + constructor (dbm, server_opts) { + let comparisons, rawiterator, getraw, unpack_contents, listener, dbMiddleware - this.post('/db/:dbname/inc/:val', db_inc_val); - this.put('/db/:dbname/inc/:val', db_inc_val); + listener = Http2.createSecureServer(server_opts.http2_opts); + this.server = new Hapi.Server({ + listener, + tls: true, + port: server_opts.api_port}); - var comparisons = { + comparisons = { 'ne': (a, b) => a != b, 'eq': (a, b) => a == b, 'gt': (a, b) => a > b, @@ -124,70 +34,21 @@ class OrbitdbAPI extends Express { 'all': () => true }; - this.get('/db/:dbname/query', asyncMiddleware( async (req, res, next) => { - let db, qparams, comparison, query, result; - db = await dbm.get(req.params.dbname); - qparams = req.body; - comparison = comparisons[qparams.comp || 'all'] - query = (doc) => comparison(doc[qparams.propname || '_id'], ...qparams.values) - result = await db.query(query) - return res.json(result) - })); - - this.get('/db/:dbname/iterator', asyncMiddleware( async (req, res, next) => { - let result, raw; - raw = await rawiterator(req,res,next) - result = raw.map((e) => Object.keys(e.payload.value)[0]) - return res.json(result) - })); - - var rawiterator = async (req, res, next) => { - let db; - db = await dbm.get(req.params.dbname); - return db.iterator(req.body).collect() - }; - - this.get('/db/:dbname/rawiterator', asyncMiddleware( async (req, res, next) => { - return res.json(await rawiterator(req,res,next))})); - - var getraw = async (req, res, next) => { - let db - db = await dbm.get(req.params.dbname) - return await db.get(req.params.item) + dbMiddleware = fn => + async (request, h) => { + let db + db = await dbm.get(request.params.dbname) + return Promise.resolve((fn(db, request, h))) + .catch((err) => ErrorHandler(err, h)); } - this.get('/db/:dbname/raw/:item', asyncMiddleware( async (req, res, next) => { - let contents - contents = await getraw(req, res, next) - return res.json(contents) - })); + rawiterator = (db, request, _h) => + db.iterator(request.payload).collect(); - this.get('/db/:dbname/all', asyncMiddleware( async (req, res, next) => { - let db, result, contents - db = await dbm.get(req.params.dbname) - if (typeof db._query == 'function') { - contents = db._query({limit:-1}) - result = contents.map((e) => Object.keys(e.payload.value)[0]) - } else { - contents = db.all - result = unpack_contents(contents) - } - return res.json(result) - })); - - this.get('/db/:dbname/index', asyncMiddleware( async (req, res, next) => { - let db - db = await dbm.get(req.params.dbname) - return res.json(db.index) - })); - - this.get('/db/:dbname/value', asyncMiddleware( async (req, res, next) => { - let db, val - db = await dbm.get(req.params.dbname) - return res.json(db.value) - })); + getraw = (db, request, _h) => + db.get(request.params.item); - var unpack_contents = (contents) => { + unpack_contents = (contents) => { if (contents){ if (contents.map) { return contents.map((e) => { @@ -199,46 +60,202 @@ class OrbitdbAPI extends Express { } } return contents - } - - this.get('/identity', (req, res, next) => { - try { - const identity = dbm.identity() - return res.json(identity) - } catch(err) { - next(err) - } - }); - - var db_put_write_public_key = asyncMiddleware( async (req, res, next) => { - let db - db = await dbm.get(req.params.dbname) - await db.access.grant('write', req.body.publicKey) - - return res.json('') - }); - - this.post('/db/:dbname/access/write', db_put_write_public_key); - this.put('/db/:dbname/access/write', db_put_write_public_key); - - this.get('/db/:dbname/:item', asyncMiddleware( async (req, res, next) => { - let result, contents - contents = await getraw(req,res, next) - result = unpack_contents(contents) - return res.json(result) - })); - - this.use(function(req, res, next){ - return res.status(404).json(`Cannot ${req.method} ${req.url}`); - }) + }; - this.use(function (err, req, res, next) { - console.error(err) - if (res.headersSent) { - return next(err) + this.server.route([ + { + method: 'GET', + path: '/dbs', + handler: (_request, h) => { + try { + return dbm.db_list(); + } catch(err) { + return ErrorHandler(err, h); + } + } + }, + { + method: ['POST', 'PUT'], + path: '/db', + handler: asyncMiddleware( async (request, _h) => { + let db, payload; + payload = request.payload; + db = await dbm.get(payload.dbname, payload); + return dbm.db_info(db.dbname); + }) + }, + { + method: ['POST', 'PUT'], + path: '/db/{dbname}', + handler: asyncMiddleware( async (request, _h) => { + let db; + db = await dbm.get(request.params.dbname, request.payload); + return dbm.db_info(db.dbname); + }) + }, + { + method: 'GET', + path: '/db/{dbname}', + handler: (request, h) => { + try { + return dbm.db_info(request.params.dbname); + } catch(err) { + return ErrorHandler(err, h); + } + } + }, + { + method: 'DELETE', + path: '/db/{dbname}', + handler: asyncMiddleware( async (request, _h) => { + await dbm.db_list_remove(request.params.dbname); + return {}; + }) + }, + { + method: 'DELETE', + path: '/db/{dbname}/{item}', + handler: dbMiddleware( async (db, request, _h) => { + if (db.del) { + return {hash: await db.del(request.params.item)}; + } else if (db.remove) { + return {hash: await db.remove(request.params.item)}; + } else { + return Boom.methodNotAllowed(`DB type ${db.type} does not support removing data`, + { + dbname: db.dbname, + dbtype: db.type + }); + } + }) + }, + { + method: ['POST', 'PUT'], + path: '/db/{dbname}/put', + handler: dbMiddleware( async (db, request, _h) => { + let params; + params = request.payload; + + if (db.type == 'keyvalue') { + let key, value; + if (!params['key']) { + [key,value] = [Object.keys(params)[0], Object.values(params)[0]]; + } else { + ({key,value} = params); + } + return {hash: await db.put(key, value)}; + } else { + return {hash: await db.put(params)}; + } + }) + }, + { + method: ['POST', 'PUT'], + path: '/db/{dbname}/add', + handler: dbMiddleware( async (db, request, _h) => { + return {hash: await db.add(request.payload)}; + }) + }, + { + method: ['POST', 'PUT'], + path: '/db/{dbname}/inc', + handler: dbMiddleware( async (db, request, _h) => { + return {hash: await db.inc(parseInt(request.payload.val || 1))}; + }) + }, + { + method: ['POST', 'PUT'], + path: '/db/{dbname}/inc/{val}', + handler: dbMiddleware( async (db, request, _h) => { + return {hash: await db.inc(parseInt(request.params.val || 1))}; + }) + }, + { + method: 'GET', + path: '/db/{dbname}/query', + handler: dbMiddleware( async (db, request, _h) => { + let qparams, comparison, query; + qparams = request.payload; + comparison = comparisons[qparams.comp || 'all']; + query = (doc) => comparison(doc[qparams.propname || '_id'], ...qparams.values); + return await db.query(query); + }) + }, + { + method: 'GET', + path: '/db/{dbname}/iterator', + handler: dbMiddleware( async (db, request, h) => { + let raw; + raw = rawiterator(db, request, h); + return raw.map((e) => Object.keys(e.payload.value)[0]); + + }) + }, + { + method: 'GET', + path: '/db/{dbname}/rawiterator', + handler: dbMiddleware( async (db, request, h) => { + return rawiterator(db, request, h); + }) + }, + { + method: 'GET', + path: '/db/{dbname}/raw/{item}', + handler: dbMiddleware( async (db, request, h) => { + return getraw(db, request, h); + }) + }, + { + method: 'GET', + path: '/db/{dbname}/{item}', + handler: dbMiddleware( async (db, request, h) => { + let raw; + raw = getraw(db, request, h); + return unpack_contents(raw); + }) + }, + { + method: 'GET', + path: '/db/{dbname}/all', + handler: dbMiddleware( async (db, _request, _h) => { + if (typeof db._query == 'function') { + contents = db._query({limit:-1}) + return contents.map((e) => Object.keys(e.payload.value)[0]) + } else { + return unpack_contents(db.all) + } + }) + }, + { + method: 'GET', + path: '/db/{dbname}/index', + handler: dbMiddleware( async (db, _request, _h) => db.index) + }, + { + method: 'GET', + path: '/db/{dbname}/value', + handler: dbMiddleware( async (db, _request, _h) => db.value) + }, + { + method: 'GET', + path: '/identity', + handler: (_request, h) => { + try { + return dbm.identity() + } catch(err) { + return ErrorHandler(err, h); + } + } + }, + { + method: ['POST', 'PUT'], + path: '/db/{dbname}/access/write', + handler: dbMiddleware( async (db, request, _h) => { + await db.access.grant('write', request.payload.publicKey) + return {}; + }) } - return res.status(500).json('ERROR') - }); + ]); } }