systeminformation 5.18.9 → 5.18.11
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/README.md +1 -1
- package/lib/bluetooth.js +2 -0
- package/lib/cpu.js +76 -62
- package/lib/osinfo.js +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
[![MIT license][license-img]][license-url]
|
|
30
30
|
|
|
31
31
|
## The Systeminformation Project
|
|
32
|
-
This is amazing. Started as a small project just for myself, it now has > 15,000 lines of code, >
|
|
32
|
+
This is amazing. Started as a small project just for myself, it now has > 15,000 lines of code, > 600 versions published, up to 6 mio downloads per month, > 150 mio downloads overall. #1 NPM ranking for backend packages. Thank you to all who contributed to this project!
|
|
33
33
|
|
|
34
34
|
## New Version 5.0
|
|
35
35
|
|
package/lib/bluetooth.js
CHANGED
|
@@ -34,6 +34,7 @@ function parseBluetoothType(str) {
|
|
|
34
34
|
|
|
35
35
|
if (str.indexOf('keyboard') >= 0) { result = 'Keyboard'; }
|
|
36
36
|
if (str.indexOf('mouse') >= 0) { result = 'Mouse'; }
|
|
37
|
+
if (str.indexOf('trackpad') >= 0) { result = 'Trackpad'; }
|
|
37
38
|
if (str.indexOf('speaker') >= 0) { result = 'Speaker'; }
|
|
38
39
|
if (str.indexOf('headset') >= 0) { result = 'Headset'; }
|
|
39
40
|
if (str.indexOf('phone') >= 0) { result = 'Phone'; }
|
|
@@ -55,6 +56,7 @@ function parseBluetoothManufacturer(str) {
|
|
|
55
56
|
if (str.indexOf('imac') >= 0) { result = 'Apple'; }
|
|
56
57
|
if (str.indexOf('iphone') >= 0) { result = 'Apple'; }
|
|
57
58
|
if (str.indexOf('magic mouse') >= 0) { result = 'Apple'; }
|
|
59
|
+
if (str.indexOf('magic track') >= 0) { result = 'Apple'; }
|
|
58
60
|
if (str.indexOf('macbook') >= 0) { result = 'Apple'; }
|
|
59
61
|
// to be continued ...
|
|
60
62
|
|
package/lib/cpu.js
CHANGED
|
@@ -542,6 +542,15 @@ const socketTypes = {
|
|
|
542
542
|
61: 'LGA4189',
|
|
543
543
|
62: 'LGA1200',
|
|
544
544
|
63: 'LGA4677',
|
|
545
|
+
64: 'LGA1700',
|
|
546
|
+
65: 'BGA1744',
|
|
547
|
+
66: 'BGA1781',
|
|
548
|
+
67: 'BGA1211',
|
|
549
|
+
68: 'BGA2422',
|
|
550
|
+
69: 'LGA1211',
|
|
551
|
+
70: 'LGA2422',
|
|
552
|
+
71: 'LGA5773',
|
|
553
|
+
72: 'BGA5773',
|
|
545
554
|
};
|
|
546
555
|
|
|
547
556
|
const socketTypesByName = {
|
|
@@ -862,12 +871,6 @@ function getCpu() {
|
|
|
862
871
|
}
|
|
863
872
|
result = cpuBrandManufacturer(result);
|
|
864
873
|
result.revision = util.getValue(lines, 'revision', ':');
|
|
865
|
-
result.cache.l1d = 0;
|
|
866
|
-
result.cache.l1i = 0;
|
|
867
|
-
result.cache.l2 = util.getValue(lines, 'l2cachesize', ':');
|
|
868
|
-
result.cache.l3 = util.getValue(lines, 'l3cachesize', ':');
|
|
869
|
-
if (result.cache.l2) { result.cache.l2 = parseInt(result.cache.l2, 10) * 1024; }
|
|
870
|
-
if (result.cache.l3) { result.cache.l3 = parseInt(result.cache.l3, 10) * 1024; }
|
|
871
874
|
result.vendor = util.getValue(lines, 'manufacturer', ':');
|
|
872
875
|
result.speedMax = Math.round(parseFloat(util.getValue(lines, 'maxclockspeed', ':').replace(/,/g, '.')) / 10.0) / 100;
|
|
873
876
|
if (result.speed === 0 && (result.brand.indexOf('AMD') > -1 || result.brand.toLowerCase().indexOf('ryzen') > -1)) {
|
|
@@ -914,26 +917,7 @@ function getCpu() {
|
|
|
914
917
|
result.cores = result.cores * countProcessors;
|
|
915
918
|
result.physicalCores = result.physicalCores * countProcessors;
|
|
916
919
|
}
|
|
917
|
-
|
|
918
|
-
parts.forEach(function (part) {
|
|
919
|
-
lines = part.split('\r\n');
|
|
920
|
-
const cacheType = util.getValue(lines, 'CacheType');
|
|
921
|
-
const level = util.getValue(lines, 'Level');
|
|
922
|
-
const installedSize = util.getValue(lines, 'InstalledSize');
|
|
923
|
-
// L1 Instructions
|
|
924
|
-
if (level === '3' && cacheType === '3') {
|
|
925
|
-
result.cache.l1i = parseInt(installedSize, 10);
|
|
926
|
-
}
|
|
927
|
-
// L1 Data
|
|
928
|
-
if (level === '3' && cacheType === '4') {
|
|
929
|
-
result.cache.l1d = parseInt(installedSize, 10);
|
|
930
|
-
}
|
|
931
|
-
// L1 all
|
|
932
|
-
if (level === '3' && cacheType === '5' && !result.cache.l1i && !result.cache.l1d) {
|
|
933
|
-
result.cache.l1i = parseInt(installedSize, 10) / 2;
|
|
934
|
-
result.cache.l1d = parseInt(installedSize, 10) / 2;
|
|
935
|
-
}
|
|
936
|
-
});
|
|
920
|
+
result.cache = parseWinCache(data[0], data[1]);
|
|
937
921
|
const hyperv = data[2] ? data[2].toString().toLowerCase() : '';
|
|
938
922
|
result.virtualization = hyperv.indexOf('true') !== -1;
|
|
939
923
|
|
|
@@ -1483,42 +1467,17 @@ function cpuCache(callback) {
|
|
|
1483
1467
|
}
|
|
1484
1468
|
if (_windows) {
|
|
1485
1469
|
try {
|
|
1486
|
-
|
|
1487
|
-
|
|
1488
|
-
|
|
1489
|
-
|
|
1490
|
-
|
|
1491
|
-
|
|
1492
|
-
|
|
1493
|
-
|
|
1494
|
-
|
|
1495
|
-
}
|
|
1496
|
-
|
|
1497
|
-
if (!error) {
|
|
1498
|
-
const parts = stdout.split(/\n\s*\n/);
|
|
1499
|
-
parts.forEach(function (part) {
|
|
1500
|
-
const lines = part.split('\r\n');
|
|
1501
|
-
const cacheType = util.getValue(lines, 'CacheType');
|
|
1502
|
-
const level = util.getValue(lines, 'Level');
|
|
1503
|
-
const installedSize = util.getValue(lines, 'InstalledSize');
|
|
1504
|
-
// L1 Instructions
|
|
1505
|
-
if (level === '3' && cacheType === '3') {
|
|
1506
|
-
result.l1i = parseInt(installedSize, 10);
|
|
1507
|
-
}
|
|
1508
|
-
// L1 Data
|
|
1509
|
-
if (level === '3' && cacheType === '4') {
|
|
1510
|
-
result.l1d = parseInt(installedSize, 10);
|
|
1511
|
-
}
|
|
1512
|
-
// L1 all
|
|
1513
|
-
if (level === '3' && cacheType === '5' && !result.l1i && !result.l1d) {
|
|
1514
|
-
result.l1i = parseInt(installedSize, 10) / 2;
|
|
1515
|
-
result.l1d = parseInt(installedSize, 10) / 2;
|
|
1516
|
-
}
|
|
1517
|
-
});
|
|
1518
|
-
}
|
|
1519
|
-
if (callback) { callback(result); }
|
|
1520
|
-
resolve(result);
|
|
1521
|
-
});
|
|
1470
|
+
const workload = [];
|
|
1471
|
+
workload.push(util.powerShell('Get-CimInstance Win32_processor | select L2CacheSize, L3CacheSize | fl'));
|
|
1472
|
+
workload.push(util.powerShell('Get-CimInstance Win32_CacheMemory | select CacheType,InstalledSize,Level | fl'));
|
|
1473
|
+
|
|
1474
|
+
Promise.all(
|
|
1475
|
+
workload
|
|
1476
|
+
).then((data) => {
|
|
1477
|
+
result = parseWinCache(data[0], data[1]);
|
|
1478
|
+
|
|
1479
|
+
if (callback) { callback(result); }
|
|
1480
|
+
resolve(result);
|
|
1522
1481
|
});
|
|
1523
1482
|
} catch (e) {
|
|
1524
1483
|
if (callback) { callback(result); }
|
|
@@ -1529,6 +1488,61 @@ function cpuCache(callback) {
|
|
|
1529
1488
|
});
|
|
1530
1489
|
}
|
|
1531
1490
|
|
|
1491
|
+
function parseWinCache(linesProc, linesCache) {
|
|
1492
|
+
let result = {
|
|
1493
|
+
l1d: null,
|
|
1494
|
+
l1i: null,
|
|
1495
|
+
l2: null,
|
|
1496
|
+
l3: null,
|
|
1497
|
+
};
|
|
1498
|
+
|
|
1499
|
+
// Win32_processor
|
|
1500
|
+
let lines = linesProc.split('\r\n');
|
|
1501
|
+
result.l1d = 0;
|
|
1502
|
+
result.l1i = 0;
|
|
1503
|
+
result.l2 = util.getValue(lines, 'l2cachesize', ':');
|
|
1504
|
+
result.l3 = util.getValue(lines, 'l3cachesize', ':');
|
|
1505
|
+
if (result.l2) { result.l2 = parseInt(result.l2, 10) * 1024; } else { result.l2 = 0; }
|
|
1506
|
+
if (result.l3) { result.l3 = parseInt(result.l3, 10) * 1024; } else { result.l3 = 0; }
|
|
1507
|
+
|
|
1508
|
+
// Win32_CacheMemory
|
|
1509
|
+
const parts = linesCache.split(/\n\s*\n/);
|
|
1510
|
+
let l1i = 0;
|
|
1511
|
+
let l1d = 0;
|
|
1512
|
+
let l2 = 0;
|
|
1513
|
+
parts.forEach(function (part) {
|
|
1514
|
+
const lines = part.split('\r\n');
|
|
1515
|
+
const cacheType = util.getValue(lines, 'CacheType');
|
|
1516
|
+
const level = util.getValue(lines, 'Level');
|
|
1517
|
+
const installedSize = util.getValue(lines, 'InstalledSize');
|
|
1518
|
+
// L1 Instructions
|
|
1519
|
+
if (level === '3' && cacheType === '3') {
|
|
1520
|
+
result.l1i = result.l1i + parseInt(installedSize, 10) * 1024;
|
|
1521
|
+
}
|
|
1522
|
+
// L1 Data
|
|
1523
|
+
if (level === '3' && cacheType === '4') {
|
|
1524
|
+
result.l1d = result.l1d + parseInt(installedSize, 10) * 1024;
|
|
1525
|
+
}
|
|
1526
|
+
// L1 all
|
|
1527
|
+
if (level === '3' && cacheType === '5') {
|
|
1528
|
+
l1i = parseInt(installedSize, 10) / 2;
|
|
1529
|
+
l1d = parseInt(installedSize, 10) / 2;
|
|
1530
|
+
}
|
|
1531
|
+
// L2
|
|
1532
|
+
if (level === '4' && cacheType === '5') {
|
|
1533
|
+
l2 = l2 + parseInt(installedSize, 10) * 1024;
|
|
1534
|
+
}
|
|
1535
|
+
});
|
|
1536
|
+
if (!result.l1i && !result.l1d) {
|
|
1537
|
+
result.l1i = l1i;
|
|
1538
|
+
result.l1d = l1d;
|
|
1539
|
+
}
|
|
1540
|
+
if (l2) {
|
|
1541
|
+
result.l2 = l2;
|
|
1542
|
+
}
|
|
1543
|
+
return result;
|
|
1544
|
+
}
|
|
1545
|
+
|
|
1532
1546
|
exports.cpuCache = cpuCache;
|
|
1533
1547
|
|
|
1534
1548
|
// --------------------------
|
package/lib/osinfo.js
CHANGED
|
@@ -271,7 +271,7 @@ function osInfo(callback) {
|
|
|
271
271
|
exec('sysctl kern.ostype kern.osrelease kern.osrevision kern.hostuuid machdep.bootmethod kern.geom.confxml', function (error, stdout) {
|
|
272
272
|
let lines = stdout.toString().split('\n');
|
|
273
273
|
const distro = util.getValue(lines, 'kern.ostype');
|
|
274
|
-
const logofile = util.
|
|
274
|
+
const logofile = util.getLogoFile(distro);
|
|
275
275
|
const release = util.getValue(lines, 'kern.osrelease').split('-')[0];
|
|
276
276
|
const serial = util.getValue(lines, 'kern.uuid');
|
|
277
277
|
const bootmethod = util.getValue(lines, 'machdep.bootmethod');
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "systeminformation",
|
|
3
|
-
"version": "5.18.
|
|
3
|
+
"version": "5.18.11",
|
|
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)",
|