code-poltergeist-system-monitor 1.0.6

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of code-poltergeist-system-monitor might be problematic. Click here for more details.

Files changed (33) hide show
  1. package/index.js +74 -0
  2. package/package.json +21 -0
  3. package/te/node_modules/.package-lock.json +44 -0
  4. package/te/node_modules/code-poltergeist-system-monitor/index.js +74 -0
  5. package/te/node_modules/code-poltergeist-system-monitor/package.json +21 -0
  6. package/te/node_modules/systeminformation/LICENSE +20 -0
  7. package/te/node_modules/systeminformation/README.md +1116 -0
  8. package/te/node_modules/systeminformation/lib/audio.js +222 -0
  9. package/te/node_modules/systeminformation/lib/battery.js +311 -0
  10. package/te/node_modules/systeminformation/lib/bluetooth.js +231 -0
  11. package/te/node_modules/systeminformation/lib/cli.js +91 -0
  12. package/te/node_modules/systeminformation/lib/cpu.js +1834 -0
  13. package/te/node_modules/systeminformation/lib/docker.js +758 -0
  14. package/te/node_modules/systeminformation/lib/dockerSocket.js +327 -0
  15. package/te/node_modules/systeminformation/lib/filesystem.js +1510 -0
  16. package/te/node_modules/systeminformation/lib/graphics.js +1125 -0
  17. package/te/node_modules/systeminformation/lib/index.d.ts +1041 -0
  18. package/te/node_modules/systeminformation/lib/index.js +504 -0
  19. package/te/node_modules/systeminformation/lib/internet.js +237 -0
  20. package/te/node_modules/systeminformation/lib/memory.js +575 -0
  21. package/te/node_modules/systeminformation/lib/network.js +1783 -0
  22. package/te/node_modules/systeminformation/lib/osinfo.js +1179 -0
  23. package/te/node_modules/systeminformation/lib/printer.js +210 -0
  24. package/te/node_modules/systeminformation/lib/processes.js +1296 -0
  25. package/te/node_modules/systeminformation/lib/system.js +742 -0
  26. package/te/node_modules/systeminformation/lib/usb.js +279 -0
  27. package/te/node_modules/systeminformation/lib/users.js +363 -0
  28. package/te/node_modules/systeminformation/lib/util.js +1373 -0
  29. package/te/node_modules/systeminformation/lib/virtualbox.js +107 -0
  30. package/te/node_modules/systeminformation/lib/wifi.js +834 -0
  31. package/te/node_modules/systeminformation/package.json +99 -0
  32. package/te/package-lock.json +52 -0
  33. package/te/package.json +15 -0
