graphics() added positionX, positionY (max OS)

This commit is contained in:
Sebastian Hildebrandt 2023-01-06 08:00:50 +01:00
parent e145a803a9
commit 21b1d62b21
76 changed files with 251 additions and 176 deletions

View File

@ -82,6 +82,8 @@ For major (breaking) changes - **version 4, 3 and 2** - see end of page.
| Version | Date | Comment |
| ------- | ---------- | --------------------------------------------------------------------------------------------------- |
| 5.17.0 | 2023-01-06 | `graphics()` added positionX, positionY (max OS) |
| 5.16.9 | 2022-12-27 | updated docs |
| 5.16.8 | 2022-12-22 | `processes()` params truncated fix (max OS) |
| 5.16.7 | 2022-12-22 | `processes()` commandLine missing spaces fix (windows) |
| 5.16.6 | 2022-12-12 | `processes()` time format fix (linux) |

View File

@ -1,6 +1,6 @@
The MIT License (MIT)
Copyright (c) 2014-2022 Sebastian Hildebrandt
Copyright (c) 2014-2023 Sebastian Hildebrandt
Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in

View File

@ -28,28 +28,6 @@
[![Caretaker][caretaker-image]][caretaker-url]
[![MIT license][license-img]][license-url]
## Merry Christmas and Happy new year
```
.''.
.''. . *''* :_\/_:
:_\/_: _\(/_ .:.*_\/_* : /\ :
.''.: /\ : ./)\ ':'* /\ * : '..'.
:_\/_:'.:::. ' *''* * '.\'/.' _\(/_
: /\ : ::::: *_\/_* -= o =- /)\
'..' ':::' * /\ * .'/.\'. '
*..* :
*
* /.\ * * . *
. /..'\ . . * .
*/'.'\* . . . * *
* /.''.'\ * . . . *
. */.'.'.\*
.........".""""/'.''.'.\""."."........".".".......................
^^^[_]^^^*
```
I wish you all a Merry Christmas and a peaceful New Year 2023.
## The Systeminformation Project
This is amazing. Started as a small project just for myself, it now has > 15,000 lines of code, > 500 versions published, up to 5 mio downloads per month, > 100 mio downloads overall. #1 NPM ranking for backend packages. Thank you to all who contributed to this project!
@ -133,6 +111,7 @@ si.cpu()
(last 7 major and minor version releases)
- Version 5.17.0: `graphics()` added positionX, positionY (mac OS)
- Version 5.16.0: `fsSize()` added rw property
- Version 5.15.0: `blockDevices()` added device
- Version 5.14.0: `blockDevices()` added raid group member (linux)
@ -355,8 +334,8 @@ Full function reference with examples can be found at [https://systeminformation
| | ...[0].resolutionY | X | | X | X | | pixel vertical |
| | ...[0].currentResX | X | | X | X | | current pixel horizontal |
| | ...[0].currentResY | X | | X | X | | current pixel vertical |
| | ...[0].positionX | | | | X | | display position X |
| | ...[0].positionY | | | | X | | display position Y |
| | ...[0].positionX | | | X | X | | display position X |
| | ...[0].positionY | | | X | X | | display position Y |
| | ...[0].currentRefreshRate | X | | X | X | | current screen refresh rate |
#### 7. Operating System
@ -1052,7 +1031,7 @@ All other trademarks are the property of their respective owners.
>The [`MIT`][license-url] License (MIT)
>
>Copyright © 2014-2022 Sebastian Hildebrandt, [+innovations](http://www.plus-innovations.com).
>Copyright © 2014-2023 Sebastian Hildebrandt, [+innovations](http://www.plus-innovations.com).
>
>Permission is hereby granted, free of charge, to any person obtaining a copy
>of this software and associated documentation files (the "Software"), to deal

View File

@ -262,7 +262,7 @@ si.audio().then(data => console.log(data));</code></pre class="example">
<li><a href="trademarks.html">Trademarks</a></li>
<li>&nbsp;</li>
<li><a href="copyright.html">Copyright &amp; License&nbsp;&nbsp;<img src="https://img.shields.io/badge/license-MIT-blue.svg?style=flat-square" alt="MIT license" /></a></li>
<li><a href="https://www.plus-innovations.com">&copy; 2022 Sebastian Hildebrandt</a></li>
<li><a href="https://www.plus-innovations.com">&copy; 2023 Sebastian Hildebrandt</a></li>
<li><a href="https://www.plus-innovations.com">+innovations GmbH</a></li>
</ul>
</div>
@ -277,4 +277,4 @@ si.audio().then(data => console.log(data));</code></pre class="example">
</script>
</body>
</html>
</html>

View File

@ -308,7 +308,7 @@ si.battery().then(data => console.log(data));</code></pre class="example">
<li><a href="trademarks.html">Trademarks</a></li>
<li>&nbsp;</li>
<li><a href="copyright.html">Copyright &amp; License&nbsp;&nbsp;<img src="https://img.shields.io/badge/license-MIT-blue.svg?style=flat-square" alt="MIT license" /></a></li>
<li><a href="https://www.plus-innovations.com">&copy; 2022 Sebastian Hildebrandt</a></li>
<li><a href="https://www.plus-innovations.com">&copy; 2023 Sebastian Hildebrandt</a></li>
<li><a href="https://www.plus-innovations.com">+innovations GmbH</a></li>
</ul>
</div>
@ -323,4 +323,4 @@ si.battery().then(data => console.log(data));</code></pre class="example">
</script>
</body>
</html>
</html>

View File

@ -226,7 +226,7 @@ si.bluetoothDevices().then(data => console.log(data));</code></pre class="exampl
<li><a href="trademarks.html">Trademarks</a></li>
<li>&nbsp;</li>
<li><a href="copyright.html">Copyright &amp; License&nbsp;&nbsp;<img src="https://img.shields.io/badge/license-MIT-blue.svg?style=flat-square" alt="MIT license" /></a></li>
<li><a href="https://www.plus-innovations.com">&copy; 2022 Sebastian Hildebrandt</a></li>
<li><a href="https://www.plus-innovations.com">&copy; 2023 Sebastian Hildebrandt</a></li>
<li><a href="https://www.plus-innovations.com">+innovations GmbH</a></li>
</ul>
</div>
@ -241,4 +241,4 @@ si.bluetoothDevices().then(data => console.log(data));</code></pre class="exampl
</script>
</body>
</html>
</html>

View File

@ -268,7 +268,7 @@
<li><a href="trademarks.html">Trademarks</a></li>
<li>&nbsp;</li>
<li><a href="copyright.html">Copyright &amp; License&nbsp;&nbsp;<img src="https://img.shields.io/badge/license-MIT-blue.svg?style=flat-square" alt="MIT license" /></a></li>
<li><a href="https://www.plus-innovations.com">&copy; 2022 Sebastian Hildebrandt</a></li>
<li><a href="https://www.plus-innovations.com">&copy; 2023 Sebastian Hildebrandt</a></li>
<li><a href="https://www.plus-innovations.com">+innovations GmbH</a></li>
</ul>
</div>
@ -284,4 +284,4 @@
</body>
</html>
</html>

View File

@ -111,7 +111,7 @@
<li><a href="trademarks.html">Trademarks</a></li>
<li>&nbsp;</li>
<li><a href="copyright.html">Copyright &amp; License&nbsp;&nbsp;<img src="https://img.shields.io/badge/license-MIT-blue.svg?style=flat-square" alt="MIT license" /></a></li>
<li><a href="https://www.plus-innovations.com">&copy; 2022 Sebastian Hildebrandt</a></li>
<li><a href="https://www.plus-innovations.com">&copy; 2023 Sebastian Hildebrandt</a></li>
<li><a href="https://www.plus-innovations.com">+innovations GmbH</a></li>
</ul>
</div>
@ -126,4 +126,4 @@
</script>
</body>
</html>
</html>

View File

@ -49,7 +49,7 @@
<div class="col-12 sectionheader">
<div>&nbsp;</div>
<h4>Software:</h4>
<div class="text">&copy; 2022 Sebstian Hildebrandt, <a href="https://github.com/sebhildebrandt/"> <i class="fab fa-github"></i> sebhildebrandt</a>, <a href="https://www.plus-innovations.com"><i class="fal fa-globe"></i> +innovations</a></div>
<div class="text">&copy; 2023 Sebstian Hildebrandt, <a href="https://github.com/sebhildebrandt/"> <i class="fab fa-github"></i> sebhildebrandt</a>, <a href="https://www.plus-innovations.com"><i class="fal fa-globe"></i> +innovations</a></div>
</div>
</div>
@ -123,7 +123,7 @@
<li><a href="trademarks.html">Trademarks</a></li>
<li>&nbsp;</li>
<li><a href="copyright.html">Copyright &amp; License&nbsp;&nbsp;<img src="https://img.shields.io/badge/license-MIT-blue.svg?style=flat-square" alt="MIT license" /></a></li>
<li><a href="https://www.plus-innovations.com">&copy; 2022 Sebastian Hildebrandt</a></li>
<li><a href="https://www.plus-innovations.com">&copy; 2023 Sebastian Hildebrandt</a></li>
<li><a href="https://www.plus-innovations.com">+innovations GmbH</a></li>
</ul>
</div>
@ -138,4 +138,4 @@
</script>
</body>
</html>
</html>

View File

@ -643,7 +643,7 @@ si.cpuTemperature().then(data => console.log(data));</code></pre class="example"
<li><a href="trademarks.html">Trademarks</a></li>
<li>&nbsp;</li>
<li><a href="copyright.html">Copyright &amp; License&nbsp;&nbsp;<img src="https://img.shields.io/badge/license-MIT-blue.svg?style=flat-square" alt="MIT license" /></a></li>
<li><a href="https://www.plus-innovations.com">&copy; 2022 Sebastian Hildebrandt</a></li>
<li><a href="https://www.plus-innovations.com">&copy; 2023 Sebastian Hildebrandt</a></li>
<li><a href="https://www.plus-innovations.com">+innovations GmbH</a></li>
</ul>
</div>
@ -658,4 +658,4 @@ si.cpuTemperature().then(data => console.log(data));</code></pre class="example"
</script>
</body>
</html>
</html>

View File

@ -1347,7 +1347,7 @@
<li><a href="trademarks.html">Trademarks</a></li>
<li>&nbsp;</li>
<li><a href="copyright.html">Copyright &amp; License&nbsp;&nbsp;<img src="https://img.shields.io/badge/license-MIT-blue.svg?style=flat-square" alt="MIT license" /></a></li>
<li><a href="https://www.plus-innovations.com">&copy; 2022 Sebastian Hildebrandt</a></li>
<li><a href="https://www.plus-innovations.com">&copy; 2023 Sebastian Hildebrandt</a></li>
<li><a href="https://www.plus-innovations.com">+innovations GmbH</a></li>
</ul>
</div>
@ -1362,4 +1362,4 @@
</script>
</body>
</html>
</html>

View File

@ -996,7 +996,7 @@ setInterval(function() {
<li><a href="trademarks.html">Trademarks</a></li>
<li>&nbsp;</li>
<li><a href="copyright.html">Copyright &amp; License&nbsp;&nbsp;<img src="https://img.shields.io/badge/license-MIT-blue.svg?style=flat-square" alt="MIT license" /></a></li>
<li><a href="https://www.plus-innovations.com">&copy; 2022 Sebastian Hildebrandt</a></li>
<li><a href="https://www.plus-innovations.com">&copy; 2023 Sebastian Hildebrandt</a></li>
<li><a href="https://www.plus-innovations.com">+innovations GmbH</a></li>
</ul>
</div>
@ -1011,4 +1011,4 @@ setInterval(function() {
</script>
</body>
</html>
</html>

View File

@ -402,7 +402,7 @@ si.get(valueObject).then(data => console.log(data));</code></pre class="example"
<li><a href="trademarks.html">Trademarks</a></li>
<li>&nbsp;</li>
<li><a href="copyright.html">Copyright &amp; License&nbsp;&nbsp;<img src="https://img.shields.io/badge/license-MIT-blue.svg?style=flat-square" alt="MIT license" /></a></li>
<li><a href="https://www.plus-innovations.com">&copy; 2022 Sebastian Hildebrandt</a></li>
<li><a href="https://www.plus-innovations.com">&copy; 2023 Sebastian Hildebrandt</a></li>
<li><a href="https://www.plus-innovations.com">+innovations GmbH</a></li>
</ul>
</div>
@ -417,4 +417,4 @@ si.get(valueObject).then(data => console.log(data));</code></pre class="example"
</script>
</body>
</html>
</html>

View File

@ -168,7 +168,7 @@ async function cpuData() {
<li><a href="trademarks.html">Trademarks</a></li>
<li>&nbsp;</li>
<li><a href="copyright.html">Copyright &amp; License&nbsp;&nbsp;<img src="https://img.shields.io/badge/license-MIT-blue.svg?style=flat-square" alt="MIT license" /></a></li>
<li><a href="https://www.plus-innovations.com">&copy; 2022 Sebastian Hildebrandt</a></li>
<li><a href="https://www.plus-innovations.com">&copy; 2023 Sebastian Hildebrandt</a></li>
<li><a href="https://www.plus-innovations.com">+innovations GmbH</a></li>
</ul>
</div>
@ -183,4 +183,4 @@ async function cpuData() {
</script>
</body>
</html>
</html>

View File

@ -634,7 +634,7 @@ si.graphics().then(data => console.log(data));</code></pre class="example">
<li><a href="trademarks.html">Trademarks</a></li>
<li>&nbsp;</li>
<li><a href="copyright.html">Copyright &amp; License&nbsp;&nbsp;<img src="https://img.shields.io/badge/license-MIT-blue.svg?style=flat-square" alt="MIT license" /></a></li>
<li><a href="https://www.plus-innovations.com">&copy; 2022 Sebastian Hildebrandt</a></li>
<li><a href="https://www.plus-innovations.com">&copy; 2023 Sebastian Hildebrandt</a></li>
<li><a href="https://www.plus-innovations.com">+innovations GmbH</a></li>
</ul>
</div>
@ -649,4 +649,4 @@ si.graphics().then(data => console.log(data));</code></pre class="example">
</script>
</body>
</html>
</html>

View File

@ -57,6 +57,16 @@
</tr>
</thead>
<tbody>
<tr>
<th scope="row">5.17.0</th>
<td>2023-01-06</td>
<td><span class="code">graphics()</span> added positionX, positionY (max OS)</td>
</tr>
<tr>
<th scope="row">5.16.9</th>
<td>2022-12-27</td>
<td>updated docs</td>
</tr>
<tr>
<th scope="row">5.16.8</th>
<td>2022-12-22</td>
@ -2898,7 +2908,7 @@
<li><a href="trademarks.html">Trademarks</a></li>
<li>&nbsp;</li>
<li><a href="copyright.html">Copyright &amp; License&nbsp;&nbsp;<img src="https://img.shields.io/badge/license-MIT-blue.svg?style=flat-square" alt="MIT license" /></a></li>
<li><a href="https://www.plus-innovations.com">&copy; 2022 Sebastian Hildebrandt</a></li>
<li><a href="https://www.plus-innovations.com">&copy; 2023 Sebastian Hildebrandt</a></li>
<li><a href="https://www.plus-innovations.com">+innovations GmbH</a></li>
</ul>
</div>

View File

@ -384,7 +384,7 @@
<li><a href="trademarks.html">Trademarks</a></li>
<li>&nbsp;</li>
<li><a href="copyright.html">Copyright &amp; License&nbsp;&nbsp;<img src="https://img.shields.io/badge/license-MIT-blue.svg?style=flat-square" alt="MIT license" /></a></li>
<li><a href="https://www.plus-innovations.com">&copy; 2022 Sebastian Hildebrandt</a></li>
<li><a href="https://www.plus-innovations.com">&copy; 2023 Sebastian Hildebrandt</a></li>
<li><a href="https://www.plus-innovations.com">+innovations GmbH</a></li>
</ul>
</div>
@ -401,4 +401,4 @@
</script>
</body>
</html>
</html>

View File

@ -127,7 +127,7 @@
<li><a href="trademarks.html">Trademarks</a></li>
<li>&nbsp;</li>
<li><a href="copyright.html">Copyright &amp; License&nbsp;&nbsp;<img src="https://img.shields.io/badge/license-MIT-blue.svg?style=flat-square" alt="MIT license" /></a></li>
<li><a href="https://www.plus-innovations.com">&copy; 2022 Sebastian Hildebrandt</a></li>
<li><a href="https://www.plus-innovations.com">&copy; 2023 Sebastian Hildebrandt</a></li>
<li><a href="https://www.plus-innovations.com">+innovations GmbH</a></li>
</ul>
</div>
@ -142,4 +142,4 @@
</script>
</body>
</html>
</html>

View File

@ -428,7 +428,7 @@ si.memLayout().then(data => console.log(data));</code></pre class="example">
<li><a href="trademarks.html">Trademarks</a></li>
<li>&nbsp;</li>
<li><a href="copyright.html">Copyright &amp; License&nbsp;&nbsp;<img src="https://img.shields.io/badge/license-MIT-blue.svg?style=flat-square" alt="MIT license" /></a></li>
<li><a href="https://www.plus-innovations.com">&copy; 2022 Sebastian Hildebrandt</a></li>
<li><a href="https://www.plus-innovations.com">&copy; 2023 Sebastian Hildebrandt</a></li>
<li><a href="https://www.plus-innovations.com">+innovations GmbH</a></li>
</ul>
</div>
@ -443,4 +443,4 @@ si.memLayout().then(data => console.log(data));</code></pre class="example">
</script>
</body>
</html>
</html>

View File

@ -842,7 +842,7 @@ setInterval(function() {
<li><a href="trademarks.html">Trademarks</a></li>
<li>&nbsp;</li>
<li><a href="copyright.html">Copyright &amp; License&nbsp;&nbsp;<img src="https://img.shields.io/badge/license-MIT-blue.svg?style=flat-square" alt="MIT license" /></a></li>
<li><a href="https://www.plus-innovations.com">&copy; 2022 Sebastian Hildebrandt</a></li>
<li><a href="https://www.plus-innovations.com">&copy; 2023 Sebastian Hildebrandt</a></li>
<li><a href="https://www.plus-innovations.com">+innovations GmbH</a></li>
</ul>
</div>
@ -857,4 +857,4 @@ setInterval(function() {
</script>
</body>
</html>
</html>

View File

@ -800,7 +800,7 @@ si.users().then(data => console.log(data));</code></pre class="example">
<li><a href="trademarks.html">Trademarks</a></li>
<li>&nbsp;</li>
<li><a href="copyright.html">Copyright &amp; License&nbsp;&nbsp;<img src="https://img.shields.io/badge/license-MIT-blue.svg?style=flat-square" alt="MIT license" /></a></li>
<li><a href="https://www.plus-innovations.com">&copy; 2022 Sebastian Hildebrandt</a></li>
<li><a href="https://www.plus-innovations.com">&copy; 2023 Sebastian Hildebrandt</a></li>
<li><a href="https://www.plus-innovations.com">+innovations GmbH</a></li>
</ul>
</div>
@ -815,4 +815,4 @@ si.users().then(data => console.log(data));</code></pre class="example">
</script>
</body>
</html>
</html>

View File

@ -239,7 +239,7 @@ si.printer().then(data => console.log(data));</code></pre class="example">
<li><a href="trademarks.html">Trademarks</a></li>
<li>&nbsp;</li>
<li><a href="copyright.html">Copyright &amp; License&nbsp;&nbsp;<img src="https://img.shields.io/badge/license-MIT-blue.svg?style=flat-square" alt="MIT license" /></a></li>
<li><a href="https://www.plus-innovations.com">&copy; 2022 Sebastian Hildebrandt</a></li>
<li><a href="https://www.plus-innovations.com">&copy; 2023 Sebastian Hildebrandt</a></li>
<li><a href="https://www.plus-innovations.com">+innovations GmbH</a></li>
</ul>
</div>
@ -254,4 +254,4 @@ si.printer().then(data => console.log(data));</code></pre class="example">
</script>
</body>
</html>
</html>

View File

@ -754,7 +754,7 @@ si.services('mysql, postgres').then(data => console.log(data));</code></pre clas
<li><a href="trademarks.html">Trademarks</a></li>
<li>&nbsp;</li>
<li><a href="copyright.html">Copyright &amp; License&nbsp;&nbsp;<img src="https://img.shields.io/badge/license-MIT-blue.svg?style=flat-square" alt="MIT license" /></a></li>
<li><a href="https://www.plus-innovations.com">&copy; 2022 Sebastian Hildebrandt</a></li>
<li><a href="https://www.plus-innovations.com">&copy; 2023 Sebastian Hildebrandt</a></li>
<li><a href="https://www.plus-innovations.com">+innovations GmbH</a></li>
</ul>
</div>
@ -769,4 +769,4 @@ si.services('mysql, postgres').then(data => console.log(data));</code></pre clas
</script>
</body>
</html>
</html>

View File

@ -240,7 +240,7 @@
<li><a href="trademarks.html">Trademarks</a></li>
<li>&nbsp;</li>
<li><a href="copyright.html">Copyright &amp; License&nbsp;&nbsp;<img src="https://img.shields.io/badge/license-MIT-blue.svg?style=flat-square" alt="MIT license" /></a></li>
<li><a href="https://www.plus-innovations.com">&copy; 2022 Sebastian Hildebrandt</a></li>
<li><a href="https://www.plus-innovations.com">&copy; 2023 Sebastian Hildebrandt</a></li>
<li><a href="https://www.plus-innovations.com">+innovations GmbH</a></li>
</ul>
</div>
@ -255,4 +255,4 @@
</script>
</body>
</html>
</html>

View File

@ -157,7 +157,7 @@ setTimeout(() => {
<li><a href="trademarks.html">Trademarks</a></li>
<li>&nbsp;</li>
<li><a href="copyright.html">Copyright &amp; License&nbsp;&nbsp;<img src="https://img.shields.io/badge/license-MIT-blue.svg?style=flat-square" alt="MIT license" /></a></li>
<li><a href="https://www.plus-innovations.com">&copy; 2022 Sebastian Hildebrandt</a></li>
<li><a href="https://www.plus-innovations.com">&copy; 2023 Sebastian Hildebrandt</a></li>
<li><a href="https://www.plus-innovations.com">+innovations GmbH</a></li>
</ul>
</div>
@ -172,4 +172,4 @@ setTimeout(() => {
</script>
</body>
</html>
</html>

View File

@ -583,7 +583,7 @@ si.chassis().then(data => console.log(data));</code></pre class="example">
<li><a href="trademarks.html">Trademarks</a></li>
<li>&nbsp;</li>
<li><a href="copyright.html">Copyright &amp; License&nbsp;&nbsp;<img src="https://img.shields.io/badge/license-MIT-blue.svg?style=flat-square" alt="MIT license" /></a></li>
<li><a href="https://www.plus-innovations.com">&copy; 2022 Sebastian Hildebrandt</a></li>
<li><a href="https://www.plus-innovations.com">&copy; 2023 Sebastian Hildebrandt</a></li>
<li><a href="https://www.plus-innovations.com">+innovations GmbH</a></li>
</ul>
</div>
@ -598,4 +598,4 @@ si.chassis().then(data => console.log(data));</code></pre class="example">
</script>
</body>
</html>
</html>

View File

@ -143,7 +143,7 @@
<li><a href="trademarks.html">Trademarks</a></li>
<li>&nbsp;</li>
<li><a href="copyright.html">Copyright &amp; License&nbsp;&nbsp;<img src="https://img.shields.io/badge/license-MIT-blue.svg?style=flat-square" alt="MIT license" /></a></li>
<li><a href="https://www.plus-innovations.com">&copy; 2022 Sebastian Hildebrandt</a></li>
<li><a href="https://www.plus-innovations.com">&copy; 2023 Sebastian Hildebrandt</a></li>
<li><a href="https://www.plus-innovations.com">+innovations GmbH</a></li>
</ul>
</div>
@ -158,4 +158,4 @@
</script>
</body>
</html>
</html>

View File

@ -116,7 +116,7 @@
<li><a href="trademarks.html">Trademarks</a></li>
<li>&nbsp;</li>
<li><a href="copyright.html">Copyright &amp; License&nbsp;&nbsp;<img src="https://img.shields.io/badge/license-MIT-blue.svg?style=flat-square" alt="MIT license" /></a></li>
<li><a href="https://www.plus-innovations.com">&copy; 2022 Sebastian Hildebrandt</a></li>
<li><a href="https://www.plus-innovations.com">&copy; 2023 Sebastian Hildebrandt</a></li>
<li><a href="https://www.plus-innovations.com">+innovations GmbH</a></li>
</ul>
</div>
@ -131,4 +131,4 @@
</script>
</body>
</html>
</html>

View File

@ -274,7 +274,7 @@ si.usb().then(data => console.log(data));</code></pre class="example">
<li><a href="trademarks.html">Trademarks</a></li>
<li>&nbsp;</li>
<li><a href="copyright.html">Copyright &amp; License&nbsp;&nbsp;<img src="https://img.shields.io/badge/license-MIT-blue.svg?style=flat-square" alt="MIT license" /></a></li>
<li><a href="https://www.plus-innovations.com">&copy; 2022 Sebastian Hildebrandt</a></li>
<li><a href="https://www.plus-innovations.com">&copy; 2023 Sebastian Hildebrandt</a></li>
<li><a href="https://www.plus-innovations.com">+innovations GmbH</a></li>
</ul>
</div>
@ -289,4 +289,4 @@ si.usb().then(data => console.log(data));</code></pre class="example">
</script>
</body>
</html>
</html>

View File

@ -291,7 +291,7 @@ si.battery().then(data => console.log(data));</code></pre class="example">
</div>
<div class="col-lg-4 col-12">
<ul class="list-unstyled">
<li><a href="https://www.plus-innovations.com">&copy; 2022 Sebastian Hildebrandt, +innovations</a></li>
<li><a href="https://www.plus-innovations.com">&copy; 2023 Sebastian Hildebrandt, +innovations</a></li>
<li><a href="copyright.html">Copyright &amp; License</a></li>
<li><a href="trademarks.html">Trademarks</a></li>
<li>&nbsp;</li>
@ -310,4 +310,4 @@ si.battery().then(data => console.log(data));</code></pre class="example">
</script>
</body>
</html>
</html>

View File

@ -101,7 +101,7 @@
</div>
<div class="col-lg-4 col-12">
<ul class="list-unstyled">
<li><a href="https://www.plus-innovations.com">&copy; 2022 Sebastian Hildebrandt, +innovations</a></li>
<li><a href="https://www.plus-innovations.com">&copy; 2023 Sebastian Hildebrandt, +innovations</a></li>
<li><a href="copyright.html">Copyright &amp; License</a></li>
<li><a href="trademarks.html">Trademarks</a></li>
<li>&nbsp;</li>
@ -120,4 +120,4 @@
</script>
</body>
</html>
</html>

View File

@ -95,7 +95,7 @@
</div>
<div class="col-lg-4 col-12">
<ul class="list-unstyled">
<li><a href="https://www.plus-innovations.com">&copy; 2022 Sebastian Hildebrandt, +innovations</a></li>
<li><a href="https://www.plus-innovations.com">&copy; 2023 Sebastian Hildebrandt, +innovations</a></li>
<li><a href="copyright.html">Copyright &amp; License</a></li>
<li><a href="trademarks.html">Trademarks</a></li>
<li>&nbsp;</li>
@ -114,4 +114,4 @@
</script>
</body>
</html>
</html>

View File

@ -584,7 +584,7 @@ si.cpuTemperature().then(data => console.log(data));</code></pre class="example"
</div>
<div class="col-lg-4 col-12">
<ul class="list-unstyled">
<li><a href="https://www.plus-innovations.com">&copy; 2022 Sebastian Hildebrandt, +innovations</a></li>
<li><a href="https://www.plus-innovations.com">&copy; 2023 Sebastian Hildebrandt, +innovations</a></li>
<li><a href="copyright.html">Copyright &amp; License</a></li>
<li><a href="trademarks.html">Trademarks</a></li>
<li>&nbsp;</li>
@ -603,4 +603,4 @@ si.cpuTemperature().then(data => console.log(data));</code></pre class="example"
</script>
</body>
</html>
</html>

View File

@ -1069,7 +1069,7 @@
</div>
<div class="col-lg-4 col-12">
<ul class="list-unstyled">
<li><a href="https://www.plus-innovations.com">&copy; 2022 Sebastian Hildebrandt, +innovations</a></li>
<li><a href="https://www.plus-innovations.com">&copy; 2023 Sebastian Hildebrandt, +innovations</a></li>
<li><a href="copyright.html">Copyright &amp; License</a></li>
<li><a href="trademarks.html">Trademarks</a></li>
<li>&nbsp;</li>
@ -1088,4 +1088,4 @@
</script>
</body>
</html>
</html>

View File

@ -876,7 +876,7 @@ setInterval(function() {
</div>
<div class="col-lg-4 col-12">
<ul class="list-unstyled">
<li><a href="https://www.plus-innovations.com">&copy; 2022 Sebastian Hildebrandt, +innovations</a></li>
<li><a href="https://www.plus-innovations.com">&copy; 2023 Sebastian Hildebrandt, +innovations</a></li>
<li><a href="copyright.html">Copyright &amp; License</a></li>
<li><a href="trademarks.html">Trademarks</a></li>
<li>&nbsp;</li>
@ -895,4 +895,4 @@ setInterval(function() {
</script>
</body>
</html>
</html>

View File

@ -341,7 +341,7 @@ si.get(valueObject).then(data => console.log(data));</code></pre class="example"
</div>
<div class="col-lg-4 col-12">
<ul class="list-unstyled">
<li><a href="https://www.plus-innovations.com">&copy; 2022 Sebastian Hildebrandt, +innovations</a></li>
<li><a href="https://www.plus-innovations.com">&copy; 2023 Sebastian Hildebrandt, +innovations</a></li>
<li><a href="copyright.html">Copyright &amp; License</a></li>
<li><a href="trademarks.html">Trademarks</a></li>
<li>&nbsp;</li>
@ -360,4 +360,4 @@ si.get(valueObject).then(data => console.log(data));</code></pre class="example"
</script>
</body>
</html>
</html>

View File

@ -161,7 +161,7 @@ async function cpuData() {
</div>
<div class="col-lg-4 col-12">
<ul class="list-unstyled">
<li><a href="https://www.plus-innovations.com">&copy; 2022 Sebastian Hildebrandt, +innovations</a></li>
<li><a href="https://www.plus-innovations.com">&copy; 2023 Sebastian Hildebrandt, +innovations</a></li>
<li><a href="copyright.html">Copyright &amp; License</a></li>
<li><a href="trademarks.html">Trademarks</a></li>
<li>&nbsp;</li>
@ -180,4 +180,4 @@ async function cpuData() {
</script>
</body>
</html>
</html>

View File

@ -537,7 +537,7 @@ si.graphics().then(data => console.log(data));</code></pre class="example">
</div>
<div class="col-lg-4 col-12">
<ul class="list-unstyled">
<li><a href="https://www.plus-innovations.com">&copy; 2022 Sebastian Hildebrandt, +innovations</a></li>
<li><a href="https://www.plus-innovations.com">&copy; 2023 Sebastian Hildebrandt, +innovations</a></li>
<li><a href="copyright.html">Copyright &amp; License</a></li>
<li><a href="trademarks.html">Trademarks</a></li>
<li>&nbsp;</li>
@ -556,4 +556,4 @@ si.graphics().then(data => console.log(data));</code></pre class="example">
</script>
</body>
</html>
</html>

View File

@ -2134,7 +2134,7 @@
</div>
<div class="col-lg-4 col-12">
<ul class="list-unstyled">
<li><a href="https://www.plus-innovations.com">&copy; 2022 Sebastian Hildebrandt, +innovations</a></li>
<li><a href="https://www.plus-innovations.com">&copy; 2023 Sebastian Hildebrandt, +innovations</a></li>
<li><a href="copyright.html">Copyright &amp; License</a></li>
<li><a href="trademarks.html">Trademarks</a></li>
<li>&nbsp;</li>
@ -2154,4 +2154,4 @@
</body>
</html>
</html>

View File

@ -348,7 +348,7 @@
</div>
<div class="col-lg-4 col-12">
<ul class="list-unstyled">
<li><a href="https://www.plus-innovations.com">&copy; 2022 Sebastian Hildebrandt, +innovations</a></li>
<li><a href="https://www.plus-innovations.com">&copy; 2023 Sebastian Hildebrandt, +innovations</a></li>
<li><a href="copyright.html">Copyright &amp; License</a></li>
<li><a href="trademarks.html">Trademarks</a></li>
<li>&nbsp;</li>
@ -369,4 +369,4 @@
</script>
</body>
</html>
</html>

View File

@ -115,7 +115,7 @@
</div>
<div class="col-lg-4 col-12">
<ul class="list-unstyled">
<li><a href="https://www.plus-innovations.com">&copy; 2022 Sebastian Hildebrandt, +innovations</a></li>
<li><a href="https://www.plus-innovations.com">&copy; 2023 Sebastian Hildebrandt, +innovations</a></li>
<li><a href="copyright.html">Copyright &amp; License</a></li>
<li><a href="trademarks.html">Trademarks</a></li>
<li>&nbsp;</li>
@ -134,4 +134,4 @@
</script>
</body>
</html>
</html>

View File

@ -409,7 +409,7 @@ si.memLayout().then(data => console.log(data));</code></pre class="example">
</div>
<div class="col-lg-4 col-12">
<ul class="list-unstyled">
<li><a href="https://www.plus-innovations.com">&copy; 2022 Sebastian Hildebrandt, +innovations</a></li>
<li><a href="https://www.plus-innovations.com">&copy; 2023 Sebastian Hildebrandt, +innovations</a></li>
<li><a href="copyright.html">Copyright &amp; License</a></li>
<li><a href="trademarks.html">Trademarks</a></li>
<li>&nbsp;</li>
@ -428,4 +428,4 @@ si.memLayout().then(data => console.log(data));</code></pre class="example">
</script>
</body>
</html>
</html>

View File

@ -796,7 +796,7 @@ setInterval(function() {
</div>
<div class="col-lg-4 col-12">
<ul class="list-unstyled">
<li><a href="https://www.plus-innovations.com">&copy; 2022 Sebastian Hildebrandt, +innovations</a></li>
<li><a href="https://www.plus-innovations.com">&copy; 2023 Sebastian Hildebrandt, +innovations</a></li>
<li><a href="copyright.html">Copyright &amp; License</a></li>
<li><a href="trademarks.html">Trademarks</a></li>
<li>&nbsp;</li>
@ -815,4 +815,4 @@ setInterval(function() {
</script>
</body>
</html>
</html>

View File

@ -738,7 +738,7 @@ si.users().then(data => console.log(data));</code></pre class="example">
</div>
<div class="col-lg-4 col-12">
<ul class="list-unstyled">
<li><a href="https://www.plus-innovations.com">&copy; 2022 Sebastian Hildebrandt, +innovations</a></li>
<li><a href="https://www.plus-innovations.com">&copy; 2023 Sebastian Hildebrandt, +innovations</a></li>
<li><a href="copyright.html">Copyright &amp; License</a></li>
<li><a href="trademarks.html">Trademarks</a></li>
<li>&nbsp;</li>
@ -757,4 +757,4 @@ si.users().then(data => console.log(data));</code></pre class="example">
</script>
</body>
</html>
</html>

View File

@ -734,7 +734,7 @@ si.services('mysql, postgres').then(data => console.log(data));</code></pre clas
</div>
<div class="col-lg-4 col-12">
<ul class="list-unstyled">
<li><a href="https://www.plus-innovations.com">&copy; 2022 Sebastian Hildebrandt, +innovations</a></li>
<li><a href="https://www.plus-innovations.com">&copy; 2023 Sebastian Hildebrandt, +innovations</a></li>
<li><a href="copyright.html">Copyright &amp; License</a></li>
<li><a href="trademarks.html">Trademarks</a></li>
<li>&nbsp;</li>
@ -753,4 +753,4 @@ si.services('mysql, postgres').then(data => console.log(data));</code></pre clas
</script>
</body>
</html>
</html>

View File

@ -231,7 +231,7 @@
</div>
<div class="col-lg-4 col-12">
<ul class="list-unstyled">
<li><a href="https://www.plus-innovations.com">&copy; 2022 Sebastian Hildebrandt, +innovations</a></li>
<li><a href="https://www.plus-innovations.com">&copy; 2023 Sebastian Hildebrandt, +innovations</a></li>
<li><a href="copyright.html">Copyright &amp; License</a></li>
<li><a href="trademarks.html">Trademarks</a></li>
<li>&nbsp;</li>
@ -250,4 +250,4 @@
</script>
</body>
</html>
</html>

View File

@ -150,7 +150,7 @@ setTimeout(() => {
</div>
<div class="col-lg-4 col-12">
<ul class="list-unstyled">
<li><a href="https://www.plus-innovations.com">&copy; 2022 Sebastian Hildebrandt, +innovations</a></li>
<li><a href="https://www.plus-innovations.com">&copy; 2023 Sebastian Hildebrandt, +innovations</a></li>
<li><a href="copyright.html">Copyright &amp; License</a></li>
<li><a href="trademarks.html">Trademarks</a></li>
<li>&nbsp;</li>
@ -169,4 +169,4 @@ setTimeout(() => {
</script>
</body>
</html>
</html>

View File

@ -443,7 +443,7 @@ si.chassis().then(data => console.log(data));</code></pre class="example">
</div>
<div class="col-lg-4 col-12">
<ul class="list-unstyled">
<li><a href="https://www.plus-innovations.com">&copy; 2022 Sebastian Hildebrandt, +innovations</a></li>
<li><a href="https://www.plus-innovations.com">&copy; 2023 Sebastian Hildebrandt, +innovations</a></li>
<li><a href="copyright.html">Copyright &amp; License</a></li>
<li><a href="trademarks.html">Trademarks</a></li>
<li>&nbsp;</li>
@ -462,4 +462,4 @@ si.chassis().then(data => console.log(data));</code></pre class="example">
</script>
</body>
</html>
</html>

View File

@ -101,7 +101,7 @@
</div>
<div class="col-lg-4 col-12">
<ul class="list-unstyled">
<li><a href="https://www.plus-innovations.com">&copy; 2022 Sebastian Hildebrandt, +innovations</a></li>
<li><a href="https://www.plus-innovations.com">&copy; 2023 Sebastian Hildebrandt, +innovations</a></li>
<li><a href="copyright.html">Copyright &amp; License</a></li>
<li><a href="trademarks.html">Trademarks</a></li>
<li>&nbsp;</li>
@ -120,4 +120,4 @@
</script>
</body>
</html>
</html>

View File

@ -469,7 +469,7 @@
</div>
<div class="col-lg-4 col-12">
<ul class="list-unstyled">
<li><a href="https://www.plus-innovations.com">&copy; 2022 Sebastian Hildebrandt, +innovations</a></li>
<li><a href="https://www.plus-innovations.com">&copy; 2023 Sebastian Hildebrandt, +innovations</a></li>
<li><a href="copyright.html">Copyright &amp; License</a></li>
<li><a href="trademarks.html">Trademarks</a></li>
<li>&nbsp;</li>
@ -488,4 +488,4 @@
</script>
</body>
</html>
</html>

View File

@ -246,7 +246,7 @@ si.wifiNetworks().then(data => console.log(data));</code></pre class="example">
</div>
<div class="col-lg-4 col-12">
<ul class="list-unstyled">
<li><a href="https://www.plus-innovations.com">&copy; 2022 Sebastian Hildebrandt, +innovations</a></li>
<li><a href="https://www.plus-innovations.com">&copy; 2023 Sebastian Hildebrandt, +innovations</a></li>
<li><a href="copyright.html">Copyright &amp; License</a></li>
<li><a href="trademarks.html">Trademarks</a></li>
<li>&nbsp;</li>
@ -265,4 +265,4 @@ si.wifiNetworks().then(data => console.log(data));</code></pre class="example">
</script>
</body>
</html>
</html>

View File

@ -476,7 +476,7 @@
<li><a href="trademarks.html">Trademarks</a></li>
<li>&nbsp;</li>
<li><a href="copyright.html">Copyright &amp; License&nbsp;&nbsp;<img src="https://img.shields.io/badge/license-MIT-blue.svg?style=flat-square" alt="MIT license" /></a></li>
<li><a href="https://www.plus-innovations.com">&copy; 2022 Sebastian Hildebrandt</a></li>
<li><a href="https://www.plus-innovations.com">&copy; 2023 Sebastian Hildebrandt</a></li>
<li><a href="https://www.plus-innovations.com">+innovations GmbH</a></li>
</ul>
</div>
@ -491,4 +491,4 @@
</script>
</body>
</html>
</html>

View File

@ -524,7 +524,7 @@ si.wifiConnections().then(data => console.log(data));</code></pre class="example
<li><a href="trademarks.html">Trademarks</a></li>
<li>&nbsp;</li>
<li><a href="copyright.html">Copyright &amp; License&nbsp;&nbsp;<img src="https://img.shields.io/badge/license-MIT-blue.svg?style=flat-square" alt="MIT license" /></a></li>
<li><a href="https://www.plus-innovations.com">&copy; 2022 Sebastian Hildebrandt</a></li>
<li><a href="https://www.plus-innovations.com">&copy; 2023 Sebastian Hildebrandt</a></li>
<li><a href="https://www.plus-innovations.com">+innovations GmbH</a></li>
</ul>
</div>
@ -539,4 +539,4 @@ si.wifiConnections().then(data => console.log(data));</code></pre class="example
</script>
</body>
</html>
</html>

View File

@ -5,7 +5,7 @@
// ----------------------------------------------------------------------------------
// Description: System Information - library
// for Node.js
// Copyright: (c) 2014 - 2022
// Copyright: (c) 2014 - 2023
// Author: Sebastian Hildebrandt
// ----------------------------------------------------------------------------------
// License: MIT

View File

@ -5,7 +5,7 @@
// ----------------------------------------------------------------------------------
// Description: System Information - library
// for Node.js
// Copyright: (c) 2014 - 2022
// Copyright: (c) 2014 - 2023
// Author: Sebastian Hildebrandt
// ----------------------------------------------------------------------------------
// License: MIT

View File

@ -5,7 +5,7 @@
// ----------------------------------------------------------------------------------
// Description: System Information - library
// for Node.js
// Copyright: (c) 2014 - 2022
// Copyright: (c) 2014 - 2023
// Author: Sebastian Hildebrandt
// ----------------------------------------------------------------------------------
// License: MIT

View File

@ -7,7 +7,7 @@
// ----------------------------------------------------------------------------------
// Description: System Information - library
// for Node.js
// Copyright: (c) 2014 - 2022
// Copyright: (c) 2014 - 2023
// Author: Sebastian Hildebrandt
// ----------------------------------------------------------------------------------
// License: MIT

View File

@ -5,7 +5,7 @@
// ----------------------------------------------------------------------------------
// Description: System Information - library
// for Node.js
// Copyright: (c) 2014 - 2022
// Copyright: (c) 2014 - 2023
// Author: Sebastian Hildebrandt
// ----------------------------------------------------------------------------------
// License: MIT

View File

@ -5,7 +5,7 @@
// ----------------------------------------------------------------------------------
// Description: System Information - library
// for Node.js
// Copyright: (c) 2014 - 2022
// Copyright: (c) 2014 - 2023
// Author: Sebastian Hildebrandt
// ----------------------------------------------------------------------------------
// License: MIT

View File

@ -5,7 +5,7 @@
// ----------------------------------------------------------------------------------
// Description: System Information - library
// for Node.js
// Copyright: (c) 2014 - 2022
// Copyright: (c) 2014 - 2023
// Author: Sebastian Hildebrandt
// ----------------------------------------------------------------------------------
// License: MIT

View File

@ -5,7 +5,7 @@
// ----------------------------------------------------------------------------------
// Description: System Information - library
// for Node.js
// Copyright: (c) 2014 - 2022
// Copyright: (c) 2014 - 2023
// Author: Sebastian Hildebrandt
// ----------------------------------------------------------------------------------
// License: MIT

View File

@ -5,7 +5,7 @@
// ----------------------------------------------------------------------------------
// Description: System Information - library
// for Node.js
// Copyright: (c) 2014 - 2022
// Copyright: (c) 2014 - 2023
// Author: Sebastian Hildebrandt
// ----------------------------------------------------------------------------------
// License: MIT
@ -225,12 +225,12 @@ function graphics(callback) {
} catch (e) {
util.noop();
}
for (let i = 0; i < lines.length; i++) {
if ('' !== lines[i].trim()) {
if (' ' !== lines[i][0] && '\t' !== lines[i][0]) { // first line of new entry
let isExternal = (pciIDs.indexOf(lines[i].split(' ')[0]) >= 0);
let vgapos = lines[i].toLowerCase().indexOf(' vga ');
let _3dcontrollerpos = lines[i].toLowerCase().indexOf('3d controller');
lines.forEach((line) => {
if ('' !== line.trim()) {
if (' ' !== line[0] && '\t' !== line[0]) { // first line of new entry
let isExternal = (pciIDs.indexOf(line.split(' ')[0]) >= 0);
let vgapos = line.toLowerCase().indexOf(' vga ');
let _3dcontrollerpos = line.toLowerCase().indexOf('3d controller');
if (vgapos !== -1 || _3dcontrollerpos !== -1) { // VGA
if (_3dcontrollerpos !== -1 && vgapos === -1) {
vgapos = _3dcontrollerpos;
@ -247,14 +247,14 @@ function graphics(callback) {
};
}
const pciIDCandidate = lines[i].split(' ')[0];
const pciIDCandidate = line.split(' ')[0];
if (/[\da-fA-F]{2}:[\da-fA-F]{2}\.[\da-fA-F]/.test(pciIDCandidate)) {
currentController.busAddress = pciIDCandidate;
}
isGraphicsController = true;
let endpos = lines[i].search(/\[[0-9a-f]{4}:[0-9a-f]{4}]|$/);
let parts = lines[i].substr(vgapos, endpos - vgapos).split(':');
currentController.busAddress = lines[i].substr(0, vgapos).trim();
let endpos = line.search(/\[[0-9a-f]{4}:[0-9a-f]{4}]|$/);
let parts = line.substr(vgapos, endpos - vgapos).split(':');
currentController.busAddress = line.substr(0, vgapos).trim();
if (parts.length > 1) {
parts[1] = parts[1].trim();
if (parts[1].toLowerCase().indexOf('corporation') >= 0) {
@ -264,7 +264,7 @@ function graphics(callback) {
currentController.vram = null;
currentController.vramDynamic = false;
} else if (parts[1].toLowerCase().indexOf(' inc.') >= 0) {
if ((parts[1].match(new RegExp(']', 'g')) || []).length > 1) {
if ((parts[1].match(/]/g) || []).length > 1) {
currentController.vendor = parts[1].substr(0, parts[1].toLowerCase().indexOf(']') + 1).trim();
currentController.model = parts[1].substr(parts[1].toLowerCase().indexOf(']') + 1, 200).trim().split('(')[0].trim();
} else {
@ -275,7 +275,7 @@ function graphics(callback) {
currentController.vram = null;
currentController.vramDynamic = false;
} else if (parts[1].toLowerCase().indexOf(' ltd.') >= 0) {
if ((parts[1].match(new RegExp(']', 'g')) || []).length > 1) {
if ((parts[1].match(/]/g) || []).length > 1) {
currentController.vendor = parts[1].substr(0, parts[1].toLowerCase().indexOf(']') + 1).trim();
currentController.model = parts[1].substr(parts[1].toLowerCase().indexOf(']') + 1, 200).trim().split('(')[0].trim();
} else {
@ -290,7 +290,7 @@ function graphics(callback) {
}
}
if (isGraphicsController) { // within VGA details
let parts = lines[i].split(':');
let parts = line.split(':');
if (parts.length > 1 && parts[0].replace(/ +/g, '').toLowerCase().indexOf('devicename') !== -1 && parts[1].toLowerCase().indexOf('onboard') !== -1) { currentController.bus = 'Onboard'; }
if (parts.length > 1 && parts[0].replace(/ +/g, '').toLowerCase().indexOf('region') !== -1 && parts[1].toLowerCase().indexOf('memory') !== -1) {
let memparts = parts[1].split('=');
@ -300,7 +300,8 @@ function graphics(callback) {
}
}
}
}
});
if (currentController.vendor || currentController.model || currentController.bus || currentController.busAddress || currentController.vram !== null || currentController.vramDynamic) { // already a controller found
controllers.push(currentController);
}
@ -663,11 +664,44 @@ function graphics(callback) {
exec(cmd, function (error, stdout) {
if (!error) {
try {
let output = stdout.toString();
const output = stdout.toString();
result = parseLinesDarwin(util.plistParser(output)[0]._items);
} catch (e) {
util.noop();
}
stdout = execSync('defaults read /Library/Preferences/com.apple.windowserver.plist 2>/dev/null;defaults read /Library/Preferences/com.apple.windowserver.displays.plist 2>/dev/null; echo ""');
const output = (stdout || '').toString();
const obj = util.plistReader(output);
if (obj['DisplayAnyUserSets'] && obj['DisplayAnyUserSets']['Configs'] && obj['DisplayAnyUserSets']['Configs'][0] && obj['DisplayAnyUserSets']['Configs'][0]['DisplayConfig']) {
const current = obj['DisplayAnyUserSets']['Configs'][0]['DisplayConfig'];
let i = 0;
current.forEach((o) => {
if (o['CurrentInfo'] && 'OriginX' in o['CurrentInfo'] && result.displays && result.displays[i]) {
result.displays[i].positionX = o['CurrentInfo']['OriginX'];
}
if (o['CurrentInfo'] && 'OriginY' in o['CurrentInfo'] && result.displays && result.displays[i]) {
result.displays[i].positionY = o['CurrentInfo']['OriginY'];
}
i++;
});
}
if (obj['DisplayAnyUserSets'] && obj['DisplayAnyUserSets'].length > 0 && obj['DisplayAnyUserSets'][0].length > 0 && obj['DisplayAnyUserSets'][0][0]['DisplayID']) {
const current = obj['DisplayAnyUserSets'][0];
let i = 0;
current.forEach((o) => {
if ('LimitsOriginX' in o && result.displays && result.displays[i]) {
result.displays[i].positionX = o['LimitsOriginX'];
}
if ('LimitsOriginY' in o && result.displays && result.displays[i]) {
result.displays[i].positionY = o['LimitsOriginY'];
}
if (o['Mode'] && 'BitsPerPixel' in o['Mode'] && result.displays && result.displays[i]) {
result.displays[i].pixelDepth = o['Mode']['BitsPerPixel'];
}
i++;
});
}
}
if (callback) {
callback(result);

9
lib/index.d.ts vendored
View File

@ -975,7 +975,14 @@ export function diskLayout(cb?: (data: Systeminformation.DiskLayoutData[]) => an
export function networkInterfaceDefault(cb?: (data: string) => any): Promise<string>;
export function networkGatewayDefault(cb?: (data: string) => any): Promise<string>;
export function networkInterfaces(cb?: (data: Systeminformation.NetworkInterfacesData[]) => any): Promise<Systeminformation.NetworkInterfacesData[]>;
export function networkInterfaces(
cb?:
| ((data: Systeminformation.NetworkInterfacesData[] | Systeminformation.NetworkInterfacesData) => any)
| boolean
| string,
rescan?: boolean,
defaultString?: string
): Promise<Systeminformation.NetworkInterfacesData[] | Systeminformation.NetworkInterfacesData>;
export function networkStats(ifaces?: string, cb?: (data: Systeminformation.NetworkStatsData[]) => any): Promise<Systeminformation.NetworkStatsData[]>;
export function networkConnections(cb?: (data: Systeminformation.NetworkConnectionsData[]) => any): Promise<Systeminformation.NetworkConnectionsData[]>;

View File

@ -5,7 +5,7 @@
// ----------------------------------------------------------------------------------
// Description: System Information - library
// for Node.js
// Copyright: (c) 2014 - 2022
// Copyright: (c) 2014 - 2023
// Author: Sebastian Hildebrandt
// ----------------------------------------------------------------------------------
// Contributors: Guillaume Legrain (https://github.com/glegrain)

View File

@ -5,7 +5,7 @@
// ----------------------------------------------------------------------------------
// Description: System Information - library
// for Node.js
// Copyright: (c) 2014 - 2022
// Copyright: (c) 2014 - 2023
// Author: Sebastian Hildebrandt
// ----------------------------------------------------------------------------------
// License: MIT

View File

@ -5,7 +5,7 @@
// ----------------------------------------------------------------------------------
// Description: System Information - library
// for Node.js
// Copyright: (c) 2014 - 2022
// Copyright: (c) 2014 - 2023
// Author: Sebastian Hildebrandt
// ----------------------------------------------------------------------------------
// License: MIT

View File

@ -5,7 +5,7 @@
// ----------------------------------------------------------------------------------
// Description: System Information - library
// for Node.js
// Copyright: (c) 2014 - 2022
// Copyright: (c) 2014 - 2023
// Author: Sebastian Hildebrandt
// ----------------------------------------------------------------------------------
// License: MIT

View File

@ -5,7 +5,7 @@
// ----------------------------------------------------------------------------------
// Description: System Information - library
// for Node.js
// Copyright: (c) 2014 - 2022
// Copyright: (c) 2014 - 2023
// Author: Sebastian Hildebrandt
// ----------------------------------------------------------------------------------
// License: MIT

View File

@ -5,7 +5,7 @@
// ----------------------------------------------------------------------------------
// Description: System Information - library
// for Node.js
// Copyright: (c) 2014 - 2022
// Copyright: (c) 2014 - 2023
// Author: Sebastian Hildebrandt
// ----------------------------------------------------------------------------------
// License: MIT

View File

@ -5,7 +5,7 @@
// ----------------------------------------------------------------------------------
// Description: System Information - library
// for Node.js
// Copyright: (c) 2014 - 2022
// Copyright: (c) 2014 - 2023
// Author: Sebastian Hildebrandt
// ----------------------------------------------------------------------------------
// License: MIT

View File

@ -5,7 +5,7 @@
// ----------------------------------------------------------------------------------
// Description: System Information - library
// for Node.js
// Copyright: (c) 2014 - 2022
// Copyright: (c) 2014 - 2023
// Author: Sebastian Hildebrandt
// ----------------------------------------------------------------------------------
// License: MIT

View File

@ -5,7 +5,7 @@
// ----------------------------------------------------------------------------------
// Description: System Information - library
// for Node.js
// Copyright: (c) 2014 - 2022
// Copyright: (c) 2014 - 2023
// Author: Sebastian Hildebrandt
// ----------------------------------------------------------------------------------
// License: MIT

View File

@ -5,7 +5,7 @@
// ----------------------------------------------------------------------------------
// Description: System Information - library
// for Node.js
// Copyright: (c) 2014 - 2022
// Copyright: (c) 2014 - 2023
// Author: Sebastian Hildebrandt
// ----------------------------------------------------------------------------------
// License: MIT

View File

@ -5,7 +5,7 @@
// ----------------------------------------------------------------------------------
// Description: System Information - library
// for Node.js
// Copyright: (c) 2014 - 2022
// Copyright: (c) 2014 - 2023
// Author: Sebastian Hildebrandt
// ----------------------------------------------------------------------------------
// License: MIT
@ -118,22 +118,21 @@ function getValue(lines, property, separator, trimmed, lineMatch) {
property = property.toLowerCase();
trimmed = trimmed || false;
lineMatch = lineMatch || false;
for (let i = 0; i < lines.length; i++) {
let line = lines[i].toLowerCase().replace(/\t/g, '');
let result = '';
lines.forEach((line) => {
let lineLower = line.toLowerCase().replace(/\t/g, '');
if (trimmed) {
line = line.trim();
lineLower = lineLower.trim();
}
if (line.startsWith(property) && (lineMatch ? (line.match(property + separator)) : true)) {
const parts = trimmed ? lines[i].trim().split(separator) : lines[i].split(separator);
if (lineLower.startsWith(property) && (lineMatch ? (lineLower.match(property + separator)) : true)) {
const parts = trimmed ? line.trim().split(separator) : line.split(separator);
if (parts.length >= 2) {
parts.shift();
return parts.join(separator).trim();
} else {
return '';
result = parts.join(separator).trim();
}
}
}
return '';
});
return result;
}
function decodeEscapeSequence(str, base) {
@ -722,7 +721,7 @@ function isPrototypePolluted() {
st.__proto__.toString = stringToString;
st.__proto__.substr = stringSubstr;
notPolluted = notPolluted || !(s.length === 62);
notPolluted = notPolluted || (s.length !== 62);
const ms = Date.now();
if (typeof ms === 'number' && ms > 1600000000000) {
const l = ms % 100 + 15;
@ -733,7 +732,7 @@ function isPrototypePolluted() {
const q = Math.random() * 61.99999999 + 1;
const qs = parseInt(Math.floor(q).toString(), 10);
const qs2 = parseInt(q.toString().split('.')[0], 10);
notPolluted = notPolluted && !(r === q);
notPolluted = notPolluted && (r !== q);
notPolluted = notPolluted && rs === rs2 && qs === qs2;
st += s[rs - 1];
}
@ -1188,6 +1187,49 @@ function plistParser(xmlStr) {
return metaData[0].data;
}
function strIsNumeric(str) {
return typeof str === 'string' && !isNaN(str) && !isNaN(parseFloat(str));
}
function plistReader(output) {
const lines = output.split('\n');
for (let i = 0; i < lines.length; i++) {
if (lines[i].indexOf(' = ') >= 0) {
const lineParts = lines[i].split(' = ');
lineParts[0] = lineParts[0].trim();
if (!lineParts[0].startsWith('"')) {
lineParts[0] = '"' + lineParts[0] + '"';
}
lineParts[1] = lineParts[1].trim();
if (lineParts[1].indexOf('"') === -1 && lineParts[1].endsWith(';')) {
const valueString = lineParts[1].substring(0, lineParts[1].length - 1);
if (!strIsNumeric(valueString)) {
lineParts[1] = `"${valueString}";`;
}
}
if (lineParts[1].indexOf('"') >= 0 && lineParts[1].endsWith(';')) {
const valueString = lineParts[1].substring(0, lineParts[1].length - 1).replace(/"/g, '');
if (strIsNumeric(valueString)) {
lineParts[1] = `${valueString};`;
}
}
lines[i] = lineParts.join(' : ');
}
lines[i] = lines[i].replace(/\(/g, '[').replace(/\)/g, ']').replace(/;/g, ',').trim();
if (lines[i].startsWith('}') && lines[i - 1] && lines[i - 1].endsWith(',')) {
lines[i - 1] = lines[i - 1].substring(0, lines[i - 1].length - 1);
}
}
output = lines.join('');
let obj = {};
try {
obj = JSON.parse(output);
} catch (e) {
noop();
}
return obj;
}
function semverCompare(v1, v2) {
let res = 0;
const parts1 = v1.split('.');
@ -1247,6 +1289,7 @@ exports.promisifySave = promisifySave;
exports.smartMonToolsInstalled = smartMonToolsInstalled;
exports.linuxVersion = linuxVersion;
exports.plistParser = plistParser;
exports.plistReader = plistReader;
exports.stringReplace = stringReplace;
exports.stringToLower = stringToLower;
exports.stringToString = stringToString;

View File

@ -5,7 +5,7 @@
// ----------------------------------------------------------------------------------
// Description: System Information - library
// for Node.js
// Copyright: (c) 2014 - 2022
// Copyright: (c) 2014 - 2023
// Author: Sebastian Hildebrandt
// ----------------------------------------------------------------------------------
// License: MIT

View File

@ -5,7 +5,7 @@
// ----------------------------------------------------------------------------------
// Description: System Information - library
// for Node.js
// Copyright: (c) 2014 - 2022
// Copyright: (c) 2014 - 2023
// Author: Sebastian Hildebrandt
// ----------------------------------------------------------------------------------
// License: MIT