node-os-utils 1.3.7 → 2.0.1-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (220) hide show
  1. package/README.md +1113 -237
  2. package/dist/.tsbuildinfo +1 -0
  3. package/dist/package.json +99 -0
  4. package/dist/src/adapters/adapter-factory.d.ts +87 -0
  5. package/dist/src/adapters/adapter-factory.d.ts.map +1 -0
  6. package/dist/src/adapters/adapter-factory.js +272 -0
  7. package/dist/src/adapters/adapter-factory.js.map +1 -0
  8. package/dist/src/adapters/linux-adapter.d.ts +199 -0
  9. package/dist/src/adapters/linux-adapter.d.ts.map +1 -0
  10. package/dist/src/adapters/linux-adapter.js +1308 -0
  11. package/dist/src/adapters/linux-adapter.js.map +1 -0
  12. package/dist/src/adapters/macos-adapter.d.ts +232 -0
  13. package/dist/src/adapters/macos-adapter.d.ts.map +1 -0
  14. package/dist/src/adapters/macos-adapter.js +1144 -0
  15. package/dist/src/adapters/macos-adapter.js.map +1 -0
  16. package/dist/src/adapters/windows-adapter.d.ts +124 -0
  17. package/dist/src/adapters/windows-adapter.d.ts.map +1 -0
  18. package/dist/src/adapters/windows-adapter.js +601 -0
  19. package/dist/src/adapters/windows-adapter.js.map +1 -0
  20. package/dist/src/core/base-monitor.d.ts +107 -0
  21. package/dist/src/core/base-monitor.d.ts.map +1 -0
  22. package/dist/src/core/base-monitor.js +312 -0
  23. package/dist/src/core/base-monitor.js.map +1 -0
  24. package/dist/src/core/cache-manager.d.ts +157 -0
  25. package/dist/src/core/cache-manager.d.ts.map +1 -0
  26. package/dist/src/core/cache-manager.js +315 -0
  27. package/dist/src/core/cache-manager.js.map +1 -0
  28. package/dist/src/core/platform-adapter.d.ts +197 -0
  29. package/dist/src/core/platform-adapter.d.ts.map +1 -0
  30. package/dist/src/core/platform-adapter.js +244 -0
  31. package/dist/src/core/platform-adapter.js.map +1 -0
  32. package/dist/src/index.d.ts +205 -0
  33. package/dist/src/index.d.ts.map +1 -0
  34. package/dist/src/index.js +315 -0
  35. package/dist/src/index.js.map +1 -0
  36. package/dist/src/monitors/cpu-monitor.d.ts +139 -0
  37. package/dist/src/monitors/cpu-monitor.d.ts.map +1 -0
  38. package/dist/src/monitors/cpu-monitor.js +433 -0
  39. package/dist/src/monitors/cpu-monitor.js.map +1 -0
  40. package/dist/src/monitors/disk-monitor.d.ts +136 -0
  41. package/dist/src/monitors/disk-monitor.d.ts.map +1 -0
  42. package/dist/src/monitors/disk-monitor.js +465 -0
  43. package/dist/src/monitors/disk-monitor.js.map +1 -0
  44. package/dist/src/monitors/memory-monitor.d.ts +136 -0
  45. package/dist/src/monitors/memory-monitor.d.ts.map +1 -0
  46. package/dist/src/monitors/memory-monitor.js +443 -0
  47. package/dist/src/monitors/memory-monitor.js.map +1 -0
  48. package/dist/src/monitors/network-monitor.d.ts +166 -0
  49. package/dist/src/monitors/network-monitor.d.ts.map +1 -0
  50. package/dist/src/monitors/network-monitor.js +586 -0
  51. package/dist/src/monitors/network-monitor.js.map +1 -0
  52. package/dist/src/monitors/process-monitor.d.ts +142 -0
  53. package/dist/src/monitors/process-monitor.d.ts.map +1 -0
  54. package/dist/src/monitors/process-monitor.js +460 -0
  55. package/dist/src/monitors/process-monitor.js.map +1 -0
  56. package/dist/src/monitors/system-monitor.d.ts +173 -0
  57. package/dist/src/monitors/system-monitor.d.ts.map +1 -0
  58. package/dist/src/monitors/system-monitor.js +592 -0
  59. package/dist/src/monitors/system-monitor.js.map +1 -0
  60. package/dist/src/types/common.d.ts +135 -0
  61. package/dist/src/types/common.d.ts.map +1 -0
  62. package/dist/src/types/common.js +141 -0
  63. package/dist/src/types/common.js.map +1 -0
  64. package/dist/src/types/config.d.ts +288 -0
  65. package/dist/src/types/config.d.ts.map +1 -0
  66. package/dist/src/types/config.js +3 -0
  67. package/dist/src/types/config.js.map +1 -0
  68. package/dist/src/types/errors.d.ts +40 -0
  69. package/dist/src/types/errors.d.ts.map +1 -0
  70. package/dist/src/types/errors.js +67 -0
  71. package/dist/src/types/errors.js.map +1 -0
  72. package/dist/src/types/index.d.ts +16 -0
  73. package/dist/src/types/index.d.ts.map +1 -0
  74. package/dist/src/types/index.js +36 -0
  75. package/dist/src/types/index.js.map +1 -0
  76. package/dist/src/types/monitors.d.ts +623 -0
  77. package/dist/src/types/monitors.d.ts.map +1 -0
  78. package/dist/src/types/monitors.js +3 -0
  79. package/dist/src/types/monitors.js.map +1 -0
  80. package/dist/src/types/platform.d.ts +435 -0
  81. package/dist/src/types/platform.d.ts.map +1 -0
  82. package/dist/src/types/platform.js +3 -0
  83. package/dist/src/types/platform.js.map +1 -0
  84. package/dist/src/utils/command-executor.d.ts +58 -0
  85. package/dist/src/utils/command-executor.d.ts.map +1 -0
  86. package/dist/src/utils/command-executor.js +321 -0
  87. package/dist/src/utils/command-executor.js.map +1 -0
  88. package/dist/test/config/test-config.d.ts +301 -0
  89. package/dist/test/config/test-config.d.ts.map +1 -0
  90. package/dist/test/config/test-config.js +235 -0
  91. package/dist/test/config/test-config.js.map +1 -0
  92. package/dist/test/platform/linux.test.d.ts +6 -0
  93. package/dist/test/platform/linux.test.d.ts.map +1 -0
  94. package/dist/test/platform/linux.test.js +307 -0
  95. package/dist/test/platform/linux.test.js.map +1 -0
  96. package/dist/test/platform/macos.test.d.ts +6 -0
  97. package/dist/test/platform/macos.test.d.ts.map +1 -0
  98. package/dist/test/platform/macos.test.js +276 -0
  99. package/dist/test/platform/macos.test.js.map +1 -0
  100. package/dist/test/platform/windows.test.d.ts +6 -0
  101. package/dist/test/platform/windows.test.d.ts.map +1 -0
  102. package/dist/test/platform/windows.test.js +320 -0
  103. package/dist/test/platform/windows.test.js.map +1 -0
  104. package/dist/test/unit/adapters/adapter-factory.test.d.ts +2 -0
  105. package/dist/test/unit/adapters/adapter-factory.test.d.ts.map +1 -0
  106. package/dist/test/unit/adapters/adapter-factory.test.js +147 -0
  107. package/dist/test/unit/adapters/adapter-factory.test.js.map +1 -0
  108. package/dist/test/unit/adapters/linux-adapter.test.d.ts +2 -0
  109. package/dist/test/unit/adapters/linux-adapter.test.d.ts.map +1 -0
  110. package/dist/test/unit/adapters/linux-adapter.test.js +191 -0
  111. package/dist/test/unit/adapters/linux-adapter.test.js.map +1 -0
  112. package/dist/test/unit/adapters/macos-adapter.test.d.ts +2 -0
  113. package/dist/test/unit/adapters/macos-adapter.test.d.ts.map +1 -0
  114. package/dist/test/unit/adapters/macos-adapter.test.js +224 -0
  115. package/dist/test/unit/adapters/macos-adapter.test.js.map +1 -0
  116. package/dist/test/unit/adapters/windows-adapter.test.d.ts +2 -0
  117. package/dist/test/unit/adapters/windows-adapter.test.d.ts.map +1 -0
  118. package/dist/test/unit/adapters/windows-adapter.test.js +41 -0
  119. package/dist/test/unit/adapters/windows-adapter.test.js.map +1 -0
  120. package/dist/test/unit/core/base-monitor.test.d.ts +2 -0
  121. package/dist/test/unit/core/base-monitor.test.d.ts.map +1 -0
  122. package/dist/test/unit/core/base-monitor.test.js +157 -0
  123. package/dist/test/unit/core/base-monitor.test.js.map +1 -0
  124. package/dist/test/unit/core/cache-manager.test.d.ts +6 -0
  125. package/dist/test/unit/core/cache-manager.test.d.ts.map +1 -0
  126. package/dist/test/unit/core/cache-manager.test.js +127 -0
  127. package/dist/test/unit/core/cache-manager.test.js.map +1 -0
  128. package/dist/test/unit/core/platform-adapter.test.d.ts +2 -0
  129. package/dist/test/unit/core/platform-adapter.test.d.ts.map +1 -0
  130. package/dist/test/unit/core/platform-adapter.test.js +186 -0
  131. package/dist/test/unit/core/platform-adapter.test.js.map +1 -0
  132. package/dist/test/unit/index.test.d.ts +2 -0
  133. package/dist/test/unit/index.test.d.ts.map +1 -0
  134. package/dist/test/unit/index.test.js +183 -0
  135. package/dist/test/unit/index.test.js.map +1 -0
  136. package/dist/test/unit/monitors/cpu-monitor.test.d.ts +2 -0
  137. package/dist/test/unit/monitors/cpu-monitor.test.d.ts.map +1 -0
  138. package/dist/test/unit/monitors/cpu-monitor.test.js +166 -0
  139. package/dist/test/unit/monitors/cpu-monitor.test.js.map +1 -0
  140. package/dist/test/unit/monitors/disk-monitor.test.d.ts +2 -0
  141. package/dist/test/unit/monitors/disk-monitor.test.d.ts.map +1 -0
  142. package/dist/test/unit/monitors/disk-monitor.test.js +46 -0
  143. package/dist/test/unit/monitors/disk-monitor.test.js.map +1 -0
  144. package/dist/test/unit/monitors/memory-monitor.test.d.ts +2 -0
  145. package/dist/test/unit/monitors/memory-monitor.test.d.ts.map +1 -0
  146. package/dist/test/unit/monitors/memory-monitor.test.js +142 -0
  147. package/dist/test/unit/monitors/memory-monitor.test.js.map +1 -0
  148. package/dist/test/unit/monitors/network-monitor.test.d.ts +2 -0
  149. package/dist/test/unit/monitors/network-monitor.test.d.ts.map +1 -0
  150. package/dist/test/unit/monitors/network-monitor.test.js +22 -0
  151. package/dist/test/unit/monitors/network-monitor.test.js.map +1 -0
  152. package/dist/test/unit/monitors/process-monitor.test.d.ts +2 -0
  153. package/dist/test/unit/monitors/process-monitor.test.d.ts.map +1 -0
  154. package/dist/test/unit/monitors/process-monitor.test.js +165 -0
  155. package/dist/test/unit/monitors/process-monitor.test.js.map +1 -0
  156. package/dist/test/unit/monitors/system-monitor-macos.test.d.ts +2 -0
  157. package/dist/test/unit/monitors/system-monitor-macos.test.d.ts.map +1 -0
  158. package/dist/test/unit/monitors/system-monitor-macos.test.js +115 -0
  159. package/dist/test/unit/monitors/system-monitor-macos.test.js.map +1 -0
  160. package/dist/test/unit/monitors/system-monitor.test.d.ts +2 -0
  161. package/dist/test/unit/monitors/system-monitor.test.d.ts.map +1 -0
  162. package/dist/test/unit/monitors/system-monitor.test.js +70 -0
  163. package/dist/test/unit/monitors/system-monitor.test.js.map +1 -0
  164. package/dist/test/unit/types/common.test.d.ts +6 -0
  165. package/dist/test/unit/types/common.test.d.ts.map +1 -0
  166. package/dist/test/unit/types/common.test.js +139 -0
  167. package/dist/test/unit/types/common.test.js.map +1 -0
  168. package/dist/test/unit/types/config.test.d.ts +2 -0
  169. package/dist/test/unit/types/config.test.d.ts.map +1 -0
  170. package/dist/test/unit/types/config.test.js +9 -0
  171. package/dist/test/unit/types/config.test.js.map +1 -0
  172. package/dist/test/unit/types/errors.test.d.ts +6 -0
  173. package/dist/test/unit/types/errors.test.d.ts.map +1 -0
  174. package/dist/test/unit/types/errors.test.js +184 -0
  175. package/dist/test/unit/types/errors.test.js.map +1 -0
  176. package/dist/test/unit/types/index.test.d.ts +2 -0
  177. package/dist/test/unit/types/index.test.d.ts.map +1 -0
  178. package/dist/test/unit/types/index.test.js +39 -0
  179. package/dist/test/unit/types/index.test.js.map +1 -0
  180. package/dist/test/unit/types/monitors.test.d.ts +2 -0
  181. package/dist/test/unit/types/monitors.test.d.ts.map +1 -0
  182. package/dist/test/unit/types/monitors.test.js +9 -0
  183. package/dist/test/unit/types/monitors.test.js.map +1 -0
  184. package/dist/test/unit/types/platform.test.d.ts +2 -0
  185. package/dist/test/unit/types/platform.test.d.ts.map +1 -0
  186. package/dist/test/unit/types/platform.test.js +9 -0
  187. package/dist/test/unit/types/platform.test.js.map +1 -0
  188. package/dist/test/unit/utils/command-executor.test.d.ts +6 -0
  189. package/dist/test/unit/utils/command-executor.test.d.ts.map +1 -0
  190. package/dist/test/unit/utils/command-executor.test.js +153 -0
  191. package/dist/test/unit/utils/command-executor.test.js.map +1 -0
  192. package/dist/test/unit/utils/platform-specific.test.d.ts +2 -0
  193. package/dist/test/unit/utils/platform-specific.test.d.ts.map +1 -0
  194. package/dist/test/unit/utils/platform-specific.test.js +32 -0
  195. package/dist/test/unit/utils/platform-specific.test.js.map +1 -0
  196. package/dist/test/utils/platform-specific.d.ts +139 -0
  197. package/dist/test/utils/platform-specific.d.ts.map +1 -0
  198. package/dist/test/utils/platform-specific.js +306 -0
  199. package/dist/test/utils/platform-specific.js.map +1 -0
  200. package/dist/test/utils/test-base.d.ts +157 -0
  201. package/dist/test/utils/test-base.d.ts.map +1 -0
  202. package/dist/test/utils/test-base.js +316 -0
  203. package/dist/test/utils/test-base.js.map +1 -0
  204. package/package.json +78 -18
  205. package/.travis.yml +0 -7
  206. package/index.js +0 -17
  207. package/lib/bucket.js +0 -14
  208. package/lib/cpu.js +0 -94
  209. package/lib/drive.js +0 -113
  210. package/lib/exec.js +0 -28
  211. package/lib/mem.js +0 -176
  212. package/lib/netstat.js +0 -182
  213. package/lib/openfiles.js +0 -25
  214. package/lib/os.js +0 -148
  215. package/lib/osCmd.js +0 -20
  216. package/lib/proc.js +0 -38
  217. package/lib/users.js +0 -18
  218. package/test/test.js +0 -55
  219. package/util/co.js +0 -237
  220. package/util/index.js +0 -12
