diff --git a/README.md b/README.md index e1c7872..620bdbc 100644 --- a/README.md +++ b/README.md @@ -20,7 +20,7 @@ or ### Usage ```js -const is_ip_private = require('private-ip') +import is_ip_private from 'private-ip' is_ip_private('10.0.0.0') // => true diff --git a/index.js b/index.js index 9f6069c..8b584af 100644 --- a/index.js +++ b/index.js @@ -1,3 +1,4 @@ 'use strict' -module.exports = require('./lib').default +import is_ip_private from './lib/index.js' +export default is_ip_private \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 74f4378..ed44ed9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,9 +9,9 @@ "version": "2.3.4", "license": "MIT", "dependencies": { + "@chainsafe/is-ip": "^2.0.1", "ip-regex": "^4.3.0", "ipaddr.js": "^2.0.1", - "is-ip": "^3.1.0", "netmask": "^2.0.2" }, "devDependencies": { @@ -21,6 +21,11 @@ "typescript": "^4.7.4" } }, + "node_modules/@chainsafe/is-ip": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@chainsafe/is-ip/-/is-ip-2.0.1.tgz", + "integrity": "sha512-nqSJ8u2a1Rv9FYbyI8qpDhTYujaKEyLknNrTejLYoSWmdeg+2WB7R6BZqPZYfrJzDxVi3rl6ZQuoaEvpKRZWgQ==" + }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", @@ -1064,17 +1069,6 @@ "node": ">=0.10.0" } }, - "node_modules/is-ip": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-ip/-/is-ip-3.1.0.tgz", - "integrity": "sha512-35vd5necO7IitFPjd/YBeqwWnyDWbuLH9ZXQdMfDA8TEo7pv5X8yfrvVO3xbJbLUlERCMvf6X0hTUamQxCYJ9Q==", - "dependencies": { - "ip-regex": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", @@ -2029,6 +2023,11 @@ } }, "dependencies": { + "@chainsafe/is-ip": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@chainsafe/is-ip/-/is-ip-2.0.1.tgz", + "integrity": "sha512-nqSJ8u2a1Rv9FYbyI8qpDhTYujaKEyLknNrTejLYoSWmdeg+2WB7R6BZqPZYfrJzDxVi3rl6ZQuoaEvpKRZWgQ==" + }, "@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", @@ -2784,14 +2783,6 @@ "is-extglob": "^2.1.1" } }, - "is-ip": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-ip/-/is-ip-3.1.0.tgz", - "integrity": "sha512-35vd5necO7IitFPjd/YBeqwWnyDWbuLH9ZXQdMfDA8TEo7pv5X8yfrvVO3xbJbLUlERCMvf6X0hTUamQxCYJ9Q==", - "requires": { - "ip-regex": "^4.0.0" - } - }, "is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", diff --git a/package.json b/package.json index b2bbede..b701858 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,8 @@ "name": "private-ip", "version": "2.3.4", "description": "Check if IP address is private.", - "main": "index.js", + "exports": "./index.js", + "type": "module", "types": "lib/index.d.ts", "repository": { "type": "git", @@ -52,7 +53,10 @@ "dependencies": { "ip-regex": "^4.3.0", "ipaddr.js": "^2.0.1", - "is-ip": "^3.1.0", + "@chainsafe/is-ip": "^2.0.1", "netmask": "^2.0.2" + }, + "engines": { + "node": ">=14.16" } } diff --git a/src/index.ts b/src/index.ts index 2a29061..64547fe 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,7 +1,8 @@ import { Netmask } from 'netmask' import ip_regex from 'ip-regex' -import is_ip from 'is-ip' -import { isValid as is_valid, parse, IPv4 } from 'ipaddr.js' +import { isIP } from '@chainsafe/is-ip' +import ipaddr, { IPv4 } from 'ipaddr.js' +const { isValid: is_valid, parse } = ipaddr const PRIVATE_IP_RANGES = [ '0.0.0.0/8', @@ -62,7 +63,7 @@ export default (ip: string) => { if (parsed.kind() === 'ipv4') return ipv4_check((parsed as IPv4).toNormalizedString()) else if (parsed.kind() === 'ipv6') return ipv6_check(ip) - } else if (is_ip(ip) && ip_regex.v6().test(ip)) return ipv6_check(ip) + } else if (isIP(ip) && ip_regex.v6().test(ip)) return ipv6_check(ip) return undefined } diff --git a/test.js b/test.js index 27fb08a..9a12a92 100644 --- a/test.js +++ b/test.js @@ -1,5 +1,5 @@ -const test = require('ava') -const is_ip_private = require('./') +import test from 'ava' +import is_ip_private from './index.js' const pub_ips = [ '44.37.112.180', diff --git a/tsconfig.json b/tsconfig.json index 56291b4..0d75b0f 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,7 +1,8 @@ { "compilerOptions": { - "target": "es6", - "module": "commonjs", + "target": "ES2020", + "module": "ES2020", + "moduleResolution": "node", "esModuleInterop": true, "declaration": true } diff --git a/yarn.lock b/yarn.lock index 2635e6c..05b37d6 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,6 +2,11 @@ # yarn lockfile v1 +"@chainsafe/is-ip@^2.0.1": + "integrity" "sha512-nqSJ8u2a1Rv9FYbyI8qpDhTYujaKEyLknNrTejLYoSWmdeg+2WB7R6BZqPZYfrJzDxVi3rl6ZQuoaEvpKRZWgQ==" + "resolved" "https://registry.npmjs.org/@chainsafe/is-ip/-/is-ip-2.0.1.tgz" + "version" "2.0.1" + "@nodelib/fs.scandir@2.1.5": "integrity" "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==" "resolved" "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz" @@ -554,7 +559,7 @@ "resolved" "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz" "version" "2.0.4" -"ip-regex@^4.0.0", "ip-regex@^4.3.0": +"ip-regex@^4.3.0": "integrity" "sha512-B9ZWJxHHOHUhUjCPrMpLD4xEq35bUTClHM1S6CBU5ixQnkZmwipwgc96vAd7AAGM9TGHvJR+Uss+/Ak6UphK+Q==" "resolved" "https://registry.npmjs.org/ip-regex/-/ip-regex-4.3.0.tgz" "version" "4.3.0" @@ -603,13 +608,6 @@ dependencies: "is-extglob" "^2.1.1" -"is-ip@^3.1.0": - "integrity" "sha512-35vd5necO7IitFPjd/YBeqwWnyDWbuLH9ZXQdMfDA8TEo7pv5X8yfrvVO3xbJbLUlERCMvf6X0hTUamQxCYJ9Q==" - "resolved" "https://registry.npmjs.org/is-ip/-/is-ip-3.1.0.tgz" - "version" "3.1.0" - dependencies: - "ip-regex" "^4.0.0" - "is-number@^7.0.0": "integrity" "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" "resolved" "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz"