proxy_chain_rb 0.1.0 → 0.1.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (49) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +16 -16
  3. data/README.md +14 -5
  4. data/lib/proxy_chain_rb/node_js/proxy-chain-server/node_modules/.yarn-integrity +23 -0
  5. data/lib/proxy_chain_rb/node_js/proxy-chain-server/node_modules/bluebird/README.md +1 -1
  6. data/lib/proxy_chain_rb/node_js/proxy-chain-server/node_modules/bluebird/js/browser/bluebird.core.js +254 -121
  7. data/lib/proxy_chain_rb/node_js/proxy-chain-server/node_modules/bluebird/js/browser/bluebird.core.min.js +3 -3
  8. data/lib/proxy_chain_rb/node_js/proxy-chain-server/node_modules/bluebird/js/browser/bluebird.js +284 -129
  9. data/lib/proxy_chain_rb/node_js/proxy-chain-server/node_modules/bluebird/js/browser/bluebird.min.js +4 -4
  10. data/lib/proxy_chain_rb/node_js/proxy-chain-server/node_modules/bluebird/js/release/async.js +3 -48
  11. data/lib/proxy_chain_rb/node_js/proxy-chain-server/node_modules/bluebird/js/release/debuggability.js +145 -27
  12. data/lib/proxy_chain_rb/node_js/proxy-chain-server/node_modules/bluebird/js/release/join.js +4 -7
  13. data/lib/proxy_chain_rb/node_js/proxy-chain-server/node_modules/bluebird/js/release/map.js +10 -3
  14. data/lib/proxy_chain_rb/node_js/proxy-chain-server/node_modules/bluebird/js/release/promise.js +58 -28
  15. data/lib/proxy_chain_rb/node_js/proxy-chain-server/node_modules/bluebird/js/release/promise_array.js +1 -0
  16. data/lib/proxy_chain_rb/node_js/proxy-chain-server/node_modules/bluebird/js/release/reduce.js +16 -5
  17. data/lib/proxy_chain_rb/node_js/proxy-chain-server/node_modules/bluebird/js/release/settle.js +4 -0
  18. data/lib/proxy_chain_rb/node_js/proxy-chain-server/node_modules/bluebird/js/release/util.js +39 -7
  19. data/lib/proxy_chain_rb/node_js/proxy-chain-server/node_modules/bluebird/package.json +39 -63
  20. data/lib/proxy_chain_rb/node_js/proxy-chain-server/node_modules/commander/CHANGELOG.md +11 -0
  21. data/lib/proxy_chain_rb/node_js/proxy-chain-server/node_modules/commander/index.js +1 -1
  22. data/lib/proxy_chain_rb/node_js/proxy-chain-server/node_modules/commander/package.json +20 -52
  23. data/lib/proxy_chain_rb/node_js/proxy-chain-server/node_modules/debug/package.json +21 -60
  24. data/lib/proxy_chain_rb/node_js/proxy-chain-server/node_modules/ms/package.json +19 -51
  25. data/lib/proxy_chain_rb/node_js/proxy-chain-server/node_modules/portastic/node_modules/bluebird/package.json +41 -66
  26. data/lib/proxy_chain_rb/node_js/proxy-chain-server/node_modules/portastic/package.json +23 -51
  27. data/lib/proxy_chain_rb/node_js/proxy-chain-server/node_modules/proxy-chain/CHANGELOG.md +18 -0
  28. data/lib/proxy_chain_rb/node_js/proxy-chain-server/node_modules/proxy-chain/README.md +8 -0
  29. data/lib/proxy_chain_rb/node_js/proxy-chain-server/node_modules/proxy-chain/build/anonymize_proxy.js +5 -0
  30. data/lib/proxy_chain_rb/node_js/proxy-chain-server/node_modules/proxy-chain/build/handler_base.js +86 -53
  31. data/lib/proxy_chain_rb/node_js/proxy-chain-server/node_modules/proxy-chain/build/handler_forward.js +23 -5
  32. data/lib/proxy_chain_rb/node_js/proxy-chain-server/node_modules/proxy-chain/build/handler_tunnel_chain.js +3 -7
  33. data/lib/proxy_chain_rb/node_js/proxy-chain-server/node_modules/proxy-chain/build/handler_tunnel_direct.js +1 -1
  34. data/lib/proxy_chain_rb/node_js/proxy-chain-server/node_modules/proxy-chain/build/index.js +3 -5
  35. data/lib/proxy_chain_rb/node_js/proxy-chain-server/node_modules/proxy-chain/build/server.js +3 -1
  36. data/lib/proxy_chain_rb/node_js/proxy-chain-server/node_modules/proxy-chain/build/tcp_tunnel.js +245 -115
  37. data/lib/proxy_chain_rb/node_js/proxy-chain-server/node_modules/proxy-chain/build/tcp_tunnel_tools.js +138 -0
  38. data/lib/proxy_chain_rb/node_js/proxy-chain-server/node_modules/proxy-chain/node_modules/.bin/portastic +1 -0
  39. data/lib/proxy_chain_rb/node_js/proxy-chain-server/node_modules/proxy-chain/package.json +41 -68
  40. data/lib/proxy_chain_rb/node_js/proxy-chain-server/node_modules/underscore/package.json +27 -58
  41. data/lib/proxy_chain_rb/node_js/proxy-chain-server/package.json +1 -1
  42. data/lib/proxy_chain_rb/node_js/proxy-chain-server/server.js +4 -2
  43. data/lib/proxy_chain_rb/node_js/proxy-chain-server/yarn.lock +53 -0
  44. data/lib/proxy_chain_rb/server.rb +8 -6
  45. data/lib/proxy_chain_rb/version.rb +1 -1
  46. data/proxy_chain_rb.gemspec +3 -3
  47. metadata +16 -14
  48. data/lib/proxy_chain_rb/node_js/proxy-chain-server/node_modules/proxy-chain/build/handler_tunnel_tcp_chain.js +0 -271
  49. data/lib/proxy_chain_rb/node_js/proxy-chain-server/package-lock.json +0 -63
@@ -0,0 +1,138 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+
7
+ var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
8
+
9
+ var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }();
10
+
11
+ exports.createTunnel = createTunnel;
12
+ exports.closeTunnel = closeTunnel;
13
+
14
+ var _bluebird = require('bluebird');
15
+
16
+ var _bluebird2 = _interopRequireDefault(_bluebird);
17
+
18
+ var _net = require('net');
19
+
20
+ var _net2 = _interopRequireDefault(_net);
21
+
22
+ var _tcp_tunnel = require('./tcp_tunnel');
23
+
24
+ var _tcp_tunnel2 = _interopRequireDefault(_tcp_tunnel);
25
+
26
+ var _tools = require('./tools');
27
+
28
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
29
+
30
+ var runningServers = {};
31
+
32
+ function createTunnel(proxyUrl, targetHost) {
33
+ var providedOptions = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
34
+ var callback = arguments[3];
35
+
36
+ // TODO: More and better validations - yeah, make sure targetHost is really a hostname
37
+ var _targetHost$split = targetHost.split(':'),
38
+ _targetHost$split2 = _slicedToArray(_targetHost$split, 2),
39
+ trgHostname = _targetHost$split2[0],
40
+ trgPort = _targetHost$split2[1];
41
+
42
+ if (!trgHostname || !trgPort) throw new Error('target needs to include both hostname and port.');
43
+
44
+ var parsedProxyUrl = (0, _tools.parseUrl)(proxyUrl);
45
+ if (!parsedProxyUrl.hostname) throw new Error('proxyUrl needs to include atleast hostname');
46
+ if (parsedProxyUrl.scheme !== 'http') throw new Error('Currently only "http" scheme is supported');
47
+
48
+ var options = _extends({
49
+ verbose: false,
50
+ hostname: 'localhost',
51
+ port: null
52
+ }, providedOptions);
53
+
54
+ return new _bluebird2.default(function (resolve, reject) {
55
+ if (options.port) return resolve(options.port);
56
+ (0, _tools.findFreePort)().then(resolve).catch(reject);
57
+ }).then(function (port) {
58
+ var server = _net2.default.createServer();
59
+
60
+ var log = function log() {
61
+ var _console;
62
+
63
+ if (options.verbose) (_console = console).log.apply(_console, arguments);
64
+ };
65
+
66
+ server.on('connection', function (srcSocket) {
67
+ runningServers[port].connections = srcSocket;
68
+ var remoteAddress = srcSocket.remoteAddress + ':' + srcSocket.remotePort;
69
+ log('new client connection from %s', remoteAddress);
70
+
71
+ srcSocket.pause();
72
+
73
+ var tunnel = new _tcp_tunnel2.default({
74
+ srcSocket: srcSocket,
75
+ upstreamProxyUrlParsed: parsedProxyUrl,
76
+ trgParsed: {
77
+ hostname: trgHostname,
78
+ port: trgPort
79
+ },
80
+ log: log
81
+ });
82
+
83
+ tunnel.run();
84
+
85
+ srcSocket.on('data', onConnData);
86
+ srcSocket.once('close', onConnClose);
87
+ srcSocket.on('error', onConnError);
88
+
89
+ function onConnData(d) {
90
+ log('connection data from %s: %j', remoteAddress, d);
91
+ }
92
+
93
+ function onConnClose() {
94
+ log('connection from %s closed', remoteAddress);
95
+ }
96
+
97
+ function onConnError(err) {
98
+ log('Connection %s error: %s', remoteAddress, err.message);
99
+ }
100
+ });
101
+
102
+ return new _bluebird2.default(function (resolve) {
103
+ server.listen(port, function (err) {
104
+ if (err) return reject(err);
105
+ log('server listening to ', server.address());
106
+ runningServers[port] = { server: server, connections: [] };
107
+ resolve(options.hostname + ':' + port);
108
+ });
109
+ });
110
+ }).nodeify(callback);
111
+ }
112
+
113
+ function closeTunnel(serverPath, closeConnections, callback) {
114
+ var _serverPath$split = serverPath.split(':'),
115
+ _serverPath$split2 = _slicedToArray(_serverPath$split, 2),
116
+ hostname = _serverPath$split2[0],
117
+ port = _serverPath$split2[1];
118
+
119
+ if (!hostname) throw new Error('serverPath must contain hostname');
120
+ if (!port) throw new Error('serverPath must contain port');
121
+
122
+ return new _bluebird2.default(function (resolve) {
123
+ if (!runningServers[port]) return resolve(false);
124
+ if (!closeConnections) return resolve();
125
+ runningServers[port].connections.forEach(function (connection) {
126
+ return connection.destroy();
127
+ });
128
+ resolve();
129
+ }).then(function (serverExists) {
130
+ return new _bluebird2.default(function (resolve) {
131
+ if (!serverExists) return resolve(false);
132
+ runningServers[port].close(function () {
133
+ delete runningServers[port];
134
+ resolve(true);
135
+ });
136
+ });
137
+ }).nodeify(callback);
138
+ }
@@ -1,104 +1,77 @@
1
1
  {
2
- "_from": "proxy-chain",
3
- "_id": "proxy-chain@0.2.7",
4
- "_inBundle": false,
5
- "_integrity": "sha512-e0s94WDfooeC3zQkvIJ/Eudiy/AywTQK4K6PMYbZdBE2m/eug54ThgCPdBE4txHvzi0A0gAVbX04Kt4RygTlRQ==",
6
- "_location": "/proxy-chain",
7
- "_phantomChildren": {},
8
- "_requested": {
9
- "type": "tag",
10
- "registry": true,
11
- "raw": "proxy-chain",
12
- "name": "proxy-chain",
13
- "escapedName": "proxy-chain",
14
- "rawSpec": "",
15
- "saveSpec": null,
16
- "fetchSpec": "latest"
17
- },
18
- "_requiredBy": [
19
- "#USER",
20
- "/"
2
+ "name": "proxy-chain",
3
+ "version": "0.3.2",
4
+ "description": "Node.js implementation of a proxy server (think Squid) with support for SSL, authentication, upstream proxy chaining, and protocol tunneling.",
5
+ "main": "build/index.js",
6
+ "keywords": [
7
+ "proxy",
8
+ "squid",
9
+ "apify",
10
+ "tunnel"
21
11
  ],
22
- "_resolved": "https://registry.npmjs.org/proxy-chain/-/proxy-chain-0.2.7.tgz",
23
- "_shasum": "3c24d1a487e37838b0c9fe34317c276f3401e0ec",
24
- "_spec": "proxy-chain",
25
- "_where": "/Users/sebastianjohnsson/Programming/Javascript/proxy-chain-server",
26
12
  "author": {
27
13
  "name": "Apify",
28
14
  "email": "support@apify.com",
29
15
  "url": "https://www.apify.com"
30
16
  },
17
+ "contributors": [
18
+ "Jan Curn <jan@apify.com>"
19
+ ],
20
+ "license": "Apache-2.0",
21
+ "repository": {
22
+ "type": "git",
23
+ "url": "git+https://github.com/apifytech/proxy-chain"
24
+ },
31
25
  "bugs": {
32
26
  "url": "https://github.com/apifytech/proxy-chain/issues"
33
27
  },
34
- "bundleDependencies": false,
35
- "contributors": [
36
- {
37
- "name": "Jan Curn",
38
- "email": "jan@apify.com"
39
- }
28
+ "homepage": "https://blog.apify.com/how-to-make-headless-chrome-and-puppeteer-use-a-proxy-server-with-authentication-249a21a79212",
29
+ "files": [
30
+ "build"
40
31
  ],
32
+ "scripts": {
33
+ "build": "rm -rf ./build && babel src --out-dir build",
34
+ "local-proxy": "npm run build && node ./build/run_locally.js",
35
+ "test": "npm run build && mocha --exit --recursive",
36
+ "prepare": "npm run build",
37
+ "prepublishOnly": "(test $RUNNING_FROM_SCRIPT || (echo \"You must use publish.sh instead of 'npm publish' directly!\"; exit 1)) && npm test && npm run lint",
38
+ "clean": "rm -rf build",
39
+ "lint": "npm run build && eslint src",
40
+ "lint-fix": "npm run build && eslint src --fix"
41
+ },
41
42
  "dependencies": {
42
43
  "bluebird": "^3.5.1",
43
44
  "portastic": "^1.0.1",
44
45
  "underscore": "^1.9.1"
45
46
  },
46
- "deprecated": false,
47
- "description": "Node.js implementation of a proxy server (think Squid) with support for SSL, authentication, upstream proxy chaining, and protocol tunneling.",
48
47
  "devDependencies": {
49
48
  "babel-cli": "^6.6.5",
50
49
  "babel-core": "^6.1.21",
51
- "babel-eslint": "^8.2.6",
50
+ "babel-eslint": "^10.0.3",
52
51
  "babel-preset-es2015": "^6.1.18",
53
52
  "babel-preset-stage-0": "^6.1.18",
54
53
  "basic-auth": "^2.0.0",
55
54
  "body-parser": "^1.18.2",
56
55
  "chai": "^4.0.2",
57
- "eslint": "^3.19.0",
58
- "eslint-config-airbnb": "^15.0.1",
59
- "eslint-config-airbnb-base": "^11.1.0",
56
+ "eslint": "^6.3.0",
57
+ "eslint-config-airbnb": "^18.0.1",
58
+ "eslint-config-airbnb-base": "^14.0.0",
60
59
  "eslint-plugin-import": "^2.2.0",
61
- "eslint-plugin-jsx-a11y": "^5.0.3",
62
- "eslint-plugin-promise": "^3.4.2",
60
+ "eslint-plugin-jsx-a11y": "^6.2.3",
61
+ "eslint-plugin-promise": "^4.2.1",
63
62
  "eslint-plugin-react": "^7.0.1",
64
63
  "express": "^4.16.2",
64
+ "faye-websocket": "^0.11.3",
65
65
  "https-proxy-agent": "^2.1.0",
66
66
  "isparta": "^4.0.0",
67
- "mocha": "^3.2.0",
67
+ "mocha": "^6.2.0",
68
68
  "phantomjs-prebuilt": "^2.1.16",
69
69
  "proxy": "^0.2.4",
70
70
  "request": "^2.83.0",
71
- "sinon": "^6.1.4",
71
+ "sinon": "^7.4.2",
72
72
  "sinon-stub-promise": "^4.0.0",
73
73
  "through": "^2.3.8",
74
- "ws": "^6.0.0"
75
- },
76
- "files": [
77
- "build"
78
- ],
79
- "homepage": "https://blog.apify.com/how-to-make-headless-chrome-and-puppeteer-use-a-proxy-server-with-authentication-249a21a79212",
80
- "keywords": [
81
- "proxy",
82
- "squid",
83
- "apify",
84
- "tunnel"
85
- ],
86
- "license": "Apache-2.0",
87
- "main": "build/index.js",
88
- "name": "proxy-chain",
89
- "optionalDependencies": {},
90
- "repository": {
91
- "type": "git",
92
- "url": "git+https://github.com/apifytech/proxy-chain.git"
93
- },
94
- "scripts": {
95
- "build": "rm -rf ./build && babel src --out-dir build",
96
- "clean": "rm -rf build",
97
- "lint": "npm run build && eslint src",
98
- "local-proxy": "npm run build && node ./build/run_locally.js",
99
- "prepare": "npm run build",
100
- "prepublishOnly": "(test $RUNNING_FROM_SCRIPT || (echo \"You must use publish.sh instead of 'npm publish' directly!\"; exit 1)) && npm test && npm run lint",
101
- "test": "npm run build && mocha --compilers js:babel-core/register --recursive"
74
+ "ws": "^7.1.2"
102
75
  },
103
- "version": "0.2.7"
76
+ "optionalDependencies": {}
104
77
  }
@@ -1,37 +1,21 @@
1
1
  {
2
- "_from": "underscore@^1.9.1",
3
- "_id": "underscore@1.9.1",
4
- "_inBundle": false,
5
- "_integrity": "sha512-5/4etnCkd9c8gwgowi5/om/mYO5ajCaOgdzj/oW+0eQV9WxKBDZw5+ycmKmeaTXjInS/W0BzpGLo2xR2aBwZdg==",
6
- "_location": "/underscore",
7
- "_phantomChildren": {},
8
- "_requested": {
9
- "type": "range",
10
- "registry": true,
11
- "raw": "underscore@^1.9.1",
12
- "name": "underscore",
13
- "escapedName": "underscore",
14
- "rawSpec": "^1.9.1",
15
- "saveSpec": null,
16
- "fetchSpec": "^1.9.1"
17
- },
18
- "_requiredBy": [
19
- "/proxy-chain"
2
+ "name": "underscore",
3
+ "description": "JavaScript's functional programming helper library.",
4
+ "homepage": "http://underscorejs.org",
5
+ "keywords": [
6
+ "util",
7
+ "functional",
8
+ "server",
9
+ "client",
10
+ "browser"
20
11
  ],
21
- "_resolved": "https://registry.npmjs.org/underscore/-/underscore-1.9.1.tgz",
22
- "_shasum": "06dce34a0e68a7babc29b365b8e74b8925203961",
23
- "_spec": "underscore@^1.9.1",
24
- "_where": "/Users/sebastianjohnsson/Programming/Javascript/proxy-chain-server/node_modules/proxy-chain",
25
- "author": {
26
- "name": "Jeremy Ashkenas",
27
- "email": "jeremy@documentcloud.org"
28
- },
29
- "bugs": {
30
- "url": "https://github.com/jashkenas/underscore/issues"
12
+ "author": "Jeremy Ashkenas <jeremy@documentcloud.org>",
13
+ "repository": {
14
+ "type": "git",
15
+ "url": "git://github.com/jashkenas/underscore.git"
31
16
  },
32
- "bundleDependencies": false,
33
- "deprecated": false,
34
- "description": "JavaScript's functional programming helper library.",
17
+ "main": "underscore.js",
18
+ "version": "1.9.1",
35
19
  "devDependencies": {
36
20
  "coveralls": "^2.11.2",
37
21
  "docco": "*",
@@ -41,41 +25,26 @@
41
25
  "karma-qunit": "~2.0.1",
42
26
  "nyc": "^2.1.3",
43
27
  "pretty-bytes-cli": "^1.0.0",
44
- "qunit": "^2.6.0",
45
28
  "qunit-cli": "~0.2.0",
29
+ "qunit": "^2.6.0",
46
30
  "uglify-js": "3.3.21"
47
31
  },
48
- "files": [
49
- "underscore.js",
50
- "underscore-min.js",
51
- "underscore-min.js.map"
52
- ],
53
- "homepage": "http://underscorejs.org",
54
- "keywords": [
55
- "util",
56
- "functional",
57
- "server",
58
- "client",
59
- "browser"
60
- ],
61
- "license": "MIT",
62
- "main": "underscore.js",
63
- "name": "underscore",
64
- "repository": {
65
- "type": "git",
66
- "url": "git://github.com/jashkenas/underscore.git"
67
- },
68
32
  "scripts": {
69
- "build": "npm run minify -- --source-map --source-map-url \" \" -o underscore-min.js",
33
+ "test": "npm run lint && npm run test-node",
70
34
  "coverage": "nyc npm run test-node && nyc report",
71
35
  "coveralls": "nyc npm run test-node && nyc report --reporter=text-lcov | coveralls",
72
- "doc": "docco underscore.js",
73
36
  "lint": "eslint underscore.js test/*.js",
74
- "minify": "uglifyjs underscore.js -c \"evaluate=false\" --comments \"/ .*/\" -m",
75
- "test": "npm run lint && npm run test-node",
76
- "test-browser": "npm i karma-phantomjs-launcher && karma start",
77
37
  "test-node": "qunit-cli test/*.js",
38
+ "test-browser": "npm i karma-phantomjs-launcher && karma start",
39
+ "minify": "uglifyjs underscore.js -c \"evaluate=false\" --comments \"/ .*/\" -m",
40
+ "build": "npm run minify -- --source-map --source-map-url \" \" -o underscore-min.js",
41
+ "doc": "docco underscore.js",
78
42
  "weight": "npm run minify | gzip-size | pretty-bytes"
79
43
  },
80
- "version": "1.9.1"
44
+ "license": "MIT",
45
+ "files": [
46
+ "underscore.js",
47
+ "underscore-min.js",
48
+ "underscore-min.js.map"
49
+ ]
81
50
  }
@@ -10,6 +10,6 @@
10
10
  "author": "",
11
11
  "license": "ISC",
12
12
  "dependencies": {
13
- "proxy-chain": "^0.2.7"
13
+ "proxy-chain": "^0.3.2"
14
14
  }
15
15
  }
@@ -2,13 +2,15 @@
2
2
 
3
3
  'use strict'
4
4
 
5
- if (process.argv.length != 4) {
6
- console.log("usage: node server.js proxy_url instance_id")
5
+ if (process.argv.length != 6) {
6
+ console.log("usage: node server.js proxy_url instance_id tag started")
7
7
  process.exit(0)
8
8
  }
9
9
 
10
10
  const proxyUrl = process.argv[2].trim();
11
11
  const instanceId = process.argv[3].trim();
12
+ const tag = process.argv[4].trim();
13
+ const started = process.argv[5].trim();
12
14
 
13
15
  const proxyChain = require('proxy-chain');
14
16
  let anonymizedProxyUrl = null;
@@ -0,0 +1,53 @@
1
+ # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
2
+ # yarn lockfile v1
3
+
4
+
5
+ bluebird@^2.9.34:
6
+ version "2.11.0"
7
+ resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-2.11.0.tgz#534b9033c022c9579c56ba3b3e5a5caafbb650e1"
8
+ integrity sha1-U0uQM8AiyVecVro7Plpcqvu2UOE=
9
+
10
+ bluebird@^3.5.1:
11
+ version "3.7.0"
12
+ resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.0.tgz#56a6a886e03f6ae577cffedeb524f8f2450293cf"
13
+ integrity sha512-aBQ1FxIa7kSWCcmKHlcHFlT2jt6J/l4FzC7KcPELkOJOsPOb/bccdhmIrKDfXhwFrmc7vDoDrrepFvGqjyXGJg==
14
+
15
+ commander@^2.8.1:
16
+ version "2.20.3"
17
+ resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33"
18
+ integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==
19
+
20
+ debug@^2.2.0:
21
+ version "2.6.9"
22
+ resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
23
+ integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==
24
+ dependencies:
25
+ ms "2.0.0"
26
+
27
+ ms@2.0.0:
28
+ version "2.0.0"
29
+ resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
30
+ integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=
31
+
32
+ portastic@^1.0.1:
33
+ version "1.0.1"
34
+ resolved "https://registry.yarnpkg.com/portastic/-/portastic-1.0.1.tgz#1c9805d43fae8f6a40cf0dbc7794091a2e9d0d2a"
35
+ integrity sha1-HJgF1D+uj2pAzw28d5QJGi6dDSo=
36
+ dependencies:
37
+ bluebird "^2.9.34"
38
+ commander "^2.8.1"
39
+ debug "^2.2.0"
40
+
41
+ proxy-chain@^0.3.2:
42
+ version "0.3.2"
43
+ resolved "https://registry.yarnpkg.com/proxy-chain/-/proxy-chain-0.3.2.tgz#974524e3a8e7e9b12d81a9b53bb169caa5a990f5"
44
+ integrity sha512-7I163Gc6yzM4Zx1fKStTAE6TOPG6zHYJ2zW23CDQgTd62xPDuKWRIYmfWtKWS/2Oq7Q4k5GVAgamikOwPIweCg==
45
+ dependencies:
46
+ bluebird "^3.5.1"
47
+ portastic "^1.0.1"
48
+ underscore "^1.9.1"
49
+
50
+ underscore@^1.9.1:
51
+ version "1.9.1"
52
+ resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.9.1.tgz#06dce34a0e68a7babc29b365b8e74b8925203961"
53
+ integrity sha512-5/4etnCkd9c8gwgowi5/om/mYO5ajCaOgdzj/oW+0eQV9WxKBDZw5+ycmKmeaTXjInS/W0BzpGLo2xR2aBwZdg==