cidr-regex 5.0.2 → 5.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. package/dist/index.d.ts +23 -12
  2. package/dist/index.js +20 -14
  3. package/package.json +14 -15
package/dist/index.d.ts CHANGED
@@ -1,16 +1,27 @@
1
+ //#region index.d.ts
1
2
  type CidrRegexOptions = {
2
- /**
3
- Only match an exact string. Useful with `RegExp#test()` to check if a string is an IP address. *(`false` matches any IP address in a string)*
4
-
5
- @defaultValue false
6
- */
7
- readonly exact?: boolean;
3
+ /**
4
+ Only match an exact string. Useful with `RegExp#test()` to check if a string is an IP address. *(`false` matches any IP address in a string)*
5
+ @defaultValue false
6
+ */
7
+ readonly exact?: boolean;
8
8
  };
9
9
  declare const cidrRegex: {
10
- ({ exact }?: CidrRegexOptions): RegExp;
11
- v4({ exact }?: CidrRegexOptions): RegExp;
12
- v6({ exact }?: CidrRegexOptions): RegExp;
10
+ ({
11
+ exact
12
+ }?: CidrRegexOptions): RegExp;
13
+ v4: ({
14
+ exact
15
+ }?: CidrRegexOptions) => RegExp;
16
+ v6: ({
17
+ exact
18
+ }?: CidrRegexOptions) => RegExp;
13
19
  };
14
- export declare const v4: ({ exact }?: CidrRegexOptions) => RegExp;
15
- export declare const v6: ({ exact }?: CidrRegexOptions) => RegExp;
16
- export default cidrRegex;
20
+ declare const v4: ({
21
+ exact
22
+ }?: CidrRegexOptions) => RegExp;
23
+ declare const v6: ({
24
+ exact
25
+ }?: CidrRegexOptions) => RegExp;
26
+ //#endregion
27
+ export { cidrRegex as default, v4, v6 };
package/dist/index.js CHANGED
@@ -1,15 +1,21 @@
1
- import ipRegex from "ip-regex";
1
+ //#region index.ts
2
2
  const defaultOpts = { exact: false };
3
- const v4str = `${ipRegex.v4().source}\\/(3[0-2]|[12]?[0-9])`;
4
- const v6str = `${ipRegex.v6().source}\\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])`;
5
- const v4exact = new RegExp(`^${v4str}$`);
6
- const v6exact = new RegExp(`^${v6str}$`);
7
- const v46exact = new RegExp(`(?:^${v4str}$)|(?:^${v6str}$)`);
8
- const cidrRegex = ({ exact } = defaultOpts) => exact ? v46exact : new RegExp(`(?:${v4str})|(?:${v6str})`, "g");
9
- const v4 = cidrRegex.v4 = ({ exact } = defaultOpts) => exact ? v4exact : new RegExp(v4str, "g");
10
- const v6 = cidrRegex.v6 = ({ exact } = defaultOpts) => exact ? v6exact : new RegExp(v6str, "g");
11
- export {
12
- cidrRegex as default,
13
- v4,
14
- v6
15
- };
3
+ const v4src = "(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}\\/(3[0-2]|[12]?[0-9])";
4
+ const v6src = "(?:(?:[a-fA-F\\d]{1,4}:){7}(?:[a-fA-F\\d]{1,4}|:)|(?:[a-fA-F\\d]{1,4}:){6}(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}|:[a-fA-F\\d]{1,4}|:)|(?:[a-fA-F\\d]{1,4}:){5}(?::(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}|(?::[a-fA-F\\d]{1,4}){1,2}|:)|(?:[a-fA-F\\d]{1,4}:){4}(?:(?::[a-fA-F\\d]{1,4})?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}|(?::[a-fA-F\\d]{1,4}){1,3}|:)|(?:[a-fA-F\\d]{1,4}:){3}(?:(?::[a-fA-F\\d]{1,4}){0,2}:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}|(?::[a-fA-F\\d]{1,4}){1,4}|:)|(?:[a-fA-F\\d]{1,4}:){2}(?:(?::[a-fA-F\\d]{1,4}){0,3}:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}|(?::[a-fA-F\\d]{1,4}){1,5}|:)|[a-fA-F\\d]{1,4}:(?:(?::[a-fA-F\\d]{1,4}){0,4}:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}|(?::[a-fA-F\\d]{1,4}){1,6}|:)|:(?:(?::[a-fA-F\\d]{1,4}){0,5}:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}|(?::[a-fA-F\\d]{1,4}){1,7}|:))(?:%[0-9a-zA-Z]+)?\\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])";
5
+ const v46src = `${v4src}|${v6src}`;
6
+ const v4exact = new RegExp(`^${v4src}$`);
7
+ const v6exact = new RegExp(`^${v6src}$`);
8
+ const v46exact = new RegExp(`^${v4src}$|^${v6src}$`);
9
+ const v4global = new RegExp(v4src, "g");
10
+ const v6global = new RegExp(v6src, "g");
11
+ const v46global = new RegExp(v46src, "g");
12
+ function resetRegex(re) {
13
+ re.lastIndex = 0;
14
+ return re;
15
+ }
16
+ const cidrRegex = ({ exact } = defaultOpts) => exact ? v46exact : resetRegex(v46global);
17
+ const v4 = cidrRegex.v4 = ({ exact } = defaultOpts) => exact ? v4exact : resetRegex(v4global);
18
+ const v6 = cidrRegex.v6 = ({ exact } = defaultOpts) => exact ? v6exact : resetRegex(v6global);
19
+
20
+ //#endregion
21
+ export { cidrRegex as default, v4, v6 };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cidr-regex",
3
- "version": "5.0.2",
3
+ "version": "5.0.4",
4
4
  "description": "Regular expression for matching IP addresses in CIDR notation",
5
5
  "author": "silverwind <me@silverwind.io>",
6
6
  "contributors": [
@@ -19,21 +19,20 @@
19
19
  "engines": {
20
20
  "node": ">=20"
21
21
  },
22
- "dependencies": {
23
- "ip-regex": "5.0.0"
24
- },
25
22
  "devDependencies": {
26
- "@types/node": "25.0.10",
27
- "eslint": "9.39.2",
28
- "eslint-config-silverwind": "120.1.2",
23
+ "@types/node": "25.6.0",
24
+ "@typescript/native-preview": "7.0.0-dev.20260420.1",
25
+ "eslint": "10.2.1",
26
+ "eslint-config-silverwind": "131.0.5",
29
27
  "jest-extended": "7.0.0",
30
- "typescript": "5.9.3",
31
- "typescript-config-silverwind": "14.0.0",
32
- "updates": "17.0.8",
33
- "versions": "14.0.3",
34
- "vite": "7.3.1",
35
- "vite-config-silverwind": "6.0.9",
36
- "vitest": "4.0.18",
37
- "vitest-config-silverwind": "10.6.1"
28
+ "tsdown": "0.21.9",
29
+ "tsdown-config-silverwind": "2.1.0",
30
+ "typescript": "6.0.3",
31
+ "typescript-config-silverwind": "18.0.0",
32
+ "updates": "17.15.5",
33
+ "updates-config-silverwind": "2.1.0",
34
+ "versions": "15.0.0",
35
+ "vitest": "4.1.4",
36
+ "vitest-config-silverwind": "11.3.0"
38
37
  }
39
38
  }