node-os-utils 2.0.2 → 2.0.4

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 (147) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/README-zh.md +1291 -0
  3. package/README.md +28 -2
  4. package/dist/package.json +4 -2
  5. package/dist/src/adapters/linux-adapter.d.ts +17 -4
  6. package/dist/src/adapters/linux-adapter.d.ts.map +1 -1
  7. package/dist/src/adapters/linux-adapter.js +37 -12
  8. package/dist/src/adapters/linux-adapter.js.map +1 -1
  9. package/dist/src/adapters/macos-adapter.d.ts +17 -4
  10. package/dist/src/adapters/macos-adapter.d.ts.map +1 -1
  11. package/dist/src/adapters/macos-adapter.js +28 -11
  12. package/dist/src/adapters/macos-adapter.js.map +1 -1
  13. package/dist/src/adapters/windows-adapter.d.ts +13 -2
  14. package/dist/src/adapters/windows-adapter.d.ts.map +1 -1
  15. package/dist/src/adapters/windows-adapter.js +26 -3
  16. package/dist/src/adapters/windows-adapter.js.map +1 -1
  17. package/dist/src/monitors/cpu-monitor.d.ts.map +1 -1
  18. package/dist/src/monitors/cpu-monitor.js +7 -2
  19. package/dist/src/monitors/cpu-monitor.js.map +1 -1
  20. package/dist/src/monitors/process-monitor.d.ts +17 -4
  21. package/dist/src/monitors/process-monitor.d.ts.map +1 -1
  22. package/dist/src/monitors/process-monitor.js +30 -4
  23. package/dist/src/monitors/process-monitor.js.map +1 -1
  24. package/dist/src/types/config.d.ts +7 -0
  25. package/dist/src/types/config.d.ts.map +1 -1
  26. package/dist/src/utils/process-killer.d.ts +38 -0
  27. package/dist/src/utils/process-killer.d.ts.map +1 -0
  28. package/dist/src/utils/process-killer.js +96 -0
  29. package/dist/src/utils/process-killer.js.map +1 -0
  30. package/package.json +4 -2
  31. package/dist/.tsbuildinfo +0 -1
  32. package/dist/test/config/test-config.d.ts +0 -301
  33. package/dist/test/config/test-config.d.ts.map +0 -1
  34. package/dist/test/config/test-config.js +0 -235
  35. package/dist/test/config/test-config.js.map +0 -1
  36. package/dist/test/platform/linux.test.d.ts +0 -6
  37. package/dist/test/platform/linux.test.d.ts.map +0 -1
  38. package/dist/test/platform/linux.test.js +0 -307
  39. package/dist/test/platform/linux.test.js.map +0 -1
  40. package/dist/test/platform/macos.test.d.ts +0 -6
  41. package/dist/test/platform/macos.test.d.ts.map +0 -1
  42. package/dist/test/platform/macos.test.js +0 -276
  43. package/dist/test/platform/macos.test.js.map +0 -1
  44. package/dist/test/platform/windows.test.d.ts +0 -6
  45. package/dist/test/platform/windows.test.d.ts.map +0 -1
  46. package/dist/test/platform/windows.test.js +0 -320
  47. package/dist/test/platform/windows.test.js.map +0 -1
  48. package/dist/test/unit/adapters/adapter-factory.test.d.ts +0 -2
  49. package/dist/test/unit/adapters/adapter-factory.test.d.ts.map +0 -1
  50. package/dist/test/unit/adapters/adapter-factory.test.js +0 -147
  51. package/dist/test/unit/adapters/adapter-factory.test.js.map +0 -1
  52. package/dist/test/unit/adapters/linux-adapter.test.d.ts +0 -2
  53. package/dist/test/unit/adapters/linux-adapter.test.d.ts.map +0 -1
  54. package/dist/test/unit/adapters/linux-adapter.test.js +0 -204
  55. package/dist/test/unit/adapters/linux-adapter.test.js.map +0 -1
  56. package/dist/test/unit/adapters/macos-adapter.test.d.ts +0 -2
  57. package/dist/test/unit/adapters/macos-adapter.test.d.ts.map +0 -1
  58. package/dist/test/unit/adapters/macos-adapter.test.js +0 -237
  59. package/dist/test/unit/adapters/macos-adapter.test.js.map +0 -1
  60. package/dist/test/unit/adapters/windows-adapter.test.d.ts +0 -2
  61. package/dist/test/unit/adapters/windows-adapter.test.d.ts.map +0 -1
  62. package/dist/test/unit/adapters/windows-adapter.test.js +0 -111
  63. package/dist/test/unit/adapters/windows-adapter.test.js.map +0 -1
  64. package/dist/test/unit/core/base-monitor.test.d.ts +0 -2
  65. package/dist/test/unit/core/base-monitor.test.d.ts.map +0 -1
  66. package/dist/test/unit/core/base-monitor.test.js +0 -188
  67. package/dist/test/unit/core/base-monitor.test.js.map +0 -1
  68. package/dist/test/unit/core/cache-manager.test.d.ts +0 -6
  69. package/dist/test/unit/core/cache-manager.test.d.ts.map +0 -1
  70. package/dist/test/unit/core/cache-manager.test.js +0 -127
  71. package/dist/test/unit/core/cache-manager.test.js.map +0 -1
  72. package/dist/test/unit/core/platform-adapter.test.d.ts +0 -2
  73. package/dist/test/unit/core/platform-adapter.test.d.ts.map +0 -1
  74. package/dist/test/unit/core/platform-adapter.test.js +0 -186
  75. package/dist/test/unit/core/platform-adapter.test.js.map +0 -1
  76. package/dist/test/unit/index.test.d.ts +0 -2
  77. package/dist/test/unit/index.test.d.ts.map +0 -1
  78. package/dist/test/unit/index.test.js +0 -183
  79. package/dist/test/unit/index.test.js.map +0 -1
  80. package/dist/test/unit/monitors/cpu-monitor.test.d.ts +0 -2
  81. package/dist/test/unit/monitors/cpu-monitor.test.d.ts.map +0 -1
  82. package/dist/test/unit/monitors/cpu-monitor.test.js +0 -245
  83. package/dist/test/unit/monitors/cpu-monitor.test.js.map +0 -1
  84. package/dist/test/unit/monitors/disk-monitor.test.d.ts +0 -2
  85. package/dist/test/unit/monitors/disk-monitor.test.d.ts.map +0 -1
  86. package/dist/test/unit/monitors/disk-monitor.test.js +0 -46
  87. package/dist/test/unit/monitors/disk-monitor.test.js.map +0 -1
  88. package/dist/test/unit/monitors/memory-monitor.test.d.ts +0 -2
  89. package/dist/test/unit/monitors/memory-monitor.test.d.ts.map +0 -1
  90. package/dist/test/unit/monitors/memory-monitor.test.js +0 -142
  91. package/dist/test/unit/monitors/memory-monitor.test.js.map +0 -1
  92. package/dist/test/unit/monitors/network-monitor.test.d.ts +0 -2
  93. package/dist/test/unit/monitors/network-monitor.test.d.ts.map +0 -1
  94. package/dist/test/unit/monitors/network-monitor.test.js +0 -22
  95. package/dist/test/unit/monitors/network-monitor.test.js.map +0 -1
  96. package/dist/test/unit/monitors/process-monitor.test.d.ts +0 -2
  97. package/dist/test/unit/monitors/process-monitor.test.d.ts.map +0 -1
  98. package/dist/test/unit/monitors/process-monitor.test.js +0 -165
  99. package/dist/test/unit/monitors/process-monitor.test.js.map +0 -1
  100. package/dist/test/unit/monitors/system-monitor-macos.test.d.ts +0 -2
  101. package/dist/test/unit/monitors/system-monitor-macos.test.d.ts.map +0 -1
  102. package/dist/test/unit/monitors/system-monitor-macos.test.js +0 -115
  103. package/dist/test/unit/monitors/system-monitor-macos.test.js.map +0 -1
  104. package/dist/test/unit/monitors/system-monitor.test.d.ts +0 -2
  105. package/dist/test/unit/monitors/system-monitor.test.d.ts.map +0 -1
  106. package/dist/test/unit/monitors/system-monitor.test.js +0 -70
  107. package/dist/test/unit/monitors/system-monitor.test.js.map +0 -1
  108. package/dist/test/unit/types/common.test.d.ts +0 -6
  109. package/dist/test/unit/types/common.test.d.ts.map +0 -1
  110. package/dist/test/unit/types/common.test.js +0 -139
  111. package/dist/test/unit/types/common.test.js.map +0 -1
  112. package/dist/test/unit/types/config.test.d.ts +0 -2
  113. package/dist/test/unit/types/config.test.d.ts.map +0 -1
  114. package/dist/test/unit/types/config.test.js +0 -9
  115. package/dist/test/unit/types/config.test.js.map +0 -1
  116. package/dist/test/unit/types/errors.test.d.ts +0 -6
  117. package/dist/test/unit/types/errors.test.d.ts.map +0 -1
  118. package/dist/test/unit/types/errors.test.js +0 -184
  119. package/dist/test/unit/types/errors.test.js.map +0 -1
  120. package/dist/test/unit/types/index.test.d.ts +0 -2
  121. package/dist/test/unit/types/index.test.d.ts.map +0 -1
  122. package/dist/test/unit/types/index.test.js +0 -39
  123. package/dist/test/unit/types/index.test.js.map +0 -1
  124. package/dist/test/unit/types/monitors.test.d.ts +0 -2
  125. package/dist/test/unit/types/monitors.test.d.ts.map +0 -1
  126. package/dist/test/unit/types/monitors.test.js +0 -9
  127. package/dist/test/unit/types/monitors.test.js.map +0 -1
  128. package/dist/test/unit/types/platform.test.d.ts +0 -2
  129. package/dist/test/unit/types/platform.test.d.ts.map +0 -1
  130. package/dist/test/unit/types/platform.test.js +0 -9
  131. package/dist/test/unit/types/platform.test.js.map +0 -1
  132. package/dist/test/unit/utils/command-executor.test.d.ts +0 -6
  133. package/dist/test/unit/utils/command-executor.test.d.ts.map +0 -1
  134. package/dist/test/unit/utils/command-executor.test.js +0 -190
  135. package/dist/test/unit/utils/command-executor.test.js.map +0 -1
  136. package/dist/test/unit/utils/platform-specific.test.d.ts +0 -2
  137. package/dist/test/unit/utils/platform-specific.test.d.ts.map +0 -1
  138. package/dist/test/unit/utils/platform-specific.test.js +0 -32
  139. package/dist/test/unit/utils/platform-specific.test.js.map +0 -1
  140. package/dist/test/utils/platform-specific.d.ts +0 -139
  141. package/dist/test/utils/platform-specific.d.ts.map +0 -1
  142. package/dist/test/utils/platform-specific.js +0 -306
  143. package/dist/test/utils/platform-specific.js.map +0 -1
  144. package/dist/test/utils/test-base.d.ts +0 -157
  145. package/dist/test/utils/test-base.d.ts.map +0 -1
  146. package/dist/test/utils/test-base.js +0 -316
  147. package/dist/test/utils/test-base.js.map +0 -1
