├── .editorconfig ├── .github └── workflows │ └── nodejs.yml ├── .gitignore ├── .npmignore ├── .travis.yml ├── HISTORY.md ├── LICENSE ├── README.md ├── bin └── find-process.js ├── example ├── netstat.md └── process.md ├── index.d.ts ├── index.js ├── lib ├── find.js ├── find_pid.js ├── find_process.js ├── logger.js └── utils.js ├── package.json ├── pnpm-lock.yaml └── test ├── find.test.js └── fixtures ├── child_process.js └── listen_port.js /.editorconfig: -------------------------------------------------------------------------------- 1 | # http://editorconfig.org 2 | root = true 3 | 4 | [*] 5 | indent_style = space 6 | indent_size = 2 7 | end_of_line = lf 8 | charset = utf-8 9 | trim_trailing_whitespace = true 10 | insert_final_newline = true 11 | 12 | [*.md] 13 | trim_trailing_whitespace = false 14 | 15 | [Makefile] 16 | indent_style = tab 17 | -------------------------------------------------------------------------------- /.github/workflows/nodejs.yml: -------------------------------------------------------------------------------- 1 | # This workflow will do a clean install of node dependencies, build the source code and run tests across different versions of node 2 | # For more information see: https://help.github.com/actions/language-and-framework-guides/using-nodejs-with-github-actions 3 | 4 | name: Node.js CI 5 | 6 | on: 7 | push: 8 | branches: [ master ] 9 | pull_request: 10 | branches: [ master ] 11 | 12 | jobs: 13 | build: 14 | runs-on: ${{ matrix.os }} 15 | strategy: 16 | matrix: 17 | os: [ubuntu-latest, windows-latest, macos-latest] 18 | node: [16, 18, 20] 19 | 20 | steps: 21 | - uses: actions/checkout@v2 22 | - name: Use Node.js ${{ matrix.node }} 23 | uses: actions/setup-node@v1 24 | with: 25 | node-version: ${{ matrix.node }} 26 | - run: npm install 27 | - run: npm run build --if-present 28 | - run: npm test 29 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | 2 | # Logs 3 | logs 4 | *.log 5 | npm-debug.log* 6 | 7 | # Runtime data 8 | pids 9 | *.pid 10 | *.seed 11 | 12 | # Directory for instrumented libs generated by jscoverage/JSCover 13 | lib-cov 14 | 15 | # Coverage directory used by tools like istanbul 16 | coverage 17 | 18 | # Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) 19 | .grunt 20 | 21 | # node-waf configuration 22 | .lock-wscript 23 | 24 | # Compiled binary addons (http://nodejs.org/api/addons.html) 25 | build/Release 26 | 27 | # Dependency directory 28 | node_modules 29 | 30 | # Optional npm cache directory 31 | .npm 32 | 33 | # Optional REPL history 34 | .node_repl_history 35 | 36 | 37 | .justconf 38 | 39 | .vscode -------------------------------------------------------------------------------- /.npmignore: -------------------------------------------------------------------------------- 1 | *.log 2 | test/ 3 | docs/ 4 | example/ 5 | examples/ 6 | coverage/ 7 | node_modules/ 8 | workbench/ 9 | .npmignore 10 | .editorconfig 11 | .travis.yml 12 | .jshintrc 13 | .jshintignore 14 | 15 | 16 | .justconf 17 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | sudo: required 2 | language: node_js 3 | node_js: 4 | - "5.0" 5 | - "4.2" 6 | - "4.1" 7 | - "4.0" 8 | - "stable" 9 | -------------------------------------------------------------------------------- /HISTORY.md: -------------------------------------------------------------------------------- 1 | 2 | 1.4.7 / 2021-11-18 3 | ================== 4 | 5 | * chore: bump to 1.4.7 6 | * fix: fix undefined issue [#40](http://github.com/yibn2008/find-process/issues/40) 7 | * fix: fix github actions 8 | * fix: fix install method 9 | 10 | 1.4.6 / 2021-11-18 11 | ================== 12 | 13 | * chore: bump to 1.4.6 14 | * fix: fix number check issue 15 | 16 | 1.4.5 / 2021-09-21 17 | ================== 18 | 19 | * chore: bump to 1.4.5 20 | * fix: fix find-process 21 | * chore(deps): bump path-parse from 1.0.6 to 1.0.7 22 | * chore(deps): bump y18n from 4.0.0 to 4.0.1 23 | 24 | 1.4.4 / 2020-10-22 25 | ================== 26 | 27 | * chore: bump to 1.4.4 28 | * chore(deps): bump lodash from 4.17.15 to 4.17.20 29 | * fix: Security updates, Windows unit tests 30 | 31 | 1.4.3 / 2019-11-15 32 | ================== 33 | 34 | * chore: bump to 1.4.3 35 | * fix: fix [#30](http://github.com/yibn2008/find-process/issues/30) 36 | 37 | 1.4.2 / 2019-06-14 38 | ================== 39 | 40 | * chore: bump to 1.4.2 41 | 42 | 1.4.1 / 2019-03-22 43 | ================== 44 | 45 | * chore: bump to 1.4.1 46 | * fix: fix issue [#9](http://github.com/yibn2008/find-process/issues/9) 47 | 48 | 1.4.0 / 2019-03-22 49 | ================== 50 | 51 | * chore: bump to 1.4.0 52 | * feat: throw error when run on *nix system 53 | 54 | 1.3.0 / 2019-03-22 55 | ================== 56 | 57 | * chore: bump to 1.3.0 58 | * feat: support executable path 59 | * docs: add bin prop to get execute path 60 | 61 | 1.2.3 / 2019-03-22 62 | ================== 63 | 64 | * chore: bump to 1.2.3 65 | 66 | 1.2.2 / 2019-03-22 67 | ================== 68 | 69 | * fix: fix name issue 70 | * chore: bump to 1.2.2 71 | 72 | 1.2.1 / 2018-11-15 73 | ================== 74 | 75 | * chore: add changelog 76 | 77 | 1.2.0 / 2018-10-19 78 | ================== 79 | 80 | * fix some bugs 81 | * support `android` platform 82 | * add `strict` mode when finding by `name` 83 | * for `pid`, `ppid`, `uid`, `gid`, always return number 84 | * add official type declaration. 85 | 86 | 87 | 1.1.4 / 2018-10-19 88 | ================== 89 | 90 | * chore: bump to 1.1.4 91 | 92 | 1.1.3 / 2018-08-20 93 | ================== 94 | 95 | * chore: bump to 1.1.3 96 | 97 | 1.1.2 / 2018-08-14 98 | ================== 99 | 100 | * chore: bump to 1.1.2 101 | 102 | 1.1.1 / 2018-04-16 103 | ================== 104 | 105 | * fix: add ignore config 106 | * chore: bump to 1.1.1 107 | 108 | 1.1.0 / 2017-07-14 109 | ================== 110 | 111 | * chore: bump to 1.1.0 112 | * feat: add cli bin support 113 | * fix: fix issue [#2](http://github.com/yibn2008/find-process/issues/2) 114 | 115 | 1.0.5 / 2016-10-13 116 | ================== 117 | 118 | * fix: incorrect error info 119 | 120 | 1.0.4 / 2016-03-20 121 | ================== 122 | 123 | * fix #1 124 | 125 | 1.0.3 / 2016-02-04 126 | ================== 127 | 128 | * Use standard coding style 129 | * Remove unused deps 130 | 131 | 1.0.2 / 2016-02-02 132 | ================== 133 | 134 | * Add gitignore keyword 135 | * Add prepublish hook 136 | * Fix: Error occured when pid not exists 137 | 138 | 1.0.1 / 2016-01-24 139 | ================== 140 | 141 | * Initial version, support find process by port/pid/name 142 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2016 Zoujie 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 | # find-process 2 | 3 | [![Node.js CI](https://github.com/yibn2008/find-process/actions/workflows/nodejs.yml/badge.svg)](https://github.com/yibn2008/find-process/actions/workflows/nodejs.yml) 4 | [![js-standard-style](https://img.shields.io/badge/code%20style-standard-brightgreen.svg)](http://standardjs.com/) 5 | 6 | With find-process, you can: 7 | 8 | - find the process which is listening specified port 9 | - find the process by pid 10 | - find the process by given name or name pattern 11 | 12 | We have covered the difference of main OS platform, including **Mac OSX**, **Linux**, **Windows** 13 | and **Android** (with [Termux](https://termux.com)). 14 | 15 | ## CLI 16 | 17 | Install find-process as a CLI tool: 18 | 19 | ```sh 20 | $ npm install find-process -g 21 | ``` 22 | 23 | Usage: 24 | 25 | ```sh 26 | 27 | Usage: find-process [options] 28 | 29 | 30 | Options: 31 | 32 | -V, --version output the version number 33 | -t, --type find process by keyword type (pid|port|name) 34 | -p, --port find process by port 35 | -h, --help output usage information 36 | 37 | Examples: 38 | 39 | $ find-process node # find by name "node" 40 | $ find-process 111 # find by pid "111" 41 | $ find-process -p 80 # find by port "80" 42 | $ find-process -t port 80 # find by port "80" 43 | 44 | ``` 45 | 46 | Example: 47 | 48 | ![image](https://user-images.githubusercontent.com/4136679/62670202-f49a6b00-b9c4-11e9-8692-7003c6c31a8a.png) 49 | 50 | ## Node API 51 | 52 | You can use npm to install: 53 | 54 | ```sh 55 | $ npm install find-process --save 56 | ``` 57 | 58 | Usage: 59 | 60 | ```javascript 61 | const find = require('find-process'); 62 | 63 | find('pid', 12345) 64 | .then(function (list) { 65 | console.log(list); 66 | }, function (err) { 67 | console.log(err.stack || err); 68 | }) 69 | ``` 70 | 71 | ## Synopsis 72 | 73 | ``` 74 | Promise find(type, value, [options]) 75 | ``` 76 | 77 | **Arguments** 78 | 79 | - `type` the type of find, support: *port|pid|name* 80 | - `value` the value of type, can be RegExp if type is *name* 81 | - `options` this can either be the *object* described below or *boolean* to just set strict mode 82 | - `options.strict` the optional strict mode is for checking *port*, *pid*, or *name* exactly matches the given one. (on Windows, `.exe` can be omitted) 83 | - `options.logLevel` set the logging level to [`trace|debug|info|warn|error`](https://github.com/pimterry/loglevel#documentation). In practice this lets you silence a netstat warning on Linux. 84 | 85 | **Return** 86 | 87 | The return value of find-process is Promise, if you use **co** you can use `yield find(type, value)` directly. 88 | 89 | The resolved value of promise is an array list of process (`[]` means it may be missing on some platforms): 90 | 91 | ``` 92 | [{ 93 | pid: , 94 | ppid: [parent process id], 95 | uid: [user id (for *nix)], 96 | gid: [user group id (for *nix)], 97 | name: , 98 | bin: , 99 | cmd: 100 | }, ...] 101 | ``` 102 | 103 | ## Example 104 | 105 | Find process which is listening port 80. 106 | 107 | ```javascript 108 | const find = require('find-process'); 109 | 110 | find('port', 80) 111 | .then(function (list) { 112 | if (!list.length) { 113 | console.log('port 80 is free now'); 114 | } else { 115 | console.log('%s is listening port 80', list[0].name); 116 | } 117 | }) 118 | ``` 119 | 120 | Find process by pid. 121 | 122 | ```javascript 123 | const find = require('find-process'); 124 | 125 | find('pid', 12345) 126 | .then(function (list) { 127 | console.log(list); 128 | }, function (err) { 129 | console.log(err.stack || err); 130 | }); 131 | ``` 132 | 133 | Find all nginx process. 134 | 135 | ```javascript 136 | const find = require('find-process'); 137 | 138 | find('name', 'nginx', true) 139 | .then(function (list) { 140 | console.log('there are %s nginx process(es)', list.length); 141 | }); 142 | ``` 143 | 144 | Find all nginx processes on Linux without logging a warning when run as a user who isn't root. 145 | 146 | ```javascript 147 | const find = require('find-process'); 148 | 149 | find('name', 'nginx', {strict: true, logLevel: 'error'}) 150 | .then(function (list) { 151 | console.log('there are %s nginx process(es)', list.length); 152 | }); 153 | ``` 154 | ## Contributing 155 | 156 | We're welcome to receive Pull Request of bugfix or new feature, but please check the list before sending PR: 157 | 158 | - **Coding Style** Please follow the [Standard Style](https://github.com/feross/standard) 159 | - **Documentation** Add documentation for every API change 160 | - **Unit test** Please add unit test for bugfix or new feature 161 | 162 | ## License 163 | 164 | [MIT](LICENSE) 165 | 166 | -------------------------------------------------------------------------------- /bin/find-process.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | 3 | 'use strict' 4 | 5 | const { program } = require('commander') 6 | const chalk = require('chalk') 7 | const log = require('loglevel').getLogger('find-process') 8 | const find = require('..') 9 | const pkg = require('../package.json') 10 | 11 | let type, keyword 12 | 13 | program 14 | .version(pkg.version) 15 | .option('-t, --type ', 'find process by keyword type (pid|port|name)') 16 | .option('-p, --port', 'find process by port') 17 | .arguments('') 18 | .action(function (kw) { 19 | keyword = kw 20 | }) 21 | .on('--help', () => { 22 | console.log() 23 | console.log(' Examples:') 24 | console.log() 25 | console.log(' $ find-process node # find by name "node"') 26 | console.log(' $ find-process 111 # find by pid "111"') 27 | console.log(' $ find-process -p 80 # find by port "80"') 28 | console.log(' $ find-process -t port 80 # find by port "80"') 29 | console.log() 30 | }) 31 | .showHelpAfterError() 32 | .parse(process.argv) 33 | 34 | const opts = program.opts() 35 | 36 | // check keyword 37 | if (!keyword) { 38 | console.error(chalk.red('Error: search keyword cannot be empty!')) 39 | program.outputHelp() 40 | process.exit(1) 41 | } 42 | 43 | // check type 44 | if (opts.port) { 45 | type = 'port' 46 | } else if (!opts.type) { 47 | // pid or port 48 | if (/^\d+$/.test(keyword)) { 49 | type = 'pid' 50 | keyword = Number(keyword) 51 | } else { 52 | type = 'name' 53 | } 54 | } else { 55 | type = opts.type 56 | } 57 | 58 | log.debug('find process by: type = %s, keyword = "%s"', type, keyword) 59 | 60 | find(type, keyword) 61 | .then(list => { 62 | if (list.length) { 63 | console.log('Found %s process' + (list.length === 1 ? '' : 'es') + '\n', list.length) 64 | 65 | for (const item of list) { 66 | console.log(chalk.cyan('[%s]'), item.name || 'unknown') 67 | console.log('pid: %s', chalk.white(item.pid)) 68 | console.log('cmd: %s', chalk.white(item.cmd)) 69 | console.log() 70 | } 71 | } else { 72 | console.log('No process found') 73 | } 74 | }, err => { 75 | console.error(chalk.red(err.stack || err)) 76 | process.exit(1) 77 | }) 78 | -------------------------------------------------------------------------------- /example/netstat.md: -------------------------------------------------------------------------------- 1 | # Get pid on different platform 2 | 3 | ## Mac OSX (darwin) 4 | 5 | ```sh 6 | $ netstat -anv 7 | Active Internet connections (including servers) 8 | Proto Recv-Q Send-Q Local Address Foreign Address (state) rhiwat shiwat pid epid 9 | tcp4 0 0 10.16.43.243.55669 10.20.13.51.8000 ESTABLISHED 131346 131768 422 0 10 | tcp4 0 0 10.16.43.243.55663 140.205.133.118.80 CLOSE_WAIT 131072 131100 36843 0 11 | tcp4 0 0 10.16.43.243.55661 183.136.138.140.80 ESTABLISHED 131072 131328 40517 0 12 | tcp46 0 0 *.443 *.* LISTEN 131072 131072 61044 0 13 | tcp46 0 0 *.8888 *.* LISTEN 131072 131072 61044 0 14 | ``` 15 | 16 | ## Windows (win32) 17 | 18 | ```sh 19 | C:\Users\xxx>netstat -ano 20 | 21 | 活动连接 22 | 23 | 协议 本地地址 外部地址 状态 PID 24 | TCP 0.0.0.0:80 0.0.0.0:0 LISTENING 2288 25 | TCP 0.0.0.0:135 0.0.0.0:0 LISTENING 736 26 | TCP 0.0.0.0:443 0.0.0.0:0 LISTENING 2288 27 | TCP 0.0.0.0:445 0.0.0.0:0 LISTENING 4 28 | TCP 0.0.0.0:5357 0.0.0.0:0 LISTENING 4 29 | TCP 0.0.0.0:49152 0.0.0.0:0 LISTENING 420 30 | TCP 0.0.0.0:49153 0.0.0.0:0 LISTENING 812 31 | TCP 0.0.0.0:49154 0.0.0.0:0 LISTENING 896 32 | TCP 0.0.0.0:49155 0.0.0.0:0 LISTENING 520 33 | TCP 0.0.0.0:49164 0.0.0.0:0 LISTENING 536 34 | TCP 10.211.55.6:139 0.0.0.0:0 LISTENING 4 35 | TCP 10.211.55.6:50506 183.136.138.140:80 CLOSE_WAIT 3020 36 | TCP 10.211.55.6:50510 100.67.1.9:80 TIME_WAIT 0 37 | TCP 127.0.0.1:4012 0.0.0.0:0 LISTENING 672 38 | TCP 127.0.0.1:4013 0.0.0.0:0 LISTENING 672 39 | ``` 40 | 41 | ## Ubuntu (linux) 42 | 43 | ```sh 44 | $ sudo netstat -tunlp 45 | [sudo] password for xxx: 46 | Active Internet connections (only servers) 47 | Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name 48 | tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 830/mysqld 49 | tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 1668/nginx 50 | tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN 632/vsftpd 51 | tcp 0 0 0.0.0.0:32223 0.0.0.0:* LISTEN 492/sshd 52 | tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN 1705/php-fpm.conf) 53 | tcp6 0 0 :::32223 :::* LISTEN 492/sshd 54 | tcp6 0 0 :::8228 :::* LISTEN 18214/squid3 55 | udp 0 0 0.0.0.0:49983 0.0.0.0:* 18214/squid3 56 | udp 0 0 115.29.18.179:123 0.0.0.0:* 1103/ntpd 57 | udp 0 0 10.122.77.193:123 0.0.0.0:* 1103/ntpd 58 | udp 0 0 127.0.0.1:123 0.0.0.0:* 1103/ntpd 59 | udp 0 0 0.0.0.0:123 0.0.0.0:* 1103/ntpd 60 | udp6 0 0 :::123 :::* 1103/ntpd 61 | udp6 0 0 :::39072 :::* 18214/squid3 62 | ``` 63 | -------------------------------------------------------------------------------- /example/process.md: -------------------------------------------------------------------------------- 1 | # Get process info on different platform 2 | 3 | ## MacOSX (darwin) 4 | 5 | ```sh 6 | $ ps -ax -ww -o pid,ppid,uid,gid,args 7 | PID PPID UID GID ARGS 8 | 1 0 0 0 /sbin/launchd 9 | 44 1 0 0 /usr/sbin/syslogd 10 | 45 1 0 0 /usr/libexec/UserEventAgent (System) 11 | 47 1 0 0 /usr/libexec/kextd 12 | 48 1 0 0 /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/FSEvents.framework/Versions/A/Support/fseventsd 13 | 50 1 0 0 /opt/cisco/anyconnect/bin/vpnagentd -execv_instance 14 | 53 1 55 55 /System/Library/CoreServices/appleeventsd --server 15 | 54 1 0 0 /usr/libexec/configd 16 | 56 1 0 0 /System/Library/CoreServices/powerd.bundle/powerd 17 | 61 1 0 0 /usr/libexec/airportd 18 | 63 1 0 0 /usr/libexec/warmd 19 | 64 1 0 0 /System/Library/Frameworks/CoreServices.framework/Frameworks/Metadata.framework/Support/mds 20 | ``` 21 | 22 | ## Ubuntu (linux) 23 | 24 | ``` 25 | ``` 26 | 27 | ## Windows7 (win32) 28 | 29 | ```sh 30 | C:\> WMIC path win32_process get Name,Processid,ParentProcessId,Commandline 31 | CommandLine Name ParentProcessId ProcessId 32 | System Idle Process 0 0 33 | System 0 4 34 | smss.exe 4 276 35 | csrss.exe 356 364 36 | wininit.exe 356 420 37 | csrss.exe 412 432 38 | winlogon.exe 412 484 39 | services.exe 420 520 40 | lsass.exe 420 536 41 | lsm.exe 420 544 42 | svchost.exe 520 656 43 | svchost.exe 520 736 44 | svchost.exe 520 812 45 | svchost.exe 520 868 46 | svchost.exe 520 896 47 | svchost.exe 520 1060 48 | svchost.exe 520 1164 49 | spoolsv.exe 520 1272 50 | svchost.exe 520 1316 51 | "taskhost.exe" taskhost.exe 520 1436 52 | svchost.exe 520 1540 53 | coherence.exe 520 1624 54 | prl_tools_service.exe 520 1668 55 | coherence.exe 1624 1692 56 | pcas.exe 520 1740 57 | prl_tools.exe 1668 1760 58 | svchost.exe 520 1936 59 | dllhost.exe 520 1968 60 | QQProtect.exe 520 1996 61 | TBSecSvc.exe 520 372 62 | wwbizsrv.exe 520 672 63 | sppsvc.exe 520 2228 64 | svchost.exe 520 2360 65 | msdtc.exe 520 2644 66 | C:\Users\yibn\AppData\Roaming\TaobaoProtect\TaobaoProtect.exe TaobaoProtect.exe 372 3020 67 | "C:\Windows\system32\Dwm.exe" dwm.exe 868 3504 68 | C:\Windows\Explorer.EXE explorer.exe 3496 3528 69 | "C:\Program Files\Parallels\Parallels Tools\prl_cc.exe" prl_cc.exe 3528 3616 70 | SearchIndexer.exe 520 2256 71 | wmpnetwk.exe 520 2208 72 | \??\C:\Windows\system32\conhost.exe conhost.exe 432 2004 73 | "C:\Users\yibn\AppData\Local\GitHub\PortableGit_c7e0cbde92ba565cb218a521411d0e854079a28c\usr\bin\ssh-agent.exe" ssh-agent.exe 2200 2132 74 | "C:\Program Files\Atlassian\SourceTree\tools\putty\pageant.exe" pageant.exe 2824 2860 75 | "C:\Windows\system32\cmd.exe" cmd.exe 3528 2668 76 | \??\C:\Windows\system32\conhost.exe conhost.exe 432 2304 77 | "C:\Windows\System32\WindowsPowerShell\v1.0\Powershell.exe" -NoExit -ExecutionPolicy Unrestricted -File "C:\Users\yibn\AppData\Local\GitHub\PoshGit_869d4c5159797755bc04749db47b166136e59132\profile.example.ps1" powershell.exe 2372 2988 78 | \??\C:\Windows\system32\conhost.exe conhost.exe 432 3896 79 | C:\Windows\explorer.exe /factory,{75dff2b7-6936-4c06-a8bb-676a7b00b24b} -Embedding explorer.exe 656 2836 80 | "C:\Program Files\Sublime Text 2\sublime_text.exe" "C:\Users\yibn\Documents\GitHub\workbench\x.txt" sublime_text.exe 2836 2956 81 | ``` 82 | -------------------------------------------------------------------------------- /index.d.ts: -------------------------------------------------------------------------------- 1 | // https://github.com/pimterry/loglevel/blob/f5a642299bf77a81118d68766a168c9568ecd21b/index.d.ts#L14-L38 2 | interface LogLevel { 3 | TRACE: 0; 4 | DEBUG: 1; 5 | INFO: 2; 6 | WARN: 3; 7 | ERROR: 4; 8 | SILENT: 5; 9 | } 10 | 11 | type LogLevelNumbers = LogLevel[keyof LogLevel]; 12 | 13 | type LogLevelDesc = LogLevelNumbers 14 | | 'trace' 15 | | 'debug' 16 | | 'info' 17 | | 'warn' 18 | | 'error' 19 | | 'silent' 20 | | keyof LogLevel; 21 | 22 | declare type Options = { 23 | strict?: boolean; 24 | logLevel?: LogLevelDesc; 25 | } 26 | 27 | declare function find(type: "name" | "pid" | "port", value: string | number | RegExp, strict?: boolean | Options): Promise<{ 28 | pid: number; 29 | ppid?: number; 30 | uid?: number; 31 | gid?: number; 32 | name: string; 33 | cmd: string; 34 | }[]> 35 | export = find; 36 | -------------------------------------------------------------------------------- /index.js: -------------------------------------------------------------------------------- 1 | /* 2 | * @Author: zoujie.wzj 3 | * @Date: 2016-01-23 17:32:07 4 | * @Last Modified by: Zoujie 5 | * @Last Modified time: 2016-02-04 17:13:18 6 | */ 7 | 8 | 'use strict' 9 | 10 | module.exports = require('./lib/find') 11 | -------------------------------------------------------------------------------- /lib/find.js: -------------------------------------------------------------------------------- 1 | /* 2 | * @Author: zoujie.wzj 3 | * @Date: 2016-01-23 18:18:28 4 | * @Last Modified by: Ayon Lee 5 | * @Last Modified on: 2018-10-19 6 | */ 7 | 8 | 'use strict' 9 | 10 | const findPid = require('./find_pid') 11 | const findProcess = require('./find_process') 12 | const log = require('./logger') 13 | 14 | const findBy = { 15 | port (port, config) { 16 | return findPid(port) 17 | .then(pid => { 18 | return findBy.pid(pid, config) 19 | }, () => { 20 | // return empty array when pid not found 21 | return [] 22 | }) 23 | }, 24 | pid (pid, config) { 25 | return findProcess({ 26 | pid, 27 | config 28 | }) 29 | }, 30 | name (name, config) { 31 | return findProcess({ 32 | name, 33 | config, 34 | skipSelf: true 35 | }) 36 | } 37 | } 38 | 39 | /** 40 | * find process by condition 41 | * 42 | * return Promise: [{ 43 | * pid: , 44 | * ppid: , 45 | * uid: , 46 | * gid: , 47 | * name: , 48 | * cmd: 49 | * }, ...] 50 | * 51 | * If no process found, resolve process with empty array (only reject when error occured) 52 | * 53 | * @param {String} by condition: port/pid/name ... 54 | * @param {Mixed} condition value 55 | * @param {Boolean|Option} 56 | * @return {Promise} 57 | */ 58 | function find (by, value, options) { 59 | const config = Object.assign({ 60 | logLevel: 'warn', 61 | strict: typeof options === 'boolean' ? options : false 62 | }, options) 63 | 64 | log.setLevel(config.logLevel) 65 | 66 | return new Promise((resolve, reject) => { 67 | if (!(by in findBy)) { 68 | reject(new Error(`do not support find by "${by}"`)) 69 | } else { 70 | const isNumber = /^\d+$/.test(value) 71 | if (by === 'pid' && !isNumber) { 72 | reject(new Error('pid must be a number')) 73 | } else if (by === 'port' && !isNumber) { 74 | reject(new Error('port must be a number')) 75 | } else { 76 | findBy[by](value, config).then(resolve, reject) 77 | } 78 | } 79 | }) 80 | } 81 | 82 | module.exports = find 83 | -------------------------------------------------------------------------------- /lib/find_pid.js: -------------------------------------------------------------------------------- 1 | /* 2 | * @Author: zoujie.wzj 3 | * @Date: 2016-01-22 19:27:17 4 | * @Last Modified by: Ayon Lee 5 | * @Last Modified on: 2018-10-19 6 | */ 7 | 8 | 'use strict' 9 | 10 | // find pid by port 11 | 12 | const os = require('os') 13 | const fs = require('fs') 14 | const utils = require('./utils') 15 | const log = require('./logger') 16 | 17 | const ensureDir = (path) => new Promise((resolve, reject) => { 18 | if (fs.existsSync(path)) { 19 | resolve() 20 | } else { 21 | fs.mkdir(path, err => { 22 | err ? reject(err) : resolve() 23 | }) 24 | } 25 | }) 26 | 27 | const finders = { 28 | darwin (port) { 29 | return new Promise((resolve, reject) => { 30 | utils.exec('netstat -anv -p TCP && netstat -anv -p UDP', function (err, stdout, stderr) { 31 | if (err) { 32 | reject(err) 33 | } else { 34 | err = stderr.toString().trim() 35 | if (err) { 36 | reject(err) 37 | return 38 | } 39 | 40 | // replace header 41 | const data = utils.stripLine(stdout.toString(), 2) 42 | const found = utils.extractColumns(data, [0, 3, 8], 10) 43 | .filter(row => { 44 | return !!String(row[0]).match(/^(udp|tcp)/) 45 | }) 46 | .find(row => { 47 | const matches = String(row[1]).match(/\.(\d+)$/) 48 | if (matches && matches[1] === String(port)) { 49 | return true 50 | } 51 | return false 52 | }) 53 | 54 | if (found && found[2].length) { 55 | resolve(parseInt(found[2], 10)) 56 | } else { 57 | reject(new Error(`pid of port (${port}) not found`)) 58 | } 59 | } 60 | }) 61 | }) 62 | }, 63 | freebsd: 'darwin', 64 | sunos: 'darwin', 65 | linux (port) { 66 | return new Promise((resolve, reject) => { 67 | const cmd = 'netstat -tunlp' 68 | 69 | utils.exec(cmd, function (err, stdout, stderr) { 70 | if (err) { 71 | reject(err) 72 | } else { 73 | const warn = stderr.toString().trim() 74 | if (warn) { 75 | // netstat -p ouputs warning if user is no-root 76 | log.warn(warn) 77 | } 78 | 79 | // replace header 80 | const data = utils.stripLine(stdout.toString(), 2) 81 | const columns = utils.extractColumns(data, [3, 6], 7).find(column => { 82 | const matches = String(column[0]).match(/:(\d+)$/) 83 | if (matches && matches[1] === String(port)) { 84 | return true 85 | } 86 | return false 87 | }) 88 | 89 | if (columns && columns[1]) { 90 | const pid = columns[1].split('/', 1)[0] 91 | 92 | if (pid.length) { 93 | resolve(parseInt(pid, 10)) 94 | } else { 95 | reject(new Error(`pid of port (${port}) not found`)) 96 | } 97 | } else { 98 | reject(new Error(`pid of port (${port}) not found`)) 99 | } 100 | } 101 | }) 102 | }) 103 | }, 104 | win32 (port) { 105 | return new Promise((resolve, reject) => { 106 | utils.exec('netstat -ano', function (err, stdout, stderr) { 107 | if (err) { 108 | reject(err) 109 | } else { 110 | err = stderr.toString().trim() 111 | if (err) { 112 | reject(err) 113 | return 114 | } 115 | 116 | // replace header 117 | const data = utils.stripLine(stdout.toString(), 4) 118 | const columns = utils.extractColumns(data, [1, 4], 5).find(column => { 119 | const matches = String(column[0]).match(/:(\d+)$/) 120 | if (matches && matches[1] === String(port)) { 121 | return true 122 | } 123 | return false 124 | }) 125 | 126 | if (columns && columns[1].length && parseInt(columns[1], 10) > 0) { 127 | resolve(parseInt(columns[1], 10)) 128 | } else { 129 | reject(new Error(`pid of port (${port}) not found`)) 130 | } 131 | } 132 | }) 133 | }) 134 | }, 135 | android (port) { 136 | return new Promise((resolve, reject) => { 137 | // on Android Termux, an warning will be emitted when executing `netstat` 138 | // with option `-p` says 'showing only processes with your user ID', but 139 | // it can still fetch the information we need. However, NodeJS treat this 140 | // warning as an error, `util.exec()` will get nothing but the error. To 141 | // get the true output of the command, we need to save it to a tmpfile and 142 | // read that file instead. 143 | const dir = os.tmpdir() + '/.find-process' 144 | const file = dir + '/' + process.pid 145 | const cmd = 'netstat -tunp >> "' + file + '"' 146 | 147 | ensureDir(dir).then(() => { 148 | utils.exec(cmd, () => { 149 | fs.readFile(file, 'utf8', (err, data) => { 150 | fs.unlink(file, () => { }) 151 | if (err) { 152 | reject(err) 153 | } else { 154 | data = utils.stripLine(data, 2) 155 | const columns = utils.extractColumns(data, [3, 6], 7).find(column => { 156 | const matches = String(column[0]).match(/:(\d+)$/) 157 | if (matches && matches[1] === String(port)) { 158 | return true 159 | } 160 | return false 161 | }) 162 | 163 | if (columns && columns[1]) { 164 | const pid = columns[1].split('/', 1)[0] 165 | 166 | if (pid.length) { 167 | resolve(parseInt(pid, 10)) 168 | } else { 169 | reject(new Error(`pid of port (${port}) not found`)) 170 | } 171 | } else { 172 | reject(new Error(`pid of port (${port}) not found`)) 173 | } 174 | } 175 | }) 176 | }) 177 | }) 178 | }) 179 | } 180 | } 181 | 182 | function findPidByPort (port) { 183 | const platform = process.platform 184 | 185 | return new Promise((resolve, reject) => { 186 | if (!(platform in finders)) { 187 | return reject(new Error(`platform ${platform} is unsupported`)) 188 | } 189 | 190 | let findPid = finders[platform] 191 | if (typeof findPid === 'string') { 192 | findPid = finders[findPid] 193 | } 194 | 195 | findPid(port).then(resolve, reject) 196 | }) 197 | } 198 | 199 | module.exports = findPidByPort 200 | -------------------------------------------------------------------------------- /lib/find_process.js: -------------------------------------------------------------------------------- 1 | /* 2 | * @Author: zoujie.wzj 3 | * @Date: 2016-01-23 18:25:37 4 | * @Last Modified by: Sahel LUCAS--SAOUDI 5 | * @Last Modified on: 2021-11-12 6 | */ 7 | 8 | 'use strict' 9 | 10 | const path = require('path') 11 | const utils = require('./utils') 12 | 13 | function matchName (text, name) { 14 | if (!name) { 15 | return true 16 | } 17 | // make sure text.match is valid, fix #30 18 | if (text && text.match) { 19 | return text.match(name) 20 | } 21 | return false 22 | } 23 | 24 | function fetchBin (cmd) { 25 | const pieces = cmd.split(path.sep) 26 | const last = pieces[pieces.length - 1] 27 | if (last) { 28 | pieces[pieces.length - 1] = last.split(' ')[0] 29 | } 30 | const fixed = [] 31 | for (const part of pieces) { 32 | const optIdx = part.indexOf(' -') 33 | if (optIdx >= 0) { 34 | // case: /aaa/bbb/ccc -c 35 | fixed.push(part.substring(0, optIdx).trim()) 36 | break 37 | } else if (part.endsWith(' ')) { 38 | // case: node /aaa/bbb/ccc.js 39 | fixed.push(part.trim()) 40 | break 41 | } 42 | fixed.push(part) 43 | } 44 | return fixed.join(path.sep) 45 | } 46 | 47 | function fetchName (fullpath) { 48 | if (process.platform === 'darwin') { 49 | const idx = fullpath.indexOf('.app/') 50 | if (idx >= 0) { 51 | return path.basename(fullpath.substring(0, idx)) 52 | } 53 | } 54 | return path.basename(fullpath) 55 | } 56 | 57 | const finders = { 58 | darwin (cond) { 59 | return new Promise((resolve, reject) => { 60 | let cmd 61 | if ('pid' in cond) { 62 | cmd = `ps -p ${cond.pid} -ww -o pid,ppid,uid,gid,args` 63 | } else { 64 | cmd = 'ps ax -ww -o pid,ppid,uid,gid,args' 65 | } 66 | 67 | utils.exec(cmd, function (err, stdout, stderr) { 68 | if (err) { 69 | if ('pid' in cond) { 70 | // when pid not exists, call `ps -p ...` will cause error, we have to 71 | // ignore the error and resolve with empty array 72 | resolve([]) 73 | } else { 74 | reject(err) 75 | } 76 | } else { 77 | err = stderr.toString().trim() 78 | if (err) { 79 | reject(err) 80 | return 81 | } 82 | 83 | const data = utils.stripLine(stdout.toString(), 1) 84 | const columns = utils.extractColumns(data, [0, 1, 2, 3, 4], 5).filter(column => { 85 | if (column[0] && cond.pid) { 86 | return column[0] === String(cond.pid) 87 | } else if (column[4] && cond.name) { 88 | return matchName(column[4], cond.name) 89 | } else { 90 | return !!column[0] 91 | } 92 | }) 93 | 94 | let list = columns.map(column => { 95 | const cmd = String(column[4]) 96 | const bin = fetchBin(cmd) 97 | 98 | return { 99 | pid: parseInt(column[0], 10), 100 | ppid: parseInt(column[1], 10), 101 | uid: parseInt(column[2], 10), 102 | gid: parseInt(column[3], 10), 103 | name: fetchName(bin), 104 | bin, 105 | cmd: column[4] 106 | } 107 | }) 108 | 109 | if (cond.config.strict && cond.name) { 110 | list = list.filter(item => item.name === cond.name) 111 | } 112 | 113 | resolve(list) 114 | } 115 | }) 116 | }) 117 | }, 118 | linux: 'darwin', 119 | sunos: 'darwin', 120 | freebsd: 'darwin', 121 | win32 (cond) { 122 | return new Promise((resolve, reject) => { 123 | const cmd = '[Console]::OutputEncoding = [System.Text.Encoding]::UTF8; Get-CimInstance -className win32_process | select Name,ProcessId,ParentProcessId,CommandLine,ExecutablePath' 124 | const lines = [] 125 | 126 | const proc = utils.spawn('powershell.exe', ['/c', cmd], { detached: false, windowsHide: true }) 127 | proc.stdout.on('data', data => { 128 | lines.push(data.toString()) 129 | }) 130 | proc.on('error', err => { 131 | reject(new Error('Command \'' + cmd + '\' failed with reason: ' + err.toString())) 132 | }) 133 | proc.on('close', code => { 134 | if (code !== 0) { 135 | return reject(new Error('Command \'' + cmd + '\' terminated with code: ' + code)) 136 | } 137 | const list = utils.parseTable(lines.join('')) 138 | .filter(row => { 139 | if ('pid' in cond) { 140 | return row.ProcessId === String(cond.pid) 141 | } else if (cond.name) { 142 | const rowName = row.Name || '' // fix #40 143 | if (cond.config.strict) { 144 | return rowName === cond.name || (rowName.endsWith('.exe') && rowName.slice(0, -4) === cond.name) 145 | } else { 146 | // fix #9 147 | return matchName(row.CommandLine || rowName, cond.name) 148 | } 149 | } else { 150 | return true 151 | } 152 | }) 153 | .map(row => ({ 154 | pid: parseInt(row.ProcessId, 10), 155 | ppid: parseInt(row.ParentProcessId, 10), 156 | // uid: void 0, 157 | // gid: void 0, 158 | bin: row.ExecutablePath, 159 | name: row.Name || '', 160 | cmd: row.CommandLine 161 | })) 162 | resolve(list) 163 | }) 164 | }) 165 | }, 166 | android (cond) { 167 | return new Promise((resolve, reject) => { 168 | const cmd = 'ps' 169 | 170 | utils.exec(cmd, function (err, stdout, stderr) { 171 | if (err) { 172 | if ('pid' in cond) { 173 | // when pid not exists, call `ps -p ...` will cause error, we have to 174 | // ignore the error and resolve with empty array 175 | resolve([]) 176 | } else { 177 | reject(err) 178 | } 179 | } else { 180 | err = stderr.toString().trim() 181 | if (err) { 182 | reject(err) 183 | return 184 | } 185 | 186 | const data = utils.stripLine(stdout.toString(), 1) 187 | const columns = utils.extractColumns(data, [0, 3], 4).filter(column => { 188 | if (column[0] && cond.pid) { 189 | return column[0] === String(cond.pid) 190 | } else if (column[1] && cond.name) { 191 | return matchName(column[1], cond.name) 192 | } else { 193 | return !!column[0] 194 | } 195 | }) 196 | 197 | let list = columns.map(column => { 198 | const cmd = String(column[1]) 199 | const bin = fetchBin(cmd) 200 | 201 | return { 202 | pid: parseInt(column[0], 10), 203 | // ppid: void 0, 204 | // uid: void 0, 205 | // gid: void 0, 206 | name: fetchName(bin), 207 | bin, 208 | cmd 209 | } 210 | }) 211 | 212 | if (cond.config.strict && cond.name) { 213 | list = list.filter(item => item.name === cond.name) 214 | } 215 | 216 | resolve(list) 217 | } 218 | }) 219 | }) 220 | } 221 | } 222 | 223 | function findProcess (cond) { 224 | const platform = process.platform 225 | 226 | return new Promise((resolve, reject) => { 227 | if (!(platform in finders)) { 228 | return reject(new Error(`platform ${platform} is unsupported`)) 229 | } 230 | 231 | let find = finders[platform] 232 | if (typeof find === 'string') { 233 | find = finders[find] 234 | } 235 | 236 | find(cond).then((result) => { 237 | if (cond.skipSelf) { 238 | // skip find-process itself 239 | const filteredResult = result.filter(item => item.pid !== process.pid) 240 | 241 | resolve(filteredResult) 242 | } else { 243 | resolve(result) 244 | } 245 | }, reject) 246 | }) 247 | } 248 | 249 | module.exports = findProcess 250 | -------------------------------------------------------------------------------- /lib/logger.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | 3 | const log = require('loglevel') 4 | 5 | module.exports = log 6 | -------------------------------------------------------------------------------- /lib/utils.js: -------------------------------------------------------------------------------- 1 | /* 2 | * @Author: zoujie.wzj 3 | * @Date: 2016-01-23 18:17:55 4 | * @Last Modified by: Sahel LUCAS--SAOUDI 5 | * @Last Modified on: 2021-11-12 6 | */ 7 | 8 | 'use strict' 9 | 10 | const cp = require('child_process') 11 | 12 | const UNIT_MB = 1024 * 1024 13 | 14 | const utils = { 15 | /** 16 | * exec command with maxBuffer size 17 | */ 18 | exec (cmd, callback) { 19 | cp.exec(cmd, { 20 | maxBuffer: 2 * UNIT_MB, 21 | windowsHide: true 22 | }, callback) 23 | }, 24 | /** 25 | * spawn command 26 | */ 27 | spawn (cmd, args, options) { 28 | return cp.spawn(cmd, args, options) 29 | }, 30 | /** 31 | * Strip top lines of text 32 | * 33 | * @param {String} text 34 | * @param {Number} num 35 | * @return {String} 36 | */ 37 | stripLine (text, num) { 38 | let idx = 0 39 | 40 | while (num-- > 0) { 41 | const nIdx = text.indexOf('\n', idx) 42 | if (nIdx >= 0) { 43 | idx = nIdx + 1 44 | } 45 | } 46 | 47 | return idx > 0 ? text.substring(idx) : text 48 | }, 49 | 50 | /** 51 | * Split string and stop at max parts 52 | * 53 | * @param {Number} line 54 | * @param {Number} max 55 | * @return {Array} 56 | */ 57 | split (line, max) { 58 | const cols = line.trim().split(/\s+/) 59 | 60 | if (cols.length > max) { 61 | cols[max - 1] = cols.slice(max - 1).join(' ') 62 | } 63 | 64 | return cols 65 | }, 66 | 67 | /** 68 | * Extract columns from table text 69 | * 70 | * Example: 71 | * 72 | * ``` 73 | * extractColumns(text, [0, 2], 3) 74 | * ``` 75 | * 76 | * From: 77 | * ``` 78 | * foo bar bar2 79 | * valx valy valz 80 | * ``` 81 | * 82 | * To: 83 | * ``` 84 | * [ ['foo', 'bar2'], ['valx', 'valz'] ] 85 | * ``` 86 | * 87 | * @param {String} text raw table text 88 | * @param {Array} idxes the column index list to extract 89 | * @param {Number} max max column number of table 90 | * @return {Array} 91 | */ 92 | extractColumns (text, idxes, max) { 93 | const lines = text.split(/(\r\n|\n|\r)/) 94 | const columns = [] 95 | 96 | if (!max) { 97 | max = Math.max.apply(null, idxes) + 1 98 | } 99 | 100 | lines.forEach(line => { 101 | const cols = utils.split(line, max) 102 | const column = [] 103 | 104 | idxes.forEach(idx => { 105 | column.push(cols[idx] || '') 106 | }) 107 | 108 | columns.push(column) 109 | }) 110 | 111 | return columns 112 | }, 113 | 114 | /** 115 | * parse table text to array 116 | * 117 | * From: 118 | * ``` 119 | * Header1 : foo 120 | * Header2 : bar 121 | * Header3 : val 122 | * 123 | * Header1 : foo2 124 | * Header2 : bar2 125 | * Header3 : val2 126 | * ``` 127 | * 128 | * To: 129 | * ``` 130 | * [{ Header1: 'foo', Header2: 'bar', Header3: 'val' }, ...] 131 | * ``` 132 | * 133 | * @param {String} data raw table data 134 | * @return {Array} 135 | */ 136 | parseTable (data) { 137 | const lines = data.split(/(\r\n\r\n|\r\n\n|\n\r\n|\n\n)/).filter(line => { 138 | return line && line.trim().length > 0 139 | }).map((e) => e.split(/(\r\n|\n|\r)/).filter(line => line.trim().length > 0)) 140 | 141 | // Join multi-ligne value 142 | lines.forEach((line) => { 143 | for (let index = 0; line[index];) { 144 | const entry = line[index] 145 | if (entry.startsWith(' ')) { 146 | line[index - 1] += entry.trimLeft() 147 | line.splice(index, 1) 148 | } else { 149 | index += 1 150 | } 151 | } 152 | }) 153 | 154 | return lines.map(line => { 155 | const row = {} 156 | line.forEach((string) => { 157 | const splitterIndex = string.indexOf(':') 158 | const key = string.slice(0, splitterIndex).trim() 159 | row[key] = string.slice(splitterIndex + 1).trim() 160 | }) 161 | 162 | return row 163 | }) 164 | } 165 | } 166 | 167 | module.exports = utils 168 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "find-process", 3 | "version": "1.4.10", 4 | "description": "find process info by port/pid/name etc.", 5 | "main": "index.js", 6 | "types": "index.d.ts", 7 | "scripts": { 8 | "test": "mocha test/*.test.js && standard", 9 | "lint": "standard --fix && npm-ensure -t deps" 10 | }, 11 | "bin": { 12 | "find-process": "bin/find-process.js" 13 | }, 14 | "ensure": { 15 | "deps": { 16 | "checkDirs": [ 17 | "lib/*", 18 | "bin/*", 19 | "*.js" 20 | ] 21 | } 22 | }, 23 | "repository": { 24 | "type": "git", 25 | "url": "git+https://github.com/yibn2008/find-process.git" 26 | }, 27 | "keywords": [ 28 | "node", 29 | "process", 30 | "pid", 31 | "port" 32 | ], 33 | "standard": { 34 | "globals": [ 35 | "describe", 36 | "beforeEach", 37 | "afterEach", 38 | "it" 39 | ], 40 | "ignore": [ 41 | "/node_modules", 42 | "/doc", 43 | "/example", 44 | "/test", 45 | "index.d.ts" 46 | ] 47 | }, 48 | "author": "zoujie ", 49 | "license": "MIT", 50 | "bugs": { 51 | "url": "https://github.com/yibn2008/find-process/issues" 52 | }, 53 | "homepage": "https://github.com/yibn2008/find-process#readme", 54 | "dependencies": { 55 | "chalk": "~4.1.2", 56 | "commander": "^12.1.0", 57 | "loglevel": "^1.9.2" 58 | }, 59 | "devDependencies": { 60 | "mocha": "^11.0.1", 61 | "npm-ensure": "^1.3.0", 62 | "standard": "^17.1.2", 63 | "eslint": "^9.17.0", 64 | "glob": "^11.0.0", 65 | "rimraf": "^6.0.1" 66 | }, 67 | "publishConfig": { 68 | "registry": "https://registry.npmjs.org" 69 | }, 70 | "packageManager": "pnpm@9.15.1+sha512.1acb565e6193efbebda772702950469150cf12bcc764262e7587e71d19dc98a423dff9536e57ea44c49bdf790ff694e83c27be5faa23d67e0c033b583be4bfcf" 71 | } 72 | -------------------------------------------------------------------------------- /pnpm-lock.yaml: -------------------------------------------------------------------------------- 1 | lockfileVersion: '9.0' 2 | 3 | settings: 4 | autoInstallPeers: true 5 | excludeLinksFromLockfile: false 6 | 7 | importers: 8 | 9 | .: 10 | dependencies: 11 | chalk: 12 | specifier: ~4.1.2 13 | version: 4.1.2 14 | commander: 15 | specifier: ^12.1.0 16 | version: 12.1.0 17 | loglevel: 18 | specifier: ^1.9.2 19 | version: 1.9.2 20 | devDependencies: 21 | eslint: 22 | specifier: ^9.17.0 23 | version: 9.17.0 24 | glob: 25 | specifier: ^11.0.0 26 | version: 11.0.0 27 | mocha: 28 | specifier: ^11.0.1 29 | version: 11.0.1 30 | npm-ensure: 31 | specifier: ^1.3.0 32 | version: 1.3.0 33 | rimraf: 34 | specifier: ^6.0.1 35 | version: 6.0.1 36 | standard: 37 | specifier: ^17.1.2 38 | version: 17.1.2 39 | 40 | packages: 41 | 42 | '@babel/code-frame@7.26.2': 43 | resolution: {integrity: sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==} 44 | engines: {node: '>=6.9.0'} 45 | 46 | '@babel/generator@7.26.3': 47 | resolution: {integrity: sha512-6FF/urZvD0sTeO7k6/B15pMLC4CHUv1426lzr3N01aHJTl046uCAh9LXW/fzeXXjPNCJ6iABW5XaWOsIZB93aQ==} 48 | engines: {node: '>=6.9.0'} 49 | 50 | '@babel/helper-string-parser@7.25.9': 51 | resolution: {integrity: sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==} 52 | engines: {node: '>=6.9.0'} 53 | 54 | '@babel/helper-validator-identifier@7.25.9': 55 | resolution: {integrity: sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==} 56 | engines: {node: '>=6.9.0'} 57 | 58 | '@babel/parser@7.26.3': 59 | resolution: {integrity: sha512-WJ/CvmY8Mea8iDXo6a7RK2wbmJITT5fN3BEkRuFlxVyNx8jOKIIhmC4fSkTcPcf8JyavbBwIe6OpiCOBXt/IcA==} 60 | engines: {node: '>=6.0.0'} 61 | hasBin: true 62 | 63 | '@babel/template@7.25.9': 64 | resolution: {integrity: sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==} 65 | engines: {node: '>=6.9.0'} 66 | 67 | '@babel/traverse@7.26.4': 68 | resolution: {integrity: sha512-fH+b7Y4p3yqvApJALCPJcwb0/XaOSgtK4pzV6WVjPR5GLFQBRI7pfoX2V2iM48NXvX07NUxxm1Vw98YjqTcU5w==} 69 | engines: {node: '>=6.9.0'} 70 | 71 | '@babel/types@7.26.3': 72 | resolution: {integrity: sha512-vN5p+1kl59GVKMvTHt55NzzmYVxprfJD+ql7U9NFIfKCBkYE55LYtS+WtPlaYOyzydrKI8Nezd+aZextrd+FMA==} 73 | engines: {node: '>=6.9.0'} 74 | 75 | '@eslint-community/eslint-utils@4.4.1': 76 | resolution: {integrity: sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==} 77 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 78 | peerDependencies: 79 | eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 80 | 81 | '@eslint-community/regexpp@4.12.1': 82 | resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==} 83 | engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} 84 | 85 | '@eslint/config-array@0.19.1': 86 | resolution: {integrity: sha512-fo6Mtm5mWyKjA/Chy1BYTdn5mGJoDNjC7C64ug20ADsRDGrA85bN3uK3MaKbeRkRuuIEAR5N33Jr1pbm411/PA==} 87 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 88 | 89 | '@eslint/core@0.9.1': 90 | resolution: {integrity: sha512-GuUdqkyyzQI5RMIWkHhvTWLCyLo1jNK3vzkSyaExH5kHPDHcuL2VOpHjmMY+y3+NC69qAKToBqldTBgYeLSr9Q==} 91 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 92 | 93 | '@eslint/eslintrc@2.1.4': 94 | resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==} 95 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 96 | 97 | '@eslint/eslintrc@3.2.0': 98 | resolution: {integrity: sha512-grOjVNN8P3hjJn/eIETF1wwd12DdnwFDoyceUJLYYdkpbwq3nLi+4fqrTAONx7XDALqlL220wC/RHSC/QTI/0w==} 99 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 100 | 101 | '@eslint/js@8.57.1': 102 | resolution: {integrity: sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==} 103 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 104 | 105 | '@eslint/js@9.17.0': 106 | resolution: {integrity: sha512-Sxc4hqcs1kTu0iID3kcZDW3JHq2a77HO9P8CP6YEA/FpH3Ll8UXE2r/86Rz9YJLKme39S9vU5OWNjC6Xl0Cr3w==} 107 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 108 | 109 | '@eslint/object-schema@2.1.5': 110 | resolution: {integrity: sha512-o0bhxnL89h5Bae5T318nFoFzGy+YE5i/gGkoPAgkmTVdRKTiv3p8JHevPiPaMwoloKfEiiaHlawCqaZMqRm+XQ==} 111 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 112 | 113 | '@eslint/plugin-kit@0.2.4': 114 | resolution: {integrity: sha512-zSkKow6H5Kdm0ZUQUB2kV5JIXqoG0+uH5YADhaEHswm664N9Db8dXSi0nMJpacpMf+MyyglF1vnZohpEg5yUtg==} 115 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 116 | 117 | '@humanfs/core@0.19.1': 118 | resolution: {integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==} 119 | engines: {node: '>=18.18.0'} 120 | 121 | '@humanfs/node@0.16.6': 122 | resolution: {integrity: sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==} 123 | engines: {node: '>=18.18.0'} 124 | 125 | '@humanwhocodes/config-array@0.13.0': 126 | resolution: {integrity: sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==} 127 | engines: {node: '>=10.10.0'} 128 | 129 | '@humanwhocodes/module-importer@1.0.1': 130 | resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} 131 | engines: {node: '>=12.22'} 132 | 133 | '@humanwhocodes/object-schema@2.0.3': 134 | resolution: {integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==} 135 | deprecated: Use @eslint/object-schema instead 136 | 137 | '@humanwhocodes/retry@0.3.1': 138 | resolution: {integrity: sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==} 139 | engines: {node: '>=18.18'} 140 | 141 | '@humanwhocodes/retry@0.4.1': 142 | resolution: {integrity: sha512-c7hNEllBlenFTHBky65mhq8WD2kbN9Q6gk0bTk8lSBvc554jpXSkST1iePudpt7+A/AQvuHs9EMqjHDXMY1lrA==} 143 | engines: {node: '>=18.18'} 144 | 145 | '@isaacs/cliui@8.0.2': 146 | resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} 147 | engines: {node: '>=12'} 148 | 149 | '@jridgewell/gen-mapping@0.3.8': 150 | resolution: {integrity: sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==} 151 | engines: {node: '>=6.0.0'} 152 | 153 | '@jridgewell/resolve-uri@3.1.2': 154 | resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} 155 | engines: {node: '>=6.0.0'} 156 | 157 | '@jridgewell/set-array@1.2.1': 158 | resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} 159 | engines: {node: '>=6.0.0'} 160 | 161 | '@jridgewell/sourcemap-codec@1.5.0': 162 | resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} 163 | 164 | '@jridgewell/trace-mapping@0.3.25': 165 | resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} 166 | 167 | '@nodelib/fs.scandir@2.1.5': 168 | resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} 169 | engines: {node: '>= 8'} 170 | 171 | '@nodelib/fs.stat@2.0.5': 172 | resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} 173 | engines: {node: '>= 8'} 174 | 175 | '@nodelib/fs.walk@1.2.8': 176 | resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} 177 | engines: {node: '>= 8'} 178 | 179 | '@pkgjs/parseargs@0.11.0': 180 | resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} 181 | engines: {node: '>=14'} 182 | 183 | '@rtsao/scc@1.1.0': 184 | resolution: {integrity: sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==} 185 | 186 | '@types/estree@1.0.6': 187 | resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==} 188 | 189 | '@types/json-schema@7.0.15': 190 | resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} 191 | 192 | '@types/json5@0.0.29': 193 | resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} 194 | 195 | '@ungap/structured-clone@1.2.1': 196 | resolution: {integrity: sha512-fEzPV3hSkSMltkw152tJKNARhOupqbH96MZWyRjNaYZOMIzbrTeQDG+MTc6Mr2pgzFQzFxAfmhGDNP5QK++2ZA==} 197 | 198 | acorn-jsx@5.3.2: 199 | resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} 200 | peerDependencies: 201 | acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 202 | 203 | acorn@8.14.0: 204 | resolution: {integrity: sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==} 205 | engines: {node: '>=0.4.0'} 206 | hasBin: true 207 | 208 | ajv@6.12.6: 209 | resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} 210 | 211 | ansi-colors@4.1.3: 212 | resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} 213 | engines: {node: '>=6'} 214 | 215 | ansi-regex@2.1.1: 216 | resolution: {integrity: sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==} 217 | engines: {node: '>=0.10.0'} 218 | 219 | ansi-regex@5.0.1: 220 | resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} 221 | engines: {node: '>=8'} 222 | 223 | ansi-regex@6.1.0: 224 | resolution: {integrity: sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==} 225 | engines: {node: '>=12'} 226 | 227 | ansi-styles@2.2.1: 228 | resolution: {integrity: sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==} 229 | engines: {node: '>=0.10.0'} 230 | 231 | ansi-styles@4.3.0: 232 | resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} 233 | engines: {node: '>=8'} 234 | 235 | ansi-styles@6.2.1: 236 | resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} 237 | engines: {node: '>=12'} 238 | 239 | anymatch@3.1.3: 240 | resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} 241 | engines: {node: '>= 8'} 242 | 243 | argparse@2.0.1: 244 | resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} 245 | 246 | array-buffer-byte-length@1.0.2: 247 | resolution: {integrity: sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==} 248 | engines: {node: '>= 0.4'} 249 | 250 | array-includes@3.1.8: 251 | resolution: {integrity: sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==} 252 | engines: {node: '>= 0.4'} 253 | 254 | array.prototype.findlast@1.2.5: 255 | resolution: {integrity: sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==} 256 | engines: {node: '>= 0.4'} 257 | 258 | array.prototype.findlastindex@1.2.5: 259 | resolution: {integrity: sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==} 260 | engines: {node: '>= 0.4'} 261 | 262 | array.prototype.flat@1.3.3: 263 | resolution: {integrity: sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg==} 264 | engines: {node: '>= 0.4'} 265 | 266 | array.prototype.flatmap@1.3.3: 267 | resolution: {integrity: sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg==} 268 | engines: {node: '>= 0.4'} 269 | 270 | array.prototype.tosorted@1.1.4: 271 | resolution: {integrity: sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==} 272 | engines: {node: '>= 0.4'} 273 | 274 | arraybuffer.prototype.slice@1.0.4: 275 | resolution: {integrity: sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==} 276 | engines: {node: '>= 0.4'} 277 | 278 | available-typed-arrays@1.0.7: 279 | resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} 280 | engines: {node: '>= 0.4'} 281 | 282 | balanced-match@1.0.2: 283 | resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} 284 | 285 | binary-extensions@2.3.0: 286 | resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} 287 | engines: {node: '>=8'} 288 | 289 | brace-expansion@1.1.11: 290 | resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} 291 | 292 | brace-expansion@2.0.1: 293 | resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} 294 | 295 | braces@3.0.3: 296 | resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} 297 | engines: {node: '>=8'} 298 | 299 | browser-stdout@1.3.1: 300 | resolution: {integrity: sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==} 301 | 302 | builtin-modules@1.1.1: 303 | resolution: {integrity: sha512-wxXCdllwGhI2kCC0MnvTGYTMvnVZTvqgypkiTI8Pa5tcz2i6VqsqwYGgqwXji+4RgCzms6EajE4IxiUH6HH8nQ==} 304 | engines: {node: '>=0.10.0'} 305 | 306 | builtins@5.1.0: 307 | resolution: {integrity: sha512-SW9lzGTLvWTP1AY8xeAMZimqDrIaSdLQUcVr9DMef51niJ022Ri87SwRRKYm4A6iHfkPaiVUu/Duw2Wc4J7kKg==} 308 | 309 | call-bind-apply-helpers@1.0.1: 310 | resolution: {integrity: sha512-BhYE+WDaywFg2TBWYNXAE+8B1ATnThNBqXHP5nQu0jWJdVvY2hvkpyB3qOmtmDePiS5/BDQ8wASEWGMWRG148g==} 311 | engines: {node: '>= 0.4'} 312 | 313 | call-bind@1.0.8: 314 | resolution: {integrity: sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==} 315 | engines: {node: '>= 0.4'} 316 | 317 | call-bound@1.0.3: 318 | resolution: {integrity: sha512-YTd+6wGlNlPxSuri7Y6X8tY2dmm12UMH66RpKMhiX6rsk5wXXnYgbUcOt8kiS31/AjfoTOvCsE+w8nZQLQnzHA==} 319 | engines: {node: '>= 0.4'} 320 | 321 | callsites@3.1.0: 322 | resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} 323 | engines: {node: '>=6'} 324 | 325 | camelcase@6.3.0: 326 | resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} 327 | engines: {node: '>=10'} 328 | 329 | chalk@1.1.3: 330 | resolution: {integrity: sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==} 331 | engines: {node: '>=0.10.0'} 332 | 333 | chalk@4.1.2: 334 | resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} 335 | engines: {node: '>=10'} 336 | 337 | chokidar@3.6.0: 338 | resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} 339 | engines: {node: '>= 8.10.0'} 340 | 341 | cliui@7.0.4: 342 | resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==} 343 | 344 | color-convert@2.0.1: 345 | resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} 346 | engines: {node: '>=7.0.0'} 347 | 348 | color-name@1.1.4: 349 | resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} 350 | 351 | commander@12.1.0: 352 | resolution: {integrity: sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==} 353 | engines: {node: '>=18'} 354 | 355 | commander@2.20.3: 356 | resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} 357 | 358 | concat-map@0.0.1: 359 | resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} 360 | 361 | cross-spawn@7.0.6: 362 | resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} 363 | engines: {node: '>= 8'} 364 | 365 | data-view-buffer@1.0.2: 366 | resolution: {integrity: sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==} 367 | engines: {node: '>= 0.4'} 368 | 369 | data-view-byte-length@1.0.2: 370 | resolution: {integrity: sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==} 371 | engines: {node: '>= 0.4'} 372 | 373 | data-view-byte-offset@1.0.1: 374 | resolution: {integrity: sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==} 375 | engines: {node: '>= 0.4'} 376 | 377 | debug@2.6.9: 378 | resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} 379 | peerDependencies: 380 | supports-color: '*' 381 | peerDependenciesMeta: 382 | supports-color: 383 | optional: true 384 | 385 | debug@3.2.7: 386 | resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} 387 | peerDependencies: 388 | supports-color: '*' 389 | peerDependenciesMeta: 390 | supports-color: 391 | optional: true 392 | 393 | debug@4.4.0: 394 | resolution: {integrity: sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==} 395 | engines: {node: '>=6.0'} 396 | peerDependencies: 397 | supports-color: '*' 398 | peerDependenciesMeta: 399 | supports-color: 400 | optional: true 401 | 402 | decamelize@4.0.0: 403 | resolution: {integrity: sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==} 404 | engines: {node: '>=10'} 405 | 406 | deep-is@0.1.4: 407 | resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} 408 | 409 | define-data-property@1.1.4: 410 | resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} 411 | engines: {node: '>= 0.4'} 412 | 413 | define-properties@1.2.1: 414 | resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} 415 | engines: {node: '>= 0.4'} 416 | 417 | dependency-analyze@1.3.0: 418 | resolution: {integrity: sha512-l0E5J2+8Ru1yzI0bEiCAEHzGls/KvgCIs7DN5H6IvvXDeCHEBCT+QB9cL5WH3Ehvuybd1zWgVt5mhJpIB/ZRHQ==} 419 | 420 | diff@5.2.0: 421 | resolution: {integrity: sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==} 422 | engines: {node: '>=0.3.1'} 423 | 424 | doctrine@2.1.0: 425 | resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} 426 | engines: {node: '>=0.10.0'} 427 | 428 | doctrine@3.0.0: 429 | resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} 430 | engines: {node: '>=6.0.0'} 431 | 432 | dunder-proto@1.0.1: 433 | resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} 434 | engines: {node: '>= 0.4'} 435 | 436 | eastasianwidth@0.2.0: 437 | resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} 438 | 439 | emoji-regex@8.0.0: 440 | resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} 441 | 442 | emoji-regex@9.2.2: 443 | resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} 444 | 445 | error-ex@1.3.2: 446 | resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} 447 | 448 | es-abstract@1.23.9: 449 | resolution: {integrity: sha512-py07lI0wjxAC/DcfK1S6G7iANonniZwTISvdPzk9hzeH0IZIshbuuFxLIU96OyF89Yb9hiqWn8M/bY83KY5vzA==} 450 | engines: {node: '>= 0.4'} 451 | 452 | es-define-property@1.0.1: 453 | resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==} 454 | engines: {node: '>= 0.4'} 455 | 456 | es-errors@1.3.0: 457 | resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} 458 | engines: {node: '>= 0.4'} 459 | 460 | es-iterator-helpers@1.2.1: 461 | resolution: {integrity: sha512-uDn+FE1yrDzyC0pCo961B2IHbdM8y/ACZsKD4dG6WqrjV53BADjwa7D+1aom2rsNVfLyDgU/eigvlJGJ08OQ4w==} 462 | engines: {node: '>= 0.4'} 463 | 464 | es-object-atoms@1.0.0: 465 | resolution: {integrity: sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==} 466 | engines: {node: '>= 0.4'} 467 | 468 | es-set-tostringtag@2.1.0: 469 | resolution: {integrity: sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==} 470 | engines: {node: '>= 0.4'} 471 | 472 | es-shim-unscopables@1.0.2: 473 | resolution: {integrity: sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==} 474 | 475 | es-to-primitive@1.3.0: 476 | resolution: {integrity: sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==} 477 | engines: {node: '>= 0.4'} 478 | 479 | escalade@3.2.0: 480 | resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} 481 | engines: {node: '>=6'} 482 | 483 | escape-string-regexp@1.0.5: 484 | resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} 485 | engines: {node: '>=0.8.0'} 486 | 487 | escape-string-regexp@4.0.0: 488 | resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} 489 | engines: {node: '>=10'} 490 | 491 | eslint-config-standard-jsx@11.0.0: 492 | resolution: {integrity: sha512-+1EV/R0JxEK1L0NGolAr8Iktm3Rgotx3BKwgaX+eAuSX8D952LULKtjgZD3F+e6SvibONnhLwoTi9DPxN5LvvQ==} 493 | peerDependencies: 494 | eslint: ^8.8.0 495 | eslint-plugin-react: ^7.28.0 496 | 497 | eslint-config-standard@17.1.0: 498 | resolution: {integrity: sha512-IwHwmaBNtDK4zDHQukFDW5u/aTb8+meQWZvNFWkiGmbWjD6bqyuSSBxxXKkCftCUzc1zwCH2m/baCNDLGmuO5Q==} 499 | engines: {node: '>=12.0.0'} 500 | peerDependencies: 501 | eslint: ^8.0.1 502 | eslint-plugin-import: ^2.25.2 503 | eslint-plugin-n: '^15.0.0 || ^16.0.0 ' 504 | eslint-plugin-promise: ^6.0.0 505 | 506 | eslint-import-resolver-node@0.3.9: 507 | resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} 508 | 509 | eslint-module-utils@2.12.0: 510 | resolution: {integrity: sha512-wALZ0HFoytlyh/1+4wuZ9FJCD/leWHQzzrxJ8+rebyReSLk7LApMyd3WJaLVoN+D5+WIdJyDK1c6JnE65V4Zyg==} 511 | engines: {node: '>=4'} 512 | peerDependencies: 513 | '@typescript-eslint/parser': '*' 514 | eslint: '*' 515 | eslint-import-resolver-node: '*' 516 | eslint-import-resolver-typescript: '*' 517 | eslint-import-resolver-webpack: '*' 518 | peerDependenciesMeta: 519 | '@typescript-eslint/parser': 520 | optional: true 521 | eslint: 522 | optional: true 523 | eslint-import-resolver-node: 524 | optional: true 525 | eslint-import-resolver-typescript: 526 | optional: true 527 | eslint-import-resolver-webpack: 528 | optional: true 529 | 530 | eslint-plugin-es@4.1.0: 531 | resolution: {integrity: sha512-GILhQTnjYE2WorX5Jyi5i4dz5ALWxBIdQECVQavL6s7cI76IZTDWleTHkxz/QT3kvcs2QlGHvKLYsSlPOlPXnQ==} 532 | engines: {node: '>=8.10.0'} 533 | peerDependencies: 534 | eslint: '>=4.19.1' 535 | 536 | eslint-plugin-import@2.31.0: 537 | resolution: {integrity: sha512-ixmkI62Rbc2/w8Vfxyh1jQRTdRTF52VxwRVHl/ykPAmqG+Nb7/kNn+byLP0LxPgI7zWA16Jt82SybJInmMia3A==} 538 | engines: {node: '>=4'} 539 | peerDependencies: 540 | '@typescript-eslint/parser': '*' 541 | eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9 542 | peerDependenciesMeta: 543 | '@typescript-eslint/parser': 544 | optional: true 545 | 546 | eslint-plugin-n@15.7.0: 547 | resolution: {integrity: sha512-jDex9s7D/Qial8AGVIHq4W7NswpUD5DPDL2RH8Lzd9EloWUuvUkHfv4FRLMipH5q2UtyurorBkPeNi1wVWNh3Q==} 548 | engines: {node: '>=12.22.0'} 549 | peerDependencies: 550 | eslint: '>=7.0.0' 551 | 552 | eslint-plugin-promise@6.6.0: 553 | resolution: {integrity: sha512-57Zzfw8G6+Gq7axm2Pdo3gW/Rx3h9Yywgn61uE/3elTCOePEHVrn2i5CdfBwA1BLK0Q0WqctICIUSqXZW/VprQ==} 554 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 555 | peerDependencies: 556 | eslint: ^7.0.0 || ^8.0.0 || ^9.0.0 557 | 558 | eslint-plugin-react@7.37.3: 559 | resolution: {integrity: sha512-DomWuTQPFYZwF/7c9W2fkKkStqZmBd3uugfqBYLdkZ3Hii23WzZuOLUskGxB8qkSKqftxEeGL1TB2kMhrce0jA==} 560 | engines: {node: '>=4'} 561 | peerDependencies: 562 | eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7 563 | 564 | eslint-scope@7.2.2: 565 | resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} 566 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 567 | 568 | eslint-scope@8.2.0: 569 | resolution: {integrity: sha512-PHlWUfG6lvPc3yvP5A4PNyBL1W8fkDUccmI21JUu/+GKZBoH/W5u6usENXUrWFRsyoW5ACUjFGgAFQp5gUlb/A==} 570 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 571 | 572 | eslint-utils@2.1.0: 573 | resolution: {integrity: sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==} 574 | engines: {node: '>=6'} 575 | 576 | eslint-utils@3.0.0: 577 | resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} 578 | engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} 579 | peerDependencies: 580 | eslint: '>=5' 581 | 582 | eslint-visitor-keys@1.3.0: 583 | resolution: {integrity: sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==} 584 | engines: {node: '>=4'} 585 | 586 | eslint-visitor-keys@2.1.0: 587 | resolution: {integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==} 588 | engines: {node: '>=10'} 589 | 590 | eslint-visitor-keys@3.4.3: 591 | resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} 592 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 593 | 594 | eslint-visitor-keys@4.2.0: 595 | resolution: {integrity: sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==} 596 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 597 | 598 | eslint@8.57.1: 599 | resolution: {integrity: sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==} 600 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 601 | deprecated: This version is no longer supported. Please see https://eslint.org/version-support for other options. 602 | hasBin: true 603 | 604 | eslint@9.17.0: 605 | resolution: {integrity: sha512-evtlNcpJg+cZLcnVKwsai8fExnqjGPicK7gnUtlNuzu+Fv9bI0aLpND5T44VLQtoMEnI57LoXO9XAkIXwohKrA==} 606 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 607 | hasBin: true 608 | peerDependencies: 609 | jiti: '*' 610 | peerDependenciesMeta: 611 | jiti: 612 | optional: true 613 | 614 | espree@10.3.0: 615 | resolution: {integrity: sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==} 616 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 617 | 618 | espree@9.6.1: 619 | resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} 620 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 621 | 622 | esquery@1.6.0: 623 | resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==} 624 | engines: {node: '>=0.10'} 625 | 626 | esrecurse@4.3.0: 627 | resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} 628 | engines: {node: '>=4.0'} 629 | 630 | estraverse@5.3.0: 631 | resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} 632 | engines: {node: '>=4.0'} 633 | 634 | esutils@2.0.3: 635 | resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} 636 | engines: {node: '>=0.10.0'} 637 | 638 | fast-deep-equal@3.1.3: 639 | resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} 640 | 641 | fast-json-stable-stringify@2.1.0: 642 | resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} 643 | 644 | fast-levenshtein@2.0.6: 645 | resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} 646 | 647 | fastq@1.18.0: 648 | resolution: {integrity: sha512-QKHXPW0hD8g4UET03SdOdunzSouc9N4AuHdsX8XNcTsuz+yYFILVNIX4l9yHABMhiEI9Db0JTTIpu0wB+Y1QQw==} 649 | 650 | file-entry-cache@6.0.1: 651 | resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} 652 | engines: {node: ^10.12.0 || >=12.0.0} 653 | 654 | file-entry-cache@8.0.0: 655 | resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==} 656 | engines: {node: '>=16.0.0'} 657 | 658 | fill-range@7.1.1: 659 | resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} 660 | engines: {node: '>=8'} 661 | 662 | find-up@3.0.0: 663 | resolution: {integrity: sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==} 664 | engines: {node: '>=6'} 665 | 666 | find-up@5.0.0: 667 | resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} 668 | engines: {node: '>=10'} 669 | 670 | flat-cache@3.2.0: 671 | resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} 672 | engines: {node: ^10.12.0 || >=12.0.0} 673 | 674 | flat-cache@4.0.1: 675 | resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} 676 | engines: {node: '>=16'} 677 | 678 | flat@5.0.2: 679 | resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==} 680 | hasBin: true 681 | 682 | flatted@3.3.2: 683 | resolution: {integrity: sha512-AiwGJM8YcNOaobumgtng+6NHuOqC3A7MixFeDafM3X9cIUM+xUXoS5Vfgf+OihAYe20fxqNM9yPBXJzRtZ/4eA==} 684 | 685 | for-each@0.3.3: 686 | resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} 687 | 688 | foreground-child@3.3.0: 689 | resolution: {integrity: sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==} 690 | engines: {node: '>=14'} 691 | 692 | fs.realpath@1.0.0: 693 | resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} 694 | 695 | fsevents@2.3.3: 696 | resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} 697 | engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} 698 | os: [darwin] 699 | 700 | function-bind@1.1.2: 701 | resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} 702 | 703 | function.prototype.name@1.1.8: 704 | resolution: {integrity: sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==} 705 | engines: {node: '>= 0.4'} 706 | 707 | functions-have-names@1.2.3: 708 | resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} 709 | 710 | get-caller-file@2.0.5: 711 | resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} 712 | engines: {node: 6.* || 8.* || >= 10.*} 713 | 714 | get-intrinsic@1.2.7: 715 | resolution: {integrity: sha512-VW6Pxhsrk0KAOqs3WEd0klDiF/+V7gQOpAvY1jVU/LHmaD/kQO4523aiJuikX/QAKYiW6x8Jh+RJej1almdtCA==} 716 | engines: {node: '>= 0.4'} 717 | 718 | get-proto@1.0.1: 719 | resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==} 720 | engines: {node: '>= 0.4'} 721 | 722 | get-stdin@8.0.0: 723 | resolution: {integrity: sha512-sY22aA6xchAzprjyqmSEQv4UbAAzRN0L2dQB0NlN5acTTK9Don6nhoc3eAbUnpZiCANAMfd/+40kVdKfFygohg==} 724 | engines: {node: '>=10'} 725 | 726 | get-symbol-description@1.1.0: 727 | resolution: {integrity: sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==} 728 | engines: {node: '>= 0.4'} 729 | 730 | glob-parent@5.1.2: 731 | resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} 732 | engines: {node: '>= 6'} 733 | 734 | glob-parent@6.0.2: 735 | resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} 736 | engines: {node: '>=10.13.0'} 737 | 738 | glob@10.4.5: 739 | resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} 740 | hasBin: true 741 | 742 | glob@11.0.0: 743 | resolution: {integrity: sha512-9UiX/Bl6J2yaBbxKoEBRm4Cipxgok8kQYcOPEhScPwebu2I0HoQOuYdIO6S3hLuWoZgpDpwQZMzTFxgpkyT76g==} 744 | engines: {node: 20 || >=22} 745 | hasBin: true 746 | 747 | glob@7.2.3: 748 | resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} 749 | deprecated: Glob versions prior to v9 are no longer supported 750 | 751 | globals@11.12.0: 752 | resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} 753 | engines: {node: '>=4'} 754 | 755 | globals@13.24.0: 756 | resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} 757 | engines: {node: '>=8'} 758 | 759 | globals@14.0.0: 760 | resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} 761 | engines: {node: '>=18'} 762 | 763 | globalthis@1.0.4: 764 | resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==} 765 | engines: {node: '>= 0.4'} 766 | 767 | gopd@1.2.0: 768 | resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==} 769 | engines: {node: '>= 0.4'} 770 | 771 | graceful-fs@4.2.11: 772 | resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} 773 | 774 | graphemer@1.4.0: 775 | resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} 776 | 777 | has-ansi@2.0.0: 778 | resolution: {integrity: sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==} 779 | engines: {node: '>=0.10.0'} 780 | 781 | has-bigints@1.1.0: 782 | resolution: {integrity: sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==} 783 | engines: {node: '>= 0.4'} 784 | 785 | has-flag@4.0.0: 786 | resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} 787 | engines: {node: '>=8'} 788 | 789 | has-property-descriptors@1.0.2: 790 | resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} 791 | 792 | has-proto@1.2.0: 793 | resolution: {integrity: sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==} 794 | engines: {node: '>= 0.4'} 795 | 796 | has-symbols@1.1.0: 797 | resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==} 798 | engines: {node: '>= 0.4'} 799 | 800 | has-tostringtag@1.0.2: 801 | resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} 802 | engines: {node: '>= 0.4'} 803 | 804 | hasown@2.0.2: 805 | resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} 806 | engines: {node: '>= 0.4'} 807 | 808 | he@1.2.0: 809 | resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} 810 | hasBin: true 811 | 812 | ignore@5.3.2: 813 | resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} 814 | engines: {node: '>= 4'} 815 | 816 | import-fresh@3.3.0: 817 | resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} 818 | engines: {node: '>=6'} 819 | 820 | imurmurhash@0.1.4: 821 | resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} 822 | engines: {node: '>=0.8.19'} 823 | 824 | inflight@1.0.6: 825 | resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} 826 | deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. 827 | 828 | inherits@2.0.4: 829 | resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} 830 | 831 | internal-slot@1.1.0: 832 | resolution: {integrity: sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==} 833 | engines: {node: '>= 0.4'} 834 | 835 | is-array-buffer@3.0.5: 836 | resolution: {integrity: sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==} 837 | engines: {node: '>= 0.4'} 838 | 839 | is-arrayish@0.2.1: 840 | resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} 841 | 842 | is-async-function@2.1.0: 843 | resolution: {integrity: sha512-GExz9MtyhlZyXYLxzlJRj5WUCE661zhDa1Yna52CN57AJsymh+DvXXjyveSioqSRdxvUrdKdvqB1b5cVKsNpWQ==} 844 | engines: {node: '>= 0.4'} 845 | 846 | is-bigint@1.1.0: 847 | resolution: {integrity: sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==} 848 | engines: {node: '>= 0.4'} 849 | 850 | is-binary-path@2.1.0: 851 | resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} 852 | engines: {node: '>=8'} 853 | 854 | is-boolean-object@1.2.1: 855 | resolution: {integrity: sha512-l9qO6eFlUETHtuihLcYOaLKByJ1f+N4kthcU9YjHy3N+B3hWv0y/2Nd0mu/7lTFnRQHTrSdXF50HQ3bl5fEnng==} 856 | engines: {node: '>= 0.4'} 857 | 858 | is-callable@1.2.7: 859 | resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} 860 | engines: {node: '>= 0.4'} 861 | 862 | is-core-module@2.16.1: 863 | resolution: {integrity: sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==} 864 | engines: {node: '>= 0.4'} 865 | 866 | is-data-view@1.0.2: 867 | resolution: {integrity: sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==} 868 | engines: {node: '>= 0.4'} 869 | 870 | is-date-object@1.1.0: 871 | resolution: {integrity: sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==} 872 | engines: {node: '>= 0.4'} 873 | 874 | is-extglob@2.1.1: 875 | resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} 876 | engines: {node: '>=0.10.0'} 877 | 878 | is-finalizationregistry@1.1.1: 879 | resolution: {integrity: sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==} 880 | engines: {node: '>= 0.4'} 881 | 882 | is-fullwidth-code-point@3.0.0: 883 | resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} 884 | engines: {node: '>=8'} 885 | 886 | is-generator-function@1.1.0: 887 | resolution: {integrity: sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==} 888 | engines: {node: '>= 0.4'} 889 | 890 | is-glob@4.0.3: 891 | resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} 892 | engines: {node: '>=0.10.0'} 893 | 894 | is-map@2.0.3: 895 | resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==} 896 | engines: {node: '>= 0.4'} 897 | 898 | is-number-object@1.1.1: 899 | resolution: {integrity: sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==} 900 | engines: {node: '>= 0.4'} 901 | 902 | is-number@7.0.0: 903 | resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} 904 | engines: {node: '>=0.12.0'} 905 | 906 | is-path-inside@3.0.3: 907 | resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} 908 | engines: {node: '>=8'} 909 | 910 | is-plain-obj@2.1.0: 911 | resolution: {integrity: sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==} 912 | engines: {node: '>=8'} 913 | 914 | is-regex@1.2.1: 915 | resolution: {integrity: sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==} 916 | engines: {node: '>= 0.4'} 917 | 918 | is-set@2.0.3: 919 | resolution: {integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==} 920 | engines: {node: '>= 0.4'} 921 | 922 | is-shared-array-buffer@1.0.4: 923 | resolution: {integrity: sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==} 924 | engines: {node: '>= 0.4'} 925 | 926 | is-string@1.1.1: 927 | resolution: {integrity: sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==} 928 | engines: {node: '>= 0.4'} 929 | 930 | is-symbol@1.1.1: 931 | resolution: {integrity: sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==} 932 | engines: {node: '>= 0.4'} 933 | 934 | is-typed-array@1.1.15: 935 | resolution: {integrity: sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==} 936 | engines: {node: '>= 0.4'} 937 | 938 | is-unicode-supported@0.1.0: 939 | resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} 940 | engines: {node: '>=10'} 941 | 942 | is-weakmap@2.0.2: 943 | resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==} 944 | engines: {node: '>= 0.4'} 945 | 946 | is-weakref@1.1.0: 947 | resolution: {integrity: sha512-SXM8Nwyys6nT5WP6pltOwKytLV7FqQ4UiibxVmW+EIosHcmCqkkjViTb5SNssDlkCiEYRP1/pdWUKVvZBmsR2Q==} 948 | engines: {node: '>= 0.4'} 949 | 950 | is-weakset@2.0.4: 951 | resolution: {integrity: sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==} 952 | engines: {node: '>= 0.4'} 953 | 954 | isarray@2.0.5: 955 | resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} 956 | 957 | isexe@2.0.0: 958 | resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} 959 | 960 | iterator.prototype@1.1.5: 961 | resolution: {integrity: sha512-H0dkQoCa3b2VEeKQBOxFph+JAbcrQdE7KC0UkqwpLmv2EC4P41QXP+rqo9wYodACiG5/WM5s9oDApTU8utwj9g==} 962 | engines: {node: '>= 0.4'} 963 | 964 | jackspeak@3.4.3: 965 | resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} 966 | 967 | jackspeak@4.0.2: 968 | resolution: {integrity: sha512-bZsjR/iRjl1Nk1UkjGpAzLNfQtzuijhn2g+pbZb98HQ1Gk8vM9hfbxeMBP+M2/UUdwj0RqGG3mlvk2MsAqwvEw==} 969 | engines: {node: 20 || >=22} 970 | 971 | js-tokens@4.0.0: 972 | resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} 973 | 974 | js-yaml@4.1.0: 975 | resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} 976 | hasBin: true 977 | 978 | jsesc@3.1.0: 979 | resolution: {integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==} 980 | engines: {node: '>=6'} 981 | hasBin: true 982 | 983 | json-buffer@3.0.1: 984 | resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} 985 | 986 | json-parse-better-errors@1.0.2: 987 | resolution: {integrity: sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==} 988 | 989 | json-schema-traverse@0.4.1: 990 | resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} 991 | 992 | json-stable-stringify-without-jsonify@1.0.1: 993 | resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} 994 | 995 | json5@1.0.2: 996 | resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==} 997 | hasBin: true 998 | 999 | jsx-ast-utils@3.3.5: 1000 | resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==} 1001 | engines: {node: '>=4.0'} 1002 | 1003 | keyv@4.5.4: 1004 | resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} 1005 | 1006 | levn@0.4.1: 1007 | resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} 1008 | engines: {node: '>= 0.8.0'} 1009 | 1010 | load-json-file@5.3.0: 1011 | resolution: {integrity: sha512-cJGP40Jc/VXUsp8/OrnyKyTZ1y6v/dphm3bioS+RrKXjK2BB6wHUd6JptZEFDGgGahMT+InnZO5i1Ei9mpC8Bw==} 1012 | engines: {node: '>=6'} 1013 | 1014 | locate-path@3.0.0: 1015 | resolution: {integrity: sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==} 1016 | engines: {node: '>=6'} 1017 | 1018 | locate-path@6.0.0: 1019 | resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} 1020 | engines: {node: '>=10'} 1021 | 1022 | lodash.merge@4.6.2: 1023 | resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} 1024 | 1025 | log-symbols@4.1.0: 1026 | resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==} 1027 | engines: {node: '>=10'} 1028 | 1029 | loglevel@1.9.2: 1030 | resolution: {integrity: sha512-HgMmCqIJSAKqo68l0rS2AanEWfkxaZ5wNiEFb5ggm08lDs9Xl2KxBlX3PTcaD2chBM1gXAYf491/M2Rv8Jwayg==} 1031 | engines: {node: '>= 0.6.0'} 1032 | 1033 | loose-envify@1.4.0: 1034 | resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} 1035 | hasBin: true 1036 | 1037 | lru-cache@10.4.3: 1038 | resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} 1039 | 1040 | lru-cache@11.0.2: 1041 | resolution: {integrity: sha512-123qHRfJBmo2jXDbo/a5YOQrJoHF/GNQTLzQ5+IdK5pWpceK17yRc6ozlWd25FxvGKQbIUs91fDFkXmDHTKcyA==} 1042 | engines: {node: 20 || >=22} 1043 | 1044 | math-intrinsics@1.1.0: 1045 | resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} 1046 | engines: {node: '>= 0.4'} 1047 | 1048 | minimatch@10.0.1: 1049 | resolution: {integrity: sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ==} 1050 | engines: {node: 20 || >=22} 1051 | 1052 | minimatch@3.1.2: 1053 | resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} 1054 | 1055 | minimatch@5.1.6: 1056 | resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} 1057 | engines: {node: '>=10'} 1058 | 1059 | minimatch@9.0.5: 1060 | resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} 1061 | engines: {node: '>=16 || 14 >=14.17'} 1062 | 1063 | minimist@1.2.8: 1064 | resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} 1065 | 1066 | minipass@7.1.2: 1067 | resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} 1068 | engines: {node: '>=16 || 14 >=14.17'} 1069 | 1070 | mocha@11.0.1: 1071 | resolution: {integrity: sha512-+3GkODfsDG71KSCQhc4IekSW+ItCK/kiez1Z28ksWvYhKXV/syxMlerR/sC7whDp7IyreZ4YxceMLdTs5hQE8A==} 1072 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 1073 | hasBin: true 1074 | 1075 | ms@2.0.0: 1076 | resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} 1077 | 1078 | ms@2.1.3: 1079 | resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} 1080 | 1081 | natural-compare@1.4.0: 1082 | resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} 1083 | 1084 | normalize-path@3.0.0: 1085 | resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} 1086 | engines: {node: '>=0.10.0'} 1087 | 1088 | npm-ensure@1.3.0: 1089 | resolution: {integrity: sha512-q8+ff7vg4TdP1MyDVIuUSdgxbaWYdnPY3v8FGXNSoOvpCDElcaWOL7cx7foYF2Gfxm1vtiEehSLjBRTmzArgVQ==} 1090 | hasBin: true 1091 | 1092 | object-assign@4.1.1: 1093 | resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} 1094 | engines: {node: '>=0.10.0'} 1095 | 1096 | object-inspect@1.13.3: 1097 | resolution: {integrity: sha512-kDCGIbxkDSXE3euJZZXzc6to7fCrKHNI/hSRQnRuQ+BWjFNzZwiFF8fj/6o2t2G9/jTj8PSIYTfCLelLZEeRpA==} 1098 | engines: {node: '>= 0.4'} 1099 | 1100 | object-keys@1.1.1: 1101 | resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} 1102 | engines: {node: '>= 0.4'} 1103 | 1104 | object.assign@4.1.7: 1105 | resolution: {integrity: sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==} 1106 | engines: {node: '>= 0.4'} 1107 | 1108 | object.entries@1.1.8: 1109 | resolution: {integrity: sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==} 1110 | engines: {node: '>= 0.4'} 1111 | 1112 | object.fromentries@2.0.8: 1113 | resolution: {integrity: sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==} 1114 | engines: {node: '>= 0.4'} 1115 | 1116 | object.groupby@1.0.3: 1117 | resolution: {integrity: sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==} 1118 | engines: {node: '>= 0.4'} 1119 | 1120 | object.values@1.2.1: 1121 | resolution: {integrity: sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==} 1122 | engines: {node: '>= 0.4'} 1123 | 1124 | once@1.4.0: 1125 | resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} 1126 | 1127 | optionator@0.9.4: 1128 | resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} 1129 | engines: {node: '>= 0.8.0'} 1130 | 1131 | own-keys@1.0.1: 1132 | resolution: {integrity: sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==} 1133 | engines: {node: '>= 0.4'} 1134 | 1135 | p-limit@2.3.0: 1136 | resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} 1137 | engines: {node: '>=6'} 1138 | 1139 | p-limit@3.1.0: 1140 | resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} 1141 | engines: {node: '>=10'} 1142 | 1143 | p-locate@3.0.0: 1144 | resolution: {integrity: sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==} 1145 | engines: {node: '>=6'} 1146 | 1147 | p-locate@5.0.0: 1148 | resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} 1149 | engines: {node: '>=10'} 1150 | 1151 | p-try@2.2.0: 1152 | resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} 1153 | engines: {node: '>=6'} 1154 | 1155 | package-json-from-dist@1.0.1: 1156 | resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==} 1157 | 1158 | parent-module@1.0.1: 1159 | resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} 1160 | engines: {node: '>=6'} 1161 | 1162 | parse-json@4.0.0: 1163 | resolution: {integrity: sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==} 1164 | engines: {node: '>=4'} 1165 | 1166 | path-exists@3.0.0: 1167 | resolution: {integrity: sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==} 1168 | engines: {node: '>=4'} 1169 | 1170 | path-exists@4.0.0: 1171 | resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} 1172 | engines: {node: '>=8'} 1173 | 1174 | path-is-absolute@1.0.1: 1175 | resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} 1176 | engines: {node: '>=0.10.0'} 1177 | 1178 | path-key@3.1.1: 1179 | resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} 1180 | engines: {node: '>=8'} 1181 | 1182 | path-parse@1.0.7: 1183 | resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} 1184 | 1185 | path-scurry@1.11.1: 1186 | resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} 1187 | engines: {node: '>=16 || 14 >=14.18'} 1188 | 1189 | path-scurry@2.0.0: 1190 | resolution: {integrity: sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==} 1191 | engines: {node: 20 || >=22} 1192 | 1193 | picocolors@1.1.1: 1194 | resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} 1195 | 1196 | picomatch@2.3.1: 1197 | resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} 1198 | engines: {node: '>=8.6'} 1199 | 1200 | pify@4.0.1: 1201 | resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} 1202 | engines: {node: '>=6'} 1203 | 1204 | pkg-conf@3.1.0: 1205 | resolution: {integrity: sha512-m0OTbR/5VPNPqO1ph6Fqbj7Hv6QU7gR/tQW40ZqrL1rjgCU85W6C1bJn0BItuJqnR98PWzw7Z8hHeChD1WrgdQ==} 1206 | engines: {node: '>=6'} 1207 | 1208 | possible-typed-array-names@1.0.0: 1209 | resolution: {integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==} 1210 | engines: {node: '>= 0.4'} 1211 | 1212 | prelude-ls@1.2.1: 1213 | resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} 1214 | engines: {node: '>= 0.8.0'} 1215 | 1216 | prop-types@15.8.1: 1217 | resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} 1218 | 1219 | punycode@2.3.1: 1220 | resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} 1221 | engines: {node: '>=6'} 1222 | 1223 | queue-microtask@1.2.3: 1224 | resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} 1225 | 1226 | randombytes@2.1.0: 1227 | resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} 1228 | 1229 | react-is@16.13.1: 1230 | resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} 1231 | 1232 | readdirp@3.6.0: 1233 | resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} 1234 | engines: {node: '>=8.10.0'} 1235 | 1236 | reflect.getprototypeof@1.0.10: 1237 | resolution: {integrity: sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==} 1238 | engines: {node: '>= 0.4'} 1239 | 1240 | regexp.prototype.flags@1.5.4: 1241 | resolution: {integrity: sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==} 1242 | engines: {node: '>= 0.4'} 1243 | 1244 | regexpp@3.2.0: 1245 | resolution: {integrity: sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==} 1246 | engines: {node: '>=8'} 1247 | 1248 | require-directory@2.1.1: 1249 | resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} 1250 | engines: {node: '>=0.10.0'} 1251 | 1252 | resolve-from@4.0.0: 1253 | resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} 1254 | engines: {node: '>=4'} 1255 | 1256 | resolve@1.22.10: 1257 | resolution: {integrity: sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==} 1258 | engines: {node: '>= 0.4'} 1259 | hasBin: true 1260 | 1261 | resolve@2.0.0-next.5: 1262 | resolution: {integrity: sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==} 1263 | hasBin: true 1264 | 1265 | reusify@1.0.4: 1266 | resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} 1267 | engines: {iojs: '>=1.0.0', node: '>=0.10.0'} 1268 | 1269 | rimraf@3.0.2: 1270 | resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} 1271 | deprecated: Rimraf versions prior to v4 are no longer supported 1272 | hasBin: true 1273 | 1274 | rimraf@6.0.1: 1275 | resolution: {integrity: sha512-9dkvaxAsk/xNXSJzMgFqqMCuFgt2+KsOFek3TMLfo8NCPfWpBmqwyNn5Y+NX56QUYfCtsyhF3ayiboEoUmJk/A==} 1276 | engines: {node: 20 || >=22} 1277 | hasBin: true 1278 | 1279 | run-parallel@1.2.0: 1280 | resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} 1281 | 1282 | safe-array-concat@1.1.3: 1283 | resolution: {integrity: sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==} 1284 | engines: {node: '>=0.4'} 1285 | 1286 | safe-buffer@5.2.1: 1287 | resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} 1288 | 1289 | safe-push-apply@1.0.0: 1290 | resolution: {integrity: sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==} 1291 | engines: {node: '>= 0.4'} 1292 | 1293 | safe-regex-test@1.1.0: 1294 | resolution: {integrity: sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==} 1295 | engines: {node: '>= 0.4'} 1296 | 1297 | semver@6.3.1: 1298 | resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} 1299 | hasBin: true 1300 | 1301 | semver@7.6.3: 1302 | resolution: {integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==} 1303 | engines: {node: '>=10'} 1304 | hasBin: true 1305 | 1306 | serialize-javascript@6.0.2: 1307 | resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==} 1308 | 1309 | set-function-length@1.2.2: 1310 | resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} 1311 | engines: {node: '>= 0.4'} 1312 | 1313 | set-function-name@2.0.2: 1314 | resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==} 1315 | engines: {node: '>= 0.4'} 1316 | 1317 | set-proto@1.0.0: 1318 | resolution: {integrity: sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==} 1319 | engines: {node: '>= 0.4'} 1320 | 1321 | shebang-command@2.0.0: 1322 | resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} 1323 | engines: {node: '>=8'} 1324 | 1325 | shebang-regex@3.0.0: 1326 | resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} 1327 | engines: {node: '>=8'} 1328 | 1329 | side-channel-list@1.0.0: 1330 | resolution: {integrity: sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==} 1331 | engines: {node: '>= 0.4'} 1332 | 1333 | side-channel-map@1.0.1: 1334 | resolution: {integrity: sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==} 1335 | engines: {node: '>= 0.4'} 1336 | 1337 | side-channel-weakmap@1.0.2: 1338 | resolution: {integrity: sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==} 1339 | engines: {node: '>= 0.4'} 1340 | 1341 | side-channel@1.1.0: 1342 | resolution: {integrity: sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==} 1343 | engines: {node: '>= 0.4'} 1344 | 1345 | signal-exit@4.1.0: 1346 | resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} 1347 | engines: {node: '>=14'} 1348 | 1349 | standard-engine@15.1.0: 1350 | resolution: {integrity: sha512-VHysfoyxFu/ukT+9v49d4BRXIokFRZuH3z1VRxzFArZdjSCFpro6rEIU3ji7e4AoAtuSfKBkiOmsrDqKW5ZSRw==} 1351 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 1352 | 1353 | standard@17.1.2: 1354 | resolution: {integrity: sha512-WLm12WoXveKkvnPnPnaFUUHuOB2cUdAsJ4AiGHL2G0UNMrcRAWY2WriQaV8IQ3oRmYr0AWUbLNr94ekYFAHOrA==} 1355 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 1356 | hasBin: true 1357 | 1358 | string-width@4.2.3: 1359 | resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} 1360 | engines: {node: '>=8'} 1361 | 1362 | string-width@5.1.2: 1363 | resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} 1364 | engines: {node: '>=12'} 1365 | 1366 | string.prototype.matchall@4.0.12: 1367 | resolution: {integrity: sha512-6CC9uyBL+/48dYizRf7H7VAYCMCNTBeM78x/VTUe9bFEaxBepPJDa1Ow99LqI/1yF7kuy7Q3cQsYMrcjGUcskA==} 1368 | engines: {node: '>= 0.4'} 1369 | 1370 | string.prototype.repeat@1.0.0: 1371 | resolution: {integrity: sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==} 1372 | 1373 | string.prototype.trim@1.2.10: 1374 | resolution: {integrity: sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==} 1375 | engines: {node: '>= 0.4'} 1376 | 1377 | string.prototype.trimend@1.0.9: 1378 | resolution: {integrity: sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==} 1379 | engines: {node: '>= 0.4'} 1380 | 1381 | string.prototype.trimstart@1.0.8: 1382 | resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==} 1383 | engines: {node: '>= 0.4'} 1384 | 1385 | strip-ansi@3.0.1: 1386 | resolution: {integrity: sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==} 1387 | engines: {node: '>=0.10.0'} 1388 | 1389 | strip-ansi@6.0.1: 1390 | resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} 1391 | engines: {node: '>=8'} 1392 | 1393 | strip-ansi@7.1.0: 1394 | resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} 1395 | engines: {node: '>=12'} 1396 | 1397 | strip-bom@3.0.0: 1398 | resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} 1399 | engines: {node: '>=4'} 1400 | 1401 | strip-json-comments@3.1.1: 1402 | resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} 1403 | engines: {node: '>=8'} 1404 | 1405 | supports-color@2.0.0: 1406 | resolution: {integrity: sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==} 1407 | engines: {node: '>=0.8.0'} 1408 | 1409 | supports-color@7.2.0: 1410 | resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} 1411 | engines: {node: '>=8'} 1412 | 1413 | supports-color@8.1.1: 1414 | resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} 1415 | engines: {node: '>=10'} 1416 | 1417 | supports-preserve-symlinks-flag@1.0.0: 1418 | resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} 1419 | engines: {node: '>= 0.4'} 1420 | 1421 | text-table@0.2.0: 1422 | resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} 1423 | 1424 | to-regex-range@5.0.1: 1425 | resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} 1426 | engines: {node: '>=8.0'} 1427 | 1428 | tsconfig-paths@3.15.0: 1429 | resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==} 1430 | 1431 | type-check@0.4.0: 1432 | resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} 1433 | engines: {node: '>= 0.8.0'} 1434 | 1435 | type-fest@0.20.2: 1436 | resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} 1437 | engines: {node: '>=10'} 1438 | 1439 | type-fest@0.3.1: 1440 | resolution: {integrity: sha512-cUGJnCdr4STbePCgqNFbpVNCepa+kAVohJs1sLhxzdH+gnEoOd8VhbYa7pD3zZYGiURWM2xzEII3fQcRizDkYQ==} 1441 | engines: {node: '>=6'} 1442 | 1443 | typed-array-buffer@1.0.3: 1444 | resolution: {integrity: sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==} 1445 | engines: {node: '>= 0.4'} 1446 | 1447 | typed-array-byte-length@1.0.3: 1448 | resolution: {integrity: sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==} 1449 | engines: {node: '>= 0.4'} 1450 | 1451 | typed-array-byte-offset@1.0.4: 1452 | resolution: {integrity: sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==} 1453 | engines: {node: '>= 0.4'} 1454 | 1455 | typed-array-length@1.0.7: 1456 | resolution: {integrity: sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==} 1457 | engines: {node: '>= 0.4'} 1458 | 1459 | unbox-primitive@1.1.0: 1460 | resolution: {integrity: sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==} 1461 | engines: {node: '>= 0.4'} 1462 | 1463 | uri-js@4.4.1: 1464 | resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} 1465 | 1466 | version-guard@1.1.3: 1467 | resolution: {integrity: sha512-JwPr6erhX53EWH/HCSzfy1tTFrtPXUe927wdM1jqBBeYp1OM+qPHjWbsvv6pIBduqdgxxS+ScfG7S28pzyr2DQ==} 1468 | engines: {node: '>=0.10.48'} 1469 | 1470 | which-boxed-primitive@1.1.1: 1471 | resolution: {integrity: sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==} 1472 | engines: {node: '>= 0.4'} 1473 | 1474 | which-builtin-type@1.2.1: 1475 | resolution: {integrity: sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==} 1476 | engines: {node: '>= 0.4'} 1477 | 1478 | which-collection@1.0.2: 1479 | resolution: {integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==} 1480 | engines: {node: '>= 0.4'} 1481 | 1482 | which-typed-array@1.1.18: 1483 | resolution: {integrity: sha512-qEcY+KJYlWyLH9vNbsr6/5j59AXk5ni5aakf8ldzBvGde6Iz4sxZGkJyWSAueTG7QhOvNRYb1lDdFmL5Td0QKA==} 1484 | engines: {node: '>= 0.4'} 1485 | 1486 | which@2.0.2: 1487 | resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} 1488 | engines: {node: '>= 8'} 1489 | hasBin: true 1490 | 1491 | word-wrap@1.2.5: 1492 | resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} 1493 | engines: {node: '>=0.10.0'} 1494 | 1495 | workerpool@6.5.1: 1496 | resolution: {integrity: sha512-Fs4dNYcsdpYSAfVxhnl1L5zTksjvOJxtC5hzMNl+1t9B8hTJTdKDyZ5ju7ztgPy+ft9tBFXoOlDNiOT9WUXZlA==} 1497 | 1498 | wrap-ansi@7.0.0: 1499 | resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} 1500 | engines: {node: '>=10'} 1501 | 1502 | wrap-ansi@8.1.0: 1503 | resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} 1504 | engines: {node: '>=12'} 1505 | 1506 | wrappy@1.0.2: 1507 | resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} 1508 | 1509 | xdg-basedir@4.0.0: 1510 | resolution: {integrity: sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==} 1511 | engines: {node: '>=8'} 1512 | 1513 | y18n@5.0.8: 1514 | resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} 1515 | engines: {node: '>=10'} 1516 | 1517 | yargs-parser@20.2.9: 1518 | resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==} 1519 | engines: {node: '>=10'} 1520 | 1521 | yargs-unparser@2.0.0: 1522 | resolution: {integrity: sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==} 1523 | engines: {node: '>=10'} 1524 | 1525 | yargs@16.2.0: 1526 | resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==} 1527 | engines: {node: '>=10'} 1528 | 1529 | yocto-queue@0.1.0: 1530 | resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} 1531 | engines: {node: '>=10'} 1532 | 1533 | snapshots: 1534 | 1535 | '@babel/code-frame@7.26.2': 1536 | dependencies: 1537 | '@babel/helper-validator-identifier': 7.25.9 1538 | js-tokens: 4.0.0 1539 | picocolors: 1.1.1 1540 | 1541 | '@babel/generator@7.26.3': 1542 | dependencies: 1543 | '@babel/parser': 7.26.3 1544 | '@babel/types': 7.26.3 1545 | '@jridgewell/gen-mapping': 0.3.8 1546 | '@jridgewell/trace-mapping': 0.3.25 1547 | jsesc: 3.1.0 1548 | 1549 | '@babel/helper-string-parser@7.25.9': {} 1550 | 1551 | '@babel/helper-validator-identifier@7.25.9': {} 1552 | 1553 | '@babel/parser@7.26.3': 1554 | dependencies: 1555 | '@babel/types': 7.26.3 1556 | 1557 | '@babel/template@7.25.9': 1558 | dependencies: 1559 | '@babel/code-frame': 7.26.2 1560 | '@babel/parser': 7.26.3 1561 | '@babel/types': 7.26.3 1562 | 1563 | '@babel/traverse@7.26.4': 1564 | dependencies: 1565 | '@babel/code-frame': 7.26.2 1566 | '@babel/generator': 7.26.3 1567 | '@babel/parser': 7.26.3 1568 | '@babel/template': 7.25.9 1569 | '@babel/types': 7.26.3 1570 | debug: 4.4.0(supports-color@8.1.1) 1571 | globals: 11.12.0 1572 | transitivePeerDependencies: 1573 | - supports-color 1574 | 1575 | '@babel/types@7.26.3': 1576 | dependencies: 1577 | '@babel/helper-string-parser': 7.25.9 1578 | '@babel/helper-validator-identifier': 7.25.9 1579 | 1580 | '@eslint-community/eslint-utils@4.4.1(eslint@8.57.1)': 1581 | dependencies: 1582 | eslint: 8.57.1 1583 | eslint-visitor-keys: 3.4.3 1584 | 1585 | '@eslint-community/eslint-utils@4.4.1(eslint@9.17.0)': 1586 | dependencies: 1587 | eslint: 9.17.0 1588 | eslint-visitor-keys: 3.4.3 1589 | 1590 | '@eslint-community/regexpp@4.12.1': {} 1591 | 1592 | '@eslint/config-array@0.19.1': 1593 | dependencies: 1594 | '@eslint/object-schema': 2.1.5 1595 | debug: 4.4.0(supports-color@8.1.1) 1596 | minimatch: 3.1.2 1597 | transitivePeerDependencies: 1598 | - supports-color 1599 | 1600 | '@eslint/core@0.9.1': 1601 | dependencies: 1602 | '@types/json-schema': 7.0.15 1603 | 1604 | '@eslint/eslintrc@2.1.4': 1605 | dependencies: 1606 | ajv: 6.12.6 1607 | debug: 4.4.0(supports-color@8.1.1) 1608 | espree: 9.6.1 1609 | globals: 13.24.0 1610 | ignore: 5.3.2 1611 | import-fresh: 3.3.0 1612 | js-yaml: 4.1.0 1613 | minimatch: 3.1.2 1614 | strip-json-comments: 3.1.1 1615 | transitivePeerDependencies: 1616 | - supports-color 1617 | 1618 | '@eslint/eslintrc@3.2.0': 1619 | dependencies: 1620 | ajv: 6.12.6 1621 | debug: 4.4.0(supports-color@8.1.1) 1622 | espree: 10.3.0 1623 | globals: 14.0.0 1624 | ignore: 5.3.2 1625 | import-fresh: 3.3.0 1626 | js-yaml: 4.1.0 1627 | minimatch: 3.1.2 1628 | strip-json-comments: 3.1.1 1629 | transitivePeerDependencies: 1630 | - supports-color 1631 | 1632 | '@eslint/js@8.57.1': {} 1633 | 1634 | '@eslint/js@9.17.0': {} 1635 | 1636 | '@eslint/object-schema@2.1.5': {} 1637 | 1638 | '@eslint/plugin-kit@0.2.4': 1639 | dependencies: 1640 | levn: 0.4.1 1641 | 1642 | '@humanfs/core@0.19.1': {} 1643 | 1644 | '@humanfs/node@0.16.6': 1645 | dependencies: 1646 | '@humanfs/core': 0.19.1 1647 | '@humanwhocodes/retry': 0.3.1 1648 | 1649 | '@humanwhocodes/config-array@0.13.0': 1650 | dependencies: 1651 | '@humanwhocodes/object-schema': 2.0.3 1652 | debug: 4.4.0(supports-color@8.1.1) 1653 | minimatch: 3.1.2 1654 | transitivePeerDependencies: 1655 | - supports-color 1656 | 1657 | '@humanwhocodes/module-importer@1.0.1': {} 1658 | 1659 | '@humanwhocodes/object-schema@2.0.3': {} 1660 | 1661 | '@humanwhocodes/retry@0.3.1': {} 1662 | 1663 | '@humanwhocodes/retry@0.4.1': {} 1664 | 1665 | '@isaacs/cliui@8.0.2': 1666 | dependencies: 1667 | string-width: 5.1.2 1668 | string-width-cjs: string-width@4.2.3 1669 | strip-ansi: 7.1.0 1670 | strip-ansi-cjs: strip-ansi@6.0.1 1671 | wrap-ansi: 8.1.0 1672 | wrap-ansi-cjs: wrap-ansi@7.0.0 1673 | 1674 | '@jridgewell/gen-mapping@0.3.8': 1675 | dependencies: 1676 | '@jridgewell/set-array': 1.2.1 1677 | '@jridgewell/sourcemap-codec': 1.5.0 1678 | '@jridgewell/trace-mapping': 0.3.25 1679 | 1680 | '@jridgewell/resolve-uri@3.1.2': {} 1681 | 1682 | '@jridgewell/set-array@1.2.1': {} 1683 | 1684 | '@jridgewell/sourcemap-codec@1.5.0': {} 1685 | 1686 | '@jridgewell/trace-mapping@0.3.25': 1687 | dependencies: 1688 | '@jridgewell/resolve-uri': 3.1.2 1689 | '@jridgewell/sourcemap-codec': 1.5.0 1690 | 1691 | '@nodelib/fs.scandir@2.1.5': 1692 | dependencies: 1693 | '@nodelib/fs.stat': 2.0.5 1694 | run-parallel: 1.2.0 1695 | 1696 | '@nodelib/fs.stat@2.0.5': {} 1697 | 1698 | '@nodelib/fs.walk@1.2.8': 1699 | dependencies: 1700 | '@nodelib/fs.scandir': 2.1.5 1701 | fastq: 1.18.0 1702 | 1703 | '@pkgjs/parseargs@0.11.0': 1704 | optional: true 1705 | 1706 | '@rtsao/scc@1.1.0': {} 1707 | 1708 | '@types/estree@1.0.6': {} 1709 | 1710 | '@types/json-schema@7.0.15': {} 1711 | 1712 | '@types/json5@0.0.29': {} 1713 | 1714 | '@ungap/structured-clone@1.2.1': {} 1715 | 1716 | acorn-jsx@5.3.2(acorn@8.14.0): 1717 | dependencies: 1718 | acorn: 8.14.0 1719 | 1720 | acorn@8.14.0: {} 1721 | 1722 | ajv@6.12.6: 1723 | dependencies: 1724 | fast-deep-equal: 3.1.3 1725 | fast-json-stable-stringify: 2.1.0 1726 | json-schema-traverse: 0.4.1 1727 | uri-js: 4.4.1 1728 | 1729 | ansi-colors@4.1.3: {} 1730 | 1731 | ansi-regex@2.1.1: {} 1732 | 1733 | ansi-regex@5.0.1: {} 1734 | 1735 | ansi-regex@6.1.0: {} 1736 | 1737 | ansi-styles@2.2.1: {} 1738 | 1739 | ansi-styles@4.3.0: 1740 | dependencies: 1741 | color-convert: 2.0.1 1742 | 1743 | ansi-styles@6.2.1: {} 1744 | 1745 | anymatch@3.1.3: 1746 | dependencies: 1747 | normalize-path: 3.0.0 1748 | picomatch: 2.3.1 1749 | 1750 | argparse@2.0.1: {} 1751 | 1752 | array-buffer-byte-length@1.0.2: 1753 | dependencies: 1754 | call-bound: 1.0.3 1755 | is-array-buffer: 3.0.5 1756 | 1757 | array-includes@3.1.8: 1758 | dependencies: 1759 | call-bind: 1.0.8 1760 | define-properties: 1.2.1 1761 | es-abstract: 1.23.9 1762 | es-object-atoms: 1.0.0 1763 | get-intrinsic: 1.2.7 1764 | is-string: 1.1.1 1765 | 1766 | array.prototype.findlast@1.2.5: 1767 | dependencies: 1768 | call-bind: 1.0.8 1769 | define-properties: 1.2.1 1770 | es-abstract: 1.23.9 1771 | es-errors: 1.3.0 1772 | es-object-atoms: 1.0.0 1773 | es-shim-unscopables: 1.0.2 1774 | 1775 | array.prototype.findlastindex@1.2.5: 1776 | dependencies: 1777 | call-bind: 1.0.8 1778 | define-properties: 1.2.1 1779 | es-abstract: 1.23.9 1780 | es-errors: 1.3.0 1781 | es-object-atoms: 1.0.0 1782 | es-shim-unscopables: 1.0.2 1783 | 1784 | array.prototype.flat@1.3.3: 1785 | dependencies: 1786 | call-bind: 1.0.8 1787 | define-properties: 1.2.1 1788 | es-abstract: 1.23.9 1789 | es-shim-unscopables: 1.0.2 1790 | 1791 | array.prototype.flatmap@1.3.3: 1792 | dependencies: 1793 | call-bind: 1.0.8 1794 | define-properties: 1.2.1 1795 | es-abstract: 1.23.9 1796 | es-shim-unscopables: 1.0.2 1797 | 1798 | array.prototype.tosorted@1.1.4: 1799 | dependencies: 1800 | call-bind: 1.0.8 1801 | define-properties: 1.2.1 1802 | es-abstract: 1.23.9 1803 | es-errors: 1.3.0 1804 | es-shim-unscopables: 1.0.2 1805 | 1806 | arraybuffer.prototype.slice@1.0.4: 1807 | dependencies: 1808 | array-buffer-byte-length: 1.0.2 1809 | call-bind: 1.0.8 1810 | define-properties: 1.2.1 1811 | es-abstract: 1.23.9 1812 | es-errors: 1.3.0 1813 | get-intrinsic: 1.2.7 1814 | is-array-buffer: 3.0.5 1815 | 1816 | available-typed-arrays@1.0.7: 1817 | dependencies: 1818 | possible-typed-array-names: 1.0.0 1819 | 1820 | balanced-match@1.0.2: {} 1821 | 1822 | binary-extensions@2.3.0: {} 1823 | 1824 | brace-expansion@1.1.11: 1825 | dependencies: 1826 | balanced-match: 1.0.2 1827 | concat-map: 0.0.1 1828 | 1829 | brace-expansion@2.0.1: 1830 | dependencies: 1831 | balanced-match: 1.0.2 1832 | 1833 | braces@3.0.3: 1834 | dependencies: 1835 | fill-range: 7.1.1 1836 | 1837 | browser-stdout@1.3.1: {} 1838 | 1839 | builtin-modules@1.1.1: {} 1840 | 1841 | builtins@5.1.0: 1842 | dependencies: 1843 | semver: 7.6.3 1844 | 1845 | call-bind-apply-helpers@1.0.1: 1846 | dependencies: 1847 | es-errors: 1.3.0 1848 | function-bind: 1.1.2 1849 | 1850 | call-bind@1.0.8: 1851 | dependencies: 1852 | call-bind-apply-helpers: 1.0.1 1853 | es-define-property: 1.0.1 1854 | get-intrinsic: 1.2.7 1855 | set-function-length: 1.2.2 1856 | 1857 | call-bound@1.0.3: 1858 | dependencies: 1859 | call-bind-apply-helpers: 1.0.1 1860 | get-intrinsic: 1.2.7 1861 | 1862 | callsites@3.1.0: {} 1863 | 1864 | camelcase@6.3.0: {} 1865 | 1866 | chalk@1.1.3: 1867 | dependencies: 1868 | ansi-styles: 2.2.1 1869 | escape-string-regexp: 1.0.5 1870 | has-ansi: 2.0.0 1871 | strip-ansi: 3.0.1 1872 | supports-color: 2.0.0 1873 | 1874 | chalk@4.1.2: 1875 | dependencies: 1876 | ansi-styles: 4.3.0 1877 | supports-color: 7.2.0 1878 | 1879 | chokidar@3.6.0: 1880 | dependencies: 1881 | anymatch: 3.1.3 1882 | braces: 3.0.3 1883 | glob-parent: 5.1.2 1884 | is-binary-path: 2.1.0 1885 | is-glob: 4.0.3 1886 | normalize-path: 3.0.0 1887 | readdirp: 3.6.0 1888 | optionalDependencies: 1889 | fsevents: 2.3.3 1890 | 1891 | cliui@7.0.4: 1892 | dependencies: 1893 | string-width: 4.2.3 1894 | strip-ansi: 6.0.1 1895 | wrap-ansi: 7.0.0 1896 | 1897 | color-convert@2.0.1: 1898 | dependencies: 1899 | color-name: 1.1.4 1900 | 1901 | color-name@1.1.4: {} 1902 | 1903 | commander@12.1.0: {} 1904 | 1905 | commander@2.20.3: {} 1906 | 1907 | concat-map@0.0.1: {} 1908 | 1909 | cross-spawn@7.0.6: 1910 | dependencies: 1911 | path-key: 3.1.1 1912 | shebang-command: 2.0.0 1913 | which: 2.0.2 1914 | 1915 | data-view-buffer@1.0.2: 1916 | dependencies: 1917 | call-bound: 1.0.3 1918 | es-errors: 1.3.0 1919 | is-data-view: 1.0.2 1920 | 1921 | data-view-byte-length@1.0.2: 1922 | dependencies: 1923 | call-bound: 1.0.3 1924 | es-errors: 1.3.0 1925 | is-data-view: 1.0.2 1926 | 1927 | data-view-byte-offset@1.0.1: 1928 | dependencies: 1929 | call-bound: 1.0.3 1930 | es-errors: 1.3.0 1931 | is-data-view: 1.0.2 1932 | 1933 | debug@2.6.9: 1934 | dependencies: 1935 | ms: 2.0.0 1936 | 1937 | debug@3.2.7: 1938 | dependencies: 1939 | ms: 2.1.3 1940 | 1941 | debug@4.4.0(supports-color@8.1.1): 1942 | dependencies: 1943 | ms: 2.1.3 1944 | optionalDependencies: 1945 | supports-color: 8.1.1 1946 | 1947 | decamelize@4.0.0: {} 1948 | 1949 | deep-is@0.1.4: {} 1950 | 1951 | define-data-property@1.1.4: 1952 | dependencies: 1953 | es-define-property: 1.0.1 1954 | es-errors: 1.3.0 1955 | gopd: 1.2.0 1956 | 1957 | define-properties@1.2.1: 1958 | dependencies: 1959 | define-data-property: 1.1.4 1960 | has-property-descriptors: 1.0.2 1961 | object-keys: 1.1.1 1962 | 1963 | dependency-analyze@1.3.0: 1964 | dependencies: 1965 | '@babel/parser': 7.26.3 1966 | '@babel/traverse': 7.26.4 1967 | '@babel/types': 7.26.3 1968 | debug: 2.6.9 1969 | minimatch: 3.1.2 1970 | transitivePeerDependencies: 1971 | - supports-color 1972 | 1973 | diff@5.2.0: {} 1974 | 1975 | doctrine@2.1.0: 1976 | dependencies: 1977 | esutils: 2.0.3 1978 | 1979 | doctrine@3.0.0: 1980 | dependencies: 1981 | esutils: 2.0.3 1982 | 1983 | dunder-proto@1.0.1: 1984 | dependencies: 1985 | call-bind-apply-helpers: 1.0.1 1986 | es-errors: 1.3.0 1987 | gopd: 1.2.0 1988 | 1989 | eastasianwidth@0.2.0: {} 1990 | 1991 | emoji-regex@8.0.0: {} 1992 | 1993 | emoji-regex@9.2.2: {} 1994 | 1995 | error-ex@1.3.2: 1996 | dependencies: 1997 | is-arrayish: 0.2.1 1998 | 1999 | es-abstract@1.23.9: 2000 | dependencies: 2001 | array-buffer-byte-length: 1.0.2 2002 | arraybuffer.prototype.slice: 1.0.4 2003 | available-typed-arrays: 1.0.7 2004 | call-bind: 1.0.8 2005 | call-bound: 1.0.3 2006 | data-view-buffer: 1.0.2 2007 | data-view-byte-length: 1.0.2 2008 | data-view-byte-offset: 1.0.1 2009 | es-define-property: 1.0.1 2010 | es-errors: 1.3.0 2011 | es-object-atoms: 1.0.0 2012 | es-set-tostringtag: 2.1.0 2013 | es-to-primitive: 1.3.0 2014 | function.prototype.name: 1.1.8 2015 | get-intrinsic: 1.2.7 2016 | get-proto: 1.0.1 2017 | get-symbol-description: 1.1.0 2018 | globalthis: 1.0.4 2019 | gopd: 1.2.0 2020 | has-property-descriptors: 1.0.2 2021 | has-proto: 1.2.0 2022 | has-symbols: 1.1.0 2023 | hasown: 2.0.2 2024 | internal-slot: 1.1.0 2025 | is-array-buffer: 3.0.5 2026 | is-callable: 1.2.7 2027 | is-data-view: 1.0.2 2028 | is-regex: 1.2.1 2029 | is-shared-array-buffer: 1.0.4 2030 | is-string: 1.1.1 2031 | is-typed-array: 1.1.15 2032 | is-weakref: 1.1.0 2033 | math-intrinsics: 1.1.0 2034 | object-inspect: 1.13.3 2035 | object-keys: 1.1.1 2036 | object.assign: 4.1.7 2037 | own-keys: 1.0.1 2038 | regexp.prototype.flags: 1.5.4 2039 | safe-array-concat: 1.1.3 2040 | safe-push-apply: 1.0.0 2041 | safe-regex-test: 1.1.0 2042 | set-proto: 1.0.0 2043 | string.prototype.trim: 1.2.10 2044 | string.prototype.trimend: 1.0.9 2045 | string.prototype.trimstart: 1.0.8 2046 | typed-array-buffer: 1.0.3 2047 | typed-array-byte-length: 1.0.3 2048 | typed-array-byte-offset: 1.0.4 2049 | typed-array-length: 1.0.7 2050 | unbox-primitive: 1.1.0 2051 | which-typed-array: 1.1.18 2052 | 2053 | es-define-property@1.0.1: {} 2054 | 2055 | es-errors@1.3.0: {} 2056 | 2057 | es-iterator-helpers@1.2.1: 2058 | dependencies: 2059 | call-bind: 1.0.8 2060 | call-bound: 1.0.3 2061 | define-properties: 1.2.1 2062 | es-abstract: 1.23.9 2063 | es-errors: 1.3.0 2064 | es-set-tostringtag: 2.1.0 2065 | function-bind: 1.1.2 2066 | get-intrinsic: 1.2.7 2067 | globalthis: 1.0.4 2068 | gopd: 1.2.0 2069 | has-property-descriptors: 1.0.2 2070 | has-proto: 1.2.0 2071 | has-symbols: 1.1.0 2072 | internal-slot: 1.1.0 2073 | iterator.prototype: 1.1.5 2074 | safe-array-concat: 1.1.3 2075 | 2076 | es-object-atoms@1.0.0: 2077 | dependencies: 2078 | es-errors: 1.3.0 2079 | 2080 | es-set-tostringtag@2.1.0: 2081 | dependencies: 2082 | es-errors: 1.3.0 2083 | get-intrinsic: 1.2.7 2084 | has-tostringtag: 1.0.2 2085 | hasown: 2.0.2 2086 | 2087 | es-shim-unscopables@1.0.2: 2088 | dependencies: 2089 | hasown: 2.0.2 2090 | 2091 | es-to-primitive@1.3.0: 2092 | dependencies: 2093 | is-callable: 1.2.7 2094 | is-date-object: 1.1.0 2095 | is-symbol: 1.1.1 2096 | 2097 | escalade@3.2.0: {} 2098 | 2099 | escape-string-regexp@1.0.5: {} 2100 | 2101 | escape-string-regexp@4.0.0: {} 2102 | 2103 | eslint-config-standard-jsx@11.0.0(eslint-plugin-react@7.37.3(eslint@8.57.1))(eslint@8.57.1): 2104 | dependencies: 2105 | eslint: 8.57.1 2106 | eslint-plugin-react: 7.37.3(eslint@8.57.1) 2107 | 2108 | eslint-config-standard@17.1.0(eslint-plugin-import@2.31.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1): 2109 | dependencies: 2110 | eslint: 8.57.1 2111 | eslint-plugin-import: 2.31.0(eslint@8.57.1) 2112 | eslint-plugin-n: 15.7.0(eslint@8.57.1) 2113 | eslint-plugin-promise: 6.6.0(eslint@8.57.1) 2114 | 2115 | eslint-import-resolver-node@0.3.9: 2116 | dependencies: 2117 | debug: 3.2.7 2118 | is-core-module: 2.16.1 2119 | resolve: 1.22.10 2120 | transitivePeerDependencies: 2121 | - supports-color 2122 | 2123 | eslint-module-utils@2.12.0(eslint-import-resolver-node@0.3.9)(eslint@8.57.1): 2124 | dependencies: 2125 | debug: 3.2.7 2126 | optionalDependencies: 2127 | eslint: 8.57.1 2128 | eslint-import-resolver-node: 0.3.9 2129 | transitivePeerDependencies: 2130 | - supports-color 2131 | 2132 | eslint-plugin-es@4.1.0(eslint@8.57.1): 2133 | dependencies: 2134 | eslint: 8.57.1 2135 | eslint-utils: 2.1.0 2136 | regexpp: 3.2.0 2137 | 2138 | eslint-plugin-import@2.31.0(eslint@8.57.1): 2139 | dependencies: 2140 | '@rtsao/scc': 1.1.0 2141 | array-includes: 3.1.8 2142 | array.prototype.findlastindex: 1.2.5 2143 | array.prototype.flat: 1.3.3 2144 | array.prototype.flatmap: 1.3.3 2145 | debug: 3.2.7 2146 | doctrine: 2.1.0 2147 | eslint: 8.57.1 2148 | eslint-import-resolver-node: 0.3.9 2149 | eslint-module-utils: 2.12.0(eslint-import-resolver-node@0.3.9)(eslint@8.57.1) 2150 | hasown: 2.0.2 2151 | is-core-module: 2.16.1 2152 | is-glob: 4.0.3 2153 | minimatch: 3.1.2 2154 | object.fromentries: 2.0.8 2155 | object.groupby: 1.0.3 2156 | object.values: 1.2.1 2157 | semver: 6.3.1 2158 | string.prototype.trimend: 1.0.9 2159 | tsconfig-paths: 3.15.0 2160 | transitivePeerDependencies: 2161 | - eslint-import-resolver-typescript 2162 | - eslint-import-resolver-webpack 2163 | - supports-color 2164 | 2165 | eslint-plugin-n@15.7.0(eslint@8.57.1): 2166 | dependencies: 2167 | builtins: 5.1.0 2168 | eslint: 8.57.1 2169 | eslint-plugin-es: 4.1.0(eslint@8.57.1) 2170 | eslint-utils: 3.0.0(eslint@8.57.1) 2171 | ignore: 5.3.2 2172 | is-core-module: 2.16.1 2173 | minimatch: 3.1.2 2174 | resolve: 1.22.10 2175 | semver: 7.6.3 2176 | 2177 | eslint-plugin-promise@6.6.0(eslint@8.57.1): 2178 | dependencies: 2179 | eslint: 8.57.1 2180 | 2181 | eslint-plugin-react@7.37.3(eslint@8.57.1): 2182 | dependencies: 2183 | array-includes: 3.1.8 2184 | array.prototype.findlast: 1.2.5 2185 | array.prototype.flatmap: 1.3.3 2186 | array.prototype.tosorted: 1.1.4 2187 | doctrine: 2.1.0 2188 | es-iterator-helpers: 1.2.1 2189 | eslint: 8.57.1 2190 | estraverse: 5.3.0 2191 | hasown: 2.0.2 2192 | jsx-ast-utils: 3.3.5 2193 | minimatch: 3.1.2 2194 | object.entries: 1.1.8 2195 | object.fromentries: 2.0.8 2196 | object.values: 1.2.1 2197 | prop-types: 15.8.1 2198 | resolve: 2.0.0-next.5 2199 | semver: 6.3.1 2200 | string.prototype.matchall: 4.0.12 2201 | string.prototype.repeat: 1.0.0 2202 | 2203 | eslint-scope@7.2.2: 2204 | dependencies: 2205 | esrecurse: 4.3.0 2206 | estraverse: 5.3.0 2207 | 2208 | eslint-scope@8.2.0: 2209 | dependencies: 2210 | esrecurse: 4.3.0 2211 | estraverse: 5.3.0 2212 | 2213 | eslint-utils@2.1.0: 2214 | dependencies: 2215 | eslint-visitor-keys: 1.3.0 2216 | 2217 | eslint-utils@3.0.0(eslint@8.57.1): 2218 | dependencies: 2219 | eslint: 8.57.1 2220 | eslint-visitor-keys: 2.1.0 2221 | 2222 | eslint-visitor-keys@1.3.0: {} 2223 | 2224 | eslint-visitor-keys@2.1.0: {} 2225 | 2226 | eslint-visitor-keys@3.4.3: {} 2227 | 2228 | eslint-visitor-keys@4.2.0: {} 2229 | 2230 | eslint@8.57.1: 2231 | dependencies: 2232 | '@eslint-community/eslint-utils': 4.4.1(eslint@8.57.1) 2233 | '@eslint-community/regexpp': 4.12.1 2234 | '@eslint/eslintrc': 2.1.4 2235 | '@eslint/js': 8.57.1 2236 | '@humanwhocodes/config-array': 0.13.0 2237 | '@humanwhocodes/module-importer': 1.0.1 2238 | '@nodelib/fs.walk': 1.2.8 2239 | '@ungap/structured-clone': 1.2.1 2240 | ajv: 6.12.6 2241 | chalk: 4.1.2 2242 | cross-spawn: 7.0.6 2243 | debug: 4.4.0(supports-color@8.1.1) 2244 | doctrine: 3.0.0 2245 | escape-string-regexp: 4.0.0 2246 | eslint-scope: 7.2.2 2247 | eslint-visitor-keys: 3.4.3 2248 | espree: 9.6.1 2249 | esquery: 1.6.0 2250 | esutils: 2.0.3 2251 | fast-deep-equal: 3.1.3 2252 | file-entry-cache: 6.0.1 2253 | find-up: 5.0.0 2254 | glob-parent: 6.0.2 2255 | globals: 13.24.0 2256 | graphemer: 1.4.0 2257 | ignore: 5.3.2 2258 | imurmurhash: 0.1.4 2259 | is-glob: 4.0.3 2260 | is-path-inside: 3.0.3 2261 | js-yaml: 4.1.0 2262 | json-stable-stringify-without-jsonify: 1.0.1 2263 | levn: 0.4.1 2264 | lodash.merge: 4.6.2 2265 | minimatch: 3.1.2 2266 | natural-compare: 1.4.0 2267 | optionator: 0.9.4 2268 | strip-ansi: 6.0.1 2269 | text-table: 0.2.0 2270 | transitivePeerDependencies: 2271 | - supports-color 2272 | 2273 | eslint@9.17.0: 2274 | dependencies: 2275 | '@eslint-community/eslint-utils': 4.4.1(eslint@9.17.0) 2276 | '@eslint-community/regexpp': 4.12.1 2277 | '@eslint/config-array': 0.19.1 2278 | '@eslint/core': 0.9.1 2279 | '@eslint/eslintrc': 3.2.0 2280 | '@eslint/js': 9.17.0 2281 | '@eslint/plugin-kit': 0.2.4 2282 | '@humanfs/node': 0.16.6 2283 | '@humanwhocodes/module-importer': 1.0.1 2284 | '@humanwhocodes/retry': 0.4.1 2285 | '@types/estree': 1.0.6 2286 | '@types/json-schema': 7.0.15 2287 | ajv: 6.12.6 2288 | chalk: 4.1.2 2289 | cross-spawn: 7.0.6 2290 | debug: 4.4.0(supports-color@8.1.1) 2291 | escape-string-regexp: 4.0.0 2292 | eslint-scope: 8.2.0 2293 | eslint-visitor-keys: 4.2.0 2294 | espree: 10.3.0 2295 | esquery: 1.6.0 2296 | esutils: 2.0.3 2297 | fast-deep-equal: 3.1.3 2298 | file-entry-cache: 8.0.0 2299 | find-up: 5.0.0 2300 | glob-parent: 6.0.2 2301 | ignore: 5.3.2 2302 | imurmurhash: 0.1.4 2303 | is-glob: 4.0.3 2304 | json-stable-stringify-without-jsonify: 1.0.1 2305 | lodash.merge: 4.6.2 2306 | minimatch: 3.1.2 2307 | natural-compare: 1.4.0 2308 | optionator: 0.9.4 2309 | transitivePeerDependencies: 2310 | - supports-color 2311 | 2312 | espree@10.3.0: 2313 | dependencies: 2314 | acorn: 8.14.0 2315 | acorn-jsx: 5.3.2(acorn@8.14.0) 2316 | eslint-visitor-keys: 4.2.0 2317 | 2318 | espree@9.6.1: 2319 | dependencies: 2320 | acorn: 8.14.0 2321 | acorn-jsx: 5.3.2(acorn@8.14.0) 2322 | eslint-visitor-keys: 3.4.3 2323 | 2324 | esquery@1.6.0: 2325 | dependencies: 2326 | estraverse: 5.3.0 2327 | 2328 | esrecurse@4.3.0: 2329 | dependencies: 2330 | estraverse: 5.3.0 2331 | 2332 | estraverse@5.3.0: {} 2333 | 2334 | esutils@2.0.3: {} 2335 | 2336 | fast-deep-equal@3.1.3: {} 2337 | 2338 | fast-json-stable-stringify@2.1.0: {} 2339 | 2340 | fast-levenshtein@2.0.6: {} 2341 | 2342 | fastq@1.18.0: 2343 | dependencies: 2344 | reusify: 1.0.4 2345 | 2346 | file-entry-cache@6.0.1: 2347 | dependencies: 2348 | flat-cache: 3.2.0 2349 | 2350 | file-entry-cache@8.0.0: 2351 | dependencies: 2352 | flat-cache: 4.0.1 2353 | 2354 | fill-range@7.1.1: 2355 | dependencies: 2356 | to-regex-range: 5.0.1 2357 | 2358 | find-up@3.0.0: 2359 | dependencies: 2360 | locate-path: 3.0.0 2361 | 2362 | find-up@5.0.0: 2363 | dependencies: 2364 | locate-path: 6.0.0 2365 | path-exists: 4.0.0 2366 | 2367 | flat-cache@3.2.0: 2368 | dependencies: 2369 | flatted: 3.3.2 2370 | keyv: 4.5.4 2371 | rimraf: 3.0.2 2372 | 2373 | flat-cache@4.0.1: 2374 | dependencies: 2375 | flatted: 3.3.2 2376 | keyv: 4.5.4 2377 | 2378 | flat@5.0.2: {} 2379 | 2380 | flatted@3.3.2: {} 2381 | 2382 | for-each@0.3.3: 2383 | dependencies: 2384 | is-callable: 1.2.7 2385 | 2386 | foreground-child@3.3.0: 2387 | dependencies: 2388 | cross-spawn: 7.0.6 2389 | signal-exit: 4.1.0 2390 | 2391 | fs.realpath@1.0.0: {} 2392 | 2393 | fsevents@2.3.3: 2394 | optional: true 2395 | 2396 | function-bind@1.1.2: {} 2397 | 2398 | function.prototype.name@1.1.8: 2399 | dependencies: 2400 | call-bind: 1.0.8 2401 | call-bound: 1.0.3 2402 | define-properties: 1.2.1 2403 | functions-have-names: 1.2.3 2404 | hasown: 2.0.2 2405 | is-callable: 1.2.7 2406 | 2407 | functions-have-names@1.2.3: {} 2408 | 2409 | get-caller-file@2.0.5: {} 2410 | 2411 | get-intrinsic@1.2.7: 2412 | dependencies: 2413 | call-bind-apply-helpers: 1.0.1 2414 | es-define-property: 1.0.1 2415 | es-errors: 1.3.0 2416 | es-object-atoms: 1.0.0 2417 | function-bind: 1.1.2 2418 | get-proto: 1.0.1 2419 | gopd: 1.2.0 2420 | has-symbols: 1.1.0 2421 | hasown: 2.0.2 2422 | math-intrinsics: 1.1.0 2423 | 2424 | get-proto@1.0.1: 2425 | dependencies: 2426 | dunder-proto: 1.0.1 2427 | es-object-atoms: 1.0.0 2428 | 2429 | get-stdin@8.0.0: {} 2430 | 2431 | get-symbol-description@1.1.0: 2432 | dependencies: 2433 | call-bound: 1.0.3 2434 | es-errors: 1.3.0 2435 | get-intrinsic: 1.2.7 2436 | 2437 | glob-parent@5.1.2: 2438 | dependencies: 2439 | is-glob: 4.0.3 2440 | 2441 | glob-parent@6.0.2: 2442 | dependencies: 2443 | is-glob: 4.0.3 2444 | 2445 | glob@10.4.5: 2446 | dependencies: 2447 | foreground-child: 3.3.0 2448 | jackspeak: 3.4.3 2449 | minimatch: 9.0.5 2450 | minipass: 7.1.2 2451 | package-json-from-dist: 1.0.1 2452 | path-scurry: 1.11.1 2453 | 2454 | glob@11.0.0: 2455 | dependencies: 2456 | foreground-child: 3.3.0 2457 | jackspeak: 4.0.2 2458 | minimatch: 10.0.1 2459 | minipass: 7.1.2 2460 | package-json-from-dist: 1.0.1 2461 | path-scurry: 2.0.0 2462 | 2463 | glob@7.2.3: 2464 | dependencies: 2465 | fs.realpath: 1.0.0 2466 | inflight: 1.0.6 2467 | inherits: 2.0.4 2468 | minimatch: 3.1.2 2469 | once: 1.4.0 2470 | path-is-absolute: 1.0.1 2471 | 2472 | globals@11.12.0: {} 2473 | 2474 | globals@13.24.0: 2475 | dependencies: 2476 | type-fest: 0.20.2 2477 | 2478 | globals@14.0.0: {} 2479 | 2480 | globalthis@1.0.4: 2481 | dependencies: 2482 | define-properties: 1.2.1 2483 | gopd: 1.2.0 2484 | 2485 | gopd@1.2.0: {} 2486 | 2487 | graceful-fs@4.2.11: {} 2488 | 2489 | graphemer@1.4.0: {} 2490 | 2491 | has-ansi@2.0.0: 2492 | dependencies: 2493 | ansi-regex: 2.1.1 2494 | 2495 | has-bigints@1.1.0: {} 2496 | 2497 | has-flag@4.0.0: {} 2498 | 2499 | has-property-descriptors@1.0.2: 2500 | dependencies: 2501 | es-define-property: 1.0.1 2502 | 2503 | has-proto@1.2.0: 2504 | dependencies: 2505 | dunder-proto: 1.0.1 2506 | 2507 | has-symbols@1.1.0: {} 2508 | 2509 | has-tostringtag@1.0.2: 2510 | dependencies: 2511 | has-symbols: 1.1.0 2512 | 2513 | hasown@2.0.2: 2514 | dependencies: 2515 | function-bind: 1.1.2 2516 | 2517 | he@1.2.0: {} 2518 | 2519 | ignore@5.3.2: {} 2520 | 2521 | import-fresh@3.3.0: 2522 | dependencies: 2523 | parent-module: 1.0.1 2524 | resolve-from: 4.0.0 2525 | 2526 | imurmurhash@0.1.4: {} 2527 | 2528 | inflight@1.0.6: 2529 | dependencies: 2530 | once: 1.4.0 2531 | wrappy: 1.0.2 2532 | 2533 | inherits@2.0.4: {} 2534 | 2535 | internal-slot@1.1.0: 2536 | dependencies: 2537 | es-errors: 1.3.0 2538 | hasown: 2.0.2 2539 | side-channel: 1.1.0 2540 | 2541 | is-array-buffer@3.0.5: 2542 | dependencies: 2543 | call-bind: 1.0.8 2544 | call-bound: 1.0.3 2545 | get-intrinsic: 1.2.7 2546 | 2547 | is-arrayish@0.2.1: {} 2548 | 2549 | is-async-function@2.1.0: 2550 | dependencies: 2551 | call-bound: 1.0.3 2552 | get-proto: 1.0.1 2553 | has-tostringtag: 1.0.2 2554 | safe-regex-test: 1.1.0 2555 | 2556 | is-bigint@1.1.0: 2557 | dependencies: 2558 | has-bigints: 1.1.0 2559 | 2560 | is-binary-path@2.1.0: 2561 | dependencies: 2562 | binary-extensions: 2.3.0 2563 | 2564 | is-boolean-object@1.2.1: 2565 | dependencies: 2566 | call-bound: 1.0.3 2567 | has-tostringtag: 1.0.2 2568 | 2569 | is-callable@1.2.7: {} 2570 | 2571 | is-core-module@2.16.1: 2572 | dependencies: 2573 | hasown: 2.0.2 2574 | 2575 | is-data-view@1.0.2: 2576 | dependencies: 2577 | call-bound: 1.0.3 2578 | get-intrinsic: 1.2.7 2579 | is-typed-array: 1.1.15 2580 | 2581 | is-date-object@1.1.0: 2582 | dependencies: 2583 | call-bound: 1.0.3 2584 | has-tostringtag: 1.0.2 2585 | 2586 | is-extglob@2.1.1: {} 2587 | 2588 | is-finalizationregistry@1.1.1: 2589 | dependencies: 2590 | call-bound: 1.0.3 2591 | 2592 | is-fullwidth-code-point@3.0.0: {} 2593 | 2594 | is-generator-function@1.1.0: 2595 | dependencies: 2596 | call-bound: 1.0.3 2597 | get-proto: 1.0.1 2598 | has-tostringtag: 1.0.2 2599 | safe-regex-test: 1.1.0 2600 | 2601 | is-glob@4.0.3: 2602 | dependencies: 2603 | is-extglob: 2.1.1 2604 | 2605 | is-map@2.0.3: {} 2606 | 2607 | is-number-object@1.1.1: 2608 | dependencies: 2609 | call-bound: 1.0.3 2610 | has-tostringtag: 1.0.2 2611 | 2612 | is-number@7.0.0: {} 2613 | 2614 | is-path-inside@3.0.3: {} 2615 | 2616 | is-plain-obj@2.1.0: {} 2617 | 2618 | is-regex@1.2.1: 2619 | dependencies: 2620 | call-bound: 1.0.3 2621 | gopd: 1.2.0 2622 | has-tostringtag: 1.0.2 2623 | hasown: 2.0.2 2624 | 2625 | is-set@2.0.3: {} 2626 | 2627 | is-shared-array-buffer@1.0.4: 2628 | dependencies: 2629 | call-bound: 1.0.3 2630 | 2631 | is-string@1.1.1: 2632 | dependencies: 2633 | call-bound: 1.0.3 2634 | has-tostringtag: 1.0.2 2635 | 2636 | is-symbol@1.1.1: 2637 | dependencies: 2638 | call-bound: 1.0.3 2639 | has-symbols: 1.1.0 2640 | safe-regex-test: 1.1.0 2641 | 2642 | is-typed-array@1.1.15: 2643 | dependencies: 2644 | which-typed-array: 1.1.18 2645 | 2646 | is-unicode-supported@0.1.0: {} 2647 | 2648 | is-weakmap@2.0.2: {} 2649 | 2650 | is-weakref@1.1.0: 2651 | dependencies: 2652 | call-bound: 1.0.3 2653 | 2654 | is-weakset@2.0.4: 2655 | dependencies: 2656 | call-bound: 1.0.3 2657 | get-intrinsic: 1.2.7 2658 | 2659 | isarray@2.0.5: {} 2660 | 2661 | isexe@2.0.0: {} 2662 | 2663 | iterator.prototype@1.1.5: 2664 | dependencies: 2665 | define-data-property: 1.1.4 2666 | es-object-atoms: 1.0.0 2667 | get-intrinsic: 1.2.7 2668 | get-proto: 1.0.1 2669 | has-symbols: 1.1.0 2670 | set-function-name: 2.0.2 2671 | 2672 | jackspeak@3.4.3: 2673 | dependencies: 2674 | '@isaacs/cliui': 8.0.2 2675 | optionalDependencies: 2676 | '@pkgjs/parseargs': 0.11.0 2677 | 2678 | jackspeak@4.0.2: 2679 | dependencies: 2680 | '@isaacs/cliui': 8.0.2 2681 | 2682 | js-tokens@4.0.0: {} 2683 | 2684 | js-yaml@4.1.0: 2685 | dependencies: 2686 | argparse: 2.0.1 2687 | 2688 | jsesc@3.1.0: {} 2689 | 2690 | json-buffer@3.0.1: {} 2691 | 2692 | json-parse-better-errors@1.0.2: {} 2693 | 2694 | json-schema-traverse@0.4.1: {} 2695 | 2696 | json-stable-stringify-without-jsonify@1.0.1: {} 2697 | 2698 | json5@1.0.2: 2699 | dependencies: 2700 | minimist: 1.2.8 2701 | 2702 | jsx-ast-utils@3.3.5: 2703 | dependencies: 2704 | array-includes: 3.1.8 2705 | array.prototype.flat: 1.3.3 2706 | object.assign: 4.1.7 2707 | object.values: 1.2.1 2708 | 2709 | keyv@4.5.4: 2710 | dependencies: 2711 | json-buffer: 3.0.1 2712 | 2713 | levn@0.4.1: 2714 | dependencies: 2715 | prelude-ls: 1.2.1 2716 | type-check: 0.4.0 2717 | 2718 | load-json-file@5.3.0: 2719 | dependencies: 2720 | graceful-fs: 4.2.11 2721 | parse-json: 4.0.0 2722 | pify: 4.0.1 2723 | strip-bom: 3.0.0 2724 | type-fest: 0.3.1 2725 | 2726 | locate-path@3.0.0: 2727 | dependencies: 2728 | p-locate: 3.0.0 2729 | path-exists: 3.0.0 2730 | 2731 | locate-path@6.0.0: 2732 | dependencies: 2733 | p-locate: 5.0.0 2734 | 2735 | lodash.merge@4.6.2: {} 2736 | 2737 | log-symbols@4.1.0: 2738 | dependencies: 2739 | chalk: 4.1.2 2740 | is-unicode-supported: 0.1.0 2741 | 2742 | loglevel@1.9.2: {} 2743 | 2744 | loose-envify@1.4.0: 2745 | dependencies: 2746 | js-tokens: 4.0.0 2747 | 2748 | lru-cache@10.4.3: {} 2749 | 2750 | lru-cache@11.0.2: {} 2751 | 2752 | math-intrinsics@1.1.0: {} 2753 | 2754 | minimatch@10.0.1: 2755 | dependencies: 2756 | brace-expansion: 2.0.1 2757 | 2758 | minimatch@3.1.2: 2759 | dependencies: 2760 | brace-expansion: 1.1.11 2761 | 2762 | minimatch@5.1.6: 2763 | dependencies: 2764 | brace-expansion: 2.0.1 2765 | 2766 | minimatch@9.0.5: 2767 | dependencies: 2768 | brace-expansion: 2.0.1 2769 | 2770 | minimist@1.2.8: {} 2771 | 2772 | minipass@7.1.2: {} 2773 | 2774 | mocha@11.0.1: 2775 | dependencies: 2776 | ansi-colors: 4.1.3 2777 | browser-stdout: 1.3.1 2778 | chokidar: 3.6.0 2779 | debug: 4.4.0(supports-color@8.1.1) 2780 | diff: 5.2.0 2781 | escape-string-regexp: 4.0.0 2782 | find-up: 5.0.0 2783 | glob: 10.4.5 2784 | he: 1.2.0 2785 | js-yaml: 4.1.0 2786 | log-symbols: 4.1.0 2787 | minimatch: 5.1.6 2788 | ms: 2.1.3 2789 | serialize-javascript: 6.0.2 2790 | strip-json-comments: 3.1.1 2791 | supports-color: 8.1.1 2792 | workerpool: 6.5.1 2793 | yargs: 16.2.0 2794 | yargs-parser: 20.2.9 2795 | yargs-unparser: 2.0.0 2796 | 2797 | ms@2.0.0: {} 2798 | 2799 | ms@2.1.3: {} 2800 | 2801 | natural-compare@1.4.0: {} 2802 | 2803 | normalize-path@3.0.0: {} 2804 | 2805 | npm-ensure@1.3.0: 2806 | dependencies: 2807 | builtin-modules: 1.1.1 2808 | chalk: 1.1.3 2809 | commander: 2.20.3 2810 | debug: 2.6.9 2811 | dependency-analyze: 1.3.0 2812 | glob: 7.2.3 2813 | minimatch: 3.1.2 2814 | transitivePeerDependencies: 2815 | - supports-color 2816 | 2817 | object-assign@4.1.1: {} 2818 | 2819 | object-inspect@1.13.3: {} 2820 | 2821 | object-keys@1.1.1: {} 2822 | 2823 | object.assign@4.1.7: 2824 | dependencies: 2825 | call-bind: 1.0.8 2826 | call-bound: 1.0.3 2827 | define-properties: 1.2.1 2828 | es-object-atoms: 1.0.0 2829 | has-symbols: 1.1.0 2830 | object-keys: 1.1.1 2831 | 2832 | object.entries@1.1.8: 2833 | dependencies: 2834 | call-bind: 1.0.8 2835 | define-properties: 1.2.1 2836 | es-object-atoms: 1.0.0 2837 | 2838 | object.fromentries@2.0.8: 2839 | dependencies: 2840 | call-bind: 1.0.8 2841 | define-properties: 1.2.1 2842 | es-abstract: 1.23.9 2843 | es-object-atoms: 1.0.0 2844 | 2845 | object.groupby@1.0.3: 2846 | dependencies: 2847 | call-bind: 1.0.8 2848 | define-properties: 1.2.1 2849 | es-abstract: 1.23.9 2850 | 2851 | object.values@1.2.1: 2852 | dependencies: 2853 | call-bind: 1.0.8 2854 | call-bound: 1.0.3 2855 | define-properties: 1.2.1 2856 | es-object-atoms: 1.0.0 2857 | 2858 | once@1.4.0: 2859 | dependencies: 2860 | wrappy: 1.0.2 2861 | 2862 | optionator@0.9.4: 2863 | dependencies: 2864 | deep-is: 0.1.4 2865 | fast-levenshtein: 2.0.6 2866 | levn: 0.4.1 2867 | prelude-ls: 1.2.1 2868 | type-check: 0.4.0 2869 | word-wrap: 1.2.5 2870 | 2871 | own-keys@1.0.1: 2872 | dependencies: 2873 | get-intrinsic: 1.2.7 2874 | object-keys: 1.1.1 2875 | safe-push-apply: 1.0.0 2876 | 2877 | p-limit@2.3.0: 2878 | dependencies: 2879 | p-try: 2.2.0 2880 | 2881 | p-limit@3.1.0: 2882 | dependencies: 2883 | yocto-queue: 0.1.0 2884 | 2885 | p-locate@3.0.0: 2886 | dependencies: 2887 | p-limit: 2.3.0 2888 | 2889 | p-locate@5.0.0: 2890 | dependencies: 2891 | p-limit: 3.1.0 2892 | 2893 | p-try@2.2.0: {} 2894 | 2895 | package-json-from-dist@1.0.1: {} 2896 | 2897 | parent-module@1.0.1: 2898 | dependencies: 2899 | callsites: 3.1.0 2900 | 2901 | parse-json@4.0.0: 2902 | dependencies: 2903 | error-ex: 1.3.2 2904 | json-parse-better-errors: 1.0.2 2905 | 2906 | path-exists@3.0.0: {} 2907 | 2908 | path-exists@4.0.0: {} 2909 | 2910 | path-is-absolute@1.0.1: {} 2911 | 2912 | path-key@3.1.1: {} 2913 | 2914 | path-parse@1.0.7: {} 2915 | 2916 | path-scurry@1.11.1: 2917 | dependencies: 2918 | lru-cache: 10.4.3 2919 | minipass: 7.1.2 2920 | 2921 | path-scurry@2.0.0: 2922 | dependencies: 2923 | lru-cache: 11.0.2 2924 | minipass: 7.1.2 2925 | 2926 | picocolors@1.1.1: {} 2927 | 2928 | picomatch@2.3.1: {} 2929 | 2930 | pify@4.0.1: {} 2931 | 2932 | pkg-conf@3.1.0: 2933 | dependencies: 2934 | find-up: 3.0.0 2935 | load-json-file: 5.3.0 2936 | 2937 | possible-typed-array-names@1.0.0: {} 2938 | 2939 | prelude-ls@1.2.1: {} 2940 | 2941 | prop-types@15.8.1: 2942 | dependencies: 2943 | loose-envify: 1.4.0 2944 | object-assign: 4.1.1 2945 | react-is: 16.13.1 2946 | 2947 | punycode@2.3.1: {} 2948 | 2949 | queue-microtask@1.2.3: {} 2950 | 2951 | randombytes@2.1.0: 2952 | dependencies: 2953 | safe-buffer: 5.2.1 2954 | 2955 | react-is@16.13.1: {} 2956 | 2957 | readdirp@3.6.0: 2958 | dependencies: 2959 | picomatch: 2.3.1 2960 | 2961 | reflect.getprototypeof@1.0.10: 2962 | dependencies: 2963 | call-bind: 1.0.8 2964 | define-properties: 1.2.1 2965 | es-abstract: 1.23.9 2966 | es-errors: 1.3.0 2967 | es-object-atoms: 1.0.0 2968 | get-intrinsic: 1.2.7 2969 | get-proto: 1.0.1 2970 | which-builtin-type: 1.2.1 2971 | 2972 | regexp.prototype.flags@1.5.4: 2973 | dependencies: 2974 | call-bind: 1.0.8 2975 | define-properties: 1.2.1 2976 | es-errors: 1.3.0 2977 | get-proto: 1.0.1 2978 | gopd: 1.2.0 2979 | set-function-name: 2.0.2 2980 | 2981 | regexpp@3.2.0: {} 2982 | 2983 | require-directory@2.1.1: {} 2984 | 2985 | resolve-from@4.0.0: {} 2986 | 2987 | resolve@1.22.10: 2988 | dependencies: 2989 | is-core-module: 2.16.1 2990 | path-parse: 1.0.7 2991 | supports-preserve-symlinks-flag: 1.0.0 2992 | 2993 | resolve@2.0.0-next.5: 2994 | dependencies: 2995 | is-core-module: 2.16.1 2996 | path-parse: 1.0.7 2997 | supports-preserve-symlinks-flag: 1.0.0 2998 | 2999 | reusify@1.0.4: {} 3000 | 3001 | rimraf@3.0.2: 3002 | dependencies: 3003 | glob: 7.2.3 3004 | 3005 | rimraf@6.0.1: 3006 | dependencies: 3007 | glob: 11.0.0 3008 | package-json-from-dist: 1.0.1 3009 | 3010 | run-parallel@1.2.0: 3011 | dependencies: 3012 | queue-microtask: 1.2.3 3013 | 3014 | safe-array-concat@1.1.3: 3015 | dependencies: 3016 | call-bind: 1.0.8 3017 | call-bound: 1.0.3 3018 | get-intrinsic: 1.2.7 3019 | has-symbols: 1.1.0 3020 | isarray: 2.0.5 3021 | 3022 | safe-buffer@5.2.1: {} 3023 | 3024 | safe-push-apply@1.0.0: 3025 | dependencies: 3026 | es-errors: 1.3.0 3027 | isarray: 2.0.5 3028 | 3029 | safe-regex-test@1.1.0: 3030 | dependencies: 3031 | call-bound: 1.0.3 3032 | es-errors: 1.3.0 3033 | is-regex: 1.2.1 3034 | 3035 | semver@6.3.1: {} 3036 | 3037 | semver@7.6.3: {} 3038 | 3039 | serialize-javascript@6.0.2: 3040 | dependencies: 3041 | randombytes: 2.1.0 3042 | 3043 | set-function-length@1.2.2: 3044 | dependencies: 3045 | define-data-property: 1.1.4 3046 | es-errors: 1.3.0 3047 | function-bind: 1.1.2 3048 | get-intrinsic: 1.2.7 3049 | gopd: 1.2.0 3050 | has-property-descriptors: 1.0.2 3051 | 3052 | set-function-name@2.0.2: 3053 | dependencies: 3054 | define-data-property: 1.1.4 3055 | es-errors: 1.3.0 3056 | functions-have-names: 1.2.3 3057 | has-property-descriptors: 1.0.2 3058 | 3059 | set-proto@1.0.0: 3060 | dependencies: 3061 | dunder-proto: 1.0.1 3062 | es-errors: 1.3.0 3063 | es-object-atoms: 1.0.0 3064 | 3065 | shebang-command@2.0.0: 3066 | dependencies: 3067 | shebang-regex: 3.0.0 3068 | 3069 | shebang-regex@3.0.0: {} 3070 | 3071 | side-channel-list@1.0.0: 3072 | dependencies: 3073 | es-errors: 1.3.0 3074 | object-inspect: 1.13.3 3075 | 3076 | side-channel-map@1.0.1: 3077 | dependencies: 3078 | call-bound: 1.0.3 3079 | es-errors: 1.3.0 3080 | get-intrinsic: 1.2.7 3081 | object-inspect: 1.13.3 3082 | 3083 | side-channel-weakmap@1.0.2: 3084 | dependencies: 3085 | call-bound: 1.0.3 3086 | es-errors: 1.3.0 3087 | get-intrinsic: 1.2.7 3088 | object-inspect: 1.13.3 3089 | side-channel-map: 1.0.1 3090 | 3091 | side-channel@1.1.0: 3092 | dependencies: 3093 | es-errors: 1.3.0 3094 | object-inspect: 1.13.3 3095 | side-channel-list: 1.0.0 3096 | side-channel-map: 1.0.1 3097 | side-channel-weakmap: 1.0.2 3098 | 3099 | signal-exit@4.1.0: {} 3100 | 3101 | standard-engine@15.1.0: 3102 | dependencies: 3103 | get-stdin: 8.0.0 3104 | minimist: 1.2.8 3105 | pkg-conf: 3.1.0 3106 | xdg-basedir: 4.0.0 3107 | 3108 | standard@17.1.2: 3109 | dependencies: 3110 | eslint: 8.57.1 3111 | eslint-config-standard: 17.1.0(eslint-plugin-import@2.31.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1) 3112 | eslint-config-standard-jsx: 11.0.0(eslint-plugin-react@7.37.3(eslint@8.57.1))(eslint@8.57.1) 3113 | eslint-plugin-import: 2.31.0(eslint@8.57.1) 3114 | eslint-plugin-n: 15.7.0(eslint@8.57.1) 3115 | eslint-plugin-promise: 6.6.0(eslint@8.57.1) 3116 | eslint-plugin-react: 7.37.3(eslint@8.57.1) 3117 | standard-engine: 15.1.0 3118 | version-guard: 1.1.3 3119 | transitivePeerDependencies: 3120 | - '@typescript-eslint/parser' 3121 | - eslint-import-resolver-typescript 3122 | - eslint-import-resolver-webpack 3123 | - supports-color 3124 | 3125 | string-width@4.2.3: 3126 | dependencies: 3127 | emoji-regex: 8.0.0 3128 | is-fullwidth-code-point: 3.0.0 3129 | strip-ansi: 6.0.1 3130 | 3131 | string-width@5.1.2: 3132 | dependencies: 3133 | eastasianwidth: 0.2.0 3134 | emoji-regex: 9.2.2 3135 | strip-ansi: 7.1.0 3136 | 3137 | string.prototype.matchall@4.0.12: 3138 | dependencies: 3139 | call-bind: 1.0.8 3140 | call-bound: 1.0.3 3141 | define-properties: 1.2.1 3142 | es-abstract: 1.23.9 3143 | es-errors: 1.3.0 3144 | es-object-atoms: 1.0.0 3145 | get-intrinsic: 1.2.7 3146 | gopd: 1.2.0 3147 | has-symbols: 1.1.0 3148 | internal-slot: 1.1.0 3149 | regexp.prototype.flags: 1.5.4 3150 | set-function-name: 2.0.2 3151 | side-channel: 1.1.0 3152 | 3153 | string.prototype.repeat@1.0.0: 3154 | dependencies: 3155 | define-properties: 1.2.1 3156 | es-abstract: 1.23.9 3157 | 3158 | string.prototype.trim@1.2.10: 3159 | dependencies: 3160 | call-bind: 1.0.8 3161 | call-bound: 1.0.3 3162 | define-data-property: 1.1.4 3163 | define-properties: 1.2.1 3164 | es-abstract: 1.23.9 3165 | es-object-atoms: 1.0.0 3166 | has-property-descriptors: 1.0.2 3167 | 3168 | string.prototype.trimend@1.0.9: 3169 | dependencies: 3170 | call-bind: 1.0.8 3171 | call-bound: 1.0.3 3172 | define-properties: 1.2.1 3173 | es-object-atoms: 1.0.0 3174 | 3175 | string.prototype.trimstart@1.0.8: 3176 | dependencies: 3177 | call-bind: 1.0.8 3178 | define-properties: 1.2.1 3179 | es-object-atoms: 1.0.0 3180 | 3181 | strip-ansi@3.0.1: 3182 | dependencies: 3183 | ansi-regex: 2.1.1 3184 | 3185 | strip-ansi@6.0.1: 3186 | dependencies: 3187 | ansi-regex: 5.0.1 3188 | 3189 | strip-ansi@7.1.0: 3190 | dependencies: 3191 | ansi-regex: 6.1.0 3192 | 3193 | strip-bom@3.0.0: {} 3194 | 3195 | strip-json-comments@3.1.1: {} 3196 | 3197 | supports-color@2.0.0: {} 3198 | 3199 | supports-color@7.2.0: 3200 | dependencies: 3201 | has-flag: 4.0.0 3202 | 3203 | supports-color@8.1.1: 3204 | dependencies: 3205 | has-flag: 4.0.0 3206 | 3207 | supports-preserve-symlinks-flag@1.0.0: {} 3208 | 3209 | text-table@0.2.0: {} 3210 | 3211 | to-regex-range@5.0.1: 3212 | dependencies: 3213 | is-number: 7.0.0 3214 | 3215 | tsconfig-paths@3.15.0: 3216 | dependencies: 3217 | '@types/json5': 0.0.29 3218 | json5: 1.0.2 3219 | minimist: 1.2.8 3220 | strip-bom: 3.0.0 3221 | 3222 | type-check@0.4.0: 3223 | dependencies: 3224 | prelude-ls: 1.2.1 3225 | 3226 | type-fest@0.20.2: {} 3227 | 3228 | type-fest@0.3.1: {} 3229 | 3230 | typed-array-buffer@1.0.3: 3231 | dependencies: 3232 | call-bound: 1.0.3 3233 | es-errors: 1.3.0 3234 | is-typed-array: 1.1.15 3235 | 3236 | typed-array-byte-length@1.0.3: 3237 | dependencies: 3238 | call-bind: 1.0.8 3239 | for-each: 0.3.3 3240 | gopd: 1.2.0 3241 | has-proto: 1.2.0 3242 | is-typed-array: 1.1.15 3243 | 3244 | typed-array-byte-offset@1.0.4: 3245 | dependencies: 3246 | available-typed-arrays: 1.0.7 3247 | call-bind: 1.0.8 3248 | for-each: 0.3.3 3249 | gopd: 1.2.0 3250 | has-proto: 1.2.0 3251 | is-typed-array: 1.1.15 3252 | reflect.getprototypeof: 1.0.10 3253 | 3254 | typed-array-length@1.0.7: 3255 | dependencies: 3256 | call-bind: 1.0.8 3257 | for-each: 0.3.3 3258 | gopd: 1.2.0 3259 | is-typed-array: 1.1.15 3260 | possible-typed-array-names: 1.0.0 3261 | reflect.getprototypeof: 1.0.10 3262 | 3263 | unbox-primitive@1.1.0: 3264 | dependencies: 3265 | call-bound: 1.0.3 3266 | has-bigints: 1.1.0 3267 | has-symbols: 1.1.0 3268 | which-boxed-primitive: 1.1.1 3269 | 3270 | uri-js@4.4.1: 3271 | dependencies: 3272 | punycode: 2.3.1 3273 | 3274 | version-guard@1.1.3: {} 3275 | 3276 | which-boxed-primitive@1.1.1: 3277 | dependencies: 3278 | is-bigint: 1.1.0 3279 | is-boolean-object: 1.2.1 3280 | is-number-object: 1.1.1 3281 | is-string: 1.1.1 3282 | is-symbol: 1.1.1 3283 | 3284 | which-builtin-type@1.2.1: 3285 | dependencies: 3286 | call-bound: 1.0.3 3287 | function.prototype.name: 1.1.8 3288 | has-tostringtag: 1.0.2 3289 | is-async-function: 2.1.0 3290 | is-date-object: 1.1.0 3291 | is-finalizationregistry: 1.1.1 3292 | is-generator-function: 1.1.0 3293 | is-regex: 1.2.1 3294 | is-weakref: 1.1.0 3295 | isarray: 2.0.5 3296 | which-boxed-primitive: 1.1.1 3297 | which-collection: 1.0.2 3298 | which-typed-array: 1.1.18 3299 | 3300 | which-collection@1.0.2: 3301 | dependencies: 3302 | is-map: 2.0.3 3303 | is-set: 2.0.3 3304 | is-weakmap: 2.0.2 3305 | is-weakset: 2.0.4 3306 | 3307 | which-typed-array@1.1.18: 3308 | dependencies: 3309 | available-typed-arrays: 1.0.7 3310 | call-bind: 1.0.8 3311 | call-bound: 1.0.3 3312 | for-each: 0.3.3 3313 | gopd: 1.2.0 3314 | has-tostringtag: 1.0.2 3315 | 3316 | which@2.0.2: 3317 | dependencies: 3318 | isexe: 2.0.0 3319 | 3320 | word-wrap@1.2.5: {} 3321 | 3322 | workerpool@6.5.1: {} 3323 | 3324 | wrap-ansi@7.0.0: 3325 | dependencies: 3326 | ansi-styles: 4.3.0 3327 | string-width: 4.2.3 3328 | strip-ansi: 6.0.1 3329 | 3330 | wrap-ansi@8.1.0: 3331 | dependencies: 3332 | ansi-styles: 6.2.1 3333 | string-width: 5.1.2 3334 | strip-ansi: 7.1.0 3335 | 3336 | wrappy@1.0.2: {} 3337 | 3338 | xdg-basedir@4.0.0: {} 3339 | 3340 | y18n@5.0.8: {} 3341 | 3342 | yargs-parser@20.2.9: {} 3343 | 3344 | yargs-unparser@2.0.0: 3345 | dependencies: 3346 | camelcase: 6.3.0 3347 | decamelize: 4.0.0 3348 | flat: 5.0.2 3349 | is-plain-obj: 2.1.0 3350 | 3351 | yargs@16.2.0: 3352 | dependencies: 3353 | cliui: 7.0.4 3354 | escalade: 3.2.0 3355 | get-caller-file: 2.0.5 3356 | require-directory: 2.1.1 3357 | string-width: 4.2.3 3358 | y18n: 5.0.8 3359 | yargs-parser: 20.2.9 3360 | 3361 | yocto-queue@0.1.0: {} 3362 | -------------------------------------------------------------------------------- /test/find.test.js: -------------------------------------------------------------------------------- 1 | /* 2 | * @Author: zoujie.wzj 3 | * @Date: 2016-01-24 10:35:16 4 | * @Last Modified by: Ayon Lee 5 | * @Last Modified on: 2018-10-19 6 | */ 7 | 8 | 'use strict' 9 | 10 | const assert = require('assert') 11 | const path = require('path') 12 | const cp = require('child_process') 13 | const find = require('..') 14 | const pkg = require('../package.json') 15 | const listen = require('./fixtures/listen_port') 16 | 17 | describe('Find process test', function () { 18 | this.timeout(10000); 19 | 20 | it('should run the bin/find-process.js', function () { 21 | const binPrefix = (process.platform == 'win32' ? 'node.exe ' : ''); 22 | const result = cp.execSync(binPrefix + './bin/find-process.js -V').toString() 23 | assert.equal(result.trim(), pkg.version) 24 | }) 25 | 26 | it('should find process of listenning port', function () { 27 | return listen(12345) 28 | .then(function () { 29 | return find('port', 12345) 30 | .then(function (list) { 31 | listen.close() 32 | 33 | assert(list.length === 1) 34 | assert.equal(process.pid, list[0].pid) 35 | }, function (err) { 36 | listen.close() 37 | 38 | assert(false, err.stack || err) 39 | }) 40 | }) 41 | }) 42 | 43 | it('should find process of pid', function (done) { 44 | let file = path.join(__dirname, 'fixtures/child_process.js') 45 | let cps = cp.spawn(process.execPath, [file]) 46 | 47 | find('pid', cps.pid) 48 | .then(function (list) { 49 | cps.kill() 50 | 51 | assert(list.length === 1) 52 | assert.equal(cps.pid, list[0].pid) 53 | done() 54 | }, function (err) { 55 | cps.kill() 56 | 57 | done(err) 58 | }) 59 | }) 60 | 61 | it('should find process list matched given name', function (done) { 62 | let file = path.join(__dirname, 'fixtures/child_process.js') 63 | let cps = cp.spawn(process.execPath, [file, 'AAABBBCCC']) 64 | 65 | find('name', 'AAABBBCCC') 66 | .then(function (list) { 67 | 68 | assert(list.length === 1) 69 | assert.equal(cps.pid, list[0].pid) 70 | 71 | // test strict mode 72 | return find('name', 'node', true) 73 | }).then(function (list) { 74 | for (let item of list) { 75 | assert.equal(item.name, process.platform == 'win32' ? 'node.exe' : 'node'); 76 | } 77 | }).then(() => cps.kill()).then(() => done()).catch(function (err) { 78 | cps.kill() 79 | 80 | done(err) 81 | }); 82 | }) 83 | 84 | it('should resolve empty array when pid not exists', function (done) { 85 | find('port', 100000) 86 | .then(function (list) { 87 | assert(list.length === 0) 88 | }).then(done).catch(err => done(err)) 89 | }) 90 | }) 91 | -------------------------------------------------------------------------------- /test/fixtures/child_process.js: -------------------------------------------------------------------------------- 1 | /* 2 | * @Author: zoujie.wzj 3 | * @Date: 2016-01-24 10:58:25 4 | * @Last Modified by: zoujie.wzj 5 | * @Last Modified time: 2016-01-24 11:03:57 6 | */ 7 | 8 | 'use strict' 9 | 10 | setTimeout(function () { 11 | // empty 12 | }, 1000 * 1000) 13 | -------------------------------------------------------------------------------- /test/fixtures/listen_port.js: -------------------------------------------------------------------------------- 1 | /* 2 | * @Author: zoujie.wzj 3 | * @Date: 2016-01-24 10:39:27 4 | * @Last Modified by: Zoujie 5 | * @Last Modified time: 2016-02-04 17:17:32 6 | */ 7 | 8 | 'use strict' 9 | 10 | const http = require('http') 11 | 12 | let server = http.createServer(function () { 13 | // empty 14 | }) 15 | 16 | module.exports = function (port) { 17 | return new Promise((resolve, reject) => { 18 | server.listen(port, function (err) { 19 | if (err) { 20 | reject(err) 21 | } else { 22 | resolve() 23 | } 24 | }) 25 | }) 26 | } 27 | 28 | module.exports.close = function () { 29 | server.close() 30 | } 31 | --------------------------------------------------------------------------------