{"_id":"node-os-utils","_rev":"36-f4f7ee50cab1fa97ae251c887e70058e","name":"node-os-utils","dist-tags":{"beta":"2.0.1-beta.2","latest":"3.1.0"},"versions":{"1.0.0":{"name":"node-os-utils","version":"1.0.0","keywords":["os","operating system","server","netstat","memory","cpu","monitor","stats","processes","openfiles","harddrive"],"author":{"name":"SunilWang","email":"ahwangshu@qq.com"},"license":"MIT","_id":"node-os-utils@1.0.0","maintainers":[{"name":"sunilwang","email":"ahwangshu@qq.com"}],"homepage":"https://github.com/SunilWang/node-os-utils#readme","bugs":{"url":"https://github.com/SunilWang/node-os-utils/issues"},"dist":{"shasum":"8bd36a8679078427d1a7ad3a840de70e8dfc294c","tarball":"https://registry.npmjs.org/node-os-utils/-/node-os-utils-1.0.0.tgz","integrity":"sha512-SRKxTDKuL5HIqxNPJmMhfzOXNChiUGmvz8XsoJpt3YGYqsruIwVsMuFO6Idjo9JgrYgSCDkOW4+3Ee84OzOf8g==","signatures":[{"sig":"MEQCIFkR9fNPdZsJZnV6qWrwhEWS461342GOzuw9/c58/C2bAiAvOf/t7UYDVnvPBRzMcAYbFwoQOYUghlW3vVLbPKJzVw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"8bd36a8679078427d1a7ad3a840de70e8dfc294c","gitHead":"3a9498e80f9827dd4bdc35fb7da084a7ff313b5b","scripts":{"test":"mocha test/test.js"},"_npmUser":{"name":"sunilwang","email":"ahwangshu@qq.com"},"repository":{"url":"git+https://github.com/SunilWang/node-os-utils.git","type":"git"},"_npmVersion":"3.10.9","description":"An operating system utility library.","directories":{},"_nodeVersion":"6.9.2","devDependencies":{"mocha":"^3.4.2"},"_npmOperationalInternal":{"tmp":"tmp/node-os-utils-1.0.0.tgz_1499678632581_0.5226675570011139","host":"s3://npm-registry-packages"}},"1.0.1":{"name":"node-os-utils","version":"1.0.1","keywords":["os","operating system","server","netstat","memory","cpu","monitor","stats","processes","openfiles","harddrive"],"author":{"name":"SunilWang","email":"ahwangshu@qq.com"},"license":"MIT","_id":"node-os-utils@1.0.1","maintainers":[{"name":"sunilwang","email":"ahwangshu@qq.com"}],"homepage":"https://github.com/SunilWang/node-os-utils#readme","bugs":{"url":"https://github.com/SunilWang/node-os-utils/issues"},"dist":{"shasum":"813fa2777ef4174957948842356397f9b08fbb3f","tarball":"https://registry.npmjs.org/node-os-utils/-/node-os-utils-1.0.1.tgz","integrity":"sha512-ZWVYRkSPcFRsicJT8WwOZlcH3YCJ/hOnicIv2PccxIByYlrSj37n9tUITGwSmfZvI9ndmVRfCSf2pR5uRf8mOg==","signatures":[{"sig":"MEQCIA50v3+x2H5K/EsQGnhmKE19H8gdw2eb/jpPZEmh1LQMAiAuQegFeX+cUSQFbymmPjiUYIA8B5+d9e6h8JFm5JDnnA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"813fa2777ef4174957948842356397f9b08fbb3f","gitHead":"7b9b76e140da2b43590966dc88099cce051a84fa","scripts":{"test":"mocha test/test.js"},"_npmUser":{"name":"sunilwang","email":"ahwangshu@qq.com"},"repository":{"url":"git+https://github.com/SunilWang/node-os-utils.git","type":"git"},"_npmVersion":"3.10.9","description":"An operating system utility library.","directories":{},"_nodeVersion":"6.9.2","devDependencies":{"mocha":"^3.4.2"},"_npmOperationalInternal":{"tmp":"tmp/node-os-utils-1.0.1.tgz_1499679680106_0.10199242946691811","host":"s3://npm-registry-packages"}},"1.0.2":{"name":"node-os-utils","version":"1.0.2","keywords":["os","operating system","server","netstat","memory","cpu","monitor","stats","processes","openfiles","harddrive"],"author":{"name":"SunilWang","email":"ahwangshu@qq.com"},"license":"MIT","_id":"node-os-utils@1.0.2","maintainers":[{"name":"sunilwang","email":"ahwangshu@qq.com"}],"homepage":"https://github.com/SunilWang/node-os-utils#readme","bugs":{"url":"https://github.com/SunilWang/node-os-utils/issues"},"dist":{"shasum":"13cc56681b8a00385ca85c0743fb30686da0da28","tarball":"https://registry.npmjs.org/node-os-utils/-/node-os-utils-1.0.2.tgz","integrity":"sha512-iqVss7afnaOQWL1lokd1bHYGTTQfSM/EwK5pmlsKm8MXCoGsRlZSqfzI1pC6bn3nQm9x6TG/Kja3/ItTz7GAUw==","signatures":[{"sig":"MEYCIQCqpZePSKvODNz3oWdd/7Zn7U5IAH2wLVixrcqfMG8yNQIhAMlrnCLsCnHAJDxd+7upaI46eyhyKYm3nJpQObjYQss9","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","gitHead":"71076c22aaa34ae0c5a4a698441f42410940f42a","scripts":{"test":"mocha test/test.js"},"_npmUser":{"name":"sunilwang","email":"ahwangshu@qq.com"},"repository":{"url":"git+https://github.com/SunilWang/node-os-utils.git","type":"git"},"_npmVersion":"5.0.3","description":"An operating system utility library.","directories":{},"_nodeVersion":"8.0.0","dependencies":{"co":"^4.6.0"},"devDependencies":{"mocha":"^3.4.2"},"_npmOperationalInternal":{"tmp":"tmp/node-os-utils-1.0.2.tgz_1500464672766_0.1462989456485957","host":"s3://npm-registry-packages"}},"1.0.3":{"name":"node-os-utils","version":"1.0.3","keywords":["os","operating system","server","netstat","memory","cpu","monitor","stats","processes","openfiles","harddrive"],"author":{"name":"SunilWang","email":"ahwangshu@qq.com"},"license":"MIT","_id":"node-os-utils@1.0.3","maintainers":[{"name":"sunilwang","email":"ahwangshu@qq.com"}],"homepage":"https://github.com/SunilWang/node-os-utils#readme","bugs":{"url":"https://github.com/SunilWang/node-os-utils/issues"},"dist":{"shasum":"f77cd1029ea88a85aa726f36a2580a9f08782834","tarball":"https://registry.npmjs.org/node-os-utils/-/node-os-utils-1.0.3.tgz","integrity":"sha512-/CKmRaaZAOmH1kKo2LM+uj3xz9taOak/0tvwBXF+9uljBuejAQVfS5Vzm5kpDdtZS2rzHXBIzeTWU75eY4ZVjA==","signatures":[{"sig":"MEUCID8NkREdH+G/U+OTTqiNBB7rFZ5zdYcst7J8YYLOzF3pAiEA9x4C4aInGxvm7ronIIVCO1PogsUxb8NH8Ke23Jtq/NE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"f77cd1029ea88a85aa726f36a2580a9f08782834","gitHead":"11f5b21f8875a83130b02ee46b780eec9207705f","scripts":{"test":"mocha test/test.js"},"_npmUser":{"name":"sunilwang","email":"ahwangshu@qq.com"},"repository":{"url":"git+https://github.com/SunilWang/node-os-utils.git","type":"git"},"_npmVersion":"3.10.9","description":"An operating system utility library.","directories":{},"_nodeVersion":"6.9.2","dependencies":{},"devDependencies":{"mocha":"^3.4.2"},"_npmOperationalInternal":{"tmp":"tmp/node-os-utils-1.0.3.tgz_1500466804811_0.8292638754937798","host":"s3://npm-registry-packages"}},"1.0.4":{"name":"node-os-utils","version":"1.0.4","keywords":["os","operating system","server","netstat","memory","cpu","monitor","stats","processes","openfiles","harddrive"],"author":{"name":"SunilWang","email":"ahwangshu@qq.com"},"license":"MIT","_id":"node-os-utils@1.0.4","maintainers":[{"name":"sunilwang","email":"ahwangshu@qq.com"}],"homepage":"https://github.com/SunilWang/node-os-utils#readme","bugs":{"url":"https://github.com/SunilWang/node-os-utils/issues"},"dist":{"shasum":"efc7d6a0e8082f0f28881c9f0e9931fd77f27f25","tarball":"https://registry.npmjs.org/node-os-utils/-/node-os-utils-1.0.4.tgz","integrity":"sha512-hQZNZAmaXGZE2hEcURNIicZqhY/lwqqdwRoSRM8ujP+TVHIi7JGYjQn9j/8ohwgyBAwcRIRvs6voYRhewL8HJQ==","signatures":[{"sig":"MEUCIB9AN3E04RGO204FF4RRP8cPHPGAaQRKazjPMYEipJ1rAiEAhaSwmJtFp+vaSIz7Sk80e4jtERXDANLeQY3SMMyWmoA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"efc7d6a0e8082f0f28881c9f0e9931fd77f27f25","gitHead":"5f849dec5918b8ecdf56016f6500d99bca56698c","scripts":{"test":"mocha test/test.js"},"_npmUser":{"name":"sunilwang","email":"ahwangshu@qq.com"},"repository":{"url":"git+https://github.com/SunilWang/node-os-utils.git","type":"git"},"_npmVersion":"3.10.9","description":"An operating system utility library.","directories":{},"_nodeVersion":"6.9.2","dependencies":{},"devDependencies":{"mocha":"^3.4.2"},"_npmOperationalInternal":{"tmp":"tmp/node-os-utils-1.0.4.tgz_1503473323056_0.9790824479423463","host":"s3://npm-registry-packages"}},"1.0.5":{"name":"node-os-utils","version":"1.0.5","keywords":["os","operating system","server","netstat","memory","cpu","monitor","stats","processes","openfiles","harddrive"],"author":{"name":"SunilWang","email":"ahwangshu@qq.com"},"license":"MIT","_id":"node-os-utils@1.0.5","maintainers":[{"name":"sunilwang","email":"ahwangshu@qq.com"}],"homepage":"https://github.com/SunilWang/node-os-utils#readme","bugs":{"url":"https://github.com/SunilWang/node-os-utils/issues"},"dist":{"shasum":"cefc191a1cf1a16c58fec1b7a5da1a75e2dfa0a5","tarball":"https://registry.npmjs.org/node-os-utils/-/node-os-utils-1.0.5.tgz","integrity":"sha512-7ke9GU/TWQ9EiXBuRM2yYhbiXyoa23QECP6NQwWL0oTv/Dt2xi0BAyfPYNiWQuDhU9wXQXLSGoEgD994rBQKlw==","signatures":[{"sig":"MEUCIHQFiWgAPJenK/gwGktW8Dq7Ah8LVJE23tjWH5fQ2ObZAiEAohrFchnecaLBJuIY/jKW9cI0ri3Bz6HI7iTpjbHqrcc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"cefc191a1cf1a16c58fec1b7a5da1a75e2dfa0a5","gitHead":"f8702505b9132a85be6e37e49af7afa95cdc4640","scripts":{"test":"mocha test/test.js"},"_npmUser":{"name":"sunilwang","email":"ahwangshu@qq.com"},"repository":{"url":"git+https://github.com/SunilWang/node-os-utils.git","type":"git"},"_npmVersion":"3.10.9","description":"An operating system utility library.","directories":{},"_nodeVersion":"6.9.2","dependencies":{},"devDependencies":{"mocha":"^3.4.2"},"_npmOperationalInternal":{"tmp":"tmp/node-os-utils-1.0.5.tgz_1503545687829_0.8077762280590832","host":"s3://npm-registry-packages"}},"1.0.7":{"name":"node-os-utils","version":"1.0.7","keywords":["os","operating system","server","netstat","memory","cpu","monitor","stats","processes","openfiles","harddrive"],"author":{"name":"SunilWang","email":"ahwangshu@qq.com"},"license":"MIT","_id":"node-os-utils@1.0.7","maintainers":[{"name":"sunilwang","email":"ahwangshu@qq.com"}],"homepage":"https://github.com/SunilWang/node-os-utils#readme","bugs":{"url":"https://github.com/SunilWang/node-os-utils/issues"},"dist":{"shasum":"43afac0694b04d146820df0490458fcdd0710403","tarball":"https://registry.npmjs.org/node-os-utils/-/node-os-utils-1.0.7.tgz","integrity":"sha512-UQoAmphslb4+0E4o7MSUiMvUtmy8dVDFtNBSn7GB/yURUw2mTJzmhDCQf9oRS5YJIEKyI/kMIaRtxXzVJQ2ANw==","signatures":[{"sig":"MEYCIQC9tvPQbS9kdHAukNYTcPjcHk00l9enG8N+ggv3asgyKQIhAM39iq1T7TNx+haSs9dzmvLiTyJA6S9TmOr8j2080sF2","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"43afac0694b04d146820df0490458fcdd0710403","gitHead":"64d8e1e957de1192cd76c5b9b018c2daaf41f09b","scripts":{"test":"mocha test/test.js"},"_npmUser":{"name":"sunilwang","email":"ahwangshu@qq.com"},"repository":{"url":"git+https://github.com/SunilWang/node-os-utils.git","type":"git"},"_npmVersion":"3.10.9","description":"An operating system utility library.","directories":{},"_nodeVersion":"6.9.2","dependencies":{},"devDependencies":{"mocha":"^3.4.2"},"_npmOperationalInternal":{"tmp":"tmp/node-os-utils-1.0.7.tgz_1505100323250_0.1358175491914153","host":"s3://npm-registry-packages"}},"1.0.8":{"name":"node-os-utils","version":"1.0.8","keywords":["os","operating system","server","netstat","memory","cpu","monitor","stats","processes","openfiles","harddrive"],"author":{"name":"SunilWang","email":"ahwangshu@qq.com"},"license":"MIT","_id":"node-os-utils@1.0.8","maintainers":[{"name":"sunilwang","email":"ahwangshu@qq.com"}],"homepage":"https://github.com/SunilWang/node-os-utils#readme","bugs":{"url":"https://github.com/SunilWang/node-os-utils/issues"},"dist":{"shasum":"d92af7e6dfa865e5f11fd3644bba3f5dea7c6656","tarball":"https://registry.npmjs.org/node-os-utils/-/node-os-utils-1.0.8.tgz","fileCount":17,"integrity":"sha512-+nyyiR0It0VyzhOA8/Ex/PuhsWM1P6cCDVl1ADYGD4PehCx8FvvziFA8BKwlsj/6Fhd2c3Vv598x2/ZM0QSmRw==","signatures":[{"sig":"MEUCIHVhWJ+0yK4d9ht/zUObS4qPiZxFU1Y5OIy60qA25COcAiEAlyM3rO7whnItXvj3vakP87KTdXB7QFjcrT42tHQ7DiQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":34933,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdslyyCRA9TVsSAnZWagAA2icP/j9w8HCn/o+ZtnXtCXFX\npW5y6oo6kwo5OBWmzvmVQKZ7keIEkv2eAcHTQVK6aUEW+hYhPYnWpsrCRDh/\nTYzxXBNG32MfWRb9uuc9BOz6Z8nE00chfduC3L2h9d2mRR/ZjzsqylUOOsXA\nl8dzwf7FAp0swealCoMvYXimsoGNXUtXaqQ7CZYyVFSNJcxca+VBZi7YnAs+\nQiUi4O6gy6/y3t261S+WZrpMs6Sdb+At1FY6f1aUt0b/vHOgQNInj9eDMskH\nk3oftXc1N3Qu1ZF5MObfm8bkf035OR2n6vNVBmmjLXBUHRcTToLPkKlolkhW\n8d+rT/ohUHIdd6nkrHwhLX89FUjMc18TdCEKfSvDUpKP/UXExcHaNP2u0pfc\nKB1JShyf1a5YKXO7O5iv47+AXUl1bckNIkwkrkgEEC+sX8dxRvdMFaQxjhsj\npdJO9VtIepvEdBq7cUr4fKWNGAPWb8uzIBzxqG0aJPY9qa6GjKeFnYttDZIL\nOpFWtA+SeYNGDlWfefdl5XvRUJFw1/eOpUyWW/1XyccfVdlVIRWEyyGW93+M\n2PalhNSQEsKLzEX42q8VqFjqCuAMsUKZ4pwrQVAatVaeNBOd6zfVscvSgavz\nTIajr5YoZ+UXnBHobkEoepMzDpsRufTqEXsQlBt58wf4NpUGGE0Pg1zQCR44\nfZoE\r\n=/pXi\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","gitHead":"6035043994e1ccb1475b7f8173c2af24e668f0b8","scripts":{"test":"mocha test/test.js"},"_npmUser":{"name":"sunilwang","email":"ahwangshu@qq.com"},"repository":{"url":"git+https://github.com/SunilWang/node-os-utils.git","type":"git"},"_npmVersion":"5.5.1","description":"An operating system utility library.","directories":{},"_nodeVersion":"8.9.1","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"mocha":"^3.4.2"},"_npmOperationalInternal":{"tmp":"tmp/node-os-utils_1.0.8_1571970225564_0.6636975597866817","host":"s3://npm-registry-packages"}},"1.1.0":{"name":"node-os-utils","version":"1.1.0","keywords":["os","operating system","server","netstat","memory","cpu","monitor","stats","processes","openfiles","harddrive"],"author":{"name":"SunilWang","email":"ahwangshu@qq.com"},"license":"MIT","_id":"node-os-utils@1.1.0","maintainers":[{"name":"sunilwang","email":"ahwangshu@qq.com"}],"homepage":"https://github.com/SunilWang/node-os-utils#readme","bugs":{"url":"https://github.com/SunilWang/node-os-utils/issues"},"dist":{"shasum":"97c32beaee88bc175aeb7c262b553ce29ea5f572","tarball":"https://registry.npmjs.org/node-os-utils/-/node-os-utils-1.1.0.tgz","fileCount":18,"integrity":"sha512-d22SbaE1O2u77fyG79K20s2zsCOLBrrKQTL0HENGVJvz+DsZyn8ar8pySLdpLrwA8MIwFl3jzNrTHF85fMvAow==","signatures":[{"sig":"MEYCIQDcNcKMwt0iSiLupcgrygsKtWtHrrwdTdFbZ8Ecv7rjIwIhALM+hbYMD6xpbFW0kFdDjqxfxcgTg4QZdN8Z2sJGTzUW","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":35069,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdsmNICRA9TVsSAnZWagAAZEUQAIoF7pi6OFqCB05oGUy9\nWGTmXKmuy44b+Bki9I/ZvsiL+3tlesc4avK4pDnZ71yHMozok8f1dwiW2onA\nRyIkGnEzIme3tE1JH8DVKVDubHy9HjksS/GH1Ee+M/sRcogivfV6VDyNmOFQ\n2XvvI8r+wWtyXI3mFCVX6Ly0EWP68p0E/dvkSbPSWGbiZ9YeB4B0qDkQFt8p\nxO6M2vbJ4+B/ZRQQld5KQsuNWTLTn8Bi6MtPulMknzgtqpsbVwmDgJwGi+op\npWxSnHoxF0yV/XBZ1EDsY3Vym45VOADEiOCdYcb15AhJFgKWSIpIdYIJ/dNf\nCIt0MFu/uu3JLLuC7BiBEmFAN1adEQoAshTKF7aiANPy97bAI8Igb38zG5+8\ny05FgY5Vely2vGKPgxOF1EPPBaI4fdx1p3JeFzJTmXcB9AVXuk+nDDrLnsuo\n2KxY2XP311u2O7YnTOXHZqrG/tXyrI/u916oSwuOqOlTdu8Fx0DkDG0qIFgg\nbHEoHOT0dPkNagyon80s+H9SpQ974oLzaPh0IMgJAKPlGiTa5A2oYlSuM1+A\nxttbXiXNCYb6M/dIoSVfMoj0Dx01sTWvNmyr4W8VWaLCJhQNxYyUDujL7NQl\n2meao2Ba60nqRCo1fTooIazT6a7fm0fQ/P/kpDbvFE14IHPMG08L+8rYGPAR\neTLj\r\n=2+3i\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","gitHead":"8fd4c29e4f01d66df94965487ebb6b02d2cd0456","scripts":{"test":"mocha test/test.js"},"_npmUser":{"name":"sunilwang","email":"ahwangshu@qq.com"},"repository":{"url":"git+https://github.com/SunilWang/node-os-utils.git","type":"git"},"_npmVersion":"5.5.1","description":"An operating system utility library.","directories":{},"_nodeVersion":"8.9.1","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"mocha":"^3.4.2"},"_npmOperationalInternal":{"tmp":"tmp/node-os-utils_1.1.0_1571971911814_0.5754682427699851","host":"s3://npm-registry-packages"}},"1.2.0":{"name":"node-os-utils","version":"1.2.0","keywords":["os","operating system","server","netstat","memory","cpu","monitor","stats","processes","openfiles","harddrive"],"author":{"name":"SunilWang","email":"ahwangshu@qq.com"},"license":"MIT","_id":"node-os-utils@1.2.0","maintainers":[{"name":"sunilwang","email":"ahwangshu@qq.com"}],"homepage":"https://github.com/SunilWang/node-os-utils#readme","bugs":{"url":"https://github.com/SunilWang/node-os-utils/issues"},"dist":{"shasum":"6de174173c97713a421dc9792567d020c39a4d9f","tarball":"https://registry.npmjs.org/node-os-utils/-/node-os-utils-1.2.0.tgz","fileCount":18,"integrity":"sha512-WBn9WxdsU2SQLwT9aGOY0HHZ6P/e5qv7P2s6roW7EYiiHwJA8MLFbWXU621kr+hPudt4MpDEMhdleD+ElqOvfg==","signatures":[{"sig":"MEUCIQCypRLQ8UUDiVLSx1poHP9vjxzqVs1ILS2vX5P+lKGozAIgU7M3UWj7R8NyvaboGSq5jwWdwUSOO04xC2AIA1WmUSM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":34374,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeAuk1CRA9TVsSAnZWagAAH10QAINzpIpC9O4SBI48NuJx\nhwRY4+gKsJWedSDms0XRmlOoZ/8doBojjofzWdMLHTcS4HxfQinnkb64/K4x\nsaNVQgjh9+Gh1/EvHYjOPvD7AzikO4/RVvVuZr7Eyj7bcqpiqzTCgRS7RaKc\n51iKepEkF2JZEukBC8t2MzpAMmVLoO/3GrR1sLU3xLaaX7Jk7JHlHN55adPi\nAkfMaAPIzlXRYRowEUTPlhgQA/ZfBqCbg3S742ZBonqbCXYZ7ZlZ5JM7L2yt\nMVnxRkQPvfHdOhqvfQdJc6MRmTU8ORiLu5CMEquIrhqU/lYsPMSZgsHEY4pC\nZugT3UMzrJCKWHJwdd9pwHqP5m5e+ul1IlWE9hMcsJ8QskBgzoTZGFemFFdY\nITGfw3jCpmnJjdTEHNmuO039EnUaelYxbB4hY4N3cVvgNMfcFwVWFN08epGz\nQESHlKzN5cPrHvVxWXhGq1DxoyJX37czLMYZuOSJeGmKIKxK6teoJE+0x+Qt\nqBxPit53+kCySf3IkimUEqP++llu9yMiTw/59cD7BhNexK1qEWBjJKa5q/ao\nHIV8Tkwy2/vNoI0XLlYEIyCL1Bj/Jys7ZQmJwHY75kk8jl8Uv0MUCkTb7tDN\nvhhorZZsXYiiNdnu0gp6VWA2O8akKmRj28WKmgQpemDuVfhqyuDUvE85QFN9\nCqJI\r\n=FDSY\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","gitHead":"e527bcb6ff85d7c6401fac7d73cbe31e2ac9667e","scripts":{"test":"mocha test/test.js"},"_npmUser":{"name":"sunilwang","email":"ahwangshu@qq.com"},"repository":{"url":"git+https://github.com/SunilWang/node-os-utils.git","type":"git"},"_npmVersion":"5.5.1","description":"An operating system utility library.","directories":{},"_nodeVersion":"8.9.1","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"mocha":"^6.2.2"},"_npmOperationalInternal":{"tmp":"tmp/node-os-utils_1.2.0_1577249076682_0.7967999987265724","host":"s3://npm-registry-packages"}},"1.2.1":{"name":"node-os-utils","version":"1.2.1","keywords":["os","operating system","server","netstat","memory","cpu","monitor","stats","processes","openfiles","harddrive"],"author":{"name":"SunilWang","email":"ahwangshu@qq.com"},"license":"MIT","_id":"node-os-utils@1.2.1","maintainers":[{"name":"sunilwang","email":"ahwangshu@qq.com"}],"homepage":"https://github.com/SunilWang/node-os-utils#readme","bugs":{"url":"https://github.com/SunilWang/node-os-utils/issues"},"dist":{"shasum":"a0c2b66394134dba8bd469ce8c350ccb3655623e","tarball":"https://registry.npmjs.org/node-os-utils/-/node-os-utils-1.2.1.tgz","fileCount":18,"integrity":"sha512-ChGmX60vMTSW/fER/1XKmQsCHD5gdekyTpVZKRJvl/4j3qyxGsMapuQaeZ90RfgJtno8CrJaE15BHu1k8Ngs8A==","signatures":[{"sig":"MEUCIQCp4+Wuiaga/Jh3xxbm84EwmI+Dw21QY5bBorL8XF6PnwIgeGnC5g4kqhE/RcyPARSEUYq5IDGjyfxWFp1YVARmzKI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":34379,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeGBh1CRA9TVsSAnZWagAAX/sP/jXMhF0AnJOAqpdBmxyb\nVryKn7aQtD8VtRte34BQvpyk5RomLR4umZbQbm1fS8QYc/6Q0TTRRk/NKTbP\nR2J81L4B0P5/WGcFpofIqczhAsa7I+YS0JbVxTErVwhUCn8VzkJX3AjLeHi7\nXW0GIg4h3uC1UNcJ+JYhm/+hiWUyJCU7FP9zMtmCXrHmIopkoM1Fle/XQ5UF\nme6mgqNTo0Yc0BSBLKTLtbkEom1fYNt9gVcvM1U7GTxCSv99ZTl4QSC9HtGL\nLGvUc2/kEjQeG4expyR8GLj8iOTDL2Ntj1ZfwXrfhPObUQV30On7e3cUmArr\n+VRx5v3xIcoRM9LQVyuEZ5PeMjSIvrqTv36Ia4hYG32tyjS9J2skHkjscVRQ\nuu8atjgWYyitqwtZGGKlVeqInz/cDUYdd/DoC/eZGQvXZE2LBfpj1tiHurDx\nxtP6BscWSkwHMlrJ1D7Lh4YpFFnrKz3SRxvwIDPj5ZydxNqAstJZCBDaJR3/\nHz+RUmsBa1eB2TOAmLSrYAHaq++IIaKsWA9ZPVj6rCyjxBEeXPxfuwmumvFU\nYlTeeQQa2+gi1wfrj0zYmTVBXDv1x6oLWHsD5DdQ0Vg7qN/L+FZ7tL3g4F+T\n9hRkOeqhfz6ozrrfwQbewW0Xg3pwxiRf9qk51ICCq3qQYgmxNb7s0/L5XF+U\n7PRN\r\n=oihZ\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","gitHead":"d7a61e30ed20b29755c90b33a089a3ff1424a399","scripts":{"test":"mocha test/test.js"},"_npmUser":{"name":"sunilwang","email":"ahwangshu@qq.com"},"repository":{"url":"git+https://github.com/SunilWang/node-os-utils.git","type":"git"},"_npmVersion":"5.5.1","description":"An operating system utility library.","directories":{},"_nodeVersion":"8.9.1","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"mocha":"^6.2.2"},"_npmOperationalInternal":{"tmp":"tmp/node-os-utils_1.2.1_1578637428874_0.09393433557019737","host":"s3://npm-registry-packages"}},"1.2.2":{"name":"node-os-utils","version":"1.2.2","keywords":["os","operating system","server","netstat","memory","cpu","monitor","stats","processes","openfiles","harddrive"],"author":{"name":"SunilWang","email":"ahwangshu@qq.com"},"license":"MIT","_id":"node-os-utils@1.2.2","maintainers":[{"name":"sunilwang","email":"ahwangshu@qq.com"}],"homepage":"https://github.com/SunilWang/node-os-utils#readme","bugs":{"url":"https://github.com/SunilWang/node-os-utils/issues"},"dist":{"shasum":"57acb6a26a79314a0156804b3f347608db406571","tarball":"https://registry.npmjs.org/node-os-utils/-/node-os-utils-1.2.2.tgz","fileCount":18,"integrity":"sha512-QepEuY8kw+kRPdpciSSB2AFLM76RNRiSxtlXG5AisIQ8ow9tuSZ/QiS8cFro1iA843ZjSvaoM8DGa8R9loDlWA==","signatures":[{"sig":"MEUCIFyB1howMZIGCZhMVr1B7U2zrBwbxtrSGZeQBXmbixlvAiEAyyF6+D/SI8jtlOwprBWSfJA5SNiRewuo9p2SqI3alhc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":34379,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeG98YCRA9TVsSAnZWagAAx6MQAJ42koJ0B3h+R26cgojE\nBHDkx+l4zpnz/hx4v08BPBoSjV690Y/DI8eqxw5bkuRkBD0EGRkNW9ziSMPC\nQCkkxGBBN0KGNqfIKKZIohnGCGFTPnH5DpW7bMPONuAGzX+tkTCjWuGpngbx\n4YBWplqHMEhlI5WmWmmfTEbqJRJIn8a1TNOsXVYP/7fk7HsNAcsNqrxBV2qj\ns/XVsunLthOsx08PA9JQdzRvUKxC9IOnqvrT+xkkfoEB6Esgo8FeSYT6M4jY\n8gSOZExhpToYfw+lXVxClQii3qHNeDEu9MJDg0okMjMK47OPbUNH5mg+5jbC\n/83UuxzHlwrjzKiCBIOE5Njgl18FzAZ52Bsm3z3QjqvvOrUWpg+w9pFgy/Fc\nKOeTVzfc3ZTJSVzkhdeFjdp+uqpZlka8hRYirZjDJAuq1gGYR6EMmnQDFTpU\ndbX5AImZoi+ihhZojdReuse0VsRTX5ZtsJ5Fs0bCE5EwDUTq4MfjrtBxbX2+\nCQKD6bGbyHnFfdh8emdjGxMTAApouf+qFnVjnek2hIOHY60lMqAfGQBLrdcH\n5crFd0j6majzK0+J006ZVJndN4XvN88/tnAOKPYH5G7jIivx1PoizdpS/j3h\nr0BltZs1cLzL/AToRRC9yE+fDNg4J+bhfAOVu2mKrpS2HyKiX1+mPTObCj98\nc3PN\r\n=4qZR\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","gitHead":"fccb436eb42ceeb92f7535f2314512bc6d063daf","scripts":{"test":"mocha test/test.js"},"_npmUser":{"name":"sunilwang","email":"ahwangshu@qq.com"},"repository":{"url":"git+https://github.com/SunilWang/node-os-utils.git","type":"git"},"_npmVersion":"5.5.1","description":"An operating system utility library.","directories":{},"_nodeVersion":"8.9.1","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"mocha":"^6.2.2"},"_npmOperationalInternal":{"tmp":"tmp/node-os-utils_1.2.2_1578884888023_0.2930418968687212","host":"s3://npm-registry-packages"}},"1.2.3":{"name":"node-os-utils","version":"1.2.3","keywords":["os","operating system","server","netstat","memory","cpu","monitor","stats","processes","openfiles","harddrive"],"author":{"name":"SunilWang","email":"ahwangshu@qq.com"},"license":"MIT","_id":"node-os-utils@1.2.3","maintainers":[{"name":"sunilwang","email":"ahwangshu@qq.com"}],"homepage":"https://github.com/SunilWang/node-os-utils#readme","bugs":{"url":"https://github.com/SunilWang/node-os-utils/issues"},"dist":{"shasum":"a0686863efdb66910deb66de62bf8c81a1237df3","tarball":"https://registry.npmjs.org/node-os-utils/-/node-os-utils-1.2.3.tgz","fileCount":18,"integrity":"sha512-7D8wKLtU7ws6BE2/59t6OWwuqm4SvaLFhVYAeStBCZM6ls8v2qKdfEO1CZsF/PkPBunC7rYpjpUG6rH0ETBy3A==","signatures":[{"sig":"MEQCIFxr242k9xsVBhcxGE6RgJR6XkV8KjCGWgYMvBvwuDJbAiAMEy57GKPvI7LQxNOBAWnyHuUv0OOCYahlLesn1RdaYw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":35000,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe4ukeCRA9TVsSAnZWagAAV6AP/0XuQl4hkEFHLplm0J3x\ndEzGzIgGg/HYPfT5mHdRPgj3YkPi+yNHQqs/t0OUZGS9b9Ryf+vNFtIGVxER\nqonafogNs4xHN8WOm6drWc6CQticZ2rwYB+KN8dBiAf/oTdiatQIqgu/FaMV\n/6MOQqbfcTVJHb3sj5KR8xCHIqJr2jkxrm/w/MCVNoTexDD4rQmug2a9uyKf\nU80McV+GhdPrkdHtkFUGFcmdX2swIm0v06P/8R9MDjx+mPdE67aCyAlNE+0O\nnDBZMtQeaiLFDTa7PcCPvVNaTJWtSaQeWSTqG53qSAzc6XrknmKsfwF6jdhG\nBBIeXligOh9jgs7ApfxYErn7bFXH9CFj/t6IEql3/IiZC0d5tYamNMAfm0rt\ngzj7RdBhUfKfteBDP7+WBM9hj9JZmP6h4seDLtxQawNWA59P41KmyVMiI3FH\neTHOfgVX2ms4kFr96OJ9s/AszFEysf8qQ2lqo5GiVpWdtcCDEngRKxQx3KJO\nTUfjjyspSj6gSrPx8gkNG4G4JrxUoHQWtydoMmxcm/DmxyArdBzXMH5pkYua\nMvVnJQSOFZaCLm6pMbI46lWhnjMKiW7hQCJ5HUAFoqOqnVJS6Gx/uRVnKCVl\nmoi2ZxV0okj3vRTCReCtsYM5gkJDq7tOU5bUz/XxOCsdhezrRubYBNuG5ZIx\nllO/\r\n=/LhS\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","gitHead":"f1faa3ab5d40192f7ea28d42640c6c21ca7891ca","scripts":{"test":"mocha test/test.js"},"_npmUser":{"name":"sunilwang","email":"ahwangshu@qq.com"},"repository":{"url":"git+https://github.com/SunilWang/node-os-utils.git","type":"git"},"_npmVersion":"6.13.4","description":"An operating system utility library.","directories":{},"_nodeVersion":"12.16.1","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"mocha":"^6.2.3"},"_npmOperationalInternal":{"tmp":"tmp/node-os-utils_1.2.3_1591929118235_0.9105846194737819","host":"s3://npm-registry-packages"}},"1.2.4":{"name":"node-os-utils","version":"1.2.4","keywords":["os","operating system","server","netstat","memory","cpu","monitor","stats","processes","openfiles","harddrive"],"author":{"name":"SunilWang","email":"ahwangshu@qq.com"},"license":"MIT","_id":"node-os-utils@1.2.4","maintainers":[{"name":"sunilwang","email":"ahwangshu@qq.com"}],"homepage":"https://github.com/SunilWang/node-os-utils#readme","bugs":{"url":"https://github.com/SunilWang/node-os-utils/issues"},"dist":{"shasum":"9e6dd990930f4a39c52501ba8591651ff1c7e0b7","tarball":"https://registry.npmjs.org/node-os-utils/-/node-os-utils-1.2.4.tgz","fileCount":18,"integrity":"sha512-PG8Pmy6epv/eVH1TLKixJ+SskMwfkZlalml4D2jLkeowAD/81nWrDu1yKNC+z8oYJc+o8/YT8UeWIESfTHXCsg==","signatures":[{"sig":"MEYCIQD9DSQNIDmIvZhlqZjaTtCfzCen1Melts2Jt0/vKXUfiwIhALHY0+sfVxy6/QWOSUnn4m8DLqmvTgZbbuZ+L3IKqMaG","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":34938,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe4u50CRA9TVsSAnZWagAAsLMP/1Yi2ZY22nr6FV+C/3Nq\njBgPb4PWr2n+YyXnbD5UMy/qLL+9FrFZv5GjauTzF09Gpa6Vb9rshFl4XjrZ\nfjA72bwMCHQyRvJNrLp7RPCy1divgcPqeEkL7RKP+Qn784qadRxmiaTSWoCQ\nBSZD2pOiSbHPBRVltvYT4kmPG1Uo3EPPEc0+DMP/7UrCFtTVKkp3ZyzEPnT2\nXWwDdiPvsoxhQS5Cq/AtJVasxL0cAIALw3nwrmPRC3uiRgj+nN7m5xo1/xLW\np2CpzonaAGWgZRLXT6OI85d36gqSoB5yHqmJw50C6CRjp3pUj5cFbE9UJV4l\nBmMUyTxl3X0KrCqs/zEJSA8Jl+CMf1bJQB0KaBNYaaJDzNd3V6nMxx8hZMw2\noynBB9bHezhkwMD1f0ahygx8hvpVe2Rl2mRUrh+pXWMzphGN4dzTDZLAyFs9\nglLhuCgo9wypjujbClIDs39KK7u6Bsw/KOvzMGp0gCXTqhoUftxGgLFkuumd\n35mRaZOa3VCKsbNJXp8Waqh5CapofPLfSZQOYHnU/mGxsacEw+1Ugez0S++j\nuyP4vQ75umc51n3aOx76Ha7mnkbiBcOwh+MogTRn3R6YxW332PvH3xlohv9U\nudk0Kqtc1CiyDNrIs2MzcYn4igHQc1okd5Sp98J5INQf17ms9X/6gtVzubuy\neZyC\r\n=eWNt\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","gitHead":"b30ad9a243c0c1a655756523f9c4fd3e4dee47e0","scripts":{"test":"mocha test/test.js"},"_npmUser":{"name":"sunilwang","email":"ahwangshu@qq.com"},"repository":{"url":"git+https://github.com/SunilWang/node-os-utils.git","type":"git"},"_npmVersion":"6.13.4","description":"An operating system utility library.","directories":{},"_nodeVersion":"12.16.1","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"mocha":"^6.2.3"},"_npmOperationalInternal":{"tmp":"tmp/node-os-utils_1.2.4_1591930484477_0.15977214931987604","host":"s3://npm-registry-packages"}},"1.2.5":{"name":"node-os-utils","version":"1.2.5","keywords":["os","operating system","server","netstat","memory","cpu","monitor","stats","processes","openfiles","harddrive"],"author":{"name":"SunilWang","email":"ahwangshu@qq.com"},"license":"MIT","_id":"node-os-utils@1.2.5","maintainers":[{"name":"sunilwang","email":"ahwangshu@qq.com"}],"homepage":"https://github.com/SunilWang/node-os-utils#readme","bugs":{"url":"https://github.com/SunilWang/node-os-utils/issues"},"dist":{"shasum":"3f40f19297478cfd47d2d70d32a4dbd03124ee5e","tarball":"https://registry.npmjs.org/node-os-utils/-/node-os-utils-1.2.5.tgz","fileCount":18,"integrity":"sha512-+TfeHE7GHzff5uvO8q9bKwYu+LuK8CX6IIAGX0bxk6W/Gkh0VLUqDhr4LsHsHdvrk/rz4vPwOqbstdl1nSbJnw==","signatures":[{"sig":"MEQCIHsPre5c1RLq++UfLVPvs2exnUuhp+8Je0C+1ix4K031AiBTHc6rs6JKKi6QkgJ397zkHZSyEWfJoFJ3JjR2+SGzuA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":35567,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe6xVXCRA9TVsSAnZWagAAKmMP/3ocXywwh7fpDOBFxWwk\nqSN6E5QKkoePK1RxE6KDcUkX5ss3iMtEjxJ9fobiN70sv4zfeT+6s5GCy0ib\nIye+s7BQRZO/nQAoF7U/3TIwbfIhJ6N+bHs8knVtzdFsbe/AaDpYcUGJrQBu\nNb1Qgs7jW9YDMJCGVQn8gaoNzDy3NI7YfRU+FWAqTozA+k6jVOdPUmh126Yw\nrkbdujhok+KdxUHe0H5SFCc3yi21T4OdBNom26Id/s0B5c2AafnZN7hRRGTm\nLaInERUmTDMCv0OKWUNEyILbgLtihpzn7+tByC/CVv7dgcZOcRDqTUHg4Vk7\n6RbmOSVczuYFp8x6qJgyNLW4m7ecWbtjULionokAdzMExHZShX+rWXlFc4aI\nZ4Po5FGdkSg37ieGzdsJ+LsYhltA3mB5qfKLSXZ8CUUMfgaD17br77rwF7hf\nP4HEDluqACwijuJHkd+91A1hgiwb8qxAsejgfFrXUw96JlC3KgmviRGP2OMq\nMI8SJv4uxCLSU3PEOGwHYd7SjQLU6qazgueoVNQBbm43HZeqfMJFQvMpiQ8K\nxBUL7vzLydm6opaNhtfNxdOeEQu+HKkxMUasFlJB8c32AmtHBtYzrrK6LhjE\nVSCOu5Iov1zQbHfFl+RJqoZzJT5ELYHnvjwgxK90HU8tXrCtsUbirI08xtfN\nJXjN\r\n=+kPU\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","gitHead":"94f2f147d23657173bac11aea62f56994b3f0be6","scripts":{"test":"mocha test/test.js"},"_npmUser":{"name":"sunilwang","email":"ahwangshu@qq.com"},"repository":{"url":"git+https://github.com/SunilWang/node-os-utils.git","type":"git"},"_npmVersion":"6.13.4","description":"An operating system utility library.","directories":{},"_nodeVersion":"12.16.1","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"mocha":"^6.2.3"},"_npmOperationalInternal":{"tmp":"tmp/node-os-utils_1.2.5_1592464726845_0.36747566374539486","host":"s3://npm-registry-packages"}},"1.3.0":{"name":"node-os-utils","version":"1.3.0","keywords":["os","operating system","server","netstat","memory","cpu","monitor","stats","processes","openfiles","harddrive"],"author":{"name":"SunilWang","email":"ahwangshu@qq.com"},"license":"MIT","_id":"node-os-utils@1.3.0","maintainers":[{"name":"sunilwang","email":"ahwangshu@qq.com"}],"homepage":"https://github.com/SunilWang/node-os-utils#readme","bugs":{"url":"https://github.com/SunilWang/node-os-utils/issues"},"dist":{"shasum":"67db4d7e2e78b86a3afc759f61456ae8eef82db8","tarball":"https://registry.npmjs.org/node-os-utils/-/node-os-utils-1.3.0.tgz","fileCount":19,"integrity":"sha512-1nA/jJ7JIT94BD/zCDFnU7GKbtSGJ7Cpbk/hCZcHLWTsERRtR8osnbnDZdT3Z8ZV7ugP38iYls6eGZfyA8M98A==","signatures":[{"sig":"MEUCID5n1wiwel+dHr6O+dabL4Hwya3WppzaECgKYyJhV2KNAiEA9mMRS8wUwtW60zkMjzR2kv1lArY5HhYBXf5g2mLrXZE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":36583,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe6z9OCRA9TVsSAnZWagAA8TkQAI7AInWt9IvfKCzqSN1W\nM6j4V9GXxTUaQChWkN2UIZpep3mzeL7UEygZyxTrckW8js+tZG/348QSSwXR\noQazzWoJOXp424kJSoAUCwRSpgirD6kPTlpSWq27XKqsgqKXLzu+YXsfr0NV\nLaGcsdyjR/Fku/RKn67clJbJaHWmWPAVwJT5sqFCuKjhgmQIigdk2nFOlqz4\nugy/zTsiy23H0JhXA6s4tahA66knUMLNH5IZMRyhAFBJwYcfdsEiIIn9nawp\nwCcCNl51FhK0EnXBFSf+p2RWXcVFw5ElHSFRMD+3hbjStublLFm+IjhSe4BW\nQVrl4Tor/9oENeyvrl86DgsIDZlB1p7hF15120a6bInNxBj1lse4JkrFLnKK\n3vLGJ9eXWtNZ06TZj6VIJQVnlAljWGojA9R1r006lMrClopMLjntfXF8x0oe\nEyowDkgYXafuN09FYjAYuBbCKHL+FqEUhlrOk0shFTuSEHoMsN5AaxpPObm6\nGSWVyyLyTEmUk9lPC8aWx6Jd2m7+oZLGMJtumU/LMQ8ZZKZuZhWXjiEHntGi\nUZ2W+F3IFIelhIZyYCy5FmRy0jsrfnnY5rcgWVs4TMcLZWiSNTNqqPzUUvLc\nVGTJcF5G4t+DCznGFYQjcqgrUSUbYXKwvbVGdE7u2sp5D0ti3axX7msVkgsv\nciSz\r\n=kG3j\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","gitHead":"f840629c1964e83ad12fc25788c15529c5342bfe","scripts":{"test":"mocha test/test.js"},"_npmUser":{"name":"sunilwang","email":"ahwangshu@qq.com"},"repository":{"url":"git+https://github.com/SunilWang/node-os-utils.git","type":"git"},"_npmVersion":"6.13.4","description":"An operating system utility library.","directories":{},"_nodeVersion":"12.16.1","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"mocha":"^6.2.3"},"_npmOperationalInternal":{"tmp":"tmp/node-os-utils_1.3.0_1592475470200_0.17902959221230352","host":"s3://npm-registry-packages"}},"1.3.1":{"name":"node-os-utils","version":"1.3.1","keywords":["os","operating system","server","netstat","memory","cpu","monitor","stats","processes","openfiles","harddrive"],"author":{"name":"SunilWang","email":"ahwangshu@qq.com"},"license":"MIT","_id":"node-os-utils@1.3.1","maintainers":[{"name":"sunilwang","email":"ahwangshu@qq.com"}],"homepage":"https://github.com/SunilWang/node-os-utils#readme","bugs":{"url":"https://github.com/SunilWang/node-os-utils/issues"},"dist":{"shasum":"6dfa099ce72398550599c5173721bd9a5818d0f5","tarball":"https://registry.npmjs.org/node-os-utils/-/node-os-utils-1.3.1.tgz","fileCount":19,"integrity":"sha512-LJpMuYuweNWdm0B+ux2fQFhHU3shJOL5QIEWdmRot3YOyK9jg+YmpPXsJaAeKYk1mvT9Kjpav+RkCKUsmfgJiA==","signatures":[{"sig":"MEYCIQCuIAcp3qlgeOF+jKFfQ2igvuJUJc2IP0EZFIGwVTsyogIhAIaaxxQ7rj9xnakeKUSFT4YRC9Av3ztBgtqq3OFmEt51","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":36802,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfTKOgCRA9TVsSAnZWagAAecUQAJ6FUl3jx7iHjC3JdMcI\nQy4TvSf6d2kSec+hK4iT1Fe5jjlQYJowDamnnD8nUrw41fV9/8u15dN/8/hN\nZ7kDgmWPEzj8apE1+IQ/ZssiwyTA50Xm1Rdu6WTDM/qg/RqdwqaxhakT1a0R\n60RKZDp78A1VF61Rl8nScDuEv6egTeiYZKA6lz1dIn9ptdWgO/j5i3icMQWR\nQzeOhcklXnPU3zWQHqaVoAXPD7nBrPf84QlobTdwEvEq24kuEJev+pTUADve\nQR3o0s9diyNo4McLEMRO0M2g8BiFTPRFsA/rWXjKg+don6U/Y/vybldRa4yw\nfvO2+Poh8x+5SYhU1vW8G7XUaFAoEl2lQFSdps3/nV5iy10J8rqAqyYNrt4h\n+cCTqvYk2i+t8miZ8yWGOWXM8jQLQsmiNTEBhkqhcFkrEEYUN3QVL3nbXC/Q\n5mtJveXCr1EMKK3lWNseiMKvENWMIlEcT96ZfMLR/FwJg4ys8se0caCUCEWX\n0Ux4Rx1l4lDcBY8yvIOFBjELZnV98UfD2OMjl3F5vzTUqB5x1dV4hoJvbEir\nLkUCYYinsA0IWXYTyfnf+osHwtAujKwfgySkgmoA5rVMC+FoXka5FkRmvl+d\nJYdWAWW4KRmQM3+o9NCSz95Kou2IPBPGBFAtgI2rqHB1v7DqJy1LPYtmXCSW\nSvsL\r\n=0T7d\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","gitHead":"c94491abf78e6a44dddc68daad8c8a870179906e","scripts":{"test":"mocha test/test.js"},"_npmUser":{"name":"sunilwang","email":"ahwangshu@qq.com"},"repository":{"url":"git+https://github.com/SunilWang/node-os-utils.git","type":"git"},"_npmVersion":"6.13.4","description":"An operating system utility library.","directories":{},"_nodeVersion":"12.16.1","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"mocha":"^8.1.3"},"_npmOperationalInternal":{"tmp":"tmp/node-os-utils_1.3.1_1598858144146_0.34315847026200785","host":"s3://npm-registry-packages"}},"1.3.2":{"name":"node-os-utils","version":"1.3.2","keywords":["os","operating system","server","netstat","memory","cpu","monitor","stats","processes","openfiles","harddrive"],"author":{"name":"SunilWang","email":"ahwangshu@qq.com"},"license":"MIT","_id":"node-os-utils@1.3.2","maintainers":[{"name":"sunilwang","email":"ahwangshu@qq.com"}],"homepage":"https://github.com/SunilWang/node-os-utils#readme","bugs":{"url":"https://github.com/SunilWang/node-os-utils/issues"},"dist":{"shasum":"f7f2a856ffc463658f84bad3e7eacf1fed6518b2","tarball":"https://registry.npmjs.org/node-os-utils/-/node-os-utils-1.3.2.tgz","fileCount":19,"integrity":"sha512-wUo/q6u77y9+DBaXkn57IDyJlQuN7xP6VU9h6yeIGhKocc9rDQPyc3WmLgX+x5jf4WmbLcEaA3raM05+v5jW3g==","signatures":[{"sig":"MEYCIQD4a2mz8wtpar79d4HTIWjjBnJ6f7oqi0IYuurUtHekzwIhAMn3/x1ZzhUijKYsV12d/e4Lb7V2hhg+j4V9kS0F197K","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":36776,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfWc9XCRA9TVsSAnZWagAAiDUP/jR5V6SgcT5TfpiC5vlc\n6GBQfkpKTCDmEE/VLPN903ItwwH+aRR6WsHuZOXDlqrp8kPGNOX++2Dkk//f\n67hMeRDMfJwsSIchW4bOW2X7M7vs0QR6PLSEjILWg5yxfNDXD0b/Dq8Gz6aG\n3Bk8k4Oo6ucXK3puUMGZIfOo2+drsBJuocqG8uGtu7HOiFeRz1IjrU4cg0XM\nIjHlFUWLbjBe2iDurM9yZyBhfBKUPmn5nz+Bad80WMv1cL7SdFV0/r3yd5py\nJh9TPC1FVAQF20gfky1TTxRvyV3n7G7Uvk0K9kHXpvUHpNjtYIhIJB7Z77NJ\nTcvrnBr5XrvMR+HsOmwfiJFGy51UQK7dTpfXrJ8+MX07SpT46V2NRjzPQ0pZ\n8a9E4aT6ZhJPeW5piqws7XKsm7ls7o7Q6STfYG8O9gMUMdKoU421raO5kNjI\nq/1n3ncbuy1nhfPd4//w1gevZkEX6Epdt4KtvZySRnvClkv08xXonQigVev2\n4BUGSeKNNML6iNEUlNZIKuY+j2/VrsK18QcRz+U4tYepYzdSfYZZO2bR6jH0\nG0xZ3ddM2igfKOKnXOTE/KeB8Yr/IqyBrHhHc/mLgjixZZCHk9cBQHCy6N1D\nOmD4j1NRnNYS+gm7OyiTYWkhvf8UbW8TSxKLZU9BO+jDqwonQ05CrgctiqBh\nsbJ5\r\n=DaVB\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","gitHead":"b3bd4a8e7b7a3cf4aebf0084db161028573bfc33","scripts":{"test":"mocha test/test.js"},"_npmUser":{"name":"sunilwang","email":"ahwangshu@qq.com"},"repository":{"url":"git+https://github.com/SunilWang/node-os-utils.git","type":"git"},"_npmVersion":"6.13.4","description":"An operating system utility library.","directories":{},"_nodeVersion":"12.16.1","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"mocha":"^6.2.3"},"_npmOperationalInternal":{"tmp":"tmp/node-os-utils_1.3.2_1599721303150_0.1779082668705787","host":"s3://npm-registry-packages"}},"1.3.3":{"name":"node-os-utils","version":"1.3.3","keywords":["os","operating system","server","netstat","memory","cpu","monitor","stats","processes","openfiles","harddrive"],"author":{"name":"SunilWang","email":"ahwangshu@qq.com"},"license":"MIT","_id":"node-os-utils@1.3.3","maintainers":[{"name":"sunilwang","email":"ahwangshu@qq.com"}],"homepage":"https://github.com/SunilWang/node-os-utils#readme","bugs":{"url":"https://github.com/SunilWang/node-os-utils/issues"},"dist":{"shasum":"d1d49a7ddd59200c0ed0dc352defb75034714ad6","tarball":"https://registry.npmjs.org/node-os-utils/-/node-os-utils-1.3.3.tgz","fileCount":19,"integrity":"sha512-7YZd1X2sRj+Vf1Vjl3pcrLkHyYxzV3vhLKPZryEGiwq7dbVXM4gc4GMOiVaTfwKUdcmn+pQ9cD+5V8c8jxsgYA==","signatures":[{"sig":"MEQCIDWnrVfGfWH4OcZkrmK8QGrkQuq0R6Iq2oT+DZKfin9MAiBLQO70/oquyOzA8pV4x4QxyYvLLGCVflOBOaiETI71Ng==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":36940,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgPu6bCRA9TVsSAnZWagAAWhMP/1LUXr1RUrvusUGR6jHW\nVtAbyFSLQjM6Ba9erxBhml6/ThbkwkPZCI+RK1d1JoA+TdMbeC8QZjhH/jhe\nbrpjiSKdZthoqZgputdraqyjc8l8n5ibvagEnejx7S48RphUHme4B4M//s85\nHBBji0chcPuDkr2TUz9Kqurn9l0oVVYM0/KeWjIHBDeHgpVDfgEYQK0k6Ejb\neB+xR9B4UIPUn7Pmbw0elwOMg5S99Xzoq/T1l1BlzYpmq2KUKxTQ1DDNVRA/\ntqTyiELHkolAMTs/cWPAIk2ng0guiETSrM25ylG/+/qExiw9SsXOzCxRjwv1\nQizux3JlcO1bKDxdnm0EcDW8yEt2DeSG2qF876ts28jCsbQYSAp7Z2bJ9Z64\n5z/o4MvKDJq/Lb2Ki0DjpJeLjljsDwR+QvSyDOpJdoEOz17LbAjn29FZodWc\nrbM/GthYY7HngC3RqRt3oeA3s+A0kNrgJ42T+c7BfRSjQs+XpFAox2d+1xcj\n2ubZJ3z0bH6XRwCliuuIoxFTDe77WWwH7Mmv7CrT6ScHIQjurr24MhaRrCUn\nZvH2ftxXayQm/Vhmn4Xivo7rIuKqEmOHcQVY19n6KYEPvKsvcEYYLADy5QUo\nFyzyvo6Hs7V7VrnDxI4jM8QAHHXA+ufvOXRzPCMXq2H3CKW2vgJm5KjLuYgC\nM8Ns\r\n=XGzL\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","gitHead":"02246195f8948dc18daf1ac9172697895447c206","scripts":{"test":"mocha test/test.js"},"_npmUser":{"name":"sunilwang","email":"ahwangshu@qq.com"},"repository":{"url":"git+https://github.com/SunilWang/node-os-utils.git","type":"git"},"_npmVersion":"6.13.4","description":"An operating system utility library.","directories":{},"_nodeVersion":"12.16.1","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"mocha":"^6.2.3"},"_npmOperationalInternal":{"tmp":"tmp/node-os-utils_1.3.3_1614737050640_0.9799078837437523","host":"s3://npm-registry-packages"}},"1.3.4":{"name":"node-os-utils","version":"1.3.4","keywords":["os","operating system","server","netstat","memory","cpu","monitor","stats","processes","openfiles","harddrive"],"author":{"name":"SunilWang","email":"ahwangshu@qq.com"},"license":"MIT","_id":"node-os-utils@1.3.4","maintainers":[{"name":"sunilwang","email":"ahwangshu@qq.com"}],"homepage":"https://github.com/SunilWang/node-os-utils#readme","bugs":{"url":"https://github.com/SunilWang/node-os-utils/issues"},"dist":{"shasum":"2d5b90504f9f84ccf591e9f46812ea7ee9cae70a","tarball":"https://registry.npmjs.org/node-os-utils/-/node-os-utils-1.3.4.tgz","fileCount":19,"integrity":"sha512-4tCY4mToKCwKQYEPhTSYyPg1fPNwmDKVhSysa9krGPwoynFxiwqGxuhJWmJkTKk/DLv/weKoidJs6zT7cgfAmg==","signatures":[{"sig":"MEUCID5UEOq+Az37Yzd+f+88to29Dqc5NtQijs9dakHX4IW4AiEAm7VLVTJjkHZTchAEHrQyHfWJl8NCYKom7c/ONQU/eJk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":36955,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgPvBpCRA9TVsSAnZWagAA+woP+QAu+W8PA+OqPRfuQRgK\ng57q0cWHm2qAHwzynhotiX5ME0Ut+5AW0z9gypqIbN7/zCUHfrIOFh6SY13a\n1mR/LApg5T1DQZBFlS+8T674afanyvk1PbrIOuSDCi3SIk1xpBI4OWqzE826\nd6pEzgg1PaNmdT6puclmsyjBUhA2ZwKsN+KblXvbBFS/JJhBhzjXi+pvQT7n\nIIn0bdgy3K9NEPfHDGBHaajzCf2OHCRil0Ql7RqKgYCREIajLXaTchbnLkpL\nmNASmAwodLaLgaTVBX1j0eTWF2qCRZUMwpmVNRVm7FG7AaGzjdQ9GEaD0oW6\ncnQyEpLV5xDFVCKhAGyn03pDV9gcUJ678DQqGB74dGBw6GXuRSWbgxLQBSKs\nkQagBAvfFyGVHGLc5wKC65LlLj1LAAKJJAE1fipgWsMfClbJ4H7Y2PtWWcZF\n2slWv5kF2QOibtzIg/UuuT9wqehVitmLfrWtfRiufiw4cHnZtD1FV73gaTQQ\nbo9mUc+zxcQVKiRoyW13binvBwRklKE3soeSTuyjbGYEOgFDKwQPF/5NKp+f\nriprvqEtiQmL3gnu7H8zVqUk076llCjk4IFIEcG0dQkVai58SQxvxPhaNjkr\nbhMTkBQbZgskQkbOa6LFnL6tKMKiuB9qU3U4yuptRmubDQYc28u4cfTzq5jI\n0nbI\r\n=YvMF\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","gitHead":"1ef9a8e76601ea1810c24bb95430baf302b602a7","scripts":{"test":"mocha test/test.js"},"_npmUser":{"name":"sunilwang","email":"ahwangshu@qq.com"},"repository":{"url":"git+https://github.com/SunilWang/node-os-utils.git","type":"git"},"_npmVersion":"6.13.4","description":"An operating system utility library.","directories":{},"_nodeVersion":"12.16.1","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"mocha":"^6.2.3"},"_npmOperationalInternal":{"tmp":"tmp/node-os-utils_1.3.4_1614737512625_0.8431437862876876","host":"s3://npm-registry-packages"}},"1.3.5":{"name":"node-os-utils","version":"1.3.5","keywords":["os","operating system","server","netstat","memory","cpu","monitor","stats","processes","openfiles","harddrive"],"author":{"name":"SunilWang","email":"ahwangshu@qq.com"},"license":"MIT","_id":"node-os-utils@1.3.5","maintainers":[{"name":"sunilwang","email":"ahwangshu@qq.com"}],"homepage":"https://github.com/SunilWang/node-os-utils#readme","bugs":{"url":"https://github.com/SunilWang/node-os-utils/issues"},"dist":{"shasum":"d34a22c7d15af76f13e4c1e05634b905e780b3cf","tarball":"https://registry.npmjs.org/node-os-utils/-/node-os-utils-1.3.5.tgz","fileCount":19,"integrity":"sha512-bIJIlk+hA+7/ATnu3sQMtF697iw9T/JksDhKMe9uENG0OhzIG7hLM6fbcyu18bOuajlYWnSlj0IhDo2q7k0ebg==","signatures":[{"sig":"MEUCIDwAkV7JLAE65Tnp9PP4r0lTXkSp/XyugqFT1FqSMTzXAiEA3aAKDWugMmaXKfwGCdz90sXLiv2it1PX041VSes8aWk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":36974,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgPvegCRA9TVsSAnZWagAAb34P/Ra36JpriWiIceCHBqdL\n0PUMGJe4Yzpp8aGgCwMYdX3cfTmvxjNweVDZ5mcwsfRV32VyW+Utrqt1gsP1\nX8f+o8aqJh3u8uycorkGqVtOOeMghlQNnswcA+d2demAsfCQ2OMojT+ALeXP\nDCSJXoPYmBUPu4MQvb3hbwVv+Ihc2V5+G1WTXkjkoANvYoWc/7NoNHef+E4M\nzfevdyZktAbhUxe0xd8KzUhElI2QcrEqQNyWIXu4sIc9FlNyrZotaPF1KPhx\n4Gwhp45st0HhKAF93870T7glN/l2NyreSFhv/6+cOqWSNV8e5JOPZpE1n2gK\nyVNOMrvXrFzyo66zzUpA+c5Dl4AiJhXS3qM/44J5oxBPLbfKFzFF+On9qOt3\nWi/UrGR+s2WdE7ljJNgRGDx7dxRvQvkyTbK5yj1mV98qtcvPJXqBpB9YKLaA\n3PArkRGmcy6D0aXbqMCaA+8icW8t7OgStAnacgAYoMfzQc0Zc63XD/9Ij/VD\n0zKNM4MZqM1G567wL88hpQHhikZK7OwCjOwec/Gf0HTaz5gpleFHnQweap7d\n8noi0WxJt6ivIeETIXQ+tkOGRTL12daUCmUyAz9YT6nsVxLXgODmj0n1AYbK\n1k8WQiHCEnUHYvAaq3OubKNL/WLsafXroTWM9Av7VnMQj25DYzZ3xxRiRXTW\n7L8H\r\n=yzsc\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","gitHead":"d5d86cdde48ddfcc0ac7d9c83b87c17783c52f7d","scripts":{"test":"mocha test/test.js"},"_npmUser":{"name":"sunilwang","email":"ahwangshu@qq.com"},"repository":{"url":"git+https://github.com/SunilWang/node-os-utils.git","type":"git"},"_npmVersion":"6.13.4","description":"An operating system utility library.","directories":{},"_nodeVersion":"12.16.1","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"mocha":"^6.2.3"},"_npmOperationalInternal":{"tmp":"tmp/node-os-utils_1.3.5_1614739359682_0.2554945735888101","host":"s3://npm-registry-packages"}},"1.3.6":{"name":"node-os-utils","version":"1.3.6","keywords":["os","operating system","server","netstat","memory","cpu","monitor","stats","processes","openfiles","harddrive"],"author":{"name":"SunilWang","email":"ahwangshu@qq.com"},"license":"MIT","_id":"node-os-utils@1.3.6","maintainers":[{"name":"sunilwang","email":"ahwangshu@qq.com"}],"homepage":"https://github.com/SunilWang/node-os-utils#readme","bugs":{"url":"https://github.com/SunilWang/node-os-utils/issues"},"dist":{"shasum":"92ec217972436df67b677f9c939aac57eda2804c","tarball":"https://registry.npmjs.org/node-os-utils/-/node-os-utils-1.3.6.tgz","fileCount":19,"integrity":"sha512-WympE9ELtdOzNak/rAuuIV5DwvX/PTJtN0LjyWeGyTTR2Kt0sY56ldLoGbVBnfM1dz46VeO3sHcNZI5BZ+EB+w==","signatures":[{"sig":"MEYCIQC26qSztBb+meeoVU+2IYNwDRWzTh28pA23FkqxIbC0YQIhAP7dRvCNzQeOgJC6dHTif3fBznH5stVThQCYJB6tcYZ7","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":36988,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh3OS+CRA9TVsSAnZWagAAmTMP/jPCgKkWuqPuIez6ji4P\nHaR2dqj8OXJzavnagSBqKF/LhV/Hn7xJHCNRh8q5i5PUdFLb+gTpOeEY1d6u\nM22cQvBV+jMwb4VuINbfOQCBVNxv1FmsiicWmlOmmiyKewsJErVar1QHls3S\ncM19Cyw1bTmYM9UnCPPWIHj/3m9ygjojuHXEbF4Pd8jb9YiwXKrqo7KYJ8TB\npqEupW8X9Gtt6ev/OSgG55ICKTkx8D/RJij78OM0904hqNy6chxbLkPQ9QoW\nkYyIDfveuVmP6V096ipCiQ3jrdvunRPjLvFS3uLBOB3ULi7r+sdIrYgl5dZB\nnxRtLieyd2bUA46/HENfBKuhEwipoWyTh/yytjqFGo4eups5DqxeMu3cUKQz\nYfOxdsjodTvIahZ3V1jpx/4VdXOTSqDwb3oMSZnlyJttXsWn3+x1n6N2wxLB\npsTIGhvZkB3VDbVdWDAyiT+tYvJS/+Fu66y1Y2gBNLCClRJdmIT/Aqca7aGm\nZ+gELx9CkQ6jx+i2rutRH0KKif5CqnmXy8qcQdrYCIYy/FzuctNG3dSXt0yA\nwKH4fw6jbwAyIRC4feXWp/OKMO1Xa+tgT9V5NqFQV2G2nh55GOe16RwixVoe\n3NC/hKXUm9Rh518SiIEbGD079jd/Mmf1waM152exIy6q2DXqDzCi6NicGImB\nObT5\r\n=aAmN\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","gitHead":"323aefd7114dc3f7304979c8cebcb0801734c2e1","scripts":{"test":"mocha test/test.js"},"_npmUser":{"name":"sunilwang","email":"ahwangshu@qq.com"},"repository":{"url":"git+https://github.com/SunilWang/node-os-utils.git","type":"git"},"_npmVersion":"6.14.15","description":"An operating system utility library.","directories":{},"_nodeVersion":"12.22.8","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"mocha":"^6.2.3"},"_npmOperationalInternal":{"tmp":"tmp/node-os-utils_1.3.6_1641866430314_0.6782810283237104","host":"s3://npm-registry-packages"}},"1.3.7":{"name":"node-os-utils","version":"1.3.7","keywords":["os","operating system","server","netstat","memory","cpu","monitor","stats","processes","openfiles","harddrive"],"author":{"name":"SunilWang","email":"ahwangshu@qq.com"},"license":"MIT","_id":"node-os-utils@1.3.7","maintainers":[{"name":"sunilwang","email":"ahwangshu@qq.com"}],"homepage":"https://github.com/SunilWang/node-os-utils#readme","bugs":{"url":"https://github.com/SunilWang/node-os-utils/issues"},"dist":{"shasum":"77cc341ae39584e12d3aadf6046fe420ff4c9340","tarball":"https://registry.npmjs.org/node-os-utils/-/node-os-utils-1.3.7.tgz","fileCount":19,"integrity":"sha512-fvnX9tZbR7WfCG5BAy3yO/nCLyjVWD6MghEq0z5FDfN+ZXpLWNITBdbifxQkQ25ebr16G0N7eRWJisOcMEHG3Q==","signatures":[{"sig":"MEUCIQDoK0+rdjn1arE405+8VjFeHv6RzPQDa0Uj/u6lTABsowIgQc4YGnFqbGjroBMoWmCm+IXkSe4HX09aA3HbGk5EQVE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":36958,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJip+HxACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqQHBAAkEcqWCn7wreWaUeRmiZhJS1U6QOZEQ2xPMDR1yE7pX71ZbLE\r\n8MHCc9IkVucf9Q2n347vEpaPxFd0MjYRLgYPyC7yPOemJcAsMXMR9yEN0QpN\r\n1hST+gWjZKyCVEkqr5tnkYvDTchSf8OGjQ7rIWV9GFD/0gV3vanBKCvJr7OA\r\n0vI61lbIHCbEDMtI/FH7icZzyLAVbfoZ9geTCBJYBsLAQREbndhplipzH0RV\r\nEPLT4StUEagjQ28Pbogw70qWVYqdy4CHhVR8w7N9hNqVfiuCKVnNbPqW2ACT\r\n4m8G3ppdH3QZnSWzoci/+Cfc5Uis81KpFmHw2vPNMIxNCA04d0LSU6SH+w+3\r\ngXBfHg2cHD/d0pdq3KEIsaa0QnVosWGNQWxsbml/alQwrDk8wLW9kNqu6+1J\r\nEjOEMhQIhbTQqWyFCpVd4lyFJyLTfBK/JXgE4yPRbUqRp/U9UW6SN2R6NfAK\r\n1FNnc49Okr9ZpKeJEJOHCVU3DmDT/9DVB+70IzNMF3qAJ5D+ph3GYE+gi2lq\r\nAKLcbiNzymzxtS78uhpqPeIBVDevFK6p5FKDXsvHburgsntaR9Uu+z62FkFf\r\nEOdv0rvNbB7+ZlQTglYtcO8DM3HntVirTO6qZqsKE11Iy5CR/yIA5GXR66lv\r\nJbCwlNroZKmRbzfBALAm+04GpPvLTye5aeY=\r\n=pDcE\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","gitHead":"e48c6704a58c12bd567c6b13c4618b624a098388","scripts":{"test":"mocha test/test.js"},"_npmUser":{"name":"sunilwang","email":"ahwangshu@qq.com"},"repository":{"url":"git+https://github.com/SunilWang/node-os-utils.git","type":"git"},"_npmVersion":"6.14.15","description":"An operating system utility library.","directories":{},"_nodeVersion":"14.18.2","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"mocha":"^6.2.3"},"_npmOperationalInternal":{"tmp":"tmp/node-os-utils_1.3.7_1655169521252_0.4482354031561866","host":"s3://npm-registry-packages"}},"2.0.1-beta.1":{"name":"node-os-utils","version":"2.0.1-beta.1","keywords":["os","system-monitor","monitoring","cpu","memory","disk","network","process-monitor","server-monitoring","typescript","cross-platform","linux","macos","windows","performance","metrics","realtime","observability","netstat","processes"],"author":{"name":"SunilWang","email":"ahwangshu@qq.com"},"license":"MIT","_id":"node-os-utils@2.0.1-beta.1","maintainers":[{"name":"sunilwang","email":"ahwangshu@qq.com"}],"homepage":"https://github.com/SunilWang/node-os-utils#readme","bugs":{"url":"https://github.com/SunilWang/node-os-utils/issues"},"dist":{"shasum":"e2e45b826b09f3b88a21699135b813f463962a51","tarball":"https://registry.npmjs.org/node-os-utils/-/node-os-utils-2.0.1-beta.1.tgz","fileCount":205,"integrity":"sha512-Yy56gl9NArMrrnt3G6x5uZ1rJ6i3hcQVcskj4bn+vwQukA37Jr5c2/eAMZityd6mm75LY0kZzwTVbfpQZx7lAg==","signatures":[{"sig":"MEUCIBG8VdG0NfJK9TAefjZidEytDZYqn4k/sfOc4ZVbQEOLAiEAoNHHrL2Z3M2lxjCnrNzdEGmeZNP3Ss+Dkxxo2AcBmH0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1136129},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"gitHead":"0f07ce6f45f922580cdd01ef158b2db23e5e8426","scripts":{"dev":"tsc --watch","docs":"typedoc src --out docs","lint":"eslint src --ext .ts --fix","test":"npm run build && mocha 'dist/**/*.test.js'","build":"npm run clean && tsc","clean":"rimraf dist","test:unit":"mocha 'dist/test/unit/**/*.test.js'","lint:check":"eslint src --ext .ts","test:linux":"npm run build && mocha 'dist/test/platform/linux.test.js'","test:macos":"npm run build && mocha 'dist/test/platform/macos.test.js'","build:watch":"tsc --watch","test:node18":"node --version && npm test","test:node20":"node --version && npm test","test:node22":"node --version && npm test","publish:beta":"npm publish --tag beta","test:windows":"npm run build && mocha 'dist/test/platform/windows.test.js'","version:beta":"npm version prerelease --preid=beta","test:coverage":"nyc npm test","test:platform":"npm run build && mocha 'dist/test/platform/**/*.test.js'","prepublishOnly":"npm run clean && npm run build && npm test","test:integration":"mocha 'dist/test/integration/**/*.test.js'","test:all-platforms":"npm run test:linux && npm run test:macos && npm run test:windows","test:current-platform":"npm run build && node -e \"const os=require('os'); const platform=os.platform(); const map={linux:'test:linux',darwin:'test:macos',win32:'test:windows'}; const script=map[platform] || 'test'; console.log('Running tests for platform:', platform, '->', script); require('child_process').execSync('npm run ' + script, {stdio:'inherit'});\"","test:coverage-platform":"nyc npm run test:platform"},"_npmUser":{"name":"sunilwang","email":"ahwangshu@qq.com"},"repository":{"url":"git+https://github.com/SunilWang/node-os-utils.git","type":"git"},"_npmVersion":"10.8.2","description":"Advanced cross-platform operating system monitoring utilities with TypeScript support","directories":{},"_nodeVersion":"18.20.8","dependencies":{},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"~15.1.0","chai":"~4.3.0","mocha":"~10.0.0","eslint":"~8.0.0","rimraf":"~5.0.0","typedoc":"~0.25.0","typescript":"~5.4.0","@types/chai":"~4.3.0","@types/node":"~18.0.0","@types/mocha":"~10.0.0","@typescript-eslint/parser":"~6.0.0","@typescript-eslint/eslint-plugin":"~6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/node-os-utils_2.0.1-beta.1_1759054422155_0.5628691723260784","host":"s3://npm-registry-packages-npm-production"}},"2.0.1-beta.2":{"name":"node-os-utils","version":"2.0.1-beta.2","keywords":["os","system-monitor","monitoring","cpu","memory","disk","network","process-monitor","server-monitoring","typescript","cross-platform","linux","macos","windows","performance","metrics","realtime","observability","netstat","processes"],"author":{"name":"SunilWang","email":"ahwangshu@qq.com"},"license":"MIT","_id":"node-os-utils@2.0.1-beta.2","maintainers":[{"name":"sunilwang","email":"ahwangshu@qq.com"}],"homepage":"https://github.com/SunilWang/node-os-utils#readme","bugs":{"url":"https://github.com/SunilWang/node-os-utils/issues"},"dist":{"shasum":"0d2bfab0835340667f14cb428882efb318fd5e49","tarball":"https://registry.npmjs.org/node-os-utils/-/node-os-utils-2.0.1-beta.2.tgz","fileCount":205,"integrity":"sha512-c09rcNlpfNOLHLWEC+ApBbdUua/eT/H7+kfsdRzHCD0opJWs2JdFr4v/O27oWvZSdzwiy1gtvu0lFeO5jNboHw==","signatures":[{"sig":"MEUCIDGfUxN/+p828pUhlQ1rklhNcLv3TAo1Ef5RaLwjfSs2AiEArbpobDSVAI9VRMf8VvZmUdPsOa5Jh4vzN67ywUeaov8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1136169},"main":"dist/src/index.js","types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"bd707f6644b65e604b3621b31114bc13e3b37d07","scripts":{"dev":"tsc --watch","docs":"typedoc src --out docs","lint":"eslint src --ext .ts --fix","test":"npm run build && mocha 'dist/**/*.test.js'","build":"npm run clean && tsc","clean":"rimraf dist","test:unit":"mocha 'dist/test/unit/**/*.test.js'","lint:check":"eslint src --ext .ts","test:linux":"npm run build && mocha 'dist/test/platform/linux.test.js'","test:macos":"npm run build && mocha 'dist/test/platform/macos.test.js'","build:watch":"tsc --watch","test:node18":"node --version && npm test","test:node20":"node --version && npm test","test:node22":"node --version && npm test","publish:beta":"npm publish --tag beta","test:windows":"npm run build && mocha 'dist/test/platform/windows.test.js'","version:beta":"npm version prerelease --preid=beta","test:coverage":"nyc npm test","test:platform":"npm run build && mocha 'dist/test/platform/**/*.test.js'","prepublishOnly":"npm run clean && npm run build && npm test","test:integration":"mocha 'dist/test/integration/**/*.test.js'","test:all-platforms":"npm run test:linux && npm run test:macos && npm run test:windows","test:current-platform":"npm run build && node -e \"const os=require('os'); const platform=os.platform(); const map={linux:'test:linux',darwin:'test:macos',win32:'test:windows'}; const script=map[platform] || 'test'; console.log('Running tests for platform:', platform, '->', script); require('child_process').execSync('npm run ' + script, {stdio:'inherit'});\"","test:coverage-platform":"nyc npm run test:platform"},"_npmUser":{"name":"sunilwang","email":"ahwangshu@qq.com"},"repository":{"url":"git+https://github.com/SunilWang/node-os-utils.git","type":"git"},"_npmVersion":"10.8.2","description":"Advanced cross-platform operating system monitoring utilities with TypeScript support","directories":{},"_nodeVersion":"18.20.8","dependencies":{},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"~15.1.0","chai":"~4.3.0","mocha":"~10.0.0","eslint":"~8.0.0","rimraf":"~5.0.0","typedoc":"~0.25.0","typescript":"~5.4.0","@types/chai":"~4.3.0","@types/node":"~18.0.0","@types/mocha":"~10.0.0","@typescript-eslint/parser":"~6.0.0","@typescript-eslint/eslint-plugin":"~6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/node-os-utils_2.0.1-beta.2_1759055256540_0.23988209668723415","host":"s3://npm-registry-packages-npm-production"}},"2.0.1":{"name":"node-os-utils","version":"2.0.1","keywords":["os","system-monitor","monitoring","cpu","memory","disk","network","process-monitor","server-monitoring","typescript","cross-platform","linux","macos","windows","performance","metrics","realtime","observability","netstat","processes"],"author":{"name":"SunilWang","email":"ahwangshu@qq.com"},"license":"MIT","_id":"node-os-utils@2.0.1","maintainers":[{"name":"sunilwang","email":"ahwangshu@qq.com"}],"homepage":"https://github.com/SunilWang/node-os-utils#readme","bugs":{"url":"https://github.com/SunilWang/node-os-utils/issues"},"dist":{"shasum":"a0ea8b30861396c0dab4e2733fa92bdba5257a00","tarball":"https://registry.npmjs.org/node-os-utils/-/node-os-utils-2.0.1.tgz","fileCount":205,"integrity":"sha512-rH2N3qHZETLhdgTGhMMCE8zU3gsWO4we1MFtrSiAI7tYWrnJRc6dk2PseV4co3Lb0v/MbRONLQI2biHQYbpTpg==","signatures":[{"sig":"MEUCIQDcZVPh4JXy0qv80C1+OQBgrNqcc01UmG6Awa823RI1eQIgBFsquaFPWD7qXpC3cEPTcPBjS8TzJs0sPQ0ymZ4819A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1136155},"main":"dist/src/index.js","types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"4c25db875274abe3f381d95304f6509fbd723db4","scripts":{"dev":"tsc --watch","docs":"typedoc src --out docs","lint":"eslint src --ext .ts --fix","test":"npm run build && mocha 'dist/**/*.test.js'","build":"npm run clean && tsc","clean":"rimraf dist","test:unit":"mocha 'dist/test/unit/**/*.test.js'","lint:check":"eslint src --ext .ts","test:linux":"npm run build && mocha 'dist/test/platform/linux.test.js'","test:macos":"npm run build && mocha 'dist/test/platform/macos.test.js'","build:watch":"tsc --watch","test:node18":"node --version && npm test","test:node20":"node --version && npm test","test:node22":"node --version && npm test","publish:beta":"npm publish --tag beta","test:windows":"npm run build && mocha 'dist/test/platform/windows.test.js'","version:beta":"npm version prerelease --preid=beta","test:coverage":"nyc npm test","test:platform":"npm run build && mocha 'dist/test/platform/**/*.test.js'","prepublishOnly":"npm run clean && npm run build && npm test","test:integration":"mocha 'dist/test/integration/**/*.test.js'","test:all-platforms":"npm run test:linux && npm run test:macos && npm run test:windows","test:current-platform":"npm run build && node -e \"const os=require('os'); const platform=os.platform(); const map={linux:'test:linux',darwin:'test:macos',win32:'test:windows'}; const script=map[platform] || 'test'; console.log('Running tests for platform:', platform, '->', script); require('child_process').execSync('npm run ' + script, {stdio:'inherit'});\"","test:coverage-platform":"nyc npm run test:platform"},"_npmUser":{"name":"sunilwang","email":"ahwangshu@qq.com"},"repository":{"url":"git+https://github.com/SunilWang/node-os-utils.git","type":"git"},"_npmVersion":"10.8.2","description":"Advanced cross-platform operating system monitoring utilities with TypeScript support","directories":{},"_nodeVersion":"18.20.8","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"nyc":"~15.1.0","chai":"~4.3.0","mocha":"~10.0.0","eslint":"~8.0.0","rimraf":"~5.0.0","typedoc":"~0.25.0","typescript":"~5.4.0","@types/chai":"~4.3.0","@types/node":"~18.0.0","@types/mocha":"~10.0.0","@typescript-eslint/parser":"~6.0.0","@typescript-eslint/eslint-plugin":"~6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/node-os-utils_2.0.1_1759974322547_0.7315883292711638","host":"s3://npm-registry-packages-npm-production"}},"2.0.2":{"name":"node-os-utils","version":"2.0.2","keywords":["os","system-monitor","monitoring","cpu","memory","disk","network","process-monitor","server-monitoring","typescript","cross-platform","linux","macos","windows","performance","metrics","realtime","observability","netstat","processes"],"author":{"name":"SunilWang","email":"ahwangshu@qq.com"},"license":"MIT","_id":"node-os-utils@2.0.2","maintainers":[{"name":"sunilwang","email":"ahwangshu@qq.com"}],"homepage":"https://github.com/SunilWang/node-os-utils#readme","bugs":{"url":"https://github.com/SunilWang/node-os-utils/issues"},"dist":{"shasum":"eac0fbdb7a7b063ed98d964813354317621f72e4","tarball":"https://registry.npmjs.org/node-os-utils/-/node-os-utils-2.0.2.tgz","fileCount":205,"integrity":"sha512-QTdxdJ9XIl7jAkr27h8sy4rYVzJFSq4a3eFhnl3DfVEGauEhQuz2OL4vnZczexXhLM2RAI7hvOi7c5SIANPuIw==","signatures":[{"sig":"MEYCIQD09g8bH0hMI9OdQw4cNSML57DQZOlT7iomcQqbktyVygIhAL8Zy+akgtDVKn1Xl/Ubzr2XalTDpzLF52LDE+hgW0hN","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1171268},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"d48e18180b69e94ab9e3ad848206ca02e262d57f","scripts":{"dev":"tsc --watch","docs":"typedoc src --out docs","lint":"eslint src --ext .ts --fix","test":"npm run build && mocha 'dist/**/*.test.js'","build":"npm run clean && tsc","clean":"rimraf dist","test:unit":"mocha 'dist/test/unit/**/*.test.js'","lint:check":"eslint src --ext .ts","test:linux":"npm run build && mocha 'dist/test/platform/linux.test.js'","test:macos":"npm run build && mocha 'dist/test/platform/macos.test.js'","build:watch":"tsc --watch","test:node18":"node --version && npm test","test:node20":"node --version && npm test","test:node22":"node --version && npm test","publish:beta":"npm publish --tag beta","test:windows":"npm run build && mocha 'dist/test/platform/windows.test.js'","version:beta":"npm version prerelease --preid=beta","test:coverage":"nyc npm test","test:platform":"npm run build && mocha 'dist/test/platform/**/*.test.js'","prepublishOnly":"npm run clean && npm run build && npm test","test:integration":"mocha 'dist/test/integration/**/*.test.js'","test:all-platforms":"npm run test:linux && npm run test:macos && npm run test:windows","test:current-platform":"npm run build && node -e \"const os=require('os'); const platform=os.platform(); const map={linux:'test:linux',darwin:'test:macos',win32:'test:windows'}; const script=map[platform] || 'test'; console.log('Running tests for platform:', platform, '->', script); require('child_process').execSync('npm run ' + script, {stdio:'inherit'});\"","test:coverage-platform":"nyc npm run test:platform"},"_npmUser":{"name":"sunilwang","email":"ahwangshu@qq.com"},"repository":{"url":"git+https://github.com/SunilWang/node-os-utils.git","type":"git"},"_npmVersion":"10.8.2","description":"Advanced cross-platform operating system monitoring utilities with TypeScript support","directories":{},"_nodeVersion":"18.20.8","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"nyc":"~15.1.0","chai":"~4.3.0","mocha":"~10.0.0","eslint":"~8.0.0","rimraf":"~5.0.0","typedoc":"~0.25.0","typescript":"~5.4.0","@types/chai":"~4.3.0","@types/node":"~18.0.0","@types/mocha":"~10.0.0","@typescript-eslint/parser":"~6.0.0","@typescript-eslint/eslint-plugin":"~6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/node-os-utils_2.0.2_1775559406984_0.5610338825300341","host":"s3://npm-registry-packages-npm-production"}},"2.0.3":{"name":"node-os-utils","version":"2.0.3","keywords":["os","system-monitor","monitoring","cpu","memory","disk","network","process-monitor","server-monitoring","typescript","cross-platform","linux","macos","windows","performance","metrics","realtime","observability","netstat","processes"],"author":{"name":"SunilWang","email":"ahwangshu@qq.com"},"license":"MIT","_id":"node-os-utils@2.0.3","maintainers":[{"name":"sunilwang","email":"ahwangshu@qq.com"}],"homepage":"https://github.com/SunilWang/node-os-utils#readme","bugs":{"url":"https://github.com/SunilWang/node-os-utils/issues"},"dist":{"shasum":"a6fcb33e79c6f4b7a51b45180d6c598ababcb6bd","tarball":"https://registry.npmjs.org/node-os-utils/-/node-os-utils-2.0.3.tgz","fileCount":205,"integrity":"sha512-NqItOJn+5355jYz/fYfs4PrMNTbKNG01ILws0rZhEZ3by3a0Kg9hGmzTqVOZnXsh9uww+AHUc4d6A1jEHR6u8g==","signatures":[{"sig":"MEUCIAUm3TPwRPkSlDZ4/93yh9xfMNf/yLqhMjhepXj8MKbwAiEA7qthgB+Ej8rM1Hj50mM5g9OwySHeUmZEMpBRuIcXJk4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1189416},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"400ba8d5102b11c94a7064bf47bc399e119b1e02","scripts":{"dev":"tsc --watch","docs":"typedoc src --out docs","lint":"eslint src --ext .ts --fix","test":"npm run build && mocha 'dist/**/*.test.js'","build":"npm run clean && tsc","clean":"rimraf dist","test:unit":"mocha 'dist/test/unit/**/*.test.js'","lint:check":"eslint src --ext .ts","test:linux":"npm run build && mocha 'dist/test/platform/linux.test.js'","test:macos":"npm run build && mocha 'dist/test/platform/macos.test.js'","build:watch":"tsc --watch","test:node18":"node --version && npm test","test:node20":"node --version && npm test","test:node22":"node --version && npm test","publish:beta":"npm publish --tag beta","test:windows":"npm run build && mocha 'dist/test/platform/windows.test.js'","version:beta":"npm version prerelease --preid=beta","test:coverage":"nyc npm test","test:platform":"npm run build && mocha 'dist/test/platform/**/*.test.js'","prepublishOnly":"npm run clean && npm run build && npm test","test:integration":"mocha 'dist/test/integration/**/*.test.js'","test:all-platforms":"npm run test:linux && npm run test:macos && npm run test:windows","test:current-platform":"npm run build && node -e \"const os=require('os'); const platform=os.platform(); const map={linux:'test:linux',darwin:'test:macos',win32:'test:windows'}; const script=map[platform] || 'test'; console.log('Running tests for platform:', platform, '->', script); require('child_process').execSync('npm run ' + script, {stdio:'inherit'});\"","test:coverage-platform":"nyc npm run test:platform"},"_npmUser":{"name":"sunilwang","email":"ahwangshu@qq.com"},"repository":{"url":"git+https://github.com/SunilWang/node-os-utils.git","type":"git"},"_npmVersion":"10.8.2","description":"Advanced cross-platform operating system monitoring utilities with TypeScript support","directories":{},"_nodeVersion":"18.20.8","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"nyc":"~15.1.0","chai":"~4.3.0","mocha":"~10.0.0","eslint":"~8.0.0","rimraf":"~5.0.0","typedoc":"~0.25.0","typescript":"~5.4.0","@types/chai":"~4.3.0","@types/node":"~18.0.0","@types/mocha":"~10.0.0","@typescript-eslint/parser":"~6.0.0","@typescript-eslint/eslint-plugin":"~6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/node-os-utils_2.0.3_1775563024923_0.7721450205572189","host":"s3://npm-registry-packages-npm-production"}},"2.0.4":{"name":"node-os-utils","version":"2.0.4","keywords":["os","system-monitor","monitoring","cpu","memory","disk","network","process-monitor","server-monitoring","typescript","cross-platform","linux","macos","windows","performance","metrics","realtime","observability","netstat","processes"],"author":{"name":"SunilWang","email":"ahwangshu@qq.com"},"license":"MIT","_id":"node-os-utils@2.0.4","maintainers":[{"name":"sunilwang","email":"ahwangshu@qq.com"}],"homepage":"https://github.com/SunilWang/node-os-utils#readme","bugs":{"url":"https://github.com/SunilWang/node-os-utils/issues"},"dist":{"shasum":"74159a83e918ba29c35d4c36e6892df26622d7b6","tarball":"https://registry.npmjs.org/node-os-utils/-/node-os-utils-2.0.4.tgz","fileCount":94,"integrity":"sha512-tywMkTGbyBKG/woIy++33CCtdXwpVRJMMfgbk83DkvZhN7/+BABl8oz1hRE7pOH8DAWoZGKB27bqipQtfFCe0g==","signatures":[{"sig":"MEYCIQCZGykNGdYzCtlPk5bGrZaWELM7w4gwuq9HihRbkKGcvQIhAKVoWeHvTtYPho8iPkj8UTQZV0HCmyHQ0xVLUxrCLbYD","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":779818},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"f70dba713cf272dabf0bbacbbd6dadd3a1ce8683","scripts":{"dev":"tsc --watch","docs":"typedoc src --out docs","lint":"eslint src --ext .ts --fix","test":"npm run build && mocha 'dist/**/*.test.js'","build":"npm run clean && tsc","clean":"rimraf dist","test:unit":"mocha 'dist/test/unit/**/*.test.js'","lint:check":"eslint src --ext .ts","test:linux":"npm run build && mocha 'dist/test/platform/linux.test.js'","test:macos":"npm run build && mocha 'dist/test/platform/macos.test.js'","build:watch":"tsc --watch","test:node18":"node --version && npm test","test:node20":"node --version && npm test","test:node22":"node --version && npm test","publish:beta":"npm publish --tag beta","test:windows":"npm run build && mocha 'dist/test/platform/windows.test.js'","version:beta":"npm version prerelease --preid=beta","test:coverage":"nyc npm test","test:platform":"npm run build && mocha 'dist/test/platform/**/*.test.js'","prepublishOnly":"npm run clean && npm run build && npm test","test:integration":"mocha 'dist/test/integration/**/*.test.js'","test:all-platforms":"npm run test:linux && npm run test:macos && npm run test:windows","test:current-platform":"npm run build && node -e \"const os=require('os'); const platform=os.platform(); const map={linux:'test:linux',darwin:'test:macos',win32:'test:windows'}; const script=map[platform] || 'test'; console.log('Running tests for platform:', platform, '->', script); require('child_process').execSync('npm run ' + script, {stdio:'inherit'});\"","test:coverage-platform":"nyc npm run test:platform"},"_npmUser":{"name":"sunilwang","email":"ahwangshu@qq.com"},"repository":{"url":"git+https://github.com/SunilWang/node-os-utils.git","type":"git"},"_npmVersion":"10.8.2","description":"Advanced cross-platform operating system monitoring utilities with TypeScript support","directories":{},"_nodeVersion":"18.20.8","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"nyc":"~15.1.0","chai":"~4.3.0","mocha":"~10.0.0","eslint":"~8.0.0","rimraf":"~5.0.0","typedoc":"~0.25.0","typescript":"~5.4.0","@types/chai":"~4.3.0","@types/node":"~18.0.0","@types/mocha":"~10.0.0","@typescript-eslint/parser":"~6.0.0","@typescript-eslint/eslint-plugin":"~6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/node-os-utils_2.0.4_1784621357814_0.2308002643059648","host":"s3://npm-registry-packages-npm-production"}},"2.0.5":{"name":"node-os-utils","version":"2.0.5","keywords":["os","system-monitor","monitoring","cpu","memory","disk","network","process-monitor","server-monitoring","typescript","cross-platform","linux","macos","windows","performance","metrics","realtime","observability","netstat","processes"],"author":{"name":"SunilWang","email":"ahwangshu@qq.com"},"license":"MIT","_id":"node-os-utils@2.0.5","maintainers":[{"name":"sunilwang","email":"ahwangshu@qq.com"}],"homepage":"https://github.com/SunilWang/node-os-utils#readme","bugs":{"url":"https://github.com/SunilWang/node-os-utils/issues"},"dist":{"shasum":"69b7672e7e006364c9bdc865c6c0c814540fe31c","tarball":"https://registry.npmjs.org/node-os-utils/-/node-os-utils-2.0.5.tgz","fileCount":94,"integrity":"sha512-YW+lcCnWhPhYMIhkR2drwphQuNdK7KTxsOyywoiZ1qh/2KKaip2/ts9W7D57opg4LFgQp/kVTAIgWuGiI41WkA==","signatures":[{"sig":"MEYCIQCsEsJ7CsGgPwuRBR1kVDR0Zw8x1P1yRTmfdYZNhUfq2gIhAJfGsRGnjxhtjTYwncJzhxQGMmS+/QypgRUgL3p29R7C","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":780638},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"f1ba65fae9d2ff68a49ca986d8de7ded1c5c80f4","scripts":{"dev":"tsc --watch","docs":"typedoc src --out docs","lint":"eslint src --ext .ts --fix","test":"npm run build && mocha 'dist/**/*.test.js'","build":"npm run clean && tsc","clean":"rimraf dist","test:unit":"mocha 'dist/test/unit/**/*.test.js'","lint:check":"eslint src --ext .ts","test:linux":"npm run build && mocha 'dist/test/platform/linux.test.js'","test:macos":"npm run build && mocha 'dist/test/platform/macos.test.js'","build:watch":"tsc --watch","test:node18":"node --version && npm test","test:node20":"node --version && npm test","test:node22":"node --version && npm test","publish:beta":"npm publish --tag beta","test:windows":"npm run build && mocha 'dist/test/platform/windows.test.js'","version:beta":"npm version prerelease --preid=beta","test:coverage":"nyc npm test","test:platform":"npm run build && mocha 'dist/test/platform/**/*.test.js'","prepublishOnly":"npm run clean && npm run build && npm test","test:integration":"mocha 'dist/test/integration/**/*.test.js'","test:all-platforms":"npm run test:linux && npm run test:macos && npm run test:windows","test:current-platform":"npm run build && node -e \"const os=require('os'); const platform=os.platform(); const map={linux:'test:linux',darwin:'test:macos',win32:'test:windows'}; const script=map[platform] || 'test'; console.log('Running tests for platform:', platform, '->', script); require('child_process').execSync('npm run ' + script, {stdio:'inherit'});\"","test:coverage-platform":"nyc npm run test:platform"},"_npmUser":{"name":"sunilwang","email":"ahwangshu@qq.com"},"repository":{"url":"git+https://github.com/SunilWang/node-os-utils.git","type":"git"},"_npmVersion":"10.8.2","description":"Advanced cross-platform operating system monitoring utilities with TypeScript support","directories":{},"_nodeVersion":"18.20.8","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"nyc":"~15.1.0","chai":"~4.3.0","mocha":"~10.0.0","eslint":"~8.0.0","rimraf":"~5.0.0","typedoc":"~0.25.0","typescript":"~5.4.0","@types/chai":"~4.3.0","@types/node":"~18.0.0","@types/mocha":"~10.0.0","@typescript-eslint/parser":"~6.0.0","@typescript-eslint/eslint-plugin":"~6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/node-os-utils_2.0.5_1788693079650_0.9036869391495301","host":"s3://npm-registry-packages-npm-production"}},"3.0.0":{"name":"node-os-utils","version":"3.0.0","keywords":["os","system-monitor","monitoring","cpu","memory","disk","network","process-monitor","server-monitoring","typescript","cross-platform","linux","macos","windows","performance","metrics","realtime","observability","netstat","processes"],"author":{"name":"SunilWang","email":"ahwangshu@qq.com"},"license":"MIT","_id":"node-os-utils@3.0.0","maintainers":[{"name":"sunilwang","email":"ahwangshu@qq.com"}],"homepage":"https://github.com/SunilWang/node-os-utils#readme","bugs":{"url":"https://github.com/SunilWang/node-os-utils/issues"},"dist":{"shasum":"8c62efee2fb8989d71db70e920fb04285f22c90b","tarball":"https://registry.npmjs.org/node-os-utils/-/node-os-utils-3.0.0.tgz","fileCount":98,"integrity":"sha512-IRoTYkurdHAIkmhxkK5KawKKyseI6kFvc2koyobxlrPZNkHPOusAysHh/1Wq7LEsaaLKjQl9hn0QSQGH/F1ViA==","signatures":[{"sig":"MEUCID1/tC1gRONgyBnYE93l97b+Fx/WbJmIC639PCkPGWBvAiEAk5W074uFhXkHlgCkA8BW14AzstPA+8Om4lnZpyAOJDc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":884267},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":{"types":"./dist/src/esm-entry.d.mts","default":"./dist/src/esm-entry.mjs"},"require":{"types":"./dist/src/index.d.ts","default":"./dist/src/index.js"}}},"gitHead":"f7df8d368cb96909420be95dd802f2ab411fa6ba","scripts":{"dev":"npm run build:watch","docs":"typedoc src --out docs","lint":"eslint src test --ext .ts,.mts --fix","test":"npm run build && node scripts/test-runner.js all","build":"npm run clean && tsc","clean":"node -e \"require('fs').rmSync('dist', { recursive: true, force: true })\"","test:unit":"node scripts/test-runner.js all","lint:check":"eslint src test --ext .ts,.mts","test:linux":"npm run build && node scripts/test-runner.js linux","test:macos":"npm run build && node scripts/test-runner.js macos","build:watch":"tsc --watch","publish:beta":"npm publish --tag beta","test:windows":"npm run build && node scripts/test-runner.js windows","version:beta":"npm version prerelease --preid=beta","test:coverage":"npm run build && nyc node scripts/test-runner.js all","test:platform":"npm run build && node scripts/test-runner.js platform","prepublishOnly":"npm run build && npm run test:unit","test:coverage-platform":"npm run build && nyc node scripts/test-runner.js platform"},"_npmUser":{"name":"sunilwang","email":"ahwangshu@qq.com"},"repository":{"url":"git+https://github.com/SunilWang/node-os-utils.git","type":"git"},"_npmVersion":"10.8.2","description":"Advanced cross-platform operating system monitoring utilities with TypeScript support","directories":{},"_nodeVersion":"18.20.8","_hasShrinkwrap":false,"devDependencies":{"nyc":"~15.1.0","chai":"~4.3.0","mocha":"~10.0.0","eslint":"^8.57.1","typedoc":"~0.25.0","typescript":"~5.4.0","@types/chai":"~4.3.0","@types/node":"~18.0.0","@types/mocha":"~10.0.0","@typescript-eslint/parser":"^7.18.0","@typescript-eslint/eslint-plugin":"^7.18.0"},"_npmOperationalInternal":{"tmp":"tmp/node-os-utils_3.0.0_1788924222080_0.5246070281157216","host":"s3://npm-registry-packages-npm-production"}},"3.1.0":{"name":"node-os-utils","version":"3.1.0","description":"Advanced cross-platform operating system monitoring utilities with TypeScript support","type":"commonjs","main":"dist/src/index.js","types":"dist/src/index.d.ts","exports":{".":{"import":{"types":"./dist/src/esm-entry.d.mts","default":"./dist/src/esm-entry.mjs"},"require":{"types":"./dist/src/index.d.ts","default":"./dist/src/index.js"}}},"engines":{"node":">=12.22.0"},"scripts":{"clean":"node -e \"require('fs').rmSync('dist', { recursive: true, force: true })\"","build":"npm run clean && tsc","build:watch":"tsc --watch","dev":"npm run build:watch","test":"npm run build && node scripts/test-runner.js all","test:unit":"node scripts/test-runner.js all","test:platform":"npm run build && node scripts/test-runner.js platform","test:linux":"npm run build && node scripts/test-runner.js linux","test:macos":"npm run build && node scripts/test-runner.js macos","test:windows":"npm run build && node scripts/test-runner.js windows","test:coverage":"npm run build && c8 node scripts/test-runner.js all","test:coverage-platform":"npm run build && c8 node scripts/test-runner.js platform","lint":"eslint src test --ext .ts,.mts --fix","lint:check":"eslint src test --ext .ts,.mts","docs":"typedoc src --out docs","publish:beta":"npm publish --tag beta","version:beta":"npm version prerelease --preid=beta","prepublishOnly":"npm run build && npm run test:unit"},"repository":{"type":"git","url":"git+https://github.com/SunilWang/node-os-utils.git"},"author":{"name":"SunilWang","email":"ahwangshu@qq.com"},"license":"MIT","bugs":{"url":"https://github.com/SunilWang/node-os-utils/issues"},"homepage":"https://github.com/SunilWang/node-os-utils#readme","keywords":["os","system-monitor","monitoring","cpu","memory","disk","network","process-monitor","server-monitoring","typescript","cross-platform","linux","macos","windows","performance","metrics","realtime","observability","netstat","processes"],"devDependencies":{"@types/chai":"~4.3.0","@types/mocha":"~10.0.0","@types/node":"~12.20.0","@typescript-eslint/eslint-plugin":"^7.18.0","@typescript-eslint/parser":"^7.18.0","chai":"~4.3.0","eslint":"^8.57.1","c8":"~10.1.3","mocha":"~12.0.0","typedoc":"~0.25.0","typescript":"~5.4.0"},"overrides":{"c8":{"test-exclude":"7.0.1"}},"_id":"node-os-utils@3.1.0","gitHead":"6a1d888c9bb7f4ab178c84f8fb5347e57c2dfc51","_nodeVersion":"20.20.2","_npmVersion":"10.8.2","dist":{"integrity":"sha512-Fe4LMHLkhSeHwtVIF2J6CnkUnJm8JyjnDYBp/u2pqA7GyoIp5XanIJPxojw0BGg/Olv99zlrYVWW7p0WIdE00Q==","shasum":"38d243b9a32a955b5a2769e24815791899258e6f","tarball":"https://registry.npmjs.org/node-os-utils/-/node-os-utils-3.1.0.tgz","fileCount":98,"unpackedSize":925432,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDdfslt7KM7MnPgiupxGWIWBbqKl0cvdt80BerfOVggPQIhAOyHTumK6CIDx51WG0jLkXC1kzE4KdbIbgY6fV5TcuGr"}]},"_npmUser":{"name":"sunilwang","email":"ahwangshu@qq.com"},"directories":{},"maintainers":[{"name":"sunilwang","email":"ahwangshu@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/node-os-utils_3.1.0_1788949803415_0.02896941645215456"},"_hasShrinkwrap":false}},"time":{"created":"2017-07-10T09:23:52.735Z","modified":"2026-09-09T10:30:03.913Z","1.0.0":"2017-07-10T09:23:52.735Z","1.0.1":"2017-07-10T09:41:20.335Z","1.0.2":"2017-07-19T11:44:32.866Z","1.0.3":"2017-07-19T12:20:04.909Z","1.0.4":"2017-08-23T07:28:43.248Z","1.0.5":"2017-08-24T03:34:47.967Z","1.0.7":"2017-09-11T03:25:23.823Z","1.0.8":"2019-10-25T02:23:45.760Z","1.1.0":"2019-10-25T02:51:51.953Z","1.2.0":"2019-12-25T04:44:36.829Z","1.2.1":"2020-01-10T06:23:49.006Z","1.2.2":"2020-01-13T03:08:08.185Z","1.2.3":"2020-06-12T02:31:58.379Z","1.2.4":"2020-06-12T02:54:44.587Z","1.2.5":"2020-06-18T07:18:47.077Z","1.3.0":"2020-06-18T10:17:50.410Z","1.3.1":"2020-08-31T07:15:44.328Z","1.3.2":"2020-09-10T07:01:43.265Z","1.3.3":"2021-03-03T02:04:10.785Z","1.3.4":"2021-03-03T02:11:52.824Z","1.3.5":"2021-03-03T02:42:39.798Z","1.3.6":"2022-01-11T02:00:30.498Z","1.3.7":"2022-06-14T01:18:41.474Z","2.0.1-beta.1":"2025-09-28T10:13:42.398Z","2.0.1-beta.2":"2025-09-28T10:27:36.801Z","2.0.1":"2025-10-09T01:45:22.771Z","2.0.2":"2026-04-07T10:56:47.205Z","2.0.3":"2026-04-07T11:57:05.133Z","2.0.4":"2026-07-21T08:09:17.993Z","2.0.5":"2026-09-06T11:11:19.809Z","3.0.0":"2026-09-09T03:23:42.250Z","3.1.0":"2026-09-09T10:30:03.619Z"},"bugs":{"url":"https://github.com/SunilWang/node-os-utils/issues"},"author":{"name":"SunilWang","email":"ahwangshu@qq.com"},"license":"MIT","homepage":"https://github.com/SunilWang/node-os-utils#readme","keywords":["os","system-monitor","monitoring","cpu","memory","disk","network","process-monitor","server-monitoring","typescript","cross-platform","linux","macos","windows","performance","metrics","realtime","observability","netstat","processes"],"repository":{"type":"git","url":"git+https://github.com/SunilWang/node-os-utils.git"},"description":"Advanced cross-platform operating system monitoring utilities with TypeScript support","maintainers":[{"name":"sunilwang","email":"ahwangshu@qq.com"}],"readme":"# node-os-utils v3.1.0\n\n[![NPM Version][npm-image]][npm-url]\n[![NPM Downloads][downloads-image]][downloads-url]\n[![TypeScript Support](https://img.shields.io/badge/typescript-supported-blue.svg)](https://www.typescriptlang.org/)\n[![Node.js Version](https://img.shields.io/badge/node-%3E%3D12.22.0-brightgreen.svg)](https://nodejs.org/)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n\n🚀 **Version 3.1.0** - Builds on v3.0's security, data-accuracy, and focused legacy-behavior improvements while preserving the zero-dependency package and the v3 API, broadening Node.js runtime compatibility, and modernizing the development security toolchain.\n\n**Modern, TypeScript-native, cross-platform system monitoring library** providing comprehensive system information with intelligent caching, event-driven monitoring, and robust error handling.\n\n> **Upgrade notice**: Version 3.0 contains targeted breaking changes from 2.x. See [Migration from v2.x to v3.0](#-migration-from-v2x-to-v30) before upgrading.\n\n## ✨ What's New in v3.1.0\n\n- **Broader Runtime Support**: The published package now supports Node.js 12.22.0 and later\n- **CommonJS and Native ESM**: Package-root imports are verified in both module systems on the minimum supported runtime\n- **Zero Runtime Dependencies**: Development-tool upgrades do not add dependencies to the published package\n- **Release Validation**: CI builds with Node.js 20.20.2 and tests the real npm tarball on exact Node.js 12.22.0\n\n## ✨ What's New in v3.0\n\n### 🎯 Reliability Improvements\n- **⏱️ Truthful Process Timing**: Unavailable `startTime`, `runtime`, and user `loginTime` values are reported as `undefined` instead of fabricated timestamps\n- **🛡️ Safer Process Signalling**: Process termination only accepts positive safe-integer PIDs, preventing accidental process-group signals\n- **⚙️ Predictable Configuration**: Disabling system information now consistently affects `info()` and `overview()`\n- **📊 Valid Data Sizes**: `DataSize` rejects non-finite values before they can propagate through calculations\n- **🌍 Cross-Platform Accuracy**: More robust parsing, error reporting, and health checks across Linux, macOS, and Windows\n- **⚡ Resilient Execution**: Improved command timeouts and failure handling prevent monitoring operations from becoming a source of instability\n\n### 🌟 Key Features\n- **🌍 Cross-Platform**: Linux, macOS, Windows support with intelligent platform adaptation\n- **📝 Zero Dependencies**: Pure Node.js implementation using only built-in modules\n- **⚙️ Configurable**: Flexible configuration system for caching, timeouts, and monitoring\n- **🎯 Type Safe**: Full TypeScript definitions with IntelliSense support\n- **🔍 Comprehensive**: CPU, Memory, Disk, Network, Process, and System monitoring\n- **📈 Real-time**: Event-driven monitoring with customizable intervals\n- **✅ Accurate State Reporting**: Network adapters preserve native interface status while falling back to inferred states when unavailable\n\n### 🧱 Architecture at a Glance\n- **AdapterFactory** centralises platform detection, caching instantiated adapters and exposing helper utilities such as `getSupportedPlatforms()` and `checkPlatformCapabilities()`.\n- **CommandExecutor** normalises shell execution across operating systems with configurable timeouts and uniform error objects.\n\n  Command availability checks and version queries use the executor's configured timeout. Both propagate `TIMEOUT` errors; a timed-out availability check does not return `false`. Buffered execution attempts to terminate the process tree on timeout or output overflow, preserving encoding and separate stdout/stderr byte limits.\n- **Platform Adapters** encapsulate OS-specific logic (Linux via `/proc`, macOS via `sysctl`/`powermetrics`, Windows via PowerShell + WMI) while reporting declared feature support.\n- **CacheManager** provides adaptive TTL-based caching with LRU eviction to minimise expensive system calls during polling-heavy workloads.\n\n### 🖥️ Platform Support Matrix\n\n| Capability | Linux | macOS | Windows |\n|------------|:-----:|:-----:|:-------:|\n| CPU usage / info | ✅ | ✅ | ✅ |\n| CPU temperature | ⚠️ Needs `/sys/class/thermal` | ⚠️ Requires `powermetrics` (sudo) | ❌ (no public API) |\n| Memory pressure | ⚠️ Partially available | ✅ | ⚠️ Estimated via WMI |\n| Disk IO stats | ✅ | ✅ | ❌ |\n| Network stats | ✅ (`/proc/net/dev`) | ✅ (`netstat -ib`) | ⚠️ Admin rights for PowerShell |\n| Process details | ✅ | ✅ | ✅ (WMI) |\n| System services | ⚠️ `systemctl` when available | ❌ | ✅ |\n| Container awareness | ⚠️ Detects containers, gracefully degrades | ⚠️ Detects containers, limited | ⚠️ Detects containers, limited |\n\n> **Legend**: ✅ Fully supported · ⚠️ Partially limited · ❌ Not supported\n\n### 🔍 Capability Diagnostics\n\n```ts\nimport { OSUtils } from 'node-os-utils';\n\nconst osutils = new OSUtils();\nconst report = await osutils.checkPlatformCapabilities();\n\nconsole.table({\n  platform: report.platform,\n  supported: report.supported,\n  commands: report.capabilities.commands.join(','),\n  features: report.capabilities.features.join(',')\n});\n\nif (report.issues.length > 0) {\n  console.warn('❗ Capability diagnostics:', report.issues);\n}\n```\n\n`OSUtils.checkPlatformCapabilities()` reuses the instance's adapter and command timeout. `supported` remains `false` for unsupported platforms, adapter initialization failures, or feature enumeration failures. Individual command/file probe failures, including `TIMEOUT`, appear in `issues` alongside any successfully detected capabilities. The static `AdapterFactory.checkPlatformCapabilities(platformOrAdapter?)` accepts either a platform name or an existing adapter to reuse its configuration; existing calls with a platform name remain valid.\n\n`AdapterFactory.getDebugInfo()` is also available when you need to inspect feature flags or confirm that platform-specific commands can be executed.\n\nWhen running inside **containers**, the library automatically:\n- detects Docker/Podman/Kubernetes via `.dockerenv`, `/proc/1/cgroup`, or env vars;\n- disables service inspection (`systemctl`) for non-systemd environments;\n- falls back from `ss` to `netstat` and from `ip` to `ifconfig` when tooling is missing;\n- returns rich error details so that callers can differentiate permission issues from unsupported features;\n- keeps feature flags in sync via `adapter.getSupportedFeatures()` so monitors can short-circuit unsupported actions.\n\n## 🚀 Installation\n\n```bash\nnpm install node-os-utils\n```\n\n**Requirements:**\n- Runtime: Node.js 12.22.0 or higher\n- Repository development and testing: use the Node.js 20.20.2 version pinned by `.node-version` (the toolchain requires `^20.19.0 || >=22.12.0`)\n- Supported OS: Linux, macOS, Windows\n\n## 🏁 Quick Start\n\n### TypeScript\n\n```typescript\nimport { OSUtils } from 'node-os-utils';\n\nconst osutils = new OSUtils();\n\n// Get CPU usage\nconst cpuUsage = await osutils.cpu.usage();\nif (cpuUsage.success) {\n  console.log('CPU Usage:', cpuUsage.data + '%');\n}\n\n// Get memory information\nconst memInfo = await osutils.memory.info();\nif (memInfo.success) {\n  console.log('Memory:', memInfo.data);\n}\n\n// Get system overview\nconst overview = await osutils.overview();\nconsole.log('System Overview:', overview);\n```\n\n### JavaScript (CommonJS)\n\n```javascript\nconst { OSUtils } = require('node-os-utils');\n\nconst osutils = new OSUtils();\n\nosutils.cpu.usage().then(result => {\n  if (result.success) {\n    console.log('CPU Usage:', result.data + '%');\n  }\n});\n```\n\n### Alternative Factory Function\n\n```javascript\n// Alternative instantiation method\nconst { createOSUtils } = require('node-os-utils');\n\nconst osutils = createOSUtils({\n  cacheEnabled: true,\n  cacheTTL: 10000\n});\n\n// Same API as OSUtils class\nconst cpuUsage = await osutils.cpu.usage();\n```\n\n## ⚙️ Configuration\n\n### Global Configuration\n\n```typescript\nimport { OSUtils } from 'node-os-utils';\n\nconst osutils = new OSUtils({\n  // Cache settings\n  cacheEnabled: true,\n  cacheTTL: 5000,\n  maxCacheSize: 1000,\n\n  // Execution settings\n  // Timeout (ms), applies to both monitor operations and underlying system commands\n  timeout: 10000,\n\n  // Debug mode\n  debug: false,\n\n  // Monitor-specific configurations\n  cpu: {\n    cacheTTL: 30000,\n    // Exclude iowait from the overall CPU usage percentage (Linux only).\n    // Default: false (iowait is included, matching traditional tool behavior)\n    excludeIowait: false\n  },\n  memory: { cacheTTL: 5000 },\n  disk: { cacheTTL: 60000 }\n});\n```\n\n### Monitor-Level Configuration\n\n```typescript\n// Configure individual monitors\nconst cpuMonitor = osutils.cpu\n  .withCaching(true, 30000)\n  .withConfig({ timeout: 5000 });\n\n// Configure cache at runtime\nosutils.configureCache({\n  enabled: true,\n  maxSize: 2000,\n  defaultTTL: 10000\n});\n```\n\n## 🛡️ Error Handling\n\nAll operations return a `MonitorResult<T>` object for consistent error handling:\n\n```typescript\ntype MonitorResult<T> =\n  | {\n      success: true;\n      data: T;\n      timestamp: number;\n      cached: boolean;\n      platform: string;\n    }\n  | {\n      success: false;\n      error: MonitorError;\n      platform: string;\n      timestamp: number;\n    };\n```\n\n### Error Handling Examples\n\n```typescript\nconst result = await osutils.cpu.info();\n\nif (result.success) {\n  // Success: use result.data\n  console.log('CPU Model:', result.data.model);\n  console.log('Cores:', result.data.cores);\n} else {\n  // Error: handle gracefully\n  console.error('Error:', result.error?.message);\n  console.error('Code:', result.error?.code);\n\n  // Platform-specific handling\n  if (result.error?.code === ErrorCode.PLATFORM_NOT_SUPPORTED) {\n    console.log('This feature is not available on', result.platform);\n  }\n}\n```\n\n### Error Codes\n\n```typescript\nenum ErrorCode {\n  PLATFORM_NOT_SUPPORTED = 'PLATFORM_NOT_SUPPORTED', // Feature unavailable on current platform\n  COMMAND_FAILED = 'COMMAND_FAILED',               // Shell/command execution failed\n  PARSE_ERROR = 'PARSE_ERROR',                     // Failed to parse command output or data\n  PERMISSION_DENIED = 'PERMISSION_DENIED',         // Lacking required privileges\n  TIMEOUT = 'TIMEOUT',                             // Operation exceeded the configured timeout\n  INVALID_CONFIG = 'INVALID_CONFIG',               // Provided configuration is invalid\n  NOT_AVAILABLE = 'NOT_AVAILABLE',                 // Metric temporarily unavailable\n  FILE_NOT_FOUND = 'FILE_NOT_FOUND',               // Required file or path missing\n  NETWORK_ERROR = 'NETWORK_ERROR'                  // Network operation failed\n}\n```\n\n## 🛠️ Troubleshooting & Permissions\n\n- **macOS temperature metrics** rely on `powermetrics` and require administrator privileges (`sudo powermetrics -n 1 -i 1000 --samplers smc`). When unavailable, the adapter raises `PLATFORM_NOT_SUPPORTED` for that feature.\n- **Windows network & process metrics** call PowerShell CIM cmdlets (`Get-NetAdapterStatistics`, `Get-CimInstance`). Run the host app in an elevated PowerShell session if you encounter `PERMISSION_DENIED` or `COMMAND_FAILED` errors.\n- **Linux command fallbacks**: metrics primarily read `/proc`. If utilities such as `ip`/`ss` are missing, the adapter retries with `ifconfig`/`netstat`, but you can confirm availability up front via `osutils.checkPlatformCapabilities()`.\n- Always inspect `MonitorResult.error.code` for structured error feedback (timeout, permission, unsupported) and provide user guidance accordingly.\n- Command timeouts retain `TIMEOUT` through adapter error handling. macOS CPU and Linux network queries stop on timeout instead of starting a fallback command; Windows gateway and service queries report timeout instead of returning an empty or unsupported result. Existing Node.js `os` data fallbacks remain available.\n\n## 📚 Complete API Reference\n\n### 🔥 CPU Monitor\n\nComprehensive CPU monitoring with real-time capabilities.\n\n```typescript\n// Basic CPU information\nconst cpuInfo = await osutils.cpu.info();\nif (cpuInfo.success) {\n  console.log('Model:', cpuInfo.data.model);\n  console.log('Cores:', cpuInfo.data.cores);\n  console.log('Architecture:', cpuInfo.data.architecture);\n}\n\n// CPU usage monitoring\nconst cpuUsage = await osutils.cpu.usage();\nif (cpuUsage.success) {\n  console.log('CPU Usage:', cpuUsage.data + '%');\n}\n\n// Detailed usage (overall + per core)\nconst usageDetails = await osutils.cpu.usageDetailed();\nif (usageDetails.success) {\n  console.log('Overall:', usageDetails.data.overall);\n  console.log('Per core:', usageDetails.data.cores);\n}\n\n// Load average (Linux/macOS)\nconst loadAvg = await osutils.cpu.loadAverage();\nif (loadAvg.success) {\n  console.log('Load Average:', loadAvg.data);\n}\n```\n\n#### CPU Methods\n\n| Method | Return Type | Description | Platform Support |\n|--------|-------------|-------------|------------------|\n| `info()` | `Promise<MonitorResult<CPUInfo>>` | CPU model, cores, threads, architecture | ✅ All |\n| `usage()` | `Promise<MonitorResult<number>>` | CPU usage percentage (0-100) | ✅ All |\n| `usageDetailed()` | `Promise<MonitorResult<CPUUsage>>` | Usage breakdown including per-core data | ✅ All |\n| `usageByCore()` | `Promise<MonitorResult<number[]>>` | Per-core usage percentages | ✅ All |\n| `loadAverage()` | `Promise<MonitorResult<LoadAverage>>` | Load averages (1, 5, 15 min) | ✅ Linux/macOS |\n| `temperature()` | `Promise<MonitorResult<Temperature[]>>` | CPU temperature sensors | ⚠️ Limited |\n| `frequency()` | `Promise<MonitorResult<FrequencyInfo[]>>` | Current CPU frequencies | ⚠️ Limited |\n| `getCacheInfo()` | `Promise<MonitorResult<any>>` | CPU cache hierarchy information | ⚠️ Limited |\n| `coreCount()` | `Promise<MonitorResult<{ physical: number; logical: number }>>` | Physical/logical core counts | ✅ All |\n\n#### CPU Configuration\n\n| Option | Type | Default | Description |\n|--------|------|---------|-------------|\n| `excludeIowait` | `boolean` | `false` | When `true`, I/O wait time is excluded from the `overall` CPU usage percentage. Useful in I/O-heavy environments where iowait would otherwise inflate reported CPU usage. `iowait` is still available as a separate field in `usageDetailed()`. Linux only. |\n\n```typescript\n// Exclude iowait from overall CPU usage (Linux I/O-heavy workloads)\nconst osutils = new OSUtils({\n  cpu: { excludeIowait: true }\n});\n\nconst result = await osutils.cpu.usageDetailed();\nif (result.success) {\n  console.log('Overall (excl. iowait):', result.data.overall + '%');\n  console.log('iowait:', result.data.iowait + '%'); // still available\n}\n```\n\n#### Real-time CPU Monitoring\n\n```typescript\n// Poll usage every second with manual interval control\nconst pollInterval = setInterval(async () => {\n  const result = await osutils.cpu.usage();\n  if (result.success) {\n    console.log(`CPU Usage: ${result.data.toFixed(2)}%`);\n    if (result.data > 80) {\n      console.warn('⚠️ High CPU usage detected!');\n    }\n  }\n}, 1000);\n\nsetTimeout(() => {\n  clearInterval(pollInterval);\n  console.log('CPU usage polling stopped');\n}, 30000);\n\n// Fetch CPU info periodically using the built-in monitor helper\nconst cpuInfoSubscription = osutils.cpu.withCaching(false).monitor(5000, (info) => {\n  console.log('CPU Model:', info.model);\n});\n\nsetTimeout(() => cpuInfoSubscription.unsubscribe(), 20000);\n```\n\n### 💾 Memory Monitor\n\nDetailed memory information with smart unit conversion.\n\n```typescript\n// Memory information with DataSize helpers\nconst memInfo = await osutils.memory.info();\nif (memInfo.success) {\n  console.log('Total Memory:', memInfo.data.total.toGB().toFixed(2) + ' GB');\n  console.log('Available:', memInfo.data.available.toGB().toFixed(2) + ' GB');\n  console.log('Used:', memInfo.data.used.toGB().toFixed(2) + ' GB');\n  console.log('Usage:', memInfo.data.usagePercentage.toFixed(2) + '%');\n}\n\n// Quick memory usage percentage\nconst memUsage = await osutils.memory.usage();\nif (memUsage.success) {\n  console.log('Memory Usage:', memUsage.data.toFixed(2) + '%');\n}\n\n// Summary view with formatted strings\nconst memSummary = await osutils.memory.summary();\nif (memSummary.success) {\n  console.log('Summary:', memSummary.data);\n}\n```\n\n#### Memory Methods\n\n| Method | Return Type | Description | Platform Support |\n|--------|-------------|-------------|------------------|\n| `info()` | `Promise<MonitorResult<MemoryInfo>>` | Detailed memory breakdown with DataSize objects | ✅ All |\n| `detailed()` | `Promise<MonitorResult<MemoryInfo & { breakdown: Record<string, unknown> }>>` | Adds platform-specific breakdown data | ⚠️ Platform |\n| `usage()` | `Promise<MonitorResult<number>>` | Memory usage percentage (0-100) | ✅ All |\n| `available()` | `Promise<MonitorResult<DataSize>>` | Available memory amount | ✅ All |\n| `swap()` | `Promise<MonitorResult<SwapInfo>>` | Virtual memory/swap information | ✅ All |\n| `pressure()` | `Promise<MonitorResult<MemoryPressure>>` | Memory pressure indicators | ⚠️ Limited |\n| `summary()` | `Promise<MonitorResult<{ total: string; used: string; available: string; usagePercentage: number; swap: { total: string; used: string; usagePercentage: number } }>>` | Readable summary including swap usage | ✅ All |\n\n#### DataSize Object\n\n```typescript\nclass DataSize {\n  constructor(bytes: number);\n  toBytes(): number;\n  toKB(): number;\n  toMB(): number;\n  toGB(): number;\n  toTB(): number;\n  toString(unit?: 'auto' | 'B' | 'KB' | 'MB' | 'GB' | 'TB'): string;\n}\n\n// Usage example\nconst memory = await osutils.memory.info();\nif (memory.success) {\n  console.log(memory.data.total.toString('GB')); // \"16.00 GB\"\n  console.log(memory.data.available.toString()); // automatic unit selection\n}\n```\n\n### 💽 Disk Monitor\n\nComprehensive disk and storage monitoring.\n\n```typescript\n// All disk information\nconst diskInfo = await osutils.disk.info();\nif (diskInfo.success) {\n  diskInfo.data.forEach(disk => {\n    console.log('Filesystem:', disk.filesystem);\n    console.log('Mount Point:', disk.mountpoint);\n    console.log('Total:', disk.total.toString('GB'));\n    console.log('Available:', disk.available.toString('GB'));\n    console.log('Usage:', disk.usagePercentage + '%');\n  });\n}\n\n// Specific mount usage\nconst rootUsage = await osutils.disk.usageByMountPoint('/');\nif (rootUsage.success && rootUsage.data) {\n  console.log('Root usage:', rootUsage.data.usagePercentage + '%');\n}\n\n// I/O statistics\nconst ioStats = await osutils.disk.stats();\nif (ioStats.success) {\n  ioStats.data.forEach(stat => {\n    console.log(`${stat.device}:`, {\n      readBytes: stat.readBytes.toString('MB'),\n      writeBytes: stat.writeBytes.toString('MB'),\n      readCount: stat.readCount,\n      writeCount: stat.writeCount\n    });\n  });\n}\n```\n\n#### Disk Methods\n\n| Method | Return Type | Description | Platform Support |\n|--------|-------------|-------------|------------------|\n| `info()` | `Promise<MonitorResult<DiskInfo[]>>` | Disk/partition information | ✅ All |\n| `infoByDevice(device)` | `Promise<MonitorResult<DiskInfo | null>>` | Lookup device or mountpoint | ✅ All |\n| `usage()` | `Promise<MonitorResult<DiskUsage[]>>` | Usage for mounted filesystems | ✅ All |\n| `usageByMountPoint(mountPoint)` | `Promise<MonitorResult<DiskUsage | null>>` | Usage for a specific mount point | ✅ All |\n| `overallUsage()` | `Promise<MonitorResult<number>>` | Weighted average usage across all disks | ✅ All |\n| `stats()` | `Promise<MonitorResult<DiskStats[]>>` | I/O statistics summary (requires `includeStats`) | ⚠️ Limited |\n| `mounts()` | `Promise<MonitorResult<MountPoint[]>>` | Mount configuration details | ✅ All |\n| `filesystems()` | `Promise<MonitorResult<FileSystem[]>>` | Available filesystem types | ✅ All |\n| `spaceOverview()` | `Promise<MonitorResult<{ total: DataSize; used: DataSize; available: DataSize; usagePercentage: number; disks: number }>>` | Aggregate space usage | ✅ All |\n| `healthCheck()` | `Promise<MonitorResult<{ status: 'healthy' | 'warning' | 'critical'; issues: string[] }>>` | Basic disk health | ⚠️ Limited |\n\n### 🌐 Network Monitor\n\nNetwork interface and traffic monitoring.\n\n```typescript\n// Network interfaces\nconst interfaces = await osutils.network.interfaces();\nif (interfaces.success) {\n  interfaces.data.forEach(iface => {\n    console.log('Interface:', iface.name);\n    console.log('Addresses:', iface.addresses);\n    console.log('State:', iface.state);\n  });\n}\n\n// Network overview\nconst overview = await osutils.network.overview();\nif (overview.success) {\n  console.log('Total RX:', overview.data.totalRxBytes.toString('MB'));\n  console.log('Total TX:', overview.data.totalTxBytes.toString('MB'));\n}\n\n// Per-interface statistics\nconst stats = await osutils.network.statsAsync();\nif (stats.success) {\n  stats.data.forEach(stat => {\n    console.log(`${stat.interface}: RX ${stat.rxBytes.toString('MB')} | TX ${stat.txBytes.toString('MB')}`);\n  });\n}\n\n// Real-time interface monitoring (returns NetworkInterface[] snapshots)\nconst netSub = osutils.network.monitor(5000, (interfacesSnapshot) => {\n  console.log('Active interfaces:', interfacesSnapshot.filter(iface => iface.state === 'up').map(iface => iface.name));\n});\n```\n\n#### Network Methods\n\n| Method | Return Type | Description | Platform Support |\n|--------|-------------|-------------|------------------|\n| `interfaces()` | `Promise<MonitorResult<NetworkInterface[]>>` | All network interfaces | ✅ All |\n| `interfaceByName(name)` | `Promise<MonitorResult<NetworkInterface | null>>` | Single interface lookup | ✅ All |\n| `overview()` | `Promise<MonitorResult<{ interfaces: number; activeInterfaces: number; totalRxBytes: DataSize; totalTxBytes: DataSize; totalPackets: number; totalErrors: number }>>` | Aggregate link counters | ✅ All |\n| `statsAsync()` | `Promise<MonitorResult<NetworkStats[]>>` | Interface statistics (requires `includeInterfaceStats`) | ✅ All |\n| `statsByInterface(name)` | `Promise<MonitorResult<NetworkStats | null>>` | Stats for a specific interface | ✅ All |\n| `bandwidth()` | `Promise<MonitorResult<{ interval: number; interfaces: Array<{ interface: string; rxSpeed: number; txSpeed: number; rxSpeedFormatted: string; txSpeedFormatted: string }> }>>` | Calculated throughput over an interval | ⚠️ Limited |\n| `connections()` | `Promise<MonitorResult<any[]>>` | Active connections (requires `includeConnections`) | ⚠️ Limited |\n| `gateway()` | `Promise<MonitorResult<{ gateway: string; interface: string } | null>>` | Default gateway info | ✅ All |\n| `publicIP()` | `Promise<MonitorResult<{ ipv4?: string; ipv6?: string }>>` | Cached public IP lookup (placeholder) | ⚠️ Limited |\n| `healthCheck()` | `Promise<MonitorResult<{ status: 'healthy' | 'warning' | 'critical'; issues: string[] }>>` | Network health summary | ⚠️ Limited |\n\n### 🔄 Process Monitor\n\nProcess management and monitoring capabilities.\n\n```typescript\n// List all processes\nconst processes = await osutils.process.list();\nif (processes.success) {\n  console.log('Total processes:', processes.data.length);\n\n  // Show top 5 CPU consumers\n  const topCpu = processes.data\n    .filter(proc => proc.cpuUsage > 0)\n    .sort((a, b) => b.cpuUsage - a.cpuUsage)\n    .slice(0, 5);\n\n  topCpu.forEach(proc => {\n    console.log(`${proc.name} (${proc.pid}): ${proc.cpuUsage.toFixed(2)}% CPU`);\n  });\n}\n\n// Find specific processes\nconst nodeProcesses = await osutils.process.byName('node');\nif (nodeProcesses.success) {\n  console.log('Node.js processes:', nodeProcesses.data.length);\n}\n\n// Current process info\nconst currentProc = await osutils.process.byPid(process.pid);\nif (currentProc.success && currentProc.data) {\n  console.log('Current process memory:', currentProc.data.memoryUsage.toString('MB'));\n}\n```\n\n#### Process Methods\n\n| Method | Return Type | Description | Platform Support |\n|--------|-------------|-------------|------------------|\n| `list(options?)` | `Promise<MonitorResult<ProcessInfo[]>>` | All running processes (optional filters) | ✅ All |\n| `byPid(pid)` | `Promise<MonitorResult<ProcessInfo | null>>` | Specific process details | ✅ All |\n| `byName(name)` | `Promise<MonitorResult<ProcessInfo[]>>` | Find by process name | ✅ All |\n| `topByCpu(limit?)` | `Promise<MonitorResult<ProcessInfo[]>>` | Top CPU consumers | ✅ All |\n| `topByMemory(limit?)` | `Promise<MonitorResult<ProcessInfo[]>>` | Top memory consumers | ✅ All |\n| `children(parentPid)` | `Promise<MonitorResult<ProcessInfo[]>>` | Child processes (requires config) | ⚠️ Limited |\n| `tree(rootPid?)` | `Promise<MonitorResult<any>>` | Process hierarchy | ⚠️ Limited |\n| `stats()` | `Promise<MonitorResult<{ total: number; running: number; sleeping: number; waiting: number; zombie: number; stopped: number; unknown: number; totalCpuUsage: number; totalMemoryUsage: DataSize }>>` | Aggregate process statistics | ✅ All |\n| `kill(pid, signal?)` | `Promise<MonitorResult<boolean>>` | Terminate a numeric PID with a validated signal | ⚠️ Limited |\n\nAll PID-based process lookups validate runtime values before invoking platform commands. `kill()` accepts signal names such as `TERM` / `SIGTERM` or decimal signal numbers. To prevent accidental process-group broadcasts, `kill()` requires a positive safe-integer PID on every platform; invalid runtime values return `data: false` and are never passed to a shell. Windows maps `SIGKILL` / `KILL` / `9` to forced `taskkill`.\n\n`ProcessInfo.startTime` and `ProcessInfo.runtime` are optional. When a platform cannot provide or parse the process start time, both fields are `undefined`; callers must check them before numeric operations.\n\n### 🖥️ System Monitor\n\nGeneral system information and health monitoring.\n\n```typescript\n// System information\nconst sysInfo = await osutils.system.info();\nif (sysInfo.success) {\n  console.log('Hostname:', sysInfo.data.hostname);\n  console.log('Platform:', sysInfo.data.platform);\n  console.log('Distro:', sysInfo.data.distro);\n  console.log('Release:', sysInfo.data.release);\n  console.log('Architecture:', sysInfo.data.arch);\n}\n\n// System uptime\nconst uptime = await osutils.system.uptime();\nif (uptime.success) {\n  console.log('Uptime (ms):', uptime.data.uptime);\n  console.log('Boot time:', new Date(uptime.data.bootTime).toISOString());\n  console.log('Friendly uptime:', uptime.data.uptimeFormatted);\n}\n\n// Active users\nconst users = await osutils.system.users();\nif (users.success) {\n  console.log('Logged users:', users.data.map(u => u.username));\n}\n```\n\n#### System Methods\n\n| Method | Return Type | Description | Platform Support |\n|--------|-------------|-------------|------------------|\n| `info()` | `Promise<MonitorResult<SystemInfo>>` | Complete system information | ✅ All |\n| `uptime()` | `Promise<MonitorResult<{ uptime: number; uptimeFormatted: string; bootTime: number }>>` | Uptime and derived timestamps | ✅ All |\n| `load()` | `Promise<MonitorResult<LoadAverage & { normalized: LoadAverage; status: 'low' | 'normal' | 'high' | 'critical' }>>` | Load averages and health status | ⚠️ Limited |\n| `users()` | `Promise<MonitorResult<Array<{ username: string; terminal: string; host: string; loginTime?: number }>>>` | Currently logged users | ⚠️ Platform |\n| `services()` | `Promise<MonitorResult<Array<{ name: string; status: string; enabled: boolean }>>>` | Service status (requires config) | ⚠️ Limited |\n| `overview()` | `Promise<MonitorResult<{ system: { hostname: string; platform: string; uptime: string; loadStatus: string }; resources: { cpuUsage: number; memoryUsage: number; diskUsage: number; networkActivity: boolean }; counts: { processes: number; users: number; services?: number }; health: { status: 'healthy' | 'warning' | 'critical'; issues: string[] } }>>` | Synthetic summary | ⚠️ Limited |\n| `time()` | `Promise<MonitorResult<{ current: number; timezone: string; utcOffset: number; formatted: string; bootTime?: number }>>` | Current system time metadata | ✅ All |\n| `healthCheck()` | `Promise<MonitorResult<{ status: 'healthy' | 'warning' | 'critical'; checks: Record<string, boolean>; issues: string[]; score: number }>>` | System health overview | ⚠️ Limited |\n\n`overview().resources.networkActivity` indicates whether interface byte counters increased since the previous uncached overview sample. The first sample, a counter reset, or unavailable network statistics returns `false`.\n\nUser `loginTime` is optional when the platform timestamp is missing or cannot be parsed. Setting `system.includeSystemInfo` to `false`, or calling `withSystemInfo(false)`, makes `info()` return a failed `MonitorResult`; `overview()` reports `unknown` for the disabled hostname and platform fields.\n\n## 🌍 Platform Compatibility\n\n### Supported Platforms\n\n| Platform | CPU | Memory | Disk | Network | Process | System | Notes |\n|----------|-----|--------|------|---------|---------|--------|-------|\n| **Linux** | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | Full support, optimized |\n| **macOS** | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | Full support |\n| **Windows** | ✅ | ✅ | ✅ | ⚠️ | ⚠️ | ✅ | Limited network & process |\n\n**Legend:**\n- ✅ **Full Support**: All features available and tested\n- ⚠️ **Partial Support**: Core features work, some limitations\n- ❌ **Not Supported**: Feature not available\n\n### Platform-Specific Notes\n\n#### Linux\n- Uses `/proc` filesystem for optimal performance\n- Full support for all monitoring features\n- Advanced I/O statistics available\n- Temperature monitoring on supported hardware\n\n#### macOS\n- Uses system commands (`top`, `vm_stat`, `df`, etc.)\n- Full feature compatibility\n- Darwin-specific optimizations\n- Integrated with macOS system APIs\n\n#### Windows\n- Uses PowerShell and WMI where available\n- Network monitoring has some limitations\n- Process tree functionality limited\n- Core features fully supported\n\n## 🚀 Advanced Usage & Examples\n\n### Complete System Overview\n\n```typescript\nimport { OSUtils } from 'node-os-utils';\n\nconst osutils = new OSUtils({ debug: true });\n\n// Comprehensive system overview\nconst overview = await osutils.overview();\nconsole.log('📊 System Overview:');\nif (overview.cpu.usage != null) {\n  console.log('CPU Usage:', overview.cpu.usage + '%');\n}\nif (overview.memory?.usagePercentage != null) {\n  console.log('Memory Usage:', overview.memory.usagePercentage + '%');\n}\nif (overview.disk?.usagePercentage != null) {\n  console.log('Disk Usage:', overview.disk.usagePercentage + '%');\n}\nif (overview.network) {\n  console.log('Network RX:', overview.network.totalRxBytes.toString('MB'));\n  console.log('Network TX:', overview.network.totalTxBytes.toString('MB'));\n}\nif (overview.processes) {\n  console.log('Processes:', overview.processes.total);\n}\nif (overview.system?.uptime != null) {\n  console.log('Uptime:', (overview.system.uptime / 3600000).toFixed(1) + ' hours');\n}\n\n// System health check\nconst health = await osutils.healthCheck();\nconsole.log('🏥 System Health:', health.status); // 'healthy' | 'warning' | 'critical'\n\nif (health.issues.length > 0) {\n  console.log('⚠️ Issues detected:');\n  health.issues.forEach(issue => console.log(`- ${issue}`));\n}\n```\n\n### Multi-Metric Real-time Monitoring\n\n```typescript\n// Create monitoring dashboard\nclass SystemDashboard {\n  private intervals: NodeJS.Timeout[] = [];\n  private alerts: string[] = [];\n\n  start() {\n    console.log('🚀 Starting system monitoring dashboard...');\n\n    // CPU usage polling\n    this.intervals.push(setInterval(async () => {\n      const result = await osutils.cpu.usage();\n      if (result.success) {\n        const value = result.data.toFixed(2);\n        this.updateDisplay('CPU', `${value}%`);\n        if (result.data > 80) {\n          this.addAlert(`⚠️ High CPU usage: ${value}%`);\n        }\n      }\n    }, 1000));\n\n    // Memory usage polling\n    this.intervals.push(setInterval(async () => {\n      const result = await osutils.memory.info();\n      if (result.success) {\n        const percent = result.data.usagePercentage;\n        this.updateDisplay('Memory', `${percent.toFixed(2)}%`);\n        if (percent > 85) {\n          this.addAlert(`⚠️ High memory usage: ${percent.toFixed(2)}%`);\n        }\n      }\n    }, 2000));\n\n    // Disk usage polling\n    this.intervals.push(setInterval(async () => {\n      const result = await osutils.disk.usageByMountPoint('/');\n      if (result.success && result.data) {\n        this.updateDisplay('Disk', `${result.data.usagePercentage.toFixed(1)}%`);\n        if (result.data.usagePercentage > 90) {\n          this.addAlert(`⚠️ Disk almost full: ${result.data.usagePercentage.toFixed(1)}%`);\n        }\n      }\n    }, 10000));\n\n    // Network statistics polling\n    this.intervals.push(setInterval(async () => {\n      const stats = await osutils.network.statsAsync();\n      if (stats.success) {\n        const aggregate = stats.data.reduce(\n          (acc, item) => ({\n            rx: acc.rx + item.rxBytes.toBytes(),\n            tx: acc.tx + item.txBytes.toBytes()\n          }),\n          { rx: 0, tx: 0 }\n        );\n\n        this.updateDisplay(\n          'Network',\n          `↓${(aggregate.rx / 1024 / 1024).toFixed(2)} MB ↑${(aggregate.tx / 1024 / 1024).toFixed(2)} MB`\n        );\n      }\n    }, 5000));\n\n    // Alert checker\n    this.intervals.push(setInterval(() => {\n      if (this.alerts.length > 0) {\n        console.log('🚨 Active Alerts:');\n        this.alerts.forEach(alert => console.log(alert));\n        this.alerts = [];\n      }\n    }, 10000));\n  }\n\n  private updateDisplay(metric: string, value: string) {\n    // Update your UI here\n    console.log(`📊 ${metric}: ${value}`);\n  }\n\n  private addAlert(alert: string) {\n    this.alerts.push(alert);\n  }\n\n  stop() {\n    this.intervals.forEach(interval => clearInterval(interval));\n    this.intervals = [];\n    console.log('⏹️ Monitoring stopped');\n  }\n}\n\n// Usage\nconst dashboard = new SystemDashboard();\ndashboard.start();\n\n// Stop after 5 minutes\nsetTimeout(() => dashboard.stop(), 5 * 60 * 1000);\n```\n\n### Advanced Configuration & Caching\n\n```typescript\n// Performance-optimized configuration\nconst osutils = new OSUtils({\n  // Global cache settings\n  cacheEnabled: true,\n  cacheTTL: 5000,\n  maxCacheSize: 1000,\n\n  // Execution settings\n  timeout: 15000,\n\n  // Debug mode\n  debug: false,\n\n  // Monitor-specific settings\n  cpu: {\n    cacheTTL: 1000,    // Fast refresh for CPU\n    interval: 100      // High precision monitoring\n  },\n  memory: {\n    cacheTTL: 5000     // Moderate refresh for memory\n  },\n  disk: {\n    cacheTTL: 30000,   // Slow refresh for disk\n    timeout: 10000\n  },\n  network: {\n    cacheTTL: 2000,    // Medium refresh for network\n    includeInterfaceStats: true\n  },\n  process: {\n    cacheTTL: 10000    // Slow refresh for processes\n  }\n});\n\n// Runtime cache configuration\nosutils.configureCache({\n  enabled: true,\n  maxSize: 2000,\n  defaultTTL: 8000\n});\n\n// Cache statistics\nconst cacheStats = osutils.getCacheStats();\nif (cacheStats) {\n  console.log('Cache hit rate:', cacheStats.hitRate.toFixed(1) + '%');\n  console.log('Cache entries:', cacheStats.size);\n  console.log('Estimated memory used:', (cacheStats.memoryUsage / (1024 * 1024)).toFixed(2) + ' MB');\n}\n\n// Clear cache when needed\nosutils.clearCache();\n```\n\n### Error Handling Strategies\n\n```typescript\nimport { ErrorCode, MonitorError } from 'node-os-utils';\n\n// Comprehensive error handling\nclass SystemMonitoringService {\n  private osutils: OSUtils;\n\n  constructor() {\n    this.osutils = new OSUtils({ debug: true });\n  }\n\n  async getSystemInfo() {\n    try {\n      const results = await Promise.allSettled([\n        this.osutils.cpu.info(),\n        this.osutils.memory.info(),\n        this.osutils.disk.info(),\n        this.osutils.network.interfaces(),\n        this.osutils.system.info()\n      ]);\n\n      const data: Record<string, unknown> = {};\n      const errors: Array<{ component: string; error: MonitorError | Error; timestamp: Date }> = [];\n\n      results.forEach((result, index) => {\n        const keys = ['cpu', 'memory', 'disk', 'network', 'system'];\n        const key = keys[index];\n\n        if (result.status === 'fulfilled' && result.value.success) {\n          data[key] = result.value.data;\n        } else {\n          const monitorError = result.status === 'fulfilled'\n            ? result.value.error\n            : (result.reason instanceof MonitorError\n              ? result.reason\n              : MonitorError.createCommandFailed(process.platform, 'unknown', { reason: result.reason }));\n\n          errors.push({\n            component: key,\n            error: monitorError,\n            timestamp: new Date()\n          });\n\n          // Handle specific error types\n          this.handleComponentError(key, monitorError);\n        }\n      });\n\n      return { data, errors };\n    } catch (error) {\n      console.error('System monitoring failed:', error);\n      throw error;\n    }\n  }\n\n  private handleComponentError(component: string, error: any) {\n    switch (error?.code) {\n      case ErrorCode.PLATFORM_NOT_SUPPORTED:\n        console.warn(`${component} monitoring not supported on ${process.platform}`);\n        break;\n      case ErrorCode.PERMISSION_DENIED:\n        console.error(`Insufficient permissions for ${component} monitoring`);\n        break;\n      case ErrorCode.TIMEOUT:\n        console.warn(`${component} monitoring timed out, retrying...`);\n        break;\n      case ErrorCode.COMMAND_FAILED:\n        console.error(`${component} system command failed:`, error.message);\n        break;\n      default:\n        console.error(`Unknown ${component} error:`, error?.message);\n    }\n  }\n\n  // Graceful degradation example\n  async getCPUUsageWithFallback(): Promise<number> {\n    const result = await this.osutils.cpu.usage();\n\n    if (result.success) {\n      return result.data;\n    }\n\n    // Fallback to OS module\n    const os = require('os');\n    const cpus = os.cpus();\n\n    // Simple calculation as fallback\n    return Math.random() * 20 + 10; // Mock fallback\n  }\n}\n```\n\n## 🔄 Migration from v2.x to v3.0\n\nVersion 3.0 preserves the package entry point and core monitor APIs, but tightens several contracts that previously exposed misleading values or unsafe behavior. Review the following changes before upgrading.\n\n### What Stays the Same\n\n- Standard package-root imports remain unchanged: `import { OSUtils } from 'node-os-utils'` and CommonJS `require('node-os-utils')` continue to work.\n- Monitor names and the `MonitorResult<T>` success/failure pattern remain unchanged for normal calls.\n\n### 1. Process and User Times Are Optional\n\n`ProcessInfo.startTime`, `ProcessInfo.runtime`, and the `loginTime` returned by `system.users()` are now optional. When the operating system omits a timestamp or it cannot be parsed, v3.0 returns `undefined` instead of substituting the current time.\n\n```typescript\nconst processResult = await osutils.process.byPid(pid);\nif (processResult.success && processResult.data) {\n  const { startTime, runtime } = processResult.data;\n\n  if (startTime !== undefined) {\n    console.log('Started at:', new Date(startTime));\n  }\n  if (runtime !== undefined) {\n    console.log('Runtime:', runtime);\n  }\n}\n\nconst usersResult = await osutils.system.users();\nif (usersResult.success) {\n  for (const user of usersResult.data) {\n    if (user.loginTime !== undefined) {\n      console.log(user.username, new Date(user.loginTime));\n    }\n  }\n}\n```\n\nUpdate TypeScript consumers to narrow these fields before calling numeric or date methods.\n\n### 2. Process Termination Requires a Positive PID\n\n`process.kill()` now accepts only positive safe-integer PIDs. PID `0`, negative process-group IDs, non-integers, and unsafe integers are rejected with a successful `MonitorResult` whose `data` is `false`; they are no longer forwarded to the operating system.\n\n```typescript\nif (!Number.isSafeInteger(pid) || pid <= 0) {\n  throw new TypeError('pid must be a positive safe integer');\n}\n\nconst killResult = await osutils.process.kill(pid, 'SIGTERM');\nif (!killResult.success || !killResult.data) {\n  // Handle a failed or rejected termination request.\n}\n```\n\nIf an application intentionally signals Unix process groups, keep that platform-specific behavior outside this library and guard it explicitly.\n\n### 3. Disabling System Information Is Enforced\n\nAfter setting `system.includeSystemInfo` to `false`, or calling `withSystemInfo(false)`, `system.info()` returns a failed `MonitorResult`. `system.overview()` remains available, but reports `unknown` for `data.system.hostname` and `data.system.platform`.\n\nKeep `includeSystemInfo` enabled (the default) when either value is required:\n\n```typescript\nconst osutils = new OSUtils({\n  system: { includeSystemInfo: true }\n});\n```\n\n### 4. `DataSize` Rejects Non-Finite Values\n\n`new DataSize(NaN)`, `new DataSize(Infinity)`, and `new DataSize(-Infinity)` now throw. Validate externally supplied values before construction:\n\n```typescript\nimport { DataSize } from 'node-os-utils';\n\nif (!Number.isFinite(bytes)) {\n  throw new TypeError('bytes must be finite');\n}\nconst size = new DataSize(bytes);\n```\n\n### v3.0 Migration Checklist\n\n- [ ] Narrow `startTime`, `runtime`, and `loginTime` before using them\n- [ ] Replace calls that pass PID `0` or a negative process-group ID to `process.kill()`\n- [ ] Confirm that callers disabling `includeSystemInfo` handle a failed `info()` result and `unknown` overview fields\n- [ ] Validate values passed to `DataSize`\n- [ ] Run the application test suite on every supported operating system\n\n## 🔄 Migration from v1.x to v2.0\n\n### Breaking Changes\n\nVersion 2.0 introduces several breaking changes for improved type safety and consistency:\n\n#### 1. Constructor Changes\n\n```typescript\n// v1.x\nconst osu = require('node-os-utils');\nconst cpuUsage = await osu.cpu.usage();\n\n// v2.0\nimport { OSUtils } from 'node-os-utils';\nconst osutils = new OSUtils();\nconst cpuResult = await osutils.cpu.usage();\nif (cpuResult.success) {\n  const cpuUsage = cpuResult.data;\n}\n```\n\n#### 2. Return Value Changes\n\n```typescript\n// v1.x - Direct values\nconst cpuUsage = await osu.cpu.usage(); // number\nconst memInfo = await osu.mem.info();   // object\n\n// v2.0 - MonitorResult wrapper\nconst cpuResult = await osutils.cpu.usage();\nif (cpuResult.success) {\n  const cpuUsage = cpuResult.data; // number\n}\n\nconst memResult = await osutils.memory.info();\nif (memResult.success) {\n  const memInfo = memResult.data; // MemoryInfo\n}\n```\n\n#### 3. Module Name Changes\n\n| v1.x | v2.0 |\n|------|------|\n| `cpu` | `cpu` (unchanged) |\n| `mem` | `memory` |\n| `drive` | `disk` |\n| `netstat` | `network` |\n| `proc` | `process` |\n| `os` | `system` |\n\n#### 4. Method Name Changes\n\n| v1.x | v2.0 |\n|------|------|\n| `osu.cpu.usage()` | `osutils.cpu.usage()` |\n| `osu.mem.info()` | `osutils.memory.info()` |\n| `osu.drive.info()` | `osutils.disk.info()` |\n| `osu.netstat.inOut()` | `osutils.network.overview()` |\n| `osu.proc.totalProcesses()` | `osutils.process.list().then(r => r.data.length)` |\n\n> **Deprecated legacy sync methods**: The backward-compatible synchronous methods `disk.free()` / `disk.used()` / `network.inOut()` / `network.stats()` only return fixed placeholder values (all zeros) and are marked `@deprecated`. Migrate to the async APIs `disk.usage()`, `network.bandwidth()` and `network.statsAsync()` for real data. They will be removed in a future release.\n\n### Migration Example\n\n```typescript\n// v1.x code\nconst osu = require('node-os-utils');\n\nasync function getSystemInfo() {\n  const cpuUsage = await osu.cpu.usage();\n  const memInfo = await osu.mem.info();\n  const driveInfo = await osu.drive.info();\n\n  return {\n    cpu: cpuUsage,\n    memory: memInfo,\n    disk: driveInfo\n  };\n}\n\n// v2.0 equivalent\nimport { OSUtils } from 'node-os-utils';\n\nconst osutils = new OSUtils();\n\nasync function getSystemInfo() {\n  const [cpuResult, memResult, diskResult] = await Promise.all([\n    osutils.cpu.usage(),\n    osutils.memory.info(),\n    osutils.disk.info()\n  ]);\n\n  return {\n    cpu: cpuResult.success ? cpuResult.data : null,\n    memory: memResult.success ? memResult.data : null,\n    disk: diskResult.success ? diskResult.data : null\n  };\n}\n```\n\n### Migration Checklist\n\n- [ ] Update import statements to use `OSUtils` class\n- [ ] Add constructor call: `new OSUtils()`\n- [ ] Update all method calls to handle `MonitorResult<T>` return type\n- [ ] Change module names: `mem` → `memory`, `drive` → `disk`, etc.\n- [ ] Add error handling for failed operations\n- [ ] Update TypeScript types if using TypeScript\n- [ ] Test all functionality after migration\n\n## 🛠️ Development & Contributing\n\n### Building from Source\n\n```bash\n# Clone the repository\ngit clone https://github.com/SunilWang/node-os-utils.git\ncd node-os-utils\n\n# Install dependencies\nnpm install\n\n# Build TypeScript\nnpm run build\n\n# Watch mode for development\nnpm run build:watch\n\n# Run all tests for the current platform (shared + current + matching system directory)\nnpm test\n\n# Same as above, auto-detecting the current platform\nnpm run test:platform\n\n# Run against a specific system directory (tests for other OSes are skipped)\nnpm run test:linux    # Linux-specific tests\nnpm run test:macos    # macOS-specific tests\nnpm run test:windows  # Windows-specific tests\n\n# Run with coverage\nnpm run test:coverage\n\n# Code quality\nnpm run lint\nnpm run lint:check\n\n# Generate TypeDoc documentation\nnpm run docs\n```\n\n### Testing\n\n**Available Test Scripts:**\n\n```bash\n# Core test suites (shared + current + the matching system directory)\nnpm test                    # Build and run all tests for the current platform\nnpm run test:unit           # Same as above, without build\nnpm run test:platform       # Same as above, auto-detects current platform\n\n# Run against a specific system directory (tests for other OSes are skipped)\nnpm run test:linux          # shared + current + linux/\nnpm run test:macos          # shared + current + macos/\nnpm run test:windows        # shared + current + windows/\n\n# Coverage and reporting\nnpm run test:coverage      # With coverage report\n```\n\n**Test Structure:**\n\nTests are grouped by system, then by module — not by test type (mock vs. real command):\n- `test/shared/` - Platform-agnostic tests (core, types, mocked adapters/monitors, shared test utilities)\n- `test/linux/`, `test/macos/`, `test/windows/` - Real command tests and system integration tests specific to each OS\n- `test/current/` - Cross-platform real command tests that self-check the current platform at runtime (monitors, `OSUtils`, `CommandExecutor`)\n\nReal command and system tests cover parsing, caching, and direct system calls. Only the Adapter for the current platform is executed; a single test may be pending when a command is missing, permission-restricted, or an explicitly unsupported capability is unavailable. Timeouts and ordinary implementation errors still fail the test.\n\n### Contributing Guidelines\n\n1. **Fork & Clone**\n   ```bash\n   git fork https://github.com/SunilWang/node-os-utils.git\n   git clone https://github.com/yourusername/node-os-utils.git\n   ```\n\n2. **Create Feature Branch**\n   ```bash\n   git checkout -b feature/your-feature-name\n   ```\n\n3. **Development Setup**\n   ```bash\n   npm install\n   npm run build:watch  # Start development build\n   ```\n\n4. **Make Changes**\n   - Follow TypeScript best practices\n   - Add comprehensive tests\n   - Update documentation if needed\n   - Follow existing code patterns\n\n5. **Quality Checks**\n   ```bash\n   npm run lint          # Code linting\n   npm test             # All tests\n   npm run test:coverage # Coverage check\n   npm run build        # Build check\n   ```\n\n6. **Commit & Push**\n   ```bash\n   git add .\n   git commit -m \"feat: add new feature description\"\n   git push origin feature/your-feature-name\n   ```\n\n7. **Submit Pull Request**\n   - Provide clear description\n   - Include test results\n   - Reference related issues\n\n### Code Style Guidelines\n\n- Use TypeScript strict mode\n- Follow existing naming conventions\n- Add JSDoc comments for public APIs\n- Maintain cross-platform compatibility\n- Include comprehensive error handling\n- Write tests for new functionality\n\n### Issue Reporting\n\nWhen reporting issues, please include:\n- Node.js version\n- Operating system and version\n- Complete error messages\n- Minimal reproduction example\n- Expected vs actual behavior\n\n## 📈 Performance & Benchmarks\n\n### Performance Characteristics\n\n| Operation | Typical Time | Cache Hit Time | Memory Usage |\n|-----------|-------------|----------------|---------------|\n| CPU Info | 50-100ms | <1ms | ~2KB |\n| CPU Usage | 100-500ms | <1ms | ~1KB |\n| Memory Info | 10-50ms | <1ms | ~3KB |\n| Disk Info | 100-300ms | <1ms | ~5KB |\n| Network Stats | 50-150ms | <1ms | ~4KB |\n| Process List | 200-1000ms | <1ms | ~50KB |\n\n### Optimization Tips\n\n```typescript\n// Enable caching for better performance\nconst osutils = new OSUtils({\n  cacheEnabled: true,\n  cacheTTL: 5000  // 5 second cache\n});\n\n// Use appropriate cache TTL for different metrics\nconst config = {\n  cpu: { cacheTTL: 1000 },     // Fast changing\n  memory: { cacheTTL: 3000 },   // Medium changing\n  disk: { cacheTTL: 30000 },    // Slow changing\n};\n```\n\n## 📊 Monitoring Best Practices\n\n1. **Cache Strategy**: Use appropriate TTL values based on data change frequency\n2. **Error Handling**: Always check `result.success` before accessing data\n3. **Platform Awareness**: Handle platform-specific limitations gracefully\n4. **Resource Usage**: Monitor your monitoring - avoid excessive polling\n5. **Real-time Monitoring**: Use subscriptions for continuous monitoring needs\n\n## 🦕 Deno Compatibility\n\n`node-os-utils` works under Deno's Node.js compatibility layer (`deno run --node-modules-dir`). When Deno's compat layer cannot execute native shell commands (e.g. PowerShell on Windows), the library **degrades gracefully** rather than throwing:\n\n| Operation | Degraded Behavior |\n|-----------|-------------------|\n| `cpu.info()` | Falls back to `os.cpus()` data |\n| `memory.info()` | Falls back to `os.totalmem()` / `os.freemem()` |\n| `disk.info()`, `network.stats()`, `process.list()` | Returns `MonitorResult` with `success: false` |\n\nA one-time warning is emitted on first degradation:\n\n```\n[node-os-utils] cpu degraded: Windows PowerShell/WMI unavailable, falling back to os.cpus() data. Some features may not be available in the current runtime environment.\n```\n\n**Example:**\n```ts\n// deno run --allow-read --allow-env --allow-sys app.ts\nimport { createOSUtils } from 'node-os-utils';\n\nconst utils = createOSUtils();\nconst cpu = await utils.cpu.info();\nif (cpu.success) {\n  console.log(cpu.data.threads); // works even in Deno\n} else {\n  console.log('CPU info not available:', cpu.error.message);\n}\n```\n\n## ❓ FAQ\n\n**Q: Why does some functionality not work on Windows?**\nA: Windows has different system APIs and command structures. Some features like detailed I/O stats are limited by Windows capabilities.\n\n**Q: How accurate are the measurements?**\nA: Accuracy depends on platform and measurement type. CPU usage is sampled over time, memory info is instantaneous, disk info reflects current filesystem state.\n\n**Q: Can I use this in production?**\nA: Yes, but implement proper error handling and consider the performance impact of frequent system calls.\n\n**Q: How do I reduce memory usage?**\nA: Configure appropriate cache settings and avoid keeping long-running monitoring subscriptions if not needed.\n\n## 📄 License\n\nMIT License. See [LICENSE](LICENSE) file for details.\n\nCopyright (c) 2024 node-os-utils contributors\n\n---\n\n**Built with ❤️ and TypeScript**\n\nStar ⭐ this repo if you find it useful!\n\n[npm-image]: https://img.shields.io/npm/v/node-os-utils.svg\n[npm-url]: https://www.npmjs.com/package/node-os-utils\n[downloads-image]: https://img.shields.io/npm/dt/node-os-utils.svg\n[downloads-url]: https://npmjs.org/package/node-os-utils\n","readmeFilename":"README.md","users":{"yuch4n":true}}