summaryrefslogtreecommitdiff
path: root/includes/external/addressbook/node_modules/validator/lib/isIPRange.js
diff options
context:
space:
mode:
authorRaindropsSys <contact@minteck.org>2023-04-06 22:18:28 +0200
committerRaindropsSys <contact@minteck.org>2023-04-06 22:18:28 +0200
commit83354b2b88218090988dd6e526b0a2505b57e0f1 (patch)
treee3c73c38a122a78bb7e66fbb99056407edd9d4b9 /includes/external/addressbook/node_modules/validator/lib/isIPRange.js
parent47b8f2299a483024c4a6a8876af825a010954caa (diff)
downloadpluralconnect-83354b2b88218090988dd6e526b0a2505b57e0f1.tar.gz
pluralconnect-83354b2b88218090988dd6e526b0a2505b57e0f1.tar.bz2
pluralconnect-83354b2b88218090988dd6e526b0a2505b57e0f1.zip
Updated 5 files and added 1110 files (automated)
Diffstat (limited to 'includes/external/addressbook/node_modules/validator/lib/isIPRange.js')
-rw-r--r--includes/external/addressbook/node_modules/validator/lib/isIPRange.js62
1 files changed, 62 insertions, 0 deletions
diff --git a/includes/external/addressbook/node_modules/validator/lib/isIPRange.js b/includes/external/addressbook/node_modules/validator/lib/isIPRange.js
new file mode 100644
index 0000000..293a1a2
--- /dev/null
+++ b/includes/external/addressbook/node_modules/validator/lib/isIPRange.js
@@ -0,0 +1,62 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+ value: true
+});
+exports.default = isIPRange;
+
+var _assertString = _interopRequireDefault(require("./util/assertString"));
+
+var _isIP = _interopRequireDefault(require("./isIP"));
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+var subnetMaybe = /^\d{1,3}$/;
+var v4Subnet = 32;
+var v6Subnet = 128;
+
+function isIPRange(str) {
+ var version = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
+ (0, _assertString.default)(str);
+ var parts = str.split('/'); // parts[0] -> ip, parts[1] -> subnet
+
+ if (parts.length !== 2) {
+ return false;
+ }
+
+ if (!subnetMaybe.test(parts[1])) {
+ return false;
+ } // Disallow preceding 0 i.e. 01, 02, ...
+
+
+ if (parts[1].length > 1 && parts[1].startsWith('0')) {
+ return false;
+ }
+
+ var isValidIP = (0, _isIP.default)(parts[0], version);
+
+ if (!isValidIP) {
+ return false;
+ } // Define valid subnet according to IP's version
+
+
+ var expectedSubnet = null;
+
+ switch (String(version)) {
+ case '4':
+ expectedSubnet = v4Subnet;
+ break;
+
+ case '6':
+ expectedSubnet = v6Subnet;
+ break;
+
+ default:
+ expectedSubnet = (0, _isIP.default)(parts[0], '6') ? v6Subnet : v4Subnet;
+ }
+
+ return parts[1] <= expectedSubnet && parts[1] >= 0;
+}
+
+module.exports = exports.default;
+module.exports.default = exports.default; \ No newline at end of file