├── .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 | ![CI](https://github.com/Brooooooklyn/sysinfo/workflows/CI/badge.svg) 4 | [![install size](https://packagephobia.com/badge?p=@napi-rs/sysinfo)](https://packagephobia.com/result?p=@napi-rs/sysinfo) 5 | [![Downloads](https://img.shields.io/npm/dm/@napi-rs/sysinfo.svg?sanitize=true)](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 | --------------------------------------------------------------------------------