@@ -1,142 +0,0 @@
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
@@ -1 +0,0 @@
1
- {"version":3,"file":"memory-monitor.test.js","sourceRoot":"","sources":["../../../../test/unit/monitors/memory-monitor.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=network-monitor.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"network-monitor.test.d.ts","sourceRoot":"","sources":["../../../../test/unit/monitors/network-monitor.test.ts"],"names":[],"mappings":""}
@@ -1,22 +0,0 @@
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
@@ -1 +0,0 @@
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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=process-monitor.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"process-monitor.test.d.ts","sourceRoot":"","sources":["../../../../test/unit/monitors/process-monitor.test.ts"],"names":[],"mappings":""}
@@ -1,165 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const chai_1 = require("chai");
4
- const process_monitor_1 = require("../../../src/monitors/process-monitor");
5
- const SUPPORTED_FEATURES = {
6
- cpu: {
7
- info: false,
8
- usage: false,
9
- temperature: false,
10
- frequency: false,
11
- cache: false,
12
- perCore: false,
13
- cores: false
14
- },
15
- memory: {
16
- info: false,
17
- usage: false,
18
- swap: false,
19
- pressure: false,
20
- detailed: false,
21
- virtual: false
22
- },
23
- disk: {
24
- info: false,
25
- io: false,
26
- health: false,
27
- smart: false,
28
- filesystem: false,
29
- usage: false,
30
- stats: false,
31
- mounts: false,
32
- filesystems: false
33
- },
34
- network: {
35
- interfaces: false,
36
- stats: false,
37
- connections: false,
38
- bandwidth: false,
39
- gateway: false
40
- },
41
- process: {
42
- list: true,
43
- details: true,
44
- tree: true,
45
- monitor: true,
46
- info: true,
47
- kill: true,
48
- openFiles: true,
49
- environment: true
50
- },
51
- system: {
52
- info: false,
53
- load: false,
54
- uptime: false,
55
- users: false,
56
- services: false
57
- }
58
- };
59
- class ProcessAdapterStub {
60
- constructor(options = {}) {
61
- this.options = options;
62
- this.processListCalls = 0;
63
- this.processInfoCalls = 0;
64
- }
65
- getPlatform() {
66
- return 'test-platform';
67
- }
68
- isSupported(feature) {
69
- return feature.startsWith('process');
70
- }
71
- async executeCommand(command, options) {
72
- return {
73
- stdout: '',
74
- stderr: '',
75
- exitCode: 0,
76
- platform: this.getPlatform(),
77
- executionTime: 0,
78
- command
79
- };
80
- }
81
- async readFile() { return ''; }
82
- async fileExists() { return false; }
83
- async getCPUInfo() { return {}; }
84
- async getCPUUsage() { return {}; }
85
- async getCPUTemperature() { return {}; }
86
- async getMemoryInfo() { return {}; }
87
- async getMemoryUsage() { return {}; }
88
- async getDiskInfo() { return []; }
89
- async getDiskIO() { return []; }
90
- async getNetworkInterfaces() { return []; }
91
- async getNetworkStats() { return []; }
92
- async getProcesses() { return this.getProcessList(); }
93
- async getProcessInfo(pid) {
94
- this.processInfoCalls += 1;
95
- if (!this.options.processInfo) {
96
- return null;
97
- }
98
- return this.options.processInfo[pid] ?? null;
99
- }
100
- async getSystemInfo() { return {}; }
101
- async getSystemLoad() { return {}; }
102
- async getDiskUsage() { return []; }
103
- async getDiskStats() { return []; }
104
- async getMounts() { return []; }
105
- async getFileSystems() { return []; }
106
- async getNetworkConnections() { return []; }
107
- async getDefaultGateway() { return null; }
108
- async getProcessList() {
109
- this.processListCalls += 1;
110
- return this.options.processes ?? [];
111
- }
112
- async killProcess() { return true; }
113
- async getProcessOpenFiles() { return []; }
114
- async getProcessEnvironment() { return {}; }
115
- async getSystemUptime() { return 0; }
116
- async getSystemUsers() { return []; }
117
- async getSystemServices() { return []; }
118
- getSupportedFeatures() {
119
- return SUPPORTED_FEATURES;
120
- }
121
- }
122
- describe('ProcessMonitor', function () {
123
- it('缓存命中时仍应返回空进程结果', async function () {
124
- const adapter = new ProcessAdapterStub();
125
- const monitor = new process_monitor_1.ProcessMonitor(adapter);
126
- const first = await monitor.byPid(99999);
127
- const second = await monitor.byPid(99999);
128
- if (!first.success) {
129
- chai_1.expect.fail('第一次调用应成功返回');
130
- return;
131
- }
132
- (0, chai_1.expect)(first.data).to.be.null;
133
- if (!second.success) {
134
- chai_1.expect.fail('第二次调用应成功返回缓存结果');
135
- return;
136
- }
137
- (0, chai_1.expect)(second.data).to.be.null;
138
- (0, chai_1.expect)(second.cached).to.be.true;
139
- (0, chai_1.expect)(adapter.processInfoCalls).to.equal(1);
140
- });
141
- it('topByCpu 应忽略 maxResults 限制以返回真实的高占用进程', async function () {
142
- const processes = Array.from({ length: 5 }).map((_, index) => ({
143
- pid: index + 1,
144
- ppid: 0,
145
- name: `process-${index}`,
146
- command: `process-${index}`,
147
- state: 'running',
148
- cpuUsage: index * 20,
149
- memoryUsage: (index + 1) * 1024,
150
- memoryPercentage: index * 5,
151
- startTime: Date.now() - 1000
152
- }));
153
- const adapter = new ProcessAdapterStub({ processes });
154
- const monitor = new process_monitor_1.ProcessMonitor(adapter, { maxResults: 2 });
155
- const topResult = await monitor.topByCpu(1);
156
- if (!topResult.success || !topResult.data) {
157
- chai_1.expect.fail('获取Top进程失败');
158
- return;
159
- }
160
- (0, chai_1.expect)(topResult.data).to.have.lengthOf(1);
161
- (0, chai_1.expect)(topResult.data[0].pid).to.equal(5);
162
- (0, chai_1.expect)(adapter.processListCalls).to.equal(1);
163
- });
164
- });
165
- //# sourceMappingURL=process-monitor.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"process-monitor.test.js","sourceRoot":"","sources":["../../../../test/unit/monitors/process-monitor.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=system-monitor-macos.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"system-monitor-macos.test.d.ts","sourceRoot":"","sources":["../../../../test/unit/monitors/system-monitor-macos.test.ts"],"names":[],"mappings":""}
@@ -1,115 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const chai_1 = require("chai");
4
- const system_monitor_1 = require("../../../src/monitors/system-monitor");
5
- function createMacAdapter(overrides = {}) {
6
- const adapter = {
7
- getPlatform: () => 'darwin',
8
- isSupported: () => true,
9
- getSupportedFeatures: () => ({
10
- cpu: { info: true, usage: true, temperature: false, frequency: true, cache: false, perCore: false, cores: true },
11
- memory: { info: true, usage: true, swap: false, pressure: false, detailed: false, virtual: false },
12
- disk: { info: true, io: true, health: false, smart: false, filesystem: true, usage: true, stats: true, mounts: true, filesystems: true },
13
- network: { interfaces: true, stats: true, connections: true, bandwidth: false, gateway: true },
14
- process: { list: true, details: true, tree: false, monitor: false, info: true, kill: true, openFiles: false, environment: false },
15
- system: { info: true, load: true, uptime: true, users: true, services: true }
16
- }),
17
- getSystemInfo: async () => ({
18
- hostname: 'macbook-pro',
19
- platform: 'darwin',
20
- release: '23.4.0',
21
- kernel: 'Darwin Kernel Version',
22
- arch: 'arm64',
23
- uptimeSeconds: 3600,
24
- bootTime: Date.now() - 3600 * 1000,
25
- loadAverage: { load1: 1.2, load5: 0.8, load15: 0.6 },
26
- processCount: 250
27
- }),
28
- getSystemLoad: async () => ({ load1: 1.2, load5: 0.8, load15: 0.6 }),
29
- getCPUInfo: async () => ({ cores: 4 }),
30
- getSystemUptime: async () => ({ uptime: 3600 * 1000, bootTime: Date.now() - 3600 * 1000 }),
31
- getSystemUsers: async () => ([
32
- { username: 'user', terminal: 'ttys000', host: 'localhost', loginTime: Date.now() - 2000 }
33
- ])
34
- };
35
- return Object.assign(adapter, overrides);
36
- }
37
- describe('SystemMonitor (macOS)', () => {
38
- it('info() 应缓存 macOS 系统信息', async () => {
39
- let infoCalls = 0;
40
- const adapter = createMacAdapter({
41
- getSystemInfo: async () => {
42
- infoCalls += 1;
43
- return {
44
- hostname: 'macbook-pro',
45
- platform: 'darwin',
46
- release: '23.4.0',
47
- kernel: 'Darwin Kernel Version',
48
- arch: 'arm64',
49
- uptimeSeconds: 7200,
50
- bootTime: Date.now() - 7200 * 1000,
51
- loadAverage: { load1: 1.1, load5: 0.9, load15: 0.7 },
52
- processCount: 400
53
- };
54
- }
55
- });
56
- const monitor = new system_monitor_1.SystemMonitor(adapter);
57
- const first = await monitor.info();
58
- (0, chai_1.expect)(first.success).to.be.true;
59
- if (first.success) {
60
- (0, chai_1.expect)(first.data.hostname).to.equal('macbook-pro');
61
- }
62
- (0, chai_1.expect)(infoCalls).to.equal(1);
63
- const second = await monitor.info();
64
- (0, chai_1.expect)(second.success).to.be.true;
65
- if (second.success) {
66
- (0, chai_1.expect)(second.cached).to.be.true;
67
- }
68
- (0, chai_1.expect)(infoCalls).to.equal(1);
69
- });
70
- it('load() 应使用 CPU 核心数规范化负载', async () => {
71
- const adapter = createMacAdapter({
72
- getSystemLoad: async () => ({ load1: 3.0, load5: 2.0, load15: 1.0 }),
73
- getCPUInfo: async () => ({ cores: 1 })
74
- });
75
- const monitor = new system_monitor_1.SystemMonitor(adapter);
76
- const result = await monitor.load();
77
- (0, chai_1.expect)(result.success).to.be.true;
78
- if (result.success) {
79
- (0, chai_1.expect)(result.data.normalized.load1).to.equal(3.0);
80
- (0, chai_1.expect)(result.data.status).to.equal('critical');
81
- }
82
- });
83
- it('overview() 应在高负载时报告健康问题', async () => {
84
- const adapter = createMacAdapter({
85
- getSystemInfo: async () => ({
86
- hostname: 'macbook-pro',
87
- platform: 'darwin',
88
- release: '23.4.0',
89
- kernel: 'Darwin Kernel Version',
90
- arch: 'arm64',
91
- uptimeSeconds: 7200,
92
- bootTime: Date.now() - 7200 * 1000,
93
- loadAverage: { load1: 6.0, load5: 4.0, load15: 2.0 },
94
- processCount: 1500
95
- }),
96
- getSystemLoad: async () => ({ load1: 6.0, load5: 4.0, load15: 2.0 }),
97
- getCPUInfo: async () => ({ cores: 2 }),
98
- getSystemUsers: async () => ([
99
- { username: 'admin', terminal: 'ttys000', host: 'localhost', loginTime: Date.now() - 5000 }
100
- ])
101
- });
102
- const monitor = new system_monitor_1.SystemMonitor(adapter);
103
- monitor.withUsers(true);
104
- const result = await monitor.overview();
105
- (0, chai_1.expect)(result.success).to.be.true;
106
- if (result.success) {
107
- (0, chai_1.expect)(result.data.health.status).to.equal('critical');
108
- (0, chai_1.expect)(result.data.health.issues).to.include('Critical system load detected');
109
- (0, chai_1.expect)(result.data.health.issues).to.include('High number of processes detected');
110
- (0, chai_1.expect)(result.data.counts.processes).to.equal(1500);
111
- (0, chai_1.expect)(result.data.counts.users).to.equal(1);
112
- }
113
- });
114
- });
115
- //# sourceMappingURL=system-monitor-macos.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"system-monitor-macos.test.js","sourceRoot":"","sources":["../../../../test/unit/monitors/system-monitor-macos.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=system-monitor.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"system-monitor.test.d.ts","sourceRoot":"","sources":["../../../../test/unit/monitors/system-monitor.test.ts"],"names":[],"mappings":""}
@@ -1,70 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const chai_1 = require("chai");
4
- const system_monitor_1 = require("../../../src/monitors/system-monitor");
5
- describe('SystemMonitor 服务信息处理', () => {
6
- const monitor = new system_monitor_1.SystemMonitor({
7
- getPlatform: () => 'darwin'
8
- });
9
- it('应当优先使用 unit/label 作为服务名称', () => {
10
- const services = monitor.transformServicesList([
11
- { unit: 'sshd.service', active: 'active', description: 'OpenSSH' },
12
- { label: 'com.apple.WindowServer', status: '-', pid: 95 }
13
- ]);
14
- (0, chai_1.expect)(services[0].name).to.equal('sshd.service');
15
- (0, chai_1.expect)(services[0].status).to.equal('running');
16
- (0, chai_1.expect)(services[1].name).to.equal('com.apple.WindowServer');
17
- (0, chai_1.expect)(services[1].status).to.equal('running');
18
- });
19
- it('应当根据 load/startType 推断启用状态', () => {
20
- const services = monitor.transformServicesList([
21
- { unit: 'masked.service', load: 'masked', active: 'inactive' },
22
- { name: 'normal.service', StartType: 'Disabled' },
23
- { name: 'enabled.service', active: 'active' }
24
- ]);
25
- (0, chai_1.expect)(services[0].enabled).to.be.false;
26
- (0, chai_1.expect)(services[1].enabled).to.be.false;
27
- (0, chai_1.expect)(services[2].enabled).to.be.true;
28
- });
29
- it('应当解析数字状态与 pid 推断运行状态', () => {
30
- const services = monitor.transformServicesList([
31
- { name: 'launchd', status: 0, pid: 1 },
32
- { name: 'crashed', status: 1 },
33
- { name: 'inactive', status: '-', pid: 0 }
34
- ]);
35
- (0, chai_1.expect)(services[0].status).to.equal('running');
36
- (0, chai_1.expect)(services[1].status).to.equal('failed');
37
- (0, chai_1.expect)(services[2].status).to.equal('stopped');
38
- });
39
- it('应当优先使用 uptimeSeconds 计算运行时间', () => {
40
- const normalize = monitor.normalizeUptime.bind(monitor);
41
- (0, chai_1.expect)(normalize({ uptimeSeconds: 30 })).to.equal(30000);
42
- });
43
- it('应当在仅提供毫秒 uptime 时保持原值', () => {
44
- const normalize = monitor.normalizeUptime.bind(monitor);
45
- (0, chai_1.expect)(normalize({ uptime: 450000 })).to.equal(450000);
46
- });
47
- it('应当根据 bootTime 计算缺省运行时间', () => {
48
- const normalize = monitor.normalizeUptime.bind(monitor);
49
- const now = Date.now();
50
- const bootTime = now - 120000;
51
- (0, chai_1.expect)(normalize({ bootTime })).to.be.within(119000, 121000);
52
- });
53
- it('transformSystemInfo 应包含 uptimeSeconds 与 bootTime', () => {
54
- const raw = {
55
- hostname: 'test-host',
56
- platform: 'linux',
57
- release: '5.10',
58
- kernel: '5.10.0',
59
- arch: 'x64',
60
- uptimeSeconds: 42,
61
- loadAverage: { load1: 0.1, load5: 0.2, load15: 0.3 },
62
- timezone: 'UTC'
63
- };
64
- const result = monitor.transformSystemInfo(raw);
65
- (0, chai_1.expect)(result.uptimeSeconds).to.equal(42);
66
- (0, chai_1.expect)(result.bootTime).to.be.within(Date.now() - 42000 - 1000, Date.now());
67
- (0, chai_1.expect)(result.uptime).to.equal(42000);
68
- });
69
- });
70
- //# sourceMappingURL=system-monitor.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"system-monitor.test.js","sourceRoot":"","sources":["../../../../test/unit/monitors/system-monitor.test.ts"],"names":[],"mappings":"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"}
@@ -1,6 +0,0 @@
1
- /**
2
- * Common Types单元测试
3
- * 测试DataSize类和其他通用类型
4
- */
5
- export {};
6
- //# sourceMappingURL=common.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"common.test.d.ts","sourceRoot":"","sources":["../../../../test/unit/types/common.test.ts"],"names":[],"mappings":"AAAA;;;GAGG"}