From 654a4c6b54073066b61318c3cd7a586e5620f0ae Mon Sep 17 00:00:00 2001 From: Phil Kunz Date: Sat, 23 Nov 2019 16:07:04 +0000 Subject: [PATCH] fix(core): update --- package-lock.json | 196 ++++++++++++++++++++++++ package.json | 1 + test/test.ts | 5 + ts/smartnetwork.classes.smartnetwork.ts | 9 ++ ts/smartnetwork.plugins.ts | 3 +- 5 files changed, 213 insertions(+), 1 deletion(-) diff --git a/package-lock.json b/package-lock.json index cb41fb2..a102ca4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -444,6 +444,19 @@ } } }, + "@sindresorhus/is": { + "version": "0.14.0", + "resolved": "https://verdaccio.lossless.one/@sindresorhus%2fis/-/is-0.14.0.tgz", + "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==" + }, + "@szmarczak/http-timer": { + "version": "1.1.2", + "resolved": "https://verdaccio.lossless.one/@szmarczak%2fhttp-timer/-/http-timer-1.1.2.tgz", + "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", + "requires": { + "defer-to-connect": "^1.0.1" + } + }, "@types/chai": { "version": "4.2.5", "resolved": "https://verdaccio.lossless.one/@types%2fchai/-/chai-4.2.5.tgz", @@ -688,6 +701,27 @@ "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", "dev": true }, + "cacheable-request": { + "version": "6.1.0", + "resolved": "https://verdaccio.lossless.one/cacheable-request/-/cacheable-request-6.1.0.tgz", + "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", + "requires": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^3.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^4.1.0", + "responselike": "^1.0.2" + }, + "dependencies": { + "lowercase-keys": { + "version": "2.0.0", + "resolved": "https://verdaccio.lossless.one/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==" + } + } + }, "camelcase": { "version": "5.3.1", "resolved": "https://verdaccio.lossless.one/camelcase/-/camelcase-5.3.1.tgz", @@ -777,6 +811,14 @@ "integrity": "sha1-4+JbIHrE5wGvch4staFnksrD3Fg=", "dev": true }, + "clone-response": { + "version": "1.0.2", + "resolved": "https://verdaccio.lossless.one/clone-response/-/clone-response-1.0.2.tgz", + "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", + "requires": { + "mimic-response": "^1.0.0" + } + }, "clone-stats": { "version": "1.0.0", "resolved": "https://verdaccio.lossless.one/clone-stats/-/clone-stats-1.0.0.tgz", @@ -884,6 +926,14 @@ "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", "dev": true }, + "decompress-response": { + "version": "3.3.0", + "resolved": "https://verdaccio.lossless.one/decompress-response/-/decompress-response-3.3.0.tgz", + "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", + "requires": { + "mimic-response": "^1.0.0" + } + }, "deep-eql": { "version": "3.0.1", "resolved": "https://verdaccio.lossless.one/deep-eql/-/deep-eql-3.0.1.tgz", @@ -918,6 +968,11 @@ } } }, + "defer-to-connect": { + "version": "1.1.0", + "resolved": "https://verdaccio.lossless.one/defer-to-connect/-/defer-to-connect-1.1.0.tgz", + "integrity": "sha512-WE2sZoctWm/v4smfCAdjYbrfS55JiMRdlY9ZubFhsYbteCK9+BvAx4YV7nPjYM6ZnX5BcoVKwfmyx9sIFTgQMQ==" + }, "define-properties": { "version": "1.1.3", "resolved": "https://verdaccio.lossless.one/define-properties/-/define-properties-1.1.3.tgz", @@ -944,11 +999,32 @@ "integrity": "sha512-s2+XdvhPCOF01LRQBC8hf4vhbVmI2CGS5aZnxLJlT5FtdhPCDFq80q++zK2KlrVorVDdL5BOGZ/VfLrVtYNF+Q==", "dev": true }, + "dns-packet": { + "version": "5.2.1", + "resolved": "https://verdaccio.lossless.one/dns-packet/-/dns-packet-5.2.1.tgz", + "integrity": "sha512-JHj2yJeKOqlxzeuYpN1d56GfhzivAxavNwHj9co3qptECel27B1rLY5PifJAvubsInX5pGLDjAHuCfCUc2Zv/w==", + "requires": { + "ip": "^1.1.5" + } + }, + "dns-socket": { + "version": "4.2.0", + "resolved": "https://verdaccio.lossless.one/dns-socket/-/dns-socket-4.2.0.tgz", + "integrity": "sha512-4XuD3z28jht3jvHbiom6fAipgG5LkjYeDLrX5OH8cbl0AtzTyUUAxGckcW8T7z0pLfBBV5qOiuC4wUEohk6FrQ==", + "requires": { + "dns-packet": "^5.1.2" + } + }, "draftlog": { "version": "1.0.12", "resolved": "https://verdaccio.lossless.one/draftlog/-/draftlog-1.0.12.tgz", "integrity": "sha1-fbajxbYhBrsy3Uo11nvMy2x9naA=" }, + "duplexer3": { + "version": "0.1.4", + "resolved": "https://verdaccio.lossless.one/duplexer3/-/duplexer3-0.1.4.tgz", + "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=" + }, "end-of-stream": { "version": "1.4.1", "resolved": "https://verdaccio.lossless.one/end-of-stream/-/end-of-stream-1.4.1.tgz", @@ -1169,6 +1245,34 @@ "path-is-absolute": "^1.0.0" } }, + "got": { + "version": "9.6.0", + "resolved": "https://verdaccio.lossless.one/got/-/got-9.6.0.tgz", + "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", + "requires": { + "@sindresorhus/is": "^0.14.0", + "@szmarczak/http-timer": "^1.1.2", + "cacheable-request": "^6.0.0", + "decompress-response": "^3.3.0", + "duplexer3": "^0.1.4", + "get-stream": "^4.1.0", + "lowercase-keys": "^1.0.1", + "mimic-response": "^1.0.1", + "p-cancelable": "^1.0.0", + "to-readable-stream": "^1.0.0", + "url-parse-lax": "^3.0.0" + }, + "dependencies": { + "get-stream": { + "version": "4.1.0", + "resolved": "https://verdaccio.lossless.one/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "requires": { + "pump": "^3.0.0" + } + } + } + }, "graceful-fs": { "version": "4.2.2", "resolved": "https://verdaccio.lossless.one/graceful-fs/-/graceful-fs-4.2.2.tgz", @@ -1193,6 +1297,11 @@ "resolved": "https://verdaccio.lossless.one/has-symbols/-/has-symbols-1.0.1.tgz", "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==" }, + "http-cache-semantics": { + "version": "4.0.3", + "resolved": "https://verdaccio.lossless.one/http-cache-semantics/-/http-cache-semantics-4.0.3.tgz", + "integrity": "sha512-TcIMG3qeVLgDr1TEd2XvHaTnMPwYQUQMIBLy+5pLSDKYFc7UIqj39w8EGzZkaxoLv/l2K8HaI0t5AVA+YYgUew==" + }, "http-proxy-agent": { "version": "2.1.0", "resolved": "https://verdaccio.lossless.one/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz", @@ -1247,6 +1356,16 @@ "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==", "dev": true }, + "ip": { + "version": "1.1.5", + "resolved": "https://verdaccio.lossless.one/ip/-/ip-1.1.5.tgz", + "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=" + }, + "ip-regex": { + "version": "4.1.0", + "resolved": "https://verdaccio.lossless.one/ip-regex/-/ip-regex-4.1.0.tgz", + "integrity": "sha512-pKnZpbgCTfH/1NLIlOduP/V+WRXzC2MOz3Qo8xmxk8C5GudJLgK5QyLVXOSWy3ParAH7Eemurl3xjv/WXYFvMA==" + }, "is-callable": { "version": "1.1.4", "resolved": "https://verdaccio.lossless.one/is-callable/-/is-callable-1.1.4.tgz", @@ -1263,6 +1382,14 @@ "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", "dev": true }, + "is-ip": { + "version": "3.1.0", + "resolved": "https://verdaccio.lossless.one/is-ip/-/is-ip-3.1.0.tgz", + "integrity": "sha512-35vd5necO7IitFPjd/YBeqwWnyDWbuLH9ZXQdMfDA8TEo7pv5X8yfrvVO3xbJbLUlERCMvf6X0hTUamQxCYJ9Q==", + "requires": { + "ip-regex": "^4.0.0" + } + }, "is-number": { "version": "4.0.0", "resolved": "https://verdaccio.lossless.one/is-number/-/is-number-4.0.0.tgz", @@ -1341,6 +1468,11 @@ "esprima": "^4.0.0" } }, + "json-buffer": { + "version": "3.0.0", + "resolved": "https://verdaccio.lossless.one/json-buffer/-/json-buffer-3.0.0.tgz", + "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=" + }, "jsonfile": { "version": "4.0.0", "resolved": "https://verdaccio.lossless.one/jsonfile/-/jsonfile-4.0.0.tgz", @@ -1350,6 +1482,14 @@ "graceful-fs": "^4.1.6" } }, + "keyv": { + "version": "3.1.0", + "resolved": "https://verdaccio.lossless.one/keyv/-/keyv-3.1.0.tgz", + "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", + "requires": { + "json-buffer": "3.0.0" + } + }, "kind-of": { "version": "6.0.2", "resolved": "https://verdaccio.lossless.one/kind-of/-/kind-of-6.0.2.tgz", @@ -1399,6 +1539,11 @@ "chalk": "^2.0.1" } }, + "lowercase-keys": { + "version": "1.0.1", + "resolved": "https://verdaccio.lossless.one/lowercase-keys/-/lowercase-keys-1.0.1.tgz", + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==" + }, "luxon": { "version": "1.17.2", "resolved": "https://verdaccio.lossless.one/luxon/-/luxon-1.17.2.tgz", @@ -1461,6 +1606,11 @@ "resolved": "https://verdaccio.lossless.one/mimic-fn/-/mimic-fn-2.1.0.tgz", "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==" }, + "mimic-response": { + "version": "1.0.1", + "resolved": "https://verdaccio.lossless.one/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==" + }, "min-indent": { "version": "1.0.0", "resolved": "https://verdaccio.lossless.one/min-indent/-/min-indent-1.0.0.tgz", @@ -1521,6 +1671,11 @@ "resolved": "https://verdaccio.lossless.one/normalize-newline/-/normalize-newline-3.0.0.tgz", "integrity": "sha1-HL6oBKukNgAfg5OKsh7AOdaa6dM=" }, + "normalize-url": { + "version": "4.5.0", + "resolved": "https://verdaccio.lossless.one/normalize-url/-/normalize-url-4.5.0.tgz", + "integrity": "sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==" + }, "npm-run-path": { "version": "4.0.0", "resolved": "https://verdaccio.lossless.one/npm-run-path/-/npm-run-path-4.0.0.tgz", @@ -1666,6 +1821,11 @@ } } }, + "p-cancelable": { + "version": "1.1.0", + "resolved": "https://verdaccio.lossless.one/p-cancelable/-/p-cancelable-1.1.0.tgz", + "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==" + }, "p-defer": { "version": "1.0.0", "resolved": "https://verdaccio.lossless.one/p-defer/-/p-defer-1.0.0.tgz", @@ -1752,12 +1912,27 @@ "is-number-like": "^1.0.3" } }, + "prepend-http": { + "version": "2.0.0", + "resolved": "https://verdaccio.lossless.one/prepend-http/-/prepend-http-2.0.0.tgz", + "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=" + }, "process-nextick-args": { "version": "2.0.1", "resolved": "https://verdaccio.lossless.one/process-nextick-args/-/process-nextick-args-2.0.1.tgz", "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", "dev": true }, + "public-ip": { + "version": "4.0.0", + "resolved": "https://verdaccio.lossless.one/public-ip/-/public-ip-4.0.0.tgz", + "integrity": "sha512-Q5dcQ5qLPpMSyj0iEqucTfeINHVeEhuSjjaPVEU24+6RGlvCrEM6AXwOlWW4iIn10yyWROASRuS3rgbUZIE/5g==", + "requires": { + "dns-socket": "^4.2.0", + "got": "^9.6.0", + "is-ip": "^3.1.0" + } + }, "pump": { "version": "3.0.0", "resolved": "https://verdaccio.lossless.one/pump/-/pump-3.0.0.tgz", @@ -1825,6 +2000,14 @@ "path-parse": "^1.0.6" } }, + "responselike": { + "version": "1.0.2", + "resolved": "https://verdaccio.lossless.one/responselike/-/responselike-1.0.2.tgz", + "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", + "requires": { + "lowercase-keys": "^1.0.0" + } + }, "restore-cursor": { "version": "2.0.0", "resolved": "https://verdaccio.lossless.one/restore-cursor/-/restore-cursor-2.0.0.tgz", @@ -2073,6 +2256,11 @@ "readable-stream": "2 || 3" } }, + "to-readable-stream": { + "version": "1.0.0", + "resolved": "https://verdaccio.lossless.one/to-readable-stream/-/to-readable-stream-1.0.0.tgz", + "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==" + }, "ts-node": { "version": "8.5.2", "resolved": "https://verdaccio.lossless.one/ts-node/-/ts-node-8.5.2.tgz", @@ -2151,6 +2339,14 @@ "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", "dev": true }, + "url-parse-lax": { + "version": "3.0.0", + "resolved": "https://verdaccio.lossless.one/url-parse-lax/-/url-parse-lax-3.0.0.tgz", + "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", + "requires": { + "prepend-http": "^2.0.0" + } + }, "util-deprecate": { "version": "1.0.2", "resolved": "https://verdaccio.lossless.one/util-deprecate/-/util-deprecate-1.0.2.tgz", diff --git a/package.json b/package.json index 4bfe2b2..e5109be 100644 --- a/package.json +++ b/package.json @@ -25,6 +25,7 @@ "@types/portscanner": "^2.1.0", "default-gateway": "^5.0.5", "portscanner": "^2.2.0", + "public-ip": "^4.0.0", "speedtest-net": "^1.6.0", "systeminformation": "^4.15.3" }, diff --git a/test/test.ts b/test/test.ts index a61235d..cf6a960 100644 --- a/test/test.ts +++ b/test/test.ts @@ -34,4 +34,9 @@ tap.test('should get the default gateway', async () => { console.log(gatewayResult); }); +tap.test('should get public ips', async () => { + const ips = await testSmartNetwork.getPublicIps(); + console.log(ips); +}); + tap.start(); diff --git a/ts/smartnetwork.classes.smartnetwork.ts b/ts/smartnetwork.classes.smartnetwork.ts index bc352c9..0f8213b 100644 --- a/ts/smartnetwork.classes.smartnetwork.ts +++ b/ts/smartnetwork.classes.smartnetwork.ts @@ -150,4 +150,13 @@ export class SmartNetwork { ipv6: defaultGateway[1] }; } + + public async getPublicIps () { + return { + v4: await plugins.publicIp.v4({ + timeout: 1000, + onlyHttps: true + }) + }; + } } diff --git a/ts/smartnetwork.plugins.ts b/ts/smartnetwork.plugins.ts index d3ac49b..2d400cb 100644 --- a/ts/smartnetwork.plugins.ts +++ b/ts/smartnetwork.plugins.ts @@ -11,7 +11,8 @@ export { smartpromise, smartstring }; // @third party scope import * as portscanner from 'portscanner'; +import publicIp from 'public-ip'; import speedtestNet from 'speedtest-net'; import * as systeminformation from 'systeminformation'; -export { speedtestNet, portscanner, systeminformation }; +export { portscanner, publicIp, speedtestNet, systeminformation };