@xyo-network/shared 2.33.0-rc.8 → 2.33.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.
Files changed (38) hide show
  1. package/dist/cjs/index.d.ts +1 -0
  2. package/dist/cjs/index.d.ts.map +1 -1
  3. package/dist/cjs/index.js +1 -0
  4. package/dist/cjs/index.js.map +1 -1
  5. package/dist/cjs/is-ip/index.d.ts +2 -0
  6. package/dist/cjs/is-ip/index.d.ts.map +1 -0
  7. package/dist/cjs/is-ip/index.js +5 -0
  8. package/dist/cjs/is-ip/index.js.map +1 -0
  9. package/dist/cjs/is-ip/ip-regex.d.ts +10 -0
  10. package/dist/cjs/is-ip/ip-regex.d.ts.map +1 -0
  11. package/dist/cjs/is-ip/ip-regex.js +33 -0
  12. package/dist/cjs/is-ip/ip-regex.js.map +1 -0
  13. package/dist/cjs/is-ip/is-ip.d.ts +5 -0
  14. package/dist/cjs/is-ip/is-ip.d.ts.map +1 -0
  15. package/dist/cjs/is-ip/is-ip.js +21 -0
  16. package/dist/cjs/is-ip/is-ip.js.map +1 -0
  17. package/dist/docs.json +184 -3
  18. package/dist/esm/index.d.ts +1 -0
  19. package/dist/esm/index.d.ts.map +1 -1
  20. package/dist/esm/index.js +1 -0
  21. package/dist/esm/index.js.map +1 -1
  22. package/dist/esm/is-ip/index.d.ts +2 -0
  23. package/dist/esm/is-ip/index.d.ts.map +1 -0
  24. package/dist/esm/is-ip/index.js +2 -0
  25. package/dist/esm/is-ip/index.js.map +1 -0
  26. package/dist/esm/is-ip/ip-regex.d.ts +10 -0
  27. package/dist/esm/is-ip/ip-regex.d.ts.map +1 -0
  28. package/dist/esm/is-ip/ip-regex.js +29 -0
  29. package/dist/esm/is-ip/ip-regex.js.map +1 -0
  30. package/dist/esm/is-ip/is-ip.d.ts +5 -0
  31. package/dist/esm/is-ip/is-ip.d.ts.map +1 -0
  32. package/dist/esm/is-ip/is-ip.js +14 -0
  33. package/dist/esm/is-ip/is-ip.js.map +1 -0
  34. package/package.json +1 -2
  35. package/src/index.ts +1 -0
  36. package/src/is-ip/index.ts +1 -0
  37. package/src/is-ip/ip-regex.ts +41 -0
  38. package/src/is-ip/is-ip.ts +17 -0
@@ -1,2 +1,3 @@
1
1
  export * from './dump';
2
+ export * from './is-ip';
2
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAA;AACtB,cAAc,SAAS,CAAA"}
package/dist/cjs/index.js CHANGED
@@ -2,4 +2,5 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const tslib_1 = require("tslib");
4
4
  tslib_1.__exportStar(require("./dump"), exports);
