cidr-regex 4.0.5 → 4.1.1

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,15 @@
1
+ import ipRegex from "ip-regex";
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
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cidr-regex",
3
- "version": "4.0.5",
3
+ "version": "4.1.1",
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,32 @@
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",
27
- "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"
28
+ "eslint-config-silverwind": "85.1.4",
29
+ "eslint-config-silverwind-typescript": "3.2.7",
30
+ "typescript": "5.4.5",
31
+ "typescript-config-silverwind": "4.3.2",
32
+ "updates": "16.1.1",
33
+ "versions": "12.0.2",
34
+ "vite": "5.2.11",
35
+ "vite-config-silverwind": "1.1.2",
36
+ "vite-plugin-dts": "3.9.1",
37
+ "vitest": "1.6.0",
38
+ "vitest-config-silverwind": "9.0.6"
32
39
  }
33
40
  }
package/index.d.ts DELETED
@@ -1,49 +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
- declare const _default: {
21
-
22
- /**
23
- Regular expression for matching IP addresses in CIDR notation
24
-
25
- @returns A regex for matching both IPv4 and IPv6 CIDRs.
26
-
27
- @example
28
- ```
29
- // Contains a CIDR IP address?
30
- cidrRegex().test("foo 192.168.0.1/24");
31
- //=> true
32
-
33
- // Is a CIDR IP address?
34
- cidrRegex({exact: true}).test("foo 192.168.0.1/24");
35
- //=> false
36
-
37
- cidrRegex.v6({exact: true}).test("1:2:3:4:5:6:7:8/64");
38
- //=> true
39
-
40
- // Extract CIDRs from string
41
- "foo 192.168.0.1/24 bar 1:2:3:4:5:6:7:8/64 baz".match(cidrRegex());
42
- //=> ["192.168.0.1/24", "1:2:3:4:5:6:7:8/64"]
43
- ```
44
- */
45
- (options?: Options): RegExp,
46
- v4: typeof v4;
47
- v6: typeof v6;
48
- };
49
- export default _default;
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;