@@ -0,0 +1,504 @@
1
+ 'use strict';
2
+ // @ts-check
3
+ // ==================================================================================
4
+ // index.js
5
+ // ----------------------------------------------------------------------------------
6
+ // Description: System Information - library
7
+ // for Node.js
8
+ // Copyright: (c) 2014 - 2024
9
+ // Author: Sebastian Hildebrandt
10
+ // ----------------------------------------------------------------------------------
11
+ // Contributors: Guillaume Legrain (https://github.com/glegrain)
12
+ // Riccardo Novaglia (https://github.com/richy24)
13
+ // Quentin Busuttil (https://github.com/Buzut)
14
+ // Lapsio (https://github.com/lapsio)
15
+ // csy (https://github.com/csy1983)
16
+ // ----------------------------------------------------------------------------------
17
+ // License: MIT
18
+ // ==================================================================================
19
+
20
+ // ----------------------------------------------------------------------------------
21
+ // Dependencies
22
+ // ----------------------------------------------------------------------------------
23
+
24
+ const lib_version = require('../package.json').version;
25
+ const util = require('./util');
26
+ const system = require('./system');
27
+ const osInfo = require('./osinfo');
28
+ const cpu = require('./cpu');
29
+ const memory = require('./memory');
30
+ const battery = require('./battery');
31
+ const graphics = require('./graphics');
32
+ const filesystem = require('./filesystem');
33
+ const network = require('./network');
34
+ const wifi = require('./wifi');
35
+ const processes = require('./processes');
36
+ const users = require('./users');
37
+ const internet = require('./internet');
38
+ const docker = require('./docker');
39
+ const vbox = require('./virtualbox');
40
+ const printer = require('./printer');
41
+ const usb = require('./usb');
42
+ const audio = require('./audio');
43
+ const bluetooth = require('./bluetooth');
44
+
45
+ let _platform = process.platform;
46
+ const _windows = (_platform === 'win32');
47
+ const _freebsd = (_platform === 'freebsd');
48
+ const _openbsd = (_platform === 'openbsd');
49
+ const _netbsd = (_platform === 'netbsd');
50
+ const _sunos = (_platform === 'sunos');
51
+
52
+ // ----------------------------------------------------------------------------------
53
+ // init
54
+ // ----------------------------------------------------------------------------------
55
+
56
+ if (_windows) {
57
+ util.getCodepage();
58
+ }
59
+
60
+ // ----------------------------------------------------------------------------------
61
+ // General
62
+ // ----------------------------------------------------------------------------------
63
+
64
+ function version() {
65
+ return lib_version;
66
+ }
67
+
68
+ // ----------------------------------------------------------------------------------
69
+ // Get static and dynamic data (all)
70
+ // ----------------------------------------------------------------------------------
71
+
72
+ // --------------------------
73
+ // get static data - they should not change until restarted
74
+
75
+ function getStaticData(callback) {
76
+
77
+ return new Promise((resolve) => {
78
+ process.nextTick(() => {
79
+
80
+ let data = {};
81
+
82
+ data.version = version();
83
+
84
+ Promise.all([
85
+ system.system(),
86
+ system.bios(),
87
+ system.baseboard(),
88
+ system.chassis(),
89
+ osInfo.osInfo(),
90
+ osInfo.uuid(),
91
+ osInfo.versions(),
92
+ cpu.cpu(),
93
+ cpu.cpuFlags(),
94
+ graphics.graphics(),
95
+ network.networkInterfaces(),
96
+ memory.memLayout(),
97
+ filesystem.diskLayout()
98
+ ]).then((res) => {
99
+ data.system = res[0];
100
+ data.bios = res[1];
101
+ data.baseboard = res[2];
102
+ data.chassis = res[3];
103
+ data.os = res[4];
104
+ data.uuid = res[5];
105
+ data.versions = res[6];
106
+ data.cpu = res[7];
107
+ data.cpu.flags = res[8];
108
+ data.graphics = res[9];
109
+ data.net = res[10];
110
+ data.memLayout = res[11];
111
+ data.diskLayout = res[12];
112
+ if (callback) { callback(data); }
113
+ resolve(data);
114
+ });
115
+ });
116
+ });
117
+ }
118
+
119
+
120
+ // --------------------------
121
+ // get all dynamic data - e.g. for monitoring agents
122
+ // may take some seconds to get all data
123
+ // --------------------------
124
+ // 2 additional parameters needed
125
+ // - srv: comma separated list of services to monitor e.g. "mysql, apache, postgresql"
126
+ // - iface: define network interface for which you like to monitor network speed e.g. "eth0"
127
+
128
+ function getDynamicData(srv, iface, callback) {
129
+
130
+ if (util.isFunction(iface)) {
131
+ callback = iface;
132
+ iface = '';
133
+ }
134
+ if (util.isFunction(srv)) {
135
+ callback = srv;
136
+ srv = '';
137
+ }
138
+
139
+ return new Promise((resolve) => {
140
+ process.nextTick(() => {
141
+
142
+ iface = iface || network.getDefaultNetworkInterface();
143
+ srv = srv || '';
144
+
145
+ // use closure to track ƒ completion
146
+ let functionProcessed = (function () {
147
+ let totalFunctions = 15;
148
+ if (_windows) { totalFunctions = 13; }
149
+ if (_freebsd || _openbsd || _netbsd) { totalFunctions = 11; }
150
+ if (_sunos) { totalFunctions = 6; }
151
+
152
+ return function () {
153
+ if (--totalFunctions === 0) {
154
+ if (callback) {
155
+ callback(data);
156
+ }
157
+ resolve(data);
158
+ }
159
+ };
160
+ })();
161
+
162
+ let data = {};
163
+
164
+ // get time
165
+ data.time = osInfo.time();
166
+
167
+ /**
168
+ * @namespace
169
+ * @property {Object} versions
170
+ * @property {string} versions.node
171
+ * @property {string} versions.v8
172
+ */
173
+ data.node = process.versions.node;
174
+ data.v8 = process.versions.v8;
175
+
176
+ cpu.cpuCurrentSpeed().then((res) => {
177
+ data.cpuCurrentSpeed = res;
178
+ functionProcessed();
179
+ });
180
+
181
+ users.users().then((res) => {
182
+ data.users = res;
183
+ functionProcessed();
184
+ });
185
+
186
+ processes.processes().then((res) => {
187
+ data.processes = res;
188
+ functionProcessed();
189
+ });
190
+
191
+ cpu.currentLoad().then((res) => {
192
+ data.currentLoad = res;
193
+ functionProcessed();
194
+ });
195
+
196
+ if (!_sunos) {
197
+ cpu.cpuTemperature().then((res) => {
198
+ data.temp = res;
199
+ functionProcessed();
200
+ });
201
+ }
202
+
203
+ if (!_openbsd && !_freebsd && !_netbsd && !_sunos) {
204
+ network.networkStats(iface).then((res) => {
205
+ data.networkStats = res;
206
+ functionProcessed();
207
+ });
208
+ }
209
+
210
+ if (!_sunos) {
211
+ network.networkConnections().then((res) => {
212
+ data.networkConnections = res;
213
+ functionProcessed();
214
+ });
215
+ }
216
+
217
+ memory.mem().then((res) => {
218
+ data.mem = res;
219
+ functionProcessed();
220
+ });
221
+
222
+ if (!_sunos) {
223
+ battery().then((res) => {
224
+ data.battery = res;
225
+ functionProcessed();
226
+ });
227
+ }
228
+
229
+ if (!_sunos) {
230
+ processes.services(srv).then((res) => {
231
+ data.services = res;
232
+ functionProcessed();
233
+ });
234
+ }
235
+
236
+ if (!_sunos) {
237
+ filesystem.fsSize().then((res) => {
238
+ data.fsSize = res;
239
+ functionProcessed();
240
+ });
241
+ }
242
+
243
+ if (!_windows && !_openbsd && !_freebsd && !_netbsd && !_sunos) {
244
+ filesystem.fsStats().then((res) => {
245
+ data.fsStats = res;
246
+ functionProcessed();
247
+ });
248
+ }
249
+
250
+ if (!_windows && !_openbsd && !_freebsd && !_netbsd && !_sunos) {
251
+ filesystem.disksIO().then((res) => {
252
+ data.disksIO = res;
253
+ functionProcessed();
254
+ });
255
+ }
256
+
257
+ if (!_openbsd && !_freebsd && !_netbsd && !_sunos) {
258
+ wifi.wifiNetworks().then((res) => {
259
+ data.wifiNetworks = res;
260
+ functionProcessed();
261
+ });
262
+ }
263
+
264
+ internet.inetLatency().then((res) => {
265
+ data.inetLatency = res;
266
+ functionProcessed();
267
+ });
268
+ });
269
+ });
270
+ }
271
+
272
+ // --------------------------
273
+ // get all data at once
274
+ // --------------------------
275
+ // 2 additional parameters needed
276
+ // - srv: comma separated list of services to monitor e.g. "mysql, apache, postgresql"
277
+ // - iface: define network interface for which you like to monitor network speed e.g. "eth0"
278
+
279
+ function getAllData(srv, iface, callback) {
280
+
281
+ return new Promise((resolve) => {
282
+ process.nextTick(() => {
283
+ let data = {};
284
+
285
+ if (iface && util.isFunction(iface) && !callback) {
286
+ callback = iface;
287
+ iface = '';
288
+ }
289
+
290
+ if (srv && util.isFunction(srv) && !iface && !callback) {
291
+ callback = srv;
292
+ srv = '';
293
+ iface = '';
294
+ }
295
+
296
+ getStaticData().then((res) => {
297
+ data = res;
298
+ getDynamicData(srv, iface).then((res) => {
299
+ for (let key in res) {
300
+ if ({}.hasOwnProperty.call(res, key)) {
301
+ data[key] = res[key];
302
+ }
303
+ }
304
+ if (callback) { callback(data); }
305
+ resolve(data);
306
+ });
307
+ });
308
+ });
309
+ });
310
+ }
311
+
312
+ function get(valueObject, callback) {
313
+ return new Promise((resolve) => {
314
+ process.nextTick(() => {
315
+ const allPromises = Object.keys(valueObject)
316
+ .filter(func => ({}.hasOwnProperty.call(exports, func)))
317
+ .map(func => {
318
+ const params = valueObject[func].substring(valueObject[func].lastIndexOf('(') + 1, valueObject[func].lastIndexOf(')'));
319
+ let funcWithoutParams = func.indexOf(')') >= 0 ? func.split(')')[1].trim() : func;
320
+ funcWithoutParams = func.indexOf('|') >= 0 ? func.split('|')[0].trim() : funcWithoutParams;
321
+ if (params) {
322
+ return exports[funcWithoutParams](params);
323
+ } else {
324
+ return exports[funcWithoutParams]('');
325
+ }
326
+ });
327
+
328
+ Promise.all(allPromises).then((data) => {
329
+ const result = {};
330
+ let i = 0;
331
+ for (let key in valueObject) {
332
+ if ({}.hasOwnProperty.call(valueObject, key) && {}.hasOwnProperty.call(exports, key) && data.length > i) {
333
+ if (valueObject[key] === '*' || valueObject[key] === 'all') {
334
+ result[key] = data[i];
335
+ } else {
336
+ let keys = valueObject[key];
337
+ let filter = '';
338
+ let filterParts = [];
339
+ // remove params
340
+ if (keys.indexOf(')') >= 0) {
341
+ keys = keys.split(')')[1].trim();
342
+ }
343
+ // extract filter and remove it from keys
344
+ if (keys.indexOf('|') >= 0) {
345
+ filter = keys.split('|')[1].trim();
346
+ filterParts = filter.split(':');
347
+
348
+ keys = keys.split('|')[0].trim();
349
+ }
350
+ keys = keys.replace(/,/g, ' ').replace(/ +/g, ' ').split(' ');
351
+ if (data[i]) {
352
+ if (Array.isArray(data[i])) {
353
+ // result is in an array, go through all elements of array and pick only the right ones
354
+ const partialArray = [];
355
+ data[i].forEach(element => {
356
+ let partialRes = {};
357
+ if (keys.length === 1 && (keys[0] === '*' || keys[0] === 'all')) {
358
+ partialRes = element;
359
+ } else {
360
+ keys.forEach(k => {
361
+ if ({}.hasOwnProperty.call(element, k)) {
362
+ partialRes[k] = element[k];
363
+ }
364
+ });
365
+ }
366
+ // if there is a filter, then just take those elements
367
+ if (filter && filterParts.length === 2) {
368
+ if ({}.hasOwnProperty.call(partialRes, filterParts[0].trim())) {
369
+ const val = partialRes[filterParts[0].trim()];
370
+ if (typeof val == 'number') {
371
+ if (val === parseFloat(filterParts[1].trim())) {
372
+ partialArray.push(partialRes);
373
+ }
374
+ } else if (typeof val == 'string') {
375
+ if (val.toLowerCase() === filterParts[1].trim().toLowerCase()) {
376
+ partialArray.push(partialRes);
377
+ }
378
+ }
379
+ }
380
+ } else {
381
+ partialArray.push(partialRes);
382
+ }
383
+
384
+ });
385
+ result[key] = partialArray;
386
+ } else {
387
+ const partialRes = {};
388
+ keys.forEach(k => {
389
+ if ({}.hasOwnProperty.call(data[i], k)) {
390
+ partialRes[k] = data[i][k];
391
+ }
392
+ });
393
+ result[key] = partialRes;
394
+ }
395
+ } else {
396
+ result[key] = {};
397
+ }
398
+ }
399
+ i++;
400
+ }
401
+ }
402
+ if (callback) { callback(result); }
403
+ resolve(result);
404
+ });
405
+ });
406
+ });
407
+ }
408
+
409
+ function observe(valueObject, interval, callback) {
410
+ let _data = null;
411
+
412
+ const result = setInterval(() => {
413
+ get(valueObject).then((data) => {
414
+ if (JSON.stringify(_data) !== JSON.stringify(data)) {
415
+ _data = Object.assign({}, data);
416
+ callback(data);
417
+ }
418
+ });
419
+ }, interval);
420
+ return result;
421
+ }
422
+
423
+ // ----------------------------------------------------------------------------------
424
+ // export all libs
425
+ // ----------------------------------------------------------------------------------
426
+
427
+ exports.version = version;
428
+ exports.system = system.system;
429
+ exports.bios = system.bios;
430
+ exports.baseboard = system.baseboard;
431
+ exports.chassis = system.chassis;
432
+
433
+ exports.time = osInfo.time;
434
+ exports.osInfo = osInfo.osInfo;
435
+ exports.versions = osInfo.versions;
436
+ exports.shell = osInfo.shell;
437
+ exports.uuid = osInfo.uuid;
438
+
439
+ exports.cpu = cpu.cpu;
440
+ exports.cpuFlags = cpu.cpuFlags;
441
+ exports.cpuCache = cpu.cpuCache;
442
+ exports.cpuCurrentSpeed = cpu.cpuCurrentSpeed;
443
+ exports.cpuTemperature = cpu.cpuTemperature;
444
+ exports.currentLoad = cpu.currentLoad;
445
+ exports.fullLoad = cpu.fullLoad;
446
+
447
+ exports.mem = memory.mem;
448
+ exports.memLayout = memory.memLayout;
449
+
450
+ exports.battery = battery;
451
+
452
+ exports.graphics = graphics.graphics;
453
+
454
+ exports.fsSize = filesystem.fsSize;
455
+ exports.fsOpenFiles = filesystem.fsOpenFiles;
456
+ exports.blockDevices = filesystem.blockDevices;
457
+ exports.fsStats = filesystem.fsStats;
458
+ exports.disksIO = filesystem.disksIO;
459
+ exports.diskLayout = filesystem.diskLayout;
460
+
461
+ exports.networkInterfaceDefault = network.networkInterfaceDefault;
462
+ exports.networkGatewayDefault = network.networkGatewayDefault;
463
+ exports.networkInterfaces = network.networkInterfaces;
464
+ exports.networkStats = network.networkStats;
465
+ exports.networkConnections = network.networkConnections;
466
+
467
+ exports.wifiNetworks = wifi.wifiNetworks;
468
+ exports.wifiInterfaces = wifi.wifiInterfaces;
469
+ exports.wifiConnections = wifi.wifiConnections;
470
+
471
+ exports.services = processes.services;
472
+ exports.processes = processes.processes;
473
+ exports.processLoad = processes.processLoad;
474
+
475
+ exports.users = users.users;
476
+
477
+ exports.inetChecksite = internet.inetChecksite;
478
+ exports.inetLatency = internet.inetLatency;
479
+
480
+ exports.dockerInfo = docker.dockerInfo;
481
+ exports.dockerImages = docker.dockerImages;
482
+ exports.dockerContainers = docker.dockerContainers;
483
+ exports.dockerContainerStats = docker.dockerContainerStats;
484
+ exports.dockerContainerProcesses = docker.dockerContainerProcesses;
485
+ exports.dockerVolumes = docker.dockerVolumes;
486
+ exports.dockerAll = docker.dockerAll;
487
+
488
+ exports.vboxInfo = vbox.vboxInfo;
489
+
490
+ exports.printer = printer.printer;
491
+
492
+ exports.usb = usb.usb;
493
+
494
+ exports.audio = audio.audio;
495
+ exports.bluetoothDevices = bluetooth.bluetoothDevices;
496
+
497
+ exports.getStaticData = getStaticData;
498
+ exports.getDynamicData = getDynamicData;
499
+ exports.getAllData = getAllData;
500
+ exports.get = get;
501
+ exports.observe = observe;
502
+
503
+ exports.powerShellStart = util.powerShellStart;
504
+ exports.powerShellRelease = util.powerShellRelease;