├── .github
├── FUNDING.yml
├── renovate.json
└── workflows
│ └── CI.yml
├── rustfmt.toml
├── .yarnrc.yml
├── src
├── sys
│ ├── mod.rs
│ └── macos_aarch64.rs
├── cpu.rs
└── lib.rs
├── .npmignore
├── performance.mjs
├── __test__
└── index.spec.mjs
├── Cargo.toml
├── package.json
├── README.md
├── index.d.ts
├── .gitignore
├── index.js
└── yarn.lock
/.github/FUNDING.yml:
--------------------------------------------------------------------------------
1 | github: [Brooooooklyn]
2 |
--------------------------------------------------------------------------------
/rustfmt.toml:
--------------------------------------------------------------------------------
1 | tab_spaces = 2
2 | edition = "2021"
3 |
--------------------------------------------------------------------------------
/.yarnrc.yml:
--------------------------------------------------------------------------------
1 | nodeLinker: node-modules
2 |
3 | yarnPath: .yarn/releases/yarn-4.12.0.cjs
4 |
--------------------------------------------------------------------------------
/src/sys/mod.rs:
--------------------------------------------------------------------------------
1 | #[cfg(all(target_arch = "aarch64", target_os = "macos"))]
2 | pub mod macos_aarch64;
3 |
--------------------------------------------------------------------------------
/.npmignore:
--------------------------------------------------------------------------------
1 | target
2 | Cargo.lock
3 | .cargo
4 | .github
5 | npm
6 | .eslintrc
7 | .prettierignore
8 | rustfmt.toml
9 | yarn.lock
10 | *.node
11 | .yarn
12 | __test__
13 | renovate.json
14 |
--------------------------------------------------------------------------------
/performance.mjs:
--------------------------------------------------------------------------------
1 | import { cpu } from 'systeminformation'
2 |
3 | import { SysInfo } from './index.js'
4 |
5 | const sys = new SysInfo()
6 |
7 | console.time('systeminformation')
8 | const cpuInfo = await cpu()
9 | console.info(`CPU ${cpuInfo.manufacturer} ${cpuInfo.brand} frequency: ${cpuInfo.speed} MHz`)
10 | console.timeEnd('systeminformation')
11 |
12 | console.time('SysInfo')
13 | for (const cpu of sys.cpus()) {
14 | console.info(`CPU ${cpu.name()} frequency: ${cpu.frequency()} MHz`)
15 | }
16 | console.timeEnd('SysInfo')
17 |
--------------------------------------------------------------------------------
/__test__/index.spec.mjs:
--------------------------------------------------------------------------------
1 | import test from 'ava'
2 |
3 | import { cpuFeatures, SysInfo } from '../index.js'
4 |
5 | test('cpuFeatures', (t) => {
6 | const { arch } = cpuFeatures()
7 | console.info(`CPU architecture: ${arch}`)
8 | t.is(typeof arch, 'string')
9 | })
10 |
11 | test('SysInfo', (t) => {
12 | const sysinfo = new SysInfo()
13 | t.notThrows(() => sysinfo.refreshMemory())
14 | for (const cpu of sysinfo.cpus()) {
15 | console.info(`CPU ${cpu.name()} frequency: ${cpu.frequency()} MHz`)
16 | t.is(typeof cpu.frequency(), 'number')
17 | }
18 | })
19 |
--------------------------------------------------------------------------------
/.github/renovate.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://docs.renovatebot.com/renovate-schema.json",
3 | "extends": [
4 | "config:base",
5 | "group:allNonMajor",
6 | ":preserveSemverRanges",
7 | ":disablePeerDependencies"
8 | ],
9 | "labels": ["dependencies"],
10 | "packageRules": [
11 | {
12 | "matchPackageNames": ["@napi/cli", "napi", "napi-build", "napi-derive"],
13 | "addLabels": ["napi-rs"],
14 | "groupName": "napi-rs"
15 | }
16 | ],
17 | "commitMessagePrefix": "chore: ",
18 | "commitMessageAction": "bump up",
19 | "commitMessageTopic": "{{depName}} version",
20 | "ignoreDeps": []
21 | }
22 |
--------------------------------------------------------------------------------
/Cargo.toml:
--------------------------------------------------------------------------------
1 | [package]
2 | edition = "2021"
3 | name = "napi-rs_cpu-features"
4 | version = "0.0.0"
5 |
6 | [lib]
7 | crate-type = ["cdylib"]
8 |
9 | [dependencies]
10 | napi = { version = "3", default-features = false, features = ["napi6"] }
11 | napi-derive = "3"
12 | sysinfo = "0.37"
13 |
14 | [target.'cfg(all(target_arch = "aarch64", target_os = "macos"))'.dependencies]
15 | core-foundation = "0.10"
16 | libc = "0.2"
17 | once_cell = "1"
18 |
19 | [target.'cfg(any(target_arch = "x86", target_arch = "x86_64"))'.dependencies]
20 | raw-cpuid = "11"
21 |
22 | [build-dependencies]
23 | napi-build = "2"
24 |
25 | [profile.release]
26 | lto = true
27 | codegen-units = 1
28 | strip = "symbols"
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "@napi-rs/sysinfo",
3 | "version": "1.0.0",
4 | "main": "index.js",
5 | "types": "index.d.ts",
6 | "napi": {
7 | "binaryName": "sysinfo",
8 | "targets": [
9 | "x86_64-apple-darwin",
10 | "x86_64-pc-windows-msvc",
11 | "x86_64-unknown-linux-gnu",
12 | "aarch64-apple-darwin",
13 | "aarch64-linux-android",
14 | "aarch64-unknown-linux-gnu",
15 | "aarch64-unknown-linux-musl",
16 | "aarch64-pc-windows-msvc",
17 | "armv7-unknown-linux-gnueabihf",
18 | "x86_64-unknown-linux-musl",
19 | "x86_64-unknown-freebsd",
20 | "i686-pc-windows-msvc",
21 | "armv7-linux-androideabi"
22 | ]
23 | },
24 | "license": "MIT",
25 | "devDependencies": {
26 | "@napi-rs/cli": "^3.0.3",
27 | "ava": "^6.4.1",
28 | "oxlint": "^1.8.0",
29 | "systeminformation": "^5.27.7"
30 | },
31 | "ava": {
32 | "timeout": "3m"
33 | },
34 | "engines": {
35 | "node": ">= 14"
36 | },
37 | "scripts": {
38 | "artifacts": "napi artifacts",
39 | "build": "napi build --platform --release",
40 | "build:debug": "napi build --platform",
41 | "lint": "oxlint",
42 | "prepublishOnly": "napi prepublish -t npm",
43 | "test": "ava",
44 | "universal": "napi universal",
45 | "version": "napi version"
46 | },
47 | "packageManager": "yarn@4.12.0",
48 | "repository": "https://github.com/Brooooooklyn/sysinfo.git",
49 | "description": "Query system information"
50 | }
51 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # `@napi-rs/sysinfo`
2 |
3 | 
4 | [](https://packagephobia.com/result?p=@napi-rs/sysinfo)
5 | [](https://npmcharts.com/compare/@napi-rs/sysinfo?minimal=true)
6 |
7 | > 🚀 Help me to become a full-time open-source developer by [sponsoring me on Github](https://github.com/sponsors/Brooooooklyn)
8 |
9 | ## `cpuFeatures`
10 |
11 | ```js
12 | import { cpuFeatures } from '@napi-rs/sysinfo'
13 |
14 | console.log(cpuFeatures())
15 | ```
16 |
17 |
18 | cpuFeatures() output
19 |
20 |
21 | ```js
22 | {
23 | arch: 'aarch64',
24 | brand: 'Apple M1 Max',
25 | flags: {
26 | asimd: true,
27 | pmull: false,
28 | fp: true,
29 | fp16: true,
30 | sve: false,
31 | crc: true,
32 | lse: true,
33 | lse2: false,
34 | rdm: true,
35 | rcpc: true,
36 | rcpc2: true,
37 | dotprod: true,
38 | tme: false,
39 | fhm: true,
40 | dit: true,
41 | flagm: true,
42 | ssbs: true,
43 | sb: true,
44 | paca: true,
45 | pacg: true,
46 | dpb: true,
47 | dpb2: true,
48 | sve2: false,
49 | sve2Aes: false,
50 | sve2Sm4: false,
51 | sve2Sha3: false,
52 | sve2Bitperm: false,
53 | frintts: true,
54 | i8Mm: false,
55 | f32Mm: false,
56 | f64Mm: false,
57 | bf16: false,
58 | rand: false,
59 | bti: false,
60 | mte: false,
61 | jsconv: true,
62 | fcma: true,
63 | aes: true,
64 | sha2: true,
65 | sha3: true,
66 | sm4: false
67 | }
68 | }
69 | ```
70 |
71 |
72 | ## `sysinfo`
73 |
74 | ### `CPU info`
75 |
76 | ```js
77 | import { SysInfo } from '@napi-rs/sysinfo'
78 |
79 | const sysinfo = new SysInfo()
80 |
81 | for (const cpu of sysinfo.cpus()) {
82 | console.log(cpu.brand(), cpu.name(), cpu.frequency())
83 | }
84 | // Apple M1 Max cpu0 2427
85 | // Apple M1 Max cpu1 2427
86 | // Apple M1 Max cpu2 3298
87 | // Apple M1 Max cpu3 3298
88 | // Apple M1 Max cpu4 3298
89 | // Apple M1 Max cpu5 3298
90 | // Apple M1 Max cpu6 3298
91 | // Apple M1 Max cpu7 3298
92 | // Apple M1 Max cpu8 3298
93 | // Apple M1 Max cpu9 3298
94 | ```
95 |
--------------------------------------------------------------------------------
/index.d.ts:
--------------------------------------------------------------------------------
1 | /* auto-generated by NAPI-RS */
2 | /* eslint-disable */
3 | export declare class Cpu {
4 | usage(): number
5 | name(): string
6 | name(): string
7 | /** Cpu frequency in `MHz` */
8 | frequency(): number
9 | vendorId(): string
10 | brand(): string
11 | }
12 |
13 | export declare class SysInfo {
14 | constructor()
15 | cpus(): Array
16 | refreshMemory(): void
17 | totalMemory(): bigint
18 | freeMemory(): bigint
19 | availableMemory(): bigint
20 | usedMemory(): bigint
21 | totalSwap(): bigint
22 | freeSwap(): bigint
23 | usedSwap(): bigint
24 | uptime(): void
25 | bootTime(): bigint
26 | systemName(): string | null
27 | longOsVersion(): string | null
28 | hostName(): string | null
29 | kernelVersion(): string | null
30 | osVersion(): string | null
31 | distribution(): string
32 | loadAverage(): LoadAvg
33 | refreshComponentsList(): void
34 | }
35 |
36 | export declare function cpuFeatures(): CpuFeatures
37 |
38 | export interface CpuFeatures {
39 | arch: string
40 | brand?: string
41 | family?: number
42 | model?: number
43 | steppingId?: number
44 | flags: CpuFeaturesFlags
45 | }
46 |
47 | export interface CpuFeaturesFlags {
48 | asimd: boolean
49 | pmull: boolean
50 | fp: boolean
51 | fp16: boolean
52 | sve: boolean
53 | crc: boolean
54 | lse: boolean
55 | lse2: boolean
56 | rdm: boolean
57 | rcpc: boolean
58 | rcpc2: boolean
59 | dotprod: boolean
60 | tme: boolean
61 | fhm: boolean
62 | dit: boolean
63 | flagm: boolean
64 | ssbs: boolean
65 | sb: boolean
66 | paca: boolean
67 | pacg: boolean
68 | dpb: boolean
69 | dpb2: boolean
70 | sve2: boolean
71 | sve2Aes: boolean
72 | sve2Sm4: boolean
73 | sve2Sha3: boolean
74 | sve2Bitperm: boolean
75 | frintts: boolean
76 | i8Mm: boolean
77 | f32Mm: boolean
78 | f64Mm: boolean
79 | bf16: boolean
80 | rand: boolean
81 | bti: boolean
82 | mte: boolean
83 | jsconv: boolean
84 | fcma: boolean
85 | aes: boolean
86 | sha2: boolean
87 | sha3: boolean
88 | sm4: boolean
89 | }
90 |
91 | /**
92 | * A Object representing system load average value.
93 | *
94 | * ```js
95 | * import { SysInfo } from '@napi-rs/sysinfo';
96 | * const s = new SysInfo();
97 | * const loadAvg = s.loadAverage();
98 | *
99 | * console.log(
100 | * `one minute: ${loadAvg.one}%, five minutes: ${loadAvg.five}%, fifteen minutes: ${loadAvg.fifteen}%`,
101 | * )
102 | * ```
103 | */
104 | export interface LoadAvg {
105 | /** Average load within one minute. */
106 | one: number
107 | /** Average load within five minutes. */
108 | five: number
109 | /** Average load within fifteen minutes. */
110 | fifteen: number
111 | }
112 |
--------------------------------------------------------------------------------
/src/sys/macos_aarch64.rs:
--------------------------------------------------------------------------------
1 | #![allow(non_camel_case_types)]
2 |
3 | #[cfg(all(target_arch = "aarch64", target_os = "macos"))]
4 | use core_foundation::dictionary::{CFDictionaryRef, CFMutableDictionaryRef};
5 |
6 | #[cfg(all(target_arch = "aarch64", target_os = "macos"))]
7 | pub type io_object_t = libc::mach_port_t;
8 | pub type io_iterator_t = io_object_t;
9 | pub type io_registry_entry_t = io_object_t;
10 |
11 | #[cfg(all(target_arch = "aarch64", target_os = "macos"))]
12 | extern "C" {
13 | pub static kIOMasterPortDefault: libc::mach_port_t;
14 |
15 | pub fn IOMasterPort(
16 | bootstrapPort: libc::mach_port_t,
17 | masterPort: *mut libc::mach_port_t,
18 | ) -> libc::kern_return_t;
19 | pub fn IOServiceMatching(name: *const libc::c_char) -> CFMutableDictionaryRef;
20 |
21 | pub fn IOServiceGetMatchingServices(
22 | masterPort: libc::mach_port_t,
23 | matching: CFDictionaryRef,
24 | existing: *mut io_object_t,
25 | ) -> libc::kern_return_t;
26 |
27 | pub fn IOObjectRelease(object: io_object_t) -> libc::kern_return_t;
28 |
29 | pub fn IOIteratorNext(iterator: io_iterator_t) -> io_object_t;
30 |
31 | pub fn IORegistryEntryCreateCFProperties(
32 | entry: io_registry_entry_t,
33 | property_name: *mut core_foundation::dictionary::CFMutableDictionaryRef,
34 | buffer: *const libc::c_void,
35 | size: u32,
36 | ) -> libc::kern_return_t;
37 |
38 | }
39 |
40 | #[repr(i32)]
41 | #[derive(Debug, Clone, Copy, PartialEq, Eq)]
42 | pub enum KernStatus {
43 | KernSuccess = 0,
44 | KernInvalidAddress = 1,
45 | KernProtectionFailure = 2,
46 | KernNoSpace = 3,
47 | KernInvalidArgument = 4,
48 | KernFailure = 5,
49 | KernResourceShortage = 6,
50 | KernNotReceiver = 7,
51 | KernNoAccess = 8,
52 | KernMemoryFailure = 9,
53 | KernMemoryError = 10,
54 | KernAlreadyInSet = 11,
55 | KernNotInSet = 12,
56 | KernNameExists = 13,
57 | KernAborted = 14,
58 | KernInvalidName = 15,
59 | KernInvalidTask = 16,
60 | KernInvalidRight = 17,
61 | KernInvalidValue = 18,
62 | KernUrefsOverflow = 19,
63 | KernInvalidCapability = 20,
64 | KernRightExists = 21,
65 | KernInvalidHost = 22,
66 | KernMemoryPresent = 23,
67 | KernMemoryDataMoved = 24,
68 | KernMemoryRestartCopy = 25,
69 | KernInvalidProcessorSet = 26,
70 | KernPolicyLimit = 27,
71 | KernInvalidPolicy = 28,
72 | KernInvalidObject = 29,
73 | KernAlreadyWaiting = 30,
74 | KernDefaultSet = 31,
75 | KernExceptionProtected = 32,
76 | KernInvalidLedger = 33,
77 | KernInvalidMemoryControl = 34,
78 | KernInvalidSecurity = 35,
79 | KernNotDepressed = 36,
80 | KernTerminated = 37,
81 | KernLockSetDestroyed = 38,
82 | KernLockUnstable = 39,
83 | KernLockOwned = 40,
84 | KernLockOwnedSelf = 41,
85 | KernSemaphoreDestroyed = 42,
86 | KernRpcServerTerminated = 43,
87 | KernRpcTerminateOrphan = 44,
88 | KernRpcContinueOrphan = 45,
89 | KernNotSupported = 46,
90 | KernNodeDown = 47,
91 | KernNotWaiting = 48,
92 | KernOperationTimedOut = 49,
93 | KernCodesignError = 50,
94 | KernPolicyStatic = 51,
95 | KernInsufficientBufferSize = 52,
96 | KernUnknown = 4096,
97 | }
98 |
99 | impl From for KernStatus {
100 | fn from(value: libc::c_int) -> Self {
101 | match value {
102 | 0 => KernStatus::KernSuccess,
103 | 1 => KernStatus::KernInvalidAddress,
104 | 2 => KernStatus::KernProtectionFailure,
105 | 3 => KernStatus::KernNoSpace,
106 | 4 => KernStatus::KernInvalidArgument,
107 | 5 => KernStatus::KernFailure,
108 | 6 => KernStatus::KernResourceShortage,
109 | 7 => KernStatus::KernNotReceiver,
110 | 8 => KernStatus::KernNoAccess,
111 | 9 => KernStatus::KernMemoryFailure,
112 | 10 => KernStatus::KernMemoryError,
113 | 11 => KernStatus::KernAlreadyInSet,
114 | 12 => KernStatus::KernNotInSet,
115 | 13 => KernStatus::KernNameExists,
116 | 14 => KernStatus::KernAborted,
117 | 15 => KernStatus::KernInvalidName,
118 | 16 => KernStatus::KernInvalidTask,
119 | 17 => KernStatus::KernInvalidRight,
120 | 18 => KernStatus::KernInvalidValue,
121 | 19 => KernStatus::KernUrefsOverflow,
122 | 20 => KernStatus::KernInvalidCapability,
123 | 21 => KernStatus::KernRightExists,
124 | 22 => KernStatus::KernInvalidHost,
125 | 23 => KernStatus::KernMemoryPresent,
126 | 24 => KernStatus::KernMemoryDataMoved,
127 | 25 => KernStatus::KernMemoryRestartCopy,
128 | 26 => KernStatus::KernInvalidProcessorSet,
129 | 27 => KernStatus::KernPolicyLimit,
130 | 28 => KernStatus::KernInvalidPolicy,
131 | 29 => KernStatus::KernInvalidObject,
132 | 30 => KernStatus::KernAlreadyWaiting,
133 | 31 => KernStatus::KernDefaultSet,
134 | 32 => KernStatus::KernExceptionProtected,
135 | 33 => KernStatus::KernInvalidLedger,
136 | 34 => KernStatus::KernInvalidMemoryControl,
137 | 35 => KernStatus::KernInvalidSecurity,
138 | 36 => KernStatus::KernNotDepressed,
139 | 37 => KernStatus::KernTerminated,
140 | 38 => KernStatus::KernLockSetDestroyed,
141 | 39 => KernStatus::KernLockUnstable,
142 | 40 => KernStatus::KernLockOwned,
143 | 41 => KernStatus::KernLockOwnedSelf,
144 | 42 => KernStatus::KernSemaphoreDestroyed,
145 | 43 => KernStatus::KernRpcServerTerminated,
146 | 44 => KernStatus::KernRpcTerminateOrphan,
147 | 45 => KernStatus::KernRpcContinueOrphan,
148 | 46 => KernStatus::KernNotSupported,
149 | 47 => KernStatus::KernNodeDown,
150 | 48 => KernStatus::KernNotWaiting,
151 | 49 => KernStatus::KernOperationTimedOut,
152 | 50 => KernStatus::KernCodesignError,
153 | 51 => KernStatus::KernPolicyStatic,
154 | 52 => KernStatus::KernInsufficientBufferSize,
155 | _ => KernStatus::KernUnknown,
156 | }
157 | }
158 | }
159 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # Created by https://www.toptal.com/developers/gitignore/api/node
2 | # Edit at https://www.toptal.com/developers/gitignore?templates=node
3 |
4 | ### Node ###
5 | # Logs
6 | logs
7 | *.log
8 | npm-debug.log*
9 | yarn-debug.log*
10 | yarn-error.log*
11 | lerna-debug.log*
12 |
13 | # Diagnostic reports (https://nodejs.org/api/report.html)
14 | report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json
15 |
16 | # Runtime data
17 | pids
18 | *.pid
19 | *.seed
20 | *.pid.lock
21 |
22 | # Directory for instrumented libs generated by jscoverage/JSCover
23 | lib-cov
24 |
25 | # Coverage directory used by tools like istanbul
26 | coverage
27 | *.lcov
28 |
29 | # nyc test coverage
30 | .nyc_output
31 |
32 | # Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
33 | .grunt
34 |
35 | # Bower dependency directory (https://bower.io/)
36 | bower_components
37 |
38 | # node-waf configuration
39 | .lock-wscript
40 |
41 | # Compiled binary addons (https://nodejs.org/api/addons.html)
42 | build/Release
43 |
44 | # Dependency directories
45 | node_modules/
46 | jspm_packages/
47 |
48 | # TypeScript v1 declaration files
49 | typings/
50 |
51 | # TypeScript cache
52 | *.tsbuildinfo
53 |
54 | # Optional npm cache directory
55 | .npm
56 |
57 | # Optional eslint cache
58 | .eslintcache
59 |
60 | # Microbundle cache
61 | .rpt2_cache/
62 | .rts2_cache_cjs/
63 | .rts2_cache_es/
64 | .rts2_cache_umd/
65 |
66 | # Optional REPL history
67 | .node_repl_history
68 |
69 | # Output of 'npm pack'
70 | *.tgz
71 |
72 | # Yarn Integrity file
73 | .yarn-integrity
74 |
75 | # dotenv environment variables file
76 | .env
77 | .env.test
78 |
79 | # parcel-bundler cache (https://parceljs.org/)
80 | .cache
81 |
82 | # Next.js build output
83 | .next
84 |
85 | # Nuxt.js build / generate output
86 | .nuxt
87 | dist
88 |
89 | # Gatsby files
90 | .cache/
91 | # Comment in the public line in if your project uses Gatsby and not Next.js
92 | # https://nextjs.org/blog/next-9-1#public-directory-support
93 | # public
94 |
95 | # vuepress build output
96 | .vuepress/dist
97 |
98 | # Serverless directories
99 | .serverless/
100 |
101 | # FuseBox cache
102 | .fusebox/
103 |
104 | # DynamoDB Local files
105 | .dynamodb/
106 |
107 | # TernJS port file
108 | .tern-port
109 |
110 | # Stores VSCode versions used for testing VSCode extensions
111 | .vscode-test
112 |
113 | # End of https://www.toptal.com/developers/gitignore/api/node
114 |
115 | # Created by https://www.toptal.com/developers/gitignore/api/macos
116 | # Edit at https://www.toptal.com/developers/gitignore?templates=macos
117 |
118 | ### macOS ###
119 | # General
120 | .DS_Store
121 | .AppleDouble
122 | .LSOverride
123 |
124 | # Icon must end with two
125 | Icon
126 |
127 |
128 | # Thumbnails
129 | ._*
130 |
131 | # Files that might appear in the root of a volume
132 | .DocumentRevisions-V100
133 | .fseventsd
134 | .Spotlight-V100
135 | .TemporaryItems
136 | .Trashes
137 | .VolumeIcon.icns
138 | .com.apple.timemachine.donotpresent
139 |
140 | # Directories potentially created on remote AFP share
141 | .AppleDB
142 | .AppleDesktop
143 | Network Trash Folder
144 | Temporary Items
145 | .apdisk
146 |
147 | ### macOS Patch ###
148 | # iCloud generated files
149 | *.icloud
150 |
151 | # End of https://www.toptal.com/developers/gitignore/api/macos
152 |
153 | # Created by https://www.toptal.com/developers/gitignore/api/windows
154 | # Edit at https://www.toptal.com/developers/gitignore?templates=windows
155 |
156 | ### Windows ###
157 | # Windows thumbnail cache files
158 | Thumbs.db
159 | Thumbs.db:encryptable
160 | ehthumbs.db
161 | ehthumbs_vista.db
162 |
163 | # Dump file
164 | *.stackdump
165 |
166 | # Folder config file
167 | [Dd]esktop.ini
168 |
169 | # Recycle Bin used on file shares
170 | $RECYCLE.BIN/
171 |
172 | # Windows Installer files
173 | *.cab
174 | *.msi
175 | *.msix
176 | *.msm
177 | *.msp
178 |
179 | # Windows shortcuts
180 | *.lnk
181 |
182 | # End of https://www.toptal.com/developers/gitignore/api/windows
183 |
184 | #Added by cargo
185 |
186 | /target
187 | Cargo.lock
188 |
189 | .pnp.*
190 | .yarn/*
191 | !.yarn/patches
192 | !.yarn/plugins
193 | !.yarn/releases
194 | !.yarn/sdks
195 | !.yarn/versions
196 |
197 | *.node
198 |
199 |
200 | ### Created by https://www.gitignore.io
201 | ### Node ###
202 | # Logs
203 | logs
204 | *.log
205 | npm-debug.log*
206 | yarn-debug.log*
207 | yarn-error.log*
208 | lerna-debug.log*
209 | .pnpm-debug.log*
210 |
211 | # Diagnostic reports (https://nodejs.org/api/report.html)
212 | report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json
213 |
214 | # Runtime data
215 | pids
216 | *.pid
217 | *.seed
218 | *.pid.lock
219 |
220 | # Directory for instrumented libs generated by jscoverage/JSCover
221 | lib-cov
222 |
223 | # Coverage directory used by tools like istanbul
224 | coverage
225 | *.lcov
226 |
227 | # nyc test coverage
228 | .nyc_output
229 |
230 | # Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
231 | .grunt
232 |
233 | # Bower dependency directory (https://bower.io/)
234 | bower_components
235 |
236 | # node-waf configuration
237 | .lock-wscript
238 |
239 | # Compiled binary addons (https://nodejs.org/api/addons.html)
240 | build/Release
241 |
242 | # Dependency directories
243 | node_modules/
244 | jspm_packages/
245 |
246 | # Snowpack dependency directory (https://snowpack.dev/)
247 | web_modules/
248 |
249 | # TypeScript cache
250 | *.tsbuildinfo
251 |
252 | # Optional npm cache directory
253 | .npm
254 |
255 | # Optional eslint cache
256 | .eslintcache
257 |
258 | # Optional stylelint cache
259 | .stylelintcache
260 |
261 | # Microbundle cache
262 | .rpt2_cache/
263 | .rts2_cache_cjs/
264 | .rts2_cache_es/
265 | .rts2_cache_umd/
266 |
267 | # Optional REPL history
268 | .node_repl_history
269 |
270 | # Output of 'npm pack'
271 | *.tgz
272 |
273 | # Yarn Integrity file
274 | .yarn-integrity
275 |
276 | # dotenv environment variable files
277 | .env
278 | .env.development.local
279 | .env.test.local
280 | .env.production.local
281 | .env.local
282 |
283 | # parcel-bundler cache (https://parceljs.org/)
284 | .cache
285 | .parcel-cache
286 |
287 | # Next.js build output
288 | .next
289 | out
290 |
291 | # Nuxt.js build / generate output
292 | .nuxt
293 | dist
294 |
295 | # Gatsby files
296 | .cache/
297 | # Comment in the public line in if your project uses Gatsby and not Next.js
298 | # https://nextjs.org/blog/next-9-1#public-directory-support
299 | # public
300 |
301 | # vuepress build output
302 | .vuepress/dist
303 |
304 | # vuepress v2.x temp and cache directory
305 | .temp
306 | .cache
307 |
308 | # Docusaurus cache and generated files
309 | .docusaurus
310 |
311 | # Serverless directories
312 | .serverless/
313 |
314 | # FuseBox cache
315 | .fusebox/
316 |
317 | # DynamoDB Local files
318 | .dynamodb/
319 |
320 | # TernJS port file
321 | .tern-port
322 |
323 | # Stores VSCode versions used for testing VSCode extensions
324 | .vscode-test
325 |
326 | # yarn v2
327 | .yarn/cache
328 | .yarn/unplugged
329 | .yarn/build-state.yml
330 | .yarn/install-state.gz
331 | .pnp.*
332 |
333 | ### Node Patch ###
334 | # Serverless Webpack directories
335 | .webpack/
336 |
337 | # Optional stylelint cache
338 | .stylelintcache
339 |
340 | # SvelteKit build / generate output
341 | .svelte-kit
342 |
343 |
344 |
345 | ### Created by https://www.gitignore.io
346 | ### macOS ###
347 | # General
348 | .DS_Store
349 | .AppleDouble
350 | .LSOverride
351 |
352 | # Icon must end with two \r
353 | Icon
354 |
355 | # Thumbnails
356 | ._*
357 |
358 | # Files that might appear in the root of a volume
359 | .DocumentRevisions-V100
360 | .fseventsd
361 | .Spotlight-V100
362 | .TemporaryItems
363 | .Trashes
364 | .VolumeIcon.icns
365 | .com.apple.timemachine.donotpresent
366 |
367 | # Directories potentially created on remote AFP share
368 | .AppleDB
369 | .AppleDesktop
370 | Network Trash Folder
371 | Temporary Items
372 | .apdisk
373 |
374 | ### macOS Patch ###
375 | # iCloud generated files
376 | *.icloud
377 |
378 |
379 |
380 | ### Created by https://www.gitignore.io
381 | ### Windows ###
382 | # Windows thumbnail cache files
383 | Thumbs.db
384 | Thumbs.db:encryptable
385 | ehthumbs.db
386 | ehthumbs_vista.db
387 |
388 | # Dump file
389 | *.stackdump
390 |
391 | # Folder config file
392 | [Dd]esktop.ini
393 |
394 | # Recycle Bin used on file shares
395 | $RECYCLE.BIN/
396 |
397 | # Windows Installer files
398 | *.cab
399 | *.msi
400 | *.msix
401 | *.msm
402 | *.msp
403 |
404 | # Windows shortcuts
405 | *.lnk
406 |
407 |
408 |
409 | ### Created by https://www.gitignore.io
410 | ### Linux ###
411 | *~
412 |
413 | # temporary files which can be created if a process still has a handle open of a deleted file
414 | .fuse_hidden*
415 |
416 | # KDE directory preferences
417 | .directory
418 |
419 | # Linux trash folder which might appear on any partition or disk
420 | .Trash-*
421 |
422 | # .nfs files are created when an open file is removed but is still being accessed
423 | .nfs*
424 |
425 |
--------------------------------------------------------------------------------
/src/cpu.rs:
--------------------------------------------------------------------------------
1 | use napi_derive::napi;
2 | #[cfg(all(target_arch = "aarch64", target_os = "macos"))]
3 | use once_cell::sync::Lazy;
4 |
5 | #[cfg(all(target_arch = "aarch64", target_os = "macos"))]
6 | /// (efficiency, performance)
7 | static CORE_FREQUENCY: Lazy> = Lazy::new(|| unsafe {
8 | use core_foundation::{
9 | base::{kCFAllocatorDefault, CFRange, CFType, TCFType},
10 | data::{CFData, CFDataGetBytes, CFDataGetLength},
11 | dictionary::{CFDictionary, CFMutableDictionary, CFMutableDictionaryRef},
12 | string::CFString,
13 | };
14 | use libc::{mach_port_t, KERN_SUCCESS, MACH_PORT_NULL};
15 |
16 | use crate::sys::macos_aarch64::*;
17 |
18 | let mut master_port: mach_port_t = MACH_PORT_NULL as _;
19 | let mut efficiency_core_frequency = 0;
20 | let mut performance_core_frequency = 0;
21 | let kr = IOMasterPort(kIOMasterPortDefault, &mut master_port);
22 | if kr != KERN_SUCCESS {
23 | return Err(napi::Error::new(
24 | napi::Status::GenericFailure,
25 | format!("IOMasterPort failed with {:?}", KernStatus::from(kr)),
26 | ));
27 | }
28 | let platform_device_dictionary = IOServiceMatching(c"AppleARMIODevice".as_ptr().cast());
29 | let mut iterator = std::mem::MaybeUninit::::uninit();
30 | let kr = IOServiceGetMatchingServices(
31 | master_port,
32 | platform_device_dictionary,
33 | iterator.as_mut_ptr(),
34 | );
35 | if kr != KERN_SUCCESS {
36 | return Err(napi::Error::new(
37 | napi::Status::GenericFailure,
38 | format!(
39 | "IOServiceGetMatchingServices failed with {:?}",
40 | KernStatus::from(kr)
41 | ),
42 | ));
43 | }
44 | let iterator = iterator.assume_init();
45 | let mut platform_device_obj = IOIteratorNext(iterator);
46 | while platform_device_obj != 0 {
47 | let mut props = std::mem::MaybeUninit::::uninit();
48 | let kr = IORegistryEntryCreateCFProperties(
49 | platform_device_obj,
50 | props.as_mut_ptr(),
51 | kCFAllocatorDefault,
52 | 0,
53 | );
54 |
55 | if kr != KERN_SUCCESS {
56 | return Err(napi::Error::new(
57 | napi::Status::GenericFailure,
58 | format!(
59 | "IORegistryEntryCreateCFProperties failed with {:?}",
60 | KernStatus::from(kr)
61 | ),
62 | ));
63 | }
64 |
65 | let properties: CFDictionary =
66 | CFMutableDictionary::wrap_under_create_rule(props.assume_init()).to_immutable();
67 |
68 | if let Some(name) = properties.get(CFString::new("name")).downcast::() {
69 | if std::str::from_utf8_unchecked(name.bytes()).to_lowercase() == "pmgr\0" {
70 | if let Some(obj) = properties
71 | .find(CFString::new("voltage-states1-sram"))
72 | .and_then(|cf| cf.downcast::())
73 | {
74 | let obj = obj.as_concrete_TypeRef();
75 | let obj_len = CFDataGetLength(obj);
76 | let obj_val = vec![0u8; obj_len as usize];
77 | CFDataGetBytes(obj, CFRange::init(0, obj_len), obj_val.as_ptr().cast_mut());
78 | let items_count = (obj_len / 8) as usize;
79 | let [mut freqs, mut volts] = [vec![0u32; items_count], vec![0u32; items_count]];
80 | for (i, x) in obj_val.chunks_exact(8).enumerate() {
81 | volts[i] = u32::from_le_bytes([x[4], x[5], x[6], x[7]]);
82 | freqs[i] = u32::from_le_bytes([x[0], x[1], x[2], x[3]]);
83 | freqs[i] = freqs[i] / 1000 / 1000; // as MHz
84 | }
85 |
86 | efficiency_core_frequency = *freqs.last().unwrap() as u64;
87 | }
88 | if let Some(obj) = properties
89 | .find(CFString::new("voltage-states5-sram"))
90 | .and_then(|cf| cf.downcast::())
91 | {
92 | let obj = obj.as_concrete_TypeRef();
93 | let obj_len = CFDataGetLength(obj);
94 | let obj_val = vec![0u8; obj_len as usize];
95 | CFDataGetBytes(obj, CFRange::init(0, obj_len), obj_val.as_ptr().cast_mut());
96 | let items_count = (obj_len / 8) as usize;
97 | let [mut freqs, mut volts] = [vec![0u32; items_count], vec![0u32; items_count]];
98 | for (i, x) in obj_val.chunks_exact(8).enumerate() {
99 | volts[i] = u32::from_le_bytes([x[4], x[5], x[6], x[7]]);
100 | freqs[i] = u32::from_le_bytes([x[0], x[1], x[2], x[3]]);
101 | freqs[i] = freqs[i] / 1000 / 1000; // as MHz
102 | }
103 |
104 | performance_core_frequency = *freqs.last().unwrap() as u64;
105 | }
106 | }
107 | }
108 | IOObjectRelease(platform_device_obj);
109 | if performance_core_frequency != 0 && efficiency_core_frequency != 0 {
110 | break;
111 | }
112 | platform_device_obj = IOIteratorNext(iterator);
113 | }
114 | IOObjectRelease(iterator);
115 | IOObjectRelease(master_port);
116 | Ok((efficiency_core_frequency, performance_core_frequency))
117 | });
118 |
119 | #[cfg(all(target_arch = "aarch64", target_os = "macos"))]
120 | static EFFICIENCY_CLUSTER_TYPE: Lazy>> =
121 | Lazy::new(|| unsafe {
122 | use std::collections::HashMap;
123 |
124 | use core_foundation::{
125 | base::{kCFAllocatorDefault, CFType, TCFType},
126 | data::{CFData, CFDataGetBytePtr},
127 | dictionary::{CFDictionary, CFMutableDictionary, CFMutableDictionaryRef},
128 | string::CFString,
129 | };
130 | use libc::{mach_port_t, KERN_SUCCESS, MACH_PORT_NULL};
131 |
132 | use crate::sys::macos_aarch64::*;
133 |
134 | let mut master_port: mach_port_t = MACH_PORT_NULL as _;
135 | let mut cluster_types = HashMap::new();
136 |
137 | let platform_device_dictionary = IOServiceMatching(c"IOPlatformDevice".as_ptr().cast());
138 | let kr = IOMasterPort(kIOMasterPortDefault, &mut master_port);
139 | if kr != KERN_SUCCESS {
140 | return Err(napi::Error::new(
141 | napi::Status::GenericFailure,
142 | format!("IOMasterPort failed with {:?}", KernStatus::from(kr)),
143 | ));
144 | }
145 | let mut iterator = std::mem::MaybeUninit::::uninit();
146 | let kr = IOServiceGetMatchingServices(
147 | master_port,
148 | platform_device_dictionary,
149 | iterator.as_mut_ptr(),
150 | );
151 | if kr != KERN_SUCCESS {
152 | return Err(napi::Error::new(
153 | napi::Status::GenericFailure,
154 | format!(
155 | "IOServiceGetMatchingServices failed with {:?}",
156 | KernStatus::from(kr)
157 | ),
158 | ));
159 | }
160 | let iterator = iterator.assume_init();
161 | let mut platform_device_obj = IOIteratorNext(iterator);
162 | while platform_device_obj != 0 {
163 | let mut props = std::mem::MaybeUninit::::uninit();
164 | let kr = IORegistryEntryCreateCFProperties(
165 | platform_device_obj,
166 | props.as_mut_ptr(),
167 | kCFAllocatorDefault,
168 | 0,
169 | );
170 |
171 | if kr != KERN_SUCCESS {
172 | return Err(napi::Error::new(
173 | napi::Status::GenericFailure,
174 | format!(
175 | "IORegistryEntryCreateCFProperties failed with {:?}",
176 | KernStatus::from(kr)
177 | ),
178 | ));
179 | }
180 |
181 | let properties: CFDictionary =
182 | CFMutableDictionary::wrap_under_create_rule(props.assume_init()).to_immutable();
183 |
184 | if let Some(name) = properties
185 | .find(CFString::new("device_type"))
186 | .and_then(|d| d.downcast::())
187 | {
188 | if std::str::from_utf8_unchecked(name.bytes()) == "cpu\0" {
189 | if let Some(cluster_type) = properties
190 | .get(CFString::new("cluster-type"))
191 | .downcast::()
192 | {
193 | if let Some(cpu_id) = properties.get(CFString::new("cpu-id")).downcast::() {
194 | let cpu_id = CFDataGetBytePtr(cpu_id.as_concrete_TypeRef());
195 | let cpu_id = cpu_id as *const u32;
196 | let cpu_id = *cpu_id;
197 | let cluster_type = std::str::from_utf8_unchecked(cluster_type.bytes());
198 |
199 | cluster_types.insert(
200 | cpu_id,
201 | match cluster_type {
202 | "E\0" => CpuClusterType::Efficiency,
203 | "P\0" => CpuClusterType::Performance,
204 | _ => CpuClusterType::Unknown,
205 | },
206 | );
207 | }
208 | }
209 | }
210 | }
211 | IOObjectRelease(platform_device_obj);
212 | platform_device_obj = IOIteratorNext(iterator);
213 | }
214 | IOObjectRelease(master_port);
215 | Ok(cluster_types)
216 | });
217 |
218 | #[cfg(all(target_arch = "aarch64", target_os = "macos"))]
219 | #[napi_derive::module_init]
220 | fn pre_init() {
221 | let _ = &*CORE_FREQUENCY;
222 | let _ = &*EFFICIENCY_CLUSTER_TYPE;
223 | }
224 |
225 | #[cfg(all(target_arch = "aarch64", target_os = "macos"))]
226 | enum CpuClusterType {
227 | Efficiency,
228 | Performance,
229 | Unknown,
230 | }
231 |
232 | #[napi]
233 | pub struct Cpu {
234 | pub(crate) inner: &'static sysinfo::Cpu,
235 | }
236 |
237 | #[napi]
238 | impl Cpu {
239 | #[napi]
240 | pub fn usage(&self) -> f32 {
241 | self.inner.cpu_usage()
242 | }
243 |
244 | #[cfg(not(all(target_arch = "aarch64", target_os = "macos")))]
245 | #[napi]
246 | pub fn name(&self) -> String {
247 | self.inner.name().to_string()
248 | }
249 |
250 | #[cfg(all(target_arch = "aarch64", target_os = "macos"))]
251 | #[napi]
252 | pub fn name(&self) -> String {
253 | let name = self.inner.name();
254 | if let Ok(n) = name.parse::() {
255 | format!("cpu{}", if n != 0 { n - 1 } else { 0 })
256 | } else {
257 | name.to_string()
258 | }
259 | }
260 |
261 | #[napi]
262 | /// Cpu frequency in `MHz`
263 | pub fn frequency(&self) -> napi::Result {
264 | #[cfg(not(all(target_arch = "aarch64", target_os = "macos")))]
265 | {
266 | Ok(self.inner.frequency() as u32)
267 | }
268 | #[cfg(all(target_arch = "aarch64", target_os = "macos"))]
269 | {
270 | use napi::Error;
271 |
272 | let (efficiency_core_frequency, performance_core_frequency) = CORE_FREQUENCY
273 | .as_ref()
274 | .map_err(|err| Error::new(err.status, err.reason.clone()))?;
275 | let efficiency_cluster_type = EFFICIENCY_CLUSTER_TYPE
276 | .as_ref()
277 | .map_err(|err| Error::new(err.status, err.reason.clone()))?;
278 |
279 | if let Ok(c) = self.inner.name().parse::() {
280 | match efficiency_cluster_type.get(&(if c == 0 { 0 } else { c - 1 })) {
281 | Some(CpuClusterType::Efficiency) => Ok((*efficiency_core_frequency) as u32),
282 | Some(CpuClusterType::Performance) => Ok((*performance_core_frequency) as u32),
283 | _ => Ok(self.inner.frequency() as u32),
284 | }
285 | } else {
286 | Ok(self.inner.frequency() as u32)
287 | }
288 | }
289 | }
290 |
291 | #[napi]
292 | pub fn vendor_id(&self) -> String {
293 | self.inner.vendor_id().to_string()
294 | }
295 |
296 | #[napi]
297 | pub fn brand(&self) -> String {
298 | self.inner.brand().to_string()
299 | }
300 | }
301 |
--------------------------------------------------------------------------------
/index.js:
--------------------------------------------------------------------------------
1 | // prettier-ignore
2 | /* eslint-disable */
3 | // @ts-nocheck
4 | /* auto-generated by NAPI-RS */
5 |
6 | const { createRequire } = require('node:module')
7 | require = createRequire(__filename)
8 |
9 | const { readFileSync } = require('node:fs')
10 | let nativeBinding = null
11 | const loadErrors = []
12 |
13 | const isMusl = () => {
14 | let musl = false
15 | if (process.platform === 'linux') {
16 | musl = isMuslFromFilesystem()
17 | if (musl === null) {
18 | musl = isMuslFromReport()
19 | }
20 | if (musl === null) {
21 | musl = isMuslFromChildProcess()
22 | }
23 | }
24 | return musl
25 | }
26 |
27 | const isFileMusl = (f) => f.includes('libc.musl-') || f.includes('ld-musl-')
28 |
29 | const isMuslFromFilesystem = () => {
30 | try {
31 | return readFileSync('/usr/bin/ldd', 'utf-8').includes('musl')
32 | } catch {
33 | return null
34 | }
35 | }
36 |
37 | const isMuslFromReport = () => {
38 | let report = null
39 | if (typeof process.report?.getReport === 'function') {
40 | process.report.excludeNetwork = true
41 | report = process.report.getReport()
42 | }
43 | if (!report) {
44 | return null
45 | }
46 | if (report.header && report.header.glibcVersionRuntime) {
47 | return false
48 | }
49 | if (Array.isArray(report.sharedObjects)) {
50 | if (report.sharedObjects.some(isFileMusl)) {
51 | return true
52 | }
53 | }
54 | return false
55 | }
56 |
57 | const isMuslFromChildProcess = () => {
58 | try {
59 | return require('child_process').execSync('ldd --version', { encoding: 'utf8' }).includes('musl')
60 | } catch (e) {
61 | // If we reach this case, we don't know if the system is musl or not, so is better to just fallback to false
62 | return false
63 | }
64 | }
65 |
66 | function requireNative() {
67 | if (process.env.NAPI_RS_NATIVE_LIBRARY_PATH) {
68 | try {
69 | nativeBinding = require(process.env.NAPI_RS_NATIVE_LIBRARY_PATH);
70 | } catch (err) {
71 | loadErrors.push(err)
72 | }
73 | } else if (process.platform === 'android') {
74 | if (process.arch === 'arm64') {
75 | try {
76 | return require('./sysinfo.android-arm64.node')
77 | } catch (e) {
78 | loadErrors.push(e)
79 | }
80 | try {
81 | return require('@napi-rs/sysinfo-android-arm64')
82 | } catch (e) {
83 | loadErrors.push(e)
84 | }
85 | } else if (process.arch === 'arm') {
86 | try {
87 | return require('./sysinfo.android-arm-eabi.node')
88 | } catch (e) {
89 | loadErrors.push(e)
90 | }
91 | try {
92 | return require('@napi-rs/sysinfo-android-arm-eabi')
93 | } catch (e) {
94 | loadErrors.push(e)
95 | }
96 | } else {
97 | loadErrors.push(new Error(`Unsupported architecture on Android ${process.arch}`))
98 | }
99 | } else if (process.platform === 'win32') {
100 | if (process.arch === 'x64') {
101 | try {
102 | return require('./sysinfo.win32-x64-msvc.node')
103 | } catch (e) {
104 | loadErrors.push(e)
105 | }
106 | try {
107 | return require('@napi-rs/sysinfo-win32-x64-msvc')
108 | } catch (e) {
109 | loadErrors.push(e)
110 | }
111 | } else if (process.arch === 'ia32') {
112 | try {
113 | return require('./sysinfo.win32-ia32-msvc.node')
114 | } catch (e) {
115 | loadErrors.push(e)
116 | }
117 | try {
118 | return require('@napi-rs/sysinfo-win32-ia32-msvc')
119 | } catch (e) {
120 | loadErrors.push(e)
121 | }
122 | } else if (process.arch === 'arm64') {
123 | try {
124 | return require('./sysinfo.win32-arm64-msvc.node')
125 | } catch (e) {
126 | loadErrors.push(e)
127 | }
128 | try {
129 | return require('@napi-rs/sysinfo-win32-arm64-msvc')
130 | } catch (e) {
131 | loadErrors.push(e)
132 | }
133 | } else {
134 | loadErrors.push(new Error(`Unsupported architecture on Windows: ${process.arch}`))
135 | }
136 | } else if (process.platform === 'darwin') {
137 | try {
138 | return require('./sysinfo.darwin-universal.node')
139 | } catch (e) {
140 | loadErrors.push(e)
141 | }
142 | try {
143 | return require('@napi-rs/sysinfo-darwin-universal')
144 | } catch (e) {
145 | loadErrors.push(e)
146 | }
147 | if (process.arch === 'x64') {
148 | try {
149 | return require('./sysinfo.darwin-x64.node')
150 | } catch (e) {
151 | loadErrors.push(e)
152 | }
153 | try {
154 | return require('@napi-rs/sysinfo-darwin-x64')
155 | } catch (e) {
156 | loadErrors.push(e)
157 | }
158 | } else if (process.arch === 'arm64') {
159 | try {
160 | return require('./sysinfo.darwin-arm64.node')
161 | } catch (e) {
162 | loadErrors.push(e)
163 | }
164 | try {
165 | return require('@napi-rs/sysinfo-darwin-arm64')
166 | } catch (e) {
167 | loadErrors.push(e)
168 | }
169 | } else {
170 | loadErrors.push(new Error(`Unsupported architecture on macOS: ${process.arch}`))
171 | }
172 | } else if (process.platform === 'freebsd') {
173 | if (process.arch === 'x64') {
174 | try {
175 | return require('./sysinfo.freebsd-x64.node')
176 | } catch (e) {
177 | loadErrors.push(e)
178 | }
179 | try {
180 | return require('@napi-rs/sysinfo-freebsd-x64')
181 | } catch (e) {
182 | loadErrors.push(e)
183 | }
184 | } else if (process.arch === 'arm64') {
185 | try {
186 | return require('./sysinfo.freebsd-arm64.node')
187 | } catch (e) {
188 | loadErrors.push(e)
189 | }
190 | try {
191 | return require('@napi-rs/sysinfo-freebsd-arm64')
192 | } catch (e) {
193 | loadErrors.push(e)
194 | }
195 | } else {
196 | loadErrors.push(new Error(`Unsupported architecture on FreeBSD: ${process.arch}`))
197 | }
198 | } else if (process.platform === 'linux') {
199 | if (process.arch === 'x64') {
200 | if (isMusl()) {
201 | try {
202 | return require('./sysinfo.linux-x64-musl.node')
203 | } catch (e) {
204 | loadErrors.push(e)
205 | }
206 | try {
207 | return require('@napi-rs/sysinfo-linux-x64-musl')
208 | } catch (e) {
209 | loadErrors.push(e)
210 | }
211 | } else {
212 | try {
213 | return require('./sysinfo.linux-x64-gnu.node')
214 | } catch (e) {
215 | loadErrors.push(e)
216 | }
217 | try {
218 | return require('@napi-rs/sysinfo-linux-x64-gnu')
219 | } catch (e) {
220 | loadErrors.push(e)
221 | }
222 | }
223 | } else if (process.arch === 'arm64') {
224 | if (isMusl()) {
225 | try {
226 | return require('./sysinfo.linux-arm64-musl.node')
227 | } catch (e) {
228 | loadErrors.push(e)
229 | }
230 | try {
231 | return require('@napi-rs/sysinfo-linux-arm64-musl')
232 | } catch (e) {
233 | loadErrors.push(e)
234 | }
235 | } else {
236 | try {
237 | return require('./sysinfo.linux-arm64-gnu.node')
238 | } catch (e) {
239 | loadErrors.push(e)
240 | }
241 | try {
242 | return require('@napi-rs/sysinfo-linux-arm64-gnu')
243 | } catch (e) {
244 | loadErrors.push(e)
245 | }
246 | }
247 | } else if (process.arch === 'arm') {
248 | if (isMusl()) {
249 | try {
250 | return require('./sysinfo.linux-arm-musleabihf.node')
251 | } catch (e) {
252 | loadErrors.push(e)
253 | }
254 | try {
255 | return require('@napi-rs/sysinfo-linux-arm-musleabihf')
256 | } catch (e) {
257 | loadErrors.push(e)
258 | }
259 | } else {
260 | try {
261 | return require('./sysinfo.linux-arm-gnueabihf.node')
262 | } catch (e) {
263 | loadErrors.push(e)
264 | }
265 | try {
266 | return require('@napi-rs/sysinfo-linux-arm-gnueabihf')
267 | } catch (e) {
268 | loadErrors.push(e)
269 | }
270 | }
271 | } else if (process.arch === 'riscv64') {
272 | if (isMusl()) {
273 | try {
274 | return require('./sysinfo.linux-riscv64-musl.node')
275 | } catch (e) {
276 | loadErrors.push(e)
277 | }
278 | try {
279 | return require('@napi-rs/sysinfo-linux-riscv64-musl')
280 | } catch (e) {
281 | loadErrors.push(e)
282 | }
283 | } else {
284 | try {
285 | return require('./sysinfo.linux-riscv64-gnu.node')
286 | } catch (e) {
287 | loadErrors.push(e)
288 | }
289 | try {
290 | return require('@napi-rs/sysinfo-linux-riscv64-gnu')
291 | } catch (e) {
292 | loadErrors.push(e)
293 | }
294 | }
295 | } else if (process.arch === 'ppc64') {
296 | try {
297 | return require('./sysinfo.linux-ppc64-gnu.node')
298 | } catch (e) {
299 | loadErrors.push(e)
300 | }
301 | try {
302 | return require('@napi-rs/sysinfo-linux-ppc64-gnu')
303 | } catch (e) {
304 | loadErrors.push(e)
305 | }
306 | } else if (process.arch === 's390x') {
307 | try {
308 | return require('./sysinfo.linux-s390x-gnu.node')
309 | } catch (e) {
310 | loadErrors.push(e)
311 | }
312 | try {
313 | return require('@napi-rs/sysinfo-linux-s390x-gnu')
314 | } catch (e) {
315 | loadErrors.push(e)
316 | }
317 | } else {
318 | loadErrors.push(new Error(`Unsupported architecture on Linux: ${process.arch}`))
319 | }
320 | } else if (process.platform === 'openharmony') {
321 | if (process.arch === 'arm64') {
322 | try {
323 | return require('./sysinfo.linux-arm64-ohos.node')
324 | } catch (e) {
325 | loadErrors.push(e)
326 | }
327 | try {
328 | return require('@napi-rs/sysinfo-linux-arm64-ohos')
329 | } catch (e) {
330 | loadErrors.push(e)
331 | }
332 | } else if (process.arch === 'x64') {
333 | try {
334 | return require('./sysinfo.linux-x64-ohos.node')
335 | } catch (e) {
336 | loadErrors.push(e)
337 | }
338 | try {
339 | return require('@napi-rs/sysinfo-linux-x64-ohos')
340 | } catch (e) {
341 | loadErrors.push(e)
342 | }
343 | } else if (process.arch === 'arm') {
344 | try {
345 | return require('./sysinfo.linux-arm-ohos.node')
346 | } catch (e) {
347 | loadErrors.push(e)
348 | }
349 | try {
350 | return require('@napi-rs/sysinfo-linux-arm-ohos')
351 | } catch (e) {
352 | loadErrors.push(e)
353 | }
354 | } else {
355 | loadErrors.push(new Error(`Unsupported architecture on OpenHarmony: ${process.arch}`))
356 | }
357 | } else {
358 | loadErrors.push(new Error(`Unsupported OS: ${process.platform}, architecture: ${process.arch}`))
359 | }
360 | }
361 |
362 | nativeBinding = requireNative()
363 |
364 | if (!nativeBinding || process.env.NAPI_RS_FORCE_WASI) {
365 | try {
366 | nativeBinding = require('./sysinfo.wasi.cjs')
367 | } catch (err) {
368 | if (process.env.NAPI_RS_FORCE_WASI) {
369 | loadErrors.push(err)
370 | }
371 | }
372 | if (!nativeBinding) {
373 | try {
374 | nativeBinding = require('@napi-rs/sysinfo-wasm32-wasi')
375 | } catch (err) {
376 | if (process.env.NAPI_RS_FORCE_WASI) {
377 | loadErrors.push(err)
378 | }
379 | }
380 | }
381 | }
382 |
383 | if (!nativeBinding) {
384 | if (loadErrors.length > 0) {
385 | throw new Error(
386 | `Cannot find native binding. ` +
387 | `npm has a bug related to optional dependencies (https://github.com/npm/cli/issues/4828). ` +
388 | 'Please try `npm i` again after removing both package-lock.json and node_modules directory.',
389 | { cause: loadErrors }
390 | )
391 | }
392 | throw new Error(`Failed to load native binding`)
393 | }
394 |
395 | module.exports = nativeBinding
396 | module.exports.Cpu = nativeBinding.Cpu
397 | module.exports.SysInfo = nativeBinding.SysInfo
398 | module.exports.cpuFeatures = nativeBinding.cpuFeatures
399 |
--------------------------------------------------------------------------------
/.github/workflows/CI.yml:
--------------------------------------------------------------------------------
1 | name: CI
2 | env:
3 | DEBUG: napi:*
4 | APP_NAME: sysinfo
5 | MACOSX_DEPLOYMENT_TARGET: '10.13'
6 | CARGO_INCREMENTAL: '1'
7 | 'on':
8 | push:
9 | branches:
10 | - main
11 | tags-ignore:
12 | - '**'
13 | paths-ignore:
14 | - '**/*.md'
15 | - LICENSE
16 | - '**/*.gitignore'
17 | - .editorconfig
18 | - docs/**
19 | pull_request: null
20 | concurrency:
21 | group: ${{ github.workflow }}-${{ github.ref }}
22 | cancel-in-progress: true
23 | jobs:
24 | lint:
25 | name: Lint
26 | runs-on: ubuntu-latest
27 | steps:
28 | - uses: actions/checkout@v6
29 |
30 | - name: Setup node
31 | uses: actions/setup-node@v6
32 | with:
33 | node-version: 24
34 | cache: 'yarn'
35 |
36 | - name: Install
37 | uses: dtolnay/rust-toolchain@stable
38 | with:
39 | components: rustfmt
40 |
41 | - name: Install dependencies
42 | run: yarn install
43 |
44 | - name: Oxlint
45 | run: yarn lint
46 |
47 | - name: Cargo fmt
48 | run: cargo fmt -- --check
49 |
50 | build:
51 | strategy:
52 | fail-fast: false
53 | matrix:
54 | settings:
55 | - host: macos-latest
56 | target: x86_64-apple-darwin
57 | build: yarn build --target x86_64-apple-darwin
58 | - host: windows-latest
59 | build: yarn build --target x86_64-pc-windows-msvc
60 | target: x86_64-pc-windows-msvc
61 | - host: windows-latest
62 | build: yarn build --target i686-pc-windows-msvc
63 | target: i686-pc-windows-msvc
64 | - host: ubuntu-latest
65 | target: x86_64-unknown-linux-gnu
66 | build: yarn build --target x86_64-unknown-linux-gnu --use-napi-cross
67 | - host: ubuntu-latest
68 | target: x86_64-unknown-linux-musl
69 | build: yarn build --target x86_64-unknown-linux-musl -x
70 | - host: macos-latest
71 | target: aarch64-apple-darwin
72 | build: yarn build --target aarch64-apple-darwin
73 | - host: ubuntu-latest
74 | target: aarch64-unknown-linux-gnu
75 | build: yarn build --target aarch64-unknown-linux-gnu --use-napi-cross
76 | - host: ubuntu-latest
77 | target: armv7-unknown-linux-gnueabihf
78 | build: yarn build --target armv7-unknown-linux-gnueabihf --use-napi-cross
79 | - host: ubuntu-latest
80 | target: aarch64-linux-android
81 | build: yarn build --target aarch64-linux-android
82 | - host: ubuntu-latest
83 | target: armv7-linux-androideabi
84 | build: yarn build --target armv7-linux-androideabi
85 | - host: ubuntu-latest
86 | target: aarch64-unknown-linux-musl
87 | build: yarn build --target aarch64-unknown-linux-musl -x
88 | - host: windows-latest
89 | target: aarch64-pc-windows-msvc
90 | build: yarn build --target aarch64-pc-windows-msvc
91 | name: stable - ${{ matrix.settings.target }} - node@22
92 | runs-on: ${{ matrix.settings.host }}
93 | steps:
94 | - uses: actions/checkout@v6
95 | - name: Setup node
96 | uses: actions/setup-node@v6
97 | with:
98 | node-version: 24
99 | cache: yarn
100 | - name: Install
101 | uses: dtolnay/rust-toolchain@stable
102 | with:
103 | toolchain: stable
104 | targets: ${{ matrix.settings.target }}
105 | - name: Cache cargo
106 | uses: actions/cache@v5
107 | with:
108 | path: |
109 | ~/.cargo/registry/index/
110 | ~/.cargo/registry/cache/
111 | ~/.cargo/git/db/
112 | ~/.napi-rs
113 | .cargo-cache
114 | target/
115 | key: ${{ matrix.settings.target }}-cargo-${{ matrix.settings.host }}
116 | - uses: goto-bus-stop/setup-zig@v2
117 | if: ${{ contains(matrix.settings.target, 'musl') }}
118 | with:
119 | version: 0.14.1
120 | - name: Install cargo-zigbuild
121 | uses: taiki-e/install-action@v2
122 | if: ${{ contains(matrix.settings.target, 'musl') }}
123 | env:
124 | GITHUB_TOKEN: ${{ github.token }}
125 | with:
126 | tool: cargo-zigbuild
127 | - name: Setup toolchain
128 | run: ${{ matrix.settings.setup }}
129 | if: ${{ matrix.settings.setup }}
130 | shell: bash
131 | - name: Install dependencies
132 | run: yarn install
133 | - name: Build
134 | run: ${{ matrix.settings.build }}
135 | shell: bash
136 | - name: Upload artifact
137 | uses: actions/upload-artifact@v6
138 | with:
139 | name: bindings-${{ matrix.settings.target }}
140 | path: |
141 | ${{ env.APP_NAME }}.*.node
142 | ${{ env.APP_NAME }}.*.wasm
143 | if-no-files-found: error
144 | build-freebsd:
145 | runs-on: ubuntu-latest
146 | name: Build FreeBSD
147 | steps:
148 | - uses: actions/checkout@v6
149 | - name: Build
150 | id: build
151 | uses: cross-platform-actions/action@v0.31.0
152 | env:
153 | DEBUG: napi:*
154 | RUSTUP_IO_THREADS: 1
155 | with:
156 | operating_system: freebsd
157 | version: '14.2'
158 | memory: 8G
159 | cpu_count: 3
160 | environment_variables: 'DEBUG RUSTUP_IO_THREADS'
161 | shell: bash
162 | run: |
163 | sudo pkg install -y -f curl node libnghttp2 npm cmake
164 | sudo npm install -g yarn --ignore-scripts
165 | curl https://sh.rustup.rs -sSf --output rustup.sh
166 | sh rustup.sh -y --profile minimal --default-toolchain stable
167 | source "$HOME/.cargo/env"
168 | echo "~~~~ rustc --version ~~~~"
169 | rustc --version
170 | echo "~~~~ node -v ~~~~"
171 | node -v
172 | echo "~~~~ yarn --version ~~~~"
173 | yarn --version
174 | pwd
175 | ls -lah
176 | whoami
177 | env
178 | freebsd-version
179 | yarn install
180 | yarn build
181 | rm -rf node_modules
182 | rm -rf target
183 | rm -rf .yarn/cache
184 | - name: Upload artifact
185 | uses: actions/upload-artifact@v6
186 | with:
187 | name: bindings-freebsd
188 | path: ${{ env.APP_NAME }}.*.node
189 | if-no-files-found: error
190 | test-macOS-windows-binding:
191 | name: Test bindings on ${{ matrix.settings.target }} - node@${{ matrix.node }}
192 | needs:
193 | - build
194 | strategy:
195 | fail-fast: false
196 | matrix:
197 | settings:
198 | - host: windows-latest
199 | target: x86_64-pc-windows-msvc
200 | architecture: x64
201 | - host: windows-11-arm
202 | target: aarch64-pc-windows-msvc
203 | architecture: arm64
204 | - host: macos-latest
205 | target: x86_64-apple-darwin
206 | architecture: x64
207 | node:
208 | - '20'
209 | - '22'
210 | runs-on: ${{ matrix.settings.host }}
211 | steps:
212 | - uses: actions/checkout@v6
213 | - name: Setup node
214 | uses: actions/setup-node@v6
215 | with:
216 | node-version: ${{ matrix.node }}
217 | cache: yarn
218 | architecture: ${{ matrix.settings.architecture }}
219 | - name: Install dependencies
220 | run: yarn install
221 | - name: Download artifacts
222 | uses: actions/download-artifact@v7
223 | with:
224 | name: bindings-${{ matrix.settings.target }}
225 | path: .
226 | - name: List packages
227 | run: ls -R .
228 | shell: bash
229 | - name: Test bindings
230 | run: yarn test
231 | test-linux-binding:
232 | name: Test ${{ matrix.target }} - node@${{ matrix.node }}
233 | needs:
234 | - build
235 | strategy:
236 | fail-fast: false
237 | matrix:
238 | target:
239 | - x86_64-unknown-linux-gnu
240 | - x86_64-unknown-linux-musl
241 | - aarch64-unknown-linux-gnu
242 | - aarch64-unknown-linux-musl
243 | - armv7-unknown-linux-gnueabihf
244 | node:
245 | - '20'
246 | - '22'
247 | runs-on: ${{ contains(matrix.target, 'aarch64') && 'ubuntu-24.04-arm' || 'ubuntu-latest' }}
248 | steps:
249 | - uses: actions/checkout@v6
250 | - name: Setup node
251 | uses: actions/setup-node@v6
252 | with:
253 | node-version: ${{ matrix.node }}
254 | cache: yarn
255 | - name: Output docker params
256 | id: docker
257 | run: |
258 | node -e "
259 | if ('${{ matrix.target }}'.startsWith('aarch64')) {
260 | console.log('PLATFORM=linux/arm64')
261 | } else if ('${{ matrix.target }}'.startsWith('armv7')) {
262 | console.log('PLATFORM=linux/arm/v7')
263 | } else {
264 | console.log('PLATFORM=linux/amd64')
265 | }
266 | " >> $GITHUB_OUTPUT
267 | node -e "
268 | if ('${{ matrix.target }}'.endsWith('-musl')) {
269 | console.log('IMAGE=node:${{ matrix.node }}-alpine')
270 | } else {
271 | console.log('IMAGE=node:${{ matrix.node }}-slim')
272 | }
273 | " >> $GITHUB_OUTPUT
274 | - name: Install dependencies
275 | run: |
276 | yarn config set --json supportedArchitectures.cpu '["current", "arm64", "x64", "arm"]'
277 | yarn config set --json supportedArchitectures.libc '["current", "musl", "gnu"]'
278 | yarn install
279 | - name: Download artifacts
280 | uses: actions/download-artifact@v7
281 | with:
282 | name: bindings-${{ matrix.target }}
283 | path: .
284 | - name: List packages
285 | run: ls -R .
286 | shell: bash
287 | - name: Set up QEMU
288 | uses: docker/setup-qemu-action@v3
289 | if: ${{ contains(matrix.target, 'armv7') }}
290 | with:
291 | platforms: all
292 | - run: docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
293 | if: ${{ contains(matrix.target, 'armv7') }}
294 | - name: Test bindings
295 | uses: addnab/docker-run-action@v3
296 | with:
297 | image: ${{ steps.docker.outputs.IMAGE }}
298 | options: -v ${{ github.workspace }}:${{ github.workspace }} -w ${{ github.workspace }} --platform ${{ steps.docker.outputs.PLATFORM }}
299 | run: yarn test
300 | publish:
301 | name: Publish
302 | runs-on: ubuntu-latest
303 | permissions:
304 | contents: write
305 | id-token: write
306 | needs:
307 | - lint
308 | - build-freebsd
309 | - test-macOS-windows-binding
310 | - test-linux-binding
311 | steps:
312 | - uses: actions/checkout@v6
313 | - name: Setup node
314 | uses: actions/setup-node@v6
315 | with:
316 | node-version: 24
317 | cache: yarn
318 | - name: Install dependencies
319 | run: yarn install
320 | - name: create npm dirs
321 | run: yarn napi create-npm-dirs
322 | - name: Download all artifacts
323 | uses: actions/download-artifact@v7
324 | with:
325 | path: artifacts
326 | - name: Move artifacts
327 | run: yarn artifacts
328 | - name: List packages
329 | run: ls -R ./npm
330 | shell: bash
331 | - name: Publish
332 | run: |
333 | npm config set provenance true
334 | if git log -1 --pretty=%B | grep "^[0-9]\+\.[0-9]\+\.[0-9]\+$";
335 | then
336 | echo "//registry.npmjs.org/:_authToken=$NPM_TOKEN" >> ~/.npmrc
337 | npm publish --access public
338 | elif git log -1 --pretty=%B | grep "^[0-9]\+\.[0-9]\+\.[0-9]\+";
339 | then
340 | echo "//registry.npmjs.org/:_authToken=$NPM_TOKEN" >> ~/.npmrc
341 | npm publish --tag next --access public
342 | else
343 | echo "Not a release, skipping publish"
344 | fi
345 | env:
346 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
347 | NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
348 |
--------------------------------------------------------------------------------
/src/lib.rs:
--------------------------------------------------------------------------------
1 | #![deny(clippy::all)]
2 |
3 | use cpu::Cpu;
4 | use napi::{bindgen_prelude::Reference, Env, Result};
5 |
6 | use napi_derive::napi;
7 |
8 | mod cpu;
9 | mod sys;
10 |
11 | #[napi(object)]
12 | pub struct CpuFeatures {
13 | pub arch: String,
14 | pub brand: Option,
15 | pub family: Option,
16 | pub model: Option,
17 | pub stepping_id: Option,
18 | pub flags: CpuFeaturesFlags,
19 | }
20 |
21 | #[napi(object)]
22 | #[cfg(any(target_arch = "x86", target_arch = "x86_64"))]
23 | pub struct CpuFeaturesFlags {
24 | pub fpu: bool,
25 | pub aes: bool,
26 | pub pclmulqdq: bool,
27 | pub rdrand: bool,
28 | pub rdseed: bool,
29 | pub tsc: bool,
30 | pub mmx: bool,
31 | pub sse: bool,
32 | pub sse2: bool,
33 | pub sse3: bool,
34 | pub ssse3: bool,
35 | pub sse4_1: bool,
36 | pub sse4_2: bool,
37 | pub sse4a: bool,
38 | pub sha: bool,
39 | pub avx: bool,
40 | pub avx2: bool,
41 | pub avx512f: bool,
42 | pub avx512cd: bool,
43 | pub avx512er: bool,
44 | pub avx512pf: bool,
45 | pub avx512bw: bool,
46 | pub avx512dq: bool,
47 | pub avx512vl: bool,
48 | pub avx512ifma: bool,
49 | pub avx512vbmi: bool,
50 | pub avx512vpopcntdq: bool,
51 | pub avx512vbmi2: bool,
52 | pub avx512gfni: bool,
53 | pub avx512vaes: bool,
54 | pub avx512vpclmulqdq: bool,
55 | pub avx512vnni: bool,
56 | pub avx512bitalg: bool,
57 | pub avx512bf16: bool,
58 | pub avx512vp2intersect: bool,
59 | pub f16c: bool,
60 | pub fma: bool,
61 | pub bmi1: bool,
62 | pub bmi2: bool,
63 | pub abm: bool,
64 | pub lzcnt: bool,
65 | pub tbm: bool,
66 | pub popcnt: bool,
67 | pub fxsr: bool,
68 | pub xsave: bool,
69 | pub xsaveopt: bool,
70 | pub xsaves: bool,
71 | pub xsavec: bool,
72 | pub cmpxchg16b: bool,
73 | pub adx: bool,
74 | pub rtm: bool,
75 | }
76 |
77 | #[cfg(target_arch = "arm")]
78 | #[napi(object)]
79 | pub struct CpuFeaturesFlags {
80 | pub neon: bool,
81 | pub pmull: bool,
82 | pub crc: bool,
83 | pub crypto: bool,
84 | pub aes: bool,
85 | pub sha2: bool,
86 | pub i8mm: bool,
87 | pub v7: bool,
88 | pub vfp2: bool,
89 | pub vfp3: bool,
90 | pub vfp4: bool,
91 | }
92 |
93 | #[napi(object)]
94 | #[cfg(target_arch = "aarch64")]
95 | pub struct CpuFeaturesFlags {
96 | pub asimd: bool,
97 | pub pmull: bool,
98 | pub fp: bool,
99 | pub fp16: bool,
100 | pub sve: bool,
101 | pub crc: bool,
102 | pub lse: bool,
103 | pub lse2: bool,
104 | pub rdm: bool,
105 | pub rcpc: bool,
106 | pub rcpc2: bool,
107 | pub dotprod: bool,
108 | pub tme: bool,
109 | pub fhm: bool,
110 | pub dit: bool,
111 | pub flagm: bool,
112 | pub ssbs: bool,
113 | pub sb: bool,
114 | pub paca: bool,
115 | pub pacg: bool,
116 | pub dpb: bool,
117 | pub dpb2: bool,
118 | pub sve2: bool,
119 | pub sve2_aes: bool,
120 | pub sve2_sm4: bool,
121 | pub sve2_sha3: bool,
122 | pub sve2_bitperm: bool,
123 | pub frintts: bool,
124 | pub i8mm: bool,
125 | pub f32mm: bool,
126 | pub f64mm: bool,
127 | pub bf16: bool,
128 | pub rand: bool,
129 | pub bti: bool,
130 | pub mte: bool,
131 | pub jsconv: bool,
132 | pub fcma: bool,
133 | pub aes: bool,
134 | pub sha2: bool,
135 | pub sha3: bool,
136 | pub sm4: bool,
137 | }
138 |
139 | #[napi]
140 | #[cfg(not(any(target_arch = "x86", target_arch = "x86_64")))]
141 | pub fn cpu_features() -> CpuFeatures {
142 | #[cfg(target_arch = "aarch64")]
143 | use std::arch::is_aarch64_feature_detected;
144 |
145 | use sysinfo::{CpuRefreshKind, RefreshKind};
146 |
147 | let sysinfo = sysinfo::System::new_with_specifics(
148 | RefreshKind::everything().with_cpu(CpuRefreshKind::everything()),
149 | );
150 | let cpu = &sysinfo.cpus()[0];
151 | CpuFeatures {
152 | arch: std::env::consts::ARCH.to_string(),
153 | brand: Some(cpu.brand().to_string()),
154 | family: None,
155 | model: None,
156 | stepping_id: None,
157 | #[cfg(target_arch = "aarch64")]
158 | flags: CpuFeaturesFlags {
159 | asimd: is_aarch64_feature_detected!("asimd"),
160 | pmull: is_aarch64_feature_detected!("pmull"),
161 | fp: is_aarch64_feature_detected!("fp"),
162 | fp16: is_aarch64_feature_detected!("fp16"),
163 | sve: is_aarch64_feature_detected!("sve"),
164 | crc: is_aarch64_feature_detected!("crc"),
165 | lse: is_aarch64_feature_detected!("lse"),
166 | lse2: is_aarch64_feature_detected!("lse2"),
167 | rdm: is_aarch64_feature_detected!("rdm"),
168 | rcpc: is_aarch64_feature_detected!("rcpc"),
169 | rcpc2: is_aarch64_feature_detected!("rcpc2"),
170 | dotprod: is_aarch64_feature_detected!("dotprod"),
171 | tme: is_aarch64_feature_detected!("tme"),
172 | fhm: is_aarch64_feature_detected!("fhm"),
173 | dit: is_aarch64_feature_detected!("dit"),
174 | flagm: is_aarch64_feature_detected!("flagm"),
175 | ssbs: is_aarch64_feature_detected!("ssbs"),
176 | sb: is_aarch64_feature_detected!("sb"),
177 | paca: is_aarch64_feature_detected!("paca"),
178 | pacg: is_aarch64_feature_detected!("pacg"),
179 | dpb: is_aarch64_feature_detected!("dpb"),
180 | dpb2: is_aarch64_feature_detected!("dpb2"),
181 | sve2: is_aarch64_feature_detected!("sve2"),
182 | sve2_aes: is_aarch64_feature_detected!("sve2-aes"),
183 | sve2_sm4: is_aarch64_feature_detected!("sve2-sm4"),
184 | sve2_sha3: is_aarch64_feature_detected!("sve2-sha3"),
185 | sve2_bitperm: is_aarch64_feature_detected!("sve2-bitperm"),
186 | frintts: is_aarch64_feature_detected!("frintts"),
187 | i8mm: is_aarch64_feature_detected!("i8mm"),
188 | f32mm: is_aarch64_feature_detected!("f32mm"),
189 | f64mm: is_aarch64_feature_detected!("f64mm"),
190 | bf16: is_aarch64_feature_detected!("bf16"),
191 | rand: is_aarch64_feature_detected!("rand"),
192 | bti: is_aarch64_feature_detected!("bti"),
193 | mte: is_aarch64_feature_detected!("mte"),
194 | jsconv: is_aarch64_feature_detected!("jsconv"),
195 | fcma: is_aarch64_feature_detected!("fcma"),
196 | aes: is_aarch64_feature_detected!("aes"),
197 | sha2: is_aarch64_feature_detected!("sha2"),
198 | sha3: is_aarch64_feature_detected!("sha3"),
199 | sm4: is_aarch64_feature_detected!("sm4"),
200 | },
201 | #[cfg(target_arch = "arm")]
202 | flags: CpuFeaturesFlags {
203 | neon: false,
204 | pmull: false,
205 | crc: false,
206 | crypto: false,
207 | aes: false,
208 | sha2: false,
209 | i8mm: false,
210 | v7: false,
211 | vfp2: false,
212 | vfp3: false,
213 | vfp4: false,
214 | },
215 | }
216 | }
217 |
218 | #[napi]
219 | #[cfg(any(target_arch = "x86", target_arch = "x86_64"))]
220 | pub fn cpu_features() -> CpuFeatures {
221 | use std::arch::is_x86_feature_detected;
222 |
223 | use raw_cpuid::CpuId;
224 |
225 | let cpuid = CpuId::new();
226 | let cpu_feature_info = cpuid.get_feature_info();
227 | let cpu_feature_info = cpu_feature_info.as_ref();
228 |
229 | CpuFeatures {
230 | arch: std::env::consts::ARCH.to_string(),
231 | brand: cpuid
232 | .get_processor_brand_string()
233 | .map(|brand| brand.as_str().to_string()),
234 | family: cpu_feature_info.map(|info| info.family_id() as u32),
235 | model: cpu_feature_info.map(|info| info.model_id() as u32),
236 | stepping_id: cpu_feature_info.map(|info| info.stepping_id() as u32),
237 | flags: CpuFeaturesFlags {
238 | fpu: cpu_feature_info.map(|info| info.has_fpu()).unwrap_or(false),
239 | aes: is_x86_feature_detected!("aes"),
240 | pclmulqdq: is_x86_feature_detected!("pclmulqdq"),
241 | rdrand: is_x86_feature_detected!("rdrand"),
242 | rdseed: is_x86_feature_detected!("rdseed"),
243 | tsc: is_x86_feature_detected!("tsc"),
244 | mmx: is_x86_feature_detected!("mmx"),
245 | sse: is_x86_feature_detected!("sse"),
246 | sse2: is_x86_feature_detected!("sse2"),
247 | sse3: is_x86_feature_detected!("sse3"),
248 | ssse3: is_x86_feature_detected!("ssse3"),
249 | sse4_1: is_x86_feature_detected!("sse4.1"),
250 | sse4_2: is_x86_feature_detected!("sse4.2"),
251 | sse4a: is_x86_feature_detected!("sse4a"),
252 | sha: is_x86_feature_detected!("sha"),
253 | avx: is_x86_feature_detected!("avx"),
254 | avx2: is_x86_feature_detected!("avx2"),
255 | avx512f: is_x86_feature_detected!("avx512f"),
256 | avx512cd: is_x86_feature_detected!("avx512cd"),
257 | avx512er: is_x86_feature_detected!("avx512er"),
258 | avx512pf: is_x86_feature_detected!("avx512pf"),
259 | avx512bw: is_x86_feature_detected!("avx512bw"),
260 | avx512dq: is_x86_feature_detected!("avx512dq"),
261 | avx512vl: is_x86_feature_detected!("avx512vl"),
262 | avx512ifma: is_x86_feature_detected!("avx512ifma"),
263 | avx512vbmi: is_x86_feature_detected!("avx512vbmi"),
264 | avx512vpopcntdq: is_x86_feature_detected!("avx512vpopcntdq"),
265 | avx512vbmi2: is_x86_feature_detected!("avx512vbmi2"),
266 | avx512gfni: is_x86_feature_detected!("gfni"),
267 | avx512vaes: is_x86_feature_detected!("vaes"),
268 | avx512vpclmulqdq: is_x86_feature_detected!("vpclmulqdq"),
269 | avx512vnni: is_x86_feature_detected!("avx512vnni"),
270 | avx512bitalg: is_x86_feature_detected!("avx512bitalg"),
271 | avx512bf16: is_x86_feature_detected!("avx512bf16"),
272 | avx512vp2intersect: is_x86_feature_detected!("avx512vp2intersect"),
273 | f16c: is_x86_feature_detected!("f16c"),
274 | fma: is_x86_feature_detected!("fma"),
275 | bmi1: is_x86_feature_detected!("bmi1"),
276 | bmi2: is_x86_feature_detected!("bmi2"),
277 | abm: is_x86_feature_detected!("abm"),
278 | lzcnt: is_x86_feature_detected!("lzcnt"),
279 | tbm: is_x86_feature_detected!("tbm"),
280 | popcnt: is_x86_feature_detected!("popcnt"),
281 | fxsr: is_x86_feature_detected!("fxsr"),
282 | xsave: is_x86_feature_detected!("xsave"),
283 | xsaveopt: is_x86_feature_detected!("xsaveopt"),
284 | xsaves: is_x86_feature_detected!("xsaves"),
285 | xsavec: is_x86_feature_detected!("xsavec"),
286 | cmpxchg16b: is_x86_feature_detected!("cmpxchg16b"),
287 | adx: is_x86_feature_detected!("adx"),
288 | rtm: is_x86_feature_detected!("rtm"),
289 | },
290 | }
291 | }
292 |
293 | #[napi(object)]
294 | /// A Object representing system load average value.
295 | ///
296 | /// ```js
297 | /// import { SysInfo } from '@napi-rs/sysinfo';
298 | /// const s = new SysInfo();
299 | /// const loadAvg = s.loadAverage();
300 | ///
301 | /// console.log(
302 | /// `one minute: ${loadAvg.one}%, five minutes: ${loadAvg.five}%, fifteen minutes: ${loadAvg.fifteen}%`,
303 | /// )
304 | /// ```
305 | pub struct LoadAvg {
306 | /// Average load within one minute.
307 | pub one: f64,
308 | /// Average load within five minutes.
309 | pub five: f64,
310 | /// Average load within fifteen minutes.
311 | pub fifteen: f64,
312 | }
313 |
314 | impl From for LoadAvg {
315 | fn from(value: sysinfo::LoadAvg) -> Self {
316 | Self {
317 | one: value.one,
318 | five: value.five,
319 | fifteen: value.fifteen,
320 | }
321 | }
322 | }
323 |
324 | #[napi]
325 | pub struct SysInfo {
326 | system: sysinfo::System,
327 | }
328 |
329 | #[napi]
330 | impl SysInfo {
331 | #[napi(constructor)]
332 | pub fn new() -> Self {
333 | Self {
334 | system: sysinfo::System::new_with_specifics(sysinfo::RefreshKind::everything()),
335 | }
336 | }
337 |
338 | #[napi]
339 | pub fn cpus(&self, env: Env, this: Reference) -> Result> {
340 | let cpus = this.share_with(env, |sys| Ok(sys.system.cpus()))?;
341 | Ok(cpus.iter().map(|inner| Cpu { inner }).collect())
342 | }
343 |
344 | #[napi]
345 | pub fn refresh_memory(&mut self) {
346 | self.system.refresh_memory();
347 | }
348 |
349 | #[napi]
350 | pub fn total_memory(&self) -> u64 {
351 | self.system.total_memory()
352 | }
353 |
354 | #[napi]
355 | pub fn free_memory(&self) -> u64 {
356 | self.system.free_memory()
357 | }
358 |
359 | #[napi]
360 | pub fn available_memory(&self) -> u64 {
361 | self.system.available_memory()
362 | }
363 |
364 | #[napi]
365 | pub fn used_memory(&self) -> u64 {
366 | self.system.used_memory()
367 | }
368 |
369 | #[napi]
370 | pub fn total_swap(&self) -> u64 {
371 | self.system.total_swap()
372 | }
373 |
374 | #[napi]
375 | pub fn free_swap(&self) -> u64 {
376 | self.system.free_swap()
377 | }
378 |
379 | #[napi]
380 | pub fn used_swap(&self) -> u64 {
381 | self.system.used_swap()
382 | }
383 |
384 | #[napi]
385 | pub fn uptime(&self) {
386 | sysinfo::System::uptime();
387 | }
388 |
389 | #[napi]
390 | pub fn boot_time(&self) -> u64 {
391 | sysinfo::System::boot_time()
392 | }
393 |
394 | #[napi]
395 | pub fn system_name(&self) -> Option {
396 | sysinfo::System::name()
397 | }
398 |
399 | #[napi]
400 | pub fn long_os_version(&self) -> Option {
401 | sysinfo::System::long_os_version()
402 | }
403 |
404 | #[napi]
405 | pub fn host_name(&self) -> Option {
406 | sysinfo::System::host_name()
407 | }
408 |
409 | #[napi]
410 | pub fn kernel_version(&self) -> Option {
411 | sysinfo::System::kernel_version()
412 | }
413 |
414 | #[napi]
415 | pub fn os_version(&self) -> Option {
416 | sysinfo::System::os_version()
417 | }
418 |
419 | #[napi]
420 | pub fn distribution(&self) -> String {
421 | sysinfo::System::distribution_id()
422 | }
423 |
424 | #[napi]
425 | pub fn load_average(&self) -> LoadAvg {
426 | sysinfo::System::load_average().into()
427 | }
428 |
429 | #[napi]
430 | pub fn refresh_components_list(&mut self) {
431 | self.system.refresh_all();
432 | }
433 | }
434 |
--------------------------------------------------------------------------------
/yarn.lock:
--------------------------------------------------------------------------------
1 | # This file is generated by running "yarn install" inside your project.
2 | # Manual changes might be lost - proceed with caution!
3 |
4 | __metadata:
5 | version: 8
6 | cacheKey: 10c0
7 |
8 | "@emnapi/core@npm:^1.4.5":
9 | version: 1.4.5
10 | resolution: "@emnapi/core@npm:1.4.5"
11 | dependencies:
12 | "@emnapi/wasi-threads": "npm:1.0.4"
13 | tslib: "npm:^2.4.0"
14 | checksum: 10c0/da4a57f65f325d720d0e0d1a9c6618b90c4c43a5027834a110476984e1d47c95ebaed4d316b5dddb9c0ed9a493ffeb97d1934f9677035f336d8a36c1f3b2818f
15 | languageName: node
16 | linkType: hard
17 |
18 | "@emnapi/runtime@npm:^1.4.5":
19 | version: 1.4.5
20 | resolution: "@emnapi/runtime@npm:1.4.5"
21 | dependencies:
22 | tslib: "npm:^2.4.0"
23 | checksum: 10c0/37a0278be5ac81e918efe36f1449875cbafba947039c53c65a1f8fc238001b866446fc66041513b286baaff5d6f9bec667f5164b3ca481373a8d9cb65bfc984b
24 | languageName: node
25 | linkType: hard
26 |
27 | "@emnapi/wasi-threads@npm:1.0.4":
28 | version: 1.0.4
29 | resolution: "@emnapi/wasi-threads@npm:1.0.4"
30 | dependencies:
31 | tslib: "npm:^2.4.0"
32 | checksum: 10c0/2c91a53e62f875800baf035c4d42c9c0d18e5afd9a31ca2aac8b435aeaeaeaac386b5b3d0d0e70aa7a5a9852bbe05106b1f680cd82cce03145c703b423d41313
33 | languageName: node
34 | linkType: hard
35 |
36 | "@inquirer/checkbox@npm:^4.2.0":
37 | version: 4.2.0
38 | resolution: "@inquirer/checkbox@npm:4.2.0"
39 | dependencies:
40 | "@inquirer/core": "npm:^10.1.15"
41 | "@inquirer/figures": "npm:^1.0.13"
42 | "@inquirer/type": "npm:^3.0.8"
43 | ansi-escapes: "npm:^4.3.2"
44 | yoctocolors-cjs: "npm:^2.1.2"
45 | peerDependencies:
46 | "@types/node": ">=18"
47 | peerDependenciesMeta:
48 | "@types/node":
49 | optional: true
50 | checksum: 10c0/9d0371f946d3866f5192debb48ef7567e63d0bbed3177e3fbba83c830eea267761a7efb6223bfa5e7674415a7040f628314263ba4165e6e6e374335022d87659
51 | languageName: node
52 | linkType: hard
53 |
54 | "@inquirer/confirm@npm:^5.1.14":
55 | version: 5.1.14
56 | resolution: "@inquirer/confirm@npm:5.1.14"
57 | dependencies:
58 | "@inquirer/core": "npm:^10.1.15"
59 | "@inquirer/type": "npm:^3.0.8"
60 | peerDependencies:
61 | "@types/node": ">=18"
62 | peerDependenciesMeta:
63 | "@types/node":
64 | optional: true
65 | checksum: 10c0/12f49e8d1564c77c290163e87c9a256cfc087eab0c096738c73b03aa3d59a98c233fb9fb3692f162d67f923d120a4aa8ef819f75d979916dc13456f726c579d1
66 | languageName: node
67 | linkType: hard
68 |
69 | "@inquirer/core@npm:^10.1.15":
70 | version: 10.1.15
71 | resolution: "@inquirer/core@npm:10.1.15"
72 | dependencies:
73 | "@inquirer/figures": "npm:^1.0.13"
74 | "@inquirer/type": "npm:^3.0.8"
75 | ansi-escapes: "npm:^4.3.2"
76 | cli-width: "npm:^4.1.0"
77 | mute-stream: "npm:^2.0.0"
78 | signal-exit: "npm:^4.1.0"
79 | wrap-ansi: "npm:^6.2.0"
80 | yoctocolors-cjs: "npm:^2.1.2"
81 | peerDependencies:
82 | "@types/node": ">=18"
83 | peerDependenciesMeta:
84 | "@types/node":
85 | optional: true
86 | checksum: 10c0/3214dfa882f17e3d9cdd45fc73f9134b90e3d685f8285f7963d836fe25f786d8ecf9c16d2710fc968b77da40508fa74466d5ad90c5466626037995210b946b12
87 | languageName: node
88 | linkType: hard
89 |
90 | "@inquirer/editor@npm:^4.2.15":
91 | version: 4.2.15
92 | resolution: "@inquirer/editor@npm:4.2.15"
93 | dependencies:
94 | "@inquirer/core": "npm:^10.1.15"
95 | "@inquirer/type": "npm:^3.0.8"
96 | external-editor: "npm:^3.1.0"
97 | peerDependencies:
98 | "@types/node": ">=18"
99 | peerDependenciesMeta:
100 | "@types/node":
101 | optional: true
102 | checksum: 10c0/81c524c3a80b4c75565bb316b2f06b055d374f7f79cc1140528a966f0dd2ca9099bb18466203125db52092b2c9bab2e4f17e81e40fb5ca204fdd939f07b02ea4
103 | languageName: node
104 | linkType: hard
105 |
106 | "@inquirer/expand@npm:^4.0.17":
107 | version: 4.0.17
108 | resolution: "@inquirer/expand@npm:4.0.17"
109 | dependencies:
110 | "@inquirer/core": "npm:^10.1.15"
111 | "@inquirer/type": "npm:^3.0.8"
112 | yoctocolors-cjs: "npm:^2.1.2"
113 | peerDependencies:
114 | "@types/node": ">=18"
115 | peerDependenciesMeta:
116 | "@types/node":
117 | optional: true
118 | checksum: 10c0/b5335de9d2c49ea4980fc2d0be1568cc700eb1b9908817efc19cccec78d3ad412d399de1c2562d8b8ffafe3fbc2946225d853c8bb2d27557250fea8ca5239a7f
119 | languageName: node
120 | linkType: hard
121 |
122 | "@inquirer/figures@npm:^1.0.13":
123 | version: 1.0.13
124 | resolution: "@inquirer/figures@npm:1.0.13"
125 | checksum: 10c0/23700a4a0627963af5f51ef4108c338ae77bdd90393164b3fdc79a378586e1f5531259882b7084c690167bf5a36e83033e45aca0321570ba810890abe111014f
126 | languageName: node
127 | linkType: hard
128 |
129 | "@inquirer/input@npm:^4.2.1":
130 | version: 4.2.1
131 | resolution: "@inquirer/input@npm:4.2.1"
132 | dependencies:
133 | "@inquirer/core": "npm:^10.1.15"
134 | "@inquirer/type": "npm:^3.0.8"
135 | peerDependencies:
136 | "@types/node": ">=18"
137 | peerDependenciesMeta:
138 | "@types/node":
139 | optional: true
140 | checksum: 10c0/d1bf680084703f42a2f29d63e35168b77e714dfdc666ce08bc104352385c19f22d65a8be7a31361a83a4a291e2bb07a1d20f642f5be817ac36f372e22196a37a
141 | languageName: node
142 | linkType: hard
143 |
144 | "@inquirer/number@npm:^3.0.17":
145 | version: 3.0.17
146 | resolution: "@inquirer/number@npm:3.0.17"
147 | dependencies:
148 | "@inquirer/core": "npm:^10.1.15"
149 | "@inquirer/type": "npm:^3.0.8"
150 | peerDependencies:
151 | "@types/node": ">=18"
152 | peerDependenciesMeta:
153 | "@types/node":
154 | optional: true
155 | checksum: 10c0/f77efe93c4c8e3efdc58a92d184468f20c351846cc89f5def40cdcb851e8800719b4834d811bddb196d38a0a679c06ad5d33ce91e68266b4a955230ce55dfa52
156 | languageName: node
157 | linkType: hard
158 |
159 | "@inquirer/password@npm:^4.0.17":
160 | version: 4.0.17
161 | resolution: "@inquirer/password@npm:4.0.17"
162 | dependencies:
163 | "@inquirer/core": "npm:^10.1.15"
164 | "@inquirer/type": "npm:^3.0.8"
165 | ansi-escapes: "npm:^4.3.2"
166 | peerDependencies:
167 | "@types/node": ">=18"
168 | peerDependenciesMeta:
169 | "@types/node":
170 | optional: true
171 | checksum: 10c0/7b2773bb11ecdb2ba984daf6a089e7046ecdfa09a6ad69cd41e3eb87cbeb57c5cc4f6ae17ad9ca817457ea5babac622bf7ffbdc7013c930bb95d56a8b479f3ff
172 | languageName: node
173 | linkType: hard
174 |
175 | "@inquirer/prompts@npm:^7.4.0":
176 | version: 7.7.1
177 | resolution: "@inquirer/prompts@npm:7.7.1"
178 | dependencies:
179 | "@inquirer/checkbox": "npm:^4.2.0"
180 | "@inquirer/confirm": "npm:^5.1.14"
181 | "@inquirer/editor": "npm:^4.2.15"
182 | "@inquirer/expand": "npm:^4.0.17"
183 | "@inquirer/input": "npm:^4.2.1"
184 | "@inquirer/number": "npm:^3.0.17"
185 | "@inquirer/password": "npm:^4.0.17"
186 | "@inquirer/rawlist": "npm:^4.1.5"
187 | "@inquirer/search": "npm:^3.0.17"
188 | "@inquirer/select": "npm:^4.3.1"
189 | peerDependencies:
190 | "@types/node": ">=18"
191 | peerDependenciesMeta:
192 | "@types/node":
193 | optional: true
194 | checksum: 10c0/7489a7d5b243c1c6c889e472d1779d838ede414ee766ad5878dc8e99dfa931ca9dac4652ba991e619b5efb4343db39bf7891f753cf17bc638427b05c650f01fd
195 | languageName: node
196 | linkType: hard
197 |
198 | "@inquirer/rawlist@npm:^4.1.5":
199 | version: 4.1.5
200 | resolution: "@inquirer/rawlist@npm:4.1.5"
201 | dependencies:
202 | "@inquirer/core": "npm:^10.1.15"
203 | "@inquirer/type": "npm:^3.0.8"
204 | yoctocolors-cjs: "npm:^2.1.2"
205 | peerDependencies:
206 | "@types/node": ">=18"
207 | peerDependenciesMeta:
208 | "@types/node":
209 | optional: true
210 | checksum: 10c0/6eed0f8a4d223bbc4f8f1b6d21e3f0ca1d6398ea782924346b726ff945b9bcb30a1f3a4f3a910ad7a546a4c11a3f3ff1fa047856a388de1dc29190907f58db55
211 | languageName: node
212 | linkType: hard
213 |
214 | "@inquirer/search@npm:^3.0.17":
215 | version: 3.0.17
216 | resolution: "@inquirer/search@npm:3.0.17"
217 | dependencies:
218 | "@inquirer/core": "npm:^10.1.15"
219 | "@inquirer/figures": "npm:^1.0.13"
220 | "@inquirer/type": "npm:^3.0.8"
221 | yoctocolors-cjs: "npm:^2.1.2"
222 | peerDependencies:
223 | "@types/node": ">=18"
224 | peerDependenciesMeta:
225 | "@types/node":
226 | optional: true
227 | checksum: 10c0/85c1d06a604d20c8d76288ec82f318e2f3907994dbe56dabf043eabf19185ee19807e3ec7d8e750bc25540832e9f60f42986799b04acac650dae5c4129fb1aa8
228 | languageName: node
229 | linkType: hard
230 |
231 | "@inquirer/select@npm:^4.3.1":
232 | version: 4.3.1
233 | resolution: "@inquirer/select@npm:4.3.1"
234 | dependencies:
235 | "@inquirer/core": "npm:^10.1.15"
236 | "@inquirer/figures": "npm:^1.0.13"
237 | "@inquirer/type": "npm:^3.0.8"
238 | ansi-escapes: "npm:^4.3.2"
239 | yoctocolors-cjs: "npm:^2.1.2"
240 | peerDependencies:
241 | "@types/node": ">=18"
242 | peerDependenciesMeta:
243 | "@types/node":
244 | optional: true
245 | checksum: 10c0/febce759b99548eddea02d72611e9302b10d6b3d2cb44c18f7597b79ab96c8373ba775636b2a764f57be13d08da3364ad48c3105884f19082ea75eade69806dd
246 | languageName: node
247 | linkType: hard
248 |
249 | "@inquirer/type@npm:^3.0.8":
250 | version: 3.0.8
251 | resolution: "@inquirer/type@npm:3.0.8"
252 | peerDependencies:
253 | "@types/node": ">=18"
254 | peerDependenciesMeta:
255 | "@types/node":
256 | optional: true
257 | checksum: 10c0/1171bffb9ea0018b12ec4f46a7b485f7e2a328e620e89f3b03f2be8c25889e5b9e62daca3ea10ed040a71d847066c4d9879dc1fea8aa5690ebbc968d3254a5ac
258 | languageName: node
259 | linkType: hard
260 |
261 | "@isaacs/cliui@npm:^8.0.2":
262 | version: 8.0.2
263 | resolution: "@isaacs/cliui@npm:8.0.2"
264 | dependencies:
265 | string-width: "npm:^5.1.2"
266 | string-width-cjs: "npm:string-width@^4.2.0"
267 | strip-ansi: "npm:^7.0.1"
268 | strip-ansi-cjs: "npm:strip-ansi@^6.0.1"
269 | wrap-ansi: "npm:^8.1.0"
270 | wrap-ansi-cjs: "npm:wrap-ansi@^7.0.0"
271 | checksum: 10c0/b1bf42535d49f11dc137f18d5e4e63a28c5569de438a221c369483731e9dac9fb797af554e8bf02b6192d1e5eba6e6402cf93900c3d0ac86391d00d04876789e
272 | languageName: node
273 | linkType: hard
274 |
275 | "@isaacs/fs-minipass@npm:^4.0.0":
276 | version: 4.0.1
277 | resolution: "@isaacs/fs-minipass@npm:4.0.1"
278 | dependencies:
279 | minipass: "npm:^7.0.4"
280 | checksum: 10c0/c25b6dc1598790d5b55c0947a9b7d111cfa92594db5296c3b907e2f533c033666f692a3939eadac17b1c7c40d362d0b0635dc874cbfe3e70db7c2b07cc97a5d2
281 | languageName: node
282 | linkType: hard
283 |
284 | "@mapbox/node-pre-gyp@npm:^2.0.0":
285 | version: 2.0.0
286 | resolution: "@mapbox/node-pre-gyp@npm:2.0.0"
287 | dependencies:
288 | consola: "npm:^3.2.3"
289 | detect-libc: "npm:^2.0.0"
290 | https-proxy-agent: "npm:^7.0.5"
291 | node-fetch: "npm:^2.6.7"
292 | nopt: "npm:^8.0.0"
293 | semver: "npm:^7.5.3"
294 | tar: "npm:^7.4.0"
295 | bin:
296 | node-pre-gyp: bin/node-pre-gyp
297 | checksum: 10c0/7d874c7f6f5560a87be7207f28d9a4e53b750085a82167608fd573aab8073645e95b3608f69e244df0e1d24e90a66525aeae708aba82ca73ff668ed0ab6abda6
298 | languageName: node
299 | linkType: hard
300 |
301 | "@napi-rs/cli@npm:^3.0.3":
302 | version: 3.0.3
303 | resolution: "@napi-rs/cli@npm:3.0.3"
304 | dependencies:
305 | "@inquirer/prompts": "npm:^7.4.0"
306 | "@napi-rs/cross-toolchain": "npm:^1.0.0"
307 | "@napi-rs/wasm-tools": "npm:^1.0.0"
308 | "@octokit/rest": "npm:^22.0.0"
309 | clipanion: "npm:^4.0.0-rc.4"
310 | colorette: "npm:^2.0.20"
311 | debug: "npm:^4.4.0"
312 | emnapi: "npm:^1.4.0"
313 | find-up: "npm:^7.0.0"
314 | js-yaml: "npm:^4.1.0"
315 | lodash-es: "npm:^4.17.21"
316 | semver: "npm:^7.7.1"
317 | typanion: "npm:^3.14.0"
318 | wasm-sjlj: "npm:^1.0.6"
319 | peerDependencies:
320 | "@emnapi/runtime": ^1.1.0
321 | emnapi: ^1.1.0
322 | peerDependenciesMeta:
323 | "@emnapi/runtime":
324 | optional: true
325 | emnapi:
326 | optional: true
327 | bin:
328 | napi: ./dist/cli.js
329 | napi-raw: ./cli.mjs
330 | checksum: 10c0/88909b70d995e70bf1541ec207099ba99924db7aa430df76e217331abedc41b5a69bac11482c715337734e6b260716acbf2a5d676d27bbd93d76cad3c825cd30
331 | languageName: node
332 | linkType: hard
333 |
334 | "@napi-rs/cross-toolchain@npm:^1.0.0":
335 | version: 1.0.0
336 | resolution: "@napi-rs/cross-toolchain@npm:1.0.0"
337 | dependencies:
338 | "@napi-rs/lzma": "npm:^1.4.3"
339 | "@napi-rs/tar": "npm:^1.0.0"
340 | debug: "npm:^4.4.1"
341 | peerDependencies:
342 | "@napi-rs/cross-toolchain-arm64-target-aarch64": ^1.0.0
343 | "@napi-rs/cross-toolchain-arm64-target-armv7": ^1.0.0
344 | "@napi-rs/cross-toolchain-arm64-target-x86_64": ^1.0.0
345 | "@napi-rs/cross-toolchain-x64-target-aarch64": ^1.0.0
346 | "@napi-rs/cross-toolchain-x64-target-armv7": ^1.0.0
347 | "@napi-rs/cross-toolchain-x64-target-x86_64": ^1.0.0
348 | peerDependenciesMeta:
349 | "@napi-rs/cross-toolchain-arm64-target-aarch64":
350 | optional: true
351 | "@napi-rs/cross-toolchain-arm64-target-armv7":
352 | optional: true
353 | "@napi-rs/cross-toolchain-arm64-target-x86_64":
354 | optional: true
355 | "@napi-rs/cross-toolchain-x64-target-aarch64":
356 | optional: true
357 | "@napi-rs/cross-toolchain-x64-target-armv7":
358 | optional: true
359 | "@napi-rs/cross-toolchain-x64-target-x86_64":
360 | optional: true
361 | checksum: 10c0/ad9ef89642ce21bfc80847bed9c070d6b711759ecc7a3a2263039714559d105266e3278ed0464a4f7977e80b41d7af11bc265740889638c394fc69be4a0222f8
362 | languageName: node
363 | linkType: hard
364 |
365 | "@napi-rs/lzma-android-arm-eabi@npm:1.4.4":
366 | version: 1.4.4
367 | resolution: "@napi-rs/lzma-android-arm-eabi@npm:1.4.4"
368 | conditions: os=android & cpu=arm
369 | languageName: node
370 | linkType: hard
371 |
372 | "@napi-rs/lzma-android-arm64@npm:1.4.4":
373 | version: 1.4.4
374 | resolution: "@napi-rs/lzma-android-arm64@npm:1.4.4"
375 | conditions: os=android & cpu=arm64
376 | languageName: node
377 | linkType: hard
378 |
379 | "@napi-rs/lzma-darwin-arm64@npm:1.4.4":
380 | version: 1.4.4
381 | resolution: "@napi-rs/lzma-darwin-arm64@npm:1.4.4"
382 | conditions: os=darwin & cpu=arm64
383 | languageName: node
384 | linkType: hard
385 |
386 | "@napi-rs/lzma-darwin-x64@npm:1.4.4":
387 | version: 1.4.4
388 | resolution: "@napi-rs/lzma-darwin-x64@npm:1.4.4"
389 | conditions: os=darwin & cpu=x64
390 | languageName: node
391 | linkType: hard
392 |
393 | "@napi-rs/lzma-freebsd-x64@npm:1.4.4":
394 | version: 1.4.4
395 | resolution: "@napi-rs/lzma-freebsd-x64@npm:1.4.4"
396 | conditions: os=freebsd & cpu=x64
397 | languageName: node
398 | linkType: hard
399 |
400 | "@napi-rs/lzma-linux-arm-gnueabihf@npm:1.4.4":
401 | version: 1.4.4
402 | resolution: "@napi-rs/lzma-linux-arm-gnueabihf@npm:1.4.4"
403 | conditions: os=linux & cpu=arm
404 | languageName: node
405 | linkType: hard
406 |
407 | "@napi-rs/lzma-linux-arm64-gnu@npm:1.4.4":
408 | version: 1.4.4
409 | resolution: "@napi-rs/lzma-linux-arm64-gnu@npm:1.4.4"
410 | conditions: os=linux & cpu=arm64 & libc=glibc
411 | languageName: node
412 | linkType: hard
413 |
414 | "@napi-rs/lzma-linux-arm64-musl@npm:1.4.4":
415 | version: 1.4.4
416 | resolution: "@napi-rs/lzma-linux-arm64-musl@npm:1.4.4"
417 | conditions: os=linux & cpu=arm64 & libc=musl
418 | languageName: node
419 | linkType: hard
420 |
421 | "@napi-rs/lzma-linux-ppc64-gnu@npm:1.4.4":
422 | version: 1.4.4
423 | resolution: "@napi-rs/lzma-linux-ppc64-gnu@npm:1.4.4"
424 | conditions: os=linux & cpu=ppc64 & libc=glibc
425 | languageName: node
426 | linkType: hard
427 |
428 | "@napi-rs/lzma-linux-riscv64-gnu@npm:1.4.4":
429 | version: 1.4.4
430 | resolution: "@napi-rs/lzma-linux-riscv64-gnu@npm:1.4.4"
431 | conditions: os=linux & cpu=riscv64 & libc=glibc
432 | languageName: node
433 | linkType: hard
434 |
435 | "@napi-rs/lzma-linux-s390x-gnu@npm:1.4.4":
436 | version: 1.4.4
437 | resolution: "@napi-rs/lzma-linux-s390x-gnu@npm:1.4.4"
438 | conditions: os=linux & cpu=s390x & libc=glibc
439 | languageName: node
440 | linkType: hard
441 |
442 | "@napi-rs/lzma-linux-x64-gnu@npm:1.4.4":
443 | version: 1.4.4
444 | resolution: "@napi-rs/lzma-linux-x64-gnu@npm:1.4.4"
445 | conditions: os=linux & cpu=x64 & libc=glibc
446 | languageName: node
447 | linkType: hard
448 |
449 | "@napi-rs/lzma-linux-x64-musl@npm:1.4.4":
450 | version: 1.4.4
451 | resolution: "@napi-rs/lzma-linux-x64-musl@npm:1.4.4"
452 | conditions: os=linux & cpu=x64 & libc=musl
453 | languageName: node
454 | linkType: hard
455 |
456 | "@napi-rs/lzma-wasm32-wasi@npm:1.4.4":
457 | version: 1.4.4
458 | resolution: "@napi-rs/lzma-wasm32-wasi@npm:1.4.4"
459 | dependencies:
460 | "@napi-rs/wasm-runtime": "npm:^1.0.1"
461 | conditions: cpu=wasm32
462 | languageName: node
463 | linkType: hard
464 |
465 | "@napi-rs/lzma-win32-arm64-msvc@npm:1.4.4":
466 | version: 1.4.4
467 | resolution: "@napi-rs/lzma-win32-arm64-msvc@npm:1.4.4"
468 | conditions: os=win32 & cpu=arm64
469 | languageName: node
470 | linkType: hard
471 |
472 | "@napi-rs/lzma-win32-ia32-msvc@npm:1.4.4":
473 | version: 1.4.4
474 | resolution: "@napi-rs/lzma-win32-ia32-msvc@npm:1.4.4"
475 | conditions: os=win32 & cpu=ia32
476 | languageName: node
477 | linkType: hard
478 |
479 | "@napi-rs/lzma-win32-x64-msvc@npm:1.4.4":
480 | version: 1.4.4
481 | resolution: "@napi-rs/lzma-win32-x64-msvc@npm:1.4.4"
482 | conditions: os=win32 & cpu=x64
483 | languageName: node
484 | linkType: hard
485 |
486 | "@napi-rs/lzma@npm:^1.4.3":
487 | version: 1.4.4
488 | resolution: "@napi-rs/lzma@npm:1.4.4"
489 | dependencies:
490 | "@napi-rs/lzma-android-arm-eabi": "npm:1.4.4"
491 | "@napi-rs/lzma-android-arm64": "npm:1.4.4"
492 | "@napi-rs/lzma-darwin-arm64": "npm:1.4.4"
493 | "@napi-rs/lzma-darwin-x64": "npm:1.4.4"
494 | "@napi-rs/lzma-freebsd-x64": "npm:1.4.4"
495 | "@napi-rs/lzma-linux-arm-gnueabihf": "npm:1.4.4"
496 | "@napi-rs/lzma-linux-arm64-gnu": "npm:1.4.4"
497 | "@napi-rs/lzma-linux-arm64-musl": "npm:1.4.4"
498 | "@napi-rs/lzma-linux-ppc64-gnu": "npm:1.4.4"
499 | "@napi-rs/lzma-linux-riscv64-gnu": "npm:1.4.4"
500 | "@napi-rs/lzma-linux-s390x-gnu": "npm:1.4.4"
501 | "@napi-rs/lzma-linux-x64-gnu": "npm:1.4.4"
502 | "@napi-rs/lzma-linux-x64-musl": "npm:1.4.4"
503 | "@napi-rs/lzma-wasm32-wasi": "npm:1.4.4"
504 | "@napi-rs/lzma-win32-arm64-msvc": "npm:1.4.4"
505 | "@napi-rs/lzma-win32-ia32-msvc": "npm:1.4.4"
506 | "@napi-rs/lzma-win32-x64-msvc": "npm:1.4.4"
507 | dependenciesMeta:
508 | "@napi-rs/lzma-android-arm-eabi":
509 | optional: true
510 | "@napi-rs/lzma-android-arm64":
511 | optional: true
512 | "@napi-rs/lzma-darwin-arm64":
513 | optional: true
514 | "@napi-rs/lzma-darwin-x64":
515 | optional: true
516 | "@napi-rs/lzma-freebsd-x64":
517 | optional: true
518 | "@napi-rs/lzma-linux-arm-gnueabihf":
519 | optional: true
520 | "@napi-rs/lzma-linux-arm64-gnu":
521 | optional: true
522 | "@napi-rs/lzma-linux-arm64-musl":
523 | optional: true
524 | "@napi-rs/lzma-linux-ppc64-gnu":
525 | optional: true
526 | "@napi-rs/lzma-linux-riscv64-gnu":
527 | optional: true
528 | "@napi-rs/lzma-linux-s390x-gnu":
529 | optional: true
530 | "@napi-rs/lzma-linux-x64-gnu":
531 | optional: true
532 | "@napi-rs/lzma-linux-x64-musl":
533 | optional: true
534 | "@napi-rs/lzma-wasm32-wasi":
535 | optional: true
536 | "@napi-rs/lzma-win32-arm64-msvc":
537 | optional: true
538 | "@napi-rs/lzma-win32-ia32-msvc":
539 | optional: true
540 | "@napi-rs/lzma-win32-x64-msvc":
541 | optional: true
542 | checksum: 10c0/e74d5d03a2edfd2a90ca90d97f746b200f28abca8960bc834c6063fe81fa26c826ce9a2224c68abfdb2190d8a873e03dc9126b7b5a5aa560843b00044602a89b
543 | languageName: node
544 | linkType: hard
545 |
546 | "@napi-rs/sysinfo@workspace:.":
547 | version: 0.0.0-use.local
548 | resolution: "@napi-rs/sysinfo@workspace:."
549 | dependencies:
550 | "@napi-rs/cli": "npm:^3.0.3"
551 | ava: "npm:^6.4.1"
552 | oxlint: "npm:^1.8.0"
553 | systeminformation: "npm:^5.27.7"
554 | languageName: unknown
555 | linkType: soft
556 |
557 | "@napi-rs/tar-android-arm-eabi@npm:1.0.0":
558 | version: 1.0.0
559 | resolution: "@napi-rs/tar-android-arm-eabi@npm:1.0.0"
560 | conditions: os=android & cpu=arm
561 | languageName: node
562 | linkType: hard
563 |
564 | "@napi-rs/tar-android-arm64@npm:1.0.0":
565 | version: 1.0.0
566 | resolution: "@napi-rs/tar-android-arm64@npm:1.0.0"
567 | conditions: os=android & cpu=arm64
568 | languageName: node
569 | linkType: hard
570 |
571 | "@napi-rs/tar-darwin-arm64@npm:1.0.0":
572 | version: 1.0.0
573 | resolution: "@napi-rs/tar-darwin-arm64@npm:1.0.0"
574 | conditions: os=darwin & cpu=arm64
575 | languageName: node
576 | linkType: hard
577 |
578 | "@napi-rs/tar-darwin-x64@npm:1.0.0":
579 | version: 1.0.0
580 | resolution: "@napi-rs/tar-darwin-x64@npm:1.0.0"
581 | conditions: os=darwin & cpu=x64
582 | languageName: node
583 | linkType: hard
584 |
585 | "@napi-rs/tar-freebsd-x64@npm:1.0.0":
586 | version: 1.0.0
587 | resolution: "@napi-rs/tar-freebsd-x64@npm:1.0.0"
588 | conditions: os=freebsd & cpu=x64
589 | languageName: node
590 | linkType: hard
591 |
592 | "@napi-rs/tar-linux-arm-gnueabihf@npm:1.0.0":
593 | version: 1.0.0
594 | resolution: "@napi-rs/tar-linux-arm-gnueabihf@npm:1.0.0"
595 | conditions: os=linux & cpu=arm
596 | languageName: node
597 | linkType: hard
598 |
599 | "@napi-rs/tar-linux-arm64-gnu@npm:1.0.0":
600 | version: 1.0.0
601 | resolution: "@napi-rs/tar-linux-arm64-gnu@npm:1.0.0"
602 | conditions: os=linux & cpu=arm64 & libc=glibc
603 | languageName: node
604 | linkType: hard
605 |
606 | "@napi-rs/tar-linux-arm64-musl@npm:1.0.0":
607 | version: 1.0.0
608 | resolution: "@napi-rs/tar-linux-arm64-musl@npm:1.0.0"
609 | conditions: os=linux & cpu=arm64 & libc=musl
610 | languageName: node
611 | linkType: hard
612 |
613 | "@napi-rs/tar-linux-ppc64-gnu@npm:1.0.0":
614 | version: 1.0.0
615 | resolution: "@napi-rs/tar-linux-ppc64-gnu@npm:1.0.0"
616 | conditions: os=linux & cpu=ppc64 & libc=glibc
617 | languageName: node
618 | linkType: hard
619 |
620 | "@napi-rs/tar-linux-s390x-gnu@npm:1.0.0":
621 | version: 1.0.0
622 | resolution: "@napi-rs/tar-linux-s390x-gnu@npm:1.0.0"
623 | conditions: os=linux & cpu=s390x & libc=glibc
624 | languageName: node
625 | linkType: hard
626 |
627 | "@napi-rs/tar-linux-x64-gnu@npm:1.0.0":
628 | version: 1.0.0
629 | resolution: "@napi-rs/tar-linux-x64-gnu@npm:1.0.0"
630 | conditions: os=linux & cpu=x64 & libc=glibc
631 | languageName: node
632 | linkType: hard
633 |
634 | "@napi-rs/tar-linux-x64-musl@npm:1.0.0":
635 | version: 1.0.0
636 | resolution: "@napi-rs/tar-linux-x64-musl@npm:1.0.0"
637 | conditions: os=linux & cpu=x64 & libc=musl
638 | languageName: node
639 | linkType: hard
640 |
641 | "@napi-rs/tar-wasm32-wasi@npm:1.0.0":
642 | version: 1.0.0
643 | resolution: "@napi-rs/tar-wasm32-wasi@npm:1.0.0"
644 | dependencies:
645 | "@napi-rs/wasm-runtime": "npm:^1.0.1"
646 | conditions: cpu=wasm32
647 | languageName: node
648 | linkType: hard
649 |
650 | "@napi-rs/tar-win32-arm64-msvc@npm:1.0.0":
651 | version: 1.0.0
652 | resolution: "@napi-rs/tar-win32-arm64-msvc@npm:1.0.0"
653 | conditions: os=win32 & cpu=arm64
654 | languageName: node
655 | linkType: hard
656 |
657 | "@napi-rs/tar-win32-ia32-msvc@npm:1.0.0":
658 | version: 1.0.0
659 | resolution: "@napi-rs/tar-win32-ia32-msvc@npm:1.0.0"
660 | conditions: os=win32 & cpu=ia32
661 | languageName: node
662 | linkType: hard
663 |
664 | "@napi-rs/tar-win32-x64-msvc@npm:1.0.0":
665 | version: 1.0.0
666 | resolution: "@napi-rs/tar-win32-x64-msvc@npm:1.0.0"
667 | conditions: os=win32 & cpu=x64
668 | languageName: node
669 | linkType: hard
670 |
671 | "@napi-rs/tar@npm:^1.0.0":
672 | version: 1.0.0
673 | resolution: "@napi-rs/tar@npm:1.0.0"
674 | dependencies:
675 | "@napi-rs/tar-android-arm-eabi": "npm:1.0.0"
676 | "@napi-rs/tar-android-arm64": "npm:1.0.0"
677 | "@napi-rs/tar-darwin-arm64": "npm:1.0.0"
678 | "@napi-rs/tar-darwin-x64": "npm:1.0.0"
679 | "@napi-rs/tar-freebsd-x64": "npm:1.0.0"
680 | "@napi-rs/tar-linux-arm-gnueabihf": "npm:1.0.0"
681 | "@napi-rs/tar-linux-arm64-gnu": "npm:1.0.0"
682 | "@napi-rs/tar-linux-arm64-musl": "npm:1.0.0"
683 | "@napi-rs/tar-linux-ppc64-gnu": "npm:1.0.0"
684 | "@napi-rs/tar-linux-s390x-gnu": "npm:1.0.0"
685 | "@napi-rs/tar-linux-x64-gnu": "npm:1.0.0"
686 | "@napi-rs/tar-linux-x64-musl": "npm:1.0.0"
687 | "@napi-rs/tar-wasm32-wasi": "npm:1.0.0"
688 | "@napi-rs/tar-win32-arm64-msvc": "npm:1.0.0"
689 | "@napi-rs/tar-win32-ia32-msvc": "npm:1.0.0"
690 | "@napi-rs/tar-win32-x64-msvc": "npm:1.0.0"
691 | dependenciesMeta:
692 | "@napi-rs/tar-android-arm-eabi":
693 | optional: true
694 | "@napi-rs/tar-android-arm64":
695 | optional: true
696 | "@napi-rs/tar-darwin-arm64":
697 | optional: true
698 | "@napi-rs/tar-darwin-x64":
699 | optional: true
700 | "@napi-rs/tar-freebsd-x64":
701 | optional: true
702 | "@napi-rs/tar-linux-arm-gnueabihf":
703 | optional: true
704 | "@napi-rs/tar-linux-arm64-gnu":
705 | optional: true
706 | "@napi-rs/tar-linux-arm64-musl":
707 | optional: true
708 | "@napi-rs/tar-linux-ppc64-gnu":
709 | optional: true
710 | "@napi-rs/tar-linux-s390x-gnu":
711 | optional: true
712 | "@napi-rs/tar-linux-x64-gnu":
713 | optional: true
714 | "@napi-rs/tar-linux-x64-musl":
715 | optional: true
716 | "@napi-rs/tar-wasm32-wasi":
717 | optional: true
718 | "@napi-rs/tar-win32-arm64-msvc":
719 | optional: true
720 | "@napi-rs/tar-win32-ia32-msvc":
721 | optional: true
722 | "@napi-rs/tar-win32-x64-msvc":
723 | optional: true
724 | checksum: 10c0/d8c07baa13c813230f75f452845726f51d7a48072c389c1c1145f0b2b9679bb71a771d500489678c9f0f52dd8566f49cf7187e8b57429b2003d3047825225ef4
725 | languageName: node
726 | linkType: hard
727 |
728 | "@napi-rs/wasm-runtime@npm:^1.0.1":
729 | version: 1.0.1
730 | resolution: "@napi-rs/wasm-runtime@npm:1.0.1"
731 | dependencies:
732 | "@emnapi/core": "npm:^1.4.5"
733 | "@emnapi/runtime": "npm:^1.4.5"
734 | "@tybys/wasm-util": "npm:^0.10.0"
735 | checksum: 10c0/3244105b75637d8d39e76782921fe46e48105bcd390db01a10dc7b596ee99af0f06b7f2b841d7632e756bd3220a5d595b9d426a5453da1ccc895900b894d098f
736 | languageName: node
737 | linkType: hard
738 |
739 | "@napi-rs/wasm-tools-android-arm-eabi@npm:1.0.0":
740 | version: 1.0.0
741 | resolution: "@napi-rs/wasm-tools-android-arm-eabi@npm:1.0.0"
742 | conditions: os=android & cpu=arm
743 | languageName: node
744 | linkType: hard
745 |
746 | "@napi-rs/wasm-tools-android-arm64@npm:1.0.0":
747 | version: 1.0.0
748 | resolution: "@napi-rs/wasm-tools-android-arm64@npm:1.0.0"
749 | conditions: os=android & cpu=arm64
750 | languageName: node
751 | linkType: hard
752 |
753 | "@napi-rs/wasm-tools-darwin-arm64@npm:1.0.0":
754 | version: 1.0.0
755 | resolution: "@napi-rs/wasm-tools-darwin-arm64@npm:1.0.0"
756 | conditions: os=darwin & cpu=arm64
757 | languageName: node
758 | linkType: hard
759 |
760 | "@napi-rs/wasm-tools-darwin-x64@npm:1.0.0":
761 | version: 1.0.0
762 | resolution: "@napi-rs/wasm-tools-darwin-x64@npm:1.0.0"
763 | conditions: os=darwin & cpu=x64
764 | languageName: node
765 | linkType: hard
766 |
767 | "@napi-rs/wasm-tools-freebsd-x64@npm:1.0.0":
768 | version: 1.0.0
769 | resolution: "@napi-rs/wasm-tools-freebsd-x64@npm:1.0.0"
770 | conditions: os=freebsd & cpu=x64
771 | languageName: node
772 | linkType: hard
773 |
774 | "@napi-rs/wasm-tools-linux-arm64-gnu@npm:1.0.0":
775 | version: 1.0.0
776 | resolution: "@napi-rs/wasm-tools-linux-arm64-gnu@npm:1.0.0"
777 | conditions: os=linux & cpu=arm64 & libc=glibc
778 | languageName: node
779 | linkType: hard
780 |
781 | "@napi-rs/wasm-tools-linux-arm64-musl@npm:1.0.0":
782 | version: 1.0.0
783 | resolution: "@napi-rs/wasm-tools-linux-arm64-musl@npm:1.0.0"
784 | conditions: os=linux & cpu=arm64 & libc=musl
785 | languageName: node
786 | linkType: hard
787 |
788 | "@napi-rs/wasm-tools-linux-x64-gnu@npm:1.0.0":
789 | version: 1.0.0
790 | resolution: "@napi-rs/wasm-tools-linux-x64-gnu@npm:1.0.0"
791 | conditions: os=linux & cpu=x64 & libc=glibc
792 | languageName: node
793 | linkType: hard
794 |
795 | "@napi-rs/wasm-tools-linux-x64-musl@npm:1.0.0":
796 | version: 1.0.0
797 | resolution: "@napi-rs/wasm-tools-linux-x64-musl@npm:1.0.0"
798 | conditions: os=linux & cpu=x64 & libc=musl
799 | languageName: node
800 | linkType: hard
801 |
802 | "@napi-rs/wasm-tools-wasm32-wasi@npm:1.0.0":
803 | version: 1.0.0
804 | resolution: "@napi-rs/wasm-tools-wasm32-wasi@npm:1.0.0"
805 | dependencies:
806 | "@napi-rs/wasm-runtime": "npm:^1.0.1"
807 | conditions: cpu=wasm32
808 | languageName: node
809 | linkType: hard
810 |
811 | "@napi-rs/wasm-tools-win32-arm64-msvc@npm:1.0.0":
812 | version: 1.0.0
813 | resolution: "@napi-rs/wasm-tools-win32-arm64-msvc@npm:1.0.0"
814 | conditions: os=win32 & cpu=arm64
815 | languageName: node
816 | linkType: hard
817 |
818 | "@napi-rs/wasm-tools-win32-ia32-msvc@npm:1.0.0":
819 | version: 1.0.0
820 | resolution: "@napi-rs/wasm-tools-win32-ia32-msvc@npm:1.0.0"
821 | conditions: os=win32 & cpu=ia32
822 | languageName: node
823 | linkType: hard
824 |
825 | "@napi-rs/wasm-tools-win32-x64-msvc@npm:1.0.0":
826 | version: 1.0.0
827 | resolution: "@napi-rs/wasm-tools-win32-x64-msvc@npm:1.0.0"
828 | conditions: os=win32 & cpu=x64
829 | languageName: node
830 | linkType: hard
831 |
832 | "@napi-rs/wasm-tools@npm:^1.0.0":
833 | version: 1.0.0
834 | resolution: "@napi-rs/wasm-tools@npm:1.0.0"
835 | dependencies:
836 | "@napi-rs/wasm-tools-android-arm-eabi": "npm:1.0.0"
837 | "@napi-rs/wasm-tools-android-arm64": "npm:1.0.0"
838 | "@napi-rs/wasm-tools-darwin-arm64": "npm:1.0.0"
839 | "@napi-rs/wasm-tools-darwin-x64": "npm:1.0.0"
840 | "@napi-rs/wasm-tools-freebsd-x64": "npm:1.0.0"
841 | "@napi-rs/wasm-tools-linux-arm64-gnu": "npm:1.0.0"
842 | "@napi-rs/wasm-tools-linux-arm64-musl": "npm:1.0.0"
843 | "@napi-rs/wasm-tools-linux-x64-gnu": "npm:1.0.0"
844 | "@napi-rs/wasm-tools-linux-x64-musl": "npm:1.0.0"
845 | "@napi-rs/wasm-tools-wasm32-wasi": "npm:1.0.0"
846 | "@napi-rs/wasm-tools-win32-arm64-msvc": "npm:1.0.0"
847 | "@napi-rs/wasm-tools-win32-ia32-msvc": "npm:1.0.0"
848 | "@napi-rs/wasm-tools-win32-x64-msvc": "npm:1.0.0"
849 | dependenciesMeta:
850 | "@napi-rs/wasm-tools-android-arm-eabi":
851 | optional: true
852 | "@napi-rs/wasm-tools-android-arm64":
853 | optional: true
854 | "@napi-rs/wasm-tools-darwin-arm64":
855 | optional: true
856 | "@napi-rs/wasm-tools-darwin-x64":
857 | optional: true
858 | "@napi-rs/wasm-tools-freebsd-x64":
859 | optional: true
860 | "@napi-rs/wasm-tools-linux-arm64-gnu":
861 | optional: true
862 | "@napi-rs/wasm-tools-linux-arm64-musl":
863 | optional: true
864 | "@napi-rs/wasm-tools-linux-x64-gnu":
865 | optional: true
866 | "@napi-rs/wasm-tools-linux-x64-musl":
867 | optional: true
868 | "@napi-rs/wasm-tools-wasm32-wasi":
869 | optional: true
870 | "@napi-rs/wasm-tools-win32-arm64-msvc":
871 | optional: true
872 | "@napi-rs/wasm-tools-win32-ia32-msvc":
873 | optional: true
874 | "@napi-rs/wasm-tools-win32-x64-msvc":
875 | optional: true
876 | checksum: 10c0/74bec20304baba0f21a884b7c78511d03e13c81b73b2a2ce8d655d5111860227238f0627d18f0e36ec2e9d777bc3832cd3aa1dd7f68504ffbc07d878b5649670
877 | languageName: node
878 | linkType: hard
879 |
880 | "@nodelib/fs.scandir@npm:2.1.5":
881 | version: 2.1.5
882 | resolution: "@nodelib/fs.scandir@npm:2.1.5"
883 | dependencies:
884 | "@nodelib/fs.stat": "npm:2.0.5"
885 | run-parallel: "npm:^1.1.9"
886 | checksum: 10c0/732c3b6d1b1e967440e65f284bd06e5821fedf10a1bea9ed2bb75956ea1f30e08c44d3def9d6a230666574edbaf136f8cfd319c14fd1f87c66e6a44449afb2eb
887 | languageName: node
888 | linkType: hard
889 |
890 | "@nodelib/fs.stat@npm:2.0.5, @nodelib/fs.stat@npm:^2.0.2":
891 | version: 2.0.5
892 | resolution: "@nodelib/fs.stat@npm:2.0.5"
893 | checksum: 10c0/88dafe5e3e29a388b07264680dc996c17f4bda48d163a9d4f5c1112979f0ce8ec72aa7116122c350b4e7976bc5566dc3ddb579be1ceaacc727872eb4ed93926d
894 | languageName: node
895 | linkType: hard
896 |
897 | "@nodelib/fs.walk@npm:^1.2.3":
898 | version: 1.2.8
899 | resolution: "@nodelib/fs.walk@npm:1.2.8"
900 | dependencies:
901 | "@nodelib/fs.scandir": "npm:2.1.5"
902 | fastq: "npm:^1.6.0"
903 | checksum: 10c0/db9de047c3bb9b51f9335a7bb46f4fcfb6829fb628318c12115fbaf7d369bfce71c15b103d1fc3b464812d936220ee9bc1c8f762d032c9f6be9acc99249095b1
904 | languageName: node
905 | linkType: hard
906 |
907 | "@octokit/auth-token@npm:^6.0.0":
908 | version: 6.0.0
909 | resolution: "@octokit/auth-token@npm:6.0.0"
910 | checksum: 10c0/32ecc904c5f6f4e5d090bfcc679d70318690c0a0b5040cd9a25811ad9dcd44c33f2cf96b6dbee1cd56cf58fde28fb1819c01b58718aa5c971f79c822357cb5c0
911 | languageName: node
912 | linkType: hard
913 |
914 | "@octokit/core@npm:^7.0.2":
915 | version: 7.0.3
916 | resolution: "@octokit/core@npm:7.0.3"
917 | dependencies:
918 | "@octokit/auth-token": "npm:^6.0.0"
919 | "@octokit/graphql": "npm:^9.0.1"
920 | "@octokit/request": "npm:^10.0.2"
921 | "@octokit/request-error": "npm:^7.0.0"
922 | "@octokit/types": "npm:^14.0.0"
923 | before-after-hook: "npm:^4.0.0"
924 | universal-user-agent: "npm:^7.0.0"
925 | checksum: 10c0/51427b4c3337e15b394d60277b673c5628a72d245a23b1a446e4249d15e37983fa01d09f10c8ab281207e024929f4d2f6cc27a4d345ec0ece2df78d42586d846
926 | languageName: node
927 | linkType: hard
928 |
929 | "@octokit/endpoint@npm:^11.0.0":
930 | version: 11.0.0
931 | resolution: "@octokit/endpoint@npm:11.0.0"
932 | dependencies:
933 | "@octokit/types": "npm:^14.0.0"
934 | universal-user-agent: "npm:^7.0.2"
935 | checksum: 10c0/ba929128af5327393fdb3a31f416277ae3036a44566d35955a4eddd484a15b5ddc6abe219a56355f3313c7197d59f4e8bf574a4f0a8680bc1c8725b88433d391
936 | languageName: node
937 | linkType: hard
938 |
939 | "@octokit/graphql@npm:^9.0.1":
940 | version: 9.0.1
941 | resolution: "@octokit/graphql@npm:9.0.1"
942 | dependencies:
943 | "@octokit/request": "npm:^10.0.2"
944 | "@octokit/types": "npm:^14.0.0"
945 | universal-user-agent: "npm:^7.0.0"
946 | checksum: 10c0/d80ec923b7624e8a7c84430a287ff18da3c77058e3166ce8e9a67950af00e88767f85d973b4032fc837b67b72d02b323aff2d8f7eeae1ae463bde1a51ddcb83d
947 | languageName: node
948 | linkType: hard
949 |
950 | "@octokit/openapi-types@npm:^25.1.0":
951 | version: 25.1.0
952 | resolution: "@octokit/openapi-types@npm:25.1.0"
953 | checksum: 10c0/b5b1293b11c6ec7112c7a2713f8507c2696d5db8902ce893b594080ab0329f5a6fcda1b5ac6fe6eed9425e897f4d03326c1bdf5c337e35d324e7b925e52a2661
954 | languageName: node
955 | linkType: hard
956 |
957 | "@octokit/plugin-paginate-rest@npm:^13.0.1":
958 | version: 13.1.1
959 | resolution: "@octokit/plugin-paginate-rest@npm:13.1.1"
960 | dependencies:
961 | "@octokit/types": "npm:^14.1.0"
962 | peerDependencies:
963 | "@octokit/core": ">=6"
964 | checksum: 10c0/88d80608881df88f8e832856e9279ac1c1af30ced9adb7c847f4d120b4bb308c2ab9d791ffd4c9585759e57a938798b4c3f2f988a389f2d78a61aaaebc36ffa7
965 | languageName: node
966 | linkType: hard
967 |
968 | "@octokit/plugin-request-log@npm:^6.0.0":
969 | version: 6.0.0
970 | resolution: "@octokit/plugin-request-log@npm:6.0.0"
971 | peerDependencies:
972 | "@octokit/core": ">=6"
973 | checksum: 10c0/40e46ad0c77235742d0bf698ab4e17df1ae06e0d7824ffc5867ed71e27de860875adb73d89629b823fe8647459a8f262c26ed1aa6ee374873fa94095f37df0bb
974 | languageName: node
975 | linkType: hard
976 |
977 | "@octokit/plugin-rest-endpoint-methods@npm:^16.0.0":
978 | version: 16.0.0
979 | resolution: "@octokit/plugin-rest-endpoint-methods@npm:16.0.0"
980 | dependencies:
981 | "@octokit/types": "npm:^14.1.0"
982 | peerDependencies:
983 | "@octokit/core": ">=6"
984 | checksum: 10c0/6cfe068dbd550bd5914374e65b89482b9deac29f6c26bf02ab6298e956d95b62fc15a2a49dfc6ff76f5938c6ff7fdfe5b7eccdb7551eaff8b1daf7394bc946cb
985 | languageName: node
986 | linkType: hard
987 |
988 | "@octokit/request-error@npm:^7.0.0":
989 | version: 7.0.0
990 | resolution: "@octokit/request-error@npm:7.0.0"
991 | dependencies:
992 | "@octokit/types": "npm:^14.0.0"
993 | checksum: 10c0/e52bdd832a0187d66b20da5716c374d028f63d824908a9e16cad462754324083839b11cf6956e1d23f6112d3c77f17334ebbd80f49d56840b2b03ed9abef8cb0
994 | languageName: node
995 | linkType: hard
996 |
997 | "@octokit/request@npm:^10.0.2":
998 | version: 10.0.3
999 | resolution: "@octokit/request@npm:10.0.3"
1000 | dependencies:
1001 | "@octokit/endpoint": "npm:^11.0.0"
1002 | "@octokit/request-error": "npm:^7.0.0"
1003 | "@octokit/types": "npm:^14.0.0"
1004 | fast-content-type-parse: "npm:^3.0.0"
1005 | universal-user-agent: "npm:^7.0.2"
1006 | checksum: 10c0/2d9b2134390ef3aa9fe0c5e659fe93dd94fbabc4dcc6da6e16998dc84b5bda200e6b7a4e178f567883d0ba99c0ea5a6d095a417d86d76854569196c39d2f9a6d
1007 | languageName: node
1008 | linkType: hard
1009 |
1010 | "@octokit/rest@npm:^22.0.0":
1011 | version: 22.0.0
1012 | resolution: "@octokit/rest@npm:22.0.0"
1013 | dependencies:
1014 | "@octokit/core": "npm:^7.0.2"
1015 | "@octokit/plugin-paginate-rest": "npm:^13.0.1"
1016 | "@octokit/plugin-request-log": "npm:^6.0.0"
1017 | "@octokit/plugin-rest-endpoint-methods": "npm:^16.0.0"
1018 | checksum: 10c0/aea3714301f43fbadb22048045a7aef417cdefa997d1baf0b26860eaa9038fb033f7d4299eab06af57a03433871084cf38144fc5414caf80accce714e76d34e2
1019 | languageName: node
1020 | linkType: hard
1021 |
1022 | "@octokit/types@npm:^14.0.0, @octokit/types@npm:^14.1.0":
1023 | version: 14.1.0
1024 | resolution: "@octokit/types@npm:14.1.0"
1025 | dependencies:
1026 | "@octokit/openapi-types": "npm:^25.1.0"
1027 | checksum: 10c0/4640a6c0a95386be4d015b96c3a906756ea657f7df3c6e706d19fea6bf3ac44fd2991c8c817afe1e670ff9042b85b0e06f7fd373f6bbd47da64208701bb46d5b
1028 | languageName: node
1029 | linkType: hard
1030 |
1031 | "@oxlint/darwin-arm64@npm:1.8.0":
1032 | version: 1.8.0
1033 | resolution: "@oxlint/darwin-arm64@npm:1.8.0"
1034 | conditions: os=darwin & cpu=arm64
1035 | languageName: node
1036 | linkType: hard
1037 |
1038 | "@oxlint/darwin-x64@npm:1.8.0":
1039 | version: 1.8.0
1040 | resolution: "@oxlint/darwin-x64@npm:1.8.0"
1041 | conditions: os=darwin & cpu=x64
1042 | languageName: node
1043 | linkType: hard
1044 |
1045 | "@oxlint/linux-arm64-gnu@npm:1.8.0":
1046 | version: 1.8.0
1047 | resolution: "@oxlint/linux-arm64-gnu@npm:1.8.0"
1048 | conditions: os=linux & cpu=arm64 & libc=glibc
1049 | languageName: node
1050 | linkType: hard
1051 |
1052 | "@oxlint/linux-arm64-musl@npm:1.8.0":
1053 | version: 1.8.0
1054 | resolution: "@oxlint/linux-arm64-musl@npm:1.8.0"
1055 | conditions: os=linux & cpu=arm64 & libc=musl
1056 | languageName: node
1057 | linkType: hard
1058 |
1059 | "@oxlint/linux-x64-gnu@npm:1.8.0":
1060 | version: 1.8.0
1061 | resolution: "@oxlint/linux-x64-gnu@npm:1.8.0"
1062 | conditions: os=linux & cpu=x64 & libc=glibc
1063 | languageName: node
1064 | linkType: hard
1065 |
1066 | "@oxlint/linux-x64-musl@npm:1.8.0":
1067 | version: 1.8.0
1068 | resolution: "@oxlint/linux-x64-musl@npm:1.8.0"
1069 | conditions: os=linux & cpu=x64 & libc=musl
1070 | languageName: node
1071 | linkType: hard
1072 |
1073 | "@oxlint/win32-arm64@npm:1.8.0":
1074 | version: 1.8.0
1075 | resolution: "@oxlint/win32-arm64@npm:1.8.0"
1076 | conditions: os=win32 & cpu=arm64
1077 | languageName: node
1078 | linkType: hard
1079 |
1080 | "@oxlint/win32-x64@npm:1.8.0":
1081 | version: 1.8.0
1082 | resolution: "@oxlint/win32-x64@npm:1.8.0"
1083 | conditions: os=win32 & cpu=x64
1084 | languageName: node
1085 | linkType: hard
1086 |
1087 | "@pkgjs/parseargs@npm:^0.11.0":
1088 | version: 0.11.0
1089 | resolution: "@pkgjs/parseargs@npm:0.11.0"
1090 | checksum: 10c0/5bd7576bb1b38a47a7fc7b51ac9f38748e772beebc56200450c4a817d712232b8f1d3ef70532c80840243c657d491cf6a6be1e3a214cff907645819fdc34aadd
1091 | languageName: node
1092 | linkType: hard
1093 |
1094 | "@rollup/pluginutils@npm:^5.1.3":
1095 | version: 5.2.0
1096 | resolution: "@rollup/pluginutils@npm:5.2.0"
1097 | dependencies:
1098 | "@types/estree": "npm:^1.0.0"
1099 | estree-walker: "npm:^2.0.2"
1100 | picomatch: "npm:^4.0.2"
1101 | peerDependencies:
1102 | rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0
1103 | peerDependenciesMeta:
1104 | rollup:
1105 | optional: true
1106 | checksum: 10c0/794890d512751451bcc06aa112366ef47ea8f9125dac49b1abf72ff8b079518b09359de9c60a013b33266541634e765ae61839c749fae0edb59a463418665c55
1107 | languageName: node
1108 | linkType: hard
1109 |
1110 | "@sindresorhus/merge-streams@npm:^2.1.0":
1111 | version: 2.3.0
1112 | resolution: "@sindresorhus/merge-streams@npm:2.3.0"
1113 | checksum: 10c0/69ee906f3125fb2c6bb6ec5cdd84e8827d93b49b3892bce8b62267116cc7e197b5cccf20c160a1d32c26014ecd14470a72a5e3ee37a58f1d6dadc0db1ccf3894
1114 | languageName: node
1115 | linkType: hard
1116 |
1117 | "@tybys/wasm-util@npm:^0.10.0":
1118 | version: 0.10.0
1119 | resolution: "@tybys/wasm-util@npm:0.10.0"
1120 | dependencies:
1121 | tslib: "npm:^2.4.0"
1122 | checksum: 10c0/044feba55c1e2af703aa4946139969badb183ce1a659a75ed60bc195a90e73a3f3fc53bcd643497c9954597763ddb051fec62f80962b2ca6fc716ba897dc696e
1123 | languageName: node
1124 | linkType: hard
1125 |
1126 | "@types/estree@npm:^1.0.0":
1127 | version: 1.0.8
1128 | resolution: "@types/estree@npm:1.0.8"
1129 | checksum: 10c0/39d34d1afaa338ab9763f37ad6066e3f349444f9052b9676a7cc0252ef9485a41c6d81c9c4e0d26e9077993354edf25efc853f3224dd4b447175ef62bdcc86a5
1130 | languageName: node
1131 | linkType: hard
1132 |
1133 | "@vercel/nft@npm:^0.29.4":
1134 | version: 0.29.4
1135 | resolution: "@vercel/nft@npm:0.29.4"
1136 | dependencies:
1137 | "@mapbox/node-pre-gyp": "npm:^2.0.0"
1138 | "@rollup/pluginutils": "npm:^5.1.3"
1139 | acorn: "npm:^8.6.0"
1140 | acorn-import-attributes: "npm:^1.9.5"
1141 | async-sema: "npm:^3.1.1"
1142 | bindings: "npm:^1.4.0"
1143 | estree-walker: "npm:2.0.2"
1144 | glob: "npm:^10.4.5"
1145 | graceful-fs: "npm:^4.2.9"
1146 | node-gyp-build: "npm:^4.2.2"
1147 | picomatch: "npm:^4.0.2"
1148 | resolve-from: "npm:^5.0.0"
1149 | bin:
1150 | nft: out/cli.js
1151 | checksum: 10c0/84ba32c685f9d7c2c849b1e8c963d3b7eb09d122e666143ed97c3776f5b04a4745605e1d29fd81383f72b1d1c0d7d58e39f06dc92f021b5de079dfa4e8523574
1152 | languageName: node
1153 | linkType: hard
1154 |
1155 | "abbrev@npm:^3.0.0":
1156 | version: 3.0.1
1157 | resolution: "abbrev@npm:3.0.1"
1158 | checksum: 10c0/21ba8f574ea57a3106d6d35623f2c4a9111d9ee3e9a5be47baed46ec2457d2eac46e07a5c4a60186f88cb98abbe3e24f2d4cca70bc2b12f1692523e2209a9ccf
1159 | languageName: node
1160 | linkType: hard
1161 |
1162 | "acorn-import-attributes@npm:^1.9.5":
1163 | version: 1.9.5
1164 | resolution: "acorn-import-attributes@npm:1.9.5"
1165 | peerDependencies:
1166 | acorn: ^8
1167 | checksum: 10c0/5926eaaead2326d5a86f322ff1b617b0f698aa61dc719a5baa0e9d955c9885cc71febac3fb5bacff71bbf2c4f9c12db2056883c68c53eb962c048b952e1e013d
1168 | languageName: node
1169 | linkType: hard
1170 |
1171 | "acorn-walk@npm:^8.3.4":
1172 | version: 8.3.4
1173 | resolution: "acorn-walk@npm:8.3.4"
1174 | dependencies:
1175 | acorn: "npm:^8.11.0"
1176 | checksum: 10c0/76537ac5fb2c37a64560feaf3342023dadc086c46da57da363e64c6148dc21b57d49ace26f949e225063acb6fb441eabffd89f7a3066de5ad37ab3e328927c62
1177 | languageName: node
1178 | linkType: hard
1179 |
1180 | "acorn@npm:^8.11.0, acorn@npm:^8.15.0, acorn@npm:^8.6.0":
1181 | version: 8.15.0
1182 | resolution: "acorn@npm:8.15.0"
1183 | bin:
1184 | acorn: bin/acorn
1185 | checksum: 10c0/dec73ff59b7d6628a01eebaece7f2bdb8bb62b9b5926dcad0f8931f2b8b79c2be21f6c68ac095592adb5adb15831a3635d9343e6a91d028bbe85d564875ec3ec
1186 | languageName: node
1187 | linkType: hard
1188 |
1189 | "agent-base@npm:^7.1.2":
1190 | version: 7.1.4
1191 | resolution: "agent-base@npm:7.1.4"
1192 | checksum: 10c0/c2c9ab7599692d594b6a161559ada307b7a624fa4c7b03e3afdb5a5e31cd0e53269115b620fcab024c5ac6a6f37fa5eb2e004f076ad30f5f7e6b8b671f7b35fe
1193 | languageName: node
1194 | linkType: hard
1195 |
1196 | "ansi-escapes@npm:^4.3.2":
1197 | version: 4.3.2
1198 | resolution: "ansi-escapes@npm:4.3.2"
1199 | dependencies:
1200 | type-fest: "npm:^0.21.3"
1201 | checksum: 10c0/da917be01871525a3dfcf925ae2977bc59e8c513d4423368645634bf5d4ceba5401574eb705c1e92b79f7292af5a656f78c5725a4b0e1cec97c4b413705c1d50
1202 | languageName: node
1203 | linkType: hard
1204 |
1205 | "ansi-regex@npm:^5.0.1":
1206 | version: 5.0.1
1207 | resolution: "ansi-regex@npm:5.0.1"
1208 | checksum: 10c0/9a64bb8627b434ba9327b60c027742e5d17ac69277960d041898596271d992d4d52ba7267a63ca10232e29f6107fc8a835f6ce8d719b88c5f8493f8254813737
1209 | languageName: node
1210 | linkType: hard
1211 |
1212 | "ansi-regex@npm:^6.0.1":
1213 | version: 6.1.0
1214 | resolution: "ansi-regex@npm:6.1.0"
1215 | checksum: 10c0/a91daeddd54746338478eef88af3439a7edf30f8e23196e2d6ed182da9add559c601266dbef01c2efa46a958ad6f1f8b176799657616c702b5b02e799e7fd8dc
1216 | languageName: node
1217 | linkType: hard
1218 |
1219 | "ansi-styles@npm:^4.0.0":
1220 | version: 4.3.0
1221 | resolution: "ansi-styles@npm:4.3.0"
1222 | dependencies:
1223 | color-convert: "npm:^2.0.1"
1224 | checksum: 10c0/895a23929da416f2bd3de7e9cb4eabd340949328ab85ddd6e484a637d8f6820d485f53933446f5291c3b760cbc488beb8e88573dd0f9c7daf83dccc8fe81b041
1225 | languageName: node
1226 | linkType: hard
1227 |
1228 | "ansi-styles@npm:^6.0.0, ansi-styles@npm:^6.1.0, ansi-styles@npm:^6.2.1":
1229 | version: 6.2.1
1230 | resolution: "ansi-styles@npm:6.2.1"
1231 | checksum: 10c0/5d1ec38c123984bcedd996eac680d548f31828bd679a66db2bdf11844634dde55fec3efa9c6bb1d89056a5e79c1ac540c4c784d592ea1d25028a92227d2f2d5c
1232 | languageName: node
1233 | linkType: hard
1234 |
1235 | "argparse@npm:^1.0.7":
1236 | version: 1.0.10
1237 | resolution: "argparse@npm:1.0.10"
1238 | dependencies:
1239 | sprintf-js: "npm:~1.0.2"
1240 | checksum: 10c0/b2972c5c23c63df66bca144dbc65d180efa74f25f8fd9b7d9a0a6c88ae839db32df3d54770dcb6460cf840d232b60695d1a6b1053f599d84e73f7437087712de
1241 | languageName: node
1242 | linkType: hard
1243 |
1244 | "argparse@npm:^2.0.1":
1245 | version: 2.0.1
1246 | resolution: "argparse@npm:2.0.1"
1247 | checksum: 10c0/c5640c2d89045371c7cedd6a70212a04e360fd34d6edeae32f6952c63949e3525ea77dbec0289d8213a99bbaeab5abfa860b5c12cf88a2e6cf8106e90dd27a7e
1248 | languageName: node
1249 | linkType: hard
1250 |
1251 | "array-find-index@npm:^1.0.1":
1252 | version: 1.0.2
1253 | resolution: "array-find-index@npm:1.0.2"
1254 | checksum: 10c0/86b9485c74ddd324feab807e10a6de3f9c1683856267236fac4bb4d4667ada6463e106db3f6c540ae6b720e0442b590ec701d13676df4c6af30ebf4da09b4f57
1255 | languageName: node
1256 | linkType: hard
1257 |
1258 | "arrgv@npm:^1.0.2":
1259 | version: 1.0.2
1260 | resolution: "arrgv@npm:1.0.2"
1261 | checksum: 10c0/7e6e782e6b749923ac7cbc4048ef6fe0844c4a59bfc8932fcd4c44566ba25eed46501f94dd7cf3c7297da88f3f599ca056bfb77d0c2484aebc92f04239f69124
1262 | languageName: node
1263 | linkType: hard
1264 |
1265 | "arrify@npm:^3.0.0":
1266 | version: 3.0.0
1267 | resolution: "arrify@npm:3.0.0"
1268 | checksum: 10c0/2e26601b8486f29780f1f70f7ac05a226755814c2a3ab42e196748f650af1dc310cd575a11dd4b9841c70fd7460b2dd2b8fe6fb7a3375878e2660706efafa58e
1269 | languageName: node
1270 | linkType: hard
1271 |
1272 | "async-sema@npm:^3.1.1":
1273 | version: 3.1.1
1274 | resolution: "async-sema@npm:3.1.1"
1275 | checksum: 10c0/a16da9f7f2dbdd00a969bf264b7ad331b59df3eac2b38f529b881c5cc8662594e68ed096d927ec2aabdc13454379cdc6d677bcdb0a3d2db338fb4be17957832b
1276 | languageName: node
1277 | linkType: hard
1278 |
1279 | "ava@npm:^6.4.1":
1280 | version: 6.4.1
1281 | resolution: "ava@npm:6.4.1"
1282 | dependencies:
1283 | "@vercel/nft": "npm:^0.29.4"
1284 | acorn: "npm:^8.15.0"
1285 | acorn-walk: "npm:^8.3.4"
1286 | ansi-styles: "npm:^6.2.1"
1287 | arrgv: "npm:^1.0.2"
1288 | arrify: "npm:^3.0.0"
1289 | callsites: "npm:^4.2.0"
1290 | cbor: "npm:^10.0.9"
1291 | chalk: "npm:^5.4.1"
1292 | chunkd: "npm:^2.0.1"
1293 | ci-info: "npm:^4.3.0"
1294 | ci-parallel-vars: "npm:^1.0.1"
1295 | cli-truncate: "npm:^4.0.0"
1296 | code-excerpt: "npm:^4.0.0"
1297 | common-path-prefix: "npm:^3.0.0"
1298 | concordance: "npm:^5.0.4"
1299 | currently-unhandled: "npm:^0.4.1"
1300 | debug: "npm:^4.4.1"
1301 | emittery: "npm:^1.2.0"
1302 | figures: "npm:^6.1.0"
1303 | globby: "npm:^14.1.0"
1304 | ignore-by-default: "npm:^2.1.0"
1305 | indent-string: "npm:^5.0.0"
1306 | is-plain-object: "npm:^5.0.0"
1307 | is-promise: "npm:^4.0.0"
1308 | matcher: "npm:^5.0.0"
1309 | memoize: "npm:^10.1.0"
1310 | ms: "npm:^2.1.3"
1311 | p-map: "npm:^7.0.3"
1312 | package-config: "npm:^5.0.0"
1313 | picomatch: "npm:^4.0.2"
1314 | plur: "npm:^5.1.0"
1315 | pretty-ms: "npm:^9.2.0"
1316 | resolve-cwd: "npm:^3.0.0"
1317 | stack-utils: "npm:^2.0.6"
1318 | strip-ansi: "npm:^7.1.0"
1319 | supertap: "npm:^3.0.1"
1320 | temp-dir: "npm:^3.0.0"
1321 | write-file-atomic: "npm:^6.0.0"
1322 | yargs: "npm:^17.7.2"
1323 | peerDependencies:
1324 | "@ava/typescript": "*"
1325 | peerDependenciesMeta:
1326 | "@ava/typescript":
1327 | optional: true
1328 | bin:
1329 | ava: entrypoints/cli.mjs
1330 | checksum: 10c0/21972df1031ef46533ea1b7daa132a5fc66841c8a221b6901163d12d2a1cac39bfd8a6d3459da7eb9344fa90fc02f237f2fe2aac8785d04bf5894fa43625be28
1331 | languageName: node
1332 | linkType: hard
1333 |
1334 | "balanced-match@npm:^1.0.0":
1335 | version: 1.0.2
1336 | resolution: "balanced-match@npm:1.0.2"
1337 | checksum: 10c0/9308baf0a7e4838a82bbfd11e01b1cb0f0cf2893bc1676c27c2a8c0e70cbae1c59120c3268517a8ae7fb6376b4639ef81ca22582611dbee4ed28df945134aaee
1338 | languageName: node
1339 | linkType: hard
1340 |
1341 | "before-after-hook@npm:^4.0.0":
1342 | version: 4.0.0
1343 | resolution: "before-after-hook@npm:4.0.0"
1344 | checksum: 10c0/9f8ae8d1b06142bcfb9ef6625226b5e50348bb11210f266660eddcf9734e0db6f9afc4cb48397ee3f5ac0a3728f3ae401cdeea88413f7bed748a71db84657be2
1345 | languageName: node
1346 | linkType: hard
1347 |
1348 | "bindings@npm:^1.4.0":
1349 | version: 1.5.0
1350 | resolution: "bindings@npm:1.5.0"
1351 | dependencies:
1352 | file-uri-to-path: "npm:1.0.0"
1353 | checksum: 10c0/3dab2491b4bb24124252a91e656803eac24292473e56554e35bbfe3cc1875332cfa77600c3bac7564049dc95075bf6fcc63a4609920ff2d64d0fe405fcf0d4ba
1354 | languageName: node
1355 | linkType: hard
1356 |
1357 | "blueimp-md5@npm:^2.10.0":
1358 | version: 2.19.0
1359 | resolution: "blueimp-md5@npm:2.19.0"
1360 | checksum: 10c0/85d04343537dd99a288c62450341dcce7380d3454c81f8e5a971ddd80307d6f9ef51b5b92ad7d48aaaa92fd6d3a1f6b2f4fada068faae646887f7bfabc17a346
1361 | languageName: node
1362 | linkType: hard
1363 |
1364 | "brace-expansion@npm:^2.0.1":
1365 | version: 2.0.2
1366 | resolution: "brace-expansion@npm:2.0.2"
1367 | dependencies:
1368 | balanced-match: "npm:^1.0.0"
1369 | checksum: 10c0/6d117a4c793488af86b83172deb6af143e94c17bc53b0b3cec259733923b4ca84679d506ac261f4ba3c7ed37c46018e2ff442f9ce453af8643ecd64f4a54e6cf
1370 | languageName: node
1371 | linkType: hard
1372 |
1373 | "braces@npm:^3.0.3":
1374 | version: 3.0.3
1375 | resolution: "braces@npm:3.0.3"
1376 | dependencies:
1377 | fill-range: "npm:^7.1.1"
1378 | checksum: 10c0/7c6dfd30c338d2997ba77500539227b9d1f85e388a5f43220865201e407e076783d0881f2d297b9f80951b4c957fcf0b51c1d2d24227631643c3f7c284b0aa04
1379 | languageName: node
1380 | linkType: hard
1381 |
1382 | "callsites@npm:^4.2.0":
1383 | version: 4.2.0
1384 | resolution: "callsites@npm:4.2.0"
1385 | checksum: 10c0/8f7e269ec09fc0946bb22d838a8bc7932e1909ab4a833b964749f4d0e8bdeaa1f253287c4f911f61781f09620b6925ccd19a5ea4897489c4e59442c660c312a3
1386 | languageName: node
1387 | linkType: hard
1388 |
1389 | "cbor@npm:^10.0.9":
1390 | version: 10.0.9
1391 | resolution: "cbor@npm:10.0.9"
1392 | dependencies:
1393 | nofilter: "npm:^3.0.2"
1394 | checksum: 10c0/49b59036c340ab0c6f4fa39aaf37ed6cb2bec6d54ec27b45a03f5df0fcd5767594b0abb5cbf44d69bdd8593d6a2e131c3e7017c511bacf05f5aa4ff2af82d07d
1395 | languageName: node
1396 | linkType: hard
1397 |
1398 | "chalk@npm:^5.4.1":
1399 | version: 5.4.1
1400 | resolution: "chalk@npm:5.4.1"
1401 | checksum: 10c0/b23e88132c702f4855ca6d25cb5538b1114343e41472d5263ee8a37cccfccd9c4216d111e1097c6a27830407a1dc81fecdf2a56f2c63033d4dbbd88c10b0dcef
1402 | languageName: node
1403 | linkType: hard
1404 |
1405 | "chardet@npm:^0.7.0":
1406 | version: 0.7.0
1407 | resolution: "chardet@npm:0.7.0"
1408 | checksum: 10c0/96e4731b9ec8050cbb56ab684e8c48d6c33f7826b755802d14e3ebfdc51c57afeece3ea39bc6b09acc359e4363525388b915e16640c1378053820f5e70d0f27d
1409 | languageName: node
1410 | linkType: hard
1411 |
1412 | "chownr@npm:^3.0.0":
1413 | version: 3.0.0
1414 | resolution: "chownr@npm:3.0.0"
1415 | checksum: 10c0/43925b87700f7e3893296c8e9c56cc58f926411cce3a6e5898136daaf08f08b9a8eb76d37d3267e707d0dcc17aed2e2ebdf5848c0c3ce95cf910a919935c1b10
1416 | languageName: node
1417 | linkType: hard
1418 |
1419 | "chunkd@npm:^2.0.1":
1420 | version: 2.0.1
1421 | resolution: "chunkd@npm:2.0.1"
1422 | checksum: 10c0/4e0c5aac6048ecedfa4cd0a5f6c4f010c70a7b7645aeca7bfeb47cb0733c3463054f0ced3f2667b2e0e67edd75d68a8e05481b01115ba3f8a952a93026254504
1423 | languageName: node
1424 | linkType: hard
1425 |
1426 | "ci-info@npm:^4.3.0":
1427 | version: 4.3.0
1428 | resolution: "ci-info@npm:4.3.0"
1429 | checksum: 10c0/60d3dfe95d75c01454ec1cfd5108617dd598a28a2a3e148bd7e1523c1c208b5f5a3007cafcbe293e6fd0a5a310cc32217c5dc54743eeabc0a2bec80072fc055c
1430 | languageName: node
1431 | linkType: hard
1432 |
1433 | "ci-parallel-vars@npm:^1.0.1":
1434 | version: 1.0.1
1435 | resolution: "ci-parallel-vars@npm:1.0.1"
1436 | checksum: 10c0/80952f699cbbc146092b077b4f3e28d085620eb4e6be37f069b4dbb3db0ee70e8eec3beef4ebe70ff60631e9fc743b9d0869678489f167442cac08b260e5ac08
1437 | languageName: node
1438 | linkType: hard
1439 |
1440 | "cli-truncate@npm:^4.0.0":
1441 | version: 4.0.0
1442 | resolution: "cli-truncate@npm:4.0.0"
1443 | dependencies:
1444 | slice-ansi: "npm:^5.0.0"
1445 | string-width: "npm:^7.0.0"
1446 | checksum: 10c0/d7f0b73e3d9b88cb496e6c086df7410b541b56a43d18ade6a573c9c18bd001b1c3fba1ad578f741a4218fdc794d042385f8ac02c25e1c295a2d8b9f3cb86eb4c
1447 | languageName: node
1448 | linkType: hard
1449 |
1450 | "cli-width@npm:^4.1.0":
1451 | version: 4.1.0
1452 | resolution: "cli-width@npm:4.1.0"
1453 | checksum: 10c0/1fbd56413578f6117abcaf858903ba1f4ad78370a4032f916745fa2c7e390183a9d9029cf837df320b0fdce8137668e522f60a30a5f3d6529ff3872d265a955f
1454 | languageName: node
1455 | linkType: hard
1456 |
1457 | "clipanion@npm:^4.0.0-rc.4":
1458 | version: 4.0.0-rc.4
1459 | resolution: "clipanion@npm:4.0.0-rc.4"
1460 | dependencies:
1461 | typanion: "npm:^3.8.0"
1462 | peerDependencies:
1463 | typanion: "*"
1464 | checksum: 10c0/047b415b59a5e9777d00690fba563ccc850eca6bf27790a88d1deea3ecc8a89840ae9aed554ff284cc698a9f3f20256e43c25ff4a7c4c90a71e5e7d9dca61dd1
1465 | languageName: node
1466 | linkType: hard
1467 |
1468 | "cliui@npm:^8.0.1":
1469 | version: 8.0.1
1470 | resolution: "cliui@npm:8.0.1"
1471 | dependencies:
1472 | string-width: "npm:^4.2.0"
1473 | strip-ansi: "npm:^6.0.1"
1474 | wrap-ansi: "npm:^7.0.0"
1475 | checksum: 10c0/4bda0f09c340cbb6dfdc1ed508b3ca080f12992c18d68c6be4d9cf51756033d5266e61ec57529e610dacbf4da1c634423b0c1b11037709cc6b09045cbd815df5
1476 | languageName: node
1477 | linkType: hard
1478 |
1479 | "code-excerpt@npm:^4.0.0":
1480 | version: 4.0.0
1481 | resolution: "code-excerpt@npm:4.0.0"
1482 | dependencies:
1483 | convert-to-spaces: "npm:^2.0.1"
1484 | checksum: 10c0/b6c5a06e039cecd2ab6a0e10ee0831de8362107d1f298ca3558b5f9004cb8e0260b02dd6c07f57b9a0e346c76864d2873311ee1989809fdeb05bd5fbbadde773
1485 | languageName: node
1486 | linkType: hard
1487 |
1488 | "color-convert@npm:^2.0.1":
1489 | version: 2.0.1
1490 | resolution: "color-convert@npm:2.0.1"
1491 | dependencies:
1492 | color-name: "npm:~1.1.4"
1493 | checksum: 10c0/37e1150172f2e311fe1b2df62c6293a342ee7380da7b9cfdba67ea539909afbd74da27033208d01d6d5cfc65ee7868a22e18d7e7648e004425441c0f8a15a7d7
1494 | languageName: node
1495 | linkType: hard
1496 |
1497 | "color-name@npm:~1.1.4":
1498 | version: 1.1.4
1499 | resolution: "color-name@npm:1.1.4"
1500 | checksum: 10c0/a1a3f914156960902f46f7f56bc62effc6c94e84b2cae157a526b1c1f74b677a47ec602bf68a61abfa2b42d15b7c5651c6dbe72a43af720bc588dff885b10f95
1501 | languageName: node
1502 | linkType: hard
1503 |
1504 | "colorette@npm:^2.0.20":
1505 | version: 2.0.20
1506 | resolution: "colorette@npm:2.0.20"
1507 | checksum: 10c0/e94116ff33b0ff56f3b83b9ace895e5bf87c2a7a47b3401b8c3f3226e050d5ef76cf4072fb3325f9dc24d1698f9b730baf4e05eeaf861d74a1883073f4c98a40
1508 | languageName: node
1509 | linkType: hard
1510 |
1511 | "common-path-prefix@npm:^3.0.0":
1512 | version: 3.0.0
1513 | resolution: "common-path-prefix@npm:3.0.0"
1514 | checksum: 10c0/c4a74294e1b1570f4a8ab435285d185a03976c323caa16359053e749db4fde44e3e6586c29cd051100335e11895767cbbd27ea389108e327d62f38daf4548fdb
1515 | languageName: node
1516 | linkType: hard
1517 |
1518 | "concordance@npm:^5.0.4":
1519 | version: 5.0.4
1520 | resolution: "concordance@npm:5.0.4"
1521 | dependencies:
1522 | date-time: "npm:^3.1.0"
1523 | esutils: "npm:^2.0.3"
1524 | fast-diff: "npm:^1.2.0"
1525 | js-string-escape: "npm:^1.0.1"
1526 | lodash: "npm:^4.17.15"
1527 | md5-hex: "npm:^3.0.1"
1528 | semver: "npm:^7.3.2"
1529 | well-known-symbols: "npm:^2.0.0"
1530 | checksum: 10c0/59b440f330df3a7c9aa148ba588b3e99aed86acab225b4f01ffcea34ace4cf11f817e31153254e8f38ed48508998dad40b9106951a743c334d751f7ab21afb8a
1531 | languageName: node
1532 | linkType: hard
1533 |
1534 | "consola@npm:^3.2.3":
1535 | version: 3.4.2
1536 | resolution: "consola@npm:3.4.2"
1537 | checksum: 10c0/7cebe57ecf646ba74b300bcce23bff43034ed6fbec9f7e39c27cee1dc00df8a21cd336b466ad32e304ea70fba04ec9e890c200270de9a526ce021ba8a7e4c11a
1538 | languageName: node
1539 | linkType: hard
1540 |
1541 | "convert-to-spaces@npm:^2.0.1":
1542 | version: 2.0.1
1543 | resolution: "convert-to-spaces@npm:2.0.1"
1544 | checksum: 10c0/d90aa0e3b6a27f9d5265a8d32def3c5c855b3e823a9db1f26d772f8146d6b91020a2fdfd905ce8048a73fad3aaf836fef8188c67602c374405e2ae8396c4ac46
1545 | languageName: node
1546 | linkType: hard
1547 |
1548 | "cross-spawn@npm:^7.0.6":
1549 | version: 7.0.6
1550 | resolution: "cross-spawn@npm:7.0.6"
1551 | dependencies:
1552 | path-key: "npm:^3.1.0"
1553 | shebang-command: "npm:^2.0.0"
1554 | which: "npm:^2.0.1"
1555 | checksum: 10c0/053ea8b2135caff68a9e81470e845613e374e7309a47731e81639de3eaeb90c3d01af0e0b44d2ab9d50b43467223b88567dfeb3262db942dc063b9976718ffc1
1556 | languageName: node
1557 | linkType: hard
1558 |
1559 | "currently-unhandled@npm:^0.4.1":
1560 | version: 0.4.1
1561 | resolution: "currently-unhandled@npm:0.4.1"
1562 | dependencies:
1563 | array-find-index: "npm:^1.0.1"
1564 | checksum: 10c0/32d197689ec32f035910202c1abb0dc6424dce01d7b51779c685119b380d98535c110ffff67a262fc7e367612a7dfd30d3d3055f9a6634b5a9dd1302de7ef11c
1565 | languageName: node
1566 | linkType: hard
1567 |
1568 | "date-time@npm:^3.1.0":
1569 | version: 3.1.0
1570 | resolution: "date-time@npm:3.1.0"
1571 | dependencies:
1572 | time-zone: "npm:^1.0.0"
1573 | checksum: 10c0/aa3e2e930d74b0b9e90f69de7a16d3376e30f21f1f4ce9a2311d8fec32d760e776efea752dafad0ce188187265235229013036202be053fc2d7979813bfb6ded
1574 | languageName: node
1575 | linkType: hard
1576 |
1577 | "debug@npm:4, debug@npm:^4.4.0, debug@npm:^4.4.1":
1578 | version: 4.4.1
1579 | resolution: "debug@npm:4.4.1"
1580 | dependencies:
1581 | ms: "npm:^2.1.3"
1582 | peerDependenciesMeta:
1583 | supports-color:
1584 | optional: true
1585 | checksum: 10c0/d2b44bc1afd912b49bb7ebb0d50a860dc93a4dd7d946e8de94abc957bb63726b7dd5aa48c18c2386c379ec024c46692e15ed3ed97d481729f929201e671fcd55
1586 | languageName: node
1587 | linkType: hard
1588 |
1589 | "detect-libc@npm:^2.0.0":
1590 | version: 2.0.4
1591 | resolution: "detect-libc@npm:2.0.4"
1592 | checksum: 10c0/c15541f836eba4b1f521e4eecc28eefefdbc10a94d3b8cb4c507689f332cc111babb95deda66f2de050b22122113189986d5190be97d51b5a2b23b938415e67c
1593 | languageName: node
1594 | linkType: hard
1595 |
1596 | "eastasianwidth@npm:^0.2.0":
1597 | version: 0.2.0
1598 | resolution: "eastasianwidth@npm:0.2.0"
1599 | checksum: 10c0/26f364ebcdb6395f95124fda411f63137a4bfb5d3a06453f7f23dfe52502905bd84e0488172e0f9ec295fdc45f05c23d5d91baf16bd26f0fe9acd777a188dc39
1600 | languageName: node
1601 | linkType: hard
1602 |
1603 | "emittery@npm:^1.2.0":
1604 | version: 1.2.0
1605 | resolution: "emittery@npm:1.2.0"
1606 | checksum: 10c0/3b16d67b2cbbc19d44fa124684039956dc94c376cefa8c7b29f4c934d9d370e6819f642cddaa343b83b1fc03fda554a1498e12f5861caf9d6f6394ff4b6e808a
1607 | languageName: node
1608 | linkType: hard
1609 |
1610 | "emnapi@npm:^1.4.0":
1611 | version: 1.4.5
1612 | resolution: "emnapi@npm:1.4.5"
1613 | peerDependencies:
1614 | node-addon-api: ">= 6.1.0"
1615 | peerDependenciesMeta:
1616 | node-addon-api:
1617 | optional: true
1618 | checksum: 10c0/9bd37977040130b718f4d7d24f9255f52f993134b7dfcfb8b066f9c62be74e7c39b2ab936a6cc6f7713c72e38af97c07627aa74e9751cf64053bf0d4b7cd1e90
1619 | languageName: node
1620 | linkType: hard
1621 |
1622 | "emoji-regex@npm:^10.3.0":
1623 | version: 10.4.0
1624 | resolution: "emoji-regex@npm:10.4.0"
1625 | checksum: 10c0/a3fcedfc58bfcce21a05a5f36a529d81e88d602100145fcca3dc6f795e3c8acc4fc18fe773fbf9b6d6e9371205edb3afa2668ec3473fa2aa7fd47d2a9d46482d
1626 | languageName: node
1627 | linkType: hard
1628 |
1629 | "emoji-regex@npm:^8.0.0":
1630 | version: 8.0.0
1631 | resolution: "emoji-regex@npm:8.0.0"
1632 | checksum: 10c0/b6053ad39951c4cf338f9092d7bfba448cdfd46fe6a2a034700b149ac9ffbc137e361cbd3c442297f86bed2e5f7576c1b54cc0a6bf8ef5106cc62f496af35010
1633 | languageName: node
1634 | linkType: hard
1635 |
1636 | "emoji-regex@npm:^9.2.2":
1637 | version: 9.2.2
1638 | resolution: "emoji-regex@npm:9.2.2"
1639 | checksum: 10c0/af014e759a72064cf66e6e694a7fc6b0ed3d8db680427b021a89727689671cefe9d04151b2cad51dbaf85d5ba790d061cd167f1cf32eb7b281f6368b3c181639
1640 | languageName: node
1641 | linkType: hard
1642 |
1643 | "escalade@npm:^3.1.1":
1644 | version: 3.2.0
1645 | resolution: "escalade@npm:3.2.0"
1646 | checksum: 10c0/ced4dd3a78e15897ed3be74e635110bbf3b08877b0a41be50dcb325ee0e0b5f65fc2d50e9845194d7c4633f327e2e1c6cce00a71b617c5673df0374201d67f65
1647 | languageName: node
1648 | linkType: hard
1649 |
1650 | "escape-string-regexp@npm:^2.0.0":
1651 | version: 2.0.0
1652 | resolution: "escape-string-regexp@npm:2.0.0"
1653 | checksum: 10c0/2530479fe8db57eace5e8646c9c2a9c80fa279614986d16dcc6bcaceb63ae77f05a851ba6c43756d816c61d7f4534baf56e3c705e3e0d884818a46808811c507
1654 | languageName: node
1655 | linkType: hard
1656 |
1657 | "escape-string-regexp@npm:^5.0.0":
1658 | version: 5.0.0
1659 | resolution: "escape-string-regexp@npm:5.0.0"
1660 | checksum: 10c0/6366f474c6f37a802800a435232395e04e9885919873e382b157ab7e8f0feb8fed71497f84a6f6a81a49aab41815522f5839112bd38026d203aea0c91622df95
1661 | languageName: node
1662 | linkType: hard
1663 |
1664 | "esprima@npm:^4.0.0":
1665 | version: 4.0.1
1666 | resolution: "esprima@npm:4.0.1"
1667 | bin:
1668 | esparse: ./bin/esparse.js
1669 | esvalidate: ./bin/esvalidate.js
1670 | checksum: 10c0/ad4bab9ead0808cf56501750fd9d3fb276f6b105f987707d059005d57e182d18a7c9ec7f3a01794ebddcca676773e42ca48a32d67a250c9d35e009ca613caba3
1671 | languageName: node
1672 | linkType: hard
1673 |
1674 | "estree-walker@npm:2.0.2, estree-walker@npm:^2.0.2":
1675 | version: 2.0.2
1676 | resolution: "estree-walker@npm:2.0.2"
1677 | checksum: 10c0/53a6c54e2019b8c914dc395890153ffdc2322781acf4bd7d1a32d7aedc1710807bdcd866ac133903d5629ec601fbb50abe8c2e5553c7f5a0afdd9b6af6c945af
1678 | languageName: node
1679 | linkType: hard
1680 |
1681 | "esutils@npm:^2.0.3":
1682 | version: 2.0.3
1683 | resolution: "esutils@npm:2.0.3"
1684 | checksum: 10c0/9a2fe69a41bfdade834ba7c42de4723c97ec776e40656919c62cbd13607c45e127a003f05f724a1ea55e5029a4cf2de444b13009f2af71271e42d93a637137c7
1685 | languageName: node
1686 | linkType: hard
1687 |
1688 | "external-editor@npm:^3.1.0":
1689 | version: 3.1.0
1690 | resolution: "external-editor@npm:3.1.0"
1691 | dependencies:
1692 | chardet: "npm:^0.7.0"
1693 | iconv-lite: "npm:^0.4.24"
1694 | tmp: "npm:^0.0.33"
1695 | checksum: 10c0/c98f1ba3efdfa3c561db4447ff366a6adb5c1e2581462522c56a18bf90dfe4da382f9cd1feee3e330108c3595a854b218272539f311ba1b3298f841eb0fbf339
1696 | languageName: node
1697 | linkType: hard
1698 |
1699 | "fast-content-type-parse@npm:^3.0.0":
1700 | version: 3.0.0
1701 | resolution: "fast-content-type-parse@npm:3.0.0"
1702 | checksum: 10c0/06251880c83b7118af3a5e66e8bcee60d44f48b39396fc60acc2b4630bd5f3e77552b999b5c8e943d45a818854360e5e97164c374ec4b562b4df96a2cdf2e188
1703 | languageName: node
1704 | linkType: hard
1705 |
1706 | "fast-diff@npm:^1.2.0":
1707 | version: 1.3.0
1708 | resolution: "fast-diff@npm:1.3.0"
1709 | checksum: 10c0/5c19af237edb5d5effda008c891a18a585f74bf12953be57923f17a3a4d0979565fc64dbc73b9e20926b9d895f5b690c618cbb969af0cf022e3222471220ad29
1710 | languageName: node
1711 | linkType: hard
1712 |
1713 | "fast-glob@npm:^3.3.3":
1714 | version: 3.3.3
1715 | resolution: "fast-glob@npm:3.3.3"
1716 | dependencies:
1717 | "@nodelib/fs.stat": "npm:^2.0.2"
1718 | "@nodelib/fs.walk": "npm:^1.2.3"
1719 | glob-parent: "npm:^5.1.2"
1720 | merge2: "npm:^1.3.0"
1721 | micromatch: "npm:^4.0.8"
1722 | checksum: 10c0/f6aaa141d0d3384cf73cbcdfc52f475ed293f6d5b65bfc5def368b09163a9f7e5ec2b3014d80f733c405f58e470ee0cc451c2937685045cddcdeaa24199c43fe
1723 | languageName: node
1724 | linkType: hard
1725 |
1726 | "fastq@npm:^1.6.0":
1727 | version: 1.19.1
1728 | resolution: "fastq@npm:1.19.1"
1729 | dependencies:
1730 | reusify: "npm:^1.0.4"
1731 | checksum: 10c0/ebc6e50ac7048daaeb8e64522a1ea7a26e92b3cee5cd1c7f2316cdca81ba543aa40a136b53891446ea5c3a67ec215fbaca87ad405f102dd97012f62916905630
1732 | languageName: node
1733 | linkType: hard
1734 |
1735 | "figures@npm:^6.1.0":
1736 | version: 6.1.0
1737 | resolution: "figures@npm:6.1.0"
1738 | dependencies:
1739 | is-unicode-supported: "npm:^2.0.0"
1740 | checksum: 10c0/9159df4264d62ef447a3931537de92f5012210cf5135c35c010df50a2169377581378149abfe1eb238bd6acbba1c0d547b1f18e0af6eee49e30363cedaffcfe4
1741 | languageName: node
1742 | linkType: hard
1743 |
1744 | "file-uri-to-path@npm:1.0.0":
1745 | version: 1.0.0
1746 | resolution: "file-uri-to-path@npm:1.0.0"
1747 | checksum: 10c0/3b545e3a341d322d368e880e1c204ef55f1d45cdea65f7efc6c6ce9e0c4d22d802d5629320eb779d006fe59624ac17b0e848d83cc5af7cd101f206cb704f5519
1748 | languageName: node
1749 | linkType: hard
1750 |
1751 | "fill-range@npm:^7.1.1":
1752 | version: 7.1.1
1753 | resolution: "fill-range@npm:7.1.1"
1754 | dependencies:
1755 | to-regex-range: "npm:^5.0.1"
1756 | checksum: 10c0/b75b691bbe065472f38824f694c2f7449d7f5004aa950426a2c28f0306c60db9b880c0b0e4ed819997ffb882d1da02cfcfc819bddc94d71627f5269682edf018
1757 | languageName: node
1758 | linkType: hard
1759 |
1760 | "find-up-simple@npm:^1.0.0":
1761 | version: 1.0.1
1762 | resolution: "find-up-simple@npm:1.0.1"
1763 | checksum: 10c0/ad34de157b7db925d50ff78302fefb28e309f3bc947c93ffca0f9b0bccf9cf1a2dc57d805d5c94ec9fc60f4838f5dbdfd2a48ecd77c23015fa44c6dd5f60bc40
1764 | languageName: node
1765 | linkType: hard
1766 |
1767 | "find-up@npm:^7.0.0":
1768 | version: 7.0.0
1769 | resolution: "find-up@npm:7.0.0"
1770 | dependencies:
1771 | locate-path: "npm:^7.2.0"
1772 | path-exists: "npm:^5.0.0"
1773 | unicorn-magic: "npm:^0.1.0"
1774 | checksum: 10c0/e6ee3e6154560bc0ab3bc3b7d1348b31513f9bdf49a5dd2e952495427d559fa48cdf33953e85a309a323898b43fa1bfbc8b80c880dfc16068384783034030008
1775 | languageName: node
1776 | linkType: hard
1777 |
1778 | "foreground-child@npm:^3.1.0":
1779 | version: 3.3.1
1780 | resolution: "foreground-child@npm:3.3.1"
1781 | dependencies:
1782 | cross-spawn: "npm:^7.0.6"
1783 | signal-exit: "npm:^4.0.1"
1784 | checksum: 10c0/8986e4af2430896e65bc2788d6679067294d6aee9545daefc84923a0a4b399ad9c7a3ea7bd8c0b2b80fdf4a92de4c69df3f628233ff3224260e9c1541a9e9ed3
1785 | languageName: node
1786 | linkType: hard
1787 |
1788 | "get-caller-file@npm:^2.0.5":
1789 | version: 2.0.5
1790 | resolution: "get-caller-file@npm:2.0.5"
1791 | checksum: 10c0/c6c7b60271931fa752aeb92f2b47e355eac1af3a2673f47c9589e8f8a41adc74d45551c1bc57b5e66a80609f10ffb72b6f575e4370d61cc3f7f3aaff01757cde
1792 | languageName: node
1793 | linkType: hard
1794 |
1795 | "get-east-asian-width@npm:^1.0.0":
1796 | version: 1.3.0
1797 | resolution: "get-east-asian-width@npm:1.3.0"
1798 | checksum: 10c0/1a049ba697e0f9a4d5514c4623781c5246982bdb61082da6b5ae6c33d838e52ce6726407df285cdbb27ec1908b333cf2820989bd3e986e37bb20979437fdf34b
1799 | languageName: node
1800 | linkType: hard
1801 |
1802 | "glob-parent@npm:^5.1.2":
1803 | version: 5.1.2
1804 | resolution: "glob-parent@npm:5.1.2"
1805 | dependencies:
1806 | is-glob: "npm:^4.0.1"
1807 | checksum: 10c0/cab87638e2112bee3f839ef5f6e0765057163d39c66be8ec1602f3823da4692297ad4e972de876ea17c44d652978638d2fd583c6713d0eb6591706825020c9ee
1808 | languageName: node
1809 | linkType: hard
1810 |
1811 | "glob@npm:^10.4.5":
1812 | version: 10.4.5
1813 | resolution: "glob@npm:10.4.5"
1814 | dependencies:
1815 | foreground-child: "npm:^3.1.0"
1816 | jackspeak: "npm:^3.1.2"
1817 | minimatch: "npm:^9.0.4"
1818 | minipass: "npm:^7.1.2"
1819 | package-json-from-dist: "npm:^1.0.0"
1820 | path-scurry: "npm:^1.11.1"
1821 | bin:
1822 | glob: dist/esm/bin.mjs
1823 | checksum: 10c0/19a9759ea77b8e3ca0a43c2f07ecddc2ad46216b786bb8f993c445aee80d345925a21e5280c7b7c6c59e860a0154b84e4b2b60321fea92cd3c56b4a7489f160e
1824 | languageName: node
1825 | linkType: hard
1826 |
1827 | "globby@npm:^14.1.0":
1828 | version: 14.1.0
1829 | resolution: "globby@npm:14.1.0"
1830 | dependencies:
1831 | "@sindresorhus/merge-streams": "npm:^2.1.0"
1832 | fast-glob: "npm:^3.3.3"
1833 | ignore: "npm:^7.0.3"
1834 | path-type: "npm:^6.0.0"
1835 | slash: "npm:^5.1.0"
1836 | unicorn-magic: "npm:^0.3.0"
1837 | checksum: 10c0/527a1063c5958255969620c6fa4444a2b2e9278caddd571d46dfbfa307cb15977afb746e84d682ba5b6c94fc081e8997f80ff05dd235441ba1cb16f86153e58e
1838 | languageName: node
1839 | linkType: hard
1840 |
1841 | "graceful-fs@npm:^4.2.9":
1842 | version: 4.2.11
1843 | resolution: "graceful-fs@npm:4.2.11"
1844 | checksum: 10c0/386d011a553e02bc594ac2ca0bd6d9e4c22d7fa8cfbfc448a6d148c59ea881b092db9dbe3547ae4b88e55f1b01f7c4a2ecc53b310c042793e63aa44cf6c257f2
1845 | languageName: node
1846 | linkType: hard
1847 |
1848 | "https-proxy-agent@npm:^7.0.5":
1849 | version: 7.0.6
1850 | resolution: "https-proxy-agent@npm:7.0.6"
1851 | dependencies:
1852 | agent-base: "npm:^7.1.2"
1853 | debug: "npm:4"
1854 | checksum: 10c0/f729219bc735edb621fa30e6e84e60ee5d00802b8247aac0d7b79b0bd6d4b3294737a337b93b86a0bd9e68099d031858a39260c976dc14cdbba238ba1f8779ac
1855 | languageName: node
1856 | linkType: hard
1857 |
1858 | "iconv-lite@npm:^0.4.24":
1859 | version: 0.4.24
1860 | resolution: "iconv-lite@npm:0.4.24"
1861 | dependencies:
1862 | safer-buffer: "npm:>= 2.1.2 < 3"
1863 | checksum: 10c0/c6886a24cc00f2a059767440ec1bc00d334a89f250db8e0f7feb4961c8727118457e27c495ba94d082e51d3baca378726cd110aaf7ded8b9bbfd6a44760cf1d4
1864 | languageName: node
1865 | linkType: hard
1866 |
1867 | "ignore-by-default@npm:^2.1.0":
1868 | version: 2.1.0
1869 | resolution: "ignore-by-default@npm:2.1.0"
1870 | checksum: 10c0/3a6040dac25ed9da39dee73bf1634fdd1e15b0eb7cf52a6bdec81c310565782d8811c104ce40acb3d690d61c5fc38a91c78e6baee830a8a2232424dbc6b66981
1871 | languageName: node
1872 | linkType: hard
1873 |
1874 | "ignore@npm:^7.0.3":
1875 | version: 7.0.5
1876 | resolution: "ignore@npm:7.0.5"
1877 | checksum: 10c0/ae00db89fe873064a093b8999fe4cc284b13ef2a178636211842cceb650b9c3e390d3339191acb145d81ed5379d2074840cf0c33a20bdbd6f32821f79eb4ad5d
1878 | languageName: node
1879 | linkType: hard
1880 |
1881 | "imurmurhash@npm:^0.1.4":
1882 | version: 0.1.4
1883 | resolution: "imurmurhash@npm:0.1.4"
1884 | checksum: 10c0/8b51313850dd33605c6c9d3fd9638b714f4c4c40250cff658209f30d40da60f78992fb2df5dabee4acf589a6a82bbc79ad5486550754bd9ec4e3fc0d4a57d6a6
1885 | languageName: node
1886 | linkType: hard
1887 |
1888 | "indent-string@npm:^5.0.0":
1889 | version: 5.0.0
1890 | resolution: "indent-string@npm:5.0.0"
1891 | checksum: 10c0/8ee77b57d92e71745e133f6f444d6fa3ed503ad0e1bcd7e80c8da08b42375c07117128d670589725ed07b1978065803fa86318c309ba45415b7fe13e7f170220
1892 | languageName: node
1893 | linkType: hard
1894 |
1895 | "irregular-plurals@npm:^3.3.0":
1896 | version: 3.5.0
1897 | resolution: "irregular-plurals@npm:3.5.0"
1898 | checksum: 10c0/7c033bbe7325e5a6e0a26949cc6863b6ce273403d4cd5b93bd99b33fecb6605b0884097c4259c23ed0c52c2133bf7d1cdcdd7a0630e8c325161fe269b3447918
1899 | languageName: node
1900 | linkType: hard
1901 |
1902 | "is-extglob@npm:^2.1.1":
1903 | version: 2.1.1
1904 | resolution: "is-extglob@npm:2.1.1"
1905 | checksum: 10c0/5487da35691fbc339700bbb2730430b07777a3c21b9ebaecb3072512dfd7b4ba78ac2381a87e8d78d20ea08affb3f1971b4af629173a6bf435ff8a4c47747912
1906 | languageName: node
1907 | linkType: hard
1908 |
1909 | "is-fullwidth-code-point@npm:^3.0.0":
1910 | version: 3.0.0
1911 | resolution: "is-fullwidth-code-point@npm:3.0.0"
1912 | checksum: 10c0/bb11d825e049f38e04c06373a8d72782eee0205bda9d908cc550ccb3c59b99d750ff9537982e01733c1c94a58e35400661f57042158ff5e8f3e90cf936daf0fc
1913 | languageName: node
1914 | linkType: hard
1915 |
1916 | "is-fullwidth-code-point@npm:^4.0.0":
1917 | version: 4.0.0
1918 | resolution: "is-fullwidth-code-point@npm:4.0.0"
1919 | checksum: 10c0/df2a717e813567db0f659c306d61f2f804d480752526886954a2a3e2246c7745fd07a52b5fecf2b68caf0a6c79dcdace6166fdf29cc76ed9975cc334f0a018b8
1920 | languageName: node
1921 | linkType: hard
1922 |
1923 | "is-glob@npm:^4.0.1":
1924 | version: 4.0.3
1925 | resolution: "is-glob@npm:4.0.3"
1926 | dependencies:
1927 | is-extglob: "npm:^2.1.1"
1928 | checksum: 10c0/17fb4014e22be3bbecea9b2e3a76e9e34ff645466be702f1693e8f1ee1adac84710d0be0bd9f967d6354036fd51ab7c2741d954d6e91dae6bb69714de92c197a
1929 | languageName: node
1930 | linkType: hard
1931 |
1932 | "is-number@npm:^7.0.0":
1933 | version: 7.0.0
1934 | resolution: "is-number@npm:7.0.0"
1935 | checksum: 10c0/b4686d0d3053146095ccd45346461bc8e53b80aeb7671cc52a4de02dbbf7dc0d1d2a986e2fe4ae206984b4d34ef37e8b795ebc4f4295c978373e6575e295d811
1936 | languageName: node
1937 | linkType: hard
1938 |
1939 | "is-plain-object@npm:^5.0.0":
1940 | version: 5.0.0
1941 | resolution: "is-plain-object@npm:5.0.0"
1942 | checksum: 10c0/893e42bad832aae3511c71fd61c0bf61aa3a6d853061c62a307261842727d0d25f761ce9379f7ba7226d6179db2a3157efa918e7fe26360f3bf0842d9f28942c
1943 | languageName: node
1944 | linkType: hard
1945 |
1946 | "is-promise@npm:^4.0.0":
1947 | version: 4.0.0
1948 | resolution: "is-promise@npm:4.0.0"
1949 | checksum: 10c0/ebd5c672d73db781ab33ccb155fb9969d6028e37414d609b115cc534654c91ccd061821d5b987eefaa97cf4c62f0b909bb2f04db88306de26e91bfe8ddc01503
1950 | languageName: node
1951 | linkType: hard
1952 |
1953 | "is-unicode-supported@npm:^2.0.0":
1954 | version: 2.1.0
1955 | resolution: "is-unicode-supported@npm:2.1.0"
1956 | checksum: 10c0/a0f53e9a7c1fdbcf2d2ef6e40d4736fdffff1c9f8944c75e15425118ff3610172c87bf7bc6c34d3903b04be59790bb2212ddbe21ee65b5a97030fc50370545a5
1957 | languageName: node
1958 | linkType: hard
1959 |
1960 | "isexe@npm:^2.0.0":
1961 | version: 2.0.0
1962 | resolution: "isexe@npm:2.0.0"
1963 | checksum: 10c0/228cfa503fadc2c31596ab06ed6aa82c9976eec2bfd83397e7eaf06d0ccf42cd1dfd6743bf9aeb01aebd4156d009994c5f76ea898d2832c1fe342da923ca457d
1964 | languageName: node
1965 | linkType: hard
1966 |
1967 | "jackspeak@npm:^3.1.2":
1968 | version: 3.4.3
1969 | resolution: "jackspeak@npm:3.4.3"
1970 | dependencies:
1971 | "@isaacs/cliui": "npm:^8.0.2"
1972 | "@pkgjs/parseargs": "npm:^0.11.0"
1973 | dependenciesMeta:
1974 | "@pkgjs/parseargs":
1975 | optional: true
1976 | checksum: 10c0/6acc10d139eaefdbe04d2f679e6191b3abf073f111edf10b1de5302c97ec93fffeb2fdd8681ed17f16268aa9dd4f8c588ed9d1d3bffbbfa6e8bf897cbb3149b9
1977 | languageName: node
1978 | linkType: hard
1979 |
1980 | "js-string-escape@npm:^1.0.1":
1981 | version: 1.0.1
1982 | resolution: "js-string-escape@npm:1.0.1"
1983 | checksum: 10c0/2c33b9ff1ba6b84681c51ca0997e7d5a1639813c95d5b61cb7ad47e55cc28fa4a0b1935c3d218710d8e6bcee5d0cd8c44755231e3a4e45fc604534d9595a3628
1984 | languageName: node
1985 | linkType: hard
1986 |
1987 | "js-yaml@npm:^3.14.1":
1988 | version: 3.14.1
1989 | resolution: "js-yaml@npm:3.14.1"
1990 | dependencies:
1991 | argparse: "npm:^1.0.7"
1992 | esprima: "npm:^4.0.0"
1993 | bin:
1994 | js-yaml: bin/js-yaml.js
1995 | checksum: 10c0/6746baaaeac312c4db8e75fa22331d9a04cccb7792d126ed8ce6a0bbcfef0cedaddd0c5098fade53db067c09fe00aa1c957674b4765610a8b06a5a189e46433b
1996 | languageName: node
1997 | linkType: hard
1998 |
1999 | "js-yaml@npm:^4.1.0":
2000 | version: 4.1.0
2001 | resolution: "js-yaml@npm:4.1.0"
2002 | dependencies:
2003 | argparse: "npm:^2.0.1"
2004 | bin:
2005 | js-yaml: bin/js-yaml.js
2006 | checksum: 10c0/184a24b4eaacfce40ad9074c64fd42ac83cf74d8c8cd137718d456ced75051229e5061b8633c3366b8aada17945a7a356b337828c19da92b51ae62126575018f
2007 | languageName: node
2008 | linkType: hard
2009 |
2010 | "load-json-file@npm:^7.0.1":
2011 | version: 7.0.1
2012 | resolution: "load-json-file@npm:7.0.1"
2013 | checksum: 10c0/7117459608a0b6329c7f78e6e1f541b3162dd901c29dd5af721fec8b270177d2e3d7999c971f344fff04daac368d052732e2c7146014bc84d15e0b636975e19a
2014 | languageName: node
2015 | linkType: hard
2016 |
2017 | "locate-path@npm:^7.2.0":
2018 | version: 7.2.0
2019 | resolution: "locate-path@npm:7.2.0"
2020 | dependencies:
2021 | p-locate: "npm:^6.0.0"
2022 | checksum: 10c0/139e8a7fe11cfbd7f20db03923cacfa5db9e14fa14887ea121345597472b4a63c1a42a8a5187defeeff6acf98fd568da7382aa39682d38f0af27433953a97751
2023 | languageName: node
2024 | linkType: hard
2025 |
2026 | "lodash-es@npm:^4.17.21":
2027 | version: 4.17.21
2028 | resolution: "lodash-es@npm:4.17.21"
2029 | checksum: 10c0/fb407355f7e6cd523a9383e76e6b455321f0f153a6c9625e21a8827d10c54c2a2341bd2ae8d034358b60e07325e1330c14c224ff582d04612a46a4f0479ff2f2
2030 | languageName: node
2031 | linkType: hard
2032 |
2033 | "lodash@npm:^4.17.15":
2034 | version: 4.17.21
2035 | resolution: "lodash@npm:4.17.21"
2036 | checksum: 10c0/d8cbea072bb08655bb4c989da418994b073a608dffa608b09ac04b43a791b12aeae7cd7ad919aa4c925f33b48490b5cfe6c1f71d827956071dae2e7bb3a6b74c
2037 | languageName: node
2038 | linkType: hard
2039 |
2040 | "lru-cache@npm:^10.2.0":
2041 | version: 10.4.3
2042 | resolution: "lru-cache@npm:10.4.3"
2043 | checksum: 10c0/ebd04fbca961e6c1d6c0af3799adcc966a1babe798f685bb84e6599266599cd95d94630b10262f5424539bc4640107e8a33aa28585374abf561d30d16f4b39fb
2044 | languageName: node
2045 | linkType: hard
2046 |
2047 | "matcher@npm:^5.0.0":
2048 | version: 5.0.0
2049 | resolution: "matcher@npm:5.0.0"
2050 | dependencies:
2051 | escape-string-regexp: "npm:^5.0.0"
2052 | checksum: 10c0/eda5471fc9d5b7264d63c81727824adc3585ddb5cfdc5fce5a9b7c86f946ff181610735d330b1c37a84811df872d1290bf4e9401d2be2a414204343701144b18
2053 | languageName: node
2054 | linkType: hard
2055 |
2056 | "md5-hex@npm:^3.0.1":
2057 | version: 3.0.1
2058 | resolution: "md5-hex@npm:3.0.1"
2059 | dependencies:
2060 | blueimp-md5: "npm:^2.10.0"
2061 | checksum: 10c0/ee2b4d8da16b527b3a3fe4d7a96720f43afd07b46a82d49421208b5a126235fb75cfb30b80d4029514772c8844273f940bddfbf4155c787f968f3be4060d01e4
2062 | languageName: node
2063 | linkType: hard
2064 |
2065 | "memoize@npm:^10.1.0":
2066 | version: 10.1.0
2067 | resolution: "memoize@npm:10.1.0"
2068 | dependencies:
2069 | mimic-function: "npm:^5.0.1"
2070 | checksum: 10c0/6cf71f673b89778b05cd1131f573ba858627daa8fec60f2197328386acf7ab184a89e52527abbd5a605b5ccf5ee12dc0cb96efb651d9a30dcfcc89e9baacc84d
2071 | languageName: node
2072 | linkType: hard
2073 |
2074 | "merge2@npm:^1.3.0":
2075 | version: 1.4.1
2076 | resolution: "merge2@npm:1.4.1"
2077 | checksum: 10c0/254a8a4605b58f450308fc474c82ac9a094848081bf4c06778200207820e5193726dc563a0d2c16468810516a5c97d9d3ea0ca6585d23c58ccfff2403e8dbbeb
2078 | languageName: node
2079 | linkType: hard
2080 |
2081 | "micromatch@npm:^4.0.8":
2082 | version: 4.0.8
2083 | resolution: "micromatch@npm:4.0.8"
2084 | dependencies:
2085 | braces: "npm:^3.0.3"
2086 | picomatch: "npm:^2.3.1"
2087 | checksum: 10c0/166fa6eb926b9553f32ef81f5f531d27b4ce7da60e5baf8c021d043b27a388fb95e46a8038d5045877881e673f8134122b59624d5cecbd16eb50a42e7a6b5ca8
2088 | languageName: node
2089 | linkType: hard
2090 |
2091 | "mimic-function@npm:^5.0.1":
2092 | version: 5.0.1
2093 | resolution: "mimic-function@npm:5.0.1"
2094 | checksum: 10c0/f3d9464dd1816ecf6bdf2aec6ba32c0728022039d992f178237d8e289b48764fee4131319e72eedd4f7f094e22ded0af836c3187a7edc4595d28dd74368fd81d
2095 | languageName: node
2096 | linkType: hard
2097 |
2098 | "minimatch@npm:^9.0.4":
2099 | version: 9.0.5
2100 | resolution: "minimatch@npm:9.0.5"
2101 | dependencies:
2102 | brace-expansion: "npm:^2.0.1"
2103 | checksum: 10c0/de96cf5e35bdf0eab3e2c853522f98ffbe9a36c37797778d2665231ec1f20a9447a7e567cb640901f89e4daaa95ae5d70c65a9e8aa2bb0019b6facbc3c0575ed
2104 | languageName: node
2105 | linkType: hard
2106 |
2107 | "minipass@npm:^5.0.0 || ^6.0.2 || ^7.0.0, minipass@npm:^7.0.4, minipass@npm:^7.1.2":
2108 | version: 7.1.2
2109 | resolution: "minipass@npm:7.1.2"
2110 | checksum: 10c0/b0fd20bb9fb56e5fa9a8bfac539e8915ae07430a619e4b86ff71f5fc757ef3924b23b2c4230393af1eda647ed3d75739e4e0acb250a6b1eb277cf7f8fe449557
2111 | languageName: node
2112 | linkType: hard
2113 |
2114 | "minizlib@npm:^3.0.1":
2115 | version: 3.0.2
2116 | resolution: "minizlib@npm:3.0.2"
2117 | dependencies:
2118 | minipass: "npm:^7.1.2"
2119 | checksum: 10c0/9f3bd35e41d40d02469cb30470c55ccc21cae0db40e08d1d0b1dff01cc8cc89a6f78e9c5d2b7c844e485ec0a8abc2238111213fdc5b2038e6d1012eacf316f78
2120 | languageName: node
2121 | linkType: hard
2122 |
2123 | "mkdirp@npm:^3.0.1":
2124 | version: 3.0.1
2125 | resolution: "mkdirp@npm:3.0.1"
2126 | bin:
2127 | mkdirp: dist/cjs/src/bin.js
2128 | checksum: 10c0/9f2b975e9246351f5e3a40dcfac99fcd0baa31fbfab615fe059fb11e51f10e4803c63de1f384c54d656e4db31d000e4767e9ef076a22e12a641357602e31d57d
2129 | languageName: node
2130 | linkType: hard
2131 |
2132 | "ms@npm:^2.1.3":
2133 | version: 2.1.3
2134 | resolution: "ms@npm:2.1.3"
2135 | checksum: 10c0/d924b57e7312b3b63ad21fc5b3dc0af5e78d61a1fc7cfb5457edaf26326bf62be5307cc87ffb6862ef1c2b33b0233cdb5d4f01c4c958cc0d660948b65a287a48
2136 | languageName: node
2137 | linkType: hard
2138 |
2139 | "mute-stream@npm:^2.0.0":
2140 | version: 2.0.0
2141 | resolution: "mute-stream@npm:2.0.0"
2142 | checksum: 10c0/2cf48a2087175c60c8dcdbc619908b49c07f7adcfc37d29236b0c5c612d6204f789104c98cc44d38acab7b3c96f4a3ec2cfdc4934d0738d876dbefa2a12c69f4
2143 | languageName: node
2144 | linkType: hard
2145 |
2146 | "node-fetch@npm:^2.6.7":
2147 | version: 2.7.0
2148 | resolution: "node-fetch@npm:2.7.0"
2149 | dependencies:
2150 | whatwg-url: "npm:^5.0.0"
2151 | peerDependencies:
2152 | encoding: ^0.1.0
2153 | peerDependenciesMeta:
2154 | encoding:
2155 | optional: true
2156 | checksum: 10c0/b55786b6028208e6fbe594ccccc213cab67a72899c9234eb59dba51062a299ea853210fcf526998eaa2867b0963ad72338824450905679ff0fa304b8c5093ae8
2157 | languageName: node
2158 | linkType: hard
2159 |
2160 | "node-gyp-build@npm:^4.2.2":
2161 | version: 4.8.4
2162 | resolution: "node-gyp-build@npm:4.8.4"
2163 | bin:
2164 | node-gyp-build: bin.js
2165 | node-gyp-build-optional: optional.js
2166 | node-gyp-build-test: build-test.js
2167 | checksum: 10c0/444e189907ece2081fe60e75368784f7782cfddb554b60123743dfb89509df89f1f29c03bbfa16b3a3e0be3f48799a4783f487da6203245fa5bed239ba7407e1
2168 | languageName: node
2169 | linkType: hard
2170 |
2171 | "nofilter@npm:^3.0.2":
2172 | version: 3.1.0
2173 | resolution: "nofilter@npm:3.1.0"
2174 | checksum: 10c0/92459f3864a067b347032263f0b536223cbfc98153913b5dce350cb39c8470bc1813366e41993f22c33cc6400c0f392aa324a4b51e24c22040635c1cdb046499
2175 | languageName: node
2176 | linkType: hard
2177 |
2178 | "nopt@npm:^8.0.0":
2179 | version: 8.1.0
2180 | resolution: "nopt@npm:8.1.0"
2181 | dependencies:
2182 | abbrev: "npm:^3.0.0"
2183 | bin:
2184 | nopt: bin/nopt.js
2185 | checksum: 10c0/62e9ea70c7a3eb91d162d2c706b6606c041e4e7b547cbbb48f8b3695af457dd6479904d7ace600856bf923dd8d1ed0696f06195c8c20f02ac87c1da0e1d315ef
2186 | languageName: node
2187 | linkType: hard
2188 |
2189 | "os-tmpdir@npm:~1.0.2":
2190 | version: 1.0.2
2191 | resolution: "os-tmpdir@npm:1.0.2"
2192 | checksum: 10c0/f438450224f8e2687605a8dd318f0db694b6293c5d835ae509a69e97c8de38b6994645337e5577f5001115470414638978cc49da1cdcc25106dad8738dc69990
2193 | languageName: node
2194 | linkType: hard
2195 |
2196 | "oxlint@npm:^1.8.0":
2197 | version: 1.8.0
2198 | resolution: "oxlint@npm:1.8.0"
2199 | dependencies:
2200 | "@oxlint/darwin-arm64": "npm:1.8.0"
2201 | "@oxlint/darwin-x64": "npm:1.8.0"
2202 | "@oxlint/linux-arm64-gnu": "npm:1.8.0"
2203 | "@oxlint/linux-arm64-musl": "npm:1.8.0"
2204 | "@oxlint/linux-x64-gnu": "npm:1.8.0"
2205 | "@oxlint/linux-x64-musl": "npm:1.8.0"
2206 | "@oxlint/win32-arm64": "npm:1.8.0"
2207 | "@oxlint/win32-x64": "npm:1.8.0"
2208 | dependenciesMeta:
2209 | "@oxlint/darwin-arm64":
2210 | optional: true
2211 | "@oxlint/darwin-x64":
2212 | optional: true
2213 | "@oxlint/linux-arm64-gnu":
2214 | optional: true
2215 | "@oxlint/linux-arm64-musl":
2216 | optional: true
2217 | "@oxlint/linux-x64-gnu":
2218 | optional: true
2219 | "@oxlint/linux-x64-musl":
2220 | optional: true
2221 | "@oxlint/win32-arm64":
2222 | optional: true
2223 | "@oxlint/win32-x64":
2224 | optional: true
2225 | bin:
2226 | oxc_language_server: bin/oxc_language_server
2227 | oxlint: bin/oxlint
2228 | checksum: 10c0/48d5c205377a3e398a89dae25e0de904faf5cc07b1764a0b6fd3cc1a282434c294fab380071bc34f0782f7d864a6495666842d2210450bf535d4ee1102ec1fc3
2229 | languageName: node
2230 | linkType: hard
2231 |
2232 | "p-limit@npm:^4.0.0":
2233 | version: 4.0.0
2234 | resolution: "p-limit@npm:4.0.0"
2235 | dependencies:
2236 | yocto-queue: "npm:^1.0.0"
2237 | checksum: 10c0/a56af34a77f8df2ff61ddfb29431044557fcbcb7642d5a3233143ebba805fc7306ac1d448de724352861cb99de934bc9ab74f0d16fe6a5460bdbdf938de875ad
2238 | languageName: node
2239 | linkType: hard
2240 |
2241 | "p-locate@npm:^6.0.0":
2242 | version: 6.0.0
2243 | resolution: "p-locate@npm:6.0.0"
2244 | dependencies:
2245 | p-limit: "npm:^4.0.0"
2246 | checksum: 10c0/d72fa2f41adce59c198270aa4d3c832536c87a1806e0f69dffb7c1a7ca998fb053915ca833d90f166a8c082d3859eabfed95f01698a3214c20df6bb8de046312
2247 | languageName: node
2248 | linkType: hard
2249 |
2250 | "p-map@npm:^7.0.3":
2251 | version: 7.0.3
2252 | resolution: "p-map@npm:7.0.3"
2253 | checksum: 10c0/46091610da2b38ce47bcd1d8b4835a6fa4e832848a6682cf1652bc93915770f4617afc844c10a77d1b3e56d2472bb2d5622353fa3ead01a7f42b04fc8e744a5c
2254 | languageName: node
2255 | linkType: hard
2256 |
2257 | "package-config@npm:^5.0.0":
2258 | version: 5.0.0
2259 | resolution: "package-config@npm:5.0.0"
2260 | dependencies:
2261 | find-up-simple: "npm:^1.0.0"
2262 | load-json-file: "npm:^7.0.1"
2263 | checksum: 10c0/f6c48930700b73a41d839bf2898b628d23665827488a4f34aed2d05e4a99d7a70a70ada115c3546765947fbc8accff94c0779da21ea084b25df47cb774531eeb
2264 | languageName: node
2265 | linkType: hard
2266 |
2267 | "package-json-from-dist@npm:^1.0.0":
2268 | version: 1.0.1
2269 | resolution: "package-json-from-dist@npm:1.0.1"
2270 | checksum: 10c0/62ba2785eb655fec084a257af34dbe24292ab74516d6aecef97ef72d4897310bc6898f6c85b5cd22770eaa1ce60d55a0230e150fb6a966e3ecd6c511e23d164b
2271 | languageName: node
2272 | linkType: hard
2273 |
2274 | "parse-ms@npm:^4.0.0":
2275 | version: 4.0.0
2276 | resolution: "parse-ms@npm:4.0.0"
2277 | checksum: 10c0/a7900f4f1ebac24cbf5e9708c16fb2fd482517fad353aecd7aefb8c2ba2f85ce017913ccb8925d231770404780df46244ea6fec598b3bde6490882358b4d2d16
2278 | languageName: node
2279 | linkType: hard
2280 |
2281 | "path-exists@npm:^5.0.0":
2282 | version: 5.0.0
2283 | resolution: "path-exists@npm:5.0.0"
2284 | checksum: 10c0/b170f3060b31604cde93eefdb7392b89d832dfbc1bed717c9718cbe0f230c1669b7e75f87e19901da2250b84d092989a0f9e44d2ef41deb09aa3ad28e691a40a
2285 | languageName: node
2286 | linkType: hard
2287 |
2288 | "path-key@npm:^3.1.0":
2289 | version: 3.1.1
2290 | resolution: "path-key@npm:3.1.1"
2291 | checksum: 10c0/748c43efd5a569c039d7a00a03b58eecd1d75f3999f5a28303d75f521288df4823bc057d8784eb72358b2895a05f29a070bc9f1f17d28226cc4e62494cc58c4c
2292 | languageName: node
2293 | linkType: hard
2294 |
2295 | "path-scurry@npm:^1.11.1":
2296 | version: 1.11.1
2297 | resolution: "path-scurry@npm:1.11.1"
2298 | dependencies:
2299 | lru-cache: "npm:^10.2.0"
2300 | minipass: "npm:^5.0.0 || ^6.0.2 || ^7.0.0"
2301 | checksum: 10c0/32a13711a2a505616ae1cc1b5076801e453e7aae6ac40ab55b388bb91b9d0547a52f5aaceff710ea400205f18691120d4431e520afbe4266b836fadede15872d
2302 | languageName: node
2303 | linkType: hard
2304 |
2305 | "path-type@npm:^6.0.0":
2306 | version: 6.0.0
2307 | resolution: "path-type@npm:6.0.0"
2308 | checksum: 10c0/55baa8b1187d6dc683d5a9cfcc866168d6adff58e5db91126795376d818eee46391e00b2a4d53e44d844c7524a7d96aa68cc68f4f3e500d3d069a39e6535481c
2309 | languageName: node
2310 | linkType: hard
2311 |
2312 | "picomatch@npm:^2.3.1":
2313 | version: 2.3.1
2314 | resolution: "picomatch@npm:2.3.1"
2315 | checksum: 10c0/26c02b8d06f03206fc2ab8d16f19960f2ff9e81a658f831ecb656d8f17d9edc799e8364b1f4a7873e89d9702dff96204be0fa26fe4181f6843f040f819dac4be
2316 | languageName: node
2317 | linkType: hard
2318 |
2319 | "picomatch@npm:^4.0.2":
2320 | version: 4.0.3
2321 | resolution: "picomatch@npm:4.0.3"
2322 | checksum: 10c0/9582c951e95eebee5434f59e426cddd228a7b97a0161a375aed4be244bd3fe8e3a31b846808ea14ef2c8a2527a6eeab7b3946a67d5979e81694654f939473ae2
2323 | languageName: node
2324 | linkType: hard
2325 |
2326 | "plur@npm:^5.1.0":
2327 | version: 5.1.0
2328 | resolution: "plur@npm:5.1.0"
2329 | dependencies:
2330 | irregular-plurals: "npm:^3.3.0"
2331 | checksum: 10c0/26bb622b8545fcfd47bbf56fbcca66c08693708a232e403fa3589e00003c56c14231ac57c7588ca5db83ef4be1f61383402c4ea954000768f779f8aef6eb6da8
2332 | languageName: node
2333 | linkType: hard
2334 |
2335 | "pretty-ms@npm:^9.2.0":
2336 | version: 9.2.0
2337 | resolution: "pretty-ms@npm:9.2.0"
2338 | dependencies:
2339 | parse-ms: "npm:^4.0.0"
2340 | checksum: 10c0/ab6d066f90e9f77020426986e1b018369f41575674544c539aabec2e63a20fec01166d8cf6571d0e165ad11cfe5a8134a2a48a36d42ab291c59c6deca5264cbb
2341 | languageName: node
2342 | linkType: hard
2343 |
2344 | "queue-microtask@npm:^1.2.2":
2345 | version: 1.2.3
2346 | resolution: "queue-microtask@npm:1.2.3"
2347 | checksum: 10c0/900a93d3cdae3acd7d16f642c29a642aea32c2026446151f0778c62ac089d4b8e6c986811076e1ae180a694cedf077d453a11b58ff0a865629a4f82ab558e102
2348 | languageName: node
2349 | linkType: hard
2350 |
2351 | "require-directory@npm:^2.1.1":
2352 | version: 2.1.1
2353 | resolution: "require-directory@npm:2.1.1"
2354 | checksum: 10c0/83aa76a7bc1531f68d92c75a2ca2f54f1b01463cb566cf3fbc787d0de8be30c9dbc211d1d46be3497dac5785fe296f2dd11d531945ac29730643357978966e99
2355 | languageName: node
2356 | linkType: hard
2357 |
2358 | "resolve-cwd@npm:^3.0.0":
2359 | version: 3.0.0
2360 | resolution: "resolve-cwd@npm:3.0.0"
2361 | dependencies:
2362 | resolve-from: "npm:^5.0.0"
2363 | checksum: 10c0/e608a3ebd15356264653c32d7ecbc8fd702f94c6703ea4ac2fb81d9c359180cba0ae2e6b71faa446631ed6145454d5a56b227efc33a2d40638ac13f8beb20ee4
2364 | languageName: node
2365 | linkType: hard
2366 |
2367 | "resolve-from@npm:^5.0.0":
2368 | version: 5.0.0
2369 | resolution: "resolve-from@npm:5.0.0"
2370 | checksum: 10c0/b21cb7f1fb746de8107b9febab60095187781137fd803e6a59a76d421444b1531b641bba5857f5dc011974d8a5c635d61cec49e6bd3b7fc20e01f0fafc4efbf2
2371 | languageName: node
2372 | linkType: hard
2373 |
2374 | "reusify@npm:^1.0.4":
2375 | version: 1.1.0
2376 | resolution: "reusify@npm:1.1.0"
2377 | checksum: 10c0/4eff0d4a5f9383566c7d7ec437b671cc51b25963bd61bf127c3f3d3f68e44a026d99b8d2f1ad344afff8d278a8fe70a8ea092650a716d22287e8bef7126bb2fa
2378 | languageName: node
2379 | linkType: hard
2380 |
2381 | "run-parallel@npm:^1.1.9":
2382 | version: 1.2.0
2383 | resolution: "run-parallel@npm:1.2.0"
2384 | dependencies:
2385 | queue-microtask: "npm:^1.2.2"
2386 | checksum: 10c0/200b5ab25b5b8b7113f9901bfe3afc347e19bb7475b267d55ad0eb86a62a46d77510cb0f232507c9e5d497ebda569a08a9867d0d14f57a82ad5564d991588b39
2387 | languageName: node
2388 | linkType: hard
2389 |
2390 | "safer-buffer@npm:>= 2.1.2 < 3":
2391 | version: 2.1.2
2392 | resolution: "safer-buffer@npm:2.1.2"
2393 | checksum: 10c0/7e3c8b2e88a1841c9671094bbaeebd94448111dd90a81a1f606f3f67708a6ec57763b3b47f06da09fc6054193e0e6709e77325415dc8422b04497a8070fa02d4
2394 | languageName: node
2395 | linkType: hard
2396 |
2397 | "semver@npm:^7.3.2, semver@npm:^7.5.3, semver@npm:^7.7.1":
2398 | version: 7.7.2
2399 | resolution: "semver@npm:7.7.2"
2400 | bin:
2401 | semver: bin/semver.js
2402 | checksum: 10c0/aca305edfbf2383c22571cb7714f48cadc7ac95371b4b52362fb8eeffdfbc0de0669368b82b2b15978f8848f01d7114da65697e56cd8c37b0dab8c58e543f9ea
2403 | languageName: node
2404 | linkType: hard
2405 |
2406 | "serialize-error@npm:^7.0.1":
2407 | version: 7.0.1
2408 | resolution: "serialize-error@npm:7.0.1"
2409 | dependencies:
2410 | type-fest: "npm:^0.13.1"
2411 | checksum: 10c0/7982937d578cd901276c8ab3e2c6ed8a4c174137730f1fb0402d005af209a0e84d04acc874e317c936724c7b5b26c7a96ff7e4b8d11a469f4924a4b0ea814c05
2412 | languageName: node
2413 | linkType: hard
2414 |
2415 | "shebang-command@npm:^2.0.0":
2416 | version: 2.0.0
2417 | resolution: "shebang-command@npm:2.0.0"
2418 | dependencies:
2419 | shebang-regex: "npm:^3.0.0"
2420 | checksum: 10c0/a41692e7d89a553ef21d324a5cceb5f686d1f3c040759c50aab69688634688c5c327f26f3ecf7001ebfd78c01f3c7c0a11a7c8bfd0a8bc9f6240d4f40b224e4e
2421 | languageName: node
2422 | linkType: hard
2423 |
2424 | "shebang-regex@npm:^3.0.0":
2425 | version: 3.0.0
2426 | resolution: "shebang-regex@npm:3.0.0"
2427 | checksum: 10c0/1dbed0726dd0e1152a92696c76c7f06084eb32a90f0528d11acd764043aacf76994b2fb30aa1291a21bd019d6699164d048286309a278855ee7bec06cf6fb690
2428 | languageName: node
2429 | linkType: hard
2430 |
2431 | "signal-exit@npm:^4.0.1, signal-exit@npm:^4.1.0":
2432 | version: 4.1.0
2433 | resolution: "signal-exit@npm:4.1.0"
2434 | checksum: 10c0/41602dce540e46d599edba9d9860193398d135f7ff72cab629db5171516cfae628d21e7bfccde1bbfdf11c48726bc2a6d1a8fb8701125852fbfda7cf19c6aa83
2435 | languageName: node
2436 | linkType: hard
2437 |
2438 | "slash@npm:^5.1.0":
2439 | version: 5.1.0
2440 | resolution: "slash@npm:5.1.0"
2441 | checksum: 10c0/eb48b815caf0bdc390d0519d41b9e0556a14380f6799c72ba35caf03544d501d18befdeeef074bc9c052acf69654bc9e0d79d7f1de0866284137a40805299eb3
2442 | languageName: node
2443 | linkType: hard
2444 |
2445 | "slice-ansi@npm:^5.0.0":
2446 | version: 5.0.0
2447 | resolution: "slice-ansi@npm:5.0.0"
2448 | dependencies:
2449 | ansi-styles: "npm:^6.0.0"
2450 | is-fullwidth-code-point: "npm:^4.0.0"
2451 | checksum: 10c0/2d4d40b2a9d5cf4e8caae3f698fe24ae31a4d778701724f578e984dcb485ec8c49f0c04dab59c401821e80fcdfe89cace9c66693b0244e40ec485d72e543914f
2452 | languageName: node
2453 | linkType: hard
2454 |
2455 | "sprintf-js@npm:~1.0.2":
2456 | version: 1.0.3
2457 | resolution: "sprintf-js@npm:1.0.3"
2458 | checksum: 10c0/ecadcfe4c771890140da5023d43e190b7566d9cf8b2d238600f31bec0fc653f328da4450eb04bd59a431771a8e9cc0e118f0aa3974b683a4981b4e07abc2a5bb
2459 | languageName: node
2460 | linkType: hard
2461 |
2462 | "stack-utils@npm:^2.0.6":
2463 | version: 2.0.6
2464 | resolution: "stack-utils@npm:2.0.6"
2465 | dependencies:
2466 | escape-string-regexp: "npm:^2.0.0"
2467 | checksum: 10c0/651c9f87667e077584bbe848acaecc6049bc71979f1e9a46c7b920cad4431c388df0f51b8ad7cfd6eed3db97a2878d0fc8b3122979439ea8bac29c61c95eec8a
2468 | languageName: node
2469 | linkType: hard
2470 |
2471 | "string-width-cjs@npm:string-width@^4.2.0, string-width@npm:^4.1.0, string-width@npm:^4.2.0, string-width@npm:^4.2.3":
2472 | version: 4.2.3
2473 | resolution: "string-width@npm:4.2.3"
2474 | dependencies:
2475 | emoji-regex: "npm:^8.0.0"
2476 | is-fullwidth-code-point: "npm:^3.0.0"
2477 | strip-ansi: "npm:^6.0.1"
2478 | checksum: 10c0/1e525e92e5eae0afd7454086eed9c818ee84374bb80328fc41217ae72ff5f065ef1c9d7f72da41de40c75fa8bb3dee63d92373fd492c84260a552c636392a47b
2479 | languageName: node
2480 | linkType: hard
2481 |
2482 | "string-width@npm:^5.0.1, string-width@npm:^5.1.2":
2483 | version: 5.1.2
2484 | resolution: "string-width@npm:5.1.2"
2485 | dependencies:
2486 | eastasianwidth: "npm:^0.2.0"
2487 | emoji-regex: "npm:^9.2.2"
2488 | strip-ansi: "npm:^7.0.1"
2489 | checksum: 10c0/ab9c4264443d35b8b923cbdd513a089a60de339216d3b0ed3be3ba57d6880e1a192b70ae17225f764d7adbf5994e9bb8df253a944736c15a0240eff553c678ca
2490 | languageName: node
2491 | linkType: hard
2492 |
2493 | "string-width@npm:^7.0.0":
2494 | version: 7.2.0
2495 | resolution: "string-width@npm:7.2.0"
2496 | dependencies:
2497 | emoji-regex: "npm:^10.3.0"
2498 | get-east-asian-width: "npm:^1.0.0"
2499 | strip-ansi: "npm:^7.1.0"
2500 | checksum: 10c0/eb0430dd43f3199c7a46dcbf7a0b34539c76fe3aa62763d0b0655acdcbdf360b3f66f3d58ca25ba0205f42ea3491fa00f09426d3b7d3040e506878fc7664c9b9
2501 | languageName: node
2502 | linkType: hard
2503 |
2504 | "strip-ansi-cjs@npm:strip-ansi@^6.0.1, strip-ansi@npm:^6.0.0, strip-ansi@npm:^6.0.1":
2505 | version: 6.0.1
2506 | resolution: "strip-ansi@npm:6.0.1"
2507 | dependencies:
2508 | ansi-regex: "npm:^5.0.1"
2509 | checksum: 10c0/1ae5f212a126fe5b167707f716942490e3933085a5ff6c008ab97ab2f272c8025d3aa218b7bd6ab25729ca20cc81cddb252102f8751e13482a5199e873680952
2510 | languageName: node
2511 | linkType: hard
2512 |
2513 | "strip-ansi@npm:^7.0.1, strip-ansi@npm:^7.1.0":
2514 | version: 7.1.0
2515 | resolution: "strip-ansi@npm:7.1.0"
2516 | dependencies:
2517 | ansi-regex: "npm:^6.0.1"
2518 | checksum: 10c0/a198c3762e8832505328cbf9e8c8381de14a4fa50a4f9b2160138158ea88c0f5549fb50cb13c651c3088f47e63a108b34622ec18c0499b6c8c3a5ddf6b305ac4
2519 | languageName: node
2520 | linkType: hard
2521 |
2522 | "supertap@npm:^3.0.1":
2523 | version: 3.0.1
2524 | resolution: "supertap@npm:3.0.1"
2525 | dependencies:
2526 | indent-string: "npm:^5.0.0"
2527 | js-yaml: "npm:^3.14.1"
2528 | serialize-error: "npm:^7.0.1"
2529 | strip-ansi: "npm:^7.0.1"
2530 | checksum: 10c0/8164674f2e280cab875f0fef5bb36c15553c13e29697ff92f4e0d6bc62149f0303a89eee47535413ed145ea72e14a24d065bab233059d48a499ec5ebb4566b0f
2531 | languageName: node
2532 | linkType: hard
2533 |
2534 | "systeminformation@npm:^5.27.7":
2535 | version: 5.27.7
2536 | resolution: "systeminformation@npm:5.27.7"
2537 | bin:
2538 | systeminformation: lib/cli.js
2539 | checksum: 10c0/92a9f3a2f37e135422da745be8e51984d66ae4c411e3d5c0ffdab9aef5cd8abc45d0d476bfa28c4bfee30a6e73722649544a88c4b6fa82b426c291adbfcdd8f9
2540 | conditions: (os=darwin | os=linux | os=win32 | os=freebsd | os=openbsd | os=netbsd | os=sunos | os=android)
2541 | languageName: node
2542 | linkType: hard
2543 |
2544 | "tar@npm:^7.4.0":
2545 | version: 7.4.3
2546 | resolution: "tar@npm:7.4.3"
2547 | dependencies:
2548 | "@isaacs/fs-minipass": "npm:^4.0.0"
2549 | chownr: "npm:^3.0.0"
2550 | minipass: "npm:^7.1.2"
2551 | minizlib: "npm:^3.0.1"
2552 | mkdirp: "npm:^3.0.1"
2553 | yallist: "npm:^5.0.0"
2554 | checksum: 10c0/d4679609bb2a9b48eeaf84632b6d844128d2412b95b6de07d53d8ee8baf4ca0857c9331dfa510390a0727b550fd543d4d1a10995ad86cdf078423fbb8d99831d
2555 | languageName: node
2556 | linkType: hard
2557 |
2558 | "temp-dir@npm:^3.0.0":
2559 | version: 3.0.0
2560 | resolution: "temp-dir@npm:3.0.0"
2561 | checksum: 10c0/a86978a400984cd5f315b77ebf3fe53bb58c61f192278cafcb1f3fb32d584a21dc8e08b93171d7874b7cc972234d3455c467306cc1bfc4524b622e5ad3bfd671
2562 | languageName: node
2563 | linkType: hard
2564 |
2565 | "time-zone@npm:^1.0.0":
2566 | version: 1.0.0
2567 | resolution: "time-zone@npm:1.0.0"
2568 | checksum: 10c0/d00ebd885039109011b6e2423ebbf225160927333c2ade6d833e9cc4676db20759f1f3855fafde00d1bd668c243a6aa68938ce71fe58aab0d514e820d59c1d81
2569 | languageName: node
2570 | linkType: hard
2571 |
2572 | "tmp@npm:^0.0.33":
2573 | version: 0.0.33
2574 | resolution: "tmp@npm:0.0.33"
2575 | dependencies:
2576 | os-tmpdir: "npm:~1.0.2"
2577 | checksum: 10c0/69863947b8c29cabad43fe0ce65cec5bb4b481d15d4b4b21e036b060b3edbf3bc7a5541de1bacb437bb3f7c4538f669752627fdf9b4aaf034cebd172ba373408
2578 | languageName: node
2579 | linkType: hard
2580 |
2581 | "to-regex-range@npm:^5.0.1":
2582 | version: 5.0.1
2583 | resolution: "to-regex-range@npm:5.0.1"
2584 | dependencies:
2585 | is-number: "npm:^7.0.0"
2586 | checksum: 10c0/487988b0a19c654ff3e1961b87f471702e708fa8a8dd02a298ef16da7206692e8552a0250e8b3e8759270f62e9d8314616f6da274734d3b558b1fc7b7724e892
2587 | languageName: node
2588 | linkType: hard
2589 |
2590 | "tr46@npm:~0.0.3":
2591 | version: 0.0.3
2592 | resolution: "tr46@npm:0.0.3"
2593 | checksum: 10c0/047cb209a6b60c742f05c9d3ace8fa510bff609995c129a37ace03476a9b12db4dbf975e74600830ef0796e18882b2381fb5fb1f6b4f96b832c374de3ab91a11
2594 | languageName: node
2595 | linkType: hard
2596 |
2597 | "tslib@npm:^2.4.0":
2598 | version: 2.8.1
2599 | resolution: "tslib@npm:2.8.1"
2600 | checksum: 10c0/9c4759110a19c53f992d9aae23aac5ced636e99887b51b9e61def52611732872ff7668757d4e4c61f19691e36f4da981cd9485e869b4a7408d689f6bf1f14e62
2601 | languageName: node
2602 | linkType: hard
2603 |
2604 | "typanion@npm:^3.14.0, typanion@npm:^3.8.0":
2605 | version: 3.14.0
2606 | resolution: "typanion@npm:3.14.0"
2607 | checksum: 10c0/8b03b19844e6955bfd906c31dc781bae6d7f1fb3ce4fe24b7501557013d4889ae5cefe671dafe98d87ead0adceb8afcb8bc16df7dc0bd2b7331bac96f3a7cae2
2608 | languageName: node
2609 | linkType: hard
2610 |
2611 | "type-fest@npm:^0.13.1":
2612 | version: 0.13.1
2613 | resolution: "type-fest@npm:0.13.1"
2614 | checksum: 10c0/0c0fa07ae53d4e776cf4dac30d25ad799443e9eef9226f9fddbb69242db86b08584084a99885cfa5a9dfe4c063ebdc9aa7b69da348e735baede8d43f1aeae93b
2615 | languageName: node
2616 | linkType: hard
2617 |
2618 | "type-fest@npm:^0.21.3":
2619 | version: 0.21.3
2620 | resolution: "type-fest@npm:0.21.3"
2621 | checksum: 10c0/902bd57bfa30d51d4779b641c2bc403cdf1371fb9c91d3c058b0133694fcfdb817aef07a47f40faf79039eecbaa39ee9d3c532deff244f3a19ce68cea71a61e8
2622 | languageName: node
2623 | linkType: hard
2624 |
2625 | "unicorn-magic@npm:^0.1.0":
2626 | version: 0.1.0
2627 | resolution: "unicorn-magic@npm:0.1.0"
2628 | checksum: 10c0/e4ed0de05b0a05e735c7d8a2930881e5efcfc3ec897204d5d33e7e6247f4c31eac92e383a15d9a6bccb7319b4271ee4bea946e211bf14951fec6ff2cbbb66a92
2629 | languageName: node
2630 | linkType: hard
2631 |
2632 | "unicorn-magic@npm:^0.3.0":
2633 | version: 0.3.0
2634 | resolution: "unicorn-magic@npm:0.3.0"
2635 | checksum: 10c0/0a32a997d6c15f1c2a077a15b1c4ca6f268d574cf5b8975e778bb98e6f8db4ef4e86dfcae4e158cd4c7e38fb4dd383b93b13eefddc7f178dea13d3ac8a603271
2636 | languageName: node
2637 | linkType: hard
2638 |
2639 | "universal-user-agent@npm:^7.0.0, universal-user-agent@npm:^7.0.2":
2640 | version: 7.0.3
2641 | resolution: "universal-user-agent@npm:7.0.3"
2642 | checksum: 10c0/6043be466a9bb96c0ce82392842d9fddf4c37e296f7bacc2cb25f47123990eb436c82df824644f9c5070a94dbdb117be17f66d54599ab143648ec57ef93dbcc8
2643 | languageName: node
2644 | linkType: hard
2645 |
2646 | "wasm-sjlj@npm:^1.0.6":
2647 | version: 1.0.6
2648 | resolution: "wasm-sjlj@npm:1.0.6"
2649 | checksum: 10c0/e1172736ca02af383e838ce396b6cc7fc8814d7cc313b30b721c513a79140313cebadb094b9e76d13e27cc679cde72df4e660dbdc5033e8cf66cf0bd176024dd
2650 | languageName: node
2651 | linkType: hard
2652 |
2653 | "webidl-conversions@npm:^3.0.0":
2654 | version: 3.0.1
2655 | resolution: "webidl-conversions@npm:3.0.1"
2656 | checksum: 10c0/5612d5f3e54760a797052eb4927f0ddc01383550f542ccd33d5238cfd65aeed392a45ad38364970d0a0f4fea32e1f4d231b3d8dac4a3bdd385e5cf802ae097db
2657 | languageName: node
2658 | linkType: hard
2659 |
2660 | "well-known-symbols@npm:^2.0.0":
2661 | version: 2.0.0
2662 | resolution: "well-known-symbols@npm:2.0.0"
2663 | checksum: 10c0/cb6c12e98877e8952ec28d13ae6f4fdb54ae1cb49b16a728720276dadd76c930e6cb0e174af3a4620054dd2752546f842540122920c6e31410208abd4958ee6b
2664 | languageName: node
2665 | linkType: hard
2666 |
2667 | "whatwg-url@npm:^5.0.0":
2668 | version: 5.0.0
2669 | resolution: "whatwg-url@npm:5.0.0"
2670 | dependencies:
2671 | tr46: "npm:~0.0.3"
2672 | webidl-conversions: "npm:^3.0.0"
2673 | checksum: 10c0/1588bed84d10b72d5eec1d0faa0722ba1962f1821e7539c535558fb5398d223b0c50d8acab950b8c488b4ba69043fd833cc2697056b167d8ad46fac3995a55d5
2674 | languageName: node
2675 | linkType: hard
2676 |
2677 | "which@npm:^2.0.1":
2678 | version: 2.0.2
2679 | resolution: "which@npm:2.0.2"
2680 | dependencies:
2681 | isexe: "npm:^2.0.0"
2682 | bin:
2683 | node-which: ./bin/node-which
2684 | checksum: 10c0/66522872a768b60c2a65a57e8ad184e5372f5b6a9ca6d5f033d4b0dc98aff63995655a7503b9c0a2598936f532120e81dd8cc155e2e92ed662a2b9377cc4374f
2685 | languageName: node
2686 | linkType: hard
2687 |
2688 | "wrap-ansi-cjs@npm:wrap-ansi@^7.0.0, wrap-ansi@npm:^7.0.0":
2689 | version: 7.0.0
2690 | resolution: "wrap-ansi@npm:7.0.0"
2691 | dependencies:
2692 | ansi-styles: "npm:^4.0.0"
2693 | string-width: "npm:^4.1.0"
2694 | strip-ansi: "npm:^6.0.0"
2695 | checksum: 10c0/d15fc12c11e4cbc4044a552129ebc75ee3f57aa9c1958373a4db0292d72282f54373b536103987a4a7594db1ef6a4f10acf92978f79b98c49306a4b58c77d4da
2696 | languageName: node
2697 | linkType: hard
2698 |
2699 | "wrap-ansi@npm:^6.2.0":
2700 | version: 6.2.0
2701 | resolution: "wrap-ansi@npm:6.2.0"
2702 | dependencies:
2703 | ansi-styles: "npm:^4.0.0"
2704 | string-width: "npm:^4.1.0"
2705 | strip-ansi: "npm:^6.0.0"
2706 | checksum: 10c0/baad244e6e33335ea24e86e51868fe6823626e3a3c88d9a6674642afff1d34d9a154c917e74af8d845fd25d170c4ea9cf69a47133c3f3656e1252b3d462d9f6c
2707 | languageName: node
2708 | linkType: hard
2709 |
2710 | "wrap-ansi@npm:^8.1.0":
2711 | version: 8.1.0
2712 | resolution: "wrap-ansi@npm:8.1.0"
2713 | dependencies:
2714 | ansi-styles: "npm:^6.1.0"
2715 | string-width: "npm:^5.0.1"
2716 | strip-ansi: "npm:^7.0.1"
2717 | checksum: 10c0/138ff58a41d2f877eae87e3282c0630fc2789012fc1af4d6bd626eeb9a2f9a65ca92005e6e69a75c7b85a68479fe7443c7dbe1eb8fbaa681a4491364b7c55c60
2718 | languageName: node
2719 | linkType: hard
2720 |
2721 | "write-file-atomic@npm:^6.0.0":
2722 | version: 6.0.0
2723 | resolution: "write-file-atomic@npm:6.0.0"
2724 | dependencies:
2725 | imurmurhash: "npm:^0.1.4"
2726 | signal-exit: "npm:^4.0.1"
2727 | checksum: 10c0/ae2f1c27474758a9aca92037df6c1dd9cb94c4e4983451210bd686bfe341f142662f6aa5913095e572ab037df66b1bfe661ed4ce4c0369ed0e8219e28e141786
2728 | languageName: node
2729 | linkType: hard
2730 |
2731 | "y18n@npm:^5.0.5":
2732 | version: 5.0.8
2733 | resolution: "y18n@npm:5.0.8"
2734 | checksum: 10c0/4df2842c36e468590c3691c894bc9cdbac41f520566e76e24f59401ba7d8b4811eb1e34524d57e54bc6d864bcb66baab7ffd9ca42bf1eda596618f9162b91249
2735 | languageName: node
2736 | linkType: hard
2737 |
2738 | "yallist@npm:^5.0.0":
2739 | version: 5.0.0
2740 | resolution: "yallist@npm:5.0.0"
2741 | checksum: 10c0/a499c81ce6d4a1d260d4ea0f6d49ab4da09681e32c3f0472dee16667ed69d01dae63a3b81745a24bd78476ec4fcf856114cb4896ace738e01da34b2c42235416
2742 | languageName: node
2743 | linkType: hard
2744 |
2745 | "yargs-parser@npm:^21.1.1":
2746 | version: 21.1.1
2747 | resolution: "yargs-parser@npm:21.1.1"
2748 | checksum: 10c0/f84b5e48169479d2f402239c59f084cfd1c3acc197a05c59b98bab067452e6b3ea46d4dd8ba2985ba7b3d32a343d77df0debd6b343e5dae3da2aab2cdf5886b2
2749 | languageName: node
2750 | linkType: hard
2751 |
2752 | "yargs@npm:^17.7.2":
2753 | version: 17.7.2
2754 | resolution: "yargs@npm:17.7.2"
2755 | dependencies:
2756 | cliui: "npm:^8.0.1"
2757 | escalade: "npm:^3.1.1"
2758 | get-caller-file: "npm:^2.0.5"
2759 | require-directory: "npm:^2.1.1"
2760 | string-width: "npm:^4.2.3"
2761 | y18n: "npm:^5.0.5"
2762 | yargs-parser: "npm:^21.1.1"
2763 | checksum: 10c0/ccd7e723e61ad5965fffbb791366db689572b80cca80e0f96aad968dfff4156cd7cd1ad18607afe1046d8241e6fb2d6c08bf7fa7bfb5eaec818735d8feac8f05
2764 | languageName: node
2765 | linkType: hard
2766 |
2767 | "yocto-queue@npm:^1.0.0":
2768 | version: 1.2.1
2769 | resolution: "yocto-queue@npm:1.2.1"
2770 | checksum: 10c0/5762caa3d0b421f4bdb7a1926b2ae2189fc6e4a14469258f183600028eb16db3e9e0306f46e8ebf5a52ff4b81a881f22637afefbef5399d6ad440824e9b27f9f
2771 | languageName: node
2772 | linkType: hard
2773 |
2774 | "yoctocolors-cjs@npm:^2.1.2":
2775 | version: 2.1.2
2776 | resolution: "yoctocolors-cjs@npm:2.1.2"
2777 | checksum: 10c0/a0e36eb88fea2c7981eab22d1ba45e15d8d268626e6c4143305e2c1628fa17ebfaa40cd306161a8ce04c0a60ee0262058eab12567493d5eb1409780853454c6f
2778 | languageName: node
2779 | linkType: hard
2780 |
--------------------------------------------------------------------------------