5
+ tslib_1.__exportStar(require("./is-ip"), exports);
5
6
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AAAA,iDAAsB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AAAA,iDAAsB;AACtB,kDAAuB"}
@@ -0,0 +1,2 @@
1
+ export * from './is-ip';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/is-ip/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAA"}
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./is-ip"), exports);
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/is-ip/index.ts"],"names":[],"mappings":";;;AAAA,kDAAuB"}
@@ -0,0 +1,10 @@
1
+ export interface Options {
2
+ readonly exact?: boolean;
3
+ readonly includeBoundaries?: boolean;
4
+ }
5
+ export declare const ipRegex: {
6
+ (options: Options): RegExp;
7
+ v4(options: Options): RegExp;
8
+ v6(options: Options): RegExp;
9
+ };
10
+ //# sourceMappingURL=ip-regex.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ip-regex.d.ts","sourceRoot":"","sources":["../../../src/is-ip/ip-regex.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAA;IACxB,QAAQ,CAAC,iBAAiB,CAAC,EAAE,OAAO,CAAA;CACrC;AA6BD,eAAO,MAAM,OAAO;cAAa,OAAO;gBAKjB,OAAO;gBACP,OAAO;CAH0F,CAAA"}
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ipRegex = void 0;
4
+ const word = '[a-fA-F\\d:]';
5
+ const boundry = (options) => (options && options.includeBoundaries ? `(?:(?<=\\s|^)(?=${word})|(?<=${word})(?=\\s|$))` : '');
6
+ const v4 = '(?: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}';
7
+ const v6segment = '[a-fA-F\\d]{1,4}';
8
+ const v6 = `
9
+ (?:
10
+ (?:${v6segment}:){7}(?:${v6segment}|:)| // 1:2:3:4:5:6:7:: 1:2:3:4:5:6:7:8
11
+ (?:${v6segment}:){6}(?:${v4}|:${v6segment}|:)| // 1:2:3:4:5:6:: 1:2:3:4:5:6::8 1:2:3:4:5:6::8 1:2:3:4:5:6::1.2.3.4
12
+ (?:${v6segment}:){5}(?::${v4}|(?::${v6segment}){1,2}|:)| // 1:2:3:4:5:: 1:2:3:4:5::7:8 1:2:3:4:5::8 1:2:3:4:5::7:1.2.3.4
13
+ (?:${v6segment}:){4}(?:(?::${v6segment}){0,1}:${v4}|(?::${v6segment}){1,3}|:)| // 1:2:3:4:: 1:2:3:4::6:7:8 1:2:3:4::8 1:2:3:4::6:7:1.2.3.4
14
+ (?:${v6segment}:){3}(?:(?::${v6segment}){0,2}:${v4}|(?::${v6segment}){1,4}|:)| // 1:2:3:: 1:2:3::5:6:7:8 1:2:3::8 1:2:3::5:6:7:1.2.3.4
15
+ (?:${v6segment}:){2}(?:(?::${v6segment}){0,3}:${v4}|(?::${v6segment}){1,5}|:)| // 1:2:: 1:2::4:5:6:7:8 1:2::8 1:2::4:5:6:7:1.2.3.4
16
+ (?:${v6segment}:){1}(?:(?::${v6segment}){0,4}:${v4}|(?::${v6segment}){1,6}|:)| // 1:: 1::3:4:5:6:7:8 1::8 1::3:4:5:6:7:1.2.3.4
17
+ (?::(?:(?::${v6segment}){0,5}:${v4}|(?::${v6segment}){1,7}|:)) // ::2:3:4:5:6:7:8 ::2:3:4:5:6:7:8 ::8 ::1.2.3.4
18
+ )(?:%[0-9a-zA-Z]{1,})? // %eth0 %1
19
+ `
20
+ .replace(/\s*\/\/.*$/gm, '')
21
+ .replace(/\n/g, '')
22
+ .trim();
23
+ // Pre-compile only the exact regexes because adding a global flag make regexes stateful
24
+ const v46Exact = new RegExp(`(?:^${v4}$)|(?:^${v6}$)`);
25
+ const v4exact = new RegExp(`^${v4}$`);
26
+ const v6exact = new RegExp(`^${v6}$`);
27
+ const ipRegex = (options) => options && options.exact
28
+ ? v46Exact
29
+ : new RegExp(`(?:${boundry(options)}${v4}${boundry(options)})|(?:${boundry(options)}${v6}${boundry(options)})`, 'g');
30
+ exports.ipRegex = ipRegex;
31
+ exports.ipRegex.v4 = (options) => (options && options.exact ? v4exact : new RegExp(`${boundry(options)}${v4}${boundry(options)}`, 'g'));
32
+ exports.ipRegex.v6 = (options) => (options && options.exact ? v6exact : new RegExp(`${boundry(options)}${v6}${boundry(options)}`, 'g'));
33
+ //# sourceMappingURL=ip-regex.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ip-regex.js","sourceRoot":"","sources":["../../../src/is-ip/ip-regex.ts"],"names":[],"mappings":";;;AAAA,MAAM,IAAI,GAAG,cAAc,CAAA;AAO3B,MAAM,OAAO,GAAG,CAAC,OAAgB,EAAE,EAAE,CAAC,CAAC,OAAO,IAAI,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,mBAAmB,IAAI,SAAS,IAAI,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;AAErI,MAAM,EAAE,GAAG,gGAAgG,CAAA;AAE3G,MAAM,SAAS,GAAG,kBAAkB,CAAA;AAEpC,MAAM,EAAE,GAAG;;KAEN,SAAS,WAAW,SAAS;KAC7B,SAAS,WAAW,EAAE,KAAK,SAAS;KACpC,SAAS,YAAY,EAAE,QAAQ,SAAS;KACxC,SAAS,eAAe,SAAS,UAAU,EAAE,QAAQ,SAAS;KAC9D,SAAS,eAAe,SAAS,UAAU,EAAE,QAAQ,SAAS;KAC9D,SAAS,eAAe,SAAS,UAAU,EAAE,QAAQ,SAAS;KAC9D,SAAS,eAAe,SAAS,UAAU,EAAE,QAAQ,SAAS;aACtD,SAAS,UAAU,EAAE,QAAQ,SAAS;;CAElD;KACE,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC;KAC3B,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;KAClB,IAAI,EAAE,CAAA;AAET,wFAAwF;AACxF,MAAM,QAAQ,GAAG,IAAI,MAAM,CAAC,OAAO,EAAE,UAAU,EAAE,IAAI,CAAC,CAAA;AACtD,MAAM,OAAO,GAAG,IAAI,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;AACrC,MAAM,OAAO,GAAG,IAAI,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;AAE9B,MAAM,OAAO,GAAG,CAAC,OAAgB,EAAE,EAAE,CAC1C,OAAO,IAAI,OAAO,CAAC,KAAK;IACtB,CAAC,CAAC,QAAQ;IACV,CAAC,CAAC,IAAI,MAAM,CAAC,MAAM,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;AAH3G,QAAA,OAAO,WAGoG;AAExH,eAAO,CAAC,EAAE,GAAG,CAAC,OAAgB,EAAE,EAAE,CAAC,CAAC,OAAO,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAA;AACxI,eAAO,CAAC,EAAE,GAAG,CAAC,OAAgB,EAAE,EAAE,CAAC,CAAC,OAAO,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAA"}
@@ -0,0 +1,5 @@
1
+ export declare function isIP(value: string): boolean;
2
+ export declare function isIPv6(value: string): boolean;
3
+ export declare function isIPv4(value: string): boolean;
4
+ export declare function ipVersion(value: string): 6 | 4 | undefined;
5
+ //# sourceMappingURL=is-ip.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"is-ip.d.ts","sourceRoot":"","sources":["../../../src/is-ip/is-ip.ts"],"names":[],"mappings":"AAEA,wBAAgB,IAAI,CAAC,KAAK,EAAE,MAAM,WAEjC;AAED,wBAAgB,MAAM,CAAC,KAAK,EAAE,MAAM,WAEnC;AAED,wBAAgB,MAAM,CAAC,KAAK,EAAE,MAAM,WAEnC;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,qBAEtC"}
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ipVersion = exports.isIPv4 = exports.isIPv6 = exports.isIP = void 0;
4
+ const ip_regex_1 = require("./ip-regex");
5
+ function isIP(value) {
6
+ return (0, ip_regex_1.ipRegex)({ exact: true }).test(value);
7
+ }
8
+ exports.isIP = isIP;
9
+ function isIPv6(value) {
10
+ return ip_regex_1.ipRegex.v6({ exact: true }).test(value);
11
+ }
12
+ exports.isIPv6 = isIPv6;
13
+ function isIPv4(value) {
14
+ return ip_regex_1.ipRegex.v4({ exact: true }).test(value);
15
+ }
16
+ exports.isIPv4 = isIPv4;
17
+ function ipVersion(value) {
18
+ return isIP(value) ? (isIPv6(value) ? 6 : 4) : undefined;
19
+ }
20
+ exports.ipVersion = ipVersion;
21
+ //# sourceMappingURL=is-ip.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"is-ip.js","sourceRoot":"","sources":["../../../src/is-ip/is-ip.ts"],"names":[],"mappings":";;;AAAA,yCAAoC;AAEpC,SAAgB,IAAI,CAAC,KAAa;IAChC,OAAO,IAAA,kBAAO,EAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;AAC7C,CAAC;AAFD,oBAEC;AAED,SAAgB,MAAM,CAAC,KAAa;IAClC,OAAO,kBAAO,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;AAChD,CAAC;AAFD,wBAEC;AAED,SAAgB,MAAM,CAAC,KAAa;IAClC,OAAO,kBAAO,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;AAChD,CAAC;AAFD,wBAEC;AAED,SAAgB,SAAS,CAAC,KAAa;IACrC,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;AAC1D,CAAC;AAFD,8BAEC"}
package/dist/docs.json CHANGED
@@ -17,7 +17,7 @@
17
17
  "fileName": "dump.ts",