@@ -0,0 +1 @@
1
+ {"version":3,"file":"macos-adapter.test.js","sourceRoot":"","sources":["../../../../test/unit/adapters/macos-adapter.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=windows-adapter.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"windows-adapter.test.d.ts","sourceRoot":"","sources":["../../../../test/unit/adapters/windows-adapter.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const chai_1 = require("chai");
4
+ const windows_adapter_1 = require("../../../src/adapters/windows-adapter");
5
+ const errors_1 = require("../../../src/types/errors");
6
+ describe('WindowsAdapter 内部行为', () => {
7
+ it('在 WMI 数据缺失 Size 时应限制磁盘占用不为负值', async () => {
8
+ const adapter = new windows_adapter_1.WindowsAdapter();
9
+ const internal = adapter;
10
+ let callCount = 0;
11
+ internal.executePowerShell = async () => {
12
+ callCount += 1;
13
+ if (callCount === 1) {
14
+ throw new errors_1.MonitorError('psdrive failed', errors_1.ErrorCode.COMMAND_FAILED, 'win32');
15
+ }
16
+ return [
17
+ {
18
+ DeviceID: 'C:',
19
+ FileSystem: 'NTFS',
20
+ FreeSpace: '1024'
21
+ }
22
+ ];
23
+ };
24
+ const disks = await adapter.getDiskInfo();
25
+ (0, chai_1.expect)(disks).to.have.lengthOf(1);
26
+ (0, chai_1.expect)(disks[0].mountPoint).to.equal('C:');
27
+ (0, chai_1.expect)(disks[0].used).to.equal(0);
28
+ (0, chai_1.expect)(disks[0].available).to.equal(1024);
29
+ (0, chai_1.expect)(disks[0].usagePercentage).to.equal(0);
30
+ });
31
+ it('在网络统计命令失败时应回退为空结果', async () => {
32
+ const adapter = new windows_adapter_1.WindowsAdapter();
33
+ const internal = adapter;
34
+ internal.executePowerShell = async () => {
35
+ throw new errors_1.MonitorError('stats failed', errors_1.ErrorCode.COMMAND_FAILED, 'win32');
36
+ };
37
+ const stats = await adapter.getNetworkStats();
38
+ (0, chai_1.expect)(stats).to.deep.equal([]);
39
+ });
40
+ });
41
+ //# sourceMappingURL=windows-adapter.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"windows-adapter.test.js","sourceRoot":"","sources":["../../../../test/unit/adapters/windows-adapter.test.ts"],"names":[],"mappings":";;AAAA,+BAA8B;AAE9B,2EAAuE;AACvE,sDAAoE;AAEpE,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;IACnC,EAAE,CAAC,8BAA8B,EAAE,KAAK,IAAI,EAAE;QAC5C,MAAM,OAAO,GAAG,IAAI,gCAAc,EAAE,CAAC;QACrC,MAAM,QAAQ,GAAG,OAAc,CAAC;QAEhC,IAAI,SAAS,GAAG,CAAC,CAAC;QAClB,QAAQ,CAAC,iBAAiB,GAAG,KAAK,IAAI,EAAE;YACtC,SAAS,IAAI,CAAC,CAAC;YACf,IAAI,SAAS,KAAK,CAAC,EAAE,CAAC;gBACpB,MAAM,IAAI,qBAAY,CAAC,gBAAgB,EAAE,kBAAS,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;YAC9E,CAAC;YAED,OAAO;gBACL;oBACE,QAAQ,EAAE,IAAI;oBACd,UAAU,EAAE,MAAM;oBAClB,SAAS,EAAE,MAAM;iBAClB;aACF,CAAC;QACJ,CAAC,CAAC;QAEF,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,WAAW,EAAE,CAAC;QAC1C,IAAA,aAAM,EAAC,KAAK,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAClC,IAAA,aAAM,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC3C,IAAA,aAAM,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAClC,IAAA,aAAM,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC1C,IAAA,aAAM,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mBAAmB,EAAE,KAAK,IAAI,EAAE;QACjC,MAAM,OAAO,GAAG,IAAI,gCAAc,EAAE,CAAC;QACrC,MAAM,QAAQ,GAAG,OAAc,CAAC;QAEhC,QAAQ,CAAC,iBAAiB,GAAG,KAAK,IAAI,EAAE;YACtC,MAAM,IAAI,qBAAY,CAAC,cAAc,EAAE,kBAAS,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;QAC5E,CAAC,CAAC;QAEF,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,eAAe,EAAE,CAAC;QAC9C,IAAA,aAAM,EAAC,KAAK,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=base-monitor.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base-monitor.test.d.ts","sourceRoot":"","sources":["../../../../test/unit/core/base-monitor.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,157 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const chai_1 = require("chai");
4
+ const base_monitor_1 = require("../../../src/core/base-monitor");
5
+ const errors_1 = require("../../../src/types/errors");
6
+ function createAdapterStub() {
7
+ return {
8
+ getPlatform: () => 'test',
9
+ isSupported: (feature) => feature !== 'unsupported.feature',
10
+ executeCommand: async () => ({
11
+ stdout: '',
12
+ stderr: '',
13
+ exitCode: 0,
14
+ platform: 'test',
15
+ executionTime: 0,
16
+ command: ''
17
+ }),
18
+ readFile: async () => '',
19
+ fileExists: async () => true,
20
+ getCPUInfo: async () => ({}),
21
+ getCPUUsage: async () => ({ overall: 10 }),
22
+ getCPUTemperature: async () => ([]),
23
+ getMemoryInfo: async () => ({ total: 1, available: 1 }),
24
+ getMemoryUsage: async () => ({}),
25
+ getDiskInfo: async () => ({}),
26
+ getDiskIO: async () => ({}),
27
+ getNetworkInterfaces: async () => ({}),
28
+ getNetworkStats: async () => ({}),
29
+ getProcesses: async () => ({}),
30
+ getProcessInfo: async () => ({}),
31
+ getSystemInfo: async () => ({}),
32
+ getSystemLoad: async () => ({ load1: 0.1, load5: 0.2, load15: 0.3 }),
33
+ getDiskUsage: async () => ({}),
34
+ getDiskStats: async () => ({}),
35
+ getMounts: async () => ({}),
36
+ getFileSystems: async () => ({}),
37
+ getNetworkConnections: async () => ({}),
38
+ getDefaultGateway: async () => ({}),
39
+ getProcessList: async () => ({}),
40
+ killProcess: async () => true,
41
+ getProcessOpenFiles: async () => [],
42
+ getProcessEnvironment: async () => ({}),
43
+ getSystemUptime: async () => ({}),
44
+ getSystemUsers: async () => ([]),
45
+ getSystemServices: async () => ([]),
46
+ getSupportedFeatures: () => ({
47
+ cpu: { info: true, usage: true, temperature: true, frequency: true, cache: true, perCore: true, cores: true },
48
+ memory: { info: true, usage: true, swap: true, pressure: true, detailed: true, virtual: true },
49
+ disk: { info: true, io: true, health: true, smart: true, filesystem: true, usage: true, stats: true, mounts: true, filesystems: true },
50
+ network: { interfaces: true, stats: true, connections: true, bandwidth: true, gateway: true },
51
+ process: { list: true, details: true, tree: true, monitor: true, info: true, kill: true, openFiles: true, environment: true },
52
+ system: { info: true, load: true, uptime: true, users: true, services: true }
53
+ })
54
+ };
55
+ }
56
+ class TestMonitor extends base_monitor_1.BaseMonitor {
57
+ constructor(adapter) {
58
+ super(adapter, { cacheTTL: 20 });
59
+ this.callCount = 0;
60
+ }
61
+ getDefaultConfig() {
62
+ return {
63
+ cacheEnabled: true,
64
+ cacheTTL: 10
65
+ };
66
+ }
67
+ async info() {
68
+ this.callCount += 1;
69
+ return this.createSuccessResult({ value: this.callCount });
70
+ }
71
+ async cachedOperation() {
72
+ return this.executeWithCache('test', async () => {
73
+ this.callCount += 1;
74
+ return { value: this.callCount };
75
+ }, 50);
76
+ }
77
+ handleErrorPublic(error) {
78
+ return this.handleError(error);
79
+ }
80
+ validateFeature(feature) {
81
+ this.validatePlatformSupport(feature);
82
+ }
83
+ }
84
+ describe('BaseMonitor', () => {
85
+ it('executeWithCache 命中缓存时返回 cached 结果', async () => {
86
+ const monitor = new TestMonitor(createAdapterStub());
87
+ const first = await monitor.cachedOperation();
88
+ const second = await monitor.cachedOperation();
89
+ (0, chai_1.expect)(first.success).to.be.true;
90
+ if (!first.success) {
91
+ throw new Error('expected success');
92
+ }
93
+ (0, chai_1.expect)(first.cached).to.be.false;
94
+ (0, chai_1.expect)(first.data.value).to.equal(1);
95
+ (0, chai_1.expect)(second.success).to.be.true;
96
+ if (!second.success) {
97
+ throw new Error('expected success');
98
+ }
99
+ (0, chai_1.expect)(second.cached).to.be.true;
100
+ (0, chai_1.expect)(second.data.value).to.equal(first.data.value);
101
+ });
102
+ it('withCaching(false) 会禁用缓存', async () => {
103
+ const monitor = new TestMonitor(createAdapterStub());
104
+ monitor.withCaching(false);
105
+ const first = await monitor.cachedOperation();
106
+ const second = await monitor.cachedOperation();
107
+ (0, chai_1.expect)(first.success).to.be.true;
108
+ if (!first.success) {
109
+ throw new Error('expected success');
110
+ }
111
+ (0, chai_1.expect)(first.cached).to.be.false;
112
+ (0, chai_1.expect)(second.success).to.be.true;
113
+ if (!second.success) {
114
+ throw new Error('expected success');
115
+ }
116
+ (0, chai_1.expect)(second.cached).to.be.false;
117
+ (0, chai_1.expect)(second.data.value).to.equal(first.data.value + 1);
118
+ });
119
+ it('monitor 方法会触发回调并可取消订阅', async () => {
120
+ const monitor = new TestMonitor(createAdapterStub());
121
+ const values = [];
122
+ await new Promise((resolve) => {
123
+ const subscription = monitor.monitor(10, (data) => {
124
+ values.push(data.value);
125
+ subscription.unsubscribe();
126
+ resolve();
127
+ });
128
+ });
129
+ (0, chai_1.expect)(values).to.have.lengthOf(1);
130
+ (0, chai_1.expect)(monitor.getActiveSubscriptions()).to.equal(0);
131
+ });
132
+ it('handleError 会将错误包装成 MonitorError', () => {
133
+ const monitor = new TestMonitor(createAdapterStub());
134
+ monitor.on('error', () => undefined);
135
+ const result = monitor.handleErrorPublic(new Error('boom'));
136
+ (0, chai_1.expect)(result.success).to.be.false;
137
+ if (result.success) {
138
+ throw new Error('expected failure');
139
+ }
140
+ (0, chai_1.expect)(result.error).to.be.instanceOf(errors_1.MonitorError);
141
+ (0, chai_1.expect)(result.error.code).to.equal(errors_1.ErrorCode.COMMAND_FAILED);
142
+ });
143
+ it('validatePlatformSupport 在不支持的功能上抛出异常', () => {
144
+ const monitor = new TestMonitor(createAdapterStub());
145
+ (0, chai_1.expect)(() => monitor.validateFeature('unsupported.feature')).to.throw(errors_1.MonitorError);
146
+ });
147
+ it('destroy 会清理订阅与缓存', async () => {
148
+ const monitor = new TestMonitor(createAdapterStub());
149
+ await monitor.cachedOperation();
150
+ monitor.monitor(5, () => undefined);
151
+ (0, chai_1.expect)(monitor.getActiveSubscriptions()).to.equal(1);
152
+ monitor.destroy();
153
+ (0, chai_1.expect)(monitor.getActiveSubscriptions()).to.equal(0);
154
+ (0, chai_1.expect)(monitor.getCacheStats()?.size).to.equal(0);
155
+ });
156
+ });
157
+ //# sourceMappingURL=base-monitor.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base-monitor.test.js","sourceRoot":"","sources":["../../../../test/unit/core/base-monitor.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * CacheManager单元测试
3
+ * 测试缓存管理器的核心功能,不依赖平台
4
+ */
5
+ export {};
6
+ //# sourceMappingURL=cache-manager.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cache-manager.test.d.ts","sourceRoot":"","sources":["../../../../test/unit/core/cache-manager.test.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
@@ -0,0 +1,127 @@
1
+ "use strict";
2
+ /**
3
+ * CacheManager单元测试
4
+ * 测试缓存管理器的核心功能,不依赖平台
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ const chai_1 = require("chai");
8
+ const cache_manager_1 = require("../../../src/core/cache-manager");
9
+ describe('CacheManager Unit Tests', function () {
10
+ let cacheManager;
11
+ beforeEach(function () {
12
+ cacheManager = new cache_manager_1.CacheManager({
13
+ defaultTTL: 1000,
14
+ maxSize: 10,
15
+ enabled: true
16
+ });
17
+ });
18
+ afterEach(function () {
19
+ cacheManager.clear();
20
+ });
21
+ describe('基本缓存功能', function () {
22
+ it('应该能够设置和获取缓存值', function () {
23
+ const key = 'test-key';
24
+ const value = { test: 'data' };
25
+ cacheManager.set(key, value);
26
+ const retrieved = cacheManager.get(key);
27
+ (0, chai_1.expect)(retrieved).to.deep.equal(value);
28
+ });
29
+ it('应该在TTL过期后返回undefined', function (done) {
30
+ const key = 'ttl-test';
31
+ const value = 'test-value';
32
+ const shortTTL = 50;
33
+ cacheManager.set(key, value, shortTTL);
34
+ // 立即检查,应该存在
35
+ (0, chai_1.expect)(cacheManager.get(key)).to.equal(value);
36
+ // TTL过期后检查
37
+ setTimeout(() => {
38
+ (0, chai_1.expect)(cacheManager.get(key)).to.be.undefined;
39
+ done();
40
+ }, shortTTL + 10);
41
+ });
42
+ it('应该正确报告缓存命中状态', function () {
43
+ const key = 'hit-test';
44
+ const value = 'hit-value';
45
+ (0, chai_1.expect)(cacheManager.has(key)).to.be.false;
46
+ cacheManager.set(key, value);
47
+ (0, chai_1.expect)(cacheManager.has(key)).to.be.true;
48
+ });
49
+ });
50
+ describe('缓存大小限制', function () {
51
+ it('应该在达到最大大小时移除最老的条目', function () {
52
+ const maxSize = 3;
53
+ const smallCache = new cache_manager_1.CacheManager({
54
+ defaultTTL: 10000,
55
+ maxSize: maxSize,
56
+ enabled: true
57
+ });
58
+ // 填充缓存到最大值
59
+ for (let i = 0; i < maxSize; i++) {
60
+ smallCache.set(`key-${i}`, `value-${i}`);
61
+ }
62
+ // 验证所有项都在缓存中
63
+ for (let i = 0; i < maxSize; i++) {
64
+ (0, chai_1.expect)(smallCache.has(`key-${i}`)).to.be.true;
65
+ }
66
+ // 添加一个新项,应该移除最老的
67
+ smallCache.set('new-key', 'new-value');
68
+ // 最老的应该被移除
69
+ (0, chai_1.expect)(smallCache.has('key-0')).to.be.false;
70
+ // 新的应该存在
71
+ (0, chai_1.expect)(smallCache.has('new-key')).to.be.true;
72
+ // 其他的应该还在
73
+ (0, chai_1.expect)(smallCache.has('key-1')).to.be.true;
74
+ (0, chai_1.expect)(smallCache.has('key-2')).to.be.true;
75
+ });
76
+ });
77
+ describe('缓存配置', function () {
78
+ it('禁用缓存时应该始终返回undefined', function () {
79
+ const disabledCache = new cache_manager_1.CacheManager({
80
+ defaultTTL: 1000,
81
+ maxSize: 10,
82
+ enabled: false
83
+ });
84
+ disabledCache.set('test', 'value');
85
+ (0, chai_1.expect)(disabledCache.get('test')).to.be.undefined;
86
+ (0, chai_1.expect)(disabledCache.has('test')).to.be.false;
87
+ });
88
+ it('应该能够清空所有缓存', function () {
89
+ cacheManager.set('key1', 'value1');
90
+ cacheManager.set('key2', 'value2');
91
+ (0, chai_1.expect)(cacheManager.has('key1')).to.be.true;
92
+ (0, chai_1.expect)(cacheManager.has('key2')).to.be.true;
93
+ cacheManager.clear();
94
+ (0, chai_1.expect)(cacheManager.has('key1')).to.be.false;
95
+ (0, chai_1.expect)(cacheManager.has('key2')).to.be.false;
96
+ });
97
+ });
98
+ describe('边界情况', function () {
99
+ it('应该处理undefined和null值', function () {
100
+ cacheManager.set('undefined-key', undefined);
101
+ cacheManager.set('null-key', null);
102
+ (0, chai_1.expect)(cacheManager.get('undefined-key')).to.be.undefined;
103
+ (0, chai_1.expect)(cacheManager.get('null-key')).to.be.null;
104
+ (0, chai_1.expect)(cacheManager.has('null-key')).to.be.true;
105
+ });
106
+ it('应该处理复杂对象', function () {
107
+ const complexObject = {
108
+ nested: {
109
+ array: [1, 2, 3],
110
+ func: () => 'test'
111
+ },
112
+ date: new Date(),
113
+ regex: /test/gi
114
+ };
115
+ cacheManager.set('complex', complexObject);
116
+ const retrieved = cacheManager.get('complex');
117
+ (0, chai_1.expect)(retrieved).to.deep.equal(complexObject);
118
+ });
119
+ it('应该处理空字符串键', function () {
120
+ const value = 'empty-key-value';
121
+ cacheManager.set('', value);
122
+ (0, chai_1.expect)(cacheManager.get('')).to.equal(value);
123
+ (0, chai_1.expect)(cacheManager.has('')).to.be.true;
124
+ });
125
+ });
126
+ });
127
+ //# sourceMappingURL=cache-manager.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cache-manager.test.js","sourceRoot":"","sources":["../../../../test/unit/core/cache-manager.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=platform-adapter.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platform-adapter.test.d.ts","sourceRoot":"","sources":["../../../../test/unit/core/platform-adapter.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,186 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const chai_1 = require("chai");
4
+ const platform_adapter_1 = require("../../../src/core/platform-adapter");
5
+ const errors_1 = require("../../../src/types/errors");
6
+ class TestPlatformAdapter extends platform_adapter_1.BasePlatformAdapter {
7
+ constructor() {
8
+ super('test');
9
+ }
10
+ initializeSupportedFeatures() {
11
+ return {
12
+ cpu: { info: true, usage: true, temperature: false, frequency: false, cache: false, perCore: true, cores: true },
13
+ memory: { info: true, usage: true, swap: false, pressure: false, detailed: false, virtual: false },
14
+ disk: { info: true, io: false, health: false, smart: false, filesystem: false, usage: false, stats: false, mounts: false, filesystems: false },
15
+ network: { interfaces: true, stats: true, connections: false, bandwidth: false, gateway: false },
16
+ process: { list: true, details: false, tree: false, monitor: false, info: false, kill: false, openFiles: false, environment: false },
17
+ system: { info: true, load: true, uptime: true, users: false, services: false }
18
+ };
19
+ }
20
+ async executeCommand(command) {
21
+ if (command === 'throw') {
22
+ throw new Error('failed');
23
+ }
24
+ if (command === 'fail') {
25
+ return {
26
+ stdout: '',
27
+ stderr: 'failed',
28
+ exitCode: 1,
29
+ platform: this.getPlatform(),
30
+ executionTime: 5,
31
+ command
32
+ };
33
+ }
34
+ if (command === 'empty') {
35
+ return {
36
+ stdout: '',
37
+ stderr: '',
38
+ exitCode: 0,
39
+ platform: this.getPlatform(),
40
+ executionTime: 1,
41
+ command
42
+ };
43
+ }
44
+ return {
45
+ stdout: 'ok',
46
+ stderr: '',
47
+ exitCode: 0,
48
+ platform: this.getPlatform(),
49
+ executionTime: 1,
50
+ command
51
+ };
52
+ }
53
+ async readFile() { return ''; }
54
+ async fileExists() { return true; }
55
+ async getCPUInfo() { return {}; }
56
+ async getCPUUsage() { return {}; }
57
+ async getCPUTemperature() { return {}; }
58
+ async getMemoryInfo() { return {}; }
59
+ async getMemoryUsage() { return {}; }
60
+ async getDiskInfo() { return {}; }
61
+ async getDiskIO() { return {}; }
62
+ async getNetworkInterfaces() { return {}; }
63
+ async getNetworkStats() { return {}; }
64
+ async getProcesses() { return []; }
65
+ async getProcessInfo() { return {}; }
66
+ async getSystemInfo() { return {}; }
67
+ async getSystemLoad() { return {}; }
68
+ async getDiskUsage() { return {}; }
69
+ async getDiskStats() { return {}; }
70
+ async getMounts() { return {}; }
71
+ async getFileSystems() { return {}; }
72
+ async getNetworkConnections() { return {}; }
73
+ async getDefaultGateway() { return {}; }
74
+ async getProcessList() { return []; }
75
+ async killProcess() { return true; }
76
+ async getProcessOpenFiles() { return []; }
77
+ async getProcessEnvironment() { return {}; }
78
+ async getSystemUptime() { return {}; }
79
+ async getSystemUsers() { return []; }
80
+ async getSystemServices() { return []; }
81
+ safeExecutePublic(command) {
82
+ return this.safeExecute(command);
83
+ }
84
+ validateCommandResultPublic(result) {
85
+ return this.validateCommandResult(result, result.command);
86
+ }
87
+ convertToBytesPublic(value, unit) {
88
+ return this.convertToBytes(value, unit);
89
+ }
90
+ parseKeyValueOutputPublic(output, separator) {
91
+ return this.parseKeyValueOutput(output, separator);
92
+ }
93
+ parseTableOutputPublic(output, hasHeader) {
94
+ return this.parseTableOutput(output, hasHeader);
95
+ }
96
+ splitTableRowPublic(row) {
97
+ return this.splitTableRow(row);
98
+ }
99
+ safeParseJSONPublic(data, fallback) {
100
+ return this.safeParseJSON(data, fallback);
101
+ }
102
+ safeParseNumberPublic(value, fallback) {
103
+ return this.safeParseNumber(value, fallback);
104
+ }
105
+ safeParseIntPublic(value, fallback, radix) {
106
+ return this.safeParseInt(value, fallback, radix);
107
+ }
108
+ }
109
+ describe('BasePlatformAdapter', () => {
110
+ it('isSupported 根据 supportedFeatures 判断功能支持', () => {
111
+ const adapter = new TestPlatformAdapter();
112
+ (0, chai_1.expect)(adapter.isSupported('cpu.info')).to.be.true;
113
+ (0, chai_1.expect)(adapter.isSupported('cpu.temperature')).to.be.false;
114
+ (0, chai_1.expect)(adapter.isSupported('memory.swap')).to.be.false;
115
+ });
116
+ it('getSupportedFeatures 返回浅拷贝', () => {
117
+ const adapter = new TestPlatformAdapter();
118
+ const features = adapter.getSupportedFeatures();
119
+ const featuresAgain = adapter.getSupportedFeatures();
120
+ (0, chai_1.expect)(features).to.not.equal(featuresAgain);
121
+ features.cpu = { ...features.cpu, info: false };
122
+ (0, chai_1.expect)(adapter.isSupported('cpu.info')).to.be.true;
123
+ });
124
+ it('safeExecute 会捕获执行异常并返回失败结果', async () => {
125
+ const adapter = new TestPlatformAdapter();
126
+ const result = await adapter.safeExecutePublic('throw');
127
+ (0, chai_1.expect)(result.exitCode).to.equal(1);
128
+ (0, chai_1.expect)(result.stderr).to.include('failed');
129
+ });
130
+ it('validateCommandResult 遇到非零退出码会抛出错误', () => {
131
+ const adapter = new TestPlatformAdapter();
132
+ (0, chai_1.expect)(() => adapter.validateCommandResultPublic({
133
+ stdout: '',
134
+ stderr: 'failed',
135
+ exitCode: 1,
136
+ platform: 'test',
137
+ executionTime: 1,
138
+ command: 'fail'
139
+ })).to.throw(errors_1.MonitorError);
140
+ });
141
+ it('validateCommandResult 输出为空时抛出错误', () => {
142
+ const adapter = new TestPlatformAdapter();
143
+ (0, chai_1.expect)(() => adapter.validateCommandResultPublic({
144
+ stdout: '',
145
+ stderr: '',
146
+ exitCode: 0,
147
+ platform: 'test',
148
+ executionTime: 1,
149
+ command: 'empty'
150
+ })).to.throw(errors_1.MonitorError);
151
+ });
152
+ it('convertToBytes 可以解析带单位的字符串', () => {
153
+ const adapter = new TestPlatformAdapter();
154
+ (0, chai_1.expect)(adapter.convertToBytesPublic('1 GB')).to.equal(1024 * 1024 * 1024);
155
+ (0, chai_1.expect)(adapter.convertToBytesPublic(2, 'MB')).to.equal(2 * 1024 * 1024);
156
+ });
157
+ it('parseKeyValueOutput 能解析键值对文本', () => {
158
+ const adapter = new TestPlatformAdapter();
159
+ const result = adapter.parseKeyValueOutputPublic('Key: Value\nOther: Data');
160
+ (0, chai_1.expect)(result).to.deep.equal({ Key: 'Value', Other: 'Data' });
161
+ });
162
+ it('parseTableOutput 能按表头映射数据', () => {
163
+ const adapter = new TestPlatformAdapter();
164
+ const table = adapter.parseTableOutputPublic('NAME VALUE\nCPU 20\nMEM 30');
165
+ (0, chai_1.expect)(table).to.deep.equal([
166
+ { NAME: 'CPU', VALUE: '20' },
167
+ { NAME: 'MEM', VALUE: '30' }
168
+ ]);
169
+ });
170
+ it('splitTableRow 可分割多空格分隔的行', () => {
171
+ const adapter = new TestPlatformAdapter();
172
+ (0, chai_1.expect)(adapter.splitTableRowPublic('CPU 20 %')).to.deep.equal(['CPU', '20', '%']);
173
+ });
174
+ it('safeParseJSON 在解析失败时返回 fallback', () => {
175
+ const adapter = new TestPlatformAdapter();
176
+ (0, chai_1.expect)(adapter.safeParseJSONPublic('not json', { ok: false })).to.deep.equal({ ok: false });
177
+ });
178
+ it('safeParseNumber 与 safeParseInt 按需返回默认值', () => {
179
+ const adapter = new TestPlatformAdapter();
180
+ (0, chai_1.expect)(adapter.safeParseNumberPublic('12.5')).to.equal(12.5);
181
+ (0, chai_1.expect)(adapter.safeParseNumberPublic('bad', 3)).to.equal(3);
182
+ (0, chai_1.expect)(adapter.safeParseIntPublic('10', 0, 10)).to.equal(10);
183
+ (0, chai_1.expect)(adapter.safeParseIntPublic('zz', 7, 10)).to.equal(7);
184
+ });
185
+ });
186
+ //# sourceMappingURL=platform-adapter.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platform-adapter.test.js","sourceRoot":"","sources":["../../../../test/unit/core/platform-adapter.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=index.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.test.d.ts","sourceRoot":"","sources":["../../../test/unit/index.test.ts"],"names":[],"mappings":""}