cidr-regex 4.0.4 → 4.1.0

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.
@@ -0,0 +1,16 @@
1
+ type Options = {
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
+ @default false
6
+ */
7
+ readonly exact?: boolean;
8
+ };
9
+ declare const cidrRegex: {
10
+ ({ exact }?: Options): RegExp;
11
+ v4({ exact }?: Options): RegExp;
12
+ v6({ exact }?: Options): RegExp;
13
+ };
14
+ export declare const v4: ({ exact }?: Options) => RegExp;
15
+ export declare const v6: ({ exact }?: Options) => RegExp;
16
+ export default cidrRegex;
package/dist/index.js ADDED
@@ -0,0 +1,13 @@
1
+ import ipRegex from 'ip-regex';
2
+
3
+ const defaultOpts = { exact: false };
4
+ const v4str = `${ipRegex.v4().source}\\/(3[0-2]|[12]?[0-9])`;
5
+ const v6str = `${ipRegex.v6().source}\\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])`;
6
+ const v4exact = new RegExp(`^${v4str}$`);
7
+ const v6exact = new RegExp(`^${v6str}$`);
8
+ const v46exact = new RegExp(`(?:^${v4str}$)|(?:^${v6str}$)`);
9
+ const cidrRegex = ({ exact } = defaultOpts) => exact ? v46exact : new RegExp(`(?:${v4str})|(?:${v6str})`, "g");
10
+ const v4 = cidrRegex.v4 = ({ exact } = defaultOpts) => exact ? v4exact : new RegExp(v4str, "g");
11
+ const v6 = cidrRegex.v6 = ({ exact } = defaultOpts) => exact ? v6exact : new RegExp(v6str, "g");
12
+
13
+ export { cidrRegex as default, v4, v6 };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cidr-regex",
3
- "version": "4.0.4",
3
+ "version": "4.1.0",
4
4
  "description": "Regular expression for matching IP addresses in CIDR notation",
5
5
  "author": "silverwind <me@silverwind.io>",
6
6
  "contributors": [
@@ -9,25 +9,33 @@
9
9
  "repository": "silverwind/cidr-regex",
10
10
  "license": "BSD-2-Clause",
11
11
  "type": "module",
12
- "exports": "./index.js",
13
12
  "sideEffects": false,
13
+ "main": "./dist/index.js",
14
+ "exports": "./dist/index.js",
15
+ "types": "./dist/index.d.ts",
16
+ "files": [
17
+ "dist"
18
+ ],
14
19
  "engines": {
15
20
  "node": ">=14"
16
21
  },
17
- "files": [
18
- "index.js",
19
- "index.d.ts"
20
- ],
21
22
  "dependencies": {
22
23
  "ip-regex": "^5.0.0"
23
24
  },
24
25
  "devDependencies": {
26
+ "@types/node": "20.12.12",
25
27
  "eslint": "8.57.0",
26
- "eslint-config-silverwind": "83.0.1",
28
+ "eslint-config-silverwind": "85.1.4",
29
+ "eslint-config-silverwind-typescript": "3.2.7",
27
30
  "tsd": "0.31.0",
28
- "updates": "16.0.0",
29
- "versions": "12.0.1",
30
- "vitest": "1.4.0",
31
- "vitest-config-silverwind": "7.0.3"
31
+ "typescript": "5.4.5",
32
+ "typescript-config-silverwind": "4.3.2",
33
+ "updates": "16.1.1",
34
+ "versions": "12.0.2",
35
+ "vite": "5.2.11",
36
+ "vite-config-silverwind": "1.1.2",
37
+ "vite-plugin-dts": "3.9.1",
38
+ "vitest": "1.6.0",
39
+ "vitest-config-silverwind": "9.0.6"
32
40
  }
33
41
  }
package/index.d.ts DELETED
@@ -1,43 +0,0 @@
1
- export type Options = {
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
- @default false
6
- */
7
- readonly exact?: boolean;
8
- }
9
-
10
- /**
11
- @returns A regex for matching IPv4 CIDRs.
12
- */
13
- export function v4(options?: Options): RegExp;
14
-
15
- /**
16
- @returns A regex for matching IPv6 CIDRs.
17
- */
18
- export function v6(options?: Options): RegExp;
19
-
20
- /**
21
- Regular expression for matching IP addresses in CIDR notation
22
-
23
- @returns A regex for matching both IPv4 and IPv6 CIDRs.
24
-
25
- @example
26
- ```
27
- // Contains a CIDR IP address?
28
- cidrRegex().test("foo 192.168.0.1/24");
29
- //=> true
30
-
31
- // Is a CIDR IP address?
32
- cidrRegex({exact: true}).test("foo 192.168.0.1/24");
33
- //=> false
34
-
35
- cidrRegex.v6({exact: true}).test("1:2:3:4:5:6:7:8/64");
36
- //=> true
37
-
38
- // Extract CIDRs from string
39
- "foo 192.168.0.1/24 bar 1:2:3:4:5:6:7:8/64 baz".match(cidrRegex());
40
- //=> ["192.168.0.1/24", "1:2:3:4:5:6:7:8/64"]
41
- ```
42
- */
43
- export default function cidrRegex(options?: Options): RegExp;
package/index.js DELETED
@@ -1,15 +0,0 @@
1
- import ipRegex from "ip-regex";
2
-
3
- const defaultOpts = {exact: false};
4
- const v4str = `${ipRegex.v4().source}\\/(3[0-2]|[12]?[0-9])`;
5
- const v6str = `${ipRegex.v6().source}\\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])`;
6
-
7
- // pre-compile only the exact regexes as global flag makes regex objects stateful
8
- const v4exact = new RegExp(`^${v4str}$`);
9
- const v6exact = new RegExp(`^${v6str}$`);
10
- const v46exact = new RegExp(`(?:^${v4str}$)|(?:^${v6str}$)`);
11
-
12
- const cidrRegex = ({exact} = defaultOpts) => exact ? v46exact : new RegExp(`(?:${v4str})|(?:${v6str})`, "g");
13
- export const v4 = cidrRegex.v4 = ({exact} = defaultOpts) => exact ? v4exact : new RegExp(v4str, "g");
14
- export const v6 = cidrRegex.v6 = ({exact} = defaultOpts) => exact ? v6exact : new RegExp(v6str, "g");
15
- export default cidrRegex;