18
18
  "line": 1,
19
19
  "character": 13,
20
- "url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/blob/d9441ee/packages/sdk/packages/shared/src/dump.ts#L1"
20
+ "url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/blob/1daa1fa/packages/sdk/packages/shared/src/dump.ts#L1"
21
21
  }
22
22
  ],
23
23
  "signatures": [
@@ -46,13 +46,194 @@
46
46
  }
47
47
  }
48
48
  ]
49
+ },
50
+ {
51
+ "id": 13,
52
+ "name": "ipVersion",
53
+ "kind": 64,
54
+ "kindString": "Function",
55
+ "flags": {},
56
+ "sources": [
57
+ {
58
+ "fileName": "is-ip/is-ip.ts",
59
+ "line": 15,
60
+ "character": 16,
61
+ "url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/blob/1daa1fa/packages/sdk/packages/shared/src/is-ip/is-ip.ts#L15"
62
+ }
63
+ ],
64
+ "signatures": [
65
+ {
66
+ "id": 14,
67
+ "name": "ipVersion",
68
+ "kind": 4096,
69
+ "kindString": "Call signature",
70
+ "flags": {},
71
+ "parameters": [
72
+ {
73
+ "id": 15,
74
+ "name": "value",
75
+ "kind": 32768,
76
+ "kindString": "Parameter",
77
+ "flags": {},
78
+ "type": {
79
+ "type": "intrinsic",
80
+ "name": "string"
81
+ }
82
+ }
83
+ ],
84
+ "type": {
85
+ "type": "union",
86
+ "types": [
87
+ {
88
+ "type": "intrinsic",
89
+ "name": "undefined"
90
+ },
91
+ {
92
+ "type": "literal",
93
+ "value": 6
94
+ },
95
+ {
96
+ "type": "literal",
97
+ "value": 4
98
+ }
99
+ ]
100
+ }
101
+ }
102
+ ]
103
+ },
104
+ {
105
+ "id": 4,
106
+ "name": "isIP",
107
+ "kind": 64,
108
+ "kindString": "Function",
109
+ "flags": {},
110
+ "sources": [
111
+ {
112
+ "fileName": "is-ip/is-ip.ts",
113
+ "line": 3,
114
+ "character": 16,
115
+ "url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/blob/1daa1fa/packages/sdk/packages/shared/src/is-ip/is-ip.ts#L3"
116
+ }
117
+ ],
118
+ "signatures": [
119
+ {
120
+ "id": 5,
121
+ "name": "isIP",
122
+ "kind": 4096,
123
+ "kindString": "Call signature",
124
+ "flags": {},
125
+ "parameters": [
126
+ {
127
+ "id": 6,
128
+ "name": "value",
129
+ "kind": 32768,
130
+ "kindString": "Parameter",
131
+ "flags": {},
132
+ "type": {
133
+ "type": "intrinsic",
134
+ "name": "string"
135
+ }
136
+ }
137
+ ],
138
+ "type": {
139
+ "type": "intrinsic",
140
+ "name": "boolean"
141
+ }
142
+ }
143
+ ]
144
+ },
145
+ {
146
+ "id": 10,
147
+ "name": "isIPv4",
148
+ "kind": 64,
149
+ "kindString": "Function",
150
+ "flags": {},
151
+ "sources": [
152
+ {
153
+ "fileName": "is-ip/is-ip.ts",
154
+ "line": 11,
155
+ "character": 16,
156
+ "url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/blob/1daa1fa/packages/sdk/packages/shared/src/is-ip/is-ip.ts#L11"
157
+ }
158
+ ],
159
+ "signatures": [
160
+ {
161
+ "id": 11,
162
+ "name": "isIPv4",
163
+ "kind": 4096,
164
+ "kindString": "Call signature",
165
+ "flags": {},
166
+ "parameters": [
167
+ {
168
+ "id": 12,
169
+ "name": "value",
170
+ "kind": 32768,
171
+ "kindString": "Parameter",
172
+ "flags": {},
173
+ "type": {
174
+ "type": "intrinsic",
175
+ "name": "string"
176
+ }
177
+ }
178
+ ],
179
+ "type": {
180
+ "type": "intrinsic",
181
+ "name": "boolean"
182
+ }
183
+ }
184
+ ]
185
+ },
186
+ {
187
+ "id": 7,
188
+ "name": "isIPv6",
189
+ "kind": 64,
190
+ "kindString": "Function",
191
+ "flags": {},
192
+ "sources": [
193
+ {
194
+ "fileName": "is-ip/is-ip.ts",
195
+ "line": 7,
196
+ "character": 16,
197
+ "url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/blob/1daa1fa/packages/sdk/packages/shared/src/is-ip/is-ip.ts#L7"
198
+ }
199
+ ],
200
+ "signatures": [
201
+ {
202
+ "id": 8,
203
+ "name": "isIPv6",
204
+ "kind": 4096,
205
+ "kindString": "Call signature",
206
+ "flags": {},
207
+ "parameters": [
208
+ {
209
+ "id": 9,
210
+ "name": "value",
211
+ "kind": 32768,
212
+ "kindString": "Parameter",
213
+ "flags": {},
214
+ "type": {
215
+ "type": "intrinsic",
216
+ "name": "string"
217
+ }
218
+ }
219
+ ],
220
+ "type": {
221
+ "type": "intrinsic",
222
+ "name": "boolean"
223
+ }
224
+ }
225
+ ]
49
226
  }
