├── .gitignore ├── LICENSE ├── README.md ├── binding.gyp ├── example.js ├── global-mouse-events.cc ├── index.d.ts ├── index.js ├── package-lock.json ├── package.json ├── tsconfig.json └── yarn.lock /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | *.log* 3 | build 4 | .vscode/ipch 5 | .history -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2019 Eryk Rakowski, Xander Frangos 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # global-mouse-events 2 | 3 | Global mouse events listener for Node.js (Windows only). Based off of [sentialx/mouse-hooks](https://github.com/sentialx/mouse-hooks) and [coldKey1/mouse-hooks](https://github.com/coldKey1/mouse-hooks). 4 | 5 | ## Installation 6 | 7 | ```cmd 8 | npm i global-mouse-events 9 | ``` 10 | 11 | ## Usage 12 | Import the module and register for the mouse events you'd like to listen to. 13 | 14 | ### Available event listeners 15 | 16 | **`mouseup`** / **`mousedown`** — *Fires when a mouse button is pressed / released.*\ 17 | Returns: 18 | - **x:** The X position of the mouse, relative to the top left of the primary display. 19 | - **y:** The Y position of the mouse, relative to the top left of the primary display. 20 | - **button:** Which button was pressed. 1 is left-click. 2 is right-click. 3 is middle-click. 4 and 5 are side buttons ("XBUTTON1" and "XBUTTON2"). 21 | 22 | **`mousemove`** — *Fires when the mouse cursor is moved.*\ 23 | Returns: 24 | - **x:** The X position of the mouse, relative to the top left of the primary display. 25 | - **y:** The Y position of the mouse, relative to the top left of the primary display. 26 | 27 | **`mousewheel`** — *Fires when the mouse wheel is scrolled. Some trackpads may not fire this event unless "Scroll inactive windows when I hover over them" is disabled in the Windows settings.*\ 28 | Returns: 29 | - **x:** The X position of the mouse, relative to the top left of the primary display. 30 | - **y:** The Y position of the mouse, relative to the top left of the primary display. 31 | - **delta:** How much the mouse wheel was scrolled. Positive numbers are considered "up" and negative numbers are "down". 32 | - **axis:** Whether the scroll was vertical or horizontal. 0 is vertical. 1 is horizontal. 33 | 34 | ### Example 35 | 36 | ```js 37 | const mouseEvents = require("global-mouse-events"); 38 | 39 | mouseEvents.on("mouseup", event => { 40 | console.log(event); // { x: 2962, y: 483, button: 1 } 41 | }); 42 | 43 | mouseEvents.on("mousedown", event => { 44 | console.log(event); // { x: 2962, y: 483, button: 1 } 45 | }); 46 | 47 | mouseEvents.on("mousemove", event => { 48 | console.log(event); // { x: 2962, y: 482 } 49 | }); 50 | 51 | mouseEvents.on("mousewheel", event => { 52 | console.log(event); // { x: 2962, y: 483, delta: -1, axis: 0 } 53 | }); 54 | ``` 55 | 56 | ### Available functions 57 | 58 | - **`pauseMouseEvents`** — *Pauses all mouse events.* 59 | - **`resumeMouseEvents`** — *Resumes all mouse events.* 60 | - **`getPaused`** — *Returns the paused state as a boolean.* 61 | -------------------------------------------------------------------------------- /binding.gyp: -------------------------------------------------------------------------------- 1 | { 2 | "targets": [ 3 | { 4 | "target_name": "global_mouse_events", 5 | "cflags!": [ "-fno-exceptions" ], 6 | "cflags_cc!": [ "-fno-exceptions" ], 7 | "conditions": [ 8 | ["OS=='win'", { 9 | "sources": [ "global-mouse-events.cc" ] 10 | }], 11 | ], 12 | "include_dirs": [ 13 | " { 4 | console.log(data); 5 | }); 6 | 7 | mouseEvents.on("mousemove", data => { 8 | console.log(data); 9 | }); 10 | 11 | mouseEvents.on("mousedown", data => { 12 | console.log(data); 13 | }); 14 | 15 | mouseEvents.on("mousewheel", data => { 16 | console.log(data); 17 | }); 18 | 19 | setInterval(() => { 20 | if (!mouseEvents.getPaused()) { 21 | console.error("Still listening..."); 22 | } 23 | }, 5000); 24 | 25 | process.on("SIGBREAK", () => { 26 | if (mouseEvents.getPaused()) { 27 | console.error("resuming mouse events"); 28 | mouseEvents.resumeMouseEvents(); 29 | } else { 30 | console.error("pausing mouse events"); 31 | mouseEvents.pauseMouseEvents(); 32 | } 33 | }); 34 | 35 | console.error("Press Ctrl+Break to toggle listening"); 36 | -------------------------------------------------------------------------------- /global-mouse-events.cc: -------------------------------------------------------------------------------- 1 | #define WIN32_LEAN_AND_MEAN 1 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include 7 | 8 | Napi::ThreadSafeFunction _tsfn; 9 | HANDLE _hThread; 10 | std::atomic_bool captureMouseMove = false; 11 | // PostThreadMessage races with the actual thread; we'll get a thread ID 12 | // and won't be able to post to it because it's "invalid" during the early 13 | // lifecycle of the thread. To ensure that immediate pauses don't get dropped, 14 | // we'll use this flag instead of distinct message IDs. 15 | std::atomic_bool installEventHook = false; 16 | DWORD dwThreadID = 0; 17 | 18 | struct MouseEventContext { 19 | public: 20 | int nCode; 21 | WPARAM wParam; 22 | LONG ptX; 23 | LONG ptY; 24 | DWORD mouseData; 25 | }; 26 | 27 | void onMainThread(Napi::Env env, Napi::Function function, MouseEventContext *pMouseEvent) { 28 | auto nCode = pMouseEvent->nCode; 29 | auto wParam = pMouseEvent->wParam; 30 | auto ptX = pMouseEvent->ptX; 31 | auto ptY = pMouseEvent->ptY; 32 | auto nMouseData = pMouseEvent->mouseData; 33 | 34 | delete pMouseEvent; 35 | 36 | if (nCode >= 0) { 37 | auto name = ""; 38 | auto button = -1; 39 | 40 | // Isolate mouse movement, as it's more CPU intensive 41 | if (wParam == WM_MOUSEMOVE) { 42 | // Is mouse movement 43 | if(captureMouseMove.load()) { 44 | name = "mousemove"; 45 | } 46 | } else { 47 | // Is not mouse movement 48 | 49 | // Determine event type 50 | if (wParam == WM_LBUTTONUP || wParam == WM_RBUTTONUP || wParam == WM_MBUTTONUP || wParam == WM_XBUTTONUP) { 51 | name = "mouseup"; 52 | } else if (wParam == WM_LBUTTONDOWN || wParam == WM_RBUTTONDOWN || wParam == WM_MBUTTONDOWN || wParam == WM_XBUTTONDOWN) { 53 | name = "mousedown"; 54 | } else if (wParam == WM_MOUSEWHEEL || wParam == WM_MOUSEHWHEEL) { 55 | name = "mousewheel"; 56 | } 57 | 58 | // Determine button 59 | if (wParam == WM_LBUTTONUP || wParam == WM_LBUTTONDOWN) { 60 | button = 1; 61 | } else if (wParam == WM_RBUTTONUP || wParam == WM_RBUTTONDOWN) { 62 | button = 2; 63 | } else if (wParam == WM_MBUTTONUP || wParam == WM_MBUTTONDOWN) { 64 | button = 3; 65 | } else if (wParam == WM_MOUSEWHEEL) { 66 | button = 0; 67 | } else if (wParam == WM_MOUSEHWHEEL) { 68 | button = 1; 69 | } 70 | } 71 | 72 | // Only proceed if an event was identified 73 | if (name != "") { 74 | Napi::HandleScope scope(env); 75 | 76 | auto x = Napi::Number::New(env, ptX); 77 | auto y = Napi::Number::New(env, ptY); 78 | 79 | auto mouseData = Napi::Number::New(env, nMouseData); 80 | 81 | // Yell back to NodeJS 82 | function.Call(env.Global(), 83 | {Napi::String::New(env, name), x, y, 84 | Napi::Number::New(env, button), mouseData}); 85 | } 86 | } 87 | } 88 | 89 | LRESULT CALLBACK HookCallback(int nCode, WPARAM wParam, LPARAM lParam) { 90 | 91 | // If not WM_MOUSEMOVE or WM_MOUSEMOVE has been requested, process event 92 | if(!(wParam == WM_MOUSEMOVE && !captureMouseMove.load())) { 93 | // Prepare data to be processed 94 | MSLLHOOKSTRUCT *data = (MSLLHOOKSTRUCT *)lParam; 95 | auto pMouseEvent = new MouseEventContext(); 96 | pMouseEvent->nCode = nCode; 97 | pMouseEvent->wParam = wParam; 98 | pMouseEvent->ptX = data->pt.x; 99 | pMouseEvent->ptY = data->pt.y; 100 | pMouseEvent->mouseData = data->mouseData; 101 | 102 | // Process event on non-blocking thread 103 | _tsfn.NonBlockingCall(pMouseEvent, onMainThread); 104 | } 105 | 106 | // Let Windows continue with this event as normal 107 | return CallNextHookEx(NULL, nCode, wParam, lParam); 108 | } 109 | 110 | DWORD WINAPI MouseHookThread(LPVOID lpParam) { 111 | MSG msg; 112 | HHOOK hook = installEventHook.load() ? SetWindowsHookEx(WH_MOUSE_LL, HookCallback, NULL, 0) : NULL; 113 | 114 | while (GetMessage(&msg, NULL, 0, 0) > 0) { 115 | if (msg.message != WM_USER) continue; 116 | if (!installEventHook.load() && hook != NULL) { 117 | if (!UnhookWindowsHookEx(hook)) break; 118 | hook = NULL; 119 | } else if (installEventHook.load() && hook == NULL) { 120 | hook = SetWindowsHookEx(WH_MOUSE_LL, HookCallback, NULL, 0); 121 | if (hook == NULL) break; 122 | } 123 | } 124 | 125 | _tsfn.Release(); 126 | return GetLastError(); 127 | } 128 | 129 | Napi::Boolean createMouseHook(const Napi::CallbackInfo &info) { 130 | _hThread = CreateThread(NULL, 0, MouseHookThread, NULL, CREATE_SUSPENDED, &dwThreadID); 131 | _tsfn = Napi::ThreadSafeFunction::New( 132 | info.Env(), 133 | info[0].As(), 134 | "WH_MOUSE_LL Hook Thread", 135 | 512, 136 | 1, 137 | [] ( Napi::Env ) { CloseHandle(_hThread); } 138 | ); 139 | 140 | ResumeThread(_hThread); 141 | return Napi::Boolean::New(info.Env(), true); 142 | } 143 | 144 | void enableMouseMove(const Napi::CallbackInfo &info) { 145 | captureMouseMove = true; 146 | } 147 | 148 | void disableMouseMove(const Napi::CallbackInfo &info) { 149 | captureMouseMove = false; 150 | } 151 | 152 | Napi::Boolean pauseMouseEvents(const Napi::CallbackInfo &info) { 153 | BOOL bDidPost = FALSE; 154 | if (dwThreadID != 0) { 155 | installEventHook = false; 156 | bDidPost = PostThreadMessageW(dwThreadID, WM_USER, NULL, NULL); 157 | } 158 | return Napi::Boolean::New(info.Env(), bDidPost); 159 | } 160 | 161 | Napi::Boolean resumeMouseEvents(const Napi::CallbackInfo &info) { 162 | BOOL bDidPost = FALSE; 163 | if (dwThreadID != 0) { 164 | installEventHook = true; 165 | bDidPost = PostThreadMessageW(dwThreadID, WM_USER, NULL, NULL); 166 | } 167 | return Napi::Boolean::New(info.Env(), bDidPost); 168 | } 169 | 170 | Napi::Object Init(Napi::Env env, Napi::Object exports) { 171 | exports.Set(Napi::String::New(env, "createMouseHook"), 172 | Napi::Function::New(env, createMouseHook)); 173 | 174 | exports.Set(Napi::String::New(env, "enableMouseMove"), 175 | Napi::Function::New(env, enableMouseMove)); 176 | 177 | exports.Set(Napi::String::New(env, "disableMouseMove"), 178 | Napi::Function::New(env, disableMouseMove)); 179 | 180 | exports.Set(Napi::String::New(env, "pauseMouseEvents"), 181 | Napi::Function::New(env, pauseMouseEvents)); 182 | 183 | exports.Set(Napi::String::New(env, "resumeMouseEvents"), 184 | Napi::Function::New(env, resumeMouseEvents)); 185 | 186 | return exports; 187 | } 188 | 189 | NODE_API_MODULE(NODE_GYP_MODULE_NAME, Init) -------------------------------------------------------------------------------- /index.d.ts: -------------------------------------------------------------------------------- 1 | import EventEmitter from 'events'; 2 | 3 | export default new (class MouseEvents extends EventEmitter { 4 | constructor(); 5 | getPaused(): boolean; 6 | pauseMouseEvents(): boolean; 7 | resumeMouseEvents(): boolean; 8 | })() -------------------------------------------------------------------------------- /index.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | const { EventEmitter } = require("events"); 3 | const addon = require("bindings")("global_mouse_events"); 4 | let paused = true; 5 | 6 | class MouseEvents extends EventEmitter { 7 | constructor() { 8 | super(); 9 | 10 | if (require("os").platform() !== "win32") 11 | return; 12 | 13 | let createdListener = false; 14 | let registeredEvents = []; 15 | 16 | this.on("newListener", event => { 17 | if (registeredEvents.indexOf(event) !== -1) 18 | return; 19 | 20 | // Enable WM_MOUSEMOVE capture if requested 21 | if(event === "mousemove") { 22 | addon.enableMouseMove(); 23 | } 24 | 25 | if ((event === "mouseup" || event === "mousedown" || event === "mousemove" || event === "mousewheel") && !createdListener) { 26 | // Careful: this currently "leaks" a thread every time it's called. 27 | // We should probably get around to fixing that. 28 | createdListener = addon.createMouseHook((event, x, y, button, delta) => { 29 | const payload = { x, y }; 30 | if (event === "mousewheel") { 31 | payload.delta = FromInt32(delta) / 120; 32 | payload.axis = button; 33 | } else if(event === "mousedown" || event === "mouseup") { 34 | payload.button = button; 35 | const mouseData = FromInt32(delta); 36 | if(mouseData) payload.button = 3 + mouseData; 37 | } 38 | this.emit(event, payload); 39 | }); 40 | if (createdListener) { 41 | this.resumeMouseEvents(); 42 | } 43 | } else { 44 | return; 45 | } 46 | 47 | registeredEvents.push(event); 48 | }); 49 | 50 | this.on("removeListener", event => { 51 | if (this.listenerCount(event) > 0) 52 | return; 53 | 54 | registeredEvents = registeredEvents.filter(x => x !== event); 55 | if (event === "mousemove") { 56 | addon.disableMouseMove(); 57 | } 58 | }); 59 | } 60 | 61 | getPaused() { 62 | return paused; 63 | } 64 | 65 | pauseMouseEvents() { 66 | if(paused) return false; 67 | paused = true; 68 | return addon.pauseMouseEvents(); 69 | } 70 | 71 | resumeMouseEvents() { 72 | if(!paused) return false; 73 | paused = false; 74 | return addon.resumeMouseEvents(); 75 | } 76 | } 77 | 78 | function FromInt32(x) { 79 | var uint32 = x - Math.floor(x / 4294967296) * 4294967296; 80 | if (uint32 >= 2147483648) { 81 | return (uint32 - 4294967296) / 65536 82 | } else { 83 | return uint32 / 65536; 84 | } 85 | } 86 | 87 | module.exports = new MouseEvents(); -------------------------------------------------------------------------------- /package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "global-mouse-events", 3 | "version": "1.2.0", 4 | "lockfileVersion": 2, 5 | "requires": true, 6 | "packages": { 7 | "": { 8 | "name": "global-mouse-events", 9 | "version": "1.2.0", 10 | "hasInstallScript": true, 11 | "license": "MIT", 12 | "dependencies": { 13 | "bindings": "1.5.0", 14 | "node-addon-api": "^7.0.0", 15 | "node-gyp": "^10.0.1" 16 | }, 17 | "devDependencies": { 18 | "@types/node": "^14.14.32", 19 | "typescript": "^4.2.3" 20 | } 21 | }, 22 | "node_modules/@isaacs/cliui": { 23 | "version": "8.0.2", 24 | "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", 25 | "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", 26 | "dependencies": { 27 | "string-width": "^5.1.2", 28 | "string-width-cjs": "npm:string-width@^4.2.0", 29 | "strip-ansi": "^7.0.1", 30 | "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", 31 | "wrap-ansi": "^8.1.0", 32 | "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" 33 | }, 34 | "engines": { 35 | "node": ">=12" 36 | } 37 | }, 38 | "node_modules/@npmcli/agent": { 39 | "version": "2.2.0", 40 | "resolved": "https://registry.npmjs.org/@npmcli/agent/-/agent-2.2.0.tgz", 41 | "integrity": "sha512-2yThA1Es98orMkpSLVqlDZAMPK3jHJhifP2gnNUdk1754uZ8yI5c+ulCoVG+WlntQA6MzhrURMXjSd9Z7dJ2/Q==", 42 | "dependencies": { 43 | "agent-base": "^7.1.0", 44 | "http-proxy-agent": "^7.0.0", 45 | "https-proxy-agent": "^7.0.1", 46 | "lru-cache": "^10.0.1", 47 | "socks-proxy-agent": "^8.0.1" 48 | }, 49 | "engines": { 50 | "node": "^16.14.0 || >=18.0.0" 51 | } 52 | }, 53 | "node_modules/@npmcli/fs": { 54 | "version": "3.1.0", 55 | "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-3.1.0.tgz", 56 | "integrity": "sha512-7kZUAaLscfgbwBQRbvdMYaZOWyMEcPTH/tJjnyAWJ/dvvs9Ef+CERx/qJb9GExJpl1qipaDGn7KqHnFGGixd0w==", 57 | "dependencies": { 58 | "semver": "^7.3.5" 59 | }, 60 | "engines": { 61 | "node": "^14.17.0 || ^16.13.0 || >=18.0.0" 62 | } 63 | }, 64 | "node_modules/@pkgjs/parseargs": { 65 | "version": "0.11.0", 66 | "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", 67 | "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", 68 | "optional": true, 69 | "engines": { 70 | "node": ">=14" 71 | } 72 | }, 73 | "node_modules/@types/node": { 74 | "version": "14.14.35", 75 | "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.35.tgz", 76 | "integrity": "sha512-Lt+wj8NVPx0zUmUwumiVXapmaLUcAk3yPuHCFVXras9k5VT9TdhJqKqGVUQCD60OTMCl0qxJ57OiTL0Mic3Iag==", 77 | "dev": true 78 | }, 79 | "node_modules/abbrev": { 80 | "version": "2.0.0", 81 | "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-2.0.0.tgz", 82 | "integrity": "sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ==", 83 | "engines": { 84 | "node": "^14.17.0 || ^16.13.0 || >=18.0.0" 85 | } 86 | }, 87 | "node_modules/agent-base": { 88 | "version": "7.1.0", 89 | "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.0.tgz", 90 | "integrity": "sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==", 91 | "dependencies": { 92 | "debug": "^4.3.4" 93 | }, 94 | "engines": { 95 | "node": ">= 14" 96 | } 97 | }, 98 | "node_modules/aggregate-error": { 99 | "version": "3.1.0", 100 | "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", 101 | "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", 102 | "dependencies": { 103 | "clean-stack": "^2.0.0", 104 | "indent-string": "^4.0.0" 105 | }, 106 | "engines": { 107 | "node": ">=8" 108 | } 109 | }, 110 | "node_modules/ansi-regex": { 111 | "version": "6.0.1", 112 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", 113 | "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", 114 | "engines": { 115 | "node": ">=12" 116 | }, 117 | "funding": { 118 | "url": "https://github.com/chalk/ansi-regex?sponsor=1" 119 | } 120 | }, 121 | "node_modules/ansi-styles": { 122 | "version": "6.2.1", 123 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", 124 | "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", 125 | "engines": { 126 | "node": ">=12" 127 | }, 128 | "funding": { 129 | "url": "https://github.com/chalk/ansi-styles?sponsor=1" 130 | } 131 | }, 132 | "node_modules/balanced-match": { 133 | "version": "1.0.2", 134 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", 135 | "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" 136 | }, 137 | "node_modules/bindings": { 138 | "version": "1.5.0", 139 | "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", 140 | "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", 141 | "dependencies": { 142 | "file-uri-to-path": "1.0.0" 143 | } 144 | }, 145 | "node_modules/brace-expansion": { 146 | "version": "2.0.1", 147 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", 148 | "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", 149 | "dependencies": { 150 | "balanced-match": "^1.0.0" 151 | } 152 | }, 153 | "node_modules/cacache": { 154 | "version": "18.0.2", 155 | "resolved": "https://registry.npmjs.org/cacache/-/cacache-18.0.2.tgz", 156 | "integrity": "sha512-r3NU8h/P+4lVUHfeRw1dtgQYar3DZMm4/cm2bZgOvrFC/su7budSOeqh52VJIC4U4iG1WWwV6vRW0znqBvxNuw==", 157 | "dependencies": { 158 | "@npmcli/fs": "^3.1.0", 159 | "fs-minipass": "^3.0.0", 160 | "glob": "^10.2.2", 161 | "lru-cache": "^10.0.1", 162 | "minipass": "^7.0.3", 163 | "minipass-collect": "^2.0.1", 164 | "minipass-flush": "^1.0.5", 165 | "minipass-pipeline": "^1.2.4", 166 | "p-map": "^4.0.0", 167 | "ssri": "^10.0.0", 168 | "tar": "^6.1.11", 169 | "unique-filename": "^3.0.0" 170 | }, 171 | "engines": { 172 | "node": "^16.14.0 || >=18.0.0" 173 | } 174 | }, 175 | "node_modules/chownr": { 176 | "version": "2.0.0", 177 | "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", 178 | "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", 179 | "engines": { 180 | "node": ">=10" 181 | } 182 | }, 183 | "node_modules/clean-stack": { 184 | "version": "2.2.0", 185 | "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", 186 | "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", 187 | "engines": { 188 | "node": ">=6" 189 | } 190 | }, 191 | "node_modules/color-convert": { 192 | "version": "2.0.1", 193 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", 194 | "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", 195 | "dependencies": { 196 | "color-name": "~1.1.4" 197 | }, 198 | "engines": { 199 | "node": ">=7.0.0" 200 | } 201 | }, 202 | "node_modules/color-name": { 203 | "version": "1.1.4", 204 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", 205 | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" 206 | }, 207 | "node_modules/cross-spawn": { 208 | "version": "7.0.3", 209 | "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", 210 | "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", 211 | "dependencies": { 212 | "path-key": "^3.1.0", 213 | "shebang-command": "^2.0.0", 214 | "which": "^2.0.1" 215 | }, 216 | "engines": { 217 | "node": ">= 8" 218 | } 219 | }, 220 | "node_modules/cross-spawn/node_modules/isexe": { 221 | "version": "2.0.0", 222 | "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", 223 | "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" 224 | }, 225 | "node_modules/cross-spawn/node_modules/which": { 226 | "version": "2.0.2", 227 | "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", 228 | "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", 229 | "dependencies": { 230 | "isexe": "^2.0.0" 231 | }, 232 | "bin": { 233 | "node-which": "bin/node-which" 234 | }, 235 | "engines": { 236 | "node": ">= 8" 237 | } 238 | }, 239 | "node_modules/debug": { 240 | "version": "4.3.4", 241 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", 242 | "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", 243 | "dependencies": { 244 | "ms": "2.1.2" 245 | }, 246 | "engines": { 247 | "node": ">=6.0" 248 | }, 249 | "peerDependenciesMeta": { 250 | "supports-color": { 251 | "optional": true 252 | } 253 | } 254 | }, 255 | "node_modules/eastasianwidth": { 256 | "version": "0.2.0", 257 | "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", 258 | "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==" 259 | }, 260 | "node_modules/emoji-regex": { 261 | "version": "9.2.2", 262 | "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", 263 | "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" 264 | }, 265 | "node_modules/encoding": { 266 | "version": "0.1.13", 267 | "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", 268 | "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", 269 | "optional": true, 270 | "dependencies": { 271 | "iconv-lite": "^0.6.2" 272 | } 273 | }, 274 | "node_modules/env-paths": { 275 | "version": "2.2.1", 276 | "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", 277 | "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", 278 | "engines": { 279 | "node": ">=6" 280 | } 281 | }, 282 | "node_modules/err-code": { 283 | "version": "2.0.3", 284 | "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", 285 | "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==" 286 | }, 287 | "node_modules/exponential-backoff": { 288 | "version": "3.1.1", 289 | "resolved": "https://registry.npmjs.org/exponential-backoff/-/exponential-backoff-3.1.1.tgz", 290 | "integrity": "sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw==" 291 | }, 292 | "node_modules/file-uri-to-path": { 293 | "version": "1.0.0", 294 | "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", 295 | "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==" 296 | }, 297 | "node_modules/foreground-child": { 298 | "version": "3.1.1", 299 | "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", 300 | "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", 301 | "dependencies": { 302 | "cross-spawn": "^7.0.0", 303 | "signal-exit": "^4.0.1" 304 | }, 305 | "engines": { 306 | "node": ">=14" 307 | }, 308 | "funding": { 309 | "url": "https://github.com/sponsors/isaacs" 310 | } 311 | }, 312 | "node_modules/fs-minipass": { 313 | "version": "3.0.3", 314 | "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-3.0.3.tgz", 315 | "integrity": "sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw==", 316 | "dependencies": { 317 | "minipass": "^7.0.3" 318 | }, 319 | "engines": { 320 | "node": "^14.17.0 || ^16.13.0 || >=18.0.0" 321 | } 322 | }, 323 | "node_modules/glob": { 324 | "version": "10.3.10", 325 | "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", 326 | "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", 327 | "dependencies": { 328 | "foreground-child": "^3.1.0", 329 | "jackspeak": "^2.3.5", 330 | "minimatch": "^9.0.1", 331 | "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", 332 | "path-scurry": "^1.10.1" 333 | }, 334 | "bin": { 335 | "glob": "dist/esm/bin.mjs" 336 | }, 337 | "engines": { 338 | "node": ">=16 || 14 >=14.17" 339 | }, 340 | "funding": { 341 | "url": "https://github.com/sponsors/isaacs" 342 | } 343 | }, 344 | "node_modules/graceful-fs": { 345 | "version": "4.2.6", 346 | "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", 347 | "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==" 348 | }, 349 | "node_modules/http-cache-semantics": { 350 | "version": "4.1.1", 351 | "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", 352 | "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==" 353 | }, 354 | "node_modules/http-proxy-agent": { 355 | "version": "7.0.0", 356 | "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.0.tgz", 357 | "integrity": "sha512-+ZT+iBxVUQ1asugqnD6oWoRiS25AkjNfG085dKJGtGxkdwLQrMKU5wJr2bOOFAXzKcTuqq+7fZlTMgG3SRfIYQ==", 358 | "dependencies": { 359 | "agent-base": "^7.1.0", 360 | "debug": "^4.3.4" 361 | }, 362 | "engines": { 363 | "node": ">= 14" 364 | } 365 | }, 366 | "node_modules/https-proxy-agent": { 367 | "version": "7.0.2", 368 | "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.2.tgz", 369 | "integrity": "sha512-NmLNjm6ucYwtcUmL7JQC1ZQ57LmHP4lT15FQ8D61nak1rO6DH+fz5qNK2Ap5UN4ZapYICE3/0KodcLYSPsPbaA==", 370 | "dependencies": { 371 | "agent-base": "^7.0.2", 372 | "debug": "4" 373 | }, 374 | "engines": { 375 | "node": ">= 14" 376 | } 377 | }, 378 | "node_modules/iconv-lite": { 379 | "version": "0.6.3", 380 | "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", 381 | "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", 382 | "optional": true, 383 | "dependencies": { 384 | "safer-buffer": ">= 2.1.2 < 3.0.0" 385 | }, 386 | "engines": { 387 | "node": ">=0.10.0" 388 | } 389 | }, 390 | "node_modules/imurmurhash": { 391 | "version": "0.1.4", 392 | "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", 393 | "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", 394 | "engines": { 395 | "node": ">=0.8.19" 396 | } 397 | }, 398 | "node_modules/indent-string": { 399 | "version": "4.0.0", 400 | "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", 401 | "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", 402 | "engines": { 403 | "node": ">=8" 404 | } 405 | }, 406 | "node_modules/ip": { 407 | "version": "2.0.0", 408 | "resolved": "https://registry.npmjs.org/ip/-/ip-2.0.0.tgz", 409 | "integrity": "sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==" 410 | }, 411 | "node_modules/is-fullwidth-code-point": { 412 | "version": "3.0.0", 413 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", 414 | "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", 415 | "engines": { 416 | "node": ">=8" 417 | } 418 | }, 419 | "node_modules/is-lambda": { 420 | "version": "1.0.1", 421 | "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", 422 | "integrity": "sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==" 423 | }, 424 | "node_modules/isexe": { 425 | "version": "3.1.1", 426 | "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", 427 | "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", 428 | "engines": { 429 | "node": ">=16" 430 | } 431 | }, 432 | "node_modules/jackspeak": { 433 | "version": "2.3.6", 434 | "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz", 435 | "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==", 436 | "dependencies": { 437 | "@isaacs/cliui": "^8.0.2" 438 | }, 439 | "engines": { 440 | "node": ">=14" 441 | }, 442 | "funding": { 443 | "url": "https://github.com/sponsors/isaacs" 444 | }, 445 | "optionalDependencies": { 446 | "@pkgjs/parseargs": "^0.11.0" 447 | } 448 | }, 449 | "node_modules/lru-cache": { 450 | "version": "10.1.0", 451 | "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.1.0.tgz", 452 | "integrity": "sha512-/1clY/ui8CzjKFyjdvwPWJUYKiFVXG2I2cY0ssG7h4+hwk+XOIX7ZSG9Q7TW8TW3Kp3BUSqgFWBLgL4PJ+Blag==", 453 | "engines": { 454 | "node": "14 || >=16.14" 455 | } 456 | }, 457 | "node_modules/make-fetch-happen": { 458 | "version": "13.0.0", 459 | "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-13.0.0.tgz", 460 | "integrity": "sha512-7ThobcL8brtGo9CavByQrQi+23aIfgYU++wg4B87AIS8Rb2ZBt/MEaDqzA00Xwv/jUjAjYkLHjVolYuTLKda2A==", 461 | "dependencies": { 462 | "@npmcli/agent": "^2.0.0", 463 | "cacache": "^18.0.0", 464 | "http-cache-semantics": "^4.1.1", 465 | "is-lambda": "^1.0.1", 466 | "minipass": "^7.0.2", 467 | "minipass-fetch": "^3.0.0", 468 | "minipass-flush": "^1.0.5", 469 | "minipass-pipeline": "^1.2.4", 470 | "negotiator": "^0.6.3", 471 | "promise-retry": "^2.0.1", 472 | "ssri": "^10.0.0" 473 | }, 474 | "engines": { 475 | "node": "^16.14.0 || >=18.0.0" 476 | } 477 | }, 478 | "node_modules/minimatch": { 479 | "version": "9.0.3", 480 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", 481 | "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", 482 | "dependencies": { 483 | "brace-expansion": "^2.0.1" 484 | }, 485 | "engines": { 486 | "node": ">=16 || 14 >=14.17" 487 | }, 488 | "funding": { 489 | "url": "https://github.com/sponsors/isaacs" 490 | } 491 | }, 492 | "node_modules/minipass": { 493 | "version": "7.0.4", 494 | "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", 495 | "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", 496 | "engines": { 497 | "node": ">=16 || 14 >=14.17" 498 | } 499 | }, 500 | "node_modules/minipass-collect": { 501 | "version": "2.0.1", 502 | "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-2.0.1.tgz", 503 | "integrity": "sha512-D7V8PO9oaz7PWGLbCACuI1qEOsq7UKfLotx/C0Aet43fCUB/wfQ7DYeq2oR/svFJGYDHPr38SHATeaj/ZoKHKw==", 504 | "dependencies": { 505 | "minipass": "^7.0.3" 506 | }, 507 | "engines": { 508 | "node": ">=16 || 14 >=14.17" 509 | } 510 | }, 511 | "node_modules/minipass-fetch": { 512 | "version": "3.0.4", 513 | "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.4.tgz", 514 | "integrity": "sha512-jHAqnA728uUpIaFm7NWsCnqKT6UqZz7GcI/bDpPATuwYyKwJwW0remxSCxUlKiEty+eopHGa3oc8WxgQ1FFJqg==", 515 | "dependencies": { 516 | "minipass": "^7.0.3", 517 | "minipass-sized": "^1.0.3", 518 | "minizlib": "^2.1.2" 519 | }, 520 | "engines": { 521 | "node": "^14.17.0 || ^16.13.0 || >=18.0.0" 522 | }, 523 | "optionalDependencies": { 524 | "encoding": "^0.1.13" 525 | } 526 | }, 527 | "node_modules/minipass-flush": { 528 | "version": "1.0.5", 529 | "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", 530 | "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", 531 | "dependencies": { 532 | "minipass": "^3.0.0" 533 | }, 534 | "engines": { 535 | "node": ">= 8" 536 | } 537 | }, 538 | "node_modules/minipass-flush/node_modules/minipass": { 539 | "version": "3.3.6", 540 | "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", 541 | "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", 542 | "dependencies": { 543 | "yallist": "^4.0.0" 544 | }, 545 | "engines": { 546 | "node": ">=8" 547 | } 548 | }, 549 | "node_modules/minipass-pipeline": { 550 | "version": "1.2.4", 551 | "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", 552 | "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", 553 | "dependencies": { 554 | "minipass": "^3.0.0" 555 | }, 556 | "engines": { 557 | "node": ">=8" 558 | } 559 | }, 560 | "node_modules/minipass-pipeline/node_modules/minipass": { 561 | "version": "3.3.6", 562 | "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", 563 | "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", 564 | "dependencies": { 565 | "yallist": "^4.0.0" 566 | }, 567 | "engines": { 568 | "node": ">=8" 569 | } 570 | }, 571 | "node_modules/minipass-sized": { 572 | "version": "1.0.3", 573 | "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", 574 | "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", 575 | "dependencies": { 576 | "minipass": "^3.0.0" 577 | }, 578 | "engines": { 579 | "node": ">=8" 580 | } 581 | }, 582 | "node_modules/minipass-sized/node_modules/minipass": { 583 | "version": "3.3.6", 584 | "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", 585 | "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", 586 | "dependencies": { 587 | "yallist": "^4.0.0" 588 | }, 589 | "engines": { 590 | "node": ">=8" 591 | } 592 | }, 593 | "node_modules/minizlib": { 594 | "version": "2.1.2", 595 | "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", 596 | "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", 597 | "dependencies": { 598 | "minipass": "^3.0.0", 599 | "yallist": "^4.0.0" 600 | }, 601 | "engines": { 602 | "node": ">= 8" 603 | } 604 | }, 605 | "node_modules/minizlib/node_modules/minipass": { 606 | "version": "3.3.6", 607 | "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", 608 | "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", 609 | "dependencies": { 610 | "yallist": "^4.0.0" 611 | }, 612 | "engines": { 613 | "node": ">=8" 614 | } 615 | }, 616 | "node_modules/mkdirp": { 617 | "version": "1.0.4", 618 | "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", 619 | "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", 620 | "bin": { 621 | "mkdirp": "bin/cmd.js" 622 | }, 623 | "engines": { 624 | "node": ">=10" 625 | } 626 | }, 627 | "node_modules/ms": { 628 | "version": "2.1.2", 629 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", 630 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" 631 | }, 632 | "node_modules/negotiator": { 633 | "version": "0.6.3", 634 | "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", 635 | "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", 636 | "engines": { 637 | "node": ">= 0.6" 638 | } 639 | }, 640 | "node_modules/node-addon-api": { 641 | "version": "7.0.0", 642 | "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.0.0.tgz", 643 | "integrity": "sha512-vgbBJTS4m5/KkE16t5Ly0WW9hz46swAstv0hYYwMtbG7AznRhNyfLRe8HZAiWIpcHzoO7HxhLuBQj9rJ/Ho0ZA==" 644 | }, 645 | "node_modules/node-gyp": { 646 | "version": "10.0.1", 647 | "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-10.0.1.tgz", 648 | "integrity": "sha512-gg3/bHehQfZivQVfqIyy8wTdSymF9yTyP4CJifK73imyNMU8AIGQE2pUa7dNWfmMeG9cDVF2eehiRMv0LC1iAg==", 649 | "dependencies": { 650 | "env-paths": "^2.2.0", 651 | "exponential-backoff": "^3.1.1", 652 | "glob": "^10.3.10", 653 | "graceful-fs": "^4.2.6", 654 | "make-fetch-happen": "^13.0.0", 655 | "nopt": "^7.0.0", 656 | "proc-log": "^3.0.0", 657 | "semver": "^7.3.5", 658 | "tar": "^6.1.2", 659 | "which": "^4.0.0" 660 | }, 661 | "bin": { 662 | "node-gyp": "bin/node-gyp.js" 663 | }, 664 | "engines": { 665 | "node": "^16.14.0 || >=18.0.0" 666 | } 667 | }, 668 | "node_modules/nopt": { 669 | "version": "7.2.0", 670 | "resolved": "https://registry.npmjs.org/nopt/-/nopt-7.2.0.tgz", 671 | "integrity": "sha512-CVDtwCdhYIvnAzFoJ6NJ6dX3oga9/HyciQDnG1vQDjSLMeKLJ4A93ZqYKDrgYSr1FBY5/hMYC+2VCi24pgpkGA==", 672 | "dependencies": { 673 | "abbrev": "^2.0.0" 674 | }, 675 | "bin": { 676 | "nopt": "bin/nopt.js" 677 | }, 678 | "engines": { 679 | "node": "^14.17.0 || ^16.13.0 || >=18.0.0" 680 | } 681 | }, 682 | "node_modules/p-map": { 683 | "version": "4.0.0", 684 | "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", 685 | "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", 686 | "dependencies": { 687 | "aggregate-error": "^3.0.0" 688 | }, 689 | "engines": { 690 | "node": ">=10" 691 | }, 692 | "funding": { 693 | "url": "https://github.com/sponsors/sindresorhus" 694 | } 695 | }, 696 | "node_modules/path-key": { 697 | "version": "3.1.1", 698 | "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", 699 | "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", 700 | "engines": { 701 | "node": ">=8" 702 | } 703 | }, 704 | "node_modules/path-scurry": { 705 | "version": "1.10.1", 706 | "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz", 707 | "integrity": "sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==", 708 | "dependencies": { 709 | "lru-cache": "^9.1.1 || ^10.0.0", 710 | "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" 711 | }, 712 | "engines": { 713 | "node": ">=16 || 14 >=14.17" 714 | }, 715 | "funding": { 716 | "url": "https://github.com/sponsors/isaacs" 717 | } 718 | }, 719 | "node_modules/proc-log": { 720 | "version": "3.0.0", 721 | "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-3.0.0.tgz", 722 | "integrity": "sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A==", 723 | "engines": { 724 | "node": "^14.17.0 || ^16.13.0 || >=18.0.0" 725 | } 726 | }, 727 | "node_modules/promise-retry": { 728 | "version": "2.0.1", 729 | "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", 730 | "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", 731 | "dependencies": { 732 | "err-code": "^2.0.2", 733 | "retry": "^0.12.0" 734 | }, 735 | "engines": { 736 | "node": ">=10" 737 | } 738 | }, 739 | "node_modules/retry": { 740 | "version": "0.12.0", 741 | "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", 742 | "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==", 743 | "engines": { 744 | "node": ">= 4" 745 | } 746 | }, 747 | "node_modules/safer-buffer": { 748 | "version": "2.1.2", 749 | "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", 750 | "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", 751 | "optional": true 752 | }, 753 | "node_modules/semver": { 754 | "version": "7.5.4", 755 | "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", 756 | "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", 757 | "dependencies": { 758 | "lru-cache": "^6.0.0" 759 | }, 760 | "bin": { 761 | "semver": "bin/semver.js" 762 | }, 763 | "engines": { 764 | "node": ">=10" 765 | } 766 | }, 767 | "node_modules/semver/node_modules/lru-cache": { 768 | "version": "6.0.0", 769 | "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", 770 | "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", 771 | "dependencies": { 772 | "yallist": "^4.0.0" 773 | }, 774 | "engines": { 775 | "node": ">=10" 776 | } 777 | }, 778 | "node_modules/shebang-command": { 779 | "version": "2.0.0", 780 | "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", 781 | "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", 782 | "dependencies": { 783 | "shebang-regex": "^3.0.0" 784 | }, 785 | "engines": { 786 | "node": ">=8" 787 | } 788 | }, 789 | "node_modules/shebang-regex": { 790 | "version": "3.0.0", 791 | "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", 792 | "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", 793 | "engines": { 794 | "node": ">=8" 795 | } 796 | }, 797 | "node_modules/signal-exit": { 798 | "version": "4.1.0", 799 | "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", 800 | "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", 801 | "engines": { 802 | "node": ">=14" 803 | }, 804 | "funding": { 805 | "url": "https://github.com/sponsors/isaacs" 806 | } 807 | }, 808 | "node_modules/smart-buffer": { 809 | "version": "4.2.0", 810 | "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", 811 | "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", 812 | "engines": { 813 | "node": ">= 6.0.0", 814 | "npm": ">= 3.0.0" 815 | } 816 | }, 817 | "node_modules/socks": { 818 | "version": "2.7.1", 819 | "resolved": "https://registry.npmjs.org/socks/-/socks-2.7.1.tgz", 820 | "integrity": "sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==", 821 | "dependencies": { 822 | "ip": "^2.0.0", 823 | "smart-buffer": "^4.2.0" 824 | }, 825 | "engines": { 826 | "node": ">= 10.13.0", 827 | "npm": ">= 3.0.0" 828 | } 829 | }, 830 | "node_modules/socks-proxy-agent": { 831 | "version": "8.0.2", 832 | "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.2.tgz", 833 | "integrity": "sha512-8zuqoLv1aP/66PHF5TqwJ7Czm3Yv32urJQHrVyhD7mmA6d61Zv8cIXQYPTWwmg6qlupnPvs/QKDmfa4P/qct2g==", 834 | "dependencies": { 835 | "agent-base": "^7.0.2", 836 | "debug": "^4.3.4", 837 | "socks": "^2.7.1" 838 | }, 839 | "engines": { 840 | "node": ">= 14" 841 | } 842 | }, 843 | "node_modules/ssri": { 844 | "version": "10.0.5", 845 | "resolved": "https://registry.npmjs.org/ssri/-/ssri-10.0.5.tgz", 846 | "integrity": "sha512-bSf16tAFkGeRlUNDjXu8FzaMQt6g2HZJrun7mtMbIPOddxt3GLMSz5VWUWcqTJUPfLEaDIepGxv+bYQW49596A==", 847 | "dependencies": { 848 | "minipass": "^7.0.3" 849 | }, 850 | "engines": { 851 | "node": "^14.17.0 || ^16.13.0 || >=18.0.0" 852 | } 853 | }, 854 | "node_modules/string-width": { 855 | "version": "5.1.2", 856 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", 857 | "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", 858 | "dependencies": { 859 | "eastasianwidth": "^0.2.0", 860 | "emoji-regex": "^9.2.2", 861 | "strip-ansi": "^7.0.1" 862 | }, 863 | "engines": { 864 | "node": ">=12" 865 | }, 866 | "funding": { 867 | "url": "https://github.com/sponsors/sindresorhus" 868 | } 869 | }, 870 | "node_modules/string-width-cjs": { 871 | "name": "string-width", 872 | "version": "4.2.3", 873 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", 874 | "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", 875 | "dependencies": { 876 | "emoji-regex": "^8.0.0", 877 | "is-fullwidth-code-point": "^3.0.0", 878 | "strip-ansi": "^6.0.1" 879 | }, 880 | "engines": { 881 | "node": ">=8" 882 | } 883 | }, 884 | "node_modules/string-width-cjs/node_modules/ansi-regex": { 885 | "version": "5.0.1", 886 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", 887 | "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", 888 | "engines": { 889 | "node": ">=8" 890 | } 891 | }, 892 | "node_modules/string-width-cjs/node_modules/emoji-regex": { 893 | "version": "8.0.0", 894 | "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", 895 | "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" 896 | }, 897 | "node_modules/string-width-cjs/node_modules/strip-ansi": { 898 | "version": "6.0.1", 899 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", 900 | "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", 901 | "dependencies": { 902 | "ansi-regex": "^5.0.1" 903 | }, 904 | "engines": { 905 | "node": ">=8" 906 | } 907 | }, 908 | "node_modules/strip-ansi": { 909 | "version": "7.1.0", 910 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", 911 | "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", 912 | "dependencies": { 913 | "ansi-regex": "^6.0.1" 914 | }, 915 | "engines": { 916 | "node": ">=12" 917 | }, 918 | "funding": { 919 | "url": "https://github.com/chalk/strip-ansi?sponsor=1" 920 | } 921 | }, 922 | "node_modules/strip-ansi-cjs": { 923 | "name": "strip-ansi", 924 | "version": "6.0.1", 925 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", 926 | "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", 927 | "dependencies": { 928 | "ansi-regex": "^5.0.1" 929 | }, 930 | "engines": { 931 | "node": ">=8" 932 | } 933 | }, 934 | "node_modules/strip-ansi-cjs/node_modules/ansi-regex": { 935 | "version": "5.0.1", 936 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", 937 | "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", 938 | "engines": { 939 | "node": ">=8" 940 | } 941 | }, 942 | "node_modules/tar": { 943 | "version": "6.2.0", 944 | "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.0.tgz", 945 | "integrity": "sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ==", 946 | "dependencies": { 947 | "chownr": "^2.0.0", 948 | "fs-minipass": "^2.0.0", 949 | "minipass": "^5.0.0", 950 | "minizlib": "^2.1.1", 951 | "mkdirp": "^1.0.3", 952 | "yallist": "^4.0.0" 953 | }, 954 | "engines": { 955 | "node": ">=10" 956 | } 957 | }, 958 | "node_modules/tar/node_modules/fs-minipass": { 959 | "version": "2.1.0", 960 | "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", 961 | "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", 962 | "dependencies": { 963 | "minipass": "^3.0.0" 964 | }, 965 | "engines": { 966 | "node": ">= 8" 967 | } 968 | }, 969 | "node_modules/tar/node_modules/fs-minipass/node_modules/minipass": { 970 | "version": "3.3.6", 971 | "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", 972 | "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", 973 | "dependencies": { 974 | "yallist": "^4.0.0" 975 | }, 976 | "engines": { 977 | "node": ">=8" 978 | } 979 | }, 980 | "node_modules/tar/node_modules/minipass": { 981 | "version": "5.0.0", 982 | "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", 983 | "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", 984 | "engines": { 985 | "node": ">=8" 986 | } 987 | }, 988 | "node_modules/typescript": { 989 | "version": "4.2.3", 990 | "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.2.3.tgz", 991 | "integrity": "sha512-qOcYwxaByStAWrBf4x0fibwZvMRG+r4cQoTjbPtUlrWjBHbmCAww1i448U0GJ+3cNNEtebDteo/cHOR3xJ4wEw==", 992 | "dev": true, 993 | "bin": { 994 | "tsc": "bin/tsc", 995 | "tsserver": "bin/tsserver" 996 | }, 997 | "engines": { 998 | "node": ">=4.2.0" 999 | } 1000 | }, 1001 | "node_modules/unique-filename": { 1002 | "version": "3.0.0", 1003 | "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-3.0.0.tgz", 1004 | "integrity": "sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g==", 1005 | "dependencies": { 1006 | "unique-slug": "^4.0.0" 1007 | }, 1008 | "engines": { 1009 | "node": "^14.17.0 || ^16.13.0 || >=18.0.0" 1010 | } 1011 | }, 1012 | "node_modules/unique-slug": { 1013 | "version": "4.0.0", 1014 | "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-4.0.0.tgz", 1015 | "integrity": "sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ==", 1016 | "dependencies": { 1017 | "imurmurhash": "^0.1.4" 1018 | }, 1019 | "engines": { 1020 | "node": "^14.17.0 || ^16.13.0 || >=18.0.0" 1021 | } 1022 | }, 1023 | "node_modules/which": { 1024 | "version": "4.0.0", 1025 | "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz", 1026 | "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", 1027 | "dependencies": { 1028 | "isexe": "^3.1.1" 1029 | }, 1030 | "bin": { 1031 | "node-which": "bin/which.js" 1032 | }, 1033 | "engines": { 1034 | "node": "^16.13.0 || >=18.0.0" 1035 | } 1036 | }, 1037 | "node_modules/wrap-ansi": { 1038 | "version": "8.1.0", 1039 | "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", 1040 | "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", 1041 | "dependencies": { 1042 | "ansi-styles": "^6.1.0", 1043 | "string-width": "^5.0.1", 1044 | "strip-ansi": "^7.0.1" 1045 | }, 1046 | "engines": { 1047 | "node": ">=12" 1048 | }, 1049 | "funding": { 1050 | "url": "https://github.com/chalk/wrap-ansi?sponsor=1" 1051 | } 1052 | }, 1053 | "node_modules/wrap-ansi-cjs": { 1054 | "name": "wrap-ansi", 1055 | "version": "7.0.0", 1056 | "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", 1057 | "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", 1058 | "dependencies": { 1059 | "ansi-styles": "^4.0.0", 1060 | "string-width": "^4.1.0", 1061 | "strip-ansi": "^6.0.0" 1062 | }, 1063 | "engines": { 1064 | "node": ">=10" 1065 | }, 1066 | "funding": { 1067 | "url": "https://github.com/chalk/wrap-ansi?sponsor=1" 1068 | } 1069 | }, 1070 | "node_modules/wrap-ansi-cjs/node_modules/ansi-regex": { 1071 | "version": "5.0.1", 1072 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", 1073 | "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", 1074 | "engines": { 1075 | "node": ">=8" 1076 | } 1077 | }, 1078 | "node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { 1079 | "version": "4.3.0", 1080 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", 1081 | "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", 1082 | "dependencies": { 1083 | "color-convert": "^2.0.1" 1084 | }, 1085 | "engines": { 1086 | "node": ">=8" 1087 | }, 1088 | "funding": { 1089 | "url": "https://github.com/chalk/ansi-styles?sponsor=1" 1090 | } 1091 | }, 1092 | "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { 1093 | "version": "8.0.0", 1094 | "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", 1095 | "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" 1096 | }, 1097 | "node_modules/wrap-ansi-cjs/node_modules/string-width": { 1098 | "version": "4.2.3", 1099 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", 1100 | "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", 1101 | "dependencies": { 1102 | "emoji-regex": "^8.0.0", 1103 | "is-fullwidth-code-point": "^3.0.0", 1104 | "strip-ansi": "^6.0.1" 1105 | }, 1106 | "engines": { 1107 | "node": ">=8" 1108 | } 1109 | }, 1110 | "node_modules/wrap-ansi-cjs/node_modules/strip-ansi": { 1111 | "version": "6.0.1", 1112 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", 1113 | "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", 1114 | "dependencies": { 1115 | "ansi-regex": "^5.0.1" 1116 | }, 1117 | "engines": { 1118 | "node": ">=8" 1119 | } 1120 | }, 1121 | "node_modules/yallist": { 1122 | "version": "4.0.0", 1123 | "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", 1124 | "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" 1125 | } 1126 | }, 1127 | "dependencies": { 1128 | "@isaacs/cliui": { 1129 | "version": "8.0.2", 1130 | "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", 1131 | "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", 1132 | "requires": { 1133 | "string-width": "^5.1.2", 1134 | "string-width-cjs": "npm:string-width@^4.2.0", 1135 | "strip-ansi": "^7.0.1", 1136 | "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", 1137 | "wrap-ansi": "^8.1.0", 1138 | "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" 1139 | } 1140 | }, 1141 | "@npmcli/agent": { 1142 | "version": "2.2.0", 1143 | "resolved": "https://registry.npmjs.org/@npmcli/agent/-/agent-2.2.0.tgz", 1144 | "integrity": "sha512-2yThA1Es98orMkpSLVqlDZAMPK3jHJhifP2gnNUdk1754uZ8yI5c+ulCoVG+WlntQA6MzhrURMXjSd9Z7dJ2/Q==", 1145 | "requires": { 1146 | "agent-base": "^7.1.0", 1147 | "http-proxy-agent": "^7.0.0", 1148 | "https-proxy-agent": "^7.0.1", 1149 | "lru-cache": "^10.0.1", 1150 | "socks-proxy-agent": "^8.0.1" 1151 | } 1152 | }, 1153 | "@npmcli/fs": { 1154 | "version": "3.1.0", 1155 | "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-3.1.0.tgz", 1156 | "integrity": "sha512-7kZUAaLscfgbwBQRbvdMYaZOWyMEcPTH/tJjnyAWJ/dvvs9Ef+CERx/qJb9GExJpl1qipaDGn7KqHnFGGixd0w==", 1157 | "requires": { 1158 | "semver": "^7.3.5" 1159 | } 1160 | }, 1161 | "@pkgjs/parseargs": { 1162 | "version": "0.11.0", 1163 | "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", 1164 | "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", 1165 | "optional": true 1166 | }, 1167 | "@types/node": { 1168 | "version": "14.14.35", 1169 | "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.35.tgz", 1170 | "integrity": "sha512-Lt+wj8NVPx0zUmUwumiVXapmaLUcAk3yPuHCFVXras9k5VT9TdhJqKqGVUQCD60OTMCl0qxJ57OiTL0Mic3Iag==", 1171 | "dev": true 1172 | }, 1173 | "abbrev": { 1174 | "version": "2.0.0", 1175 | "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-2.0.0.tgz", 1176 | "integrity": "sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ==" 1177 | }, 1178 | "agent-base": { 1179 | "version": "7.1.0", 1180 | "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.0.tgz", 1181 | "integrity": "sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==", 1182 | "requires": { 1183 | "debug": "^4.3.4" 1184 | } 1185 | }, 1186 | "aggregate-error": { 1187 | "version": "3.1.0", 1188 | "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", 1189 | "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", 1190 | "requires": { 1191 | "clean-stack": "^2.0.0", 1192 | "indent-string": "^4.0.0" 1193 | } 1194 | }, 1195 | "ansi-regex": { 1196 | "version": "6.0.1", 1197 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", 1198 | "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==" 1199 | }, 1200 | "ansi-styles": { 1201 | "version": "6.2.1", 1202 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", 1203 | "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==" 1204 | }, 1205 | "balanced-match": { 1206 | "version": "1.0.2", 1207 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", 1208 | "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" 1209 | }, 1210 | "bindings": { 1211 | "version": "1.5.0", 1212 | "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", 1213 | "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", 1214 | "requires": { 1215 | "file-uri-to-path": "1.0.0" 1216 | } 1217 | }, 1218 | "brace-expansion": { 1219 | "version": "2.0.1", 1220 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", 1221 | "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", 1222 | "requires": { 1223 | "balanced-match": "^1.0.0" 1224 | } 1225 | }, 1226 | "cacache": { 1227 | "version": "18.0.2", 1228 | "resolved": "https://registry.npmjs.org/cacache/-/cacache-18.0.2.tgz", 1229 | "integrity": "sha512-r3NU8h/P+4lVUHfeRw1dtgQYar3DZMm4/cm2bZgOvrFC/su7budSOeqh52VJIC4U4iG1WWwV6vRW0znqBvxNuw==", 1230 | "requires": { 1231 | "@npmcli/fs": "^3.1.0", 1232 | "fs-minipass": "^3.0.0", 1233 | "glob": "^10.2.2", 1234 | "lru-cache": "^10.0.1", 1235 | "minipass": "^7.0.3", 1236 | "minipass-collect": "^2.0.1", 1237 | "minipass-flush": "^1.0.5", 1238 | "minipass-pipeline": "^1.2.4", 1239 | "p-map": "^4.0.0", 1240 | "ssri": "^10.0.0", 1241 | "tar": "^6.1.11", 1242 | "unique-filename": "^3.0.0" 1243 | } 1244 | }, 1245 | "chownr": { 1246 | "version": "2.0.0", 1247 | "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", 1248 | "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==" 1249 | }, 1250 | "clean-stack": { 1251 | "version": "2.2.0", 1252 | "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", 1253 | "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==" 1254 | }, 1255 | "color-convert": { 1256 | "version": "2.0.1", 1257 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", 1258 | "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", 1259 | "requires": { 1260 | "color-name": "~1.1.4" 1261 | } 1262 | }, 1263 | "color-name": { 1264 | "version": "1.1.4", 1265 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", 1266 | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" 1267 | }, 1268 | "cross-spawn": { 1269 | "version": "7.0.3", 1270 | "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", 1271 | "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", 1272 | "requires": { 1273 | "path-key": "^3.1.0", 1274 | "shebang-command": "^2.0.0", 1275 | "which": "^2.0.1" 1276 | }, 1277 | "dependencies": { 1278 | "isexe": { 1279 | "version": "2.0.0", 1280 | "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", 1281 | "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" 1282 | }, 1283 | "which": { 1284 | "version": "2.0.2", 1285 | "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", 1286 | "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", 1287 | "requires": { 1288 | "isexe": "^2.0.0" 1289 | } 1290 | } 1291 | } 1292 | }, 1293 | "debug": { 1294 | "version": "4.3.4", 1295 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", 1296 | "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", 1297 | "requires": { 1298 | "ms": "2.1.2" 1299 | } 1300 | }, 1301 | "eastasianwidth": { 1302 | "version": "0.2.0", 1303 | "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", 1304 | "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==" 1305 | }, 1306 | "emoji-regex": { 1307 | "version": "9.2.2", 1308 | "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", 1309 | "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" 1310 | }, 1311 | "encoding": { 1312 | "version": "0.1.13", 1313 | "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", 1314 | "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", 1315 | "optional": true, 1316 | "requires": { 1317 | "iconv-lite": "^0.6.2" 1318 | } 1319 | }, 1320 | "env-paths": { 1321 | "version": "2.2.1", 1322 | "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", 1323 | "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==" 1324 | }, 1325 | "err-code": { 1326 | "version": "2.0.3", 1327 | "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", 1328 | "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==" 1329 | }, 1330 | "exponential-backoff": { 1331 | "version": "3.1.1", 1332 | "resolved": "https://registry.npmjs.org/exponential-backoff/-/exponential-backoff-3.1.1.tgz", 1333 | "integrity": "sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw==" 1334 | }, 1335 | "file-uri-to-path": { 1336 | "version": "1.0.0", 1337 | "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", 1338 | "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==" 1339 | }, 1340 | "foreground-child": { 1341 | "version": "3.1.1", 1342 | "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", 1343 | "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", 1344 | "requires": { 1345 | "cross-spawn": "^7.0.0", 1346 | "signal-exit": "^4.0.1" 1347 | } 1348 | }, 1349 | "fs-minipass": { 1350 | "version": "3.0.3", 1351 | "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-3.0.3.tgz", 1352 | "integrity": "sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw==", 1353 | "requires": { 1354 | "minipass": "^7.0.3" 1355 | } 1356 | }, 1357 | "glob": { 1358 | "version": "10.3.10", 1359 | "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", 1360 | "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", 1361 | "requires": { 1362 | "foreground-child": "^3.1.0", 1363 | "jackspeak": "^2.3.5", 1364 | "minimatch": "^9.0.1", 1365 | "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", 1366 | "path-scurry": "^1.10.1" 1367 | } 1368 | }, 1369 | "graceful-fs": { 1370 | "version": "4.2.6", 1371 | "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", 1372 | "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==" 1373 | }, 1374 | "http-cache-semantics": { 1375 | "version": "4.1.1", 1376 | "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", 1377 | "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==" 1378 | }, 1379 | "http-proxy-agent": { 1380 | "version": "7.0.0", 1381 | "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.0.tgz", 1382 | "integrity": "sha512-+ZT+iBxVUQ1asugqnD6oWoRiS25AkjNfG085dKJGtGxkdwLQrMKU5wJr2bOOFAXzKcTuqq+7fZlTMgG3SRfIYQ==", 1383 | "requires": { 1384 | "agent-base": "^7.1.0", 1385 | "debug": "^4.3.4" 1386 | } 1387 | }, 1388 | "https-proxy-agent": { 1389 | "version": "7.0.2", 1390 | "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.2.tgz", 1391 | "integrity": "sha512-NmLNjm6ucYwtcUmL7JQC1ZQ57LmHP4lT15FQ8D61nak1rO6DH+fz5qNK2Ap5UN4ZapYICE3/0KodcLYSPsPbaA==", 1392 | "requires": { 1393 | "agent-base": "^7.0.2", 1394 | "debug": "4" 1395 | } 1396 | }, 1397 | "iconv-lite": { 1398 | "version": "0.6.3", 1399 | "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", 1400 | "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", 1401 | "optional": true, 1402 | "requires": { 1403 | "safer-buffer": ">= 2.1.2 < 3.0.0" 1404 | } 1405 | }, 1406 | "imurmurhash": { 1407 | "version": "0.1.4", 1408 | "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", 1409 | "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==" 1410 | }, 1411 | "indent-string": { 1412 | "version": "4.0.0", 1413 | "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", 1414 | "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==" 1415 | }, 1416 | "ip": { 1417 | "version": "2.0.0", 1418 | "resolved": "https://registry.npmjs.org/ip/-/ip-2.0.0.tgz", 1419 | "integrity": "sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==" 1420 | }, 1421 | "is-fullwidth-code-point": { 1422 | "version": "3.0.0", 1423 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", 1424 | "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" 1425 | }, 1426 | "is-lambda": { 1427 | "version": "1.0.1", 1428 | "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", 1429 | "integrity": "sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==" 1430 | }, 1431 | "isexe": { 1432 | "version": "3.1.1", 1433 | "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", 1434 | "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==" 1435 | }, 1436 | "jackspeak": { 1437 | "version": "2.3.6", 1438 | "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz", 1439 | "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==", 1440 | "requires": { 1441 | "@isaacs/cliui": "^8.0.2", 1442 | "@pkgjs/parseargs": "^0.11.0" 1443 | } 1444 | }, 1445 | "lru-cache": { 1446 | "version": "10.1.0", 1447 | "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.1.0.tgz", 1448 | "integrity": "sha512-/1clY/ui8CzjKFyjdvwPWJUYKiFVXG2I2cY0ssG7h4+hwk+XOIX7ZSG9Q7TW8TW3Kp3BUSqgFWBLgL4PJ+Blag==" 1449 | }, 1450 | "make-fetch-happen": { 1451 | "version": "13.0.0", 1452 | "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-13.0.0.tgz", 1453 | "integrity": "sha512-7ThobcL8brtGo9CavByQrQi+23aIfgYU++wg4B87AIS8Rb2ZBt/MEaDqzA00Xwv/jUjAjYkLHjVolYuTLKda2A==", 1454 | "requires": { 1455 | "@npmcli/agent": "^2.0.0", 1456 | "cacache": "^18.0.0", 1457 | "http-cache-semantics": "^4.1.1", 1458 | "is-lambda": "^1.0.1", 1459 | "minipass": "^7.0.2", 1460 | "minipass-fetch": "^3.0.0", 1461 | "minipass-flush": "^1.0.5", 1462 | "minipass-pipeline": "^1.2.4", 1463 | "negotiator": "^0.6.3", 1464 | "promise-retry": "^2.0.1", 1465 | "ssri": "^10.0.0" 1466 | } 1467 | }, 1468 | "minimatch": { 1469 | "version": "9.0.3", 1470 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", 1471 | "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", 1472 | "requires": { 1473 | "brace-expansion": "^2.0.1" 1474 | } 1475 | }, 1476 | "minipass": { 1477 | "version": "7.0.4", 1478 | "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", 1479 | "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==" 1480 | }, 1481 | "minipass-collect": { 1482 | "version": "2.0.1", 1483 | "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-2.0.1.tgz", 1484 | "integrity": "sha512-D7V8PO9oaz7PWGLbCACuI1qEOsq7UKfLotx/C0Aet43fCUB/wfQ7DYeq2oR/svFJGYDHPr38SHATeaj/ZoKHKw==", 1485 | "requires": { 1486 | "minipass": "^7.0.3" 1487 | } 1488 | }, 1489 | "minipass-fetch": { 1490 | "version": "3.0.4", 1491 | "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.4.tgz", 1492 | "integrity": "sha512-jHAqnA728uUpIaFm7NWsCnqKT6UqZz7GcI/bDpPATuwYyKwJwW0remxSCxUlKiEty+eopHGa3oc8WxgQ1FFJqg==", 1493 | "requires": { 1494 | "encoding": "^0.1.13", 1495 | "minipass": "^7.0.3", 1496 | "minipass-sized": "^1.0.3", 1497 | "minizlib": "^2.1.2" 1498 | } 1499 | }, 1500 | "minipass-flush": { 1501 | "version": "1.0.5", 1502 | "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", 1503 | "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", 1504 | "requires": { 1505 | "minipass": "^3.0.0" 1506 | }, 1507 | "dependencies": { 1508 | "minipass": { 1509 | "version": "3.3.6", 1510 | "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", 1511 | "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", 1512 | "requires": { 1513 | "yallist": "^4.0.0" 1514 | } 1515 | } 1516 | } 1517 | }, 1518 | "minipass-pipeline": { 1519 | "version": "1.2.4", 1520 | "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", 1521 | "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", 1522 | "requires": { 1523 | "minipass": "^3.0.0" 1524 | }, 1525 | "dependencies": { 1526 | "minipass": { 1527 | "version": "3.3.6", 1528 | "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", 1529 | "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", 1530 | "requires": { 1531 | "yallist": "^4.0.0" 1532 | } 1533 | } 1534 | } 1535 | }, 1536 | "minipass-sized": { 1537 | "version": "1.0.3", 1538 | "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", 1539 | "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", 1540 | "requires": { 1541 | "minipass": "^3.0.0" 1542 | }, 1543 | "dependencies": { 1544 | "minipass": { 1545 | "version": "3.3.6", 1546 | "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", 1547 | "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", 1548 | "requires": { 1549 | "yallist": "^4.0.0" 1550 | } 1551 | } 1552 | } 1553 | }, 1554 | "minizlib": { 1555 | "version": "2.1.2", 1556 | "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", 1557 | "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", 1558 | "requires": { 1559 | "minipass": "^3.0.0", 1560 | "yallist": "^4.0.0" 1561 | }, 1562 | "dependencies": { 1563 | "minipass": { 1564 | "version": "3.3.6", 1565 | "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", 1566 | "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", 1567 | "requires": { 1568 | "yallist": "^4.0.0" 1569 | } 1570 | } 1571 | } 1572 | }, 1573 | "mkdirp": { 1574 | "version": "1.0.4", 1575 | "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", 1576 | "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" 1577 | }, 1578 | "ms": { 1579 | "version": "2.1.2", 1580 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", 1581 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" 1582 | }, 1583 | "negotiator": { 1584 | "version": "0.6.3", 1585 | "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", 1586 | "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==" 1587 | }, 1588 | "node-addon-api": { 1589 | "version": "7.0.0", 1590 | "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.0.0.tgz", 1591 | "integrity": "sha512-vgbBJTS4m5/KkE16t5Ly0WW9hz46swAstv0hYYwMtbG7AznRhNyfLRe8HZAiWIpcHzoO7HxhLuBQj9rJ/Ho0ZA==" 1592 | }, 1593 | "node-gyp": { 1594 | "version": "10.0.1", 1595 | "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-10.0.1.tgz", 1596 | "integrity": "sha512-gg3/bHehQfZivQVfqIyy8wTdSymF9yTyP4CJifK73imyNMU8AIGQE2pUa7dNWfmMeG9cDVF2eehiRMv0LC1iAg==", 1597 | "requires": { 1598 | "env-paths": "^2.2.0", 1599 | "exponential-backoff": "^3.1.1", 1600 | "glob": "^10.3.10", 1601 | "graceful-fs": "^4.2.6", 1602 | "make-fetch-happen": "^13.0.0", 1603 | "nopt": "^7.0.0", 1604 | "proc-log": "^3.0.0", 1605 | "semver": "^7.3.5", 1606 | "tar": "^6.1.2", 1607 | "which": "^4.0.0" 1608 | } 1609 | }, 1610 | "nopt": { 1611 | "version": "7.2.0", 1612 | "resolved": "https://registry.npmjs.org/nopt/-/nopt-7.2.0.tgz", 1613 | "integrity": "sha512-CVDtwCdhYIvnAzFoJ6NJ6dX3oga9/HyciQDnG1vQDjSLMeKLJ4A93ZqYKDrgYSr1FBY5/hMYC+2VCi24pgpkGA==", 1614 | "requires": { 1615 | "abbrev": "^2.0.0" 1616 | } 1617 | }, 1618 | "p-map": { 1619 | "version": "4.0.0", 1620 | "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", 1621 | "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", 1622 | "requires": { 1623 | "aggregate-error": "^3.0.0" 1624 | } 1625 | }, 1626 | "path-key": { 1627 | "version": "3.1.1", 1628 | "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", 1629 | "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" 1630 | }, 1631 | "path-scurry": { 1632 | "version": "1.10.1", 1633 | "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz", 1634 | "integrity": "sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==", 1635 | "requires": { 1636 | "lru-cache": "^9.1.1 || ^10.0.0", 1637 | "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" 1638 | } 1639 | }, 1640 | "proc-log": { 1641 | "version": "3.0.0", 1642 | "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-3.0.0.tgz", 1643 | "integrity": "sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A==" 1644 | }, 1645 | "promise-retry": { 1646 | "version": "2.0.1", 1647 | "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", 1648 | "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", 1649 | "requires": { 1650 | "err-code": "^2.0.2", 1651 | "retry": "^0.12.0" 1652 | } 1653 | }, 1654 | "retry": { 1655 | "version": "0.12.0", 1656 | "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", 1657 | "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==" 1658 | }, 1659 | "safer-buffer": { 1660 | "version": "2.1.2", 1661 | "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", 1662 | "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", 1663 | "optional": true 1664 | }, 1665 | "semver": { 1666 | "version": "7.5.4", 1667 | "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", 1668 | "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", 1669 | "requires": { 1670 | "lru-cache": "^6.0.0" 1671 | }, 1672 | "dependencies": { 1673 | "lru-cache": { 1674 | "version": "6.0.0", 1675 | "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", 1676 | "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", 1677 | "requires": { 1678 | "yallist": "^4.0.0" 1679 | } 1680 | } 1681 | } 1682 | }, 1683 | "shebang-command": { 1684 | "version": "2.0.0", 1685 | "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", 1686 | "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", 1687 | "requires": { 1688 | "shebang-regex": "^3.0.0" 1689 | } 1690 | }, 1691 | "shebang-regex": { 1692 | "version": "3.0.0", 1693 | "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", 1694 | "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==" 1695 | }, 1696 | "signal-exit": { 1697 | "version": "4.1.0", 1698 | "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", 1699 | "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==" 1700 | }, 1701 | "smart-buffer": { 1702 | "version": "4.2.0", 1703 | "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", 1704 | "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==" 1705 | }, 1706 | "socks": { 1707 | "version": "2.7.1", 1708 | "resolved": "https://registry.npmjs.org/socks/-/socks-2.7.1.tgz", 1709 | "integrity": "sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==", 1710 | "requires": { 1711 | "ip": "^2.0.0", 1712 | "smart-buffer": "^4.2.0" 1713 | } 1714 | }, 1715 | "socks-proxy-agent": { 1716 | "version": "8.0.2", 1717 | "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.2.tgz", 1718 | "integrity": "sha512-8zuqoLv1aP/66PHF5TqwJ7Czm3Yv32urJQHrVyhD7mmA6d61Zv8cIXQYPTWwmg6qlupnPvs/QKDmfa4P/qct2g==", 1719 | "requires": { 1720 | "agent-base": "^7.0.2", 1721 | "debug": "^4.3.4", 1722 | "socks": "^2.7.1" 1723 | } 1724 | }, 1725 | "ssri": { 1726 | "version": "10.0.5", 1727 | "resolved": "https://registry.npmjs.org/ssri/-/ssri-10.0.5.tgz", 1728 | "integrity": "sha512-bSf16tAFkGeRlUNDjXu8FzaMQt6g2HZJrun7mtMbIPOddxt3GLMSz5VWUWcqTJUPfLEaDIepGxv+bYQW49596A==", 1729 | "requires": { 1730 | "minipass": "^7.0.3" 1731 | } 1732 | }, 1733 | "string-width": { 1734 | "version": "5.1.2", 1735 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", 1736 | "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", 1737 | "requires": { 1738 | "eastasianwidth": "^0.2.0", 1739 | "emoji-regex": "^9.2.2", 1740 | "strip-ansi": "^7.0.1" 1741 | } 1742 | }, 1743 | "string-width-cjs": { 1744 | "version": "npm:string-width@4.2.3", 1745 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", 1746 | "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", 1747 | "requires": { 1748 | "emoji-regex": "^8.0.0", 1749 | "is-fullwidth-code-point": "^3.0.0", 1750 | "strip-ansi": "^6.0.1" 1751 | }, 1752 | "dependencies": { 1753 | "ansi-regex": { 1754 | "version": "5.0.1", 1755 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", 1756 | "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" 1757 | }, 1758 | "emoji-regex": { 1759 | "version": "8.0.0", 1760 | "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", 1761 | "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" 1762 | }, 1763 | "strip-ansi": { 1764 | "version": "6.0.1", 1765 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", 1766 | "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", 1767 | "requires": { 1768 | "ansi-regex": "^5.0.1" 1769 | } 1770 | } 1771 | } 1772 | }, 1773 | "strip-ansi": { 1774 | "version": "7.1.0", 1775 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", 1776 | "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", 1777 | "requires": { 1778 | "ansi-regex": "^6.0.1" 1779 | } 1780 | }, 1781 | "strip-ansi-cjs": { 1782 | "version": "npm:strip-ansi@6.0.1", 1783 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", 1784 | "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", 1785 | "requires": { 1786 | "ansi-regex": "^5.0.1" 1787 | }, 1788 | "dependencies": { 1789 | "ansi-regex": { 1790 | "version": "5.0.1", 1791 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", 1792 | "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" 1793 | } 1794 | } 1795 | }, 1796 | "tar": { 1797 | "version": "6.2.0", 1798 | "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.0.tgz", 1799 | "integrity": "sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ==", 1800 | "requires": { 1801 | "chownr": "^2.0.0", 1802 | "fs-minipass": "^2.0.0", 1803 | "minipass": "^5.0.0", 1804 | "minizlib": "^2.1.1", 1805 | "mkdirp": "^1.0.3", 1806 | "yallist": "^4.0.0" 1807 | }, 1808 | "dependencies": { 1809 | "fs-minipass": { 1810 | "version": "2.1.0", 1811 | "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", 1812 | "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", 1813 | "requires": { 1814 | "minipass": "^3.0.0" 1815 | }, 1816 | "dependencies": { 1817 | "minipass": { 1818 | "version": "3.3.6", 1819 | "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", 1820 | "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", 1821 | "requires": { 1822 | "yallist": "^4.0.0" 1823 | } 1824 | } 1825 | } 1826 | }, 1827 | "minipass": { 1828 | "version": "5.0.0", 1829 | "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", 1830 | "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==" 1831 | } 1832 | } 1833 | }, 1834 | "typescript": { 1835 | "version": "4.2.3", 1836 | "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.2.3.tgz", 1837 | "integrity": "sha512-qOcYwxaByStAWrBf4x0fibwZvMRG+r4cQoTjbPtUlrWjBHbmCAww1i448U0GJ+3cNNEtebDteo/cHOR3xJ4wEw==", 1838 | "dev": true 1839 | }, 1840 | "unique-filename": { 1841 | "version": "3.0.0", 1842 | "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-3.0.0.tgz", 1843 | "integrity": "sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g==", 1844 | "requires": { 1845 | "unique-slug": "^4.0.0" 1846 | } 1847 | }, 1848 | "unique-slug": { 1849 | "version": "4.0.0", 1850 | "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-4.0.0.tgz", 1851 | "integrity": "sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ==", 1852 | "requires": { 1853 | "imurmurhash": "^0.1.4" 1854 | } 1855 | }, 1856 | "which": { 1857 | "version": "4.0.0", 1858 | "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz", 1859 | "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", 1860 | "requires": { 1861 | "isexe": "^3.1.1" 1862 | } 1863 | }, 1864 | "wrap-ansi": { 1865 | "version": "8.1.0", 1866 | "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", 1867 | "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", 1868 | "requires": { 1869 | "ansi-styles": "^6.1.0", 1870 | "string-width": "^5.0.1", 1871 | "strip-ansi": "^7.0.1" 1872 | } 1873 | }, 1874 | "wrap-ansi-cjs": { 1875 | "version": "npm:wrap-ansi@7.0.0", 1876 | "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", 1877 | "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", 1878 | "requires": { 1879 | "ansi-styles": "^4.0.0", 1880 | "string-width": "^4.1.0", 1881 | "strip-ansi": "^6.0.0" 1882 | }, 1883 | "dependencies": { 1884 | "ansi-regex": { 1885 | "version": "5.0.1", 1886 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", 1887 | "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" 1888 | }, 1889 | "ansi-styles": { 1890 | "version": "4.3.0", 1891 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", 1892 | "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", 1893 | "requires": { 1894 | "color-convert": "^2.0.1" 1895 | } 1896 | }, 1897 | "emoji-regex": { 1898 | "version": "8.0.0", 1899 | "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", 1900 | "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" 1901 | }, 1902 | "string-width": { 1903 | "version": "4.2.3", 1904 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", 1905 | "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", 1906 | "requires": { 1907 | "emoji-regex": "^8.0.0", 1908 | "is-fullwidth-code-point": "^3.0.0", 1909 | "strip-ansi": "^6.0.1" 1910 | } 1911 | }, 1912 | "strip-ansi": { 1913 | "version": "6.0.1", 1914 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", 1915 | "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", 1916 | "requires": { 1917 | "ansi-regex": "^5.0.1" 1918 | } 1919 | } 1920 | } 1921 | }, 1922 | "yallist": { 1923 | "version": "4.0.0", 1924 | "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", 1925 | "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" 1926 | } 1927 | } 1928 | } 1929 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "global-mouse-events", 3 | "version": "1.2.0", 4 | "description": "Global mouse events listener for Node.js (Windows only)", 5 | "main": "index.js", 6 | "scripts": { 7 | "start": "node example.js", 8 | "rebuild": "node-gyp rebuild", 9 | "install": "npm run rebuild" 10 | }, 11 | "repository": { 12 | "type": "git", 13 | "url": "git://github.com/xanderfrangos/global-mouse-events.git" 14 | }, 15 | "keywords": [ 16 | "mouse-hooks", 17 | "windows", 18 | "mouse-events", 19 | "mouse", 20 | "windows-hooks", 21 | "hooks", 22 | "global", 23 | "node" 24 | ], 25 | "author": "xanderfrangos", 26 | "license": "MIT", 27 | "bugs": { 28 | "url": "https://github.com/xanderfrangos/global-mouse-events/issues" 29 | }, 30 | "homepage": "https://github.com/xanderfrangos/global-mouse-events#readme", 31 | "dependencies": { 32 | "bindings": "1.5.0", 33 | "node-addon-api": "^7.0.0", 34 | "node-gyp": "^10.0.1" 35 | }, 36 | "files": [ 37 | "index.js", 38 | "index.d.ts", 39 | "thread.js", 40 | "binding.gyp", 41 | "global-mouse-events.cc", 42 | "LICENSE", 43 | "example.js", 44 | "README.md" 45 | ], 46 | "devDependencies": { 47 | "@types/node": "^14.14.32", 48 | "typescript": "^4.2.3" 49 | } 50 | } 51 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "es5", 4 | "module": "commonjs", 5 | "strict": true, 6 | "esModuleInterop": true, 7 | "skipLibCheck": true, 8 | "forceConsistentCasingInFileNames": true 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "@isaacs/cliui@^8.0.2": 6 | version "8.0.2" 7 | resolved "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz" 8 | integrity sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA== 9 | dependencies: 10 | string-width "^5.1.2" 11 | string-width-cjs "npm:string-width@^4.2.0" 12 | strip-ansi "^7.0.1" 13 | strip-ansi-cjs "npm:strip-ansi@^6.0.1" 14 | wrap-ansi "^8.1.0" 15 | wrap-ansi-cjs "npm:wrap-ansi@^7.0.0" 16 | 17 | "@npmcli/agent@^2.0.0": 18 | version "2.2.0" 19 | resolved "https://registry.npmjs.org/@npmcli/agent/-/agent-2.2.0.tgz" 20 | integrity sha512-2yThA1Es98orMkpSLVqlDZAMPK3jHJhifP2gnNUdk1754uZ8yI5c+ulCoVG+WlntQA6MzhrURMXjSd9Z7dJ2/Q== 21 | dependencies: 22 | agent-base "^7.1.0" 23 | http-proxy-agent "^7.0.0" 24 | https-proxy-agent "^7.0.1" 25 | lru-cache "^10.0.1" 26 | socks-proxy-agent "^8.0.1" 27 | 28 | "@npmcli/fs@^3.1.0": 29 | version "3.1.0" 30 | resolved "https://registry.npmjs.org/@npmcli/fs/-/fs-3.1.0.tgz" 31 | integrity sha512-7kZUAaLscfgbwBQRbvdMYaZOWyMEcPTH/tJjnyAWJ/dvvs9Ef+CERx/qJb9GExJpl1qipaDGn7KqHnFGGixd0w== 32 | dependencies: 33 | semver "^7.3.5" 34 | 35 | "@pkgjs/parseargs@^0.11.0": 36 | version "0.11.0" 37 | resolved "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz" 38 | integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg== 39 | 40 | "@types/node@^14.14.32": 41 | version "14.14.35" 42 | resolved "https://registry.npmjs.org/@types/node/-/node-14.14.35.tgz" 43 | integrity sha512-Lt+wj8NVPx0zUmUwumiVXapmaLUcAk3yPuHCFVXras9k5VT9TdhJqKqGVUQCD60OTMCl0qxJ57OiTL0Mic3Iag== 44 | 45 | abbrev@^2.0.0: 46 | version "2.0.0" 47 | resolved "https://registry.npmjs.org/abbrev/-/abbrev-2.0.0.tgz" 48 | integrity sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ== 49 | 50 | agent-base@^7.0.2, agent-base@^7.1.0: 51 | version "7.1.0" 52 | resolved "https://registry.npmjs.org/agent-base/-/agent-base-7.1.0.tgz" 53 | integrity sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg== 54 | dependencies: 55 | debug "^4.3.4" 56 | 57 | aggregate-error@^3.0.0: 58 | version "3.1.0" 59 | resolved "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz" 60 | integrity sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA== 61 | dependencies: 62 | clean-stack "^2.0.0" 63 | indent-string "^4.0.0" 64 | 65 | ansi-regex@^5.0.1: 66 | version "5.0.1" 67 | resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz" 68 | integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== 69 | 70 | ansi-regex@^6.0.1: 71 | version "6.0.1" 72 | resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz" 73 | integrity sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA== 74 | 75 | ansi-styles@^4.0.0: 76 | version "4.3.0" 77 | resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz" 78 | integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== 79 | dependencies: 80 | color-convert "^2.0.1" 81 | 82 | ansi-styles@^6.1.0: 83 | version "6.2.1" 84 | resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz" 85 | integrity sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug== 86 | 87 | balanced-match@^1.0.0: 88 | version "1.0.2" 89 | resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz" 90 | integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== 91 | 92 | bindings@1.5.0: 93 | version "1.5.0" 94 | resolved "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz" 95 | integrity sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ== 96 | dependencies: 97 | file-uri-to-path "1.0.0" 98 | 99 | brace-expansion@^2.0.1: 100 | version "2.0.1" 101 | resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz" 102 | integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== 103 | dependencies: 104 | balanced-match "^1.0.0" 105 | 106 | cacache@^18.0.0: 107 | version "18.0.2" 108 | resolved "https://registry.npmjs.org/cacache/-/cacache-18.0.2.tgz" 109 | integrity sha512-r3NU8h/P+4lVUHfeRw1dtgQYar3DZMm4/cm2bZgOvrFC/su7budSOeqh52VJIC4U4iG1WWwV6vRW0znqBvxNuw== 110 | dependencies: 111 | "@npmcli/fs" "^3.1.0" 112 | fs-minipass "^3.0.0" 113 | glob "^10.2.2" 114 | lru-cache "^10.0.1" 115 | minipass "^7.0.3" 116 | minipass-collect "^2.0.1" 117 | minipass-flush "^1.0.5" 118 | minipass-pipeline "^1.2.4" 119 | p-map "^4.0.0" 120 | ssri "^10.0.0" 121 | tar "^6.1.11" 122 | unique-filename "^3.0.0" 123 | 124 | chownr@^2.0.0: 125 | version "2.0.0" 126 | resolved "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz" 127 | integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ== 128 | 129 | clean-stack@^2.0.0: 130 | version "2.2.0" 131 | resolved "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz" 132 | integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== 133 | 134 | color-convert@^2.0.1: 135 | version "2.0.1" 136 | resolved "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz" 137 | integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== 138 | dependencies: 139 | color-name "~1.1.4" 140 | 141 | color-name@~1.1.4: 142 | version "1.1.4" 143 | resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" 144 | integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== 145 | 146 | cross-spawn@^7.0.0: 147 | version "7.0.3" 148 | resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz" 149 | integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== 150 | dependencies: 151 | path-key "^3.1.0" 152 | shebang-command "^2.0.0" 153 | which "^2.0.1" 154 | 155 | debug@^4.3.4, debug@4: 156 | version "4.3.4" 157 | resolved "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz" 158 | integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== 159 | dependencies: 160 | ms "2.1.2" 161 | 162 | eastasianwidth@^0.2.0: 163 | version "0.2.0" 164 | resolved "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz" 165 | integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== 166 | 167 | emoji-regex@^8.0.0: 168 | version "8.0.0" 169 | resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz" 170 | integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== 171 | 172 | emoji-regex@^9.2.2: 173 | version "9.2.2" 174 | resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz" 175 | integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== 176 | 177 | encoding@^0.1.13: 178 | version "0.1.13" 179 | resolved "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz" 180 | integrity sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A== 181 | dependencies: 182 | iconv-lite "^0.6.2" 183 | 184 | env-paths@^2.2.0: 185 | version "2.2.1" 186 | resolved "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz" 187 | integrity sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A== 188 | 189 | err-code@^2.0.2: 190 | version "2.0.3" 191 | resolved "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz" 192 | integrity sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA== 193 | 194 | exponential-backoff@^3.1.1: 195 | version "3.1.1" 196 | resolved "https://registry.npmjs.org/exponential-backoff/-/exponential-backoff-3.1.1.tgz" 197 | integrity sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw== 198 | 199 | file-uri-to-path@1.0.0: 200 | version "1.0.0" 201 | resolved "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz" 202 | integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw== 203 | 204 | foreground-child@^3.1.0: 205 | version "3.1.1" 206 | resolved "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz" 207 | integrity sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg== 208 | dependencies: 209 | cross-spawn "^7.0.0" 210 | signal-exit "^4.0.1" 211 | 212 | fs-minipass@^2.0.0: 213 | version "2.1.0" 214 | resolved "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz" 215 | integrity sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg== 216 | dependencies: 217 | minipass "^3.0.0" 218 | 219 | fs-minipass@^3.0.0: 220 | version "3.0.3" 221 | resolved "https://registry.npmjs.org/fs-minipass/-/fs-minipass-3.0.3.tgz" 222 | integrity sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw== 223 | dependencies: 224 | minipass "^7.0.3" 225 | 226 | glob@^10.2.2, glob@^10.3.10: 227 | version "10.3.10" 228 | resolved "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz" 229 | integrity sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g== 230 | dependencies: 231 | foreground-child "^3.1.0" 232 | jackspeak "^2.3.5" 233 | minimatch "^9.0.1" 234 | minipass "^5.0.0 || ^6.0.2 || ^7.0.0" 235 | path-scurry "^1.10.1" 236 | 237 | graceful-fs@^4.2.6: 238 | version "4.2.6" 239 | resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz" 240 | integrity sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ== 241 | 242 | http-cache-semantics@^4.1.1: 243 | version "4.1.1" 244 | resolved "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz" 245 | integrity sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ== 246 | 247 | http-proxy-agent@^7.0.0: 248 | version "7.0.0" 249 | resolved "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.0.tgz" 250 | integrity sha512-+ZT+iBxVUQ1asugqnD6oWoRiS25AkjNfG085dKJGtGxkdwLQrMKU5wJr2bOOFAXzKcTuqq+7fZlTMgG3SRfIYQ== 251 | dependencies: 252 | agent-base "^7.1.0" 253 | debug "^4.3.4" 254 | 255 | https-proxy-agent@^7.0.1: 256 | version "7.0.2" 257 | resolved "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.2.tgz" 258 | integrity sha512-NmLNjm6ucYwtcUmL7JQC1ZQ57LmHP4lT15FQ8D61nak1rO6DH+fz5qNK2Ap5UN4ZapYICE3/0KodcLYSPsPbaA== 259 | dependencies: 260 | agent-base "^7.0.2" 261 | debug "4" 262 | 263 | iconv-lite@^0.6.2: 264 | version "0.6.3" 265 | resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz" 266 | integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw== 267 | dependencies: 268 | safer-buffer ">= 2.1.2 < 3.0.0" 269 | 270 | imurmurhash@^0.1.4: 271 | version "0.1.4" 272 | resolved "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz" 273 | integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== 274 | 275 | indent-string@^4.0.0: 276 | version "4.0.0" 277 | resolved "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz" 278 | integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== 279 | 280 | ip@^2.0.0: 281 | version "2.0.0" 282 | resolved "https://registry.npmjs.org/ip/-/ip-2.0.0.tgz" 283 | integrity sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ== 284 | 285 | is-fullwidth-code-point@^3.0.0: 286 | version "3.0.0" 287 | resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz" 288 | integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== 289 | 290 | is-lambda@^1.0.1: 291 | version "1.0.1" 292 | resolved "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz" 293 | integrity sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ== 294 | 295 | isexe@^2.0.0: 296 | version "2.0.0" 297 | resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz" 298 | integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== 299 | 300 | isexe@^3.1.1: 301 | version "3.1.1" 302 | resolved "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz" 303 | integrity sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ== 304 | 305 | jackspeak@^2.3.5: 306 | version "2.3.6" 307 | resolved "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz" 308 | integrity sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ== 309 | dependencies: 310 | "@isaacs/cliui" "^8.0.2" 311 | optionalDependencies: 312 | "@pkgjs/parseargs" "^0.11.0" 313 | 314 | lru-cache@^10.0.1, "lru-cache@^9.1.1 || ^10.0.0": 315 | version "10.1.0" 316 | resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-10.1.0.tgz" 317 | integrity sha512-/1clY/ui8CzjKFyjdvwPWJUYKiFVXG2I2cY0ssG7h4+hwk+XOIX7ZSG9Q7TW8TW3Kp3BUSqgFWBLgL4PJ+Blag== 318 | 319 | lru-cache@^6.0.0: 320 | version "6.0.0" 321 | resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz" 322 | integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== 323 | dependencies: 324 | yallist "^4.0.0" 325 | 326 | make-fetch-happen@^13.0.0: 327 | version "13.0.0" 328 | resolved "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-13.0.0.tgz" 329 | integrity sha512-7ThobcL8brtGo9CavByQrQi+23aIfgYU++wg4B87AIS8Rb2ZBt/MEaDqzA00Xwv/jUjAjYkLHjVolYuTLKda2A== 330 | dependencies: 331 | "@npmcli/agent" "^2.0.0" 332 | cacache "^18.0.0" 333 | http-cache-semantics "^4.1.1" 334 | is-lambda "^1.0.1" 335 | minipass "^7.0.2" 336 | minipass-fetch "^3.0.0" 337 | minipass-flush "^1.0.5" 338 | minipass-pipeline "^1.2.4" 339 | negotiator "^0.6.3" 340 | promise-retry "^2.0.1" 341 | ssri "^10.0.0" 342 | 343 | minimatch@^9.0.1: 344 | version "9.0.3" 345 | resolved "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz" 346 | integrity sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg== 347 | dependencies: 348 | brace-expansion "^2.0.1" 349 | 350 | minipass-collect@^2.0.1: 351 | version "2.0.1" 352 | resolved "https://registry.npmjs.org/minipass-collect/-/minipass-collect-2.0.1.tgz" 353 | integrity sha512-D7V8PO9oaz7PWGLbCACuI1qEOsq7UKfLotx/C0Aet43fCUB/wfQ7DYeq2oR/svFJGYDHPr38SHATeaj/ZoKHKw== 354 | dependencies: 355 | minipass "^7.0.3" 356 | 357 | minipass-fetch@^3.0.0: 358 | version "3.0.4" 359 | resolved "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.4.tgz" 360 | integrity sha512-jHAqnA728uUpIaFm7NWsCnqKT6UqZz7GcI/bDpPATuwYyKwJwW0remxSCxUlKiEty+eopHGa3oc8WxgQ1FFJqg== 361 | dependencies: 362 | minipass "^7.0.3" 363 | minipass-sized "^1.0.3" 364 | minizlib "^2.1.2" 365 | optionalDependencies: 366 | encoding "^0.1.13" 367 | 368 | minipass-flush@^1.0.5: 369 | version "1.0.5" 370 | resolved "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz" 371 | integrity sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw== 372 | dependencies: 373 | minipass "^3.0.0" 374 | 375 | minipass-pipeline@^1.2.4: 376 | version "1.2.4" 377 | resolved "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz" 378 | integrity sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A== 379 | dependencies: 380 | minipass "^3.0.0" 381 | 382 | minipass-sized@^1.0.3: 383 | version "1.0.3" 384 | resolved "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz" 385 | integrity sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g== 386 | dependencies: 387 | minipass "^3.0.0" 388 | 389 | minipass@^3.0.0: 390 | version "3.3.6" 391 | resolved "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz" 392 | integrity sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw== 393 | dependencies: 394 | yallist "^4.0.0" 395 | 396 | "minipass@^5.0.0 || ^6.0.2 || ^7.0.0", minipass@^7.0.2, minipass@^7.0.3: 397 | version "7.0.4" 398 | resolved "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz" 399 | integrity sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ== 400 | 401 | minipass@^5.0.0: 402 | version "5.0.0" 403 | resolved "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz" 404 | integrity sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ== 405 | 406 | minizlib@^2.1.1, minizlib@^2.1.2: 407 | version "2.1.2" 408 | resolved "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz" 409 | integrity sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg== 410 | dependencies: 411 | minipass "^3.0.0" 412 | yallist "^4.0.0" 413 | 414 | mkdirp@^1.0.3: 415 | version "1.0.4" 416 | resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz" 417 | integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== 418 | 419 | ms@2.1.2: 420 | version "2.1.2" 421 | resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz" 422 | integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== 423 | 424 | negotiator@^0.6.3: 425 | version "0.6.3" 426 | resolved "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz" 427 | integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== 428 | 429 | node-addon-api@^7.0.0: 430 | version "7.0.0" 431 | resolved "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.0.0.tgz" 432 | integrity sha512-vgbBJTS4m5/KkE16t5Ly0WW9hz46swAstv0hYYwMtbG7AznRhNyfLRe8HZAiWIpcHzoO7HxhLuBQj9rJ/Ho0ZA== 433 | 434 | node-gyp@^10.0.1: 435 | version "10.0.1" 436 | resolved "https://registry.npmjs.org/node-gyp/-/node-gyp-10.0.1.tgz" 437 | integrity sha512-gg3/bHehQfZivQVfqIyy8wTdSymF9yTyP4CJifK73imyNMU8AIGQE2pUa7dNWfmMeG9cDVF2eehiRMv0LC1iAg== 438 | dependencies: 439 | env-paths "^2.2.0" 440 | exponential-backoff "^3.1.1" 441 | glob "^10.3.10" 442 | graceful-fs "^4.2.6" 443 | make-fetch-happen "^13.0.0" 444 | nopt "^7.0.0" 445 | proc-log "^3.0.0" 446 | semver "^7.3.5" 447 | tar "^6.1.2" 448 | which "^4.0.0" 449 | 450 | nopt@^7.0.0: 451 | version "7.2.0" 452 | resolved "https://registry.npmjs.org/nopt/-/nopt-7.2.0.tgz" 453 | integrity sha512-CVDtwCdhYIvnAzFoJ6NJ6dX3oga9/HyciQDnG1vQDjSLMeKLJ4A93ZqYKDrgYSr1FBY5/hMYC+2VCi24pgpkGA== 454 | dependencies: 455 | abbrev "^2.0.0" 456 | 457 | p-map@^4.0.0: 458 | version "4.0.0" 459 | resolved "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz" 460 | integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ== 461 | dependencies: 462 | aggregate-error "^3.0.0" 463 | 464 | path-key@^3.1.0: 465 | version "3.1.1" 466 | resolved "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz" 467 | integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== 468 | 469 | path-scurry@^1.10.1: 470 | version "1.10.1" 471 | resolved "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz" 472 | integrity sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ== 473 | dependencies: 474 | lru-cache "^9.1.1 || ^10.0.0" 475 | minipass "^5.0.0 || ^6.0.2 || ^7.0.0" 476 | 477 | proc-log@^3.0.0: 478 | version "3.0.0" 479 | resolved "https://registry.npmjs.org/proc-log/-/proc-log-3.0.0.tgz" 480 | integrity sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A== 481 | 482 | promise-retry@^2.0.1: 483 | version "2.0.1" 484 | resolved "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz" 485 | integrity sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g== 486 | dependencies: 487 | err-code "^2.0.2" 488 | retry "^0.12.0" 489 | 490 | retry@^0.12.0: 491 | version "0.12.0" 492 | resolved "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz" 493 | integrity sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow== 494 | 495 | "safer-buffer@>= 2.1.2 < 3.0.0": 496 | version "2.1.2" 497 | resolved "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz" 498 | integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== 499 | 500 | semver@^7.3.5: 501 | version "7.5.4" 502 | resolved "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz" 503 | integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== 504 | dependencies: 505 | lru-cache "^6.0.0" 506 | 507 | shebang-command@^2.0.0: 508 | version "2.0.0" 509 | resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz" 510 | integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== 511 | dependencies: 512 | shebang-regex "^3.0.0" 513 | 514 | shebang-regex@^3.0.0: 515 | version "3.0.0" 516 | resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz" 517 | integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== 518 | 519 | signal-exit@^4.0.1: 520 | version "4.1.0" 521 | resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz" 522 | integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== 523 | 524 | smart-buffer@^4.2.0: 525 | version "4.2.0" 526 | resolved "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz" 527 | integrity sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg== 528 | 529 | socks-proxy-agent@^8.0.1: 530 | version "8.0.2" 531 | resolved "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.2.tgz" 532 | integrity sha512-8zuqoLv1aP/66PHF5TqwJ7Czm3Yv32urJQHrVyhD7mmA6d61Zv8cIXQYPTWwmg6qlupnPvs/QKDmfa4P/qct2g== 533 | dependencies: 534 | agent-base "^7.0.2" 535 | debug "^4.3.4" 536 | socks "^2.7.1" 537 | 538 | socks@^2.7.1: 539 | version "2.7.1" 540 | resolved "https://registry.npmjs.org/socks/-/socks-2.7.1.tgz" 541 | integrity sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ== 542 | dependencies: 543 | ip "^2.0.0" 544 | smart-buffer "^4.2.0" 545 | 546 | ssri@^10.0.0: 547 | version "10.0.5" 548 | resolved "https://registry.npmjs.org/ssri/-/ssri-10.0.5.tgz" 549 | integrity sha512-bSf16tAFkGeRlUNDjXu8FzaMQt6g2HZJrun7mtMbIPOddxt3GLMSz5VWUWcqTJUPfLEaDIepGxv+bYQW49596A== 550 | dependencies: 551 | minipass "^7.0.3" 552 | 553 | "string-width-cjs@npm:string-width@^4.2.0": 554 | version "4.2.3" 555 | resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz" 556 | integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== 557 | dependencies: 558 | emoji-regex "^8.0.0" 559 | is-fullwidth-code-point "^3.0.0" 560 | strip-ansi "^6.0.1" 561 | 562 | string-width@^4.1.0: 563 | version "4.2.3" 564 | resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz" 565 | integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== 566 | dependencies: 567 | emoji-regex "^8.0.0" 568 | is-fullwidth-code-point "^3.0.0" 569 | strip-ansi "^6.0.1" 570 | 571 | string-width@^5.0.1, string-width@^5.1.2: 572 | version "5.1.2" 573 | resolved "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz" 574 | integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA== 575 | dependencies: 576 | eastasianwidth "^0.2.0" 577 | emoji-regex "^9.2.2" 578 | strip-ansi "^7.0.1" 579 | 580 | "strip-ansi-cjs@npm:strip-ansi@^6.0.1": 581 | version "6.0.1" 582 | resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz" 583 | integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== 584 | dependencies: 585 | ansi-regex "^5.0.1" 586 | 587 | strip-ansi@^6.0.0, strip-ansi@^6.0.1: 588 | version "6.0.1" 589 | resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz" 590 | integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== 591 | dependencies: 592 | ansi-regex "^5.0.1" 593 | 594 | strip-ansi@^7.0.1: 595 | version "7.1.0" 596 | resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz" 597 | integrity sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ== 598 | dependencies: 599 | ansi-regex "^6.0.1" 600 | 601 | tar@^6.1.11, tar@^6.1.2: 602 | version "6.2.0" 603 | resolved "https://registry.npmjs.org/tar/-/tar-6.2.0.tgz" 604 | integrity sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ== 605 | dependencies: 606 | chownr "^2.0.0" 607 | fs-minipass "^2.0.0" 608 | minipass "^5.0.0" 609 | minizlib "^2.1.1" 610 | mkdirp "^1.0.3" 611 | yallist "^4.0.0" 612 | 613 | typescript@^4.2.3: 614 | version "4.2.3" 615 | resolved "https://registry.npmjs.org/typescript/-/typescript-4.2.3.tgz" 616 | integrity sha512-qOcYwxaByStAWrBf4x0fibwZvMRG+r4cQoTjbPtUlrWjBHbmCAww1i448U0GJ+3cNNEtebDteo/cHOR3xJ4wEw== 617 | 618 | unique-filename@^3.0.0: 619 | version "3.0.0" 620 | resolved "https://registry.npmjs.org/unique-filename/-/unique-filename-3.0.0.tgz" 621 | integrity sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g== 622 | dependencies: 623 | unique-slug "^4.0.0" 624 | 625 | unique-slug@^4.0.0: 626 | version "4.0.0" 627 | resolved "https://registry.npmjs.org/unique-slug/-/unique-slug-4.0.0.tgz" 628 | integrity sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ== 629 | dependencies: 630 | imurmurhash "^0.1.4" 631 | 632 | which@^2.0.1: 633 | version "2.0.2" 634 | resolved "https://registry.npmjs.org/which/-/which-2.0.2.tgz" 635 | integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== 636 | dependencies: 637 | isexe "^2.0.0" 638 | 639 | which@^4.0.0: 640 | version "4.0.0" 641 | resolved "https://registry.npmjs.org/which/-/which-4.0.0.tgz" 642 | integrity sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg== 643 | dependencies: 644 | isexe "^3.1.1" 645 | 646 | "wrap-ansi-cjs@npm:wrap-ansi@^7.0.0": 647 | version "7.0.0" 648 | resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz" 649 | integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== 650 | dependencies: 651 | ansi-styles "^4.0.0" 652 | string-width "^4.1.0" 653 | strip-ansi "^6.0.0" 654 | 655 | wrap-ansi@^8.1.0: 656 | version "8.1.0" 657 | resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz" 658 | integrity sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ== 659 | dependencies: 660 | ansi-styles "^6.1.0" 661 | string-width "^5.0.1" 662 | strip-ansi "^7.0.1" 663 | 664 | yallist@^4.0.0: 665 | version "4.0.0" 666 | resolved "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz" 667 | integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== 668 | --------------------------------------------------------------------------------