├── .prettierignore ├── .gitignore ├── fixtures ├── const │ ├── output.js │ └── input.js ├── file.ts ├── import │ ├── output.js │ └── input.js ├── file.js ├── export │ ├── output.js │ └── input.js ├── try-catch │ ├── output.js │ └── input.js ├── destructure │ ├── output.js │ └── input.js ├── combine │ ├── output.js │ └── input.js ├── enum │ ├── output.ts │ └── input.ts ├── eslint.config.js └── function │ ├── output.js │ └── input.js ├── .prettierrc.json ├── .release-it.json ├── license ├── package.json ├── README.md ├── test └── matrix.test.js ├── index.js └── pnpm-lock.yaml /.prettierignore: -------------------------------------------------------------------------------- 1 | fixtures -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .npmrc 2 | node_modules 3 | -------------------------------------------------------------------------------- /fixtures/const/output.js: -------------------------------------------------------------------------------- 1 | export const b = 2; -------------------------------------------------------------------------------- /fixtures/const/input.js: -------------------------------------------------------------------------------- 1 | const a = 1; 2 | export const b = 2; -------------------------------------------------------------------------------- /fixtures/file.ts: -------------------------------------------------------------------------------- 1 | import type { 2 | Pinapple, 3 | Mango, 4 | } from "./fruits.types"; 5 | 6 | Pinapple; 7 | 8 | -------------------------------------------------------------------------------- /fixtures/import/output.js: -------------------------------------------------------------------------------- 1 | import { bool } from '../../util'; 2 | import Hello from '../../hello'; 3 | 4 | bool(); 5 | Hello(); -------------------------------------------------------------------------------- /.prettierrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "printWidth": 120, 3 | "singleQuote": true, 4 | "arrowParens": "avoid", 5 | "proseWrap": "always" 6 | } 7 | -------------------------------------------------------------------------------- /fixtures/file.js: -------------------------------------------------------------------------------- 1 | import { bool, str } from './util'; 2 | 3 | bool(); 4 | 5 | function empty(args) { 6 | return ''; 7 | } 8 | 9 | empty(); 10 | -------------------------------------------------------------------------------- /fixtures/import/input.js: -------------------------------------------------------------------------------- 1 | import { a, bool, b } from '../../util'; 2 | import Wow from '../../wow'; 3 | import Hello from '../../hello'; 4 | 5 | bool(); 6 | Hello(); -------------------------------------------------------------------------------- /fixtures/export/output.js: -------------------------------------------------------------------------------- 1 | function empty() { 2 | return null; 3 | } 4 | 5 | function empty2() { 6 | return null; 7 | } 8 | 9 | export default empty; 10 | export { empty2 }; -------------------------------------------------------------------------------- /fixtures/try-catch/output.js: -------------------------------------------------------------------------------- 1 | try { 2 | throw new Error('test'); 3 | } catch { 4 | console.log('catch'); 5 | } finally { 6 | console.log('finally'); 7 | } 8 | 9 | try { 10 | throw new Error('test'); 11 | } catch {} -------------------------------------------------------------------------------- /fixtures/destructure/output.js: -------------------------------------------------------------------------------- 1 | const utils = { foo: 1, bar: 2, baz: 3 }; 2 | 3 | console.log('All object destructured elements are unused'); 4 | 5 | const arr = [1, 2, 3]; 6 | 7 | console.log('All array destructured elements are unused'); 8 | -------------------------------------------------------------------------------- /fixtures/combine/output.js: -------------------------------------------------------------------------------- 1 | import { bool2 } from './util/v2'; 2 | 3 | const a = 1; 4 | 5 | [1,2,3].map(() => null); 6 | 7 | [1,2,3].map((a,) => a); 8 | 9 | function Hello() { 10 | return 2; 11 | } 12 | 13 | Hello(); 14 | 15 | bool2(); -------------------------------------------------------------------------------- /fixtures/export/input.js: -------------------------------------------------------------------------------- 1 | function empty() { 2 | return null; 3 | } 4 | 5 | function empty2(a, b) { 6 | return null; 7 | } 8 | 9 | function empty3(a, b) { 10 | return null; 11 | } 12 | 13 | export default empty; 14 | export { empty2 }; -------------------------------------------------------------------------------- /fixtures/try-catch/input.js: -------------------------------------------------------------------------------- 1 | try { 2 | throw new Error('test'); 3 | } catch (e) { 4 | console.log('catch'); 5 | function hello() {} 6 | } finally { 7 | console.log('finally'); 8 | } 9 | 10 | try { 11 | throw new Error('test'); 12 | } catch (/** test */e ) {} -------------------------------------------------------------------------------- /fixtures/enum/output.ts: -------------------------------------------------------------------------------- 1 | enum Size { 2 | Small, 3 | Medium, 4 | Large, 5 | } 6 | 7 | enum Status { 8 | Active, 9 | Inactive, 10 | } 11 | 12 | const mySize = Size.Medium; 13 | const myStatus = Status.Active; 14 | 15 | console.log(mySize, myStatus); 16 | 17 | -------------------------------------------------------------------------------- /fixtures/destructure/input.js: -------------------------------------------------------------------------------- 1 | const utils = { foo: 1, bar: 2, baz: 3 }; 2 | const { foo, bar, baz } = utils; 3 | 4 | console.log('All object destructured elements are unused'); 5 | 6 | const arr = [1, 2, 3]; 7 | const [x, y, z] = arr; 8 | 9 | console.log('All array destructured elements are unused'); 10 | -------------------------------------------------------------------------------- /fixtures/enum/input.ts: -------------------------------------------------------------------------------- 1 | enum Color { 2 | Red, 3 | Green, 4 | Blue, 5 | } 6 | 7 | enum Size { 8 | Small, 9 | Medium, 10 | Large, 11 | } 12 | 13 | enum Status { 14 | Active, 15 | Inactive, 16 | } 17 | 18 | const mySize = Size.Medium; 19 | const myStatus = Status.Active; 20 | 21 | console.log(mySize, myStatus); 22 | 23 | -------------------------------------------------------------------------------- /fixtures/combine/input.js: -------------------------------------------------------------------------------- 1 | import { bool } from './util'; 2 | import { bool2 } from './util/v2'; 3 | 4 | const a = 1; 5 | 6 | function b() { 7 | console.log(a) 8 | } 9 | 10 | [1,2,3].map((a) => null); 11 | 12 | [1,2,3].map((a, index) => a); 13 | 14 | function Hello(arg1) { 15 | return 2; 16 | } 17 | 18 | Hello(); 19 | 20 | function World(arg1) { 21 | return 3; 22 | } 23 | 24 | bool2(); -------------------------------------------------------------------------------- /fixtures/eslint.config.js: -------------------------------------------------------------------------------- 1 | import tseslint from 'typescript-eslint'; 2 | import { defineConfig } from 'eslint/config'; 3 | 4 | export default defineConfig({ 5 | files: ['**/*.js', '**/*.ts'], 6 | plugins: { 7 | '@typescript-eslint': tseslint.plugin, 8 | }, 9 | languageOptions: { 10 | parser: tseslint.parser, 11 | parserOptions: { 12 | project: false, 13 | }, 14 | }, 15 | }); 16 | -------------------------------------------------------------------------------- /.release-it.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://unpkg.com/release-it@19/schema/release-it.json", 3 | "hooks": { 4 | "before:init": ["pnpm t"] 5 | }, 6 | "github": { 7 | "release": true, 8 | "releaseNotes": { 9 | "commit": "* ${commit.subject} (${sha}){ - thanks @${author.login}!}", 10 | "excludeMatches": ["webpro"] 11 | }, 12 | "comments": { 13 | "submit": true 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /fixtures/function/output.js: -------------------------------------------------------------------------------- 1 | export function empty() { 2 | return null; 3 | } 4 | 5 | export function emptyArg1(arg1, arg2) { 6 | return arg2; 7 | } 8 | 9 | export function emptyArg2(arg1,) { 10 | return arg1; 11 | } 12 | 13 | export function empty2() { 14 | return null; 15 | } 16 | 17 | export const arrowSingleArg = () => null; 18 | 19 | export const arrowWithoutParens = () => null; 20 | 21 | export const arrowEmptyArg1 = (a, b) => { 22 | return b; 23 | } 24 | 25 | export const arrowEmptyArg2 = (a,) => { 26 | return a; 27 | } 28 | 29 | export const arrowWithComment = () => { 30 | return null; 31 | } 32 | -------------------------------------------------------------------------------- /fixtures/function/input.js: -------------------------------------------------------------------------------- 1 | export function empty(args) { 2 | return null; 3 | } 4 | 5 | export function emptyArg1(arg1, arg2) { 6 | return arg2; 7 | } 8 | 9 | export function emptyArg2(arg1, arg2) { 10 | return arg1; 11 | } 12 | 13 | export function empty2(args, args2) { 14 | return null; 15 | } 16 | 17 | export const arrowSingleArg = (a) => null; 18 | 19 | export const arrowWithoutParens = a => null; 20 | 21 | export const arrowEmptyArg1 = (a, b) => { 22 | return b; 23 | } 24 | 25 | export const arrowEmptyArg2 = (a, b) => { 26 | return a; 27 | } 28 | 29 | export const arrowWithComment = (a, /** with comment */ b) => { 30 | return null; 31 | } 32 | -------------------------------------------------------------------------------- /license: -------------------------------------------------------------------------------- 1 | ISC License (ISC) 2 | 3 | Copyright 2025 Lars Kappert 4 | 5 | Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, 6 | provided that the above copyright notice and this permission notice appear in all copies. 7 | 8 | THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL 9 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, 10 | INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 11 | ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF 12 | THIS SOFTWARE. 13 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "remove-unused-vars", 3 | "version": "0.0.11", 4 | "description": "Remove more unused variables", 5 | "type": "module", 6 | "main": "./index.js", 7 | "bin": "./index.js", 8 | "license": "ISC", 9 | "author": { 10 | "email": "lars@webpro.nl", 11 | "name": "Lars Kappert", 12 | "url": "https://webpro.nl" 13 | }, 14 | "files": [ 15 | "index.js" 16 | ], 17 | "repository": "github:webpro-nl/remove-unused-vars", 18 | "dependencies": { 19 | "typescript": "^5.0.0" 20 | }, 21 | "scripts": { 22 | "release": "release-it", 23 | "test": "node --test ./test/*.test.js", 24 | "test:eslint": "eslint -c fixtures/eslint.config.js --rule 'no-unused-vars: error' --quiet -f json fixtures | ./index.js", 25 | "test:ts-eslint": "eslint -c fixtures/eslint.config.js --rule 'no-unused-vars: off' --rule '@typescript-eslint/no-unused-vars: error' --quiet -f json fixtures | ./index.js", 26 | "test:biome": "biome lint --only correctness/noUnusedVariables --only correctness/noUnusedImports --only correctness/noUnusedFunctionParameters --reporter json fixtures", 27 | "test:oxlint": "oxlint -A all -D 'no-unused-vars' -f json fixtures | ./index.js" 28 | }, 29 | "devDependencies": { 30 | "@biomejs/biome": "^2.3.7", 31 | "@typescript-eslint/eslint-plugin": "^8.47.0", 32 | "eslint": "^9.39.1", 33 | "oxlint": "^1.29.0", 34 | "release-it": "^19.0.6", 35 | "typescript-eslint": "^8.47.0" 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # remove-unused-vars 2 | 3 | Remove more unused variables. Highly experimental. 4 | 5 | > [!WARNING] 6 | > 7 | > There's a reason linters don't fix the unused variables, even with a flag like `--unsafe` or `--fix-dangerously`. 8 | 9 | Modern linters can fix a lot of issues automatically, but don't always remove all unused variables and types. Even when 10 | using `--unsafe` or `--fix-dangerously`. 11 | 12 | Use `remove-unused-vars` to remove everything the linter finds. Then run QA and review if there's anything that might 13 | need reverting. Needless to say, Git's your friend here! 14 | 15 | Don't use e.g. `eslint --fix` or `biome lint --write` when piping to `remove-unused-vars`, otherwise the positions to 16 | remove things might not match up. Use the linter first to have it remove whatever it can, then proceed with the 17 | command(s) below. 18 | 19 | > [!TIP] 20 | > 21 | > Use this with [Knip](https://knip.dev) for a cruel code crusher experience. 22 | 23 | ## Install 24 | 25 | ```sh 26 | npm install -D remove-unused-vars 27 | ``` 28 | 29 | ## Pipe JSON 30 | 31 | Pipe the JSON-formatted output of the linter to `remove-unused-vars` 32 | 33 | Add to `package.json#scripts`, modify the commands below and make sure to use local linter configuration. 34 | 35 | ### ESLint 36 | 37 | ```sh 38 | eslint --rule 'no-unused-vars: error' --quiet -f json | remove-unused-vars 39 | ``` 40 | 41 | ### typescript-eslint 42 | 43 | ```sh 44 | eslint --rule 'no-unused-vars: off' --rule '@typescript-eslint/no-unused-vars: error' --quiet -f json | remove-unused-vars 45 | ``` 46 | 47 | ### Biome 48 | 49 | ```sh 50 | biome lint \ 51 | --only correctness/noUnusedVariables \ 52 | --only correctness/noUnusedImports \ 53 | --only correctness/noUnusedFunctionParameters \ 54 | --reporter json | remove-unused-vars 55 | ``` 56 | 57 | ### oxlint 58 | 59 | ```sh 60 | oxlint -A all -D 'no-unused-vars' -D '@typescript-eslint/no-unused-vars' -f json | remove-unused-vars 61 | ``` 62 | 63 | ## From JSON file 64 | 65 | Alternatively, provide a JSON file as the first argument to `remove-unused-vars`, for example: 66 | 67 | ```sh 68 | oxlint -A all -D '@typescript-eslint/no-unused-vars' -f json > unused-vars.json 69 | remove-unused-vars unused-vars.json 70 | ``` 71 | 72 | ## Without installation 73 | 74 | Use something like this without installing `remove-unused-vars`: 75 | 76 | ```sh 77 | eslint -- --quiet --format json | npx -y remove-unused-vars 78 | ``` 79 | -------------------------------------------------------------------------------- /test/matrix.test.js: -------------------------------------------------------------------------------- 1 | import fs from 'node:fs'; 2 | import path from 'node:path'; 3 | import { execSync } from 'node:child_process'; 4 | import { test } from 'node:test'; 5 | import assert from 'node:assert/strict'; 6 | 7 | const fixturesDir = path.join(path.resolve(), 'fixtures'); 8 | 9 | const normalizeWhitespace = text => { 10 | return text 11 | .replace(/[ \t]+/g, ' ') 12 | .replace(/\s*\n\s*/g, '\n') 13 | .trim(); 14 | }; 15 | 16 | const expectEqual = (a, b) => { 17 | assert.equal(normalizeWhitespace(a), normalizeWhitespace(b)); 18 | }; 19 | 20 | const execLint = (inputFile, expectOutputFile, execCmd) => { 21 | const original = fs.readFileSync(inputFile, 'utf-8'); 22 | try { 23 | const cmd = execCmd(inputFile, expectOutputFile); 24 | execSync(cmd, { path: path.join(fixturesDir, '../'), stdio: 'inherit' }); 25 | 26 | const processed = fs.readFileSync(inputFile, 'utf-8'); 27 | const expected = fs.readFileSync(expectOutputFile, 'utf-8'); 28 | 29 | expectEqual(processed, expected); 30 | } catch (error) { 31 | throw error; 32 | } finally { 33 | fs.writeFileSync(inputFile, original); 34 | } 35 | }; 36 | 37 | function runEsLint(inputFile) { 38 | return `./node_modules/.bin/eslint -c fixtures/eslint.config.js --rule 'no-unused-vars: error' --quiet -f json ${inputFile} | ./index.js`; 39 | } 40 | 41 | function runTsEslint(inputFile) { 42 | return `./node_modules/.bin/eslint -c fixtures/eslint.config.js --rule 'no-unused-vars: off' --rule '@typescript-eslint/no-unused-vars: error' --quiet -f json ${inputFile} | ./index.js`; 43 | } 44 | 45 | function runBiome(inputFile) { 46 | return `./node_modules/.bin/biome lint --only correctness/noUnusedVariables --only correctness/noUnusedImports --only correctness/noUnusedFunctionParameters --reporter json ${inputFile} | ./index.js`; 47 | } 48 | 49 | function runOxlint(inputFile) { 50 | return `./node_modules/.bin/oxlint -A all -D 'no-unused-vars' -f json ${inputFile} | ./index.js`; 51 | } 52 | 53 | const lintRunners = { 54 | eslint: runEsLint, 55 | 'ts-eslint': runTsEslint, 56 | biome: runBiome, 57 | oxlint: runOxlint, 58 | }; 59 | 60 | const fixtureMatrix = [ 61 | { name: 'basic const', dir: '/const', input: 'input.js', output: 'output.js' }, 62 | { name: 'basic function', dir: '/function', input: 'input.js', output: 'output.js' }, 63 | { name: 'basic import', dir: '/import', input: 'input.js', output: 'output.js', skip: ['biome'] }, 64 | { name: 'basic export', dir: '/export', input: 'input.js', output: 'output.js', skip: [] }, 65 | { name: 'basic combine', dir: '/combine', input: 'input.js', output: 'output.js', skip: ['biome'] }, 66 | { name: 'basic enum', dir: '/enum', input: 'input.ts', output: 'output.ts', skip: ['eslint'] }, 67 | { name: 'basic try-catch', dir: '/try-catch', input: 'input.js', output: 'output.js' }, 68 | { name: 'basic destructure', dir: '/destructure', input: 'input.js', output: 'output.js' }, 69 | ]; 70 | 71 | for (const [linterName, runner] of Object.entries(lintRunners)) { 72 | for (const fixture of fixtureMatrix) { 73 | if (fixture.only && !fixture.only.includes(linterName)) continue; 74 | if (fixture.skip?.includes(linterName)) continue; 75 | test(`${linterName} ${fixture.name}`, () => { 76 | const inputFile = path.join(fixturesDir, `${fixture.dir}/${fixture.input}`); 77 | const expectOutputFile = path.join(fixturesDir, `${fixture.dir}/${fixture.output}`); 78 | execLint(inputFile, expectOutputFile, runner); 79 | }); 80 | } 81 | } 82 | -------------------------------------------------------------------------------- /index.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | import { readFileSync, writeFileSync } from 'node:fs'; 3 | import ts from 'typescript'; 4 | 5 | let input = ''; 6 | if (process.argv[2]) { 7 | input = readFileSync(process.argv[2], 'utf-8'); 8 | } else { 9 | const chunks = []; 10 | process.stdin.setEncoding('utf-8'); 11 | for await (const chunk of process.stdin) chunks.push(chunk); 12 | input = chunks.join(''); 13 | } 14 | 15 | const Format = { 16 | ESLINT: 'eslint', 17 | OXLINT: 'oxlint', 18 | BIOME: 'biome', 19 | }; 20 | 21 | const jsonInput = JSON.parse(input); 22 | const format = detect(jsonInput); 23 | const unifiedResults = transform(jsonInput, format); 24 | removeUnusedVariables(unifiedResults); 25 | 26 | function detect(json) { 27 | if (json.diagnostics && Array.isArray(json.diagnostics)) { 28 | if (json.diagnostics[0]?.category) return Format.BIOME; 29 | if (json.diagnostics[0]?.code?.startsWith('eslint')) return Format.OXLINT; 30 | } 31 | return Format.ESLINT; 32 | } 33 | 34 | function transform(json, format) { 35 | switch (format) { 36 | case Format.OXLINT: 37 | return transformOxlint(json); 38 | case Format.BIOME: 39 | return transformBiome(json); 40 | default: 41 | return transformEslint(json); 42 | } 43 | } 44 | 45 | function transformBiome(input) { 46 | const groupedByFile = input.diagnostics 47 | .filter( 48 | diagnostic => 49 | diagnostic.category === 'lint/correctness/noUnusedVariables' || 50 | diagnostic.category === 'lint/correctness/noUnusedImports' || 51 | diagnostic.category === 'lint/correctness/noUnusedFunctionParameters', 52 | ) 53 | .reduce((output, diagnostic) => { 54 | const filePath = diagnostic.location.path.file; 55 | if (!output[filePath]) { 56 | output[filePath] = { filePath, positions: [], source: diagnostic.location.sourceCode }; 57 | } 58 | output[filePath].positions.push(diagnostic.location.span[0]); 59 | return output; 60 | }, {}); 61 | return Object.values(groupedByFile); 62 | } 63 | 64 | function transformOxlint(input) { 65 | const groupedByFile = input.diagnostics 66 | .filter(result => result.code === 'eslint(no-unused-vars)') 67 | .reduce((output, result) => { 68 | const filePath = result.filename; 69 | if (!output[filePath]) { 70 | output[filePath] = { filePath, positions: [] }; 71 | } 72 | output[filePath].positions.push(result.labels[0].span.offset); 73 | return output; 74 | }, {}); 75 | return Object.values(groupedByFile); 76 | } 77 | 78 | function transformEslint(input) { 79 | const predicate = msg => msg.ruleId === 'no-unused-vars' || msg.ruleId === '@typescript-eslint/no-unused-vars'; 80 | return input 81 | .filter(result => result.messages.some(predicate)) 82 | .map(result => { 83 | const source = result.source ?? readFileSync(result.filePath, 'utf-8'); 84 | return { 85 | filePath: result.filePath, 86 | positions: result.messages.filter(predicate).map(msg => { 87 | if (msg.ruleId === 'no-unused-vars') { 88 | // catch clause no suggestions 89 | if (!msg.suggestions) return [msg.line - 1, msg.column - 1]; 90 | const range = msg.suggestions[0]?.fix?.range; 91 | const varName = msg.suggestions[0]?.data?.varName; 92 | const text = source.slice(range[0], range[1]); 93 | if (range && varName) { 94 | const offset = text.lastIndexOf(varName); 95 | return range[0] + offset; 96 | } 97 | if (range) return range[0] + (range[1] - range[0] > 1 ? 1 : 0); // i can't 98 | } else { 99 | // It's probably more precise to use the range from the suggestion, but the rule does not provide it yet 100 | // When https://github.com/typescript-eslint/typescript-eslint/issues/10497 is fixed, 101 | // then we can use the range from the suggestion. 102 | return [msg.line - 1, msg.column - 1]; 103 | } 104 | }), 105 | source, 106 | }; 107 | }); 108 | } 109 | 110 | function findParentDeclaration(node) { 111 | while ( 112 | node && 113 | !ts.isFunctionDeclaration(node) && 114 | !ts.isVariableStatement(node) && 115 | !ts.isClassDeclaration(node) && 116 | !ts.isInterfaceDeclaration(node) && 117 | !ts.isTypeAliasDeclaration(node) && 118 | !ts.isEnumDeclaration(node) 119 | ) { 120 | node = node.parent; 121 | } 122 | return node; 123 | } 124 | 125 | function getPos(sourceFile, pos) { 126 | return typeof pos === 'number' ? pos : sourceFile.getPositionOfLineAndCharacter(pos[0], pos[1]); 127 | } 128 | 129 | function areAllParametersFlagged(parameters, positions, sourceFile) { 130 | return parameters.every(paramNode => { 131 | return positions.some(p => { 132 | const position = getPos(sourceFile, p); 133 | const tokenAtPosition = ts.getTokenAtPosition(sourceFile, position); 134 | return tokenAtPosition.parent === paramNode; 135 | }); 136 | }); 137 | } 138 | 139 | /** 140 | * @typedef {Object} Results 141 | * @property {string} filePath 142 | * @property {(number | [number, number])[]} positions 143 | * @property {string?} source 144 | */ 145 | 146 | /** 147 | * @param {Results[]} results 148 | */ 149 | function removeUnusedVariables(results) { 150 | for (const file of results) { 151 | if (file.positions.length === 0) continue; 152 | 153 | const source = file.source ?? readFileSync(file.filePath, 'utf-8'); 154 | const sourceFile = ts.createSourceFile(file.filePath, source, ts.ScriptTarget.Latest, true); 155 | 156 | const processedImports = new Set(); 157 | const processedBindings = new Set(); 158 | 159 | const positions = file.positions 160 | .map(p => { 161 | const pos = getPos(sourceFile, p); 162 | const token = ts.getTokenAtPosition(sourceFile, pos); 163 | 164 | if (token.parent) { 165 | if (ts.isCatchClause(token.parent.parent)) { 166 | const preToken = ts.findPrecedingToken(token.getFullStart(), sourceFile); 167 | const nextToken = ts.findNextToken(token, sourceFile); 168 | if (preToken && nextToken && preToken.getText() === '(' && nextToken.getText() === ')') { 169 | return { 170 | start: preToken.getFullStart(), 171 | end: nextToken.getEnd(), 172 | }; 173 | } 174 | return null; 175 | } 176 | 177 | if (ts.isBindingElement(token.parent)) { 178 | const bindingElement = token.parent; 179 | const bindingPattern = bindingElement.parent; 180 | 181 | if (ts.isObjectBindingPattern(bindingPattern) || ts.isArrayBindingPattern(bindingPattern)) { 182 | const variableDeclaration = bindingPattern.parent; 183 | 184 | if (ts.isVariableDeclaration(variableDeclaration)) { 185 | const elements = bindingPattern.elements; 186 | const allElementsRemoved = elements.every(element => 187 | file.positions.some(p => { 188 | const pos = getPos(sourceFile, p); 189 | const token = ts.getTokenAtPosition(sourceFile, pos); 190 | return token.parent === element; 191 | }), 192 | ); 193 | 194 | if (allElementsRemoved) { 195 | const variableDeclarationList = variableDeclaration.parent; 196 | const variableStatement = variableDeclarationList.parent; 197 | if (ts.isVariableStatement(variableStatement)) { 198 | if (processedBindings.has(variableStatement.pos)) return null; 199 | processedBindings.add(variableStatement.pos); 200 | return { start: variableStatement.getFullStart(), end: variableStatement.getEnd() }; 201 | } 202 | } 203 | } 204 | } 205 | 206 | const start = bindingElement.getFullStart(); 207 | let end = bindingElement.getEnd(); 208 | if (bindingElement !== bindingPattern.elements.at(-1)) end = source.indexOf(',', end) + 1; 209 | return { start, end }; 210 | } 211 | 212 | if (ts.isParameter(token.parent)) { 213 | const parameter = token.parent; 214 | const parent = parameter.parent; 215 | if (ts.isArrowFunction(parent) && parent.parameters.length === 1) { 216 | const hasParens = 217 | source.slice(parent.parameters[0].getFullStart() - 1, parent.parameters[0].getFullStart()) === '('; 218 | if (!hasParens) { 219 | return { start: parameter.getFullStart(), end: parameter.getEnd(), replacement: ' ()' }; 220 | } 221 | } 222 | 223 | const parameters = parameter.parent.parameters; 224 | const isLastParameter = parameter === parameters.at(-1); 225 | if (!isLastParameter) { 226 | // safety net, biome reports unused leading args before used args 227 | if (!areAllParametersFlagged(parameters, file.positions, sourceFile)) return null; 228 | } 229 | 230 | const start = parameter.getFullStart(); 231 | let end = parameter.getEnd(); 232 | if (!isLastParameter) end = source.indexOf(',', end) + 1; 233 | return { start, end }; 234 | } 235 | 236 | if (ts.isImportClause(token.parent)) { 237 | const importDecl = token.parent.parent; 238 | const nextToken = ts.findNextToken(importDecl, sourceFile); 239 | const end = nextToken ? nextToken.getFullStart() : source.length; 240 | return { start: importDecl.getFullStart(), end }; 241 | } 242 | 243 | if (ts.isImportSpecifier(token.parent)) { 244 | const importSpecifier = token.parent; 245 | const importClause = importSpecifier.parent.parent; 246 | const importDeclaration = importClause.parent; 247 | const namedBindings = importClause.namedBindings; 248 | if (!namedBindings?.elements) return null; 249 | const elements = namedBindings.elements; 250 | const allElementsRemoved = elements.every(element => 251 | file.positions.some(p => { 252 | const pos = getPos(sourceFile, p); 253 | const token = ts.getTokenAtPosition(sourceFile, pos); 254 | return token.parent === element; 255 | }), 256 | ); 257 | if (allElementsRemoved) { 258 | if (processedImports.has(importDeclaration.pos)) return null; 259 | processedImports.add(importDeclaration.pos); 260 | const nextToken = ts.findNextToken(importDeclaration, sourceFile); 261 | const end = nextToken ? nextToken.getFullStart() : source.length; 262 | return { start: importDeclaration.getFullStart(), end }; 263 | } 264 | let start = importSpecifier.getFullStart(); 265 | let end = importSpecifier.getEnd(); 266 | if (importSpecifier === elements[0]) { 267 | const nextElement = elements[1]; 268 | end = nextElement.getFullStart(); 269 | } else { 270 | start = source.lastIndexOf(',', start); 271 | } 272 | return { start, end }; 273 | } 274 | 275 | if (ts.isNamespaceImport(token.parent)) { 276 | const namespaceImport = token.parent; 277 | const importDecl = namespaceImport.parent.parent; 278 | const nextToken = ts.findNextToken(importDecl, sourceFile); 279 | const end = nextToken ? nextToken.getFullStart() : source.length; 280 | return { start: importDecl.getFullStart(), end }; 281 | } 282 | 283 | if (ts.isImportDeclaration(token.parent)) return null; 284 | } 285 | 286 | const node = findParentDeclaration(token); 287 | 288 | if (!node) return null; 289 | 290 | return { start: node.getFullStart(), end: node.getEnd() }; 291 | }) 292 | .filter(Boolean); 293 | 294 | if (positions.length > 0) { 295 | let output = source; 296 | positions.sort((a, b) => { 297 | return b.end - a.end; 298 | }); 299 | 300 | let lastStart = Infinity; 301 | for (const { start, end, replacement } of positions) { 302 | // skip covered positions 303 | if (end <= lastStart) { 304 | output = output.slice(0, start) + (replacement ?? '') + output.slice(end); 305 | lastStart = start; 306 | } 307 | } 308 | 309 | writeFileSync(file.filePath, output); 310 | } 311 | } 312 | } 313 | -------------------------------------------------------------------------------- /pnpm-lock.yaml: -------------------------------------------------------------------------------- 1 | lockfileVersion: '9.0' 2 | 3 | settings: 4 | autoInstallPeers: true 5 | excludeLinksFromLockfile: false 6 | 7 | importers: 8 | 9 | .: 10 | dependencies: 11 | typescript: 12 | specifier: ^5.0.0 13 | version: 5.9.3 14 | devDependencies: 15 | '@biomejs/biome': 16 | specifier: ^2.3.7 17 | version: 2.3.7 18 | '@typescript-eslint/eslint-plugin': 19 | specifier: ^8.47.0 20 | version: 8.47.0(@typescript-eslint/parser@8.47.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) 21 | eslint: 22 | specifier: ^9.39.1 23 | version: 9.39.1(jiti@2.6.1) 24 | oxlint: 25 | specifier: ^1.29.0 26 | version: 1.29.0 27 | release-it: 28 | specifier: ^19.0.6 29 | version: 19.0.6 30 | typescript-eslint: 31 | specifier: ^8.47.0 32 | version: 8.47.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) 33 | 34 | packages: 35 | 36 | '@biomejs/biome@2.3.7': 37 | resolution: {integrity: sha512-CTbAS/jNAiUc6rcq94BrTB8z83O9+BsgWj2sBCQg9rD6Wkh2gjfR87usjx0Ncx0zGXP1NKgT7JNglay5Zfs9jw==} 38 | engines: {node: '>=14.21.3'} 39 | hasBin: true 40 | 41 | '@biomejs/cli-darwin-arm64@2.3.7': 42 | resolution: {integrity: sha512-LirkamEwzIUULhXcf2D5b+NatXKeqhOwilM+5eRkbrnr6daKz9rsBL0kNZ16Hcy4b8RFq22SG4tcLwM+yx/wFA==} 43 | engines: {node: '>=14.21.3'} 44 | cpu: [arm64] 45 | os: [darwin] 46 | 47 | '@biomejs/cli-darwin-x64@2.3.7': 48 | resolution: {integrity: sha512-Q4TO633kvrMQkKIV7wmf8HXwF0dhdTD9S458LGE24TYgBjSRbuhvio4D5eOQzirEYg6eqxfs53ga/rbdd8nBKg==} 49 | engines: {node: '>=14.21.3'} 50 | cpu: [x64] 51 | os: [darwin] 52 | 53 | '@biomejs/cli-linux-arm64-musl@2.3.7': 54 | resolution: {integrity: sha512-/afy8lto4CB8scWfMdt+NoCZtatBUF62Tk3ilWH2w8ENd5spLhM77zKlFZEvsKJv9AFNHknMl03zO67CiklL2Q==} 55 | engines: {node: '>=14.21.3'} 56 | cpu: [arm64] 57 | os: [linux] 58 | 59 | '@biomejs/cli-linux-arm64@2.3.7': 60 | resolution: {integrity: sha512-inHOTdlstUBzgjDcx0ge71U4SVTbwAljmkfi3MC5WzsYCRhancqfeL+sa4Ke6v2ND53WIwCFD5hGsYExoI3EZQ==} 61 | engines: {node: '>=14.21.3'} 62 | cpu: [arm64] 63 | os: [linux] 64 | 65 | '@biomejs/cli-linux-x64-musl@2.3.7': 66 | resolution: {integrity: sha512-CQUtgH1tIN6e5wiYSJqzSwJumHYolNtaj1dwZGCnZXm2PZU1jOJof9TsyiP3bXNDb+VOR7oo7ZvY01If0W3iFQ==} 67 | engines: {node: '>=14.21.3'} 68 | cpu: [x64] 69 | os: [linux] 70 | 71 | '@biomejs/cli-linux-x64@2.3.7': 72 | resolution: {integrity: sha512-fJMc3ZEuo/NaMYo5rvoWjdSS5/uVSW+HPRQujucpZqm2ZCq71b8MKJ9U4th9yrv2L5+5NjPF0nqqILCl8HY/fg==} 73 | engines: {node: '>=14.21.3'} 74 | cpu: [x64] 75 | os: [linux] 76 | 77 | '@biomejs/cli-win32-arm64@2.3.7': 78 | resolution: {integrity: sha512-aJAE8eCNyRpcfx2JJAtsPtISnELJ0H4xVVSwnxm13bzI8RwbXMyVtxy2r5DV1xT3WiSP+7LxORcApWw0LM8HiA==} 79 | engines: {node: '>=14.21.3'} 80 | cpu: [arm64] 81 | os: [win32] 82 | 83 | '@biomejs/cli-win32-x64@2.3.7': 84 | resolution: {integrity: sha512-pulzUshqv9Ed//MiE8MOUeeEkbkSHVDVY5Cz5wVAnH1DUqliCQG3j6s1POaITTFqFfo7AVIx2sWdKpx/GS+Nqw==} 85 | engines: {node: '>=14.21.3'} 86 | cpu: [x64] 87 | os: [win32] 88 | 89 | '@eslint-community/eslint-utils@4.9.0': 90 | resolution: {integrity: sha512-ayVFHdtZ+hsq1t2Dy24wCmGXGe4q9Gu3smhLYALJrr473ZH27MsnSL+LKUlimp4BWJqMDMLmPpx/Q9R3OAlL4g==} 91 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 92 | peerDependencies: 93 | eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 94 | 95 | '@eslint-community/regexpp@4.12.2': 96 | resolution: {integrity: sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==} 97 | engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} 98 | 99 | '@eslint/config-array@0.21.1': 100 | resolution: {integrity: sha512-aw1gNayWpdI/jSYVgzN5pL0cfzU02GT3NBpeT/DXbx1/1x7ZKxFPd9bwrzygx/qiwIQiJ1sw/zD8qY/kRvlGHA==} 101 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 102 | 103 | '@eslint/config-helpers@0.4.2': 104 | resolution: {integrity: sha512-gBrxN88gOIf3R7ja5K9slwNayVcZgK6SOUORm2uBzTeIEfeVaIhOpCtTox3P6R7o2jLFwLFTLnC7kU/RGcYEgw==} 105 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 106 | 107 | '@eslint/core@0.17.0': 108 | resolution: {integrity: sha512-yL/sLrpmtDaFEiUj1osRP4TI2MDz1AddJL+jZ7KSqvBuliN4xqYY54IfdN8qD8Toa6g1iloph1fxQNkjOxrrpQ==} 109 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 110 | 111 | '@eslint/eslintrc@3.3.1': 112 | resolution: {integrity: sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==} 113 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 114 | 115 | '@eslint/js@9.39.1': 116 | resolution: {integrity: sha512-S26Stp4zCy88tH94QbBv3XCuzRQiZ9yXofEILmglYTh/Ug/a9/umqvgFtYBAo3Lp0nsI/5/qH1CCrbdK3AP1Tw==} 117 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 118 | 119 | '@eslint/object-schema@2.1.7': 120 | resolution: {integrity: sha512-VtAOaymWVfZcmZbp6E2mympDIHvyjXs/12LqWYjVw6qjrfF+VK+fyG33kChz3nnK+SU5/NeHOqrTEHS8sXO3OA==} 121 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 122 | 123 | '@eslint/plugin-kit@0.4.1': 124 | resolution: {integrity: sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA==} 125 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 126 | 127 | '@humanfs/core@0.19.1': 128 | resolution: {integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==} 129 | engines: {node: '>=18.18.0'} 130 | 131 | '@humanfs/node@0.16.7': 132 | resolution: {integrity: sha512-/zUx+yOsIrG4Y43Eh2peDeKCxlRt/gET6aHfaKpuq267qXdYDFViVHfMaLyygZOnl0kGWxFIgsBy8QFuTLUXEQ==} 133 | engines: {node: '>=18.18.0'} 134 | 135 | '@humanwhocodes/module-importer@1.0.1': 136 | resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} 137 | engines: {node: '>=12.22'} 138 | 139 | '@humanwhocodes/retry@0.4.3': 140 | resolution: {integrity: sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==} 141 | engines: {node: '>=18.18'} 142 | 143 | '@inquirer/ansi@1.0.2': 144 | resolution: {integrity: sha512-S8qNSZiYzFd0wAcyG5AXCvUHC5Sr7xpZ9wZ2py9XR88jUz8wooStVx5M6dRzczbBWjic9NP7+rY0Xi7qqK/aMQ==} 145 | engines: {node: '>=18'} 146 | 147 | '@inquirer/checkbox@4.3.2': 148 | resolution: {integrity: sha512-VXukHf0RR1doGe6Sm4F0Em7SWYLTHSsbGfJdS9Ja2bX5/D5uwVOEjr07cncLROdBvmnvCATYEWlHqYmXv2IlQA==} 149 | engines: {node: '>=18'} 150 | peerDependencies: 151 | '@types/node': '>=18' 152 | peerDependenciesMeta: 153 | '@types/node': 154 | optional: true 155 | 156 | '@inquirer/confirm@5.1.21': 157 | resolution: {integrity: sha512-KR8edRkIsUayMXV+o3Gv+q4jlhENF9nMYUZs9PA2HzrXeHI8M5uDag70U7RJn9yyiMZSbtF5/UexBtAVtZGSbQ==} 158 | engines: {node: '>=18'} 159 | peerDependencies: 160 | '@types/node': '>=18' 161 | peerDependenciesMeta: 162 | '@types/node': 163 | optional: true 164 | 165 | '@inquirer/core@10.3.2': 166 | resolution: {integrity: sha512-43RTuEbfP8MbKzedNqBrlhhNKVwoK//vUFNW3Q3vZ88BLcrs4kYpGg+B2mm5p2K/HfygoCxuKwJJiv8PbGmE0A==} 167 | engines: {node: '>=18'} 168 | peerDependencies: 169 | '@types/node': '>=18' 170 | peerDependenciesMeta: 171 | '@types/node': 172 | optional: true 173 | 174 | '@inquirer/editor@4.2.23': 175 | resolution: {integrity: sha512-aLSROkEwirotxZ1pBaP8tugXRFCxW94gwrQLxXfrZsKkfjOYC1aRvAZuhpJOb5cu4IBTJdsCigUlf2iCOu4ZDQ==} 176 | engines: {node: '>=18'} 177 | peerDependencies: 178 | '@types/node': '>=18' 179 | peerDependenciesMeta: 180 | '@types/node': 181 | optional: true 182 | 183 | '@inquirer/expand@4.0.23': 184 | resolution: {integrity: sha512-nRzdOyFYnpeYTTR2qFwEVmIWypzdAx/sIkCMeTNTcflFOovfqUk+HcFhQQVBftAh9gmGrpFj6QcGEqrDMDOiew==} 185 | engines: {node: '>=18'} 186 | peerDependencies: 187 | '@types/node': '>=18' 188 | peerDependenciesMeta: 189 | '@types/node': 190 | optional: true 191 | 192 | '@inquirer/external-editor@1.0.3': 193 | resolution: {integrity: sha512-RWbSrDiYmO4LbejWY7ttpxczuwQyZLBUyygsA9Nsv95hpzUWwnNTVQmAq3xuh7vNwCp07UTmE5i11XAEExx4RA==} 194 | engines: {node: '>=18'} 195 | peerDependencies: 196 | '@types/node': '>=18' 197 | peerDependenciesMeta: 198 | '@types/node': 199 | optional: true 200 | 201 | '@inquirer/figures@1.0.15': 202 | resolution: {integrity: sha512-t2IEY+unGHOzAaVM5Xx6DEWKeXlDDcNPeDyUpsRc6CUhBfU3VQOEl+Vssh7VNp1dR8MdUJBWhuObjXCsVpjN5g==} 203 | engines: {node: '>=18'} 204 | 205 | '@inquirer/input@4.3.1': 206 | resolution: {integrity: sha512-kN0pAM4yPrLjJ1XJBjDxyfDduXOuQHrBB8aLDMueuwUGn+vNpF7Gq7TvyVxx8u4SHlFFj4trmj+a2cbpG4Jn1g==} 207 | engines: {node: '>=18'} 208 | peerDependencies: 209 | '@types/node': '>=18' 210 | peerDependenciesMeta: 211 | '@types/node': 212 | optional: true 213 | 214 | '@inquirer/number@3.0.23': 215 | resolution: {integrity: sha512-5Smv0OK7K0KUzUfYUXDXQc9jrf8OHo4ktlEayFlelCjwMXz0299Y8OrI+lj7i4gCBY15UObk76q0QtxjzFcFcg==} 216 | engines: {node: '>=18'} 217 | peerDependencies: 218 | '@types/node': '>=18' 219 | peerDependenciesMeta: 220 | '@types/node': 221 | optional: true 222 | 223 | '@inquirer/password@4.0.23': 224 | resolution: {integrity: sha512-zREJHjhT5vJBMZX/IUbyI9zVtVfOLiTO66MrF/3GFZYZ7T4YILW5MSkEYHceSii/KtRk+4i3RE7E1CUXA2jHcA==} 225 | engines: {node: '>=18'} 226 | peerDependencies: 227 | '@types/node': '>=18' 228 | peerDependenciesMeta: 229 | '@types/node': 230 | optional: true 231 | 232 | '@inquirer/prompts@7.10.1': 233 | resolution: {integrity: sha512-Dx/y9bCQcXLI5ooQ5KyvA4FTgeo2jYj/7plWfV5Ak5wDPKQZgudKez2ixyfz7tKXzcJciTxqLeK7R9HItwiByg==} 234 | engines: {node: '>=18'} 235 | peerDependencies: 236 | '@types/node': '>=18' 237 | peerDependenciesMeta: 238 | '@types/node': 239 | optional: true 240 | 241 | '@inquirer/rawlist@4.1.11': 242 | resolution: {integrity: sha512-+LLQB8XGr3I5LZN/GuAHo+GpDJegQwuPARLChlMICNdwW7OwV2izlCSCxN6cqpL0sMXmbKbFcItJgdQq5EBXTw==} 243 | engines: {node: '>=18'} 244 | peerDependencies: 245 | '@types/node': '>=18' 246 | peerDependenciesMeta: 247 | '@types/node': 248 | optional: true 249 | 250 | '@inquirer/search@3.2.2': 251 | resolution: {integrity: sha512-p2bvRfENXCZdWF/U2BXvnSI9h+tuA8iNqtUKb9UWbmLYCRQxd8WkvwWvYn+3NgYaNwdUkHytJMGG4MMLucI1kA==} 252 | engines: {node: '>=18'} 253 | peerDependencies: 254 | '@types/node': '>=18' 255 | peerDependenciesMeta: 256 | '@types/node': 257 | optional: true 258 | 259 | '@inquirer/select@4.4.2': 260 | resolution: {integrity: sha512-l4xMuJo55MAe+N7Qr4rX90vypFwCajSakx59qe/tMaC1aEHWLyw68wF4o0A4SLAY4E0nd+Vt+EyskeDIqu1M6w==} 261 | engines: {node: '>=18'} 262 | peerDependencies: 263 | '@types/node': '>=18' 264 | peerDependenciesMeta: 265 | '@types/node': 266 | optional: true 267 | 268 | '@inquirer/type@3.0.10': 269 | resolution: {integrity: sha512-BvziSRxfz5Ov8ch0z/n3oijRSEcEsHnhggm4xFZe93DHcUCTlutlq9Ox4SVENAfcRD22UQq7T/atg9Wr3k09eA==} 270 | engines: {node: '>=18'} 271 | peerDependencies: 272 | '@types/node': '>=18' 273 | peerDependenciesMeta: 274 | '@types/node': 275 | optional: true 276 | 277 | '@nodelib/fs.scandir@2.1.5': 278 | resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} 279 | engines: {node: '>= 8'} 280 | 281 | '@nodelib/fs.stat@2.0.5': 282 | resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} 283 | engines: {node: '>= 8'} 284 | 285 | '@nodelib/fs.walk@1.2.8': 286 | resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} 287 | engines: {node: '>= 8'} 288 | 289 | '@nodeutils/defaults-deep@1.1.0': 290 | resolution: {integrity: sha512-gG44cwQovaOFdSR02jR9IhVRpnDP64VN6JdjYJTfNz4J4fWn7TQnmrf22nSjRqlwlxPcW8PL/L3KbJg3tdwvpg==} 291 | 292 | '@octokit/auth-token@6.0.0': 293 | resolution: {integrity: sha512-P4YJBPdPSpWTQ1NU4XYdvHvXJJDxM6YwpS0FZHRgP7YFkdVxsWcpWGy/NVqlAA7PcPCnMacXlRm1y2PFZRWL/w==} 294 | engines: {node: '>= 20'} 295 | 296 | '@octokit/core@7.0.6': 297 | resolution: {integrity: sha512-DhGl4xMVFGVIyMwswXeyzdL4uXD5OGILGX5N8Y+f6W7LhC1Ze2poSNrkF/fedpVDHEEZ+PHFW0vL14I+mm8K3Q==} 298 | engines: {node: '>= 20'} 299 | 300 | '@octokit/endpoint@11.0.2': 301 | resolution: {integrity: sha512-4zCpzP1fWc7QlqunZ5bSEjxc6yLAlRTnDwKtgXfcI/FxxGoqedDG8V2+xJ60bV2kODqcGB+nATdtap/XYq2NZQ==} 302 | engines: {node: '>= 20'} 303 | 304 | '@octokit/graphql@9.0.3': 305 | resolution: {integrity: sha512-grAEuupr/C1rALFnXTv6ZQhFuL1D8G5y8CN04RgrO4FIPMrtm+mcZzFG7dcBm+nq+1ppNixu+Jd78aeJOYxlGA==} 306 | engines: {node: '>= 20'} 307 | 308 | '@octokit/openapi-types@26.0.0': 309 | resolution: {integrity: sha512-7AtcfKtpo77j7Ts73b4OWhOZHTKo/gGY8bB3bNBQz4H+GRSWqx2yvj8TXRsbdTE0eRmYmXOEY66jM7mJ7LzfsA==} 310 | 311 | '@octokit/openapi-types@27.0.0': 312 | resolution: {integrity: sha512-whrdktVs1h6gtR+09+QsNk2+FO+49j6ga1c55YZudfEG+oKJVvJLQi3zkOm5JjiUXAagWK2tI2kTGKJ2Ys7MGA==} 313 | 314 | '@octokit/plugin-paginate-rest@13.2.1': 315 | resolution: {integrity: sha512-Tj4PkZyIL6eBMYcG/76QGsedF0+dWVeLhYprTmuFVVxzDW7PQh23tM0TP0z+1MvSkxB29YFZwnUX+cXfTiSdyw==} 316 | engines: {node: '>= 20'} 317 | peerDependencies: 318 | '@octokit/core': '>=6' 319 | 320 | '@octokit/plugin-request-log@6.0.0': 321 | resolution: {integrity: sha512-UkOzeEN3W91/eBq9sPZNQ7sUBvYCqYbrrD8gTbBuGtHEuycE4/awMXcYvx6sVYo7LypPhmQwwpUe4Yyu4QZN5Q==} 322 | engines: {node: '>= 20'} 323 | peerDependencies: 324 | '@octokit/core': '>=6' 325 | 326 | '@octokit/plugin-rest-endpoint-methods@16.1.1': 327 | resolution: {integrity: sha512-VztDkhM0ketQYSh5Im3IcKWFZl7VIrrsCaHbDINkdYeiiAsJzjhS2xRFCSJgfN6VOcsoW4laMtsmf3HcNqIimg==} 328 | engines: {node: '>= 20'} 329 | peerDependencies: 330 | '@octokit/core': '>=6' 331 | 332 | '@octokit/request-error@7.1.0': 333 | resolution: {integrity: sha512-KMQIfq5sOPpkQYajXHwnhjCC0slzCNScLHs9JafXc4RAJI+9f+jNDlBNaIMTvazOPLgb4BnlhGJOTbnN0wIjPw==} 334 | engines: {node: '>= 20'} 335 | 336 | '@octokit/request@10.0.7': 337 | resolution: {integrity: sha512-v93h0i1yu4idj8qFPZwjehoJx4j3Ntn+JhXsdJrG9pYaX6j/XRz2RmasMUHtNgQD39nrv/VwTWSqK0RNXR8upA==} 338 | engines: {node: '>= 20'} 339 | 340 | '@octokit/rest@22.0.0': 341 | resolution: {integrity: sha512-z6tmTu9BTnw51jYGulxrlernpsQYXpui1RK21vmXn8yF5bp6iX16yfTtJYGK5Mh1qDkvDOmp2n8sRMcQmR8jiA==} 342 | engines: {node: '>= 20'} 343 | 344 | '@octokit/types@15.0.2': 345 | resolution: {integrity: sha512-rR+5VRjhYSer7sC51krfCctQhVTmjyUMAaShfPB8mscVa8tSoLyon3coxQmXu0ahJoLVWl8dSGD/3OGZlFV44Q==} 346 | 347 | '@octokit/types@16.0.0': 348 | resolution: {integrity: sha512-sKq+9r1Mm4efXW1FCk7hFSeJo4QKreL/tTbR0rz/qx/r1Oa2VV83LTA/H/MuCOX7uCIJmQVRKBcbmWoySjAnSg==} 349 | 350 | '@oxlint/darwin-arm64@1.29.0': 351 | resolution: {integrity: sha512-XYsieDAI0kXJyvayHnmOW1qVydqklRRVT4O5eZmO/rdNCku5CoXsZvBvkPc3U8/9V1mRuen1sxbM9T5JsZqhdA==} 352 | cpu: [arm64] 353 | os: [darwin] 354 | 355 | '@oxlint/darwin-x64@1.29.0': 356 | resolution: {integrity: sha512-s+Ch5/4zDJ6wsOk95xY3BS5mtE2JzHLz7gVZ9OWA9EvhVO84wz2YbDp2JaA314yyqhlX5SAkZ6fj3BRMIcQIqg==} 357 | cpu: [x64] 358 | os: [darwin] 359 | 360 | '@oxlint/linux-arm64-gnu@1.29.0': 361 | resolution: {integrity: sha512-qLCgdUkDBG8muK1o3mPgf31rvCPzj1Xff9DHlJjfv+B0ee/hJ2LAoK8EIsQedfQuuiAccOe9GG65BivGCTgKOg==} 362 | cpu: [arm64] 363 | os: [linux] 364 | 365 | '@oxlint/linux-arm64-musl@1.29.0': 366 | resolution: {integrity: sha512-qe62yb1fyW51wo1VBpx9AJJ1Ih1T8NYDeR9AmpNGkrmKN8u3pPbcGXM4mCrOwpwJUG9M/oFvCIlIz2RhawHlkA==} 367 | cpu: [arm64] 368 | os: [linux] 369 | 370 | '@oxlint/linux-x64-gnu@1.29.0': 371 | resolution: {integrity: sha512-4x7p2iVoSE2aT9qI1JOLxUAv3UuzMYGBYWBA4ZF8ln99AdUo1eo0snFacPNd6I/ZZNcv5TegXC+0EUhp5MfYBw==} 372 | cpu: [x64] 373 | os: [linux] 374 | 375 | '@oxlint/linux-x64-musl@1.29.0': 376 | resolution: {integrity: sha512-BdH5gdRpaYpyZn2Zm+MCS4b1YmXNe7QyQhw0fawuou+N1LrdAyELgvqI5xXZ1MXCgWDOa6WJaoE6VOPaDc29GA==} 377 | cpu: [x64] 378 | os: [linux] 379 | 380 | '@oxlint/win32-arm64@1.29.0': 381 | resolution: {integrity: sha512-y+j9ZDrnMxvRTNIstZKFY7gJD07nT++c4cGmub1ENvhoHVToiQAAZQUOLDhXXRzCrFoG/cFJXJf72uowHZPbcg==} 382 | cpu: [arm64] 383 | os: [win32] 384 | 385 | '@oxlint/win32-x64@1.29.0': 386 | resolution: {integrity: sha512-F1iRtq8VT96lT8hqOubLyV0GxgIK/XdXk2kFLXdCspiI2ngXeNmTTvmPxrj+WFL6fpJPgv7VKWRb/zEHJnNOrg==} 387 | cpu: [x64] 388 | os: [win32] 389 | 390 | '@phun-ky/typeof@2.0.3': 391 | resolution: {integrity: sha512-oeQJs1aa8Ghke8JIK9yuq/+KjMiaYeDZ38jx7MhkXncXlUKjqQ3wEm2X3qCKyjo+ZZofZj+WsEEiqkTtRuE2xQ==} 392 | engines: {node: ^20.9.0 || >=22.0.0, npm: '>=10.8.2'} 393 | 394 | '@tootallnate/quickjs-emscripten@0.23.0': 395 | resolution: {integrity: sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==} 396 | 397 | '@types/estree@1.0.8': 398 | resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==} 399 | 400 | '@types/json-schema@7.0.15': 401 | resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} 402 | 403 | '@types/parse-path@7.1.0': 404 | resolution: {integrity: sha512-EULJ8LApcVEPbrfND0cRQqutIOdiIgJ1Mgrhpy755r14xMohPTEpkV/k28SJvuOs9bHRFW8x+KeDAEPiGQPB9Q==} 405 | deprecated: This is a stub types definition. parse-path provides its own type definitions, so you do not need this installed. 406 | 407 | '@typescript-eslint/eslint-plugin@8.47.0': 408 | resolution: {integrity: sha512-fe0rz9WJQ5t2iaLfdbDc9T80GJy0AeO453q8C3YCilnGozvOyCG5t+EZtg7j7D88+c3FipfP/x+wzGnh1xp8ZA==} 409 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 410 | peerDependencies: 411 | '@typescript-eslint/parser': ^8.47.0 412 | eslint: ^8.57.0 || ^9.0.0 413 | typescript: '>=4.8.4 <6.0.0' 414 | 415 | '@typescript-eslint/parser@8.47.0': 416 | resolution: {integrity: sha512-lJi3PfxVmo0AkEY93ecfN+r8SofEqZNGByvHAI3GBLrvt1Cw6H5k1IM02nSzu0RfUafr2EvFSw0wAsZgubNplQ==} 417 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 418 | peerDependencies: 419 | eslint: ^8.57.0 || ^9.0.0 420 | typescript: '>=4.8.4 <6.0.0' 421 | 422 | '@typescript-eslint/project-service@8.47.0': 423 | resolution: {integrity: sha512-2X4BX8hUeB5JcA1TQJ7GjcgulXQ+5UkNb0DL8gHsHUHdFoiCTJoYLTpib3LtSDPZsRET5ygN4qqIWrHyYIKERA==} 424 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 425 | peerDependencies: 426 | typescript: '>=4.8.4 <6.0.0' 427 | 428 | '@typescript-eslint/scope-manager@8.47.0': 429 | resolution: {integrity: sha512-a0TTJk4HXMkfpFkL9/WaGTNuv7JWfFTQFJd6zS9dVAjKsojmv9HT55xzbEpnZoY+VUb+YXLMp+ihMLz/UlZfDg==} 430 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 431 | 432 | '@typescript-eslint/tsconfig-utils@8.47.0': 433 | resolution: {integrity: sha512-ybUAvjy4ZCL11uryalkKxuT3w3sXJAuWhOoGS3T/Wu+iUu1tGJmk5ytSY8gbdACNARmcYEB0COksD2j6hfGK2g==} 434 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 435 | peerDependencies: 436 | typescript: '>=4.8.4 <6.0.0' 437 | 438 | '@typescript-eslint/type-utils@8.47.0': 439 | resolution: {integrity: sha512-QC9RiCmZ2HmIdCEvhd1aJELBlD93ErziOXXlHEZyuBo3tBiAZieya0HLIxp+DoDWlsQqDawyKuNEhORyku+P8A==} 440 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 441 | peerDependencies: 442 | eslint: ^8.57.0 || ^9.0.0 443 | typescript: '>=4.8.4 <6.0.0' 444 | 445 | '@typescript-eslint/types@8.47.0': 446 | resolution: {integrity: sha512-nHAE6bMKsizhA2uuYZbEbmp5z2UpffNrPEqiKIeN7VsV6UY/roxanWfoRrf6x/k9+Obf+GQdkm0nPU+vnMXo9A==} 447 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 448 | 449 | '@typescript-eslint/typescript-estree@8.47.0': 450 | resolution: {integrity: sha512-k6ti9UepJf5NpzCjH31hQNLHQWupTRPhZ+KFF8WtTuTpy7uHPfeg2NM7cP27aCGajoEplxJDFVCEm9TGPYyiVg==} 451 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 452 | peerDependencies: 453 | typescript: '>=4.8.4 <6.0.0' 454 | 455 | '@typescript-eslint/utils@8.47.0': 456 | resolution: {integrity: sha512-g7XrNf25iL4TJOiPqatNuaChyqt49a/onq5YsJ9+hXeugK+41LVg7AxikMfM02PC6jbNtZLCJj6AUcQXJS/jGQ==} 457 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 458 | peerDependencies: 459 | eslint: ^8.57.0 || ^9.0.0 460 | typescript: '>=4.8.4 <6.0.0' 461 | 462 | '@typescript-eslint/visitor-keys@8.47.0': 463 | resolution: {integrity: sha512-SIV3/6eftCy1bNzCQoPmbWsRLujS8t5iDIZ4spZOBHqrM+yfX2ogg8Tt3PDTAVKw3sSCiUgg30uOAvK2r9zGjQ==} 464 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 465 | 466 | acorn-jsx@5.3.2: 467 | resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} 468 | peerDependencies: 469 | acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 470 | 471 | acorn@8.15.0: 472 | resolution: {integrity: sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==} 473 | engines: {node: '>=0.4.0'} 474 | hasBin: true 475 | 476 | agent-base@7.1.4: 477 | resolution: {integrity: sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==} 478 | engines: {node: '>= 14'} 479 | 480 | ajv@6.12.6: 481 | resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} 482 | 483 | ansi-regex@5.0.1: 484 | resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} 485 | engines: {node: '>=8'} 486 | 487 | ansi-regex@6.2.2: 488 | resolution: {integrity: sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==} 489 | engines: {node: '>=12'} 490 | 491 | ansi-styles@4.3.0: 492 | resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} 493 | engines: {node: '>=8'} 494 | 495 | argparse@2.0.1: 496 | resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} 497 | 498 | ast-types@0.13.4: 499 | resolution: {integrity: sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==} 500 | engines: {node: '>=4'} 501 | 502 | async-retry@1.3.3: 503 | resolution: {integrity: sha512-wfr/jstw9xNi/0teMHrRW7dsz3Lt5ARhYNZ2ewpadnhaIp5mbALhOAP+EAdsC7t4Z6wqsDVv9+W6gm1Dk9mEyw==} 504 | 505 | balanced-match@1.0.2: 506 | resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} 507 | 508 | basic-ftp@5.0.5: 509 | resolution: {integrity: sha512-4Bcg1P8xhUuqcii/S0Z9wiHIrQVPMermM1any+MX5GeGD7faD3/msQUDGLol9wOcz4/jbg/WJnGqoJF6LiBdtg==} 510 | engines: {node: '>=10.0.0'} 511 | 512 | before-after-hook@4.0.0: 513 | resolution: {integrity: sha512-q6tR3RPqIB1pMiTRMFcZwuG5T8vwp+vUvEG0vuI6B+Rikh5BfPp2fQ82c925FOs+b0lcFQ8CFrL+KbilfZFhOQ==} 514 | 515 | brace-expansion@1.1.12: 516 | resolution: {integrity: sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==} 517 | 518 | brace-expansion@2.0.2: 519 | resolution: {integrity: sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==} 520 | 521 | braces@3.0.3: 522 | resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} 523 | engines: {node: '>=8'} 524 | 525 | bundle-name@4.1.0: 526 | resolution: {integrity: sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==} 527 | engines: {node: '>=18'} 528 | 529 | c12@3.3.1: 530 | resolution: {integrity: sha512-LcWQ01LT9tkoUINHgpIOv3mMs+Abv7oVCrtpMRi1PaapVEpWoMga5WuT7/DqFTu7URP9ftbOmimNw1KNIGh9DQ==} 531 | peerDependencies: 532 | magicast: ^0.3.5 533 | peerDependenciesMeta: 534 | magicast: 535 | optional: true 536 | 537 | callsites@3.1.0: 538 | resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} 539 | engines: {node: '>=6'} 540 | 541 | chalk@4.1.2: 542 | resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} 543 | engines: {node: '>=10'} 544 | 545 | chalk@5.6.2: 546 | resolution: {integrity: sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==} 547 | engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} 548 | 549 | chardet@2.1.1: 550 | resolution: {integrity: sha512-PsezH1rqdV9VvyNhxxOW32/d75r01NY7TQCmOqomRo15ZSOKbpTFVsfjghxo6JloQUCGnH4k1LGu0R4yCLlWQQ==} 551 | 552 | chokidar@4.0.3: 553 | resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==} 554 | engines: {node: '>= 14.16.0'} 555 | 556 | ci-info@4.3.1: 557 | resolution: {integrity: sha512-Wdy2Igu8OcBpI2pZePZ5oWjPC38tmDVx5WKUXKwlLYkA0ozo85sLsLvkBbBn/sZaSCMFOGZJ14fvW9t5/d7kdA==} 558 | engines: {node: '>=8'} 559 | 560 | citty@0.1.6: 561 | resolution: {integrity: sha512-tskPPKEs8D2KPafUypv2gxwJP8h/OaJmC82QQGGDQcHvXX43xF2VDACcJVmZ0EuSxkpO9Kc4MlrA3q0+FG58AQ==} 562 | 563 | cli-cursor@5.0.0: 564 | resolution: {integrity: sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==} 565 | engines: {node: '>=18'} 566 | 567 | cli-spinners@3.3.0: 568 | resolution: {integrity: sha512-/+40ljC3ONVnYIttjMWrlL51nItDAbBrq2upN8BPyvGU/2n5Oxw3tbNwORCaNuNqLJnxGqOfjUuhsv7l5Q4IsQ==} 569 | engines: {node: '>=18.20'} 570 | 571 | cli-width@4.1.0: 572 | resolution: {integrity: sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==} 573 | engines: {node: '>= 12'} 574 | 575 | color-convert@2.0.1: 576 | resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} 577 | engines: {node: '>=7.0.0'} 578 | 579 | color-name@1.1.4: 580 | resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} 581 | 582 | concat-map@0.0.1: 583 | resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} 584 | 585 | confbox@0.2.2: 586 | resolution: {integrity: sha512-1NB+BKqhtNipMsov4xI/NnhCKp9XG9NamYp5PVm9klAT0fsrNPjaFICsCFhNhwZJKNh7zB/3q8qXz0E9oaMNtQ==} 587 | 588 | consola@3.4.2: 589 | resolution: {integrity: sha512-5IKcdX0nnYavi6G7TtOhwkYzyjfJlatbjMjuLSfE2kYT5pMDOilZ4OvMhi637CcDICTmz3wARPoyhqyX1Y+XvA==} 590 | engines: {node: ^14.18.0 || >=16.10.0} 591 | 592 | cross-spawn@7.0.6: 593 | resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} 594 | engines: {node: '>= 8'} 595 | 596 | data-uri-to-buffer@6.0.2: 597 | resolution: {integrity: sha512-7hvf7/GW8e86rW0ptuwS3OcBGDjIi6SZva7hCyWC0yYry2cOPmLIjXAUHI6DK2HsnwJd9ifmt57i8eV2n4YNpw==} 598 | engines: {node: '>= 14'} 599 | 600 | debug@4.4.3: 601 | resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==} 602 | engines: {node: '>=6.0'} 603 | peerDependencies: 604 | supports-color: '*' 605 | peerDependenciesMeta: 606 | supports-color: 607 | optional: true 608 | 609 | deep-is@0.1.4: 610 | resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} 611 | 612 | default-browser-id@5.0.1: 613 | resolution: {integrity: sha512-x1VCxdX4t+8wVfd1so/9w+vQ4vx7lKd2Qp5tDRutErwmR85OgmfX7RlLRMWafRMY7hbEiXIbudNrjOAPa/hL8Q==} 614 | engines: {node: '>=18'} 615 | 616 | default-browser@5.4.0: 617 | resolution: {integrity: sha512-XDuvSq38Hr1MdN47EDvYtx3U0MTqpCEn+F6ft8z2vYDzMrvQhVp0ui9oQdqW3MvK3vqUETglt1tVGgjLuJ5izg==} 618 | engines: {node: '>=18'} 619 | 620 | define-lazy-prop@3.0.0: 621 | resolution: {integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==} 622 | engines: {node: '>=12'} 623 | 624 | defu@6.1.4: 625 | resolution: {integrity: sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==} 626 | 627 | degenerator@5.0.1: 628 | resolution: {integrity: sha512-TllpMR/t0M5sqCXfj85i4XaAzxmS5tVA16dqvdkMwGmzI+dXLXnw3J+3Vdv7VKw+ThlTMboK6i9rnZ6Nntj5CQ==} 629 | engines: {node: '>= 14'} 630 | 631 | destr@2.0.5: 632 | resolution: {integrity: sha512-ugFTXCtDZunbzasqBxrK93Ik/DRYsO6S/fedkWEMKqt04xZ4csmnmwGDBAb07QWNaGMAmnTIemsYZCksjATwsA==} 633 | 634 | dotenv@17.2.3: 635 | resolution: {integrity: sha512-JVUnt+DUIzu87TABbhPmNfVdBDt18BLOWjMUFJMSi/Qqg7NTYtabbvSNJGOJ7afbRuv9D/lngizHtP7QyLQ+9w==} 636 | engines: {node: '>=12'} 637 | 638 | emoji-regex@8.0.0: 639 | resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} 640 | 641 | escape-string-regexp@4.0.0: 642 | resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} 643 | engines: {node: '>=10'} 644 | 645 | escodegen@2.1.0: 646 | resolution: {integrity: sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==} 647 | engines: {node: '>=6.0'} 648 | hasBin: true 649 | 650 | eslint-scope@8.4.0: 651 | resolution: {integrity: sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==} 652 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 653 | 654 | eslint-visitor-keys@3.4.3: 655 | resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} 656 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 657 | 658 | eslint-visitor-keys@4.2.1: 659 | resolution: {integrity: sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==} 660 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 661 | 662 | eslint@9.39.1: 663 | resolution: {integrity: sha512-BhHmn2yNOFA9H9JmmIVKJmd288g9hrVRDkdoIgRCRuSySRUHH7r/DI6aAXW9T1WwUuY3DFgrcaqB+deURBLR5g==} 664 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 665 | hasBin: true 666 | peerDependencies: 667 | jiti: '*' 668 | peerDependenciesMeta: 669 | jiti: 670 | optional: true 671 | 672 | espree@10.4.0: 673 | resolution: {integrity: sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==} 674 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 675 | 676 | esprima@4.0.1: 677 | resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} 678 | engines: {node: '>=4'} 679 | hasBin: true 680 | 681 | esquery@1.6.0: 682 | resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==} 683 | engines: {node: '>=0.10'} 684 | 685 | esrecurse@4.3.0: 686 | resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} 687 | engines: {node: '>=4.0'} 688 | 689 | estraverse@5.3.0: 690 | resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} 691 | engines: {node: '>=4.0'} 692 | 693 | esutils@2.0.3: 694 | resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} 695 | engines: {node: '>=0.10.0'} 696 | 697 | eta@4.0.1: 698 | resolution: {integrity: sha512-0h0oBEsF6qAJU7eu9ztvJoTo8D2PAq/4FvXVIQA1fek3WOTe6KPsVJycekG1+g1N6mfpblkheoGwaUhMtnlH4A==} 699 | engines: {node: '>=20'} 700 | 701 | execa@8.0.1: 702 | resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} 703 | engines: {node: '>=16.17'} 704 | 705 | exsolve@1.0.8: 706 | resolution: {integrity: sha512-LmDxfWXwcTArk8fUEnOfSZpHOJ6zOMUJKOtFLFqJLoKJetuQG874Uc7/Kki7zFLzYybmZhp1M7+98pfMqeX8yA==} 707 | 708 | fast-content-type-parse@3.0.0: 709 | resolution: {integrity: sha512-ZvLdcY8P+N8mGQJahJV5G4U88CSvT1rP8ApL6uETe88MBXrBHAkZlSEySdUlyztF7ccb+Znos3TFqaepHxdhBg==} 710 | 711 | fast-deep-equal@3.1.3: 712 | resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} 713 | 714 | fast-glob@3.3.3: 715 | resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==} 716 | engines: {node: '>=8.6.0'} 717 | 718 | fast-json-stable-stringify@2.1.0: 719 | resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} 720 | 721 | fast-levenshtein@2.0.6: 722 | resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} 723 | 724 | fastq@1.19.1: 725 | resolution: {integrity: sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==} 726 | 727 | fdir@6.5.0: 728 | resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==} 729 | engines: {node: '>=12.0.0'} 730 | peerDependencies: 731 | picomatch: ^3 || ^4 732 | peerDependenciesMeta: 733 | picomatch: 734 | optional: true 735 | 736 | file-entry-cache@8.0.0: 737 | resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==} 738 | engines: {node: '>=16.0.0'} 739 | 740 | fill-range@7.1.1: 741 | resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} 742 | engines: {node: '>=8'} 743 | 744 | find-up@5.0.0: 745 | resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} 746 | engines: {node: '>=10'} 747 | 748 | flat-cache@4.0.1: 749 | resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} 750 | engines: {node: '>=16'} 751 | 752 | flatted@3.3.3: 753 | resolution: {integrity: sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==} 754 | 755 | get-east-asian-width@1.4.0: 756 | resolution: {integrity: sha512-QZjmEOC+IT1uk6Rx0sX22V6uHWVwbdbxf1faPqJ1QhLdGgsRGCZoyaQBm/piRdJy/D2um6hM1UP7ZEeQ4EkP+Q==} 757 | engines: {node: '>=18'} 758 | 759 | get-stream@8.0.1: 760 | resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} 761 | engines: {node: '>=16'} 762 | 763 | get-uri@6.0.5: 764 | resolution: {integrity: sha512-b1O07XYq8eRuVzBNgJLstU6FYc1tS6wnMtF1I1D9lE8LxZSOGZ7LhxN54yPP6mGw5f2CkXY2BQUL9Fx41qvcIg==} 765 | engines: {node: '>= 14'} 766 | 767 | giget@2.0.0: 768 | resolution: {integrity: sha512-L5bGsVkxJbJgdnwyuheIunkGatUF/zssUoxxjACCseZYAVbaqdh9Tsmmlkl8vYan09H7sbvKt4pS8GqKLBrEzA==} 769 | hasBin: true 770 | 771 | git-up@8.1.1: 772 | resolution: {integrity: sha512-FDenSF3fVqBYSaJoYy1KSc2wosx0gCvKP+c+PRBht7cAaiCeQlBtfBDX9vgnNOHmdePlSFITVcn4pFfcgNvx3g==} 773 | 774 | git-url-parse@16.1.0: 775 | resolution: {integrity: sha512-cPLz4HuK86wClEW7iDdeAKcCVlWXmrLpb2L+G9goW0Z1dtpNS6BXXSOckUTlJT/LDQViE1QZKstNORzHsLnobw==} 776 | 777 | glob-parent@5.1.2: 778 | resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} 779 | engines: {node: '>= 6'} 780 | 781 | glob-parent@6.0.2: 782 | resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} 783 | engines: {node: '>=10.13.0'} 784 | 785 | globals@14.0.0: 786 | resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} 787 | engines: {node: '>=18'} 788 | 789 | graphemer@1.4.0: 790 | resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} 791 | 792 | has-flag@4.0.0: 793 | resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} 794 | engines: {node: '>=8'} 795 | 796 | http-proxy-agent@7.0.2: 797 | resolution: {integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==} 798 | engines: {node: '>= 14'} 799 | 800 | https-proxy-agent@7.0.6: 801 | resolution: {integrity: sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==} 802 | engines: {node: '>= 14'} 803 | 804 | human-signals@5.0.0: 805 | resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} 806 | engines: {node: '>=16.17.0'} 807 | 808 | iconv-lite@0.7.0: 809 | resolution: {integrity: sha512-cf6L2Ds3h57VVmkZe+Pn+5APsT7FpqJtEhhieDCvrE2MK5Qk9MyffgQyuxQTm6BChfeZNtcOLHp9IcWRVcIcBQ==} 810 | engines: {node: '>=0.10.0'} 811 | 812 | ignore@5.3.2: 813 | resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} 814 | engines: {node: '>= 4'} 815 | 816 | ignore@7.0.5: 817 | resolution: {integrity: sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==} 818 | engines: {node: '>= 4'} 819 | 820 | import-fresh@3.3.1: 821 | resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==} 822 | engines: {node: '>=6'} 823 | 824 | imurmurhash@0.1.4: 825 | resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} 826 | engines: {node: '>=0.8.19'} 827 | 828 | inquirer@12.9.6: 829 | resolution: {integrity: sha512-603xXOgyfxhuis4nfnWaZrMaotNT0Km9XwwBNWUKbIDqeCY89jGr2F9YPEMiNhU6XjIP4VoWISMBFfcc5NgrTw==} 830 | engines: {node: '>=18'} 831 | peerDependencies: 832 | '@types/node': '>=18' 833 | peerDependenciesMeta: 834 | '@types/node': 835 | optional: true 836 | 837 | ip-address@10.1.0: 838 | resolution: {integrity: sha512-XXADHxXmvT9+CRxhXg56LJovE+bmWnEWB78LB83VZTprKTmaC5QfruXocxzTZ2Kl0DNwKuBdlIhjL8LeY8Sf8Q==} 839 | engines: {node: '>= 12'} 840 | 841 | is-docker@3.0.0: 842 | resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==} 843 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 844 | hasBin: true 845 | 846 | is-extglob@2.1.1: 847 | resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} 848 | engines: {node: '>=0.10.0'} 849 | 850 | is-fullwidth-code-point@3.0.0: 851 | resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} 852 | engines: {node: '>=8'} 853 | 854 | is-glob@4.0.3: 855 | resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} 856 | engines: {node: '>=0.10.0'} 857 | 858 | is-inside-container@1.0.0: 859 | resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==} 860 | engines: {node: '>=14.16'} 861 | hasBin: true 862 | 863 | is-interactive@2.0.0: 864 | resolution: {integrity: sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ==} 865 | engines: {node: '>=12'} 866 | 867 | is-number@7.0.0: 868 | resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} 869 | engines: {node: '>=0.12.0'} 870 | 871 | is-ssh@1.4.1: 872 | resolution: {integrity: sha512-JNeu1wQsHjyHgn9NcWTaXq6zWSR6hqE0++zhfZlkFBbScNkyvxCdeV8sRkSBaeLKxmbpR21brail63ACNxJ0Tg==} 873 | 874 | is-stream@3.0.0: 875 | resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} 876 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 877 | 878 | is-unicode-supported@2.1.0: 879 | resolution: {integrity: sha512-mE00Gnza5EEB3Ds0HfMyllZzbBrmLOX3vfWoj9A9PEnTfratQ/BcaJOuMhnkhjXvb2+FkY3VuHqtAGpTPmglFQ==} 880 | engines: {node: '>=18'} 881 | 882 | is-wsl@3.1.0: 883 | resolution: {integrity: sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==} 884 | engines: {node: '>=16'} 885 | 886 | isexe@2.0.0: 887 | resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} 888 | 889 | issue-parser@7.0.1: 890 | resolution: {integrity: sha512-3YZcUUR2Wt1WsapF+S/WiA2WmlW0cWAoPccMqne7AxEBhCdFeTPjfv/Axb8V2gyCgY3nRw+ksZ3xSUX+R47iAg==} 891 | engines: {node: ^18.17 || >=20.6.1} 892 | 893 | jiti@2.6.1: 894 | resolution: {integrity: sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==} 895 | hasBin: true 896 | 897 | js-yaml@4.1.1: 898 | resolution: {integrity: sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==} 899 | hasBin: true 900 | 901 | json-buffer@3.0.1: 902 | resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} 903 | 904 | json-schema-traverse@0.4.1: 905 | resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} 906 | 907 | json-stable-stringify-without-jsonify@1.0.1: 908 | resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} 909 | 910 | keyv@4.5.4: 911 | resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} 912 | 913 | levn@0.4.1: 914 | resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} 915 | engines: {node: '>= 0.8.0'} 916 | 917 | locate-path@6.0.0: 918 | resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} 919 | engines: {node: '>=10'} 920 | 921 | lodash.capitalize@4.2.1: 922 | resolution: {integrity: sha512-kZzYOKspf8XVX5AvmQF94gQW0lejFVgb80G85bU4ZWzoJ6C03PQg3coYAUpSTpQWelrZELd3XWgHzw4Ck5kaIw==} 923 | 924 | lodash.escaperegexp@4.1.2: 925 | resolution: {integrity: sha512-TM9YBvyC84ZxE3rgfefxUWiQKLilstD6k7PTGt6wfbtXF8ixIJLOL3VYyV/z+ZiPLsVxAsKAFVwWlWeb2Y8Yyw==} 926 | 927 | lodash.isplainobject@4.0.6: 928 | resolution: {integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==} 929 | 930 | lodash.isstring@4.0.1: 931 | resolution: {integrity: sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==} 932 | 933 | lodash.merge@4.6.2: 934 | resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} 935 | 936 | lodash.uniqby@4.7.0: 937 | resolution: {integrity: sha512-e/zcLx6CSbmaEgFHCA7BnoQKyCtKMxnuWrJygbwPs/AIn+IMKl66L8/s+wBUn5LRw2pZx3bUHibiV1b6aTWIww==} 938 | 939 | lodash@4.17.21: 940 | resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} 941 | 942 | log-symbols@7.0.1: 943 | resolution: {integrity: sha512-ja1E3yCr9i/0hmBVaM0bfwDjnGy8I/s6PP4DFp+yP+a+mrHO4Rm7DtmnqROTUkHIkqffC84YY7AeqX6oFk0WFg==} 944 | engines: {node: '>=18'} 945 | 946 | lru-cache@7.18.3: 947 | resolution: {integrity: sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==} 948 | engines: {node: '>=12'} 949 | 950 | macos-release@3.4.0: 951 | resolution: {integrity: sha512-wpGPwyg/xrSp4H4Db4xYSeAr6+cFQGHfspHzDUdYxswDnUW0L5Ov63UuJiSr8NMSpyaChO4u1n0MXUvVPtrN6A==} 952 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 953 | 954 | merge-stream@2.0.0: 955 | resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} 956 | 957 | merge2@1.4.1: 958 | resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} 959 | engines: {node: '>= 8'} 960 | 961 | micromatch@4.0.8: 962 | resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} 963 | engines: {node: '>=8.6'} 964 | 965 | mime-db@1.54.0: 966 | resolution: {integrity: sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==} 967 | engines: {node: '>= 0.6'} 968 | 969 | mime-types@3.0.1: 970 | resolution: {integrity: sha512-xRc4oEhT6eaBpU1XF7AjpOFD+xQmXNB5OVKwp4tqCuBpHLS/ZbBDrc07mYTDqVMg6PfxUjjNp85O6Cd2Z/5HWA==} 971 | engines: {node: '>= 0.6'} 972 | 973 | mimic-fn@4.0.0: 974 | resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} 975 | engines: {node: '>=12'} 976 | 977 | mimic-function@5.0.1: 978 | resolution: {integrity: sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==} 979 | engines: {node: '>=18'} 980 | 981 | minimatch@3.1.2: 982 | resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} 983 | 984 | minimatch@9.0.5: 985 | resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} 986 | engines: {node: '>=16 || 14 >=14.17'} 987 | 988 | ms@2.1.3: 989 | resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} 990 | 991 | mute-stream@2.0.0: 992 | resolution: {integrity: sha512-WWdIxpyjEn+FhQJQQv9aQAYlHoNVdzIzUySNV1gHUPDSdZJ3yZn7pAAbQcV7B56Mvu881q9FZV+0Vx2xC44VWA==} 993 | engines: {node: ^18.17.0 || >=20.5.0} 994 | 995 | natural-compare@1.4.0: 996 | resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} 997 | 998 | netmask@2.0.2: 999 | resolution: {integrity: sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==} 1000 | engines: {node: '>= 0.4.0'} 1001 | 1002 | new-github-release-url@2.0.0: 1003 | resolution: {integrity: sha512-NHDDGYudnvRutt/VhKFlX26IotXe1w0cmkDm6JGquh5bz/bDTw0LufSmH/GxTjEdpHEO+bVKFTwdrcGa/9XlKQ==} 1004 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 1005 | 1006 | node-fetch-native@1.6.7: 1007 | resolution: {integrity: sha512-g9yhqoedzIUm0nTnTqAQvueMPVOuIY16bqgAJJC8XOOubYFNwz6IER9qs0Gq2Xd0+CecCKFjtdDTMA4u4xG06Q==} 1008 | 1009 | npm-run-path@5.3.0: 1010 | resolution: {integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==} 1011 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 1012 | 1013 | nypm@0.6.2: 1014 | resolution: {integrity: sha512-7eM+hpOtrKrBDCh7Ypu2lJ9Z7PNZBdi/8AT3AX8xoCj43BBVHD0hPSTEvMtkMpfs8FCqBGhxB+uToIQimA111g==} 1015 | engines: {node: ^14.16.0 || >=16.10.0} 1016 | hasBin: true 1017 | 1018 | ohash@2.0.11: 1019 | resolution: {integrity: sha512-RdR9FQrFwNBNXAr4GixM8YaRZRJ5PUWbKYbE5eOsrwAjJW0q2REGcf79oYPsLyskQCZG1PLN+S/K1V00joZAoQ==} 1020 | 1021 | onetime@6.0.0: 1022 | resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} 1023 | engines: {node: '>=12'} 1024 | 1025 | onetime@7.0.0: 1026 | resolution: {integrity: sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==} 1027 | engines: {node: '>=18'} 1028 | 1029 | open@10.2.0: 1030 | resolution: {integrity: sha512-YgBpdJHPyQ2UE5x+hlSXcnejzAvD0b22U2OuAP+8OnlJT+PjWPxtgmGqKKc+RgTM63U9gN0YzrYc71R2WT/hTA==} 1031 | engines: {node: '>=18'} 1032 | 1033 | optionator@0.9.4: 1034 | resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} 1035 | engines: {node: '>= 0.8.0'} 1036 | 1037 | ora@9.0.0: 1038 | resolution: {integrity: sha512-m0pg2zscbYgWbqRR6ABga5c3sZdEon7bSgjnlXC64kxtxLOyjRcbbUkLj7HFyy/FTD+P2xdBWu8snGhYI0jc4A==} 1039 | engines: {node: '>=20'} 1040 | 1041 | os-name@6.1.0: 1042 | resolution: {integrity: sha512-zBd1G8HkewNd2A8oQ8c6BN/f/c9EId7rSUueOLGu28govmUctXmM+3765GwsByv9nYUdrLqHphXlYIc86saYsg==} 1043 | engines: {node: '>=18'} 1044 | 1045 | oxlint@1.29.0: 1046 | resolution: {integrity: sha512-YqUVUhTYDqazV2qu3QSQn/H4Z1OP+fTnedgZWDk1/lDZxGfR0b1MqRVaEm3rRjBMLHP0zXlriIWUx+DD6UMaPA==} 1047 | engines: {node: ^20.19.0 || >=22.12.0} 1048 | hasBin: true 1049 | peerDependencies: 1050 | oxlint-tsgolint: '>=0.7.1' 1051 | peerDependenciesMeta: 1052 | oxlint-tsgolint: 1053 | optional: true 1054 | 1055 | p-limit@3.1.0: 1056 | resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} 1057 | engines: {node: '>=10'} 1058 | 1059 | p-locate@5.0.0: 1060 | resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} 1061 | engines: {node: '>=10'} 1062 | 1063 | pac-proxy-agent@7.2.0: 1064 | resolution: {integrity: sha512-TEB8ESquiLMc0lV8vcd5Ql/JAKAoyzHFXaStwjkzpOpC5Yv+pIzLfHvjTSdf3vpa2bMiUQrg9i6276yn8666aA==} 1065 | engines: {node: '>= 14'} 1066 | 1067 | pac-resolver@7.0.1: 1068 | resolution: {integrity: sha512-5NPgf87AT2STgwa2ntRMr45jTKrYBGkVU36yT0ig/n/GMAa3oPqhZfIQ2kMEimReg0+t9kZViDVZ83qfVUlckg==} 1069 | engines: {node: '>= 14'} 1070 | 1071 | parent-module@1.0.1: 1072 | resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} 1073 | engines: {node: '>=6'} 1074 | 1075 | parse-path@7.1.0: 1076 | resolution: {integrity: sha512-EuCycjZtfPcjWk7KTksnJ5xPMvWGA/6i4zrLYhRG0hGvC3GPU/jGUj3Cy+ZR0v30duV3e23R95T1lE2+lsndSw==} 1077 | 1078 | parse-url@9.2.0: 1079 | resolution: {integrity: sha512-bCgsFI+GeGWPAvAiUv63ZorMeif3/U0zaXABGJbOWt5OH2KCaPHF6S+0ok4aqM9RuIPGyZdx9tR9l13PsW4AYQ==} 1080 | engines: {node: '>=14.13.0'} 1081 | 1082 | path-exists@4.0.0: 1083 | resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} 1084 | engines: {node: '>=8'} 1085 | 1086 | path-key@3.1.1: 1087 | resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} 1088 | engines: {node: '>=8'} 1089 | 1090 | path-key@4.0.0: 1091 | resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} 1092 | engines: {node: '>=12'} 1093 | 1094 | pathe@2.0.3: 1095 | resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==} 1096 | 1097 | perfect-debounce@2.0.0: 1098 | resolution: {integrity: sha512-fkEH/OBiKrqqI/yIgjR92lMfs2K8105zt/VT6+7eTjNwisrsh47CeIED9z58zI7DfKdH3uHAn25ziRZn3kgAow==} 1099 | 1100 | picomatch@2.3.1: 1101 | resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} 1102 | engines: {node: '>=8.6'} 1103 | 1104 | picomatch@4.0.3: 1105 | resolution: {integrity: sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==} 1106 | engines: {node: '>=12'} 1107 | 1108 | pkg-types@2.3.0: 1109 | resolution: {integrity: sha512-SIqCzDRg0s9npO5XQ3tNZioRY1uK06lA41ynBC1YmFTmnY6FjUjVt6s4LoADmwoig1qqD0oK8h1p/8mlMx8Oig==} 1110 | 1111 | prelude-ls@1.2.1: 1112 | resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} 1113 | engines: {node: '>= 0.8.0'} 1114 | 1115 | protocols@2.0.2: 1116 | resolution: {integrity: sha512-hHVTzba3wboROl0/aWRRG9dMytgH6ow//STBZh43l/wQgmMhYhOFi0EHWAPtoCz9IAUymsyP0TSBHkhgMEGNnQ==} 1117 | 1118 | proxy-agent@6.5.0: 1119 | resolution: {integrity: sha512-TmatMXdr2KlRiA2CyDu8GqR8EjahTG3aY3nXjdzFyoZbmB8hrBsTyMezhULIXKnC0jpfjlmiZ3+EaCzoInSu/A==} 1120 | engines: {node: '>= 14'} 1121 | 1122 | proxy-from-env@1.1.0: 1123 | resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} 1124 | 1125 | punycode@2.3.1: 1126 | resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} 1127 | engines: {node: '>=6'} 1128 | 1129 | queue-microtask@1.2.3: 1130 | resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} 1131 | 1132 | rc9@2.1.2: 1133 | resolution: {integrity: sha512-btXCnMmRIBINM2LDZoEmOogIZU7Qe7zn4BpomSKZ/ykbLObuBdvG+mFq11DL6fjH1DRwHhrlgtYWG96bJiC7Cg==} 1134 | 1135 | readdirp@4.1.2: 1136 | resolution: {integrity: sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==} 1137 | engines: {node: '>= 14.18.0'} 1138 | 1139 | release-it@19.0.6: 1140 | resolution: {integrity: sha512-XTCNZ2mV9wjASQmc2bcQjA+ImJiFMijbFSyQE6lDmP1Plq17acjYaoY5FmJb5Lh/Nv4UDwfRlKQMv1DvHFKf1g==} 1141 | engines: {node: ^20.12.0 || >=22.0.0} 1142 | hasBin: true 1143 | 1144 | resolve-from@4.0.0: 1145 | resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} 1146 | engines: {node: '>=4'} 1147 | 1148 | restore-cursor@5.1.0: 1149 | resolution: {integrity: sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==} 1150 | engines: {node: '>=18'} 1151 | 1152 | retry@0.13.1: 1153 | resolution: {integrity: sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==} 1154 | engines: {node: '>= 4'} 1155 | 1156 | reusify@1.1.0: 1157 | resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==} 1158 | engines: {iojs: '>=1.0.0', node: '>=0.10.0'} 1159 | 1160 | run-applescript@7.1.0: 1161 | resolution: {integrity: sha512-DPe5pVFaAsinSaV6QjQ6gdiedWDcRCbUuiQfQa2wmWV7+xC9bGulGI8+TdRmoFkAPaBXk8CrAbnlY2ISniJ47Q==} 1162 | engines: {node: '>=18'} 1163 | 1164 | run-async@4.0.6: 1165 | resolution: {integrity: sha512-IoDlSLTs3Yq593mb3ZoKWKXMNu3UpObxhgA/Xuid5p4bbfi2jdY1Hj0m1K+0/tEuQTxIGMhQDqGjKb7RuxGpAQ==} 1166 | engines: {node: '>=0.12.0'} 1167 | 1168 | run-parallel@1.2.0: 1169 | resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} 1170 | 1171 | rxjs@7.8.2: 1172 | resolution: {integrity: sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==} 1173 | 1174 | safer-buffer@2.1.2: 1175 | resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} 1176 | 1177 | semver@7.7.2: 1178 | resolution: {integrity: sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==} 1179 | engines: {node: '>=10'} 1180 | hasBin: true 1181 | 1182 | semver@7.7.3: 1183 | resolution: {integrity: sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==} 1184 | engines: {node: '>=10'} 1185 | hasBin: true 1186 | 1187 | shebang-command@2.0.0: 1188 | resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} 1189 | engines: {node: '>=8'} 1190 | 1191 | shebang-regex@3.0.0: 1192 | resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} 1193 | engines: {node: '>=8'} 1194 | 1195 | signal-exit@4.1.0: 1196 | resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} 1197 | engines: {node: '>=14'} 1198 | 1199 | smart-buffer@4.2.0: 1200 | resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==} 1201 | engines: {node: '>= 6.0.0', npm: '>= 3.0.0'} 1202 | 1203 | socks-proxy-agent@8.0.5: 1204 | resolution: {integrity: sha512-HehCEsotFqbPW9sJ8WVYB6UbmIMv7kUUORIF2Nncq4VQvBfNBLibW9YZR5dlYCSUhwcD628pRllm7n+E+YTzJw==} 1205 | engines: {node: '>= 14'} 1206 | 1207 | socks@2.8.7: 1208 | resolution: {integrity: sha512-HLpt+uLy/pxB+bum/9DzAgiKS8CX1EvbWxI4zlmgGCExImLdiad2iCwXT5Z4c9c3Eq8rP2318mPW2c+QbtjK8A==} 1209 | engines: {node: '>= 10.0.0', npm: '>= 3.0.0'} 1210 | 1211 | source-map@0.6.1: 1212 | resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} 1213 | engines: {node: '>=0.10.0'} 1214 | 1215 | stdin-discarder@0.2.2: 1216 | resolution: {integrity: sha512-UhDfHmA92YAlNnCfhmq0VeNL5bDbiZGg7sZ2IvPsXubGkiNa9EC+tUTsjBRsYUAz87btI6/1wf4XoVvQ3uRnmQ==} 1217 | engines: {node: '>=18'} 1218 | 1219 | string-width@4.2.3: 1220 | resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} 1221 | engines: {node: '>=8'} 1222 | 1223 | string-width@8.1.0: 1224 | resolution: {integrity: sha512-Kxl3KJGb/gxkaUMOjRsQ8IrXiGW75O4E3RPjFIINOVH8AMl2SQ/yWdTzWwF3FevIX9LcMAjJW+GRwAlAbTSXdg==} 1225 | engines: {node: '>=20'} 1226 | 1227 | strip-ansi@6.0.1: 1228 | resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} 1229 | engines: {node: '>=8'} 1230 | 1231 | strip-ansi@7.1.2: 1232 | resolution: {integrity: sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==} 1233 | engines: {node: '>=12'} 1234 | 1235 | strip-final-newline@3.0.0: 1236 | resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} 1237 | engines: {node: '>=12'} 1238 | 1239 | strip-json-comments@3.1.1: 1240 | resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} 1241 | engines: {node: '>=8'} 1242 | 1243 | supports-color@7.2.0: 1244 | resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} 1245 | engines: {node: '>=8'} 1246 | 1247 | tinyexec@1.0.2: 1248 | resolution: {integrity: sha512-W/KYk+NFhkmsYpuHq5JykngiOCnxeVL8v8dFnqxSD8qEEdRfXk1SDM6JzNqcERbcGYj9tMrDQBYV9cjgnunFIg==} 1249 | engines: {node: '>=18'} 1250 | 1251 | tinyglobby@0.2.15: 1252 | resolution: {integrity: sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==} 1253 | engines: {node: '>=12.0.0'} 1254 | 1255 | to-regex-range@5.0.1: 1256 | resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} 1257 | engines: {node: '>=8.0'} 1258 | 1259 | ts-api-utils@2.1.0: 1260 | resolution: {integrity: sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ==} 1261 | engines: {node: '>=18.12'} 1262 | peerDependencies: 1263 | typescript: '>=4.8.4' 1264 | 1265 | tslib@2.8.1: 1266 | resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} 1267 | 1268 | type-check@0.4.0: 1269 | resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} 1270 | engines: {node: '>= 0.8.0'} 1271 | 1272 | type-fest@2.19.0: 1273 | resolution: {integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==} 1274 | engines: {node: '>=12.20'} 1275 | 1276 | typescript-eslint@8.47.0: 1277 | resolution: {integrity: sha512-Lwe8i2XQ3WoMjua/r1PHrCTpkubPYJCAfOurtn+mtTzqB6jNd+14n9UN1bJ4s3F49x9ixAm0FLflB/JzQ57M8Q==} 1278 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 1279 | peerDependencies: 1280 | eslint: ^8.57.0 || ^9.0.0 1281 | typescript: '>=4.8.4 <6.0.0' 1282 | 1283 | typescript@5.9.3: 1284 | resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==} 1285 | engines: {node: '>=14.17'} 1286 | hasBin: true 1287 | 1288 | undici@6.21.3: 1289 | resolution: {integrity: sha512-gBLkYIlEnSp8pFbT64yFgGE6UIB9tAkhukC23PmMDCe5Nd+cRqKxSjw5y54MK2AZMgZfJWMaNE4nYUHgi1XEOw==} 1290 | engines: {node: '>=18.17'} 1291 | 1292 | universal-user-agent@7.0.3: 1293 | resolution: {integrity: sha512-TmnEAEAsBJVZM/AADELsK76llnwcf9vMKuPz8JflO1frO8Lchitr0fNaN9d+Ap0BjKtqWqd/J17qeDnXh8CL2A==} 1294 | 1295 | uri-js@4.4.1: 1296 | resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} 1297 | 1298 | url-join@5.0.0: 1299 | resolution: {integrity: sha512-n2huDr9h9yzd6exQVnH/jU5mr+Pfx08LRXXZhkLLetAMESRj+anQsTAh940iMrIetKAmry9coFuZQ2jY8/p3WA==} 1300 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 1301 | 1302 | which@2.0.2: 1303 | resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} 1304 | engines: {node: '>= 8'} 1305 | hasBin: true 1306 | 1307 | wildcard-match@5.1.4: 1308 | resolution: {integrity: sha512-wldeCaczs8XXq7hj+5d/F38JE2r7EXgb6WQDM84RVwxy81T/sxB5e9+uZLK9Q9oNz1mlvjut+QtvgaOQFPVq/g==} 1309 | 1310 | windows-release@6.1.0: 1311 | resolution: {integrity: sha512-1lOb3qdzw6OFmOzoY0nauhLG72TpWtb5qgYPiSh/62rjc1XidBSDio2qw0pwHh17VINF217ebIkZJdFLZFn9SA==} 1312 | engines: {node: '>=18'} 1313 | 1314 | word-wrap@1.2.5: 1315 | resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} 1316 | engines: {node: '>=0.10.0'} 1317 | 1318 | wrap-ansi@6.2.0: 1319 | resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} 1320 | engines: {node: '>=8'} 1321 | 1322 | wsl-utils@0.1.0: 1323 | resolution: {integrity: sha512-h3Fbisa2nKGPxCpm89Hk33lBLsnaGBvctQopaBSOW/uIs6FTe1ATyAnKFJrzVs9vpGdsTe73WF3V4lIsk4Gacw==} 1324 | engines: {node: '>=18'} 1325 | 1326 | yargs-parser@21.1.1: 1327 | resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} 1328 | engines: {node: '>=12'} 1329 | 1330 | yocto-queue@0.1.0: 1331 | resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} 1332 | engines: {node: '>=10'} 1333 | 1334 | yoctocolors-cjs@2.1.3: 1335 | resolution: {integrity: sha512-U/PBtDf35ff0D8X8D0jfdzHYEPFxAI7jJlxZXwCSez5M3190m+QobIfh+sWDWSHMCWWJN2AWamkegn6vr6YBTw==} 1336 | engines: {node: '>=18'} 1337 | 1338 | yoctocolors@2.1.2: 1339 | resolution: {integrity: sha512-CzhO+pFNo8ajLM2d2IW/R93ipy99LWjtwblvC1RsoSUMZgyLbYFr221TnSNT7GjGdYui6P459mw9JH/g/zW2ug==} 1340 | engines: {node: '>=18'} 1341 | 1342 | snapshots: 1343 | 1344 | '@biomejs/biome@2.3.7': 1345 | optionalDependencies: 1346 | '@biomejs/cli-darwin-arm64': 2.3.7 1347 | '@biomejs/cli-darwin-x64': 2.3.7 1348 | '@biomejs/cli-linux-arm64': 2.3.7 1349 | '@biomejs/cli-linux-arm64-musl': 2.3.7 1350 | '@biomejs/cli-linux-x64': 2.3.7 1351 | '@biomejs/cli-linux-x64-musl': 2.3.7 1352 | '@biomejs/cli-win32-arm64': 2.3.7 1353 | '@biomejs/cli-win32-x64': 2.3.7 1354 | 1355 | '@biomejs/cli-darwin-arm64@2.3.7': 1356 | optional: true 1357 | 1358 | '@biomejs/cli-darwin-x64@2.3.7': 1359 | optional: true 1360 | 1361 | '@biomejs/cli-linux-arm64-musl@2.3.7': 1362 | optional: true 1363 | 1364 | '@biomejs/cli-linux-arm64@2.3.7': 1365 | optional: true 1366 | 1367 | '@biomejs/cli-linux-x64-musl@2.3.7': 1368 | optional: true 1369 | 1370 | '@biomejs/cli-linux-x64@2.3.7': 1371 | optional: true 1372 | 1373 | '@biomejs/cli-win32-arm64@2.3.7': 1374 | optional: true 1375 | 1376 | '@biomejs/cli-win32-x64@2.3.7': 1377 | optional: true 1378 | 1379 | '@eslint-community/eslint-utils@4.9.0(eslint@9.39.1(jiti@2.6.1))': 1380 | dependencies: 1381 | eslint: 9.39.1(jiti@2.6.1) 1382 | eslint-visitor-keys: 3.4.3 1383 | 1384 | '@eslint-community/regexpp@4.12.2': {} 1385 | 1386 | '@eslint/config-array@0.21.1': 1387 | dependencies: 1388 | '@eslint/object-schema': 2.1.7 1389 | debug: 4.4.3 1390 | minimatch: 3.1.2 1391 | transitivePeerDependencies: 1392 | - supports-color 1393 | 1394 | '@eslint/config-helpers@0.4.2': 1395 | dependencies: 1396 | '@eslint/core': 0.17.0 1397 | 1398 | '@eslint/core@0.17.0': 1399 | dependencies: 1400 | '@types/json-schema': 7.0.15 1401 | 1402 | '@eslint/eslintrc@3.3.1': 1403 | dependencies: 1404 | ajv: 6.12.6 1405 | debug: 4.4.3 1406 | espree: 10.4.0 1407 | globals: 14.0.0 1408 | ignore: 5.3.2 1409 | import-fresh: 3.3.1 1410 | js-yaml: 4.1.1 1411 | minimatch: 3.1.2 1412 | strip-json-comments: 3.1.1 1413 | transitivePeerDependencies: 1414 | - supports-color 1415 | 1416 | '@eslint/js@9.39.1': {} 1417 | 1418 | '@eslint/object-schema@2.1.7': {} 1419 | 1420 | '@eslint/plugin-kit@0.4.1': 1421 | dependencies: 1422 | '@eslint/core': 0.17.0 1423 | levn: 0.4.1 1424 | 1425 | '@humanfs/core@0.19.1': {} 1426 | 1427 | '@humanfs/node@0.16.7': 1428 | dependencies: 1429 | '@humanfs/core': 0.19.1 1430 | '@humanwhocodes/retry': 0.4.3 1431 | 1432 | '@humanwhocodes/module-importer@1.0.1': {} 1433 | 1434 | '@humanwhocodes/retry@0.4.3': {} 1435 | 1436 | '@inquirer/ansi@1.0.2': {} 1437 | 1438 | '@inquirer/checkbox@4.3.2': 1439 | dependencies: 1440 | '@inquirer/ansi': 1.0.2 1441 | '@inquirer/core': 10.3.2 1442 | '@inquirer/figures': 1.0.15 1443 | '@inquirer/type': 3.0.10 1444 | yoctocolors-cjs: 2.1.3 1445 | 1446 | '@inquirer/confirm@5.1.21': 1447 | dependencies: 1448 | '@inquirer/core': 10.3.2 1449 | '@inquirer/type': 3.0.10 1450 | 1451 | '@inquirer/core@10.3.2': 1452 | dependencies: 1453 | '@inquirer/ansi': 1.0.2 1454 | '@inquirer/figures': 1.0.15 1455 | '@inquirer/type': 3.0.10 1456 | cli-width: 4.1.0 1457 | mute-stream: 2.0.0 1458 | signal-exit: 4.1.0 1459 | wrap-ansi: 6.2.0 1460 | yoctocolors-cjs: 2.1.3 1461 | 1462 | '@inquirer/editor@4.2.23': 1463 | dependencies: 1464 | '@inquirer/core': 10.3.2 1465 | '@inquirer/external-editor': 1.0.3 1466 | '@inquirer/type': 3.0.10 1467 | 1468 | '@inquirer/expand@4.0.23': 1469 | dependencies: 1470 | '@inquirer/core': 10.3.2 1471 | '@inquirer/type': 3.0.10 1472 | yoctocolors-cjs: 2.1.3 1473 | 1474 | '@inquirer/external-editor@1.0.3': 1475 | dependencies: 1476 | chardet: 2.1.1 1477 | iconv-lite: 0.7.0 1478 | 1479 | '@inquirer/figures@1.0.15': {} 1480 | 1481 | '@inquirer/input@4.3.1': 1482 | dependencies: 1483 | '@inquirer/core': 10.3.2 1484 | '@inquirer/type': 3.0.10 1485 | 1486 | '@inquirer/number@3.0.23': 1487 | dependencies: 1488 | '@inquirer/core': 10.3.2 1489 | '@inquirer/type': 3.0.10 1490 | 1491 | '@inquirer/password@4.0.23': 1492 | dependencies: 1493 | '@inquirer/ansi': 1.0.2 1494 | '@inquirer/core': 10.3.2 1495 | '@inquirer/type': 3.0.10 1496 | 1497 | '@inquirer/prompts@7.10.1': 1498 | dependencies: 1499 | '@inquirer/checkbox': 4.3.2 1500 | '@inquirer/confirm': 5.1.21 1501 | '@inquirer/editor': 4.2.23 1502 | '@inquirer/expand': 4.0.23 1503 | '@inquirer/input': 4.3.1 1504 | '@inquirer/number': 3.0.23 1505 | '@inquirer/password': 4.0.23 1506 | '@inquirer/rawlist': 4.1.11 1507 | '@inquirer/search': 3.2.2 1508 | '@inquirer/select': 4.4.2 1509 | 1510 | '@inquirer/rawlist@4.1.11': 1511 | dependencies: 1512 | '@inquirer/core': 10.3.2 1513 | '@inquirer/type': 3.0.10 1514 | yoctocolors-cjs: 2.1.3 1515 | 1516 | '@inquirer/search@3.2.2': 1517 | dependencies: 1518 | '@inquirer/core': 10.3.2 1519 | '@inquirer/figures': 1.0.15 1520 | '@inquirer/type': 3.0.10 1521 | yoctocolors-cjs: 2.1.3 1522 | 1523 | '@inquirer/select@4.4.2': 1524 | dependencies: 1525 | '@inquirer/ansi': 1.0.2 1526 | '@inquirer/core': 10.3.2 1527 | '@inquirer/figures': 1.0.15 1528 | '@inquirer/type': 3.0.10 1529 | yoctocolors-cjs: 2.1.3 1530 | 1531 | '@inquirer/type@3.0.10': {} 1532 | 1533 | '@nodelib/fs.scandir@2.1.5': 1534 | dependencies: 1535 | '@nodelib/fs.stat': 2.0.5 1536 | run-parallel: 1.2.0 1537 | 1538 | '@nodelib/fs.stat@2.0.5': {} 1539 | 1540 | '@nodelib/fs.walk@1.2.8': 1541 | dependencies: 1542 | '@nodelib/fs.scandir': 2.1.5 1543 | fastq: 1.19.1 1544 | 1545 | '@nodeutils/defaults-deep@1.1.0': 1546 | dependencies: 1547 | lodash: 4.17.21 1548 | 1549 | '@octokit/auth-token@6.0.0': {} 1550 | 1551 | '@octokit/core@7.0.6': 1552 | dependencies: 1553 | '@octokit/auth-token': 6.0.0 1554 | '@octokit/graphql': 9.0.3 1555 | '@octokit/request': 10.0.7 1556 | '@octokit/request-error': 7.1.0 1557 | '@octokit/types': 16.0.0 1558 | before-after-hook: 4.0.0 1559 | universal-user-agent: 7.0.3 1560 | 1561 | '@octokit/endpoint@11.0.2': 1562 | dependencies: 1563 | '@octokit/types': 16.0.0 1564 | universal-user-agent: 7.0.3 1565 | 1566 | '@octokit/graphql@9.0.3': 1567 | dependencies: 1568 | '@octokit/request': 10.0.7 1569 | '@octokit/types': 16.0.0 1570 | universal-user-agent: 7.0.3 1571 | 1572 | '@octokit/openapi-types@26.0.0': {} 1573 | 1574 | '@octokit/openapi-types@27.0.0': {} 1575 | 1576 | '@octokit/plugin-paginate-rest@13.2.1(@octokit/core@7.0.6)': 1577 | dependencies: 1578 | '@octokit/core': 7.0.6 1579 | '@octokit/types': 15.0.2 1580 | 1581 | '@octokit/plugin-request-log@6.0.0(@octokit/core@7.0.6)': 1582 | dependencies: 1583 | '@octokit/core': 7.0.6 1584 | 1585 | '@octokit/plugin-rest-endpoint-methods@16.1.1(@octokit/core@7.0.6)': 1586 | dependencies: 1587 | '@octokit/core': 7.0.6 1588 | '@octokit/types': 15.0.2 1589 | 1590 | '@octokit/request-error@7.1.0': 1591 | dependencies: 1592 | '@octokit/types': 16.0.0 1593 | 1594 | '@octokit/request@10.0.7': 1595 | dependencies: 1596 | '@octokit/endpoint': 11.0.2 1597 | '@octokit/request-error': 7.1.0 1598 | '@octokit/types': 16.0.0 1599 | fast-content-type-parse: 3.0.0 1600 | universal-user-agent: 7.0.3 1601 | 1602 | '@octokit/rest@22.0.0': 1603 | dependencies: 1604 | '@octokit/core': 7.0.6 1605 | '@octokit/plugin-paginate-rest': 13.2.1(@octokit/core@7.0.6) 1606 | '@octokit/plugin-request-log': 6.0.0(@octokit/core@7.0.6) 1607 | '@octokit/plugin-rest-endpoint-methods': 16.1.1(@octokit/core@7.0.6) 1608 | 1609 | '@octokit/types@15.0.2': 1610 | dependencies: 1611 | '@octokit/openapi-types': 26.0.0 1612 | 1613 | '@octokit/types@16.0.0': 1614 | dependencies: 1615 | '@octokit/openapi-types': 27.0.0 1616 | 1617 | '@oxlint/darwin-arm64@1.29.0': 1618 | optional: true 1619 | 1620 | '@oxlint/darwin-x64@1.29.0': 1621 | optional: true 1622 | 1623 | '@oxlint/linux-arm64-gnu@1.29.0': 1624 | optional: true 1625 | 1626 | '@oxlint/linux-arm64-musl@1.29.0': 1627 | optional: true 1628 | 1629 | '@oxlint/linux-x64-gnu@1.29.0': 1630 | optional: true 1631 | 1632 | '@oxlint/linux-x64-musl@1.29.0': 1633 | optional: true 1634 | 1635 | '@oxlint/win32-arm64@1.29.0': 1636 | optional: true 1637 | 1638 | '@oxlint/win32-x64@1.29.0': 1639 | optional: true 1640 | 1641 | '@phun-ky/typeof@2.0.3': {} 1642 | 1643 | '@tootallnate/quickjs-emscripten@0.23.0': {} 1644 | 1645 | '@types/estree@1.0.8': {} 1646 | 1647 | '@types/json-schema@7.0.15': {} 1648 | 1649 | '@types/parse-path@7.1.0': 1650 | dependencies: 1651 | parse-path: 7.1.0 1652 | 1653 | '@typescript-eslint/eslint-plugin@8.47.0(@typescript-eslint/parser@8.47.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)': 1654 | dependencies: 1655 | '@eslint-community/regexpp': 4.12.2 1656 | '@typescript-eslint/parser': 8.47.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) 1657 | '@typescript-eslint/scope-manager': 8.47.0 1658 | '@typescript-eslint/type-utils': 8.47.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) 1659 | '@typescript-eslint/utils': 8.47.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) 1660 | '@typescript-eslint/visitor-keys': 8.47.0 1661 | eslint: 9.39.1(jiti@2.6.1) 1662 | graphemer: 1.4.0 1663 | ignore: 7.0.5 1664 | natural-compare: 1.4.0 1665 | ts-api-utils: 2.1.0(typescript@5.9.3) 1666 | typescript: 5.9.3 1667 | transitivePeerDependencies: 1668 | - supports-color 1669 | 1670 | '@typescript-eslint/parser@8.47.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)': 1671 | dependencies: 1672 | '@typescript-eslint/scope-manager': 8.47.0 1673 | '@typescript-eslint/types': 8.47.0 1674 | '@typescript-eslint/typescript-estree': 8.47.0(typescript@5.9.3) 1675 | '@typescript-eslint/visitor-keys': 8.47.0 1676 | debug: 4.4.3 1677 | eslint: 9.39.1(jiti@2.6.1) 1678 | typescript: 5.9.3 1679 | transitivePeerDependencies: 1680 | - supports-color 1681 | 1682 | '@typescript-eslint/project-service@8.47.0(typescript@5.9.3)': 1683 | dependencies: 1684 | '@typescript-eslint/tsconfig-utils': 8.47.0(typescript@5.9.3) 1685 | '@typescript-eslint/types': 8.47.0 1686 | debug: 4.4.3 1687 | typescript: 5.9.3 1688 | transitivePeerDependencies: 1689 | - supports-color 1690 | 1691 | '@typescript-eslint/scope-manager@8.47.0': 1692 | dependencies: 1693 | '@typescript-eslint/types': 8.47.0 1694 | '@typescript-eslint/visitor-keys': 8.47.0 1695 | 1696 | '@typescript-eslint/tsconfig-utils@8.47.0(typescript@5.9.3)': 1697 | dependencies: 1698 | typescript: 5.9.3 1699 | 1700 | '@typescript-eslint/type-utils@8.47.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)': 1701 | dependencies: 1702 | '@typescript-eslint/types': 8.47.0 1703 | '@typescript-eslint/typescript-estree': 8.47.0(typescript@5.9.3) 1704 | '@typescript-eslint/utils': 8.47.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) 1705 | debug: 4.4.3 1706 | eslint: 9.39.1(jiti@2.6.1) 1707 | ts-api-utils: 2.1.0(typescript@5.9.3) 1708 | typescript: 5.9.3 1709 | transitivePeerDependencies: 1710 | - supports-color 1711 | 1712 | '@typescript-eslint/types@8.47.0': {} 1713 | 1714 | '@typescript-eslint/typescript-estree@8.47.0(typescript@5.9.3)': 1715 | dependencies: 1716 | '@typescript-eslint/project-service': 8.47.0(typescript@5.9.3) 1717 | '@typescript-eslint/tsconfig-utils': 8.47.0(typescript@5.9.3) 1718 | '@typescript-eslint/types': 8.47.0 1719 | '@typescript-eslint/visitor-keys': 8.47.0 1720 | debug: 4.4.3 1721 | fast-glob: 3.3.3 1722 | is-glob: 4.0.3 1723 | minimatch: 9.0.5 1724 | semver: 7.7.3 1725 | ts-api-utils: 2.1.0(typescript@5.9.3) 1726 | typescript: 5.9.3 1727 | transitivePeerDependencies: 1728 | - supports-color 1729 | 1730 | '@typescript-eslint/utils@8.47.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)': 1731 | dependencies: 1732 | '@eslint-community/eslint-utils': 4.9.0(eslint@9.39.1(jiti@2.6.1)) 1733 | '@typescript-eslint/scope-manager': 8.47.0 1734 | '@typescript-eslint/types': 8.47.0 1735 | '@typescript-eslint/typescript-estree': 8.47.0(typescript@5.9.3) 1736 | eslint: 9.39.1(jiti@2.6.1) 1737 | typescript: 5.9.3 1738 | transitivePeerDependencies: 1739 | - supports-color 1740 | 1741 | '@typescript-eslint/visitor-keys@8.47.0': 1742 | dependencies: 1743 | '@typescript-eslint/types': 8.47.0 1744 | eslint-visitor-keys: 4.2.1 1745 | 1746 | acorn-jsx@5.3.2(acorn@8.15.0): 1747 | dependencies: 1748 | acorn: 8.15.0 1749 | 1750 | acorn@8.15.0: {} 1751 | 1752 | agent-base@7.1.4: {} 1753 | 1754 | ajv@6.12.6: 1755 | dependencies: 1756 | fast-deep-equal: 3.1.3 1757 | fast-json-stable-stringify: 2.1.0 1758 | json-schema-traverse: 0.4.1 1759 | uri-js: 4.4.1 1760 | 1761 | ansi-regex@5.0.1: {} 1762 | 1763 | ansi-regex@6.2.2: {} 1764 | 1765 | ansi-styles@4.3.0: 1766 | dependencies: 1767 | color-convert: 2.0.1 1768 | 1769 | argparse@2.0.1: {} 1770 | 1771 | ast-types@0.13.4: 1772 | dependencies: 1773 | tslib: 2.8.1 1774 | 1775 | async-retry@1.3.3: 1776 | dependencies: 1777 | retry: 0.13.1 1778 | 1779 | balanced-match@1.0.2: {} 1780 | 1781 | basic-ftp@5.0.5: {} 1782 | 1783 | before-after-hook@4.0.0: {} 1784 | 1785 | brace-expansion@1.1.12: 1786 | dependencies: 1787 | balanced-match: 1.0.2 1788 | concat-map: 0.0.1 1789 | 1790 | brace-expansion@2.0.2: 1791 | dependencies: 1792 | balanced-match: 1.0.2 1793 | 1794 | braces@3.0.3: 1795 | dependencies: 1796 | fill-range: 7.1.1 1797 | 1798 | bundle-name@4.1.0: 1799 | dependencies: 1800 | run-applescript: 7.1.0 1801 | 1802 | c12@3.3.1: 1803 | dependencies: 1804 | chokidar: 4.0.3 1805 | confbox: 0.2.2 1806 | defu: 6.1.4 1807 | dotenv: 17.2.3 1808 | exsolve: 1.0.8 1809 | giget: 2.0.0 1810 | jiti: 2.6.1 1811 | ohash: 2.0.11 1812 | pathe: 2.0.3 1813 | perfect-debounce: 2.0.0 1814 | pkg-types: 2.3.0 1815 | rc9: 2.1.2 1816 | 1817 | callsites@3.1.0: {} 1818 | 1819 | chalk@4.1.2: 1820 | dependencies: 1821 | ansi-styles: 4.3.0 1822 | supports-color: 7.2.0 1823 | 1824 | chalk@5.6.2: {} 1825 | 1826 | chardet@2.1.1: {} 1827 | 1828 | chokidar@4.0.3: 1829 | dependencies: 1830 | readdirp: 4.1.2 1831 | 1832 | ci-info@4.3.1: {} 1833 | 1834 | citty@0.1.6: 1835 | dependencies: 1836 | consola: 3.4.2 1837 | 1838 | cli-cursor@5.0.0: 1839 | dependencies: 1840 | restore-cursor: 5.1.0 1841 | 1842 | cli-spinners@3.3.0: {} 1843 | 1844 | cli-width@4.1.0: {} 1845 | 1846 | color-convert@2.0.1: 1847 | dependencies: 1848 | color-name: 1.1.4 1849 | 1850 | color-name@1.1.4: {} 1851 | 1852 | concat-map@0.0.1: {} 1853 | 1854 | confbox@0.2.2: {} 1855 | 1856 | consola@3.4.2: {} 1857 | 1858 | cross-spawn@7.0.6: 1859 | dependencies: 1860 | path-key: 3.1.1 1861 | shebang-command: 2.0.0 1862 | which: 2.0.2 1863 | 1864 | data-uri-to-buffer@6.0.2: {} 1865 | 1866 | debug@4.4.3: 1867 | dependencies: 1868 | ms: 2.1.3 1869 | 1870 | deep-is@0.1.4: {} 1871 | 1872 | default-browser-id@5.0.1: {} 1873 | 1874 | default-browser@5.4.0: 1875 | dependencies: 1876 | bundle-name: 4.1.0 1877 | default-browser-id: 5.0.1 1878 | 1879 | define-lazy-prop@3.0.0: {} 1880 | 1881 | defu@6.1.4: {} 1882 | 1883 | degenerator@5.0.1: 1884 | dependencies: 1885 | ast-types: 0.13.4 1886 | escodegen: 2.1.0 1887 | esprima: 4.0.1 1888 | 1889 | destr@2.0.5: {} 1890 | 1891 | dotenv@17.2.3: {} 1892 | 1893 | emoji-regex@8.0.0: {} 1894 | 1895 | escape-string-regexp@4.0.0: {} 1896 | 1897 | escodegen@2.1.0: 1898 | dependencies: 1899 | esprima: 4.0.1 1900 | estraverse: 5.3.0 1901 | esutils: 2.0.3 1902 | optionalDependencies: 1903 | source-map: 0.6.1 1904 | 1905 | eslint-scope@8.4.0: 1906 | dependencies: 1907 | esrecurse: 4.3.0 1908 | estraverse: 5.3.0 1909 | 1910 | eslint-visitor-keys@3.4.3: {} 1911 | 1912 | eslint-visitor-keys@4.2.1: {} 1913 | 1914 | eslint@9.39.1(jiti@2.6.1): 1915 | dependencies: 1916 | '@eslint-community/eslint-utils': 4.9.0(eslint@9.39.1(jiti@2.6.1)) 1917 | '@eslint-community/regexpp': 4.12.2 1918 | '@eslint/config-array': 0.21.1 1919 | '@eslint/config-helpers': 0.4.2 1920 | '@eslint/core': 0.17.0 1921 | '@eslint/eslintrc': 3.3.1 1922 | '@eslint/js': 9.39.1 1923 | '@eslint/plugin-kit': 0.4.1 1924 | '@humanfs/node': 0.16.7 1925 | '@humanwhocodes/module-importer': 1.0.1 1926 | '@humanwhocodes/retry': 0.4.3 1927 | '@types/estree': 1.0.8 1928 | ajv: 6.12.6 1929 | chalk: 4.1.2 1930 | cross-spawn: 7.0.6 1931 | debug: 4.4.3 1932 | escape-string-regexp: 4.0.0 1933 | eslint-scope: 8.4.0 1934 | eslint-visitor-keys: 4.2.1 1935 | espree: 10.4.0 1936 | esquery: 1.6.0 1937 | esutils: 2.0.3 1938 | fast-deep-equal: 3.1.3 1939 | file-entry-cache: 8.0.0 1940 | find-up: 5.0.0 1941 | glob-parent: 6.0.2 1942 | ignore: 5.3.2 1943 | imurmurhash: 0.1.4 1944 | is-glob: 4.0.3 1945 | json-stable-stringify-without-jsonify: 1.0.1 1946 | lodash.merge: 4.6.2 1947 | minimatch: 3.1.2 1948 | natural-compare: 1.4.0 1949 | optionator: 0.9.4 1950 | optionalDependencies: 1951 | jiti: 2.6.1 1952 | transitivePeerDependencies: 1953 | - supports-color 1954 | 1955 | espree@10.4.0: 1956 | dependencies: 1957 | acorn: 8.15.0 1958 | acorn-jsx: 5.3.2(acorn@8.15.0) 1959 | eslint-visitor-keys: 4.2.1 1960 | 1961 | esprima@4.0.1: {} 1962 | 1963 | esquery@1.6.0: 1964 | dependencies: 1965 | estraverse: 5.3.0 1966 | 1967 | esrecurse@4.3.0: 1968 | dependencies: 1969 | estraverse: 5.3.0 1970 | 1971 | estraverse@5.3.0: {} 1972 | 1973 | esutils@2.0.3: {} 1974 | 1975 | eta@4.0.1: {} 1976 | 1977 | execa@8.0.1: 1978 | dependencies: 1979 | cross-spawn: 7.0.6 1980 | get-stream: 8.0.1 1981 | human-signals: 5.0.0 1982 | is-stream: 3.0.0 1983 | merge-stream: 2.0.0 1984 | npm-run-path: 5.3.0 1985 | onetime: 6.0.0 1986 | signal-exit: 4.1.0 1987 | strip-final-newline: 3.0.0 1988 | 1989 | exsolve@1.0.8: {} 1990 | 1991 | fast-content-type-parse@3.0.0: {} 1992 | 1993 | fast-deep-equal@3.1.3: {} 1994 | 1995 | fast-glob@3.3.3: 1996 | dependencies: 1997 | '@nodelib/fs.stat': 2.0.5 1998 | '@nodelib/fs.walk': 1.2.8 1999 | glob-parent: 5.1.2 2000 | merge2: 1.4.1 2001 | micromatch: 4.0.8 2002 | 2003 | fast-json-stable-stringify@2.1.0: {} 2004 | 2005 | fast-levenshtein@2.0.6: {} 2006 | 2007 | fastq@1.19.1: 2008 | dependencies: 2009 | reusify: 1.1.0 2010 | 2011 | fdir@6.5.0(picomatch@4.0.3): 2012 | optionalDependencies: 2013 | picomatch: 4.0.3 2014 | 2015 | file-entry-cache@8.0.0: 2016 | dependencies: 2017 | flat-cache: 4.0.1 2018 | 2019 | fill-range@7.1.1: 2020 | dependencies: 2021 | to-regex-range: 5.0.1 2022 | 2023 | find-up@5.0.0: 2024 | dependencies: 2025 | locate-path: 6.0.0 2026 | path-exists: 4.0.0 2027 | 2028 | flat-cache@4.0.1: 2029 | dependencies: 2030 | flatted: 3.3.3 2031 | keyv: 4.5.4 2032 | 2033 | flatted@3.3.3: {} 2034 | 2035 | get-east-asian-width@1.4.0: {} 2036 | 2037 | get-stream@8.0.1: {} 2038 | 2039 | get-uri@6.0.5: 2040 | dependencies: 2041 | basic-ftp: 5.0.5 2042 | data-uri-to-buffer: 6.0.2 2043 | debug: 4.4.3 2044 | transitivePeerDependencies: 2045 | - supports-color 2046 | 2047 | giget@2.0.0: 2048 | dependencies: 2049 | citty: 0.1.6 2050 | consola: 3.4.2 2051 | defu: 6.1.4 2052 | node-fetch-native: 1.6.7 2053 | nypm: 0.6.2 2054 | pathe: 2.0.3 2055 | 2056 | git-up@8.1.1: 2057 | dependencies: 2058 | is-ssh: 1.4.1 2059 | parse-url: 9.2.0 2060 | 2061 | git-url-parse@16.1.0: 2062 | dependencies: 2063 | git-up: 8.1.1 2064 | 2065 | glob-parent@5.1.2: 2066 | dependencies: 2067 | is-glob: 4.0.3 2068 | 2069 | glob-parent@6.0.2: 2070 | dependencies: 2071 | is-glob: 4.0.3 2072 | 2073 | globals@14.0.0: {} 2074 | 2075 | graphemer@1.4.0: {} 2076 | 2077 | has-flag@4.0.0: {} 2078 | 2079 | http-proxy-agent@7.0.2: 2080 | dependencies: 2081 | agent-base: 7.1.4 2082 | debug: 4.4.3 2083 | transitivePeerDependencies: 2084 | - supports-color 2085 | 2086 | https-proxy-agent@7.0.6: 2087 | dependencies: 2088 | agent-base: 7.1.4 2089 | debug: 4.4.3 2090 | transitivePeerDependencies: 2091 | - supports-color 2092 | 2093 | human-signals@5.0.0: {} 2094 | 2095 | iconv-lite@0.7.0: 2096 | dependencies: 2097 | safer-buffer: 2.1.2 2098 | 2099 | ignore@5.3.2: {} 2100 | 2101 | ignore@7.0.5: {} 2102 | 2103 | import-fresh@3.3.1: 2104 | dependencies: 2105 | parent-module: 1.0.1 2106 | resolve-from: 4.0.0 2107 | 2108 | imurmurhash@0.1.4: {} 2109 | 2110 | inquirer@12.9.6: 2111 | dependencies: 2112 | '@inquirer/ansi': 1.0.2 2113 | '@inquirer/core': 10.3.2 2114 | '@inquirer/prompts': 7.10.1 2115 | '@inquirer/type': 3.0.10 2116 | mute-stream: 2.0.0 2117 | run-async: 4.0.6 2118 | rxjs: 7.8.2 2119 | 2120 | ip-address@10.1.0: {} 2121 | 2122 | is-docker@3.0.0: {} 2123 | 2124 | is-extglob@2.1.1: {} 2125 | 2126 | is-fullwidth-code-point@3.0.0: {} 2127 | 2128 | is-glob@4.0.3: 2129 | dependencies: 2130 | is-extglob: 2.1.1 2131 | 2132 | is-inside-container@1.0.0: 2133 | dependencies: 2134 | is-docker: 3.0.0 2135 | 2136 | is-interactive@2.0.0: {} 2137 | 2138 | is-number@7.0.0: {} 2139 | 2140 | is-ssh@1.4.1: 2141 | dependencies: 2142 | protocols: 2.0.2 2143 | 2144 | is-stream@3.0.0: {} 2145 | 2146 | is-unicode-supported@2.1.0: {} 2147 | 2148 | is-wsl@3.1.0: 2149 | dependencies: 2150 | is-inside-container: 1.0.0 2151 | 2152 | isexe@2.0.0: {} 2153 | 2154 | issue-parser@7.0.1: 2155 | dependencies: 2156 | lodash.capitalize: 4.2.1 2157 | lodash.escaperegexp: 4.1.2 2158 | lodash.isplainobject: 4.0.6 2159 | lodash.isstring: 4.0.1 2160 | lodash.uniqby: 4.7.0 2161 | 2162 | jiti@2.6.1: {} 2163 | 2164 | js-yaml@4.1.1: 2165 | dependencies: 2166 | argparse: 2.0.1 2167 | 2168 | json-buffer@3.0.1: {} 2169 | 2170 | json-schema-traverse@0.4.1: {} 2171 | 2172 | json-stable-stringify-without-jsonify@1.0.1: {} 2173 | 2174 | keyv@4.5.4: 2175 | dependencies: 2176 | json-buffer: 3.0.1 2177 | 2178 | levn@0.4.1: 2179 | dependencies: 2180 | prelude-ls: 1.2.1 2181 | type-check: 0.4.0 2182 | 2183 | locate-path@6.0.0: 2184 | dependencies: 2185 | p-locate: 5.0.0 2186 | 2187 | lodash.capitalize@4.2.1: {} 2188 | 2189 | lodash.escaperegexp@4.1.2: {} 2190 | 2191 | lodash.isplainobject@4.0.6: {} 2192 | 2193 | lodash.isstring@4.0.1: {} 2194 | 2195 | lodash.merge@4.6.2: {} 2196 | 2197 | lodash.uniqby@4.7.0: {} 2198 | 2199 | lodash@4.17.21: {} 2200 | 2201 | log-symbols@7.0.1: 2202 | dependencies: 2203 | is-unicode-supported: 2.1.0 2204 | yoctocolors: 2.1.2 2205 | 2206 | lru-cache@7.18.3: {} 2207 | 2208 | macos-release@3.4.0: {} 2209 | 2210 | merge-stream@2.0.0: {} 2211 | 2212 | merge2@1.4.1: {} 2213 | 2214 | micromatch@4.0.8: 2215 | dependencies: 2216 | braces: 3.0.3 2217 | picomatch: 2.3.1 2218 | 2219 | mime-db@1.54.0: {} 2220 | 2221 | mime-types@3.0.1: 2222 | dependencies: 2223 | mime-db: 1.54.0 2224 | 2225 | mimic-fn@4.0.0: {} 2226 | 2227 | mimic-function@5.0.1: {} 2228 | 2229 | minimatch@3.1.2: 2230 | dependencies: 2231 | brace-expansion: 1.1.12 2232 | 2233 | minimatch@9.0.5: 2234 | dependencies: 2235 | brace-expansion: 2.0.2 2236 | 2237 | ms@2.1.3: {} 2238 | 2239 | mute-stream@2.0.0: {} 2240 | 2241 | natural-compare@1.4.0: {} 2242 | 2243 | netmask@2.0.2: {} 2244 | 2245 | new-github-release-url@2.0.0: 2246 | dependencies: 2247 | type-fest: 2.19.0 2248 | 2249 | node-fetch-native@1.6.7: {} 2250 | 2251 | npm-run-path@5.3.0: 2252 | dependencies: 2253 | path-key: 4.0.0 2254 | 2255 | nypm@0.6.2: 2256 | dependencies: 2257 | citty: 0.1.6 2258 | consola: 3.4.2 2259 | pathe: 2.0.3 2260 | pkg-types: 2.3.0 2261 | tinyexec: 1.0.2 2262 | 2263 | ohash@2.0.11: {} 2264 | 2265 | onetime@6.0.0: 2266 | dependencies: 2267 | mimic-fn: 4.0.0 2268 | 2269 | onetime@7.0.0: 2270 | dependencies: 2271 | mimic-function: 5.0.1 2272 | 2273 | open@10.2.0: 2274 | dependencies: 2275 | default-browser: 5.4.0 2276 | define-lazy-prop: 3.0.0 2277 | is-inside-container: 1.0.0 2278 | wsl-utils: 0.1.0 2279 | 2280 | optionator@0.9.4: 2281 | dependencies: 2282 | deep-is: 0.1.4 2283 | fast-levenshtein: 2.0.6 2284 | levn: 0.4.1 2285 | prelude-ls: 1.2.1 2286 | type-check: 0.4.0 2287 | word-wrap: 1.2.5 2288 | 2289 | ora@9.0.0: 2290 | dependencies: 2291 | chalk: 5.6.2 2292 | cli-cursor: 5.0.0 2293 | cli-spinners: 3.3.0 2294 | is-interactive: 2.0.0 2295 | is-unicode-supported: 2.1.0 2296 | log-symbols: 7.0.1 2297 | stdin-discarder: 0.2.2 2298 | string-width: 8.1.0 2299 | strip-ansi: 7.1.2 2300 | 2301 | os-name@6.1.0: 2302 | dependencies: 2303 | macos-release: 3.4.0 2304 | windows-release: 6.1.0 2305 | 2306 | oxlint@1.29.0: 2307 | optionalDependencies: 2308 | '@oxlint/darwin-arm64': 1.29.0 2309 | '@oxlint/darwin-x64': 1.29.0 2310 | '@oxlint/linux-arm64-gnu': 1.29.0 2311 | '@oxlint/linux-arm64-musl': 1.29.0 2312 | '@oxlint/linux-x64-gnu': 1.29.0 2313 | '@oxlint/linux-x64-musl': 1.29.0 2314 | '@oxlint/win32-arm64': 1.29.0 2315 | '@oxlint/win32-x64': 1.29.0 2316 | 2317 | p-limit@3.1.0: 2318 | dependencies: 2319 | yocto-queue: 0.1.0 2320 | 2321 | p-locate@5.0.0: 2322 | dependencies: 2323 | p-limit: 3.1.0 2324 | 2325 | pac-proxy-agent@7.2.0: 2326 | dependencies: 2327 | '@tootallnate/quickjs-emscripten': 0.23.0 2328 | agent-base: 7.1.4 2329 | debug: 4.4.3 2330 | get-uri: 6.0.5 2331 | http-proxy-agent: 7.0.2 2332 | https-proxy-agent: 7.0.6 2333 | pac-resolver: 7.0.1 2334 | socks-proxy-agent: 8.0.5 2335 | transitivePeerDependencies: 2336 | - supports-color 2337 | 2338 | pac-resolver@7.0.1: 2339 | dependencies: 2340 | degenerator: 5.0.1 2341 | netmask: 2.0.2 2342 | 2343 | parent-module@1.0.1: 2344 | dependencies: 2345 | callsites: 3.1.0 2346 | 2347 | parse-path@7.1.0: 2348 | dependencies: 2349 | protocols: 2.0.2 2350 | 2351 | parse-url@9.2.0: 2352 | dependencies: 2353 | '@types/parse-path': 7.1.0 2354 | parse-path: 7.1.0 2355 | 2356 | path-exists@4.0.0: {} 2357 | 2358 | path-key@3.1.1: {} 2359 | 2360 | path-key@4.0.0: {} 2361 | 2362 | pathe@2.0.3: {} 2363 | 2364 | perfect-debounce@2.0.0: {} 2365 | 2366 | picomatch@2.3.1: {} 2367 | 2368 | picomatch@4.0.3: {} 2369 | 2370 | pkg-types@2.3.0: 2371 | dependencies: 2372 | confbox: 0.2.2 2373 | exsolve: 1.0.8 2374 | pathe: 2.0.3 2375 | 2376 | prelude-ls@1.2.1: {} 2377 | 2378 | protocols@2.0.2: {} 2379 | 2380 | proxy-agent@6.5.0: 2381 | dependencies: 2382 | agent-base: 7.1.4 2383 | debug: 4.4.3 2384 | http-proxy-agent: 7.0.2 2385 | https-proxy-agent: 7.0.6 2386 | lru-cache: 7.18.3 2387 | pac-proxy-agent: 7.2.0 2388 | proxy-from-env: 1.1.0 2389 | socks-proxy-agent: 8.0.5 2390 | transitivePeerDependencies: 2391 | - supports-color 2392 | 2393 | proxy-from-env@1.1.0: {} 2394 | 2395 | punycode@2.3.1: {} 2396 | 2397 | queue-microtask@1.2.3: {} 2398 | 2399 | rc9@2.1.2: 2400 | dependencies: 2401 | defu: 6.1.4 2402 | destr: 2.0.5 2403 | 2404 | readdirp@4.1.2: {} 2405 | 2406 | release-it@19.0.6: 2407 | dependencies: 2408 | '@nodeutils/defaults-deep': 1.1.0 2409 | '@octokit/rest': 22.0.0 2410 | '@phun-ky/typeof': 2.0.3 2411 | async-retry: 1.3.3 2412 | c12: 3.3.1 2413 | ci-info: 4.3.1 2414 | eta: 4.0.1 2415 | git-url-parse: 16.1.0 2416 | inquirer: 12.9.6 2417 | issue-parser: 7.0.1 2418 | lodash.merge: 4.6.2 2419 | mime-types: 3.0.1 2420 | new-github-release-url: 2.0.0 2421 | open: 10.2.0 2422 | ora: 9.0.0 2423 | os-name: 6.1.0 2424 | proxy-agent: 6.5.0 2425 | semver: 7.7.2 2426 | tinyglobby: 0.2.15 2427 | undici: 6.21.3 2428 | url-join: 5.0.0 2429 | wildcard-match: 5.1.4 2430 | yargs-parser: 21.1.1 2431 | transitivePeerDependencies: 2432 | - '@types/node' 2433 | - magicast 2434 | - supports-color 2435 | 2436 | resolve-from@4.0.0: {} 2437 | 2438 | restore-cursor@5.1.0: 2439 | dependencies: 2440 | onetime: 7.0.0 2441 | signal-exit: 4.1.0 2442 | 2443 | retry@0.13.1: {} 2444 | 2445 | reusify@1.1.0: {} 2446 | 2447 | run-applescript@7.1.0: {} 2448 | 2449 | run-async@4.0.6: {} 2450 | 2451 | run-parallel@1.2.0: 2452 | dependencies: 2453 | queue-microtask: 1.2.3 2454 | 2455 | rxjs@7.8.2: 2456 | dependencies: 2457 | tslib: 2.8.1 2458 | 2459 | safer-buffer@2.1.2: {} 2460 | 2461 | semver@7.7.2: {} 2462 | 2463 | semver@7.7.3: {} 2464 | 2465 | shebang-command@2.0.0: 2466 | dependencies: 2467 | shebang-regex: 3.0.0 2468 | 2469 | shebang-regex@3.0.0: {} 2470 | 2471 | signal-exit@4.1.0: {} 2472 | 2473 | smart-buffer@4.2.0: {} 2474 | 2475 | socks-proxy-agent@8.0.5: 2476 | dependencies: 2477 | agent-base: 7.1.4 2478 | debug: 4.4.3 2479 | socks: 2.8.7 2480 | transitivePeerDependencies: 2481 | - supports-color 2482 | 2483 | socks@2.8.7: 2484 | dependencies: 2485 | ip-address: 10.1.0 2486 | smart-buffer: 4.2.0 2487 | 2488 | source-map@0.6.1: 2489 | optional: true 2490 | 2491 | stdin-discarder@0.2.2: {} 2492 | 2493 | string-width@4.2.3: 2494 | dependencies: 2495 | emoji-regex: 8.0.0 2496 | is-fullwidth-code-point: 3.0.0 2497 | strip-ansi: 6.0.1 2498 | 2499 | string-width@8.1.0: 2500 | dependencies: 2501 | get-east-asian-width: 1.4.0 2502 | strip-ansi: 7.1.2 2503 | 2504 | strip-ansi@6.0.1: 2505 | dependencies: 2506 | ansi-regex: 5.0.1 2507 | 2508 | strip-ansi@7.1.2: 2509 | dependencies: 2510 | ansi-regex: 6.2.2 2511 | 2512 | strip-final-newline@3.0.0: {} 2513 | 2514 | strip-json-comments@3.1.1: {} 2515 | 2516 | supports-color@7.2.0: 2517 | dependencies: 2518 | has-flag: 4.0.0 2519 | 2520 | tinyexec@1.0.2: {} 2521 | 2522 | tinyglobby@0.2.15: 2523 | dependencies: 2524 | fdir: 6.5.0(picomatch@4.0.3) 2525 | picomatch: 4.0.3 2526 | 2527 | to-regex-range@5.0.1: 2528 | dependencies: 2529 | is-number: 7.0.0 2530 | 2531 | ts-api-utils@2.1.0(typescript@5.9.3): 2532 | dependencies: 2533 | typescript: 5.9.3 2534 | 2535 | tslib@2.8.1: {} 2536 | 2537 | type-check@0.4.0: 2538 | dependencies: 2539 | prelude-ls: 1.2.1 2540 | 2541 | type-fest@2.19.0: {} 2542 | 2543 | typescript-eslint@8.47.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3): 2544 | dependencies: 2545 | '@typescript-eslint/eslint-plugin': 8.47.0(@typescript-eslint/parser@8.47.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) 2546 | '@typescript-eslint/parser': 8.47.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) 2547 | '@typescript-eslint/typescript-estree': 8.47.0(typescript@5.9.3) 2548 | '@typescript-eslint/utils': 8.47.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) 2549 | eslint: 9.39.1(jiti@2.6.1) 2550 | typescript: 5.9.3 2551 | transitivePeerDependencies: 2552 | - supports-color 2553 | 2554 | typescript@5.9.3: {} 2555 | 2556 | undici@6.21.3: {} 2557 | 2558 | universal-user-agent@7.0.3: {} 2559 | 2560 | uri-js@4.4.1: 2561 | dependencies: 2562 | punycode: 2.3.1 2563 | 2564 | url-join@5.0.0: {} 2565 | 2566 | which@2.0.2: 2567 | dependencies: 2568 | isexe: 2.0.0 2569 | 2570 | wildcard-match@5.1.4: {} 2571 | 2572 | windows-release@6.1.0: 2573 | dependencies: 2574 | execa: 8.0.1 2575 | 2576 | word-wrap@1.2.5: {} 2577 | 2578 | wrap-ansi@6.2.0: 2579 | dependencies: 2580 | ansi-styles: 4.3.0 2581 | string-width: 4.2.3 2582 | strip-ansi: 6.0.1 2583 | 2584 | wsl-utils@0.1.0: 2585 | dependencies: 2586 | is-wsl: 3.1.0 2587 | 2588 | yargs-parser@21.1.1: {} 2589 | 2590 | yocto-queue@0.1.0: {} 2591 | 2592 | yoctocolors-cjs@2.1.3: {} 2593 | 2594 | yoctocolors@2.1.2: {} 2595 | --------------------------------------------------------------------------------