50
227
  ],
51
228
  "groups": [
52
229
  {
53
230
  "title": "Functions",
54
231
  "children": [
55
- 1
232
+ 1,
233
+ 13,
234
+ 4,
235
+ 10,
236
+ 7
56
237
  ]
57
238
  }
58
239
  ],
@@ -61,7 +242,7 @@
61
242
  "fileName": "index.ts",
62
243
  "line": 1,
63
244
  "character": 0,
64
- "url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/blob/d9441ee/packages/sdk/packages/shared/src/index.ts#L1"
245
+ "url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/blob/1daa1fa/packages/sdk/packages/shared/src/index.ts#L1"
65
246
  }
66
247
  ]
67
248
  }
@@ -1,2 +1,3 @@
1
1
  export * from './dump';
2
+ export * from './is-ip';
2
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAA;AACtB,cAAc,SAAS,CAAA"}
package/dist/esm/index.js CHANGED
@@ -1,2 +1,3 @@
1
1
  export * from './dump';
2
+ export * from './is-ip';
2
3
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAA;AACtB,cAAc,SAAS,CAAA"}
@@ -0,0 +1,2 @@
1
+ export * from './is-ip';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/is-ip/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAA"}
@@ -0,0 +1,2 @@
1
+ export * from './is-ip';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/is-ip/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAA"}
@@ -0,0 +1,10 @@
1
+ export interface Options {
2
+ readonly exact?: boolean;
3
+ readonly includeBoundaries?: boolean;
4
+ }
5
+ export declare const ipRegex: {
6
+ (options: Options): RegExp;
7
+ v4(options: Options): RegExp;
8
+ v6(options: Options): RegExp;
9
+ };
10
+ //# sourceMappingURL=ip-regex.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ip-regex.d.ts","sourceRoot":"","sources":["../../../src/is-ip/ip-regex.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAA;IACxB,QAAQ,CAAC,iBAAiB,CAAC,EAAE,OAAO,CAAA;CACrC;AA6BD,eAAO,MAAM,OAAO;cAAa,OAAO;gBAKjB,OAAO;gBACP,OAAO;CAH0F,CAAA"}
@@ -0,0 +1,29 @@
1
+ const word = '[a-fA-F\\d:]';
2
+ const boundry = (options) => (options && options.includeBoundaries ? `(?:(?<=\\s|^)(?=${word})|(?<=${word})(?=\\s|$))` : '');
3
+ const v4 = '(?: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}';
4
+ const v6segment = '[a-fA-F\\d]{1,4}';
5
+ const v6 = `
6
+ (?:
7
+ (?:${v6segment}:){7}(?:${v6segment}|:)| // 1:2:3:4:5:6:7:: 1:2:3:4:5:6:7:8
8
+ (?:${v6segment}:){6}(?:${v4}|:${v6segment}|:)| // 1:2:3:4:5:6:: 1:2:3:4:5:6::8 1:2:3:4:5:6::8 1:2:3:4:5:6::1.2.3.4
9
+ (?:${v6segment}:){5}(?::${v4}|(?::${v6segment}){1,2}|:)| // 1:2:3:4:5:: 1:2:3:4:5::7:8 1:2:3:4:5::8 1:2:3:4:5::7:1.2.3.4
10
+ (?:${v6segment}:){4}(?:(?::${v6segment}){0,1}:${v4}|(?::${v6segment}){1,3}|:)| // 1:2:3:4:: 1:2:3:4::6:7:8 1:2:3:4::8 1:2:3:4::6:7:1.2.3.4
11
+ (?:${v6segment}:){3}(?:(?::${v6segment}){0,2}:${v4}|(?::${v6segment}){1,4}|:)| // 1:2:3:: 1:2:3::5:6:7:8 1:2:3::8 1:2:3::5:6:7:1.2.3.4
12
+ (?:${v6segment}:){2}(?:(?::${v6segment}){0,3}:${v4}|(?::${v6segment}){1,5}|:)| // 1:2:: 1:2::4:5:6:7:8 1:2::8 1:2::4:5:6:7:1.2.3.4
13
+ (?:${v6segment}:){1}(?:(?::${v6segment}){0,4}:${v4}|(?::${v6segment}){1,6}|:)| // 1:: 1::3:4:5:6:7:8 1::8 1::3:4:5:6:7:1.2.3.4
14
+ (?::(?:(?::${v6segment}){0,5}:${v4}|(?::${v6segment}){1,7}|:)) // ::2:3:4:5:6:7:8 ::2:3:4:5:6:7:8 ::8 ::1.2.3.4
15
+ )(?:%[0-9a-zA-Z]{1,})? // %eth0 %1
16
+ `
17
+ .replace(/\s*\/\/.*$/gm, '')
18
+ .replace(/\n/g, '')
19
+ .trim();
20
+ // Pre-compile only the exact regexes because adding a global flag make regexes stateful
21
+ const v46Exact = new RegExp(`(?:^${v4}$)|(?:^${v6}$)`);
22
+ const v4exact = new RegExp(`^${v4}$`);
23
+ const v6exact = new RegExp(`^${v6}$`);
24
+ export const ipRegex = (options) => options && options.exact
25
+ ? v46Exact
26
+ : new RegExp(`(?:${boundry(options)}${v4}${boundry(options)})|(?:${boundry(options)}${v6}${boundry(options)})`, 'g');
27
+ ipRegex.v4 = (options) => (options && options.exact ? v4exact : new RegExp(`${boundry(options)}${v4}${boundry(options)}`, 'g'));
28
+ ipRegex.v6 = (options) => (options && options.exact ? v6exact : new RegExp(`${boundry(options)}${v6}${boundry(options)}`, 'g'));
29
+ //# sourceMappingURL=ip-regex.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ip-regex.js","sourceRoot":"","sources":["../../../src/is-ip/ip-regex.ts"],"names":[],"mappings":"AAAA,MAAM,IAAI,GAAG,cAAc,CAAA;AAO3B,MAAM,OAAO,GAAG,CAAC,OAAgB,EAAE,EAAE,CAAC,CAAC,OAAO,IAAI,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,mBAAmB,IAAI,SAAS,IAAI,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;AAErI,MAAM,EAAE,GAAG,gGAAgG,CAAA;AAE3G,MAAM,SAAS,GAAG,kBAAkB,CAAA;AAEpC,MAAM,EAAE,GAAG;;KAEN,SAAS,WAAW,SAAS;KAC7B,SAAS,WAAW,EAAE,KAAK,SAAS;KACpC,SAAS,YAAY,EAAE,QAAQ,SAAS;KACxC,SAAS,eAAe,SAAS,UAAU,EAAE,QAAQ,SAAS;KAC9D,SAAS,eAAe,SAAS,UAAU,EAAE,QAAQ,SAAS;KAC9D,SAAS,eAAe,SAAS,UAAU,EAAE,QAAQ,SAAS;KAC9D,SAAS,eAAe,SAAS,UAAU,EAAE,QAAQ,SAAS;aACtD,SAAS,UAAU,EAAE,QAAQ,SAAS;;CAElD;KACE,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC;KAC3B,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;KAClB,IAAI,EAAE,CAAA;AAET,wFAAwF;AACxF,MAAM,QAAQ,GAAG,IAAI,MAAM,CAAC,OAAO,EAAE,UAAU,EAAE,IAAI,CAAC,CAAA;AACtD,MAAM,OAAO,GAAG,IAAI,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;AACrC,MAAM,OAAO,GAAG,IAAI,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;AAErC,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,OAAgB,EAAE,EAAE,CAC1C,OAAO,IAAI,OAAO,CAAC,KAAK;IACtB,CAAC,CAAC,QAAQ;IACV,CAAC,CAAC,IAAI,MAAM,CAAC,MAAM,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;AAExH,OAAO,CAAC,EAAE,GAAG,CAAC,OAAgB,EAAE,EAAE,CAAC,CAAC,OAAO,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAA;AACxI,OAAO,CAAC,EAAE,GAAG,CAAC,OAAgB,EAAE,EAAE,CAAC,CAAC,OAAO,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAA"}
@@ -0,0 +1,5 @@
1
+ export declare function isIP(value: string): boolean;
2
+ export declare function isIPv6(value: string): boolean;
3
+ export declare function isIPv4(value: string): boolean;
4
+ export declare function ipVersion(value: string): 6 | 4 | undefined;
5
+ //# sourceMappingURL=is-ip.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"is-ip.d.ts","sourceRoot":"","sources":["../../../src/is-ip/is-ip.ts"],"names":[],"mappings":"AAEA,wBAAgB,IAAI,CAAC,KAAK,EAAE,MAAM,WAEjC;AAED,wBAAgB,MAAM,CAAC,KAAK,EAAE,MAAM,WAEnC;AAED,wBAAgB,MAAM,CAAC,KAAK,EAAE,MAAM,WAEnC;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,qBAEtC"}
@@ -0,0 +1,14 @@
1
+ import { ipRegex } from './ip-regex';
2
+ export function isIP(value) {
3
+ return ipRegex({ exact: true }).test(value);
4
+ }
5
+ export function isIPv6(value) {
6
+ return ipRegex.v6({ exact: true }).test(value);
7
+ }
8
+ export function isIPv4(value) {
9
+ return ipRegex.v4({ exact: true }).test(value);
10
+ }
11
+ export function ipVersion(value) {
12
+ return isIP(value) ? (isIPv6(value) ? 6 : 4) : undefined;
13
+ }
14
+ //# sourceMappingURL=is-ip.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"is-ip.js","sourceRoot":"","sources":["../../../src/is-ip/is-ip.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AAEpC,MAAM,UAAU,IAAI,CAAC,KAAa;IAChC,OAAO,OAAO,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;AAC7C,CAAC;AAED,MAAM,UAAU,MAAM,CAAC,KAAa;IAClC,OAAO,OAAO,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;AAChD,CAAC;AAED,MAAM,UAAU,MAAM,CAAC,KAAa;IAClC,OAAO,OAAO,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;AAChD,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,KAAa;IACrC,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;AAC1D,CAAC"}
package/package.json CHANGED
@@ -45,6 +45,5 @@
45
45
  },
