@puniyu/system-info 1.1.5

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.
@@ -0,0 +1,150 @@
1
+ // powered by system_info_core
2
+ export interface CpuInfo {
3
+ /** CPU型号 */
4
+ cpuModel: string
5
+ /** CPU核心数 */
6
+ cpuCores: number
7
+ /** CPU频率(单位: GHz) */
8
+ cpuFrequency?: number
9
+ /** CPU使用率 */
10
+ cpuUsage?: number
11
+ }
12
+
13
+ export interface DiskDetail {
14
+ /** 磁盘名称 */
15
+ name: string
16
+ /** 总磁盘空间(单位: GB) */
17
+ totalSpace: number
18
+ /** 已用磁盘空间(单位: GB) */
19
+ usedSpace: number
20
+ /** 可用磁盘空间(单位: GB) */
21
+ freeSpace: number
22
+ /** 磁盘使用率 */
23
+ usage: number
24
+ }
25
+
26
+ export interface DiskInfo {
27
+ /** 总磁盘空间(单位: GB) */
28
+ totalDiskSpace: number
29
+ /** 总已用磁盘空间(单位: GB) */
30
+ totalUsedSpace: number
31
+ /** 总可用磁盘空间(单位: GB) */
32
+ totalFreeSpace: number
33
+ /** 总体磁盘使用率 */
34
+ totalUsage: number
35
+ /** 各个磁盘详细信息 */
36
+ disks: Array<DiskDetail>
37
+ }
38
+
39
+ /** 获取CPU信息 */
40
+ export declare function getCpuInfo(): CpuInfo
41
+
42
+ /** 获取当前网络信息 */
43
+ export declare function getCurrentNetwork(): NetworkInfo
44
+
45
+ /** 获取当前进程信息 */
46
+ export declare function getCurrentProcessInfo(): ProcessInfo
47
+
48
+ /** 获取磁盘信息 */
49
+ export declare function getDiskInfo(): DiskInfo
50
+
51
+ /** 获取GPU信息 */
52
+ export declare function getGpuInfo(): GpuInfo | null
53
+
54
+ /** 获取主机信息 */
55
+ export declare function getHostInfo(): HostInfo
56
+
57
+ /** 获取内存信息 */
58
+ export declare function getMemoryInfo(): MemoryInfo
59
+
60
+ /** 获取网络信息 */
61
+ export declare function getNetworkInfo(): Array<NetworkInfo>
62
+
63
+ /** 获取进程信息 */
64
+ export declare function getProcessInfo(pid: number): ProcessInfo
65
+
66
+ export interface GpuInfo {
67
+ /** GPU型号 */
68
+ model: string
69
+ /** GPU已用内存(单位: MB) */
70
+ memoryUsed: number
71
+ /** GPU总内存(单位: MB) */
72
+ memoryTotal: number
73
+ /** GPU可用内存(单位: MB) */
74
+ memoryFree: number
75
+ /** GPU使用率 */
76
+ usage: number
77
+ }
78
+
79
+ export interface HostInfo {
80
+ /** 主机名 */
81
+ hostName: string
82
+ /** 操作系统名 */
83
+ osName: string
84
+ /** 操作系统版本 */
85
+ osVersion: string
86
+ /** 操作系统类型 */
87
+ osType: string
88
+ /** 系统架构 */
89
+ arch: string
90
+ /** 系统启动时间 */
91
+ bootTime: Date
92
+ /** 系统运行时间, 单位:秒 */
93
+ uptime: number
94
+ }
95
+
96
+ export interface IpInfo {
97
+ /** ip地址 */
98
+ ipAddress: string
99
+ /** 子网掩码 */
100
+ netmask: number
101
+ }
102
+
103
+ export interface MemoryInfo {
104
+ /** 总内存(单位: MB) */
105
+ total: number
106
+ /** 内存使用率 */
107
+ usage?: number
108
+ /** 已用内存(单位: MB) */
109
+ usedMemory: number
110
+ /** 可用内存(单位: MB) */
111
+ freeMemory: number
112
+ /** 交换内存(单位: MB) */
113
+ swapMemoryTotal?: number
114
+ /** 交换内存已用(单位: MB) */
115
+ swapMemoryUsed?: number
116
+ /** 交换内存可用(单位: MB) */
117
+ swapMemoryFree?: number
118
+ /** 交换内存使用率 */
119
+ swapMemoryUsage?: number
120
+ }
121
+
122
+ export interface NetworkInfo {
123
+ /** 网卡名称 */
124
+ name: string
125
+ /** 网卡ip信息 */
126
+ ipInfo: Array<IpInfo>
127
+ /** 网卡接收字节数(单位: KB/S) */
128
+ upload: number
129
+ /** 网卡发送字节数(单位: KB/S) */
130
+ download: number
131
+ /** 网卡mac地址 */
132
+ macAddr: string
133
+ }
134
+
135
+ export interface ProcessInfo {
136
+ /** 进程ID */
137
+ pid: number
138
+ /** 进程名称 */
139
+ name: string
140
+ /** 进程启动时间 */
141
+ startTime: number
142
+ /** 进程运行时间,单位:秒 */
143
+ runTime: number
144
+ /** 进程CPU使用率 */
145
+ cpuUsage?: number
146
+ /** 进程内存使用率 */
147
+ memoryUsage?: number
148
+ /** 进程已用内存(单位: MB) */
149
+ usedMemory: number
150
+ }
package/dist/index.js ADDED
@@ -0,0 +1,587 @@
1
+ // prettier-ignore
2
+ /* eslint-disable */
3
+ // @ts-nocheck
4
+ /* auto-generated by NAPI-RS */
5
+
6
+ import { createRequire } from 'node:module'
7
+ const require = createRequire(import.meta.url)
8
+ const __dirname = new URL('.', import.meta.url).pathname
9
+
10
+ const { readFileSync } = require('node:fs')
11
+ let nativeBinding = null
12
+ const loadErrors = []
13
+
14
+ const isMusl = () => {
15
+ let musl = false
16
+ if (process.platform === 'linux') {
17
+ musl = isMuslFromFilesystem()
18
+ if (musl === null) {
19
+ musl = isMuslFromReport()
20
+ }
21
+ if (musl === null) {
22
+ musl = isMuslFromChildProcess()
23
+ }
24
+ }
25
+ return musl
26
+ }
27
+
28
+ const isFileMusl = (f) => f.includes('libc.musl-') || f.includes('ld-musl-')
29
+
30
+ const isMuslFromFilesystem = () => {
31
+ try {
32
+ return readFileSync('/usr/bin/ldd', 'utf-8').includes('musl')
33
+ } catch {
34
+ return null
35
+ }
36
+ }
37
+
38
+ const isMuslFromReport = () => {
39
+ let report = null
40
+ if (typeof process.report?.getReport === 'function') {
41
+ process.report.excludeNetwork = true
42
+ report = process.report.getReport()
43
+ }
44
+ if (!report) {
45
+ return null
46
+ }
47
+ if (report.header && report.header.glibcVersionRuntime) {
48
+ return false
49
+ }
50
+ if (Array.isArray(report.sharedObjects)) {
51
+ if (report.sharedObjects.some(isFileMusl)) {
52
+ return true
53
+ }
54
+ }
55
+ return false
56
+ }
57
+
58
+ const isMuslFromChildProcess = () => {
59
+ try {
60
+ return require('child_process').execSync('ldd --version', { encoding: 'utf8' }).includes('musl')
61
+ } catch (e) {
62
+ // If we reach this case, we don't know if the system is musl or not, so is better to just fallback to false
63
+ return false
64
+ }
65
+ }
66
+
67
+ function requireNative() {
68
+ if (process.env.NAPI_RS_NATIVE_LIBRARY_PATH) {
69
+ try {
70
+ return require(process.env.NAPI_RS_NATIVE_LIBRARY_PATH);
71
+ } catch (err) {
72
+ loadErrors.push(err)
73
+ }
74
+ } else if (process.platform === 'android') {
75
+ if (process.arch === 'arm64') {
76
+ try {
77
+ return require('./system-info.android-arm64.node')
78
+ } catch (e) {
79
+ loadErrors.push(e)
80
+ }
81
+ try {
82
+ const binding = require('@puniyu/system-info-android-arm64')
83
+ const bindingPackageVersion = require('@puniyu/system-info-android-arm64/package.json').version
84
+ if (bindingPackageVersion !== '1.1.5' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
85
+ throw new Error(`Native binding package version mismatch, expected 1.1.5 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
86
+ }
87
+ return binding
88
+ } catch (e) {
89
+ loadErrors.push(e)
90
+ }
91
+ } else if (process.arch === 'arm') {
92
+ try {
93
+ return require('./system-info.android-arm-eabi.node')
94
+ } catch (e) {
95
+ loadErrors.push(e)
96
+ }
97
+ try {
98
+ const binding = require('@puniyu/system-info-android-arm-eabi')
99
+ const bindingPackageVersion = require('@puniyu/system-info-android-arm-eabi/package.json').version
100
+ if (bindingPackageVersion !== '1.1.5' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
101
+ throw new Error(`Native binding package version mismatch, expected 1.1.5 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
102
+ }
103
+ return binding
104
+ } catch (e) {
105
+ loadErrors.push(e)
106
+ }
107
+ } else {
108
+ loadErrors.push(new Error(`Unsupported architecture on Android ${process.arch}`))
109
+ }
110
+ } else if (process.platform === 'win32') {
111
+ if (process.arch === 'x64') {
112
+ if (process.config?.variables?.shlib_suffix === 'dll.a' || process.config?.variables?.node_target_type === 'shared_library') {
113
+ try {
114
+ return require('./system-info.win32-x64-gnu.node')
115
+ } catch (e) {
116
+ loadErrors.push(e)
117
+ }
118
+ try {
119
+ const binding = require('@puniyu/system-info-win32-x64-gnu')
120
+ const bindingPackageVersion = require('@puniyu/system-info-win32-x64-gnu/package.json').version
121
+ if (bindingPackageVersion !== '1.1.5' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
122
+ throw new Error(`Native binding package version mismatch, expected 1.1.5 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
123
+ }
124
+ return binding
125
+ } catch (e) {
126
+ loadErrors.push(e)
127
+ }
128
+ } else {
129
+ try {
130
+ return require('./system-info.win32-x64-msvc.node')
131
+ } catch (e) {
132
+ loadErrors.push(e)
133
+ }
134
+ try {
135
+ const binding = require('@puniyu/system-info-win32-x64-msvc')
136
+ const bindingPackageVersion = require('@puniyu/system-info-win32-x64-msvc/package.json').version
137
+ if (bindingPackageVersion !== '1.1.5' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
138
+ throw new Error(`Native binding package version mismatch, expected 1.1.5 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
139
+ }
140
+ return binding
141
+ } catch (e) {
142
+ loadErrors.push(e)
143
+ }
144
+ }
145
+ } else if (process.arch === 'ia32') {
146
+ try {
147
+ return require('./system-info.win32-ia32-msvc.node')
148
+ } catch (e) {
149
+ loadErrors.push(e)
150
+ }
151
+ try {
152
+ const binding = require('@puniyu/system-info-win32-ia32-msvc')
153
+ const bindingPackageVersion = require('@puniyu/system-info-win32-ia32-msvc/package.json').version
154
+ if (bindingPackageVersion !== '1.1.5' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
155
+ throw new Error(`Native binding package version mismatch, expected 1.1.5 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
156
+ }
157
+ return binding
158
+ } catch (e) {
159
+ loadErrors.push(e)
160
+ }
161
+ } else if (process.arch === 'arm64') {
162
+ try {
163
+ return require('./system-info.win32-arm64-msvc.node')
164
+ } catch (e) {
165
+ loadErrors.push(e)
166
+ }
167
+ try {
168
+ const binding = require('@puniyu/system-info-win32-arm64-msvc')
169
+ const bindingPackageVersion = require('@puniyu/system-info-win32-arm64-msvc/package.json').version
170
+ if (bindingPackageVersion !== '1.1.5' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
171
+ throw new Error(`Native binding package version mismatch, expected 1.1.5 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
172
+ }
173
+ return binding
174
+ } catch (e) {
175
+ loadErrors.push(e)
176
+ }
177
+ } else {
178
+ loadErrors.push(new Error(`Unsupported architecture on Windows: ${process.arch}`))
179
+ }
180
+ } else if (process.platform === 'darwin') {
181
+ try {
182
+ return require('./system-info.darwin-universal.node')
183
+ } catch (e) {
184
+ loadErrors.push(e)
185
+ }
186
+ try {
187
+ const binding = require('@puniyu/system-info-darwin-universal')
188
+ const bindingPackageVersion = require('@puniyu/system-info-darwin-universal/package.json').version
189
+ if (bindingPackageVersion !== '1.1.5' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
190
+ throw new Error(`Native binding package version mismatch, expected 1.1.5 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
191
+ }
192
+ return binding
193
+ } catch (e) {
194
+ loadErrors.push(e)
195
+ }
196
+ if (process.arch === 'x64') {
197
+ try {
198
+ return require('./system-info.darwin-x64.node')
199
+ } catch (e) {
200
+ loadErrors.push(e)
201
+ }
202
+ try {
203
+ const binding = require('@puniyu/system-info-darwin-x64')
204
+ const bindingPackageVersion = require('@puniyu/system-info-darwin-x64/package.json').version
205
+ if (bindingPackageVersion !== '1.1.5' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
206
+ throw new Error(`Native binding package version mismatch, expected 1.1.5 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
207
+ }
208
+ return binding
209
+ } catch (e) {
210
+ loadErrors.push(e)
211
+ }
212
+ } else if (process.arch === 'arm64') {
213
+ try {
214
+ return require('./system-info.darwin-arm64.node')
215
+ } catch (e) {
216
+ loadErrors.push(e)
217
+ }
218
+ try {
219
+ const binding = require('@puniyu/system-info-darwin-arm64')
220
+ const bindingPackageVersion = require('@puniyu/system-info-darwin-arm64/package.json').version
221
+ if (bindingPackageVersion !== '1.1.5' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
222
+ throw new Error(`Native binding package version mismatch, expected 1.1.5 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
223
+ }
224
+ return binding
225
+ } catch (e) {
226
+ loadErrors.push(e)
227
+ }
228
+ } else {
229
+ loadErrors.push(new Error(`Unsupported architecture on macOS: ${process.arch}`))
230
+ }
231
+ } else if (process.platform === 'freebsd') {
232
+ if (process.arch === 'x64') {
233
+ try {
234
+ return require('./system-info.freebsd-x64.node')
235
+ } catch (e) {
236
+ loadErrors.push(e)
237
+ }
238
+ try {
239
+ const binding = require('@puniyu/system-info-freebsd-x64')
240
+ const bindingPackageVersion = require('@puniyu/system-info-freebsd-x64/package.json').version
241
+ if (bindingPackageVersion !== '1.1.5' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
242
+ throw new Error(`Native binding package version mismatch, expected 1.1.5 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
243
+ }
244
+ return binding
245
+ } catch (e) {
246
+ loadErrors.push(e)
247
+ }
248
+ } else if (process.arch === 'arm64') {
249
+ try {
250
+ return require('./system-info.freebsd-arm64.node')
251
+ } catch (e) {
252
+ loadErrors.push(e)
253
+ }
254
+ try {
255
+ const binding = require('@puniyu/system-info-freebsd-arm64')
256
+ const bindingPackageVersion = require('@puniyu/system-info-freebsd-arm64/package.json').version
257
+ if (bindingPackageVersion !== '1.1.5' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
258
+ throw new Error(`Native binding package version mismatch, expected 1.1.5 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
259
+ }
260
+ return binding
261
+ } catch (e) {
262
+ loadErrors.push(e)
263
+ }
264
+ } else {
265
+ loadErrors.push(new Error(`Unsupported architecture on FreeBSD: ${process.arch}`))
266
+ }
267
+ } else if (process.platform === 'linux') {
268
+ if (process.arch === 'x64') {
269
+ if (isMusl()) {
270
+ try {
271
+ return require('./system-info.linux-x64-musl.node')
272
+ } catch (e) {
273
+ loadErrors.push(e)
274
+ }
275
+ try {
276
+ const binding = require('@puniyu/system-info-linux-x64-musl')
277
+ const bindingPackageVersion = require('@puniyu/system-info-linux-x64-musl/package.json').version
278
+ if (bindingPackageVersion !== '1.1.5' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
279
+ throw new Error(`Native binding package version mismatch, expected 1.1.5 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
280
+ }
281
+ return binding
282
+ } catch (e) {
283
+ loadErrors.push(e)
284
+ }
285
+ } else {
286
+ try {
287
+ return require('./system-info.linux-x64-gnu.node')
288
+ } catch (e) {
289
+ loadErrors.push(e)
290
+ }
291
+ try {
292
+ const binding = require('@puniyu/system-info-linux-x64-gnu')
293
+ const bindingPackageVersion = require('@puniyu/system-info-linux-x64-gnu/package.json').version
294
+ if (bindingPackageVersion !== '1.1.5' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
295
+ throw new Error(`Native binding package version mismatch, expected 1.1.5 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
296
+ }
297
+ return binding
298
+ } catch (e) {
299
+ loadErrors.push(e)
300
+ }
301
+ }
302
+ } else if (process.arch === 'arm64') {
303
+ if (isMusl()) {
304
+ try {
305
+ return require('./system-info.linux-arm64-musl.node')
306
+ } catch (e) {
307
+ loadErrors.push(e)
308
+ }
309
+ try {
310
+ const binding = require('@puniyu/system-info-linux-arm64-musl')
311
+ const bindingPackageVersion = require('@puniyu/system-info-linux-arm64-musl/package.json').version
312
+ if (bindingPackageVersion !== '1.1.5' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
313
+ throw new Error(`Native binding package version mismatch, expected 1.1.5 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
314
+ }
315
+ return binding
316
+ } catch (e) {
317
+ loadErrors.push(e)
318
+ }
319
+ } else {
320
+ try {
321
+ return require('./system-info.linux-arm64-gnu.node')
322
+ } catch (e) {
323
+ loadErrors.push(e)
324
+ }
325
+ try {
326
+ const binding = require('@puniyu/system-info-linux-arm64-gnu')
327
+ const bindingPackageVersion = require('@puniyu/system-info-linux-arm64-gnu/package.json').version
328
+ if (bindingPackageVersion !== '1.1.5' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
329
+ throw new Error(`Native binding package version mismatch, expected 1.1.5 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
330
+ }
331
+ return binding
332
+ } catch (e) {
333
+ loadErrors.push(e)
334
+ }
335
+ }
336
+ } else if (process.arch === 'arm') {
337
+ if (isMusl()) {
338
+ try {
339
+ return require('./system-info.linux-arm-musleabihf.node')
340
+ } catch (e) {
341
+ loadErrors.push(e)
342
+ }
343
+ try {
344
+ const binding = require('@puniyu/system-info-linux-arm-musleabihf')
345
+ const bindingPackageVersion = require('@puniyu/system-info-linux-arm-musleabihf/package.json').version
346
+ if (bindingPackageVersion !== '1.1.5' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
347
+ throw new Error(`Native binding package version mismatch, expected 1.1.5 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
348
+ }
349
+ return binding
350
+ } catch (e) {
351
+ loadErrors.push(e)
352
+ }
353
+ } else {
354
+ try {
355
+ return require('./system-info.linux-arm-gnueabihf.node')
356
+ } catch (e) {
357
+ loadErrors.push(e)
358
+ }
359
+ try {
360
+ const binding = require('@puniyu/system-info-linux-arm-gnueabihf')
361
+ const bindingPackageVersion = require('@puniyu/system-info-linux-arm-gnueabihf/package.json').version
362
+ if (bindingPackageVersion !== '1.1.5' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
363
+ throw new Error(`Native binding package version mismatch, expected 1.1.5 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
364
+ }
365
+ return binding
366
+ } catch (e) {
367
+ loadErrors.push(e)
368
+ }
369
+ }
370
+ } else if (process.arch === 'loong64') {
371
+ if (isMusl()) {
372
+ try {
373
+ return require('./system-info.linux-loong64-musl.node')
374
+ } catch (e) {
375
+ loadErrors.push(e)
376
+ }
377
+ try {
378
+ const binding = require('@puniyu/system-info-linux-loong64-musl')
379
+ const bindingPackageVersion = require('@puniyu/system-info-linux-loong64-musl/package.json').version
380
+ if (bindingPackageVersion !== '1.1.5' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
381
+ throw new Error(`Native binding package version mismatch, expected 1.1.5 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
382
+ }
383
+ return binding
384
+ } catch (e) {
385
+ loadErrors.push(e)
386
+ }
387
+ } else {
388
+ try {
389
+ return require('./system-info.linux-loong64-gnu.node')
390
+ } catch (e) {
391
+ loadErrors.push(e)
392
+ }
393
+ try {
394
+ const binding = require('@puniyu/system-info-linux-loong64-gnu')
395
+ const bindingPackageVersion = require('@puniyu/system-info-linux-loong64-gnu/package.json').version
396
+ if (bindingPackageVersion !== '1.1.5' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
397
+ throw new Error(`Native binding package version mismatch, expected 1.1.5 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
398
+ }
399
+ return binding
400
+ } catch (e) {
401
+ loadErrors.push(e)
402
+ }
403
+ }
404
+ } else if (process.arch === 'riscv64') {
405
+ if (isMusl()) {
406
+ try {
407
+ return require('./system-info.linux-riscv64-musl.node')
408
+ } catch (e) {
409
+ loadErrors.push(e)
410
+ }
411
+ try {
412
+ const binding = require('@puniyu/system-info-linux-riscv64-musl')
413
+ const bindingPackageVersion = require('@puniyu/system-info-linux-riscv64-musl/package.json').version
414
+ if (bindingPackageVersion !== '1.1.5' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
415
+ throw new Error(`Native binding package version mismatch, expected 1.1.5 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
416
+ }
417
+ return binding
418
+ } catch (e) {
419
+ loadErrors.push(e)
420
+ }
421
+ } else {
422
+ try {
423
+ return require('./system-info.linux-riscv64-gnu.node')
424
+ } catch (e) {
425
+ loadErrors.push(e)
426
+ }
427
+ try {
428
+ const binding = require('@puniyu/system-info-linux-riscv64-gnu')
429
+ const bindingPackageVersion = require('@puniyu/system-info-linux-riscv64-gnu/package.json').version
430
+ if (bindingPackageVersion !== '1.1.5' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
431
+ throw new Error(`Native binding package version mismatch, expected 1.1.5 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
432
+ }
433
+ return binding
434
+ } catch (e) {
435
+ loadErrors.push(e)
436
+ }
437
+ }
438
+ } else if (process.arch === 'ppc64') {
439
+ try {
440
+ return require('./system-info.linux-ppc64-gnu.node')
441
+ } catch (e) {
442
+ loadErrors.push(e)
443
+ }
444
+ try {
445
+ const binding = require('@puniyu/system-info-linux-ppc64-gnu')
446
+ const bindingPackageVersion = require('@puniyu/system-info-linux-ppc64-gnu/package.json').version
447
+ if (bindingPackageVersion !== '1.1.5' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
448
+ throw new Error(`Native binding package version mismatch, expected 1.1.5 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
449
+ }
450
+ return binding
451
+ } catch (e) {
452
+ loadErrors.push(e)
453
+ }
454
+ } else if (process.arch === 's390x') {
455
+ try {
456
+ return require('./system-info.linux-s390x-gnu.node')
457
+ } catch (e) {
458
+ loadErrors.push(e)
459
+ }
460
+ try {
461
+ const binding = require('@puniyu/system-info-linux-s390x-gnu')
462
+ const bindingPackageVersion = require('@puniyu/system-info-linux-s390x-gnu/package.json').version
463
+ if (bindingPackageVersion !== '1.1.5' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
464
+ throw new Error(`Native binding package version mismatch, expected 1.1.5 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
465
+ }
466
+ return binding
467
+ } catch (e) {
468
+ loadErrors.push(e)
469
+ }
470
+ } else {
471
+ loadErrors.push(new Error(`Unsupported architecture on Linux: ${process.arch}`))
472
+ }
473
+ } else if (process.platform === 'openharmony') {
474
+ if (process.arch === 'arm64') {
475
+ try {
476
+ return require('./system-info.openharmony-arm64.node')
477
+ } catch (e) {
478
+ loadErrors.push(e)
479
+ }
480
+ try {
481
+ const binding = require('@puniyu/system-info-openharmony-arm64')
482
+ const bindingPackageVersion = require('@puniyu/system-info-openharmony-arm64/package.json').version
483
+ if (bindingPackageVersion !== '1.1.5' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
484
+ throw new Error(`Native binding package version mismatch, expected 1.1.5 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
485
+ }
486
+ return binding
487
+ } catch (e) {
488
+ loadErrors.push(e)
489
+ }
490
+ } else if (process.arch === 'x64') {
491
+ try {
492
+ return require('./system-info.openharmony-x64.node')
493
+ } catch (e) {
494
+ loadErrors.push(e)
495
+ }
496
+ try {
497
+ const binding = require('@puniyu/system-info-openharmony-x64')
498
+ const bindingPackageVersion = require('@puniyu/system-info-openharmony-x64/package.json').version
499
+ if (bindingPackageVersion !== '1.1.5' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
500
+ throw new Error(`Native binding package version mismatch, expected 1.1.5 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
501
+ }
502
+ return binding
503
+ } catch (e) {
504
+ loadErrors.push(e)
505
+ }
506
+ } else if (process.arch === 'arm') {
507
+ try {
508
+ return require('./system-info.openharmony-arm.node')
509
+ } catch (e) {
510
+ loadErrors.push(e)
511
+ }
512
+ try {
513
+ const binding = require('@puniyu/system-info-openharmony-arm')
514
+ const bindingPackageVersion = require('@puniyu/system-info-openharmony-arm/package.json').version
515
+ if (bindingPackageVersion !== '1.1.5' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
516
+ throw new Error(`Native binding package version mismatch, expected 1.1.5 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
517
+ }
518
+ return binding
519
+ } catch (e) {
520
+ loadErrors.push(e)
521
+ }
522
+ } else {
523
+ loadErrors.push(new Error(`Unsupported architecture on OpenHarmony: ${process.arch}`))
524
+ }
525
+ } else {
526
+ loadErrors.push(new Error(`Unsupported OS: ${process.platform}, architecture: ${process.arch}`))
527
+ }
528
+ }
529
+
530
+ nativeBinding = requireNative()
531
+
532
+ if (!nativeBinding || process.env.NAPI_RS_FORCE_WASI) {
533
+ let wasiBinding = null
534
+ let wasiBindingError = null
535
+ try {
536
+ wasiBinding = require('./system-info.wasi.cjs')
537
+ nativeBinding = wasiBinding
538
+ } catch (err) {
539
+ if (process.env.NAPI_RS_FORCE_WASI) {
540
+ wasiBindingError = err
541
+ }
542
+ }
543
+ if (!nativeBinding) {
544
+ try {
545
+ wasiBinding = require('@puniyu/system-info-wasm32-wasi')
546
+ nativeBinding = wasiBinding
547
+ } catch (err) {
548
+ if (process.env.NAPI_RS_FORCE_WASI) {
549
+ wasiBindingError.cause = err
550
+ loadErrors.push(err)
551
+ }
552
+ }
553
+ }
554
+ if (process.env.NAPI_RS_FORCE_WASI === 'error' && !wasiBinding) {
555
+ const error = new Error('WASI binding not found and NAPI_RS_FORCE_WASI is set to error')
556
+ error.cause = wasiBindingError
557
+ throw error
558
+ }
559
+ }
560
+
561
+ if (!nativeBinding) {
562
+ if (loadErrors.length > 0) {
563
+ throw new Error(
564
+ `Cannot find native binding. ` +
565
+ `npm has a bug related to optional dependencies (https://github.com/npm/cli/issues/4828). ` +
566
+ 'Please try `npm i` again after removing both package-lock.json and node_modules directory.',
567
+ {
568
+ cause: loadErrors.reduce((err, cur) => {
569
+ cur.cause = err
570
+ return cur
571
+ }),
572
+ },
573
+ )
574
+ }
575
+ throw new Error(`Failed to load native binding`)
576
+ }
577
+
578
+ const { getCpuInfo, getCurrentNetwork, getCurrentProcessInfo, getDiskInfo, getGpuInfo, getHostInfo, getMemoryInfo, getNetworkInfo, getProcessInfo } = nativeBinding
579
+ export { getCpuInfo }
580
+ export { getCurrentNetwork }
581
+ export { getCurrentProcessInfo }
582
+ export { getDiskInfo }
583
+ export { getGpuInfo }
584
+ export { getHostInfo }
585
+ export { getMemoryInfo }
586
+ export { getNetworkInfo }
587
+ export { getProcessInfo }
package/package.json ADDED
@@ -0,0 +1,48 @@
1
+ {
2
+ "name": "@puniyu/system-info",
3
+ "version": "1.1.5",
4
+ "description": "一个用于获取系统信息库",
5
+ "main": "dist/index.js",
6
+ "types": "dist/index.d.ts",
7
+ "type": "module",
8
+ "author": "puniyu",
9
+ "repository": "https://github.com/puniyu/system-info",
10
+ "license": "MIT",
11
+ "keywords": [
12
+ "napi-rs",
13
+ "system",
14
+ "system-info"
15
+ ],
16
+ "files": [
17
+ "dist"
18
+ ],
19
+ "napi": {
20
+ "binaryName": "system-info",
21
+ "targets": [
22
+ "x86_64-pc-windows-msvc",
23
+ "x86_64-apple-darwin",
24
+ "x86_64-unknown-linux-gnu",
25
+ "aarch64-unknown-linux-gnu",
26
+ "aarch64-apple-darwin"
27
+ ],
28
+ "dtsHeader": "// powered by system_info_core\n"
29
+ },
30
+ "engines": {
31
+ "node": ">= 12.22.0 < 13 || >= 14.17.0 < 15 || >= 15.12.0 < 16 || >= 16.0.0"
32
+ },
33
+ "devDependencies": {
34
+ "@napi-rs/cli": "^3.4.1"
35
+ },
36
+ "optionalDependencies": {
37
+ "@puniyu/system-info-win32-x64-msvc": "1.1.5",
38
+ "@puniyu/system-info-darwin-x64": "1.1.5",
39
+ "@puniyu/system-info-linux-x64-gnu": "1.1.5",
40
+ "@puniyu/system-info-linux-arm64-gnu": "1.1.5",
41
+ "@puniyu/system-info-darwin-arm64": "1.1.5"
42
+ },
43
+ "scripts": {
44
+ "artifacts": "napi artifacts",
45
+ "build": "napi build --platform --release -p system_info_node --esm -o dist",
46
+ "create-npm-dirs": "napi create-npm-dirs"
47
+ }
48
+ }