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.
- package/CHANGELOG.md +23 -0
- package/README-zh.md +1291 -0
- package/README.md +28 -2
- package/dist/package.json +4 -2
- package/dist/src/adapters/linux-adapter.d.ts +17 -4
- package/dist/src/adapters/linux-adapter.d.ts.map +1 -1
- package/dist/src/adapters/linux-adapter.js +37 -12
- package/dist/src/adapters/linux-adapter.js.map +1 -1
- package/dist/src/adapters/macos-adapter.d.ts +17 -4
- package/dist/src/adapters/macos-adapter.d.ts.map +1 -1
- package/dist/src/adapters/macos-adapter.js +28 -11
- package/dist/src/adapters/macos-adapter.js.map +1 -1
- package/dist/src/adapters/windows-adapter.d.ts +13 -2
- package/dist/src/adapters/windows-adapter.d.ts.map +1 -1
- package/dist/src/adapters/windows-adapter.js +26 -3
- package/dist/src/adapters/windows-adapter.js.map +1 -1
- package/dist/src/monitors/cpu-monitor.d.ts.map +1 -1
- package/dist/src/monitors/cpu-monitor.js +7 -2
- package/dist/src/monitors/cpu-monitor.js.map +1 -1
- package/dist/src/monitors/process-monitor.d.ts +17 -4
- package/dist/src/monitors/process-monitor.d.ts.map +1 -1
- package/dist/src/monitors/process-monitor.js +30 -4
- package/dist/src/monitors/process-monitor.js.map +1 -1
- package/dist/src/types/config.d.ts +7 -0
- package/dist/src/types/config.d.ts.map +1 -1
- package/dist/src/utils/process-killer.d.ts +38 -0
- package/dist/src/utils/process-killer.d.ts.map +1 -0
- package/dist/src/utils/process-killer.js +96 -0
- package/dist/src/utils/process-killer.js.map +1 -0
- package/package.json +4 -2
- package/dist/.tsbuildinfo +0 -1
- package/dist/test/config/test-config.d.ts +0 -301
- package/dist/test/config/test-config.d.ts.map +0 -1
- package/dist/test/config/test-config.js +0 -235
- package/dist/test/config/test-config.js.map +0 -1
- package/dist/test/platform/linux.test.d.ts +0 -6
- package/dist/test/platform/linux.test.d.ts.map +0 -1
- package/dist/test/platform/linux.test.js +0 -307
- package/dist/test/platform/linux.test.js.map +0 -1
- package/dist/test/platform/macos.test.d.ts +0 -6
- package/dist/test/platform/macos.test.d.ts.map +0 -1
- package/dist/test/platform/macos.test.js +0 -276
- package/dist/test/platform/macos.test.js.map +0 -1
- package/dist/test/platform/windows.test.d.ts +0 -6
- package/dist/test/platform/windows.test.d.ts.map +0 -1
- package/dist/test/platform/windows.test.js +0 -320
- package/dist/test/platform/windows.test.js.map +0 -1
- package/dist/test/unit/adapters/adapter-factory.test.d.ts +0 -2
- package/dist/test/unit/adapters/adapter-factory.test.d.ts.map +0 -1
- package/dist/test/unit/adapters/adapter-factory.test.js +0 -147
- package/dist/test/unit/adapters/adapter-factory.test.js.map +0 -1
- package/dist/test/unit/adapters/linux-adapter.test.d.ts +0 -2
- package/dist/test/unit/adapters/linux-adapter.test.d.ts.map +0 -1
- package/dist/test/unit/adapters/linux-adapter.test.js +0 -204
- package/dist/test/unit/adapters/linux-adapter.test.js.map +0 -1
- package/dist/test/unit/adapters/macos-adapter.test.d.ts +0 -2
- package/dist/test/unit/adapters/macos-adapter.test.d.ts.map +0 -1
- package/dist/test/unit/adapters/macos-adapter.test.js +0 -237
- package/dist/test/unit/adapters/macos-adapter.test.js.map +0 -1
- package/dist/test/unit/adapters/windows-adapter.test.d.ts +0 -2
- package/dist/test/unit/adapters/windows-adapter.test.d.ts.map +0 -1
- package/dist/test/unit/adapters/windows-adapter.test.js +0 -111
- package/dist/test/unit/adapters/windows-adapter.test.js.map +0 -1
- package/dist/test/unit/core/base-monitor.test.d.ts +0 -2
- package/dist/test/unit/core/base-monitor.test.d.ts.map +0 -1
- package/dist/test/unit/core/base-monitor.test.js +0 -188
- package/dist/test/unit/core/base-monitor.test.js.map +0 -1
- package/dist/test/unit/core/cache-manager.test.d.ts +0 -6
- package/dist/test/unit/core/cache-manager.test.d.ts.map +0 -1
- package/dist/test/unit/core/cache-manager.test.js +0 -127
- package/dist/test/unit/core/cache-manager.test.js.map +0 -1
- package/dist/test/unit/core/platform-adapter.test.d.ts +0 -2
- package/dist/test/unit/core/platform-adapter.test.d.ts.map +0 -1
- package/dist/test/unit/core/platform-adapter.test.js +0 -186
- package/dist/test/unit/core/platform-adapter.test.js.map +0 -1
- package/dist/test/unit/index.test.d.ts +0 -2
- package/dist/test/unit/index.test.d.ts.map +0 -1
- package/dist/test/unit/index.test.js +0 -183
- package/dist/test/unit/index.test.js.map +0 -1
- package/dist/test/unit/monitors/cpu-monitor.test.d.ts +0 -2
- package/dist/test/unit/monitors/cpu-monitor.test.d.ts.map +0 -1
- package/dist/test/unit/monitors/cpu-monitor.test.js +0 -245
- package/dist/test/unit/monitors/cpu-monitor.test.js.map +0 -1
- package/dist/test/unit/monitors/disk-monitor.test.d.ts +0 -2
- package/dist/test/unit/monitors/disk-monitor.test.d.ts.map +0 -1
- package/dist/test/unit/monitors/disk-monitor.test.js +0 -46
- package/dist/test/unit/monitors/disk-monitor.test.js.map +0 -1
- package/dist/test/unit/monitors/memory-monitor.test.d.ts +0 -2
- package/dist/test/unit/monitors/memory-monitor.test.d.ts.map +0 -1
- package/dist/test/unit/monitors/memory-monitor.test.js +0 -142
- package/dist/test/unit/monitors/memory-monitor.test.js.map +0 -1
- package/dist/test/unit/monitors/network-monitor.test.d.ts +0 -2
- package/dist/test/unit/monitors/network-monitor.test.d.ts.map +0 -1
- package/dist/test/unit/monitors/network-monitor.test.js +0 -22
- package/dist/test/unit/monitors/network-monitor.test.js.map +0 -1
- package/dist/test/unit/monitors/process-monitor.test.d.ts +0 -2
- package/dist/test/unit/monitors/process-monitor.test.d.ts.map +0 -1
- package/dist/test/unit/monitors/process-monitor.test.js +0 -165
- package/dist/test/unit/monitors/process-monitor.test.js.map +0 -1
- package/dist/test/unit/monitors/system-monitor-macos.test.d.ts +0 -2
- package/dist/test/unit/monitors/system-monitor-macos.test.d.ts.map +0 -1
- package/dist/test/unit/monitors/system-monitor-macos.test.js +0 -115
- package/dist/test/unit/monitors/system-monitor-macos.test.js.map +0 -1
- package/dist/test/unit/monitors/system-monitor.test.d.ts +0 -2
- package/dist/test/unit/monitors/system-monitor.test.d.ts.map +0 -1
- package/dist/test/unit/monitors/system-monitor.test.js +0 -70
- package/dist/test/unit/monitors/system-monitor.test.js.map +0 -1
- package/dist/test/unit/types/common.test.d.ts +0 -6
- package/dist/test/unit/types/common.test.d.ts.map +0 -1
- package/dist/test/unit/types/common.test.js +0 -139
- package/dist/test/unit/types/common.test.js.map +0 -1
- package/dist/test/unit/types/config.test.d.ts +0 -2
- package/dist/test/unit/types/config.test.d.ts.map +0 -1
- package/dist/test/unit/types/config.test.js +0 -9
- package/dist/test/unit/types/config.test.js.map +0 -1
- package/dist/test/unit/types/errors.test.d.ts +0 -6
- package/dist/test/unit/types/errors.test.d.ts.map +0 -1
- package/dist/test/unit/types/errors.test.js +0 -184
- package/dist/test/unit/types/errors.test.js.map +0 -1
- package/dist/test/unit/types/index.test.d.ts +0 -2
- package/dist/test/unit/types/index.test.d.ts.map +0 -1
- package/dist/test/unit/types/index.test.js +0 -39
- package/dist/test/unit/types/index.test.js.map +0 -1
- package/dist/test/unit/types/monitors.test.d.ts +0 -2
- package/dist/test/unit/types/monitors.test.d.ts.map +0 -1
- package/dist/test/unit/types/monitors.test.js +0 -9
- package/dist/test/unit/types/monitors.test.js.map +0 -1
- package/dist/test/unit/types/platform.test.d.ts +0 -2
- package/dist/test/unit/types/platform.test.d.ts.map +0 -1
- package/dist/test/unit/types/platform.test.js +0 -9
- package/dist/test/unit/types/platform.test.js.map +0 -1
- package/dist/test/unit/utils/command-executor.test.d.ts +0 -6
- package/dist/test/unit/utils/command-executor.test.d.ts.map +0 -1
- package/dist/test/unit/utils/command-executor.test.js +0 -190
- package/dist/test/unit/utils/command-executor.test.js.map +0 -1
- package/dist/test/unit/utils/platform-specific.test.d.ts +0 -2
- package/dist/test/unit/utils/platform-specific.test.d.ts.map +0 -1
- package/dist/test/unit/utils/platform-specific.test.js +0 -32
- package/dist/test/unit/utils/platform-specific.test.js.map +0 -1
- package/dist/test/utils/platform-specific.d.ts +0 -139
- package/dist/test/utils/platform-specific.d.ts.map +0 -1
- package/dist/test/utils/platform-specific.js +0 -306
- package/dist/test/utils/platform-specific.js.map +0 -1
- package/dist/test/utils/test-base.d.ts +0 -157
- package/dist/test/utils/test-base.d.ts.map +0 -1
- package/dist/test/utils/test-base.js +0 -316
- 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 +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 +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 +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 +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":";;AAAA,+BAA8B;AAE9B,yEAAqE;AAErE,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;IACpC,MAAM,OAAO,GAAG,IAAI,8BAAa,CAAC;QAChC,WAAW,EAAE,GAAG,EAAE,CAAC,QAAQ;KACrB,CAAC,CAAC;IAEV,EAAE,CAAC,0BAA0B,EAAE,GAAG,EAAE;QAClC,MAAM,QAAQ,GAAI,OAAe,CAAC,qBAAqB,CAAC;YACtD,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE;YAClE,EAAE,KAAK,EAAE,wBAAwB,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE;SAC1D,CAAC,CAAC;QAEH,IAAA,aAAM,EAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QAClD,IAAA,aAAM,EAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAC/C,IAAA,aAAM,EAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;QAC5D,IAAA,aAAM,EAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4BAA4B,EAAE,GAAG,EAAE;QACpC,MAAM,QAAQ,GAAI,OAAe,CAAC,qBAAqB,CAAC;YACtD,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE;YAC9D,EAAE,IAAI,EAAE,gBAAgB,EAAE,SAAS,EAAE,UAAU,EAAE;YACjD,EAAE,IAAI,EAAE,iBAAiB,EAAE,MAAM,EAAE,QAAQ,EAAE;SAC9C,CAAC,CAAC;QAEH,IAAA,aAAM,EAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;QACxC,IAAA,aAAM,EAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;QACxC,IAAA,aAAM,EAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;IACzC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sBAAsB,EAAE,GAAG,EAAE;QAC9B,MAAM,QAAQ,GAAI,OAAe,CAAC,qBAAqB,CAAC;YACtD,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE;YACtC,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,EAAE;YAC9B,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE;SAC1C,CAAC,CAAC;QAEH,IAAA,aAAM,EAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAC/C,IAAA,aAAM,EAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAC9C,IAAA,aAAM,EAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6BAA6B,EAAE,GAAG,EAAE;QACrC,MAAM,SAAS,GAAI,OAAe,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACjE,IAAA,aAAM,EAAC,SAAS,CAAC,EAAE,aAAa,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC3D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uBAAuB,EAAE,GAAG,EAAE;QAC/B,MAAM,SAAS,GAAI,OAAe,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACjE,IAAA,aAAM,EAAC,SAAS,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wBAAwB,EAAE,GAAG,EAAE;QAChC,MAAM,SAAS,GAAI,OAAe,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACjE,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,MAAM,QAAQ,GAAG,GAAG,GAAG,MAAM,CAAC;QAC9B,IAAA,aAAM,EAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kDAAkD,EAAE,GAAG,EAAE;QAC1D,MAAM,GAAG,GAAG;YACV,QAAQ,EAAE,WAAW;YACrB,QAAQ,EAAE,OAAO;YACjB,OAAO,EAAE,MAAM;YACf,MAAM,EAAE,QAAQ;YAChB,IAAI,EAAE,KAAK;YACX,aAAa,EAAE,EAAE;YACjB,WAAW,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE;YACpD,QAAQ,EAAE,KAAK;SAChB,CAAC;QAEF,MAAM,MAAM,GAAI,OAAe,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC;QACzD,IAAA,aAAM,EAAC,MAAM,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC1C,IAAA,aAAM,EAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,GAAG,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;QAC5E,IAAA,aAAM,EAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"common.test.d.ts","sourceRoot":"","sources":["../../../../test/unit/types/common.test.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
|