feat(p2p): peers backup on exit
This commit is contained in:
Generated
+76
-74
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "rats-search",
|
"name": "rats-search",
|
||||||
"version": "0.8.0",
|
"version": "0.9.0",
|
||||||
"lockfileVersion": 1,
|
"lockfileVersion": 1,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
@@ -1680,7 +1680,7 @@
|
|||||||
"optional": true,
|
"optional": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"delegates": "1.0.0",
|
"delegates": "1.0.0",
|
||||||
"readable-stream": "2.3.4"
|
"readable-stream": "2.3.5"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"isarray": {
|
"isarray": {
|
||||||
@@ -1696,9 +1696,9 @@
|
|||||||
"optional": true
|
"optional": true
|
||||||
},
|
},
|
||||||
"readable-stream": {
|
"readable-stream": {
|
||||||
"version": "2.3.4",
|
"version": "2.3.5",
|
||||||
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.4.tgz",
|
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.5.tgz",
|
||||||
"integrity": "sha512-vuYxeWYM+fde14+rajzqgeohAI7YoJcHE7kXDAc4Nk0EbuKnJfqtY9YtRkLo/tqkuF7MsBQRhPnPeyjYITp3ZQ==",
|
"integrity": "sha512-tK0yDhrkygt/knjowCUiWP9YdV7c5R+8cR0r/kt9ZhBU906Fs6RpQJCEilamRJj1Nx2rWI6LkW9gKqjTkshhEw==",
|
||||||
"optional": true,
|
"optional": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"core-util-is": "1.0.2",
|
"core-util-is": "1.0.2",
|
||||||
@@ -2111,7 +2111,7 @@
|
|||||||
"debug": "3.1.0",
|
"debug": "3.1.0",
|
||||||
"inherits": "2.0.3",
|
"inherits": "2.0.3",
|
||||||
"randombytes": "2.0.6",
|
"randombytes": "2.0.6",
|
||||||
"readable-stream": "2.3.4",
|
"readable-stream": "2.3.5",
|
||||||
"safe-buffer": "5.1.1",
|
"safe-buffer": "5.1.1",
|
||||||
"speedometer": "1.0.0",
|
"speedometer": "1.0.0",
|
||||||
"unordered-array-remove": "1.0.2",
|
"unordered-array-remove": "1.0.2",
|
||||||
@@ -2142,9 +2142,9 @@
|
|||||||
"integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw=="
|
"integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw=="
|
||||||
},
|
},
|
||||||
"readable-stream": {
|
"readable-stream": {
|
||||||
"version": "2.3.4",
|
"version": "2.3.5",
|
||||||
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.4.tgz",
|
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.5.tgz",
|
||||||
"integrity": "sha512-vuYxeWYM+fde14+rajzqgeohAI7YoJcHE7kXDAc4Nk0EbuKnJfqtY9YtRkLo/tqkuF7MsBQRhPnPeyjYITp3ZQ==",
|
"integrity": "sha512-tK0yDhrkygt/knjowCUiWP9YdV7c5R+8cR0r/kt9ZhBU906Fs6RpQJCEilamRJj1Nx2rWI6LkW9gKqjTkshhEw==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"core-util-is": "1.0.2",
|
"core-util-is": "1.0.2",
|
||||||
"inherits": "2.0.3",
|
"inherits": "2.0.3",
|
||||||
@@ -2230,9 +2230,9 @@
|
|||||||
"integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw=="
|
"integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw=="
|
||||||
},
|
},
|
||||||
"readable-stream": {
|
"readable-stream": {
|
||||||
"version": "2.3.4",
|
"version": "2.3.5",
|
||||||
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.4.tgz",
|
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.5.tgz",
|
||||||
"integrity": "sha512-vuYxeWYM+fde14+rajzqgeohAI7YoJcHE7kXDAc4Nk0EbuKnJfqtY9YtRkLo/tqkuF7MsBQRhPnPeyjYITp3ZQ==",
|
"integrity": "sha512-tK0yDhrkygt/knjowCUiWP9YdV7c5R+8cR0r/kt9ZhBU906Fs6RpQJCEilamRJj1Nx2rWI6LkW9gKqjTkshhEw==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"core-util-is": "1.0.2",
|
"core-util-is": "1.0.2",
|
||||||
"inherits": "2.0.3",
|
"inherits": "2.0.3",
|
||||||
@@ -2252,7 +2252,7 @@
|
|||||||
"get-browser-rtc": "1.0.2",
|
"get-browser-rtc": "1.0.2",
|
||||||
"inherits": "2.0.3",
|
"inherits": "2.0.3",
|
||||||
"randombytes": "2.0.6",
|
"randombytes": "2.0.6",
|
||||||
"readable-stream": "2.3.4"
|
"readable-stream": "2.3.5"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"string_decoder": {
|
"string_decoder": {
|
||||||
@@ -2319,7 +2319,7 @@
|
|||||||
"requires": {
|
"requires": {
|
||||||
"defined": "1.0.0",
|
"defined": "1.0.0",
|
||||||
"inherits": "2.0.3",
|
"inherits": "2.0.3",
|
||||||
"readable-stream": "2.3.4"
|
"readable-stream": "2.3.5"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"isarray": {
|
"isarray": {
|
||||||
@@ -2333,9 +2333,9 @@
|
|||||||
"integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw=="
|
"integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw=="
|
||||||
},
|
},
|
||||||
"readable-stream": {
|
"readable-stream": {
|
||||||
"version": "2.3.4",
|
"version": "2.3.5",
|
||||||
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.4.tgz",
|
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.5.tgz",
|
||||||
"integrity": "sha512-vuYxeWYM+fde14+rajzqgeohAI7YoJcHE7kXDAc4Nk0EbuKnJfqtY9YtRkLo/tqkuF7MsBQRhPnPeyjYITp3ZQ==",
|
"integrity": "sha512-tK0yDhrkygt/knjowCUiWP9YdV7c5R+8cR0r/kt9ZhBU906Fs6RpQJCEilamRJj1Nx2rWI6LkW9gKqjTkshhEw==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"core-util-is": "1.0.2",
|
"core-util-is": "1.0.2",
|
||||||
"inherits": "2.0.3",
|
"inherits": "2.0.3",
|
||||||
@@ -2897,7 +2897,7 @@
|
|||||||
"requires": {
|
"requires": {
|
||||||
"block-stream2": "1.1.0",
|
"block-stream2": "1.1.0",
|
||||||
"inherits": "2.0.3",
|
"inherits": "2.0.3",
|
||||||
"readable-stream": "2.3.4"
|
"readable-stream": "2.3.5"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"isarray": {
|
"isarray": {
|
||||||
@@ -2911,9 +2911,9 @@
|
|||||||
"integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw=="
|
"integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw=="
|
||||||
},
|
},
|
||||||
"readable-stream": {
|
"readable-stream": {
|
||||||
"version": "2.3.4",
|
"version": "2.3.5",
|
||||||
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.4.tgz",
|
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.5.tgz",
|
||||||
"integrity": "sha512-vuYxeWYM+fde14+rajzqgeohAI7YoJcHE7kXDAc4Nk0EbuKnJfqtY9YtRkLo/tqkuF7MsBQRhPnPeyjYITp3ZQ==",
|
"integrity": "sha512-tK0yDhrkygt/knjowCUiWP9YdV7c5R+8cR0r/kt9ZhBU906Fs6RpQJCEilamRJj1Nx2rWI6LkW9gKqjTkshhEw==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"core-util-is": "1.0.2",
|
"core-util-is": "1.0.2",
|
||||||
"inherits": "2.0.3",
|
"inherits": "2.0.3",
|
||||||
@@ -3529,7 +3529,7 @@
|
|||||||
"multistream": "2.1.0",
|
"multistream": "2.1.0",
|
||||||
"once": "1.4.0",
|
"once": "1.4.0",
|
||||||
"piece-length": "1.0.0",
|
"piece-length": "1.0.0",
|
||||||
"readable-stream": "2.3.4",
|
"readable-stream": "2.3.5",
|
||||||
"run-parallel": "1.1.7",
|
"run-parallel": "1.1.7",
|
||||||
"simple-sha1": "2.1.0",
|
"simple-sha1": "2.1.0",
|
||||||
"xtend": "4.0.1"
|
"xtend": "4.0.1"
|
||||||
@@ -3559,9 +3559,9 @@
|
|||||||
"integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw=="
|
"integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw=="
|
||||||
},
|
},
|
||||||
"readable-stream": {
|
"readable-stream": {
|
||||||
"version": "2.3.4",
|
"version": "2.3.5",
|
||||||
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.4.tgz",
|
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.5.tgz",
|
||||||
"integrity": "sha512-vuYxeWYM+fde14+rajzqgeohAI7YoJcHE7kXDAc4Nk0EbuKnJfqtY9YtRkLo/tqkuF7MsBQRhPnPeyjYITp3ZQ==",
|
"integrity": "sha512-tK0yDhrkygt/knjowCUiWP9YdV7c5R+8cR0r/kt9ZhBU906Fs6RpQJCEilamRJj1Nx2rWI6LkW9gKqjTkshhEw==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"core-util-is": "1.0.2",
|
"core-util-is": "1.0.2",
|
||||||
"inherits": "2.0.3",
|
"inherits": "2.0.3",
|
||||||
@@ -4896,7 +4896,7 @@
|
|||||||
"integrity": "sha1-lI/KregiH3FfXsrdxUhi+qrMkyU=",
|
"integrity": "sha1-lI/KregiH3FfXsrdxUhi+qrMkyU=",
|
||||||
"requires": {
|
"requires": {
|
||||||
"inherits": "2.0.3",
|
"inherits": "2.0.3",
|
||||||
"readable-stream": "2.3.4",
|
"readable-stream": "2.3.5",
|
||||||
"typedarray-to-buffer": "3.1.2",
|
"typedarray-to-buffer": "3.1.2",
|
||||||
"xtend": "4.0.1"
|
"xtend": "4.0.1"
|
||||||
},
|
},
|
||||||
@@ -4912,9 +4912,9 @@
|
|||||||
"integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw=="
|
"integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw=="
|
||||||
},
|
},
|
||||||
"readable-stream": {
|
"readable-stream": {
|
||||||
"version": "2.3.4",
|
"version": "2.3.5",
|
||||||
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.4.tgz",
|
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.5.tgz",
|
||||||
"integrity": "sha512-vuYxeWYM+fde14+rajzqgeohAI7YoJcHE7kXDAc4Nk0EbuKnJfqtY9YtRkLo/tqkuF7MsBQRhPnPeyjYITp3ZQ==",
|
"integrity": "sha512-tK0yDhrkygt/knjowCUiWP9YdV7c5R+8cR0r/kt9ZhBU906Fs6RpQJCEilamRJj1Nx2rWI6LkW9gKqjTkshhEw==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"core-util-is": "1.0.2",
|
"core-util-is": "1.0.2",
|
||||||
"inherits": "2.0.3",
|
"inherits": "2.0.3",
|
||||||
@@ -5563,8 +5563,7 @@
|
|||||||
"jsbn": {
|
"jsbn": {
|
||||||
"version": "0.1.1",
|
"version": "0.1.1",
|
||||||
"bundled": true,
|
"bundled": true,
|
||||||
"dev": true,
|
"dev": true
|
||||||
"optional": true
|
|
||||||
},
|
},
|
||||||
"json-schema": {
|
"json-schema": {
|
||||||
"version": "0.2.3",
|
"version": "0.2.3",
|
||||||
@@ -7485,7 +7484,7 @@
|
|||||||
"integrity": "sha1-J6nBqsUb+266lq8tE6hNCyqOrGg=",
|
"integrity": "sha1-J6nBqsUb+266lq8tE6hNCyqOrGg=",
|
||||||
"requires": {
|
"requires": {
|
||||||
"inherits": "2.0.3",
|
"inherits": "2.0.3",
|
||||||
"readable-stream": "2.3.4",
|
"readable-stream": "2.3.5",
|
||||||
"to-arraybuffer": "1.0.1"
|
"to-arraybuffer": "1.0.1"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
@@ -7500,9 +7499,9 @@
|
|||||||
"integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw=="
|
"integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw=="
|
||||||
},
|
},
|
||||||
"readable-stream": {
|
"readable-stream": {
|
||||||
"version": "2.3.4",
|
"version": "2.3.5",
|
||||||
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.4.tgz",
|
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.5.tgz",
|
||||||
"integrity": "sha512-vuYxeWYM+fde14+rajzqgeohAI7YoJcHE7kXDAc4Nk0EbuKnJfqtY9YtRkLo/tqkuF7MsBQRhPnPeyjYITp3ZQ==",
|
"integrity": "sha512-tK0yDhrkygt/knjowCUiWP9YdV7c5R+8cR0r/kt9ZhBU906Fs6RpQJCEilamRJj1Nx2rWI6LkW9gKqjTkshhEw==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"core-util-is": "1.0.2",
|
"core-util-is": "1.0.2",
|
||||||
"inherits": "2.0.3",
|
"inherits": "2.0.3",
|
||||||
@@ -7774,7 +7773,7 @@
|
|||||||
"inherits": "2.0.3",
|
"inherits": "2.0.3",
|
||||||
"mp4-box-encoding": "1.1.2",
|
"mp4-box-encoding": "1.1.2",
|
||||||
"next-event": "1.0.0",
|
"next-event": "1.0.0",
|
||||||
"readable-stream": "2.3.4"
|
"readable-stream": "2.3.5"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"isarray": {
|
"isarray": {
|
||||||
@@ -7788,9 +7787,9 @@
|
|||||||
"integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw=="
|
"integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw=="
|
||||||
},
|
},
|
||||||
"readable-stream": {
|
"readable-stream": {
|
||||||
"version": "2.3.4",
|
"version": "2.3.5",
|
||||||
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.4.tgz",
|
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.5.tgz",
|
||||||
"integrity": "sha512-vuYxeWYM+fde14+rajzqgeohAI7YoJcHE7kXDAc4Nk0EbuKnJfqtY9YtRkLo/tqkuF7MsBQRhPnPeyjYITp3ZQ==",
|
"integrity": "sha512-tK0yDhrkygt/knjowCUiWP9YdV7c5R+8cR0r/kt9ZhBU906Fs6RpQJCEilamRJj1Nx2rWI6LkW9gKqjTkshhEw==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"core-util-is": "1.0.2",
|
"core-util-is": "1.0.2",
|
||||||
"inherits": "2.0.3",
|
"inherits": "2.0.3",
|
||||||
@@ -7822,7 +7821,7 @@
|
|||||||
"integrity": "sha1-YlwmfVxEQkrWKUeItbtNo9yzLx0=",
|
"integrity": "sha1-YlwmfVxEQkrWKUeItbtNo9yzLx0=",
|
||||||
"requires": {
|
"requires": {
|
||||||
"inherits": "2.0.3",
|
"inherits": "2.0.3",
|
||||||
"readable-stream": "2.3.4"
|
"readable-stream": "2.3.5"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"isarray": {
|
"isarray": {
|
||||||
@@ -7836,9 +7835,9 @@
|
|||||||
"integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw=="
|
"integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw=="
|
||||||
},
|
},
|
||||||
"readable-stream": {
|
"readable-stream": {
|
||||||
"version": "2.3.4",
|
"version": "2.3.5",
|
||||||
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.4.tgz",
|
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.5.tgz",
|
||||||
"integrity": "sha512-vuYxeWYM+fde14+rajzqgeohAI7YoJcHE7kXDAc4Nk0EbuKnJfqtY9YtRkLo/tqkuF7MsBQRhPnPeyjYITp3ZQ==",
|
"integrity": "sha512-tK0yDhrkygt/knjowCUiWP9YdV7c5R+8cR0r/kt9ZhBU906Fs6RpQJCEilamRJj1Nx2rWI6LkW9gKqjTkshhEw==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"core-util-is": "1.0.2",
|
"core-util-is": "1.0.2",
|
||||||
"inherits": "2.0.3",
|
"inherits": "2.0.3",
|
||||||
@@ -9462,7 +9461,7 @@
|
|||||||
"integrity": "sha1-AbqVQnYFK3g5AOY9YRjY/POHXX8=",
|
"integrity": "sha1-AbqVQnYFK3g5AOY9YRjY/POHXX8=",
|
||||||
"requires": {
|
"requires": {
|
||||||
"inherits": "2.0.3",
|
"inherits": "2.0.3",
|
||||||
"readable-stream": "2.3.4"
|
"readable-stream": "2.3.5"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"isarray": {
|
"isarray": {
|
||||||
@@ -9476,9 +9475,9 @@
|
|||||||
"integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw=="
|
"integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw=="
|
||||||
},
|
},
|
||||||
"readable-stream": {
|
"readable-stream": {
|
||||||
"version": "2.3.4",
|
"version": "2.3.5",
|
||||||
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.4.tgz",
|
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.5.tgz",
|
||||||
"integrity": "sha512-vuYxeWYM+fde14+rajzqgeohAI7YoJcHE7kXDAc4Nk0EbuKnJfqtY9YtRkLo/tqkuF7MsBQRhPnPeyjYITp3ZQ==",
|
"integrity": "sha512-tK0yDhrkygt/knjowCUiWP9YdV7c5R+8cR0r/kt9ZhBU906Fs6RpQJCEilamRJj1Nx2rWI6LkW9gKqjTkshhEw==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"core-util-is": "1.0.2",
|
"core-util-is": "1.0.2",
|
||||||
"inherits": "2.0.3",
|
"inherits": "2.0.3",
|
||||||
@@ -9932,25 +9931,15 @@
|
|||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"render-media": {
|
"render-media": {
|
||||||
"version": "2.11.0",
|
"version": "2.12.0",
|
||||||
"resolved": "https://registry.npmjs.org/render-media/-/render-media-2.11.0.tgz",
|
"resolved": "https://registry.npmjs.org/render-media/-/render-media-2.12.0.tgz",
|
||||||
"integrity": "sha512-TjQjOxZ0HfSxZCfSSMxMvQNvXgQhPScpH8kd+zt+BE65jXVXa65mMPfEMmvGzMpDuXHgqJzAtvdcnXcxMaTu+A==",
|
"integrity": "sha512-fgHc//6ClJMywYVlU1yPMl5+QAmGrNvkuUpIn7p2JZJI1uB7DIxwpDts216ubFf2yyH0lihPOs9oY2egKksbfA==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"debug": "2.6.9",
|
"debug": "3.1.0",
|
||||||
"is-ascii": "1.0.0",
|
"is-ascii": "1.0.0",
|
||||||
"mediasource": "2.1.3",
|
"mediasource": "2.1.3",
|
||||||
"stream-to-blob-url": "2.1.0",
|
"stream-to-blob-url": "2.1.0",
|
||||||
"videostream": "2.4.2"
|
"videostream": "2.4.2"
|
||||||
},
|
|
||||||
"dependencies": {
|
|
||||||
"debug": {
|
|
||||||
"version": "2.6.9",
|
|
||||||
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
|
|
||||||
"integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
|
|
||||||
"requires": {
|
|
||||||
"ms": "2.0.0"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"repeat-element": {
|
"repeat-element": {
|
||||||
@@ -10149,6 +10138,11 @@
|
|||||||
"ajv": "5.5.2"
|
"ajv": "5.5.2"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"scmp": {
|
||||||
|
"version": "0.0.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/scmp/-/scmp-0.0.3.tgz",
|
||||||
|
"integrity": "sha1-NkjfLXKUZB5/eGc//CloHZutkHM="
|
||||||
|
},
|
||||||
"semver": {
|
"semver": {
|
||||||
"version": "5.5.0",
|
"version": "5.5.0",
|
||||||
"resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz",
|
"resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz",
|
||||||
@@ -10240,6 +10234,14 @@
|
|||||||
"resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.0.tgz",
|
||||||
"integrity": "sha1-c0TLuLbib7J9ZrL8hvn21Zl1IcY="
|
"integrity": "sha1-c0TLuLbib7J9ZrL8hvn21Zl1IcY="
|
||||||
},
|
},
|
||||||
|
"simple-encryptor": {
|
||||||
|
"version": "1.2.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/simple-encryptor/-/simple-encryptor-1.2.0.tgz",
|
||||||
|
"integrity": "sha512-RZv50jILXa5VE2Mw2vkQXeYqvPUgv+IJXnn4VGaiX5+01zjqAozgYsqgwq0TmsGINk7+MdNrcsY/W1GiHrQdnw==",
|
||||||
|
"requires": {
|
||||||
|
"scmp": "0.0.3"
|
||||||
|
}
|
||||||
|
},
|
||||||
"simple-get": {
|
"simple-get": {
|
||||||
"version": "2.7.0",
|
"version": "2.7.0",
|
||||||
"resolved": "https://registry.npmjs.org/simple-get/-/simple-get-2.7.0.tgz",
|
"resolved": "https://registry.npmjs.org/simple-get/-/simple-get-2.7.0.tgz",
|
||||||
@@ -10259,7 +10261,7 @@
|
|||||||
"get-browser-rtc": "1.0.2",
|
"get-browser-rtc": "1.0.2",
|
||||||
"inherits": "2.0.3",
|
"inherits": "2.0.3",
|
||||||
"randombytes": "2.0.6",
|
"randombytes": "2.0.6",
|
||||||
"readable-stream": "2.3.4"
|
"readable-stream": "2.3.5"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"isarray": {
|
"isarray": {
|
||||||
@@ -10273,9 +10275,9 @@
|
|||||||
"integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw=="
|
"integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw=="
|
||||||
},
|
},
|
||||||
"readable-stream": {
|
"readable-stream": {
|
||||||
"version": "2.3.4",
|
"version": "2.3.5",
|
||||||
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.4.tgz",
|
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.5.tgz",
|
||||||
"integrity": "sha512-vuYxeWYM+fde14+rajzqgeohAI7YoJcHE7kXDAc4Nk0EbuKnJfqtY9YtRkLo/tqkuF7MsBQRhPnPeyjYITp3ZQ==",
|
"integrity": "sha512-tK0yDhrkygt/knjowCUiWP9YdV7c5R+8cR0r/kt9ZhBU906Fs6RpQJCEilamRJj1Nx2rWI6LkW9gKqjTkshhEw==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"core-util-is": "1.0.2",
|
"core-util-is": "1.0.2",
|
||||||
"inherits": "2.0.3",
|
"inherits": "2.0.3",
|
||||||
@@ -10312,7 +10314,7 @@
|
|||||||
"debug": "3.1.0",
|
"debug": "3.1.0",
|
||||||
"inherits": "2.0.3",
|
"inherits": "2.0.3",
|
||||||
"randombytes": "2.0.6",
|
"randombytes": "2.0.6",
|
||||||
"readable-stream": "2.3.4",
|
"readable-stream": "2.3.5",
|
||||||
"safe-buffer": "5.1.1",
|
"safe-buffer": "5.1.1",
|
||||||
"ws": "4.1.0"
|
"ws": "4.1.0"
|
||||||
},
|
},
|
||||||
@@ -10328,9 +10330,9 @@
|
|||||||
"integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw=="
|
"integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw=="
|
||||||
},
|
},
|
||||||
"readable-stream": {
|
"readable-stream": {
|
||||||
"version": "2.3.4",
|
"version": "2.3.5",
|
||||||
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.4.tgz",
|
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.5.tgz",
|
||||||
"integrity": "sha512-vuYxeWYM+fde14+rajzqgeohAI7YoJcHE7kXDAc4Nk0EbuKnJfqtY9YtRkLo/tqkuF7MsBQRhPnPeyjYITp3ZQ==",
|
"integrity": "sha512-tK0yDhrkygt/knjowCUiWP9YdV7c5R+8cR0r/kt9ZhBU906Fs6RpQJCEilamRJj1Nx2rWI6LkW9gKqjTkshhEw==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"core-util-is": "1.0.2",
|
"core-util-is": "1.0.2",
|
||||||
"inherits": "2.0.3",
|
"inherits": "2.0.3",
|
||||||
@@ -12391,8 +12393,8 @@
|
|||||||
"random-iterate": "1.0.1",
|
"random-iterate": "1.0.1",
|
||||||
"randombytes": "2.0.6",
|
"randombytes": "2.0.6",
|
||||||
"range-parser": "1.2.0",
|
"range-parser": "1.2.0",
|
||||||
"readable-stream": "2.3.4",
|
"readable-stream": "2.3.5",
|
||||||
"render-media": "2.11.0",
|
"render-media": "2.12.0",
|
||||||
"run-parallel": "1.1.7",
|
"run-parallel": "1.1.7",
|
||||||
"run-parallel-limit": "1.0.3",
|
"run-parallel-limit": "1.0.3",
|
||||||
"safe-buffer": "5.1.1",
|
"safe-buffer": "5.1.1",
|
||||||
@@ -12425,9 +12427,9 @@
|
|||||||
"integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw=="
|
"integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw=="
|
||||||
},
|
},
|
||||||
"readable-stream": {
|
"readable-stream": {
|
||||||
"version": "2.3.4",
|
"version": "2.3.5",
|
||||||
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.4.tgz",
|
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.5.tgz",
|
||||||
"integrity": "sha512-vuYxeWYM+fde14+rajzqgeohAI7YoJcHE7kXDAc4Nk0EbuKnJfqtY9YtRkLo/tqkuF7MsBQRhPnPeyjYITp3ZQ==",
|
"integrity": "sha512-tK0yDhrkygt/knjowCUiWP9YdV7c5R+8cR0r/kt9ZhBU906Fs6RpQJCEilamRJj1Nx2rWI6LkW9gKqjTkshhEw==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"core-util-is": "1.0.2",
|
"core-util-is": "1.0.2",
|
||||||
"inherits": "2.0.3",
|
"inherits": "2.0.3",
|
||||||
|
|||||||
@@ -97,6 +97,7 @@
|
|||||||
"react-input-range": "^1.3.0",
|
"react-input-range": "^1.3.0",
|
||||||
"react-markdown": "^3.1.5",
|
"react-markdown": "^3.1.5",
|
||||||
"react-tap-event-plugin": "^3.0.2",
|
"react-tap-event-plugin": "^3.0.2",
|
||||||
|
"simple-encryptor": "^1.2.0",
|
||||||
"stun": "^1.1.0",
|
"stun": "^1.1.0",
|
||||||
"webtorrent": "github:DEgITx/webtorrent"
|
"webtorrent": "github:DEgITx/webtorrent"
|
||||||
},
|
},
|
||||||
|
|||||||
+8
-1
@@ -91,9 +91,16 @@ class App extends Component {
|
|||||||
|
|
||||||
window.torrentSocket.on('peer', (numOfPeers) => {
|
window.torrentSocket.on('peer', (numOfPeers) => {
|
||||||
window.peers = numOfPeers
|
window.peers = numOfPeers
|
||||||
console.log(window.peers)
|
|
||||||
this.forceUpdate()
|
this.forceUpdate()
|
||||||
})
|
})
|
||||||
|
|
||||||
|
window.torrentSocket.emit('peers', (numOfPeers) => {
|
||||||
|
if(numOfPeers > 0)
|
||||||
|
{
|
||||||
|
window.peers = numOfPeers
|
||||||
|
this.forceUpdate()
|
||||||
|
}
|
||||||
|
})
|
||||||
}
|
}
|
||||||
componentWillUnmount() {
|
componentWillUnmount() {
|
||||||
appReady = false;
|
appReady = false;
|
||||||
|
|||||||
@@ -337,7 +337,7 @@ app.on("ready", () => {
|
|||||||
}
|
}
|
||||||
callback.apply(null, arg)
|
callback.apply(null, arg)
|
||||||
})
|
})
|
||||||
})
|
}, app.getPath("userData"))
|
||||||
})
|
})
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@@ -197,6 +197,13 @@ class p2p {
|
|||||||
{
|
{
|
||||||
return this.peers.filter(peer => !!peer.emit)
|
return this.peers.filter(peer => !!peer.emit)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
addresses(peers)
|
||||||
|
{
|
||||||
|
if(!peers || !Array.isArray(peers))
|
||||||
|
return
|
||||||
|
return peers.map(peer => ({address: peer.address, port: peer.port}))
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
module.exports = p2p
|
module.exports = p2p
|
||||||
@@ -1,6 +1,7 @@
|
|||||||
const config = require('./config');
|
const config = require('./config');
|
||||||
const client = new (require('./bt/client'))
|
const client = new (require('./bt/client'))
|
||||||
const spider = new (require('./bt/spider'))(client)
|
const spider = new (require('./bt/spider'))(client)
|
||||||
|
const fs = require('fs');
|
||||||
const mysql = require('mysql');
|
const mysql = require('mysql');
|
||||||
const getPeersStatisticUDP = require('./bt/udp-tracker-request')
|
const getPeersStatisticUDP = require('./bt/udp-tracker-request')
|
||||||
const crypto = require('crypto')
|
const crypto = require('crypto')
|
||||||
@@ -15,6 +16,7 @@ const natUpnp = require('nat-upnp');
|
|||||||
//var phantomjs = require('phantomjs-prebuilt')
|
//var phantomjs = require('phantomjs-prebuilt')
|
||||||
var ipaddr = require('ipaddr.js');
|
var ipaddr = require('ipaddr.js');
|
||||||
//const disk = require('diskusage');
|
//const disk = require('diskusage');
|
||||||
|
const encryptor = require('simple-encryptor')('rats-on-the-boat-enc-v0');
|
||||||
const os = require('os');
|
const os = require('os');
|
||||||
let rootPath = os.platform() === 'win32' ? 'c:' : '/';
|
let rootPath = os.platform() === 'win32' ? 'c:' : '/';
|
||||||
|
|
||||||
@@ -33,7 +35,7 @@ let torrentClientHashMap = {}
|
|||||||
//server.listen(config.httpPort);
|
//server.listen(config.httpPort);
|
||||||
//console.log('Listening web server on', config.httpPort, 'port')
|
//console.log('Listening web server on', config.httpPort, 'port')
|
||||||
|
|
||||||
module.exports = function (send, recive)
|
module.exports = function (send, recive, dataDirectory)
|
||||||
{
|
{
|
||||||
|
|
||||||
let torrentsId = 1;
|
let torrentsId = 1;
|
||||||
@@ -255,6 +257,17 @@ setInterval(() => {
|
|||||||
|
|
||||||
const p2p = new P2PServer(send)
|
const p2p = new P2PServer(send)
|
||||||
p2p.listen()
|
p2p.listen()
|
||||||
|
// load initial peers
|
||||||
|
if(dataDirectory && fs.existsSync(dataDirectory + '/peers.p2p'))
|
||||||
|
{
|
||||||
|
const peersEncrypted = fs.readFileSync(dataDirectory + '/peers.p2p', 'utf8')
|
||||||
|
const peers = encryptor.decrypt(peersEncrypted)
|
||||||
|
if(peers && peers.length > 0)
|
||||||
|
{
|
||||||
|
peers.forEach(peer => p2p.add(peer))
|
||||||
|
console.log('loaded', peers.length, 'peers')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
//io.on('connection', function(socket)
|
//io.on('connection', function(socket)
|
||||||
//{
|
//{
|
||||||
@@ -589,6 +602,14 @@ p2p.listen()
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
recive('peers', (callback) =>
|
||||||
|
{
|
||||||
|
if(typeof callback != 'function')
|
||||||
|
return;
|
||||||
|
|
||||||
|
callback(p2p.size)
|
||||||
|
});
|
||||||
|
|
||||||
recive('config', (callback) =>
|
recive('config', (callback) =>
|
||||||
{
|
{
|
||||||
if(typeof callback != 'function')
|
if(typeof callback != 'function')
|
||||||
@@ -1186,6 +1207,14 @@ this.stop = (callback) => {
|
|||||||
if(upnp)
|
if(upnp)
|
||||||
upnp.ratsUnmap()
|
upnp.ratsUnmap()
|
||||||
|
|
||||||
|
// safe future peers
|
||||||
|
if(dataDirectory)
|
||||||
|
{
|
||||||
|
const peersEncripted = encryptor.encrypt(p2p.addresses(p2p.peersList()))
|
||||||
|
fs.writeFileSync(dataDirectory + '/peers.p2p', peersEncripted, 'utf8');
|
||||||
|
console.log('peers saved')
|
||||||
|
}
|
||||||
|
|
||||||
torrentClient.destroy(() => {
|
torrentClient.destroy(() => {
|
||||||
sphinx.end(() => spider.close(() => {
|
sphinx.end(() => spider.close(() => {
|
||||||
mysqlSingle.destroy()
|
mysqlSingle.destroy()
|
||||||
|
|||||||
Reference in New Issue
Block a user