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,183 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ const chai_1 = require("chai");
27
+ const index_1 = __importStar(require("../../src/index"));
28
+ const adapter_factory_1 = require("../../src/adapters/adapter-factory");
29
+ const common_1 = require("../../src/types/common");
30
+ function createAdapterStub() {
31
+ return {
32
+ getPlatform: () => 'test',
33
+ isSupported: () => true,
34
+ executeCommand: async (command) => ({
35
+ stdout: '',
36
+ stderr: '',
37
+ exitCode: 0,
38
+ platform: 'test',
39
+ executionTime: 0,
40
+ command
41
+ }),
42
+ readFile: async () => '',
43
+ fileExists: async () => true,
44
+ getCPUInfo: async () => ({}),
45
+ getCPUUsage: async () => ({}),
46
+ getCPUTemperature: async () => ([]),
47
+ getMemoryInfo: async () => ({}),
48
+ getMemoryUsage: async () => ({}),
49
+ getDiskInfo: async () => ({}),
50
+ getDiskIO: async () => ({}),
51
+ getNetworkInterfaces: async () => ({}),
52
+ getNetworkStats: async () => ({}),
53
+ getProcesses: async () => ([]),
54
+ getProcessInfo: async () => ({}),
55
+ getSystemInfo: async () => ({}),
56
+ getSystemLoad: async () => ({}),
57
+ getDiskUsage: async () => ({}),
58
+ getDiskStats: async () => ({}),
59
+ getMounts: async () => ({}),
60
+ getFileSystems: async () => ({}),
61
+ getNetworkConnections: async () => ({}),
62
+ getDefaultGateway: async () => ({}),
63
+ getProcessList: async () => ([]),
64
+ killProcess: async () => true,
65
+ getProcessOpenFiles: async () => ([]),
66
+ getProcessEnvironment: async () => ({}),
67
+ getSystemUptime: async () => ({}),
68
+ getSystemUsers: async () => ([]),
69
+ getSystemServices: async () => ([]),
70
+ getSupportedFeatures: () => ({
71
+ cpu: { info: true, usage: true, temperature: true, frequency: true, cache: true, perCore: true, cores: true },
72
+ memory: { info: true, usage: true, swap: true, pressure: true, detailed: true, virtual: true },
73
+ disk: { info: true, io: true, health: true, smart: true, filesystem: true, usage: true, stats: true, mounts: true, filesystems: true },
74
+ network: { interfaces: true, stats: true, connections: true, bandwidth: true, gateway: true },
75
+ process: { list: true, details: true, tree: true, monitor: true, info: true, kill: true, openFiles: true, environment: true },
76
+ system: { info: true, load: true, uptime: true, users: true, services: true }
77
+ })
78
+ };
79
+ }
80
+ function makeSuccessResult(data) {
81
+ return {
82
+ success: true,
83
+ data,
84
+ timestamp: Date.now(),
85
+ cached: false,
86
+ platform: 'test'
87
+ };
88
+ }
89
+ describe('OSUtils 入口类', () => {
90
+ const originalCreate = adapter_factory_1.AdapterFactory.create;
91
+ beforeEach(() => {
92
+ adapter_factory_1.AdapterFactory.create = () => createAdapterStub();
93
+ adapter_factory_1.AdapterFactory.clearCache();
94
+ });
95
+ afterEach(() => {
96
+ adapter_factory_1.AdapterFactory.create = originalCreate;
97
+ adapter_factory_1.AdapterFactory.clearCache();
98
+ });
99
+ it('cpu/内存等监控器按需懒加载并复用实例', () => {
100
+ const utils = new index_1.OSUtils({ platform: 'test' });
101
+ const cpu1 = utils.cpu;
102
+ const cpu2 = utils.cpu;
103
+ const memory = utils.memory;
104
+ (0, chai_1.expect)(cpu1).to.equal(cpu2);
105
+ (0, chai_1.expect)(memory).to.not.equal(cpu1);
106
+ });
107
+ it('configureCache 会重建缓存并重置监控器实例', () => {
108
+ const utils = new index_1.OSUtils({ platform: 'test' });
109
+ const firstCpu = utils.cpu;
110
+ utils.configureCache({ maxSize: 5, defaultTTL: 200 });
111
+ const stats = utils.getCacheStats();
112
+ (0, chai_1.expect)(stats?.maxSize).to.equal(5);
113
+ const secondCpu = utils.cpu;
114
+ (0, chai_1.expect)(secondCpu).to.not.equal(firstCpu);
115
+ });
116
+ it('overview 聚合各监控器返回的数据', async () => {
117
+ const utils = new index_1.OSUtils({ platform: 'test' });
118
+ utils._system = {
119
+ info: () => Promise.resolve(makeSuccessResult({ hostname: 'test-host' })),
120
+ destroy: () => undefined
121
+ };
122
+ utils._cpu = {
123
+ usage: () => Promise.resolve(makeSuccessResult(42)),
124
+ destroy: () => undefined
125
+ };
126
+ utils._memory = {
127
+ summary: () => Promise.resolve(makeSuccessResult({ total: '16 GB' })),
128
+ destroy: () => undefined
129
+ };
130
+ utils._disk = {
131
+ spaceOverview: () => Promise.resolve(makeSuccessResult({ free: '100 GB' })),
132
+ healthCheck: () => Promise.resolve(makeSuccessResult({ status: 'healthy', issues: [] })),
133
+ destroy: () => undefined
134
+ };
135
+ utils._network = {
136
+ overview: () => Promise.resolve(makeSuccessResult({
137
+ interfaces: 3,
138
+ activeInterfaces: 2,
139
+ totalRxBytes: new common_1.DataSize(1024),
140
+ totalTxBytes: new common_1.DataSize(2048),
141
+ totalPackets: 500,
142
+ totalErrors: 1
143
+ })),
144
+ healthCheck: () => Promise.resolve(makeSuccessResult({ status: 'warning', issues: ['latency'] })),
145
+ destroy: () => undefined
146
+ };
147
+ utils._process = {
148
+ stats: () => Promise.resolve(makeSuccessResult({ running: 120 })),
149
+ destroy: () => undefined
150
+ };
151
+ const overview = await utils.overview();
152
+ (0, chai_1.expect)(overview.system?.hostname).to.equal('test-host');
153
+ (0, chai_1.expect)(overview.cpu?.usage).to.equal(42);
154
+ (0, chai_1.expect)(overview.network?.totalErrors).to.equal(1);
155
+ (0, chai_1.expect)(overview.processes?.running).to.equal(120);
156
+ });
157
+ it('healthCheck 汇总健康状态并计算总体结果', async () => {
158
+ const utils = new index_1.OSUtils({ platform: 'test' });
159
+ utils._system = {
160
+ info: () => Promise.resolve(makeSuccessResult({})),
161
+ healthCheck: () => Promise.resolve(makeSuccessResult({ status: 'healthy', issues: [] })),
162
+ destroy: () => undefined
163
+ };
164
+ utils._disk = {
165
+ healthCheck: () => Promise.resolve(makeSuccessResult({ status: 'critical', issues: ['disk failure'] })),
166
+ destroy: () => undefined
167
+ };
168
+ utils._network = {
169
+ healthCheck: () => Promise.resolve(makeSuccessResult({ status: 'warning', issues: ['latency'] })),
170
+ destroy: () => undefined
171
+ };
172
+ const health = await utils.healthCheck();
173
+ (0, chai_1.expect)(health.status).to.equal('critical');
174
+ (0, chai_1.expect)(health.issues).to.include('disk failure');
175
+ (0, chai_1.expect)(health.details?.network?.status).to.equal('warning');
176
+ });
177
+ it('createOSUtils 工厂函数返回 OSUtils 实例', () => {
178
+ const instance = (0, index_1.createOSUtils)({ platform: 'test', debug: true });
179
+ (0, chai_1.expect)(instance).to.be.instanceOf(index_1.OSUtils);
180
+ (0, chai_1.expect)(index_1.default).to.equal(index_1.OSUtils);
181
+ });
182
+ });
183
+ //# sourceMappingURL=index.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.test.js","sourceRoot":"","sources":["../../../test/unit/index.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=cpu-monitor.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cpu-monitor.test.d.ts","sourceRoot":"","sources":["../../../../test/unit/monitors/cpu-monitor.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,166 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const chai_1 = require("chai");
4
+ const cpu_monitor_1 = require("../../../src/monitors/cpu-monitor");
5
+ const common_1 = require("../../../src/types/common");
6
+ describe('CPUMonitor', () => {
7
+ const cpuInfoRaw = {
8
+ model: 'Test CPU',
9
+ manufacturer: 'TestVendor',
10
+ architecture: 'arm64',
11
+ cores: 4,
12
+ threads: 8,
13
+ baseFrequency: 2400,
14
+ maxFrequency: 3200,
15
+ cache: {
16
+ l1d: 64 * 1024,
17
+ l2: 512 * 1024
18
+ },
19
+ features: ['neon'],
20
+ vendorId: 'VND',
21
+ family: 6,
22
+ modelNumber: 158,
23
+ stepping: 10
24
+ };
25
+ const cpuUsageRaw = {
26
+ overall: '50',
27
+ cores: ['40', '60'],
28
+ user: '30',
29
+ system: '15',
30
+ idle: '55',
31
+ iowait: '5',
32
+ irq: '0',
33
+ softirq: '0'
34
+ };
35
+ const loadRaw = { load1: '0.5', load5: '0.8', load15: '1.1' };
36
+ const temperatureRaw = [{ temperature: '45.5' }, { temp: '50.1' }];
37
+ let cpuInfoCalls = 0;
38
+ let cpuUsageCalls = 0;
39
+ let temperatureCalls = 0;
40
+ function createAdapter() {
41
+ cpuInfoCalls = 0;
42
+ cpuUsageCalls = 0;
43
+ temperatureCalls = 0;
44
+ return {
45
+ getPlatform: () => 'darwin',
46
+ isSupported: (feature) => !feature.includes('disabled'),
47
+ executeCommand: async () => ({ stdout: '', stderr: '', exitCode: 0, platform: 'darwin', executionTime: 0, command: '' }),
48
+ readFile: async () => '',
49
+ fileExists: async () => true,
50
+ getCPUInfo: async () => {
51
+ cpuInfoCalls += 1;
52
+ return cpuInfoRaw;
53
+ },
54
+ getCPUUsage: async () => {
55
+ cpuUsageCalls += 1;
56
+ return cpuUsageRaw;
57
+ },
58
+ getCPUTemperature: async () => {
59
+ temperatureCalls += 1;
60
+ return temperatureRaw;
61
+ },
62
+ getMemoryInfo: async () => ({}),
63
+ getMemoryUsage: async () => ({}),
64
+ getDiskInfo: async () => ({}),
65
+ getDiskIO: async () => ({}),
66
+ getNetworkInterfaces: async () => ({}),
67
+ getNetworkStats: async () => ({}),
68
+ getProcesses: async () => ([]),
69
+ getProcessInfo: async () => ({}),
70
+ getSystemInfo: async () => ({}),
71
+ getSystemLoad: async () => loadRaw,
72
+ getDiskUsage: async () => ({}),
73
+ getDiskStats: async () => ({}),
74
+ getMounts: async () => ({}),
75
+ getFileSystems: async () => ({}),
76
+ getNetworkConnections: async () => ({}),
77
+ getDefaultGateway: async () => ({}),
78
+ getProcessList: async () => ([]),
79
+ killProcess: async () => true,
80
+ getProcessOpenFiles: async () => ([]),
81
+ getProcessEnvironment: async () => ({}),
82
+ getSystemUptime: async () => ({}),
83
+ getSystemUsers: async () => ([]),
84
+ getSystemServices: async () => ([]),
85
+ getSupportedFeatures: () => ({
86
+ cpu: { info: true, usage: true, temperature: true, frequency: true, cache: true, perCore: true, cores: true },
87
+ memory: { info: true, usage: true, swap: true, pressure: true, detailed: true, virtual: true },
88
+ disk: { info: true, io: true, health: true, smart: true, filesystem: true, usage: true, stats: true, mounts: true, filesystems: true },
89
+ network: { interfaces: true, stats: true, connections: true, bandwidth: true, gateway: true },
90
+ process: { list: true, details: true, tree: true, monitor: true, info: true, kill: true, openFiles: true, environment: true },
91
+ system: { info: true, load: true, uptime: true, users: true, services: true }
92
+ })
93
+ };
94
+ }
95
+ it('info 会转换 CPU 基本信息并缓存结果', async () => {
96
+ const monitor = new cpu_monitor_1.CPUMonitor(createAdapter());
97
+ const first = await monitor.info();
98
+ if (!first.success) {
99
+ throw new Error('expected success');
100
+ }
101
+ const firstData = first.data;
102
+ (0, chai_1.expect)(first.cached).to.be.false;
103
+ (0, chai_1.expect)(firstData.model).to.equal('Test CPU');
104
+ (0, chai_1.expect)(firstData.cache.l1d).to.be.instanceOf(common_1.DataSize);
105
+ (0, chai_1.expect)(firstData.cache.l1d.toBytes()).to.equal(64 * 1024);
106
+ const second = await monitor.info();
107
+ if (!second.success) {
108
+ throw new Error('expected success');
109
+ }
110
+ (0, chai_1.expect)(second.cached).to.be.true;
111
+ (0, chai_1.expect)(cpuInfoCalls).to.equal(1);
112
+ });
113
+ it('usageDetailed 返回解析后的使用率数据', async () => {
114
+ const monitor = new cpu_monitor_1.CPUMonitor(createAdapter());
115
+ const result = await monitor.usageDetailed();
116
+ if (!result.success) {
117
+ throw new Error('expected success');
118
+ }
119
+ const data = result.data;
120
+ (0, chai_1.expect)(data.overall).to.equal(50);
121
+ (0, chai_1.expect)(data.cores).to.deep.equal(['40', '60']);
122
+ (0, chai_1.expect)(cpuUsageCalls).to.equal(1);
123
+ });
124
+ it('temperature 在配置启用后返回温度信息', async () => {
125
+ const monitor = new cpu_monitor_1.CPUMonitor(createAdapter());
126
+ const disabled = await monitor.temperature();
127
+ (0, chai_1.expect)(disabled.success).to.be.false;
128
+ monitor.withTemperature(true);
129
+ const enabled = await monitor.temperature();
130
+ if (!enabled.success) {
131
+ throw new Error('expected success');
132
+ }
133
+ const temperature = enabled.data;
134
+ (0, chai_1.expect)(temperature).to.deep.equal([45.5, 50.1]);
135
+ (0, chai_1.expect)(temperatureCalls).to.equal(1);
136
+ });
137
+ it('frequency 返回基础与最大频率信息', async () => {
138
+ const monitor = new cpu_monitor_1.CPUMonitor(createAdapter());
139
+ const result = await monitor.frequency();
140
+ if (!result.success) {
141
+ throw new Error('expected success');
142
+ }
143
+ const data = result.data;
144
+ (0, chai_1.expect)(data.map(item => item.type)).to.include.members(['base', 'max']);
145
+ });
146
+ it('coreCount 返回物理与逻辑核心', async () => {
147
+ const monitor = new cpu_monitor_1.CPUMonitor(createAdapter());
148
+ const result = await monitor.coreCount();
149
+ if (!result.success) {
150
+ throw new Error('expected success');
151
+ }
152
+ const data = result.data;
153
+ (0, chai_1.expect)(data.physical).to.equal(4);
154
+ (0, chai_1.expect)(data.logical).to.equal(8);
155
+ });
156
+ it('loadAverage 返回转换后的负载信息', async () => {
157
+ const monitor = new cpu_monitor_1.CPUMonitor(createAdapter());
158
+ const result = await monitor.loadAverage();
159
+ if (!result.success) {
160
+ throw new Error('expected success');
161
+ }
162
+ const data = result.data;
163
+ (0, chai_1.expect)(data).to.deep.equal({ load1: 0.5, load5: 0.8, load15: 1.1 });
164
+ });
165
+ });
166
+ //# sourceMappingURL=cpu-monitor.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cpu-monitor.test.js","sourceRoot":"","sources":["../../../../test/unit/monitors/cpu-monitor.test.ts"],"names":[],"mappings":";;AAAA,+BAA8B;AAE9B,mEAA+D;AAE/D,sDAAqD;AAErD,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;IAC1B,MAAM,UAAU,GAAG;QACjB,KAAK,EAAE,UAAU;QACjB,YAAY,EAAE,YAAY;QAC1B,YAAY,EAAE,OAAO;QACrB,KAAK,EAAE,CAAC;QACR,OAAO,EAAE,CAAC;QACV,aAAa,EAAE,IAAI;QACnB,YAAY,EAAE,IAAI;QAClB,KAAK,EAAE;YACL,GAAG,EAAE,EAAE,GAAG,IAAI;YACd,EAAE,EAAE,GAAG,GAAG,IAAI;SACf;QACD,QAAQ,EAAE,CAAC,MAAM,CAAC;QAClB,QAAQ,EAAE,KAAK;QACf,MAAM,EAAE,CAAC;QACT,WAAW,EAAE,GAAG;QAChB,QAAQ,EAAE,EAAE;KACb,CAAC;IAEF,MAAM,WAAW,GAAG;QAClB,OAAO,EAAE,IAAI;QACb,KAAK,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACnB,IAAI,EAAE,IAAI;QACV,MAAM,EAAE,IAAI;QACZ,IAAI,EAAE,IAAI;QACV,MAAM,EAAE,GAAG;QACX,GAAG,EAAE,GAAG;QACR,OAAO,EAAE,GAAG;KACb,CAAC;IAEF,MAAM,OAAO,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IAC9D,MAAM,cAAc,GAAG,CAAC,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;IAEnE,IAAI,YAAY,GAAG,CAAC,CAAC;IACrB,IAAI,aAAa,GAAG,CAAC,CAAC;IACtB,IAAI,gBAAgB,GAAG,CAAC,CAAC;IAEzB,SAAS,aAAa;QACpB,YAAY,GAAG,CAAC,CAAC;QACjB,aAAa,GAAG,CAAC,CAAC;QAClB,gBAAgB,GAAG,CAAC,CAAC;QAErB,OAAO;YACL,WAAW,EAAE,GAAG,EAAE,CAAC,QAAQ;YAC3B,WAAW,EAAE,CAAC,OAAe,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC;YAC/D,cAAc,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,aAAa,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;YACxH,QAAQ,EAAE,KAAK,IAAI,EAAE,CAAC,EAAE;YACxB,UAAU,EAAE,KAAK,IAAI,EAAE,CAAC,IAAI;YAC5B,UAAU,EAAE,KAAK,IAAI,EAAE;gBACrB,YAAY,IAAI,CAAC,CAAC;gBAClB,OAAO,UAAU,CAAC;YACpB,CAAC;YACD,WAAW,EAAE,KAAK,IAAI,EAAE;gBACtB,aAAa,IAAI,CAAC,CAAC;gBACnB,OAAO,WAAW,CAAC;YACrB,CAAC;YACD,iBAAiB,EAAE,KAAK,IAAI,EAAE;gBAC5B,gBAAgB,IAAI,CAAC,CAAC;gBACtB,OAAO,cAAc,CAAC;YACxB,CAAC;YACD,aAAa,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;YAC/B,cAAc,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;YAChC,WAAW,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;YAC7B,SAAS,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;YAC3B,oBAAoB,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;YACtC,eAAe,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;YACjC,YAAY,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;YAC9B,cAAc,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;YAChC,aAAa,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;YAC/B,aAAa,EAAE,KAAK,IAAI,EAAE,CAAC,OAAO;YAClC,YAAY,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;YAC9B,YAAY,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;YAC9B,SAAS,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;YAC3B,cAAc,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;YAChC,qBAAqB,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;YACvC,iBAAiB,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;YACnC,cAAc,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;YAChC,WAAW,EAAE,KAAK,IAAI,EAAE,CAAC,IAAI;YAC7B,mBAAmB,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;YACrC,qBAAqB,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;YACvC,eAAe,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;YACjC,cAAc,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;YAChC,iBAAiB,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;YACnC,oBAAoB,EAAE,GAAG,EAAE,CAAC,CAAC;gBAC3B,GAAG,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE;gBAC7G,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE;gBAC9F,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE;gBACtI,OAAO,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE;gBAC7F,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE;gBAC7H,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE;aAC9E,CAAC;SACgB,CAAC;IACvB,CAAC;IAED,EAAE,CAAC,wBAAwB,EAAE,KAAK,IAAI,EAAE;QACtC,MAAM,OAAO,GAAG,IAAI,wBAAU,CAAC,aAAa,EAAE,CAAC,CAAC;QAChD,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC;QACnC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;QACtC,CAAC;QACD,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC;QAC7B,IAAA,aAAM,EAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;QACjC,IAAA,aAAM,EAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAC7C,IAAA,aAAM,EAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,iBAAQ,CAAC,CAAC;QACvD,IAAA,aAAM,EAAE,SAAS,CAAC,KAAK,CAAC,GAAgB,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC;QAExE,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC;QACpC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;QACtC,CAAC;QACD,IAAA,aAAM,EAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;QACjC,IAAA,aAAM,EAAC,YAAY,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2BAA2B,EAAE,KAAK,IAAI,EAAE;QACzC,MAAM,OAAO,GAAG,IAAI,wBAAU,CAAC,aAAa,EAAE,CAAC,CAAC;QAChD,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,aAAa,EAAE,CAAC;QAC7C,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;QACtC,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;QACzB,IAAA,aAAM,EAAC,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAClC,IAAA,aAAM,EAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;QAC/C,IAAA,aAAM,EAAC,aAAa,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0BAA0B,EAAE,KAAK,IAAI,EAAE;QACxC,MAAM,OAAO,GAAG,IAAI,wBAAU,CAAC,aAAa,EAAE,CAAC,CAAC;QAEhD,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,WAAW,EAAE,CAAC;QAC7C,IAAA,aAAM,EAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;QAErC,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QAC9B,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,WAAW,EAAE,CAAC;QAC5C,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;QACtC,CAAC;QACD,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;QACjC,IAAA,aAAM,EAAC,WAAW,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;QAChD,IAAA,aAAM,EAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uBAAuB,EAAE,KAAK,IAAI,EAAE;QACrC,MAAM,OAAO,GAAG,IAAI,wBAAU,CAAC,aAAa,EAAE,CAAC,CAAC;QAChD,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,SAAS,EAAE,CAAC;QACzC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;QACtC,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;QACzB,IAAA,aAAM,EAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;IAC1E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qBAAqB,EAAE,KAAK,IAAI,EAAE;QACnC,MAAM,OAAO,GAAG,IAAI,wBAAU,CAAC,aAAa,EAAE,CAAC,CAAC;QAChD,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,SAAS,EAAE,CAAC;QACzC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;QACtC,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;QACzB,IAAA,aAAM,EAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAClC,IAAA,aAAM,EAAC,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wBAAwB,EAAE,KAAK,IAAI,EAAE;QACtC,MAAM,OAAO,GAAG,IAAI,wBAAU,CAAC,aAAa,EAAE,CAAC,CAAC;QAChD,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,WAAW,EAAE,CAAC;QAC3C,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;QACtC,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;QACzB,IAAA,aAAM,EAAC,IAAI,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;IACtE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=disk-monitor.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"disk-monitor.test.d.ts","sourceRoot":"","sources":["../../../../test/unit/monitors/disk-monitor.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const chai_1 = require("chai");
4
+ const disk_monitor_1 = require("../../../src/monitors/disk-monitor");
5
+ describe('DiskMonitor 数据转换', () => {
6
+ it('应在指定挂载点配置下保留 mountPoint 字段的磁盘', () => {
7
+ const monitor = new disk_monitor_1.DiskMonitor({});
8
+ monitor.withMountPoints(['/data']);
9
+ const result = monitor.transformDiskUsage([
10
+ {
11
+ device: '/dev/sda1',
12
+ mountPoint: '/data',
13
+ filesystem: 'ext4',
14
+ total: 1024,
15
+ used: 512,
16
+ available: 512
17
+ },
18
+ {
19
+ device: '/dev/sdb1',
20
+ mountPoint: '/mnt',
21
+ filesystem: 'ext4',
22
+ total: 2048,
23
+ used: 1024,
24
+ available: 1024
25
+ }
26
+ ]);
27
+ (0, chai_1.expect)(result).to.have.lengthOf(1);
28
+ (0, chai_1.expect)(result[0].mountpoint).to.equal('/data');
29
+ });
30
+ it('应使用 readSectors/writeSectors 计算 I/O 字节数', () => {
31
+ const monitor = new disk_monitor_1.DiskMonitor({});
32
+ const stats = monitor.transformDiskStats([
33
+ {
34
+ device: 'sda',
35
+ reads: 10,
36
+ writes: 5,
37
+ readSectors: 8,
38
+ writeSectors: 4
39
+ }
40
+ ]);
41
+ (0, chai_1.expect)(stats).to.have.lengthOf(1);
42
+ (0, chai_1.expect)(stats[0].readBytes.toBytes()).to.equal(8 * 512);
43
+ (0, chai_1.expect)(stats[0].writeBytes.toBytes()).to.equal(4 * 512);
44
+ });
45
+ });
46
+ //# sourceMappingURL=disk-monitor.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"disk-monitor.test.js","sourceRoot":"","sources":["../../../../test/unit/monitors/disk-monitor.test.ts"],"names":[],"mappings":";;AAAA,+BAA8B;AAE9B,qEAAiE;AAEjE,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;IAChC,EAAE,CAAC,+BAA+B,EAAE,GAAG,EAAE;QACvC,MAAM,OAAO,GAAG,IAAI,0BAAW,CAAC,EAAS,CAAC,CAAC;QAC3C,OAAO,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;QAEnC,MAAM,MAAM,GAAI,OAAe,CAAC,kBAAkB,CAAC;YACjD;gBACE,MAAM,EAAE,WAAW;gBACnB,UAAU,EAAE,OAAO;gBACnB,UAAU,EAAE,MAAM;gBAClB,KAAK,EAAE,IAAI;gBACX,IAAI,EAAE,GAAG;gBACT,SAAS,EAAE,GAAG;aACf;YACD;gBACE,MAAM,EAAE,WAAW;gBACnB,UAAU,EAAE,MAAM;gBAClB,UAAU,EAAE,MAAM;gBAClB,KAAK,EAAE,IAAI;gBACX,IAAI,EAAE,IAAI;gBACV,SAAS,EAAE,IAAI;aAChB;SACF,CAAC,CAAC;QAEH,IAAA,aAAM,EAAC,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QACnC,IAAA,aAAM,EAAC,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;QACjD,MAAM,OAAO,GAAG,IAAI,0BAAW,CAAC,EAAS,CAAC,CAAC;QAE3C,MAAM,KAAK,GAAI,OAAe,CAAC,kBAAkB,CAAC;YAChD;gBACE,MAAM,EAAE,KAAK;gBACb,KAAK,EAAE,EAAE;gBACT,MAAM,EAAE,CAAC;gBACT,WAAW,EAAE,CAAC;gBACd,YAAY,EAAE,CAAC;aAChB;SACF,CAAC,CAAC;QAEH,IAAA,aAAM,EAAC,KAAK,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAClC,IAAA,aAAM,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;QACvD,IAAA,aAAM,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;IAC1D,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=memory-monitor.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory-monitor.test.d.ts","sourceRoot":"","sources":["../../../../test/unit/monitors/memory-monitor.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,142 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const chai_1 = require("chai");
4
+ const memory_monitor_1 = require("../../../src/monitors/memory-monitor");
5
+ const common_1 = require("../../../src/types/common");
6
+ describe('MemoryMonitor', () => {
7
+ const GB = 1024 * 1024 * 1024;
8
+ const memoryRaw = {
9
+ total: 16 * GB,
10
+ available: 8 * GB,
11
+ free: 6 * GB,
12
+ used: 8 * GB,
13
+ cached: 2 * GB,
14
+ buffers: 256 * 1024 * 1024,
15
+ shared: 512 * 1024 * 1024,
16
+ reclaimable: 128 * 1024 * 1024,
17
+ pressure: { level: 'medium', score: 55 },
18
+ swap: {
19
+ total: 4 * GB,
20
+ used: 1 * GB,
21
+ swapIn: 100,
22
+ swapOut: 200
23
+ },
24
+ active: 1 * GB,
25
+ inactive: 2 * GB,
26
+ wired: 512 * 1024 * 1024,
27
+ compressed: 256 * 1024 * 1024,
28
+ kernel: 128 * 1024 * 1024,
29
+ drivers: 64 * 1024 * 1024
30
+ };
31
+ let memoryInfoCalls = 0;
32
+ function createAdapter() {
33
+ memoryInfoCalls = 0;
34
+ return {
35
+ getPlatform: () => 'linux',
36
+ isSupported: (feature) => !feature.includes('disabled'),
37
+ executeCommand: async () => ({ stdout: '', stderr: '', exitCode: 0, platform: 'linux', executionTime: 0, command: '' }),
38
+ readFile: async () => '',
39
+ fileExists: async () => true,
40
+ getCPUInfo: async () => ({}),
41
+ getCPUUsage: async () => ({}),
42
+ getCPUTemperature: async () => ([]),
43
+ getMemoryInfo: async () => {
44
+ memoryInfoCalls += 1;
45
+ return memoryRaw;
46
+ },
47
+ getMemoryUsage: async () => ({}),
48
+ getDiskInfo: async () => ({}),
49
+ getDiskIO: async () => ({}),
50
+ getNetworkInterfaces: async () => ({}),
51
+ getNetworkStats: async () => ({}),
52
+ getProcesses: async () => ([]),
53
+ getProcessInfo: async () => ({}),
54
+ getSystemInfo: async () => ({}),
55
+ getSystemLoad: async () => ({}),
56
+ getDiskUsage: async () => ({}),
57
+ getDiskStats: async () => ({}),
58
+ getMounts: async () => ({}),
59
+ getFileSystems: async () => ({}),
60
+ getNetworkConnections: async () => ({}),
61
+ getDefaultGateway: async () => ({}),
62
+ getProcessList: async () => ([]),
63
+ killProcess: async () => true,
64
+ getProcessOpenFiles: async () => ([]),
65
+ getProcessEnvironment: async () => ({}),
66
+ getSystemUptime: async () => ({}),
67
+ getSystemUsers: async () => ([]),
68
+ getSystemServices: async () => ([]),
69
+ getSupportedFeatures: () => ({
70
+ cpu: { info: true, usage: true, temperature: true, frequency: true, cache: true, perCore: true, cores: true },
71
+ memory: { info: true, usage: true, swap: true, pressure: true, detailed: true, virtual: true },
72
+ disk: { info: true, io: true, health: true, smart: true, filesystem: true, usage: true, stats: true, mounts: true, filesystems: true },
73
+ network: { interfaces: true, stats: true, connections: true, bandwidth: true, gateway: true },
74
+ process: { list: true, details: true, tree: true, monitor: true, info: true, kill: true, openFiles: true, environment: true },
75
+ system: { info: true, load: true, uptime: true, users: true, services: true }
76
+ })
77
+ };
78
+ }
79
+ it('info 会转换内存信息并缓存', async () => {
80
+ const monitor = new memory_monitor_1.MemoryMonitor(createAdapter());
81
+ const first = await monitor.info();
82
+ if (!first.success) {
83
+ throw new Error('expected success');
84
+ }
85
+ const firstData = first.data;
86
+ (0, chai_1.expect)(first.cached).to.be.false;
87
+ (0, chai_1.expect)(firstData.total).to.be.instanceOf(common_1.DataSize);
88
+ (0, chai_1.expect)(firstData.total.toBytes()).to.equal(16 * GB);
89
+ const second = await monitor.info();
90
+ if (!second.success) {
91
+ throw new Error('expected success');
92
+ }
93
+ (0, chai_1.expect)(second.cached).to.be.true;
94
+ (0, chai_1.expect)(memoryInfoCalls).to.equal(1);
95
+ });
96
+ it('usage 返回内存使用率百分比', async () => {
97
+ const monitor = new memory_monitor_1.MemoryMonitor(createAdapter());
98
+ const result = await monitor.usage();
99
+ if (!result.success) {
100
+ throw new Error('expected success');
101
+ }
102
+ const data = result.data;
103
+ (0, chai_1.expect)(data).to.equal(50);
104
+ });
105
+ it('swap 在禁用时返回错误,启用时返回详情', async () => {
106
+ const monitor = new memory_monitor_1.MemoryMonitor(createAdapter());
107
+ monitor.withSwap(false);
108
+ const disabled = await monitor.swap();
109
+ (0, chai_1.expect)(disabled.success).to.be.false;
110
+ monitor.withSwap(true);
111
+ const enabled = await monitor.swap();
112
+ if (!enabled.success) {
113
+ throw new Error('expected success');
114
+ }
115
+ const swap = enabled.data;
116
+ (0, chai_1.expect)(swap.total.toBytes()).to.equal(4 * GB);
117
+ (0, chai_1.expect)(swap.swapIn).to.equal(100);
118
+ });
119
+ it('pressure 在启用后使用原始数据中的压力信息', async () => {
120
+ const monitor = new memory_monitor_1.MemoryMonitor(createAdapter());
121
+ monitor.withPressure(true);
122
+ const result = await monitor.pressure();
123
+ if (!result.success) {
124
+ throw new Error('expected success');
125
+ }
126
+ const pressure = result.data;
127
+ (0, chai_1.expect)(pressure.level).to.equal('medium');
128
+ (0, chai_1.expect)(pressure.score).to.equal(55);
129
+ });
130
+ it('summary 返回格式化后的摘要数据', async () => {
131
+ const monitor = new memory_monitor_1.MemoryMonitor(createAdapter());
132
+ monitor.withUnit('GB');
133
+ const result = await monitor.summary();
134
+ if (!result.success) {
135
+ throw new Error('expected success');
136
+ }
137
+ const summary = result.data;
138
+ (0, chai_1.expect)(summary.total).to.match(/GB$/);
139
+ (0, chai_1.expect)(summary.swap.usagePercentage).to.be.a('number');
140
+ });
141
+ });
142
+ //# sourceMappingURL=memory-monitor.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory-monitor.test.js","sourceRoot":"","sources":["../../../../test/unit/monitors/memory-monitor.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=network-monitor.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"network-monitor.test.d.ts","sourceRoot":"","sources":["../../../../test/unit/monitors/network-monitor.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const chai_1 = require("chai");
4
+ const network_monitor_1 = require("../../../src/monitors/network-monitor");
5
+ describe('NetworkMonitor 网关与接口转换', () => {
6
+ const monitor = new network_monitor_1.NetworkMonitor({});
7
+ it('应保留无显式网关但存在接口的默认路由', () => {
8
+ const result = monitor.transformGatewayInfo({
9
+ gateway: null,
10
+ interface: 'ppp0'
11
+ });
12
+ (0, chai_1.expect)(result).to.deep.equal({ gateway: null, interface: 'ppp0' });
13
+ });
14
+ it('应兼容 iface/device 字段并返回可用接口名', () => {
15
+ const result = monitor.transformGatewayInfo({
16
+ iface: 'eth0',
17
+ address: '192.168.0.1'
18
+ });
19
+ (0, chai_1.expect)(result).to.deep.equal({ gateway: '192.168.0.1', interface: 'eth0' });
20
+ });
21
+ });
22
+ //# sourceMappingURL=network-monitor.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"network-monitor.test.js","sourceRoot":"","sources":["../../../../test/unit/monitors/network-monitor.test.ts"],"names":[],"mappings":";;AAAA,+BAA8B;AAE9B,2EAAuE;AAEvE,QAAQ,CAAC,wBAAwB,EAAE,GAAG,EAAE;IACtC,MAAM,OAAO,GAAG,IAAI,gCAAc,CAAC,EAAS,CAAC,CAAC;IAE9C,EAAE,CAAC,oBAAoB,EAAE,GAAG,EAAE;QAC5B,MAAM,MAAM,GAAI,OAAe,CAAC,oBAAoB,CAAC;YACnD,OAAO,EAAE,IAAI;YACb,SAAS,EAAE,MAAM;SAClB,CAAC,CAAC;QAEH,IAAA,aAAM,EAAC,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC;IACrE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6BAA6B,EAAE,GAAG,EAAE;QACrC,MAAM,MAAM,GAAI,OAAe,CAAC,oBAAoB,CAAC;YACnD,KAAK,EAAE,MAAM;YACb,OAAO,EAAE,aAAa;SACvB,CAAC,CAAC;QAEH,IAAA,aAAM,EAAC,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC;IAC9E,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}