pingman 1.2.0 → 2.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.
- package/LICENSE +21 -21
- package/README.md +57 -45
- package/dist/src/builder/builder.d.ts +3 -3
- package/dist/src/builder/builder.js +31 -30
- package/dist/src/builder/builder.js.map +1 -0
- package/dist/src/builder/linux.d.ts +3 -3
- package/dist/src/builder/linux.js +83 -82
- package/dist/src/builder/linux.js.map +1 -0
- package/dist/src/builder/mac.d.ts +3 -3
- package/dist/src/builder/mac.js +89 -88
- package/dist/src/builder/mac.js.map +1 -0
- package/dist/src/builder/windows.d.ts +3 -3
- package/dist/src/builder/windows.js +94 -93
- package/dist/src/builder/windows.js.map +1 -0
- package/dist/src/errors.d.ts +10 -10
- package/dist/src/errors.js +26 -25
- package/dist/src/errors.js.map +1 -0
- package/dist/src/helper.d.ts +2 -2
- package/dist/src/helper.js +34 -33
- package/dist/src/helper.js.map +1 -0
- package/dist/src/index.d.ts +4 -4
- package/dist/src/index.js +57 -56
- package/dist/src/index.js.map +1 -0
- package/dist/src/log.d.ts +7 -7
- package/dist/src/log.js +26 -25
- package/dist/src/log.js.map +1 -0
- package/dist/src/messages.d.ts +9 -9
- package/dist/src/messages.js +13 -12
- package/dist/src/messages.js.map +1 -0
- package/dist/src/parser/clonePingResponse.d.ts +3 -0
- package/dist/src/parser/clonePingResponse.js +21 -0
- package/dist/src/parser/clonePingResponse.js.map +1 -0
- package/dist/src/parser/linux.d.ts +7 -7
- package/dist/src/parser/linux.js +31 -30
- package/dist/src/parser/linux.js.map +1 -0
- package/dist/src/parser/mac.d.ts +11 -11
- package/dist/src/parser/mac.js +47 -46
- package/dist/src/parser/mac.js.map +1 -0
- package/dist/src/parser/parser.interface.d.ts +8 -8
- package/dist/src/parser/parser.interface.js +3 -2
- package/dist/src/parser/parser.interface.js.map +1 -0
- package/dist/src/parser/parserFactory.d.ts +3 -3
- package/dist/src/parser/parserFactory.js +125 -122
- package/dist/src/parser/parserFactory.js.map +1 -0
- package/dist/src/parser/windows.d.ts +13 -13
- package/dist/src/parser/windows.js +111 -110
- package/dist/src/parser/windows.js.map +1 -0
- package/dist/src/ping.d.ts +3 -3
- package/dist/src/ping.js +23 -22
- package/dist/src/ping.js.map +1 -0
- package/dist/src/types.d.ts +44 -44
- package/dist/src/types.js +3 -2
- package/dist/src/types.js.map +1 -0
- package/package.json +6 -5
|
@@ -1,110 +1,111 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
class windows {
|
|
4
|
-
constructor(response, options) {
|
|
5
|
-
this.config = options;
|
|
6
|
-
this.response = response;
|
|
7
|
-
this.response.times = [];
|
|
8
|
-
}
|
|
9
|
-
processHeader(line) {
|
|
10
|
-
let isPingNumeric = line.indexOf('[') === -1;
|
|
11
|
-
const ipv4v6Regex = /((^\s*((([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))\s*$)|(^\s*((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(%.+)?\s*$))/;
|
|
12
|
-
// Get host and numeric_host
|
|
13
|
-
let words = line.split(' ');
|
|
14
|
-
if (isPingNumeric) {
|
|
15
|
-
// For those missing [***], get the first token which match IPV4 regex
|
|
16
|
-
this.response.host = words.find((word) => {
|
|
17
|
-
return ipv4v6Regex.test(word);
|
|
18
|
-
});
|
|
19
|
-
this.response.numericHost = this.response.host;
|
|
20
|
-
}
|
|
21
|
-
else {
|
|
22
|
-
// For those has [***], anchor with such token
|
|
23
|
-
let numericHost = words.find(function (word) {
|
|
24
|
-
return word.indexOf('[') !== -1;
|
|
25
|
-
});
|
|
26
|
-
if (numericHost) {
|
|
27
|
-
let numericHostIndex = words.indexOf(numericHost);
|
|
28
|
-
let match = /\[(.*)\]/.exec(numericHost);
|
|
29
|
-
if (match) {
|
|
30
|
-
// Capture IP inside [] only. refs #71
|
|
31
|
-
this.response.numericHost = match[1];
|
|
32
|
-
}
|
|
33
|
-
this.response.host = words[numericHostIndex - 1];
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
processBody(line) {
|
|
38
|
-
var _a;
|
|
39
|
-
let isIPV6 = (_a = this.config) === null || _a === void 0 ? void 0 : _a.IPV6;
|
|
40
|
-
let words = line.split(' ');
|
|
41
|
-
let dataFields = words.filter((word) => {
|
|
42
|
-
let isDataField = word.indexOf('=') >= 0 || word.indexOf('<') >= 0;
|
|
43
|
-
return isDataField;
|
|
44
|
-
});
|
|
45
|
-
//if IPV6, body does not have as many fields as IPV4 based on testing
|
|
46
|
-
if (isIPV6) {
|
|
47
|
-
this.processIPV6Body(dataFields);
|
|
48
|
-
}
|
|
49
|
-
else {
|
|
50
|
-
this.processIPV4Body(dataFields);
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
processFooter(line) {
|
|
54
|
-
let packetLoss = line.match(/([\d.]+)%/);
|
|
55
|
-
if (packetLoss) {
|
|
56
|
-
this.response.packetLoss = packetLoss[1];
|
|
57
|
-
}
|
|
58
|
-
// XXX: Assume there is a keyword ms
|
|
59
|
-
if (line.search(/(ms|мсек)/i) >= 0) {
|
|
60
|
-
// XXX: Assume the ordering is Min Max Avg
|
|
61
|
-
let regExp = /([0-9.]+)/g;
|
|
62
|
-
let m1 = regExp.exec(line);
|
|
63
|
-
let m2 = regExp.exec(line);
|
|
64
|
-
let m3 = regExp.exec(line);
|
|
65
|
-
m1 ? this.response.min = parseFloat(m1[1]) : null;
|
|
66
|
-
m2 ? this.response.max = parseFloat(m2[1]) : null;
|
|
67
|
-
m3 ? this.response.avg = parseFloat(m3[1]) : null;
|
|
68
|
-
}
|
|
69
|
-
return this.response;
|
|
70
|
-
}
|
|
71
|
-
//method to process IPV4 Specific Body
|
|
72
|
-
processIPV4Body(dataFields) {
|
|
73
|
-
var _a, _b;
|
|
74
|
-
const expectDataFieldInReplyLine = 3;
|
|
75
|
-
let isReplyLine = dataFields.length >= expectDataFieldInReplyLine;
|
|
76
|
-
if (isReplyLine) {
|
|
77
|
-
// XXX: Assume time will alaways get keyword ms for all language
|
|
78
|
-
let timeField = dataFields.find((field) => {
|
|
79
|
-
return field.search(/(ms|мс)/i) >= 0;
|
|
80
|
-
});
|
|
81
|
-
if (timeField) {
|
|
82
|
-
let regExp = /([0-9.]+)/;
|
|
83
|
-
let match = regExp.exec(timeField);
|
|
84
|
-
let timeFieldIndex = dataFields.indexOf(timeField);
|
|
85
|
-
match ? (_b = (_a = this.response) === null || _a === void 0 ? void 0 : _a.times) === null || _b === void 0 ? void 0 : _b.push(parseFloat(match[1])) : null;
|
|
86
|
-
// XXX: Assume byte field will be just before the time field
|
|
87
|
-
let bytesField = dataFields[timeFieldIndex - 1];
|
|
88
|
-
match = regExp.exec(bytesField);
|
|
89
|
-
match ? this.response.bufferSize = parseFloat(match[1]) : null;
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
//method to process IPV6 Specific Body
|
|
94
|
-
processIPV6Body(dataFields) {
|
|
95
|
-
var _a, _b;
|
|
96
|
-
let expectDataFieldInReplyLine = 1;
|
|
97
|
-
if (dataFields.length >= expectDataFieldInReplyLine) {
|
|
98
|
-
// XXX: Assume time will alaways get keyword ms for all language
|
|
99
|
-
let timeField = dataFields.find((dataField) => {
|
|
100
|
-
return dataField.search(/(ms|мс)/i) >= 0;
|
|
101
|
-
});
|
|
102
|
-
const regExp = /([0-9.]+)/;
|
|
103
|
-
if (timeField) {
|
|
104
|
-
let match = regExp.exec(timeField);
|
|
105
|
-
match ? (_b = (_a = this.response) === null || _a === void 0 ? void 0 : _a.times) === null || _b === void 0 ? void 0 : _b.push(parseFloat(match[1])) : null;
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
exports.default = windows;
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
class windows {
|
|
4
|
+
constructor(response, options) {
|
|
5
|
+
this.config = options;
|
|
6
|
+
this.response = response;
|
|
7
|
+
this.response.times = [];
|
|
8
|
+
}
|
|
9
|
+
processHeader(line) {
|
|
10
|
+
let isPingNumeric = line.indexOf('[') === -1;
|
|
11
|
+
const ipv4v6Regex = /((^\s*((([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))\s*$)|(^\s*((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(%.+)?\s*$))/;
|
|
12
|
+
// Get host and numeric_host
|
|
13
|
+
let words = line.split(' ');
|
|
14
|
+
if (isPingNumeric) {
|
|
15
|
+
// For those missing [***], get the first token which match IPV4 regex
|
|
16
|
+
this.response.host = words.find((word) => {
|
|
17
|
+
return ipv4v6Regex.test(word);
|
|
18
|
+
});
|
|
19
|
+
this.response.numericHost = this.response.host;
|
|
20
|
+
}
|
|
21
|
+
else {
|
|
22
|
+
// For those has [***], anchor with such token
|
|
23
|
+
let numericHost = words.find(function (word) {
|
|
24
|
+
return word.indexOf('[') !== -1;
|
|
25
|
+
});
|
|
26
|
+
if (numericHost) {
|
|
27
|
+
let numericHostIndex = words.indexOf(numericHost);
|
|
28
|
+
let match = /\[(.*)\]/.exec(numericHost);
|
|
29
|
+
if (match) {
|
|
30
|
+
// Capture IP inside [] only. refs #71
|
|
31
|
+
this.response.numericHost = match[1];
|
|
32
|
+
}
|
|
33
|
+
this.response.host = words[numericHostIndex - 1];
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
processBody(line) {
|
|
38
|
+
var _a;
|
|
39
|
+
let isIPV6 = (_a = this.config) === null || _a === void 0 ? void 0 : _a.IPV6;
|
|
40
|
+
let words = line.split(' ');
|
|
41
|
+
let dataFields = words.filter((word) => {
|
|
42
|
+
let isDataField = word.indexOf('=') >= 0 || word.indexOf('<') >= 0;
|
|
43
|
+
return isDataField;
|
|
44
|
+
});
|
|
45
|
+
//if IPV6, body does not have as many fields as IPV4 based on testing
|
|
46
|
+
if (isIPV6) {
|
|
47
|
+
this.processIPV6Body(dataFields);
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
this.processIPV4Body(dataFields);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
processFooter(line) {
|
|
54
|
+
let packetLoss = line.match(/([\d.]+)%/);
|
|
55
|
+
if (packetLoss) {
|
|
56
|
+
this.response.packetLoss = packetLoss[1];
|
|
57
|
+
}
|
|
58
|
+
// XXX: Assume there is a keyword ms
|
|
59
|
+
if (line.search(/(ms|мсек)/i) >= 0) {
|
|
60
|
+
// XXX: Assume the ordering is Min Max Avg
|
|
61
|
+
let regExp = /([0-9.]+)/g;
|
|
62
|
+
let m1 = regExp.exec(line);
|
|
63
|
+
let m2 = regExp.exec(line);
|
|
64
|
+
let m3 = regExp.exec(line);
|
|
65
|
+
m1 ? this.response.min = parseFloat(m1[1]) : null;
|
|
66
|
+
m2 ? this.response.max = parseFloat(m2[1]) : null;
|
|
67
|
+
m3 ? this.response.avg = parseFloat(m3[1]) : null;
|
|
68
|
+
}
|
|
69
|
+
return this.response;
|
|
70
|
+
}
|
|
71
|
+
//method to process IPV4 Specific Body
|
|
72
|
+
processIPV4Body(dataFields) {
|
|
73
|
+
var _a, _b;
|
|
74
|
+
const expectDataFieldInReplyLine = 3;
|
|
75
|
+
let isReplyLine = dataFields.length >= expectDataFieldInReplyLine;
|
|
76
|
+
if (isReplyLine) {
|
|
77
|
+
// XXX: Assume time will alaways get keyword ms for all language
|
|
78
|
+
let timeField = dataFields.find((field) => {
|
|
79
|
+
return field.search(/(ms|мс)/i) >= 0;
|
|
80
|
+
});
|
|
81
|
+
if (timeField) {
|
|
82
|
+
let regExp = /([0-9.]+)/;
|
|
83
|
+
let match = regExp.exec(timeField);
|
|
84
|
+
let timeFieldIndex = dataFields.indexOf(timeField);
|
|
85
|
+
match ? (_b = (_a = this.response) === null || _a === void 0 ? void 0 : _a.times) === null || _b === void 0 ? void 0 : _b.push(parseFloat(match[1])) : null;
|
|
86
|
+
// XXX: Assume byte field will be just before the time field
|
|
87
|
+
let bytesField = dataFields[timeFieldIndex - 1];
|
|
88
|
+
match = regExp.exec(bytesField);
|
|
89
|
+
match ? this.response.bufferSize = parseFloat(match[1]) : null;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
//method to process IPV6 Specific Body
|
|
94
|
+
processIPV6Body(dataFields) {
|
|
95
|
+
var _a, _b;
|
|
96
|
+
let expectDataFieldInReplyLine = 1;
|
|
97
|
+
if (dataFields.length >= expectDataFieldInReplyLine) {
|
|
98
|
+
// XXX: Assume time will alaways get keyword ms for all language
|
|
99
|
+
let timeField = dataFields.find((dataField) => {
|
|
100
|
+
return dataField.search(/(ms|мс)/i) >= 0;
|
|
101
|
+
});
|
|
102
|
+
const regExp = /([0-9.]+)/;
|
|
103
|
+
if (timeField) {
|
|
104
|
+
let match = regExp.exec(timeField);
|
|
105
|
+
match ? (_b = (_a = this.response) === null || _a === void 0 ? void 0 : _a.times) === null || _b === void 0 ? void 0 : _b.push(parseFloat(match[1])) : null;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
exports.default = windows;
|
|
111
|
+
//# sourceMappingURL=windows.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"windows.js","sourceRoot":"","sources":["../../../src/parser/windows.ts"],"names":[],"mappings":"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"}
|
package/dist/src/ping.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { commandBuilder } from "./types";
|
|
2
|
-
declare const execute: (builtCommand: commandBuilder) => Promise<any>;
|
|
3
|
-
export default execute;
|
|
1
|
+
import { commandBuilder } from "./types";
|
|
2
|
+
declare const execute: (builtCommand: commandBuilder) => Promise<any>;
|
|
3
|
+
export default execute;
|
package/dist/src/ping.js
CHANGED
|
@@ -1,22 +1,23 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const child_process_1 = require("child_process");
|
|
4
|
-
const errors_1 = require("./errors");
|
|
5
|
-
const messages_1 = require("./messages");
|
|
6
|
-
const execute = async (builtCommand) => {
|
|
7
|
-
let output = [];
|
|
8
|
-
return new Promise((resolve, reject) => {
|
|
9
|
-
var _a;
|
|
10
|
-
const ping = (0, child_process_1.spawn)(builtCommand.command, builtCommand.arguments);
|
|
11
|
-
ping.once("error", () => {
|
|
12
|
-
reject(new errors_1.pingError(messages_1.ERROR_MESSAGES.GENERAL_PING_ERROR.replace("cmd", builtCommand.command).replace("args", builtCommand.arguments.toString())));
|
|
13
|
-
});
|
|
14
|
-
(_a = ping.stdout) === null || _a === void 0 ? void 0 : _a.on('data', (data) => {
|
|
15
|
-
output.push(String(data));
|
|
16
|
-
});
|
|
17
|
-
ping.on("close", () => {
|
|
18
|
-
resolve(output);
|
|
19
|
-
});
|
|
20
|
-
});
|
|
21
|
-
};
|
|
22
|
-
exports.default = execute;
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const child_process_1 = require("child_process");
|
|
4
|
+
const errors_1 = require("./errors");
|
|
5
|
+
const messages_1 = require("./messages");
|
|
6
|
+
const execute = async (builtCommand) => {
|
|
7
|
+
let output = [];
|
|
8
|
+
return new Promise((resolve, reject) => {
|
|
9
|
+
var _a;
|
|
10
|
+
const ping = (0, child_process_1.spawn)(builtCommand.command, builtCommand.arguments);
|
|
11
|
+
ping.once("error", () => {
|
|
12
|
+
reject(new errors_1.pingError(messages_1.ERROR_MESSAGES.GENERAL_PING_ERROR.replace("cmd", builtCommand.command).replace("args", builtCommand.arguments.toString())));
|
|
13
|
+
});
|
|
14
|
+
(_a = ping.stdout) === null || _a === void 0 ? void 0 : _a.on('data', (data) => {
|
|
15
|
+
output.push(String(data));
|
|
16
|
+
});
|
|
17
|
+
ping.on("close", () => {
|
|
18
|
+
resolve(output);
|
|
19
|
+
});
|
|
20
|
+
});
|
|
21
|
+
};
|
|
22
|
+
exports.default = execute;
|
|
23
|
+
//# sourceMappingURL=ping.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ping.js","sourceRoot":"","sources":["../../src/ping.ts"],"names":[],"mappings":";;AACA,iDAAqC;AACrC,qCAAoC;AACpC,yCAA2C;AAE3C,MAAM,OAAO,GAAG,KAAK,EAAE,YAA4B,EAAgB,EAAE;IACjE,IAAI,MAAM,GAAkB,EAAE,CAAC;IAC/B,OAAO,IAAI,OAAO,CAAM,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;;QACxC,MAAM,IAAI,GAAG,IAAA,qBAAK,EAAC,YAAY,CAAC,OAAO,EAAE,YAAY,CAAC,SAAS,CAAC,CAAC;QACjE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE;YACpB,MAAM,CACJ,IAAI,kBAAS,CACX,yBAAc,CAAC,kBAAkB,CAAC,OAAO,CACvC,KAAK,EACL,YAAY,CAAC,OAAO,CACrB,CAAC,OAAO,CAAC,MAAM,EAAE,YAAY,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,CACrD,CACF,CAAC;QACN,CAAC,CAAC,CAAC;QACH,MAAA,IAAI,CAAC,MAAM,0CAAE,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;YAC7B,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QAC9B,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;YAClB,OAAO,CAAC,MAAM,CAAC,CAAC;QACpB,CAAC,CAAC,CAAA;IACN,CAAC,CAAC,CAAA;AACN,CAAC,CAAA;AAED,kBAAe,OAAO,CAAC"}
|
package/dist/src/types.d.ts
CHANGED
|
@@ -1,44 +1,44 @@
|
|
|
1
|
-
export interface extendedPingOptions extends pingOptions {
|
|
2
|
-
recordRouteHops?: number;
|
|
3
|
-
hopTimestamp?: number;
|
|
4
|
-
interval?: number;
|
|
5
|
-
soDebugOption?: boolean;
|
|
6
|
-
floodPing?: boolean;
|
|
7
|
-
interfaceAddress?: string;
|
|
8
|
-
suppressLoopback?: boolean;
|
|
9
|
-
pattern?: string;
|
|
10
|
-
quiet?: boolean;
|
|
11
|
-
timeBeforeExit?: number;
|
|
12
|
-
verboseOutput?: boolean;
|
|
13
|
-
doNotFragment?: boolean;
|
|
14
|
-
srcAddr?: string;
|
|
15
|
-
}
|
|
16
|
-
export interface pingOptions {
|
|
17
|
-
numeric?: boolean;
|
|
18
|
-
bufferSize?: number;
|
|
19
|
-
logToFile?: boolean;
|
|
20
|
-
logFilePath?: string;
|
|
21
|
-
IPV6?: boolean;
|
|
22
|
-
IPV4?: boolean;
|
|
23
|
-
numberOfEchos?: number;
|
|
24
|
-
TTL?: number;
|
|
25
|
-
timeout?: number;
|
|
26
|
-
}
|
|
27
|
-
export type commandBuilder = {
|
|
28
|
-
command: string;
|
|
29
|
-
arguments: string[];
|
|
30
|
-
};
|
|
31
|
-
export type pingResponse = {
|
|
32
|
-
host: string | undefined;
|
|
33
|
-
numericHost: string | undefined;
|
|
34
|
-
alive: boolean | undefined;
|
|
35
|
-
output: string | undefined;
|
|
36
|
-
time: number | undefined;
|
|
37
|
-
times: Array<number>;
|
|
38
|
-
min: number | undefined;
|
|
39
|
-
max: number | undefined;
|
|
40
|
-
avg: number | undefined;
|
|
41
|
-
bufferSize: number | undefined;
|
|
42
|
-
stddev: number | undefined;
|
|
43
|
-
packetLoss: string | undefined;
|
|
44
|
-
};
|
|
1
|
+
export interface extendedPingOptions extends pingOptions {
|
|
2
|
+
recordRouteHops?: number;
|
|
3
|
+
hopTimestamp?: number;
|
|
4
|
+
interval?: number;
|
|
5
|
+
soDebugOption?: boolean;
|
|
6
|
+
floodPing?: boolean;
|
|
7
|
+
interfaceAddress?: string;
|
|
8
|
+
suppressLoopback?: boolean;
|
|
9
|
+
pattern?: string;
|
|
10
|
+
quiet?: boolean;
|
|
11
|
+
timeBeforeExit?: number;
|
|
12
|
+
verboseOutput?: boolean;
|
|
13
|
+
doNotFragment?: boolean;
|
|
14
|
+
srcAddr?: string;
|
|
15
|
+
}
|
|
16
|
+
export interface pingOptions {
|
|
17
|
+
numeric?: boolean;
|
|
18
|
+
bufferSize?: number;
|
|
19
|
+
logToFile?: boolean;
|
|
20
|
+
logFilePath?: string;
|
|
21
|
+
IPV6?: boolean;
|
|
22
|
+
IPV4?: boolean;
|
|
23
|
+
numberOfEchos?: number;
|
|
24
|
+
TTL?: number;
|
|
25
|
+
timeout?: number;
|
|
26
|
+
}
|
|
27
|
+
export type commandBuilder = {
|
|
28
|
+
command: string;
|
|
29
|
+
arguments: string[];
|
|
30
|
+
};
|
|
31
|
+
export type pingResponse = {
|
|
32
|
+
host: string | undefined;
|
|
33
|
+
numericHost: string | undefined;
|
|
34
|
+
alive: boolean | undefined;
|
|
35
|
+
output: string | undefined;
|
|
36
|
+
time: number | undefined;
|
|
37
|
+
times: Array<number>;
|
|
38
|
+
min: number | undefined;
|
|
39
|
+
max: number | undefined;
|
|
40
|
+
avg: number | undefined;
|
|
41
|
+
bufferSize: number | undefined;
|
|
42
|
+
stddev: number | undefined;
|
|
43
|
+
packetLoss: string | undefined;
|
|
44
|
+
};
|
package/dist/src/types.js
CHANGED
|
@@ -1,2 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":""}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "pingman",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "2.1.0",
|
|
4
4
|
"description": "A ping wrapper for node with TypeScript",
|
|
5
5
|
"main": "dist/src",
|
|
6
6
|
"engines": {
|
|
@@ -22,11 +22,11 @@
|
|
|
22
22
|
"url": "git://github.com/dopecodez/pingman.git"
|
|
23
23
|
},
|
|
24
24
|
"devDependencies": {
|
|
25
|
-
"@ava/typescript": "^
|
|
25
|
+
"@ava/typescript": "^3.0.1",
|
|
26
26
|
"@types/node": "^18.11.10",
|
|
27
|
-
"ava": "^
|
|
27
|
+
"ava": "^5.1.0",
|
|
28
28
|
"copyfiles": "^2.2.0",
|
|
29
|
-
"np": "^
|
|
29
|
+
"np": "^8.0.4",
|
|
30
30
|
"nyc": "^15.1.0",
|
|
31
31
|
"typescript": "^4.9.3"
|
|
32
32
|
},
|
|
@@ -44,7 +44,8 @@
|
|
|
44
44
|
"typescript": {
|
|
45
45
|
"rewritePaths": {
|
|
46
46
|
"test/": "dist/test/"
|
|
47
|
-
}
|
|
47
|
+
},
|
|
48
|
+
"compile": false
|
|
48
49
|
}
|
|
49
50
|
},
|
|
50
51
|
"keywords": [
|