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,107 @@
1
+ /// <reference types="node" />
2
+ import { EventEmitter } from 'events';
3
+ import { MonitorResult, MonitorConfig, MonitorSubscription } from '../types';
4
+ import { PlatformAdapter } from '../types/platform';
5
+ import { CacheManager } from './cache-manager';
6
+ import { MonitorError } from '../types/errors';
7
+ /**
8
+ * 基础监控器抽象类
9
+ *
10
+ * 提供所有监控器的通用功能,包括缓存、事件、配置管理等
11
+ */
12
+ export declare abstract class BaseMonitor<T> extends EventEmitter {
13
+ protected config: MonitorConfig;
14
+ protected adapter: PlatformAdapter;
15
+ protected cache: CacheManager;
16
+ protected subscriptions: Set<MonitorSubscription>;
17
+ constructor(adapter: PlatformAdapter, config?: MonitorConfig, cache?: CacheManager);
18
+ /**
19
+ * 获取监控信息
20
+ */
21
+ abstract info(): Promise<MonitorResult<T>>;
22
+ /**
23
+ * 获取默认配置
24
+ */
25
+ protected abstract getDefaultConfig(): MonitorConfig;
26
+ /**
27
+ * 配置监控器
28
+ */
29
+ withConfig(config: Partial<MonitorConfig>): this;
30
+ /**
31
+ * 配置缓存
32
+ */
33
+ withCaching(enabled: boolean, ttl?: number): this;
34
+ /**
35
+ * 实时监控
36
+ */
37
+ monitor(interval: number, callback: (data: T) => void): MonitorSubscription;
38
+ /**
39
+ * 获取配置
40
+ */
41
+ getConfig(): MonitorConfig;
42
+ /**
43
+ * 获取缓存统计
44
+ */
45
+ getCacheStats(): import("./cache-manager").CacheStats | null;
46
+ /**
47
+ * 清空缓存
48
+ */
49
+ clearCache(): void;
50
+ /**
51
+ * 停止所有监控订阅
52
+ */
53
+ stopAllMonitoring(): void;
54
+ /**
55
+ * 获取活跃订阅数量
56
+ */
57
+ getActiveSubscriptions(): number;
58
+ /**
59
+ * 销毁监控器
60
+ */
61
+ destroy(): void;
62
+ /**
63
+ * 获取缓存结果
64
+ */
65
+ protected getCachedResult<R>(key: string): R | undefined;
66
+ /**
67
+ * 设置缓存结果
68
+ */
69
+ protected setCachedResult<R>(key: string, result: R, ttl?: number): void;
70
+ /**
71
+ * 创建成功结果
72
+ */
73
+ protected createSuccessResult<R>(data: R, cached?: boolean): MonitorResult<R>;
74
+ /**
75
+ * 创建失败结果
76
+ */
77
+ protected createErrorResult<R>(error: MonitorError): MonitorResult<R>;
78
+ /**
79
+ * 处理错误并转换为 MonitorResult
80
+ */
81
+ protected handleError<R>(error: any): MonitorResult<R>;
82
+ /**
83
+ * 执行带缓存的操作
84
+ */
85
+ protected executeWithCache<R>(cacheKey: string, operation: () => Promise<R>, ttl?: number): Promise<MonitorResult<R>>;
86
+ /**
87
+ * 验证平台支持
88
+ */
89
+ protected validatePlatformSupport(feature: string): void;
90
+ /**
91
+ * 创建不支持功能的错误
92
+ */
93
+ protected createUnsupportedError(feature: string): MonitorError;
94
+ /**
95
+ * 安全执行异步操作
96
+ */
97
+ protected safeExecute<R>(operation: () => Promise<R>, fallback?: R): Promise<R>;
98
+ /**
99
+ * 创建超时 Promise
100
+ */
101
+ protected createTimeoutPromise<R>(timeoutMs: number, errorMessage?: string): Promise<R>;
102
+ /**
103
+ * 带超时执行操作
104
+ */
105
+ protected executeWithTimeout<R>(operation: () => Promise<R>, timeoutMs?: number): Promise<R>;
106
+ }
107
+ //# sourceMappingURL=base-monitor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base-monitor.d.ts","sourceRoot":"","sources":["../../../src/core/base-monitor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,312 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BaseMonitor = void 0;
4
+ const events_1 = require("events");
5
+ const cache_manager_1 = require("./cache-manager");
6
+ const errors_1 = require("../types/errors");
7
+ /**
8
+ * 监控订阅实现
9
+ */
10
+ class MonitorSubscriptionImpl {
11
+ constructor(callback, interval, monitorFn, errorHandler) {
12
+ this.callback = callback;
13
+ this.interval = interval;
14
+ this.monitorFn = monitorFn;
15
+ this.errorHandler = errorHandler;
16
+ this.active = true;
17
+ this.paused = false;
18
+ this.start();
19
+ }
20
+ unsubscribe() {
21
+ this.stop();
22
+ this.active = false;
23
+ }
24
+ isActive() {
25
+ return this.active;
26
+ }
27
+ pause() {
28
+ if (this.active && !this.paused) {
29
+ this.stop();
30
+ this.paused = true;
31
+ }
32
+ }
33
+ resume() {
34
+ if (this.active && this.paused) {
35
+ this.start();
36
+ this.paused = false;
37
+ }
38
+ }
39
+ getStatus() {
40
+ if (!this.active)
41
+ return 'stopped';
42
+ return this.paused ? 'paused' : 'active';
43
+ }
44
+ start() {
45
+ if (this.timer) {
46
+ clearInterval(this.timer);
47
+ }
48
+ this.timer = setInterval(async () => {
49
+ try {
50
+ const result = await this.monitorFn();
51
+ this.callback(result);
52
+ }
53
+ catch (error) {
54
+ if (this.errorHandler) {
55
+ this.errorHandler(error);
56
+ }
57
+ }
58
+ }, this.interval);
59
+ }
60
+ stop() {
61
+ if (this.timer) {
62
+ clearInterval(this.timer);
63
+ this.timer = undefined;
64
+ }
65
+ }
66
+ }
67
+ /**
68
+ * 基础监控器抽象类
69
+ *
70
+ * 提供所有监控器的通用功能,包括缓存、事件、配置管理等
71
+ */
72
+ class BaseMonitor extends events_1.EventEmitter {
73
+ constructor(adapter, config = {}, cache) {
74
+ super();
75
+ this.subscriptions = new Set();
76
+ this.adapter = adapter;
77
+ this.config = { ...this.getDefaultConfig(), ...config };
78
+ this.cache = cache || new cache_manager_1.CacheManager({
79
+ defaultTTL: this.config.cacheTTL || 5000,
80
+ enabled: this.config.cacheEnabled !== false
81
+ });
82
+ // 设置最大监听器数量
83
+ this.setMaxListeners(100);
84
+ }
85
+ // 通用方法
86
+ /**
87
+ * 配置监控器
88
+ */
89
+ withConfig(config) {
90
+ this.config = { ...this.config, ...config };
91
+ // 如果缓存配置发生变化,更新缓存管理器
92
+ if (config.cacheTTL && this.cache) {
93
+ this.cache.setDefaultTTL(config.cacheTTL);
94
+ }
95
+ return this;
96
+ }
97
+ /**
98
+ * 配置缓存
99
+ */
100
+ withCaching(enabled, ttl) {
101
+ this.config.cacheEnabled = enabled;
102
+ if (ttl !== undefined) {
103
+ this.config.cacheTTL = ttl;
104
+ if (this.cache) {
105
+ this.cache.setDefaultTTL(ttl);
106
+ }
107
+ }
108
+ return this;
109
+ }
110
+ /**
111
+ * 实时监控
112
+ */
113
+ monitor(interval, callback) {
114
+ const monitorFn = async () => {
115
+ const result = await this.info();
116
+ if (result.success) {
117
+ return result.data;
118
+ }
119
+ else {
120
+ throw result.error;
121
+ }
122
+ };
123
+ const errorHandler = (error) => {
124
+ this.emit('error', error);
125
+ };
126
+ const subscription = new MonitorSubscriptionImpl(callback, interval, monitorFn, errorHandler);
127
+ this.subscriptions.add(subscription);
128
+ // 当订阅被取消时,从集合中移除
129
+ const originalUnsubscribe = subscription.unsubscribe.bind(subscription);
130
+ subscription.unsubscribe = () => {
131
+ originalUnsubscribe();
132
+ this.subscriptions.delete(subscription);
133
+ };
134
+ return subscription;
135
+ }
136
+ /**
137
+ * 获取配置
138
+ */
139
+ getConfig() {
140
+ return { ...this.config };
141
+ }
142
+ /**
143
+ * 获取缓存统计
144
+ */
145
+ getCacheStats() {
146
+ return this.cache ? this.cache.getStats() : null;
147
+ }
148
+ /**
149
+ * 清空缓存
150
+ */
151
+ clearCache() {
152
+ if (this.cache) {
153
+ this.cache.clear();
154
+ }
155
+ }
156
+ /**
157
+ * 停止所有监控订阅
158
+ */
159
+ stopAllMonitoring() {
160
+ for (const subscription of this.subscriptions) {
161
+ subscription.unsubscribe();
162
+ }
163
+ this.subscriptions.clear();
164
+ }
165
+ /**
166
+ * 获取活跃订阅数量
167
+ */
168
+ getActiveSubscriptions() {
169
+ return Array.from(this.subscriptions).filter(sub => sub.isActive()).length;
170
+ }
171
+ /**
172
+ * 销毁监控器
173
+ */
174
+ destroy() {
175
+ this.stopAllMonitoring();
176
+ if (this.cache) {
177
+ this.cache.destroy();
178
+ }
179
+ this.removeAllListeners();
180
+ }
181
+ // 受保护的辅助方法
182
+ /**
183
+ * 获取缓存结果
184
+ */
185
+ getCachedResult(key) {
186
+ if (!this.config.cacheEnabled || !this.cache) {
187
+ return undefined;
188
+ }
189
+ return this.cache.get(key);
190
+ }
191
+ /**
192
+ * 设置缓存结果
193
+ */
194
+ setCachedResult(key, result, ttl) {
195
+ if (!this.config.cacheEnabled || !this.cache) {
196
+ return;
197
+ }
198
+ this.cache.set(key, result, ttl);
199
+ }
200
+ /**
201
+ * 创建成功结果
202
+ */
203
+ createSuccessResult(data, cached = false) {
204
+ return {
205
+ success: true,
206
+ data,
207
+ timestamp: Date.now(),
208
+ cached,
209
+ platform: this.adapter.getPlatform()
210
+ };
211
+ }
212
+ /**
213
+ * 创建失败结果
214
+ */
215
+ createErrorResult(error) {
216
+ return {
217
+ success: false,
218
+ error,
219
+ platform: this.adapter.getPlatform(),
220
+ timestamp: Date.now()
221
+ };
222
+ }
223
+ /**
224
+ * 处理错误并转换为 MonitorResult
225
+ */
226
+ handleError(error) {
227
+ let monitorError;
228
+ if (error instanceof errors_1.MonitorError) {
229
+ monitorError = error;
230
+ }
231
+ else if (error instanceof Error) {
232
+ monitorError = new errors_1.MonitorError(error.message, errors_1.ErrorCode.COMMAND_FAILED, this.adapter.getPlatform(), { originalError: error });
233
+ }
234
+ else {
235
+ monitorError = new errors_1.MonitorError('Unknown error occurred', errors_1.ErrorCode.COMMAND_FAILED, this.adapter.getPlatform(), { error });
236
+ }
237
+ // 发射错误事件
238
+ this.emit('error', monitorError);
239
+ return this.createErrorResult(monitorError);
240
+ }
241
+ /**
242
+ * 执行带缓存的操作
243
+ */
244
+ async executeWithCache(cacheKey, operation, ttl) {
245
+ try {
246
+ // 尝试从缓存获取
247
+ const cached = this.getCachedResult(cacheKey);
248
+ if (cached !== undefined) {
249
+ return this.createSuccessResult(cached, true);
250
+ }
251
+ // 执行操作
252
+ const result = await operation();
253
+ // 缓存结果
254
+ this.setCachedResult(cacheKey, result, ttl);
255
+ return this.createSuccessResult(result, false);
256
+ }
257
+ catch (error) {
258
+ return this.handleError(error);
259
+ }
260
+ }
261
+ /**
262
+ * 验证平台支持
263
+ */
264
+ validatePlatformSupport(feature) {
265
+ if (!this.adapter.isSupported(feature)) {
266
+ throw errors_1.MonitorError.createPlatformNotSupported(this.adapter.getPlatform(), feature);
267
+ }
268
+ }
269
+ /**
270
+ * 创建不支持功能的错误
271
+ */
272
+ createUnsupportedError(feature) {
273
+ return errors_1.MonitorError.createPlatformNotSupported(this.adapter.getPlatform(), feature);
274
+ }
275
+ /**
276
+ * 安全执行异步操作
277
+ */
278
+ async safeExecute(operation, fallback) {
279
+ try {
280
+ return await operation();
281
+ }
282
+ catch (error) {
283
+ if (fallback !== undefined) {
284
+ return fallback;
285
+ }
286
+ throw error;
287
+ }
288
+ }
289
+ /**
290
+ * 创建超时 Promise
291
+ */
292
+ createTimeoutPromise(timeoutMs, errorMessage) {
293
+ return new Promise((_, reject) => {
294
+ setTimeout(() => {
295
+ const error = new errors_1.MonitorError(errorMessage || `Operation timed out after ${timeoutMs}ms`, errors_1.ErrorCode.TIMEOUT, this.adapter.getPlatform(), { timeout: timeoutMs });
296
+ reject(error);
297
+ }, timeoutMs);
298
+ });
299
+ }
300
+ /**
301
+ * 带超时执行操作
302
+ */
303
+ async executeWithTimeout(operation, timeoutMs) {
304
+ const timeout = timeoutMs || this.config.timeout || 10000;
305
+ return Promise.race([
306
+ operation(),
307
+ this.createTimeoutPromise(timeout)
308
+ ]);
309
+ }
310
+ }
311
+ exports.BaseMonitor = BaseMonitor;
312
+ //# sourceMappingURL=base-monitor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base-monitor.js","sourceRoot":"","sources":["../../../src/core/base-monitor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,157 @@
1
+ /**
2
+ * 缓存统计信息
3
+ */
4
+ export interface CacheStats {
5
+ /**
6
+ * 缓存项数量
7
+ */
8
+ size: number;
9
+ /**
10
+ * 缓存命中次数
11
+ */
12
+ hits: number;
13
+ /**
14
+ * 缓存未命中次数
15
+ */
16
+ misses: number;
17
+ /**
18
+ * 命中率
19
+ */
20
+ hitRate: number;
21
+ /**
22
+ * 总内存使用(估算)
23
+ */
24
+ memoryUsage: number;
25
+ /**
26
+ * 过期清理次数
27
+ */
28
+ evictions: number;
29
+ /**
30
+ * 最大缓存大小
31
+ */
32
+ maxSize: number;
33
+ }
34
+ /**
35
+ * 缓存管理器配置
36
+ */
37
+ export interface CacheManagerConfig {
38
+ defaultTTL?: number;
39
+ maxSize?: number;
40
+ cleanupInterval?: number;
41
+ enabled?: boolean;
42
+ }
43
+ /**
44
+ * 缓存管理器
45
+ *
46
+ * 负责管理监控数据的缓存,提高性能并减少系统调用
47
+ */
48
+ export declare class CacheManager {
49
+ private cache;
50
+ private defaultTTL;
51
+ private maxSize;
52
+ private stats;
53
+ private cleanupTimer?;
54
+ private cleanupInterval;
55
+ private enabled;
56
+ constructor(config?: CacheManagerConfig);
57
+ /**
58
+ * 获取缓存值
59
+ */
60
+ get<T>(key: string): T | undefined;
61
+ /**
62
+ * 设置缓存值
63
+ */
64
+ set<T>(key: string, value: T, ttl?: number): void;
65
+ /**
66
+ * 删除缓存项
67
+ */
68
+ delete(key: string): boolean;
69
+ /**
70
+ * 清空所有缓存
71
+ */
72
+ clear(): void;
73
+ /**
74
+ * 检查是否存在缓存项
75
+ */
76
+ has(key: string): boolean;
77
+ /**
78
+ * 获取缓存大小
79
+ */
80
+ size(): number;
81
+ /**
82
+ * 获取缓存统计信息
83
+ */
84
+ getStats(): CacheStats;
85
+ /**
86
+ * 重置统计信息
87
+ */
88
+ resetStats(): void;
89
+ /**
90
+ * 获取所有缓存键
91
+ */
92
+ keys(): string[];
93
+ /**
94
+ * 获取缓存项的详细信息
95
+ */
96
+ getItemInfo(key: string): {
97
+ exists: boolean;
98
+ created?: number;
99
+ expiry?: number;
100
+ accessCount?: number;
101
+ lastAccessed?: number;
102
+ ttl?: number;
103
+ };
104
+ /**
105
+ * 设置默认 TTL
106
+ */
107
+ setDefaultTTL(ttl: number): void;
108
+ /**
109
+ * 获取默认 TTL
110
+ */
111
+ getDefaultTTL(): number;
112
+ /**
113
+ * 启用缓存
114
+ */
115
+ enable(): void;
116
+ /**
117
+ * 禁用缓存
118
+ */
119
+ disable(): void;
120
+ /**
121
+ * 检查缓存是否启用
122
+ */
123
+ isEnabled(): boolean;
124
+ /**
125
+ * 关闭缓存管理器
126
+ */
127
+ destroy(): void;
128
+ /**
129
+ * 启动定期清理
130
+ */
131
+ private startCleanup;
132
+ /**
133
+ * 停止定期清理
134
+ */
135
+ private stopCleanup;
136
+ /**
137
+ * 清理过期项
138
+ */
139
+ private cleanup;
140
+ /**
141
+ * LRU 淘汰策略
142
+ */
143
+ private evictLRU;
144
+ /**
145
+ * 更新统计信息
146
+ */
147
+ private updateStats;
148
+ /**
149
+ * 更新命中率
150
+ */
151
+ private updateHitRate;
152
+ /**
153
+ * 估算内存使用量
154
+ */
155
+ private estimateMemoryUsage;
156
+ }
157
+ //# sourceMappingURL=cache-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cache-manager.d.ts","sourceRoot":"","sources":["../../../src/core/cache-manager.ts"],"names":[],"mappings":"AA8BA;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;;;GAIG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,KAAK,CAAqC;IAClD,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,KAAK,CAAa;IAC1B,OAAO,CAAC,YAAY,CAAC,CAAiB;IACtC,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,OAAO,CAAiB;gBAEpB,MAAM,GAAE,kBAAuB;IAqB3C;;OAEG;IACH,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS;IAiClC;;OAEG;IACH,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI;IAyBjD;;OAEG;IACH,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAQ5B;;OAEG;IACH,KAAK,IAAI,IAAI;IAOb;;OAEG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAqBzB;;OAEG;IACH,IAAI,IAAI,MAAM;IAId;;OAEG;IACH,QAAQ,IAAI,UAAU;IAItB;;OAEG;IACH,UAAU,IAAI,IAAI;IAYlB;;OAEG;IACH,IAAI,IAAI,MAAM,EAAE;IAIhB;;OAEG;IACH,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG;QACxB,MAAM,EAAE,OAAO,CAAC;QAChB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,GAAG,CAAC,EAAE,MAAM,CAAC;KACd;IAiBD;;OAEG;IACH,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAIhC;;OAEG;IACH,aAAa,IAAI,MAAM;IAIvB;;OAEG;IACH,MAAM,IAAI,IAAI;IAKd;;OAEG;IACH,OAAO,IAAI,IAAI;IAMf;;OAEG;IACH,SAAS,IAAI,OAAO;IAIpB;;OAEG;IACH,OAAO,IAAI,IAAI;IAKf;;OAEG;IACH,OAAO,CAAC,YAAY;IAepB;;OAEG;IACH,OAAO,CAAC,WAAW;IAOnB;;OAEG;IACH,OAAO,CAAC,OAAO;IAuBf;;OAEG;IACH,OAAO,CAAC,QAAQ;IAkBhB;;OAEG;IACH,OAAO,CAAC,WAAW;IAMnB;;OAEG;IACH,OAAO,CAAC,aAAa;IAKrB;;OAEG;IACH,OAAO,CAAC,mBAAmB;CAiB5B"}