46
46
  "sideEffects": false,
47
47
  "types": "dist/esm/index.d.ts",
48
- "version": "2.33.0-rc.8",
49
- "stableVersion": "2.32.1"
48
+ "version": "2.33.0"
50
49
  }
package/src/index.ts CHANGED
@@ -1 +1,2 @@
1
1
  export * from './dump'
2
+ export * from './is-ip'
@@ -0,0 +1 @@
1
+ export * from './is-ip'
@@ -0,0 +1,41 @@
1
+ const word = '[a-fA-F\\d:]'
2
+
3
+ export interface Options {
4
+ readonly exact?: boolean
5
+ readonly includeBoundaries?: boolean
6
+ }
7
+
8
+ const boundry = (options: Options) => (options && options.includeBoundaries ? `(?:(?<=\\s|^)(?=${word})|(?<=${word})(?=\\s|$))` : '')
9
+
10
+ const v4 = '(?: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}'
11
+
12
+ const v6segment = '[a-fA-F\\d]{1,4}'
13
+
14
+ const v6 = `
15
+ (?:
16
+ (?:${v6segment}:){7}(?:${v6segment}|:)| // 1:2:3:4:5:6:7:: 1:2:3:4:5:6:7:8
17
+ (?:${v6segment}:){6}(?:${v4}|:${v6segment}|:)| // 1:2:3:4:5:6:: 1:2:3:4:5:6::8 1:2:3:4:5:6::8 1:2:3:4:5:6::1.2.3.4
18
+ (?:${v6segment}:){5}(?::${v4}|(?::${v6segment}){1,2}|:)| // 1:2:3:4:5:: 1:2:3:4:5::7:8 1:2:3:4:5::8 1:2:3:4:5::7:1.2.3.4
19
+ (?:${v6segment}:){4}(?:(?::${v6segment}){0,1}:${v4}|(?::${v6segment}){1,3}|:)| // 1:2:3:4:: 1:2:3:4::6:7:8 1:2:3:4::8 1:2:3:4::6:7:1.2.3.4
20
+ (?:${v6segment}:){3}(?:(?::${v6segment}){0,2}:${v4}|(?::${v6segment}){1,4}|:)| // 1:2:3:: 1:2:3::5:6:7:8 1:2:3::8 1:2:3::5:6:7:1.2.3.4
21
+ (?:${v6segment}:){2}(?:(?::${v6segment}){0,3}:${v4}|(?::${v6segment}){1,5}|:)| // 1:2:: 1:2::4:5:6:7:8 1:2::8 1:2::4:5:6:7:1.2.3.4
22
+ (?:${v6segment}:){1}(?:(?::${v6segment}){0,4}:${v4}|(?::${v6segment}){1,6}|:)| // 1:: 1::3:4:5:6:7:8 1::8 1::3:4:5:6:7:1.2.3.4
23
+ (?::(?:(?::${v6segment}){0,5}:${v4}|(?::${v6segment}){1,7}|:)) // ::2:3:4:5:6:7:8 ::2:3:4:5:6:7:8 ::8 ::1.2.3.4
24
+ )(?:%[0-9a-zA-Z]{1,})? // %eth0 %1
25
+ `
26
+ .replace(/\s*\/\/.*$/gm, '')
27
+ .replace(/\n/g, '')
28
+ .trim()
29
+
30
+ // Pre-compile only the exact regexes because adding a global flag make regexes stateful
31
+ const v46Exact = new RegExp(`(?:^${v4}$)|(?:^${v6}$)`)
32
+ const v4exact = new RegExp(`^${v4}$`)
33
+ const v6exact = new RegExp(`^${v6}$`)
34
+
35
+ export const ipRegex = (options: Options) =>
36
+ options && options.exact
37
+ ? v46Exact
38
+ : new RegExp(`(?:${boundry(options)}${v4}${boundry(options)})|(?:${boundry(options)}${v6}${boundry(options)})`, 'g')
39
+
40
+ ipRegex.v4 = (options: Options) => (options && options.exact ? v4exact : new RegExp(`${boundry(options)}${v4}${boundry(options)}`, 'g'))
41
+ ipRegex.v6 = (options: Options) => (options && options.exact ? v6exact : new RegExp(`${boundry(options)}${v6}${boundry(options)}`, 'g'))
@@ -0,0 +1,17 @@
1
+ import { ipRegex } from './ip-regex'
2
+
3
+ export function isIP(value: string) {
4
+ return ipRegex({ exact: true }).test(value)
5
+ }
6
+
7
+ export function isIPv6(value: string) {
8
+ return ipRegex.v6({ exact: true }).test(value)
9
+ }
10
+
11
+ export function isIPv4(value: string) {
12
+ return ipRegex.v4({ exact: true }).test(value)
13
+ }
14
+
15
+ export function ipVersion(value: string) {
16
+ return isIP(value) ? (isIPv6(value) ? 6 : 4) : undefined
17
+ }