systeminformation 5.23.18 → 5.23.19

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/lib/internet.js CHANGED
@@ -62,52 +62,14 @@ function inetChecksite(url, callback) {
62
62
  if (callback) { callback(result); }
63
63
  return resolve(result);
64
64
  }
65
- let t = Date.now();
66
- if (_linux || _freebsd || _openbsd || _netbsd || _darwin || _sunos) {
67
- let args = ['-I', '--connect-timeout', '5', '-m', '5'];
68
- args.push(urlSanitized);
69
- let cmd = 'curl';
70
- util.execSafe(cmd, args).then((stdout) => {
71
- const lines = stdout.split('\n');
72
- let statusCode = lines[0] && lines[0].indexOf(' ') >= 0 ? parseInt(lines[0].split(' ')[1], 10) : 404;
73
- result.status = statusCode || 404;
74
- result.ok = (statusCode === 200 || statusCode === 301 || statusCode === 302 || statusCode === 304);
75
- result.ms = (result.ok ? Date.now() - t : null);
76
- if (callback) { callback(result); }
77
- resolve(result);
78
- });
79
- }
80
- if (_windows) { // if this is stable, this can be used for all OS types
81
- const http = (urlSanitized.startsWith('https:') ? require('https') : require('http'));
82
- try {
83
- http.get(urlSanitized, (res) => {
84
- const statusCode = res.statusCode;
85
-
86
- result.status = statusCode || 404;
87
- result.ok = (statusCode === 200 || statusCode === 301 || statusCode === 302 || statusCode === 304);
88
65
 
89
- if (statusCode !== 200) {
90
- res.resume();
91
- result.ms = (result.ok ? Date.now() - t : null);
92
- if (callback) { callback(result); }
93
- resolve(result);
94
- } else {
95
- res.on('data', () => { });
96
- res.on('end', () => {
97
- result.ms = (result.ok ? Date.now() - t : null);
98
- if (callback) { callback(result); }
99
- resolve(result);
100
- });
101
- }
102
- }).on('error', () => {
103
- if (callback) { callback(result); }
104
- resolve(result);
105
- });
106
- } catch (err) {
107
- if (callback) { callback(result); }
108
- resolve(result);
109
- }
110
- }
66
+ util.checkWebsite(urlSanitized).then((res) => {
67
+ result.status = res.statusCode;
68
+ result.ok = res.statusCode >= 200 && res.statusCode <= 399;;
69
+ result.ms = (result.ok ? res.time : null);
70
+ if (callback) { callback(result); }
71
+ resolve(result);
72
+ });
111
73
  } else {
112
74
  if (callback) { callback(result); }
113
75
  resolve(result);
package/lib/util.js CHANGED
@@ -2483,6 +2483,42 @@ function getAppleModel(key) {
2483
2483
  };
2484
2484
  }
2485
2485
 
2486
+ function checkWebsite(url, timeout = 5000) {
2487
+ const http = ((url.startsWith('https:') || url.indexOf(':443/') > 0 || url.indexOf(':8443/') > 0) ? require('https') : require('http'));
2488
+ const t = Date.now();
2489
+ return new Promise((resolve) => {
2490
+ http
2491
+ .get(url, { rejectUnauthorized: false }, function (res) {
2492
+ res.on('data', () => { });
2493
+ res.on('end', () => {
2494
+ resolve({
2495
+ url,
2496
+ statusCode: res.statusCode,
2497
+ message: res.statusMessage,
2498
+ time: Date.now() - t
2499
+ });
2500
+ });
2501
+ })
2502
+ .on("error", function (e) {
2503
+ resolve({
2504
+ url,
2505
+ statusCode: 404,
2506
+ message: e.message,
2507
+ time: Date.now() - t
2508
+ });
2509
+ })
2510
+ .setTimeout(timeout, () => {
2511
+ request.close();
2512
+ resolve({
2513
+ url,
2514
+ statusCode: 408,
2515
+ message: 'Request Timeout',
2516
+ time: Date.now() - t
2517
+ });
2518
+ });
2519
+ });
2520
+ };
2521
+
2486
2522
  function noop() { }
2487
2523
 
2488
2524
  exports.toInt = toInt;
@@ -2536,3 +2572,4 @@ exports.WINDIR = WINDIR;
2536
2572
  exports.getFilesInPath = getFilesInPath;
2537
2573
  exports.semverCompare = semverCompare;
2538
2574
  exports.getAppleModel = getAppleModel;
2575
+ exports.checkWebsite = checkWebsite;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "systeminformation",
3
- "version": "5.23.18",
3
+ "version": "5.23.19",
4
4
  "description": "Advanced, lightweight system and OS information library",
5
5
  "license": "MIT",
6
6
  "author": "Sebastian Hildebrandt <hildebrandt@plus-innovations.com> (https://plus-innovations.com)",