diff --git a/.gitignore b/.gitignore index 5355ee0..7aeab46 100644 --- a/.gitignore +++ b/.gitignore @@ -2,6 +2,8 @@ node_modules *.tsbuildinfo *.d.ts *.map +*.vsix packages/*/index.js packages/*/lib/**/*.js -.tsslint/ +packages/vscode/package-lock.json +.tsslint/ \ No newline at end of file diff --git a/.vscode/launch.json b/.vscode/launch.json index c4c882e..35c55a4 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -6,6 +6,7 @@ "name": "Launch VSCode Extension", "type": "extensionHost", "request": "launch", + "autoAttachChildProcesses": true, "runtimeExecutable": "${execPath}", "args": [ "--extensionDevelopmentPath=${workspaceRoot}/packages/vscode", diff --git a/packages/cli/index.ts b/packages/cli/index.ts index e0477fe..6783e45 100644 --- a/packages/cli/index.ts +++ b/packages/cli/index.ts @@ -1,7 +1,6 @@ import ts = require('typescript'); import path = require('path'); import type config = require('@tsslint/config'); -import build = require('@tsslint/config/lib/build'); import core = require('@tsslint/core'); import glob = require('glob'); @@ -89,7 +88,7 @@ import glob = require('glob'); if (!configs.has(configFile)) { try { - configs.set(configFile, await build.buildConfigFile(configFile, ts.sys.createHash, { + configs.set(configFile, await core.buildConfigFile(configFile, ts.sys.createHash, { log: log.info, warn: log.warn, error: log.error, diff --git a/packages/config/package.json b/packages/config/package.json index 3811eb9..89ab563 100644 --- a/packages/config/package.json +++ b/packages/config/package.json @@ -12,7 +12,6 @@ "directory": "packages/config" }, "dependencies": { - "@tsslint/types": "1.0.14", - "esbuild": "^0.23.0" + "@tsslint/types": "1.0.14" } } \ No newline at end of file diff --git a/packages/core/index.ts b/packages/core/index.ts index 8441c86..27c1102 100644 --- a/packages/core/index.ts +++ b/packages/core/index.ts @@ -1,4 +1,7 @@ -import type { Config, ProjectContext, Reporter, RuleContext, Rules } from '@tsslint/config'; +export * from './lib/build'; +export * from './lib/watch'; + +import type { Config, ProjectContext, Reporter, RuleContext, Rules } from '@tsslint/types'; import type * as ts from 'typescript'; import ErrorStackParser = require('error-stack-parser'); diff --git a/packages/config/lib/build.ts b/packages/core/lib/build.ts similarity index 90% rename from packages/config/lib/build.ts rename to packages/core/lib/build.ts index 183870a..68439c5 100644 --- a/packages/config/lib/build.ts +++ b/packages/core/lib/build.ts @@ -1,4 +1,4 @@ -import type { Config } from '@tsslint/types'; +import type { Config } from '@tsslint/config'; import { watchConfigFile } from './watch'; export function buildConfigFile( diff --git a/packages/config/lib/watch.ts b/packages/core/lib/watch.ts similarity index 98% rename from packages/config/lib/watch.ts rename to packages/core/lib/watch.ts index 97e78c5..46d38cc 100644 --- a/packages/config/lib/watch.ts +++ b/packages/core/lib/watch.ts @@ -1,7 +1,7 @@ import esbuild = require('esbuild'); import _path = require('path'); import fs = require('fs'); -import type { Config } from '@tsslint/types'; +import type { Config } from '@tsslint/config'; export async function watchConfigFile( configFilePath: string, diff --git a/packages/core/package.json b/packages/core/package.json index 899684a..06ae258 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -12,11 +12,10 @@ "directory": "packages/core" }, "dependencies": { + "@tsslint/types": "1.0.14", "error-stack-parser": "^2.1.4", + "esbuild": "^0.23.0", "minimatch": "^10.0.1", "source-map-support": "^0.5.21" - }, - "devDependencies": { - "@tsslint/config": "1.0.14" } } \ No newline at end of file diff --git a/packages/typescript-plugin/index.ts b/packages/typescript-plugin/index.ts index 21da99b..03edcad 100644 --- a/packages/typescript-plugin/index.ts +++ b/packages/typescript-plugin/index.ts @@ -1,6 +1,5 @@ import type { Config, ProjectContext } from '@tsslint/config'; -import type { watchConfigFile } from '@tsslint/config/lib/watch'; -import { Linter, createLinter, combineCodeFixes } from '@tsslint/core'; +import { Linter, createLinter, combineCodeFixes, watchConfigFile } from '@tsslint/core'; import * as path from 'path'; import type * as ts from 'typescript'; @@ -197,23 +196,6 @@ function decorateLanguageService( return; } - let configImportPath: string | undefined; - - try { - configImportPath = require.resolve('@tsslint/config/lib/watch', { paths: [path.dirname(configFile)] }); - } catch (err) { - configFileDiagnostics = [{ - category: ts.DiagnosticCategory.Error, - code: 0, - messageText: String(err), - file: jsonConfigFile, - start: 0, - length: 0, - }]; - return; - } - - const { watchConfigFile }: typeof import('@tsslint/config/lib/watch') = require(configImportPath); const projectContext: ProjectContext = { configFile, tsconfig, @@ -222,49 +204,61 @@ function decorateLanguageService( typescript: ts, }; - configFileBuildContext = await watchConfigFile( - configFile, - (_config, { errors, warnings }) => { - config = _config; - configFileDiagnostics = [ - ...errors.map(error => [error, ts.DiagnosticCategory.Error] as const), - ...warnings.map(error => [error, ts.DiagnosticCategory.Warning] as const), - ].map(([error, category]) => { - const diag: ts.Diagnostic = { - category, - source: 'tsslint', - code: 0, - messageText: 'Failed to build TSSLint config.', - file: jsonConfigFile, - start: configOptionSpan.start, - length: configOptionSpan.length, - }; - if (error.location) { - const fileName = path.resolve(error.location.file); - const fileText = ts.sys.readFile(error.location.file); - const sourceFile = ts.createSourceFile(fileName, fileText ?? '', ts.ScriptTarget.Latest, true); - diag.relatedInformation = [{ + try { + configFileBuildContext = await watchConfigFile( + configFile, + (_config, { errors, warnings }) => { + config = _config; + configFileDiagnostics = [ + ...errors.map(error => [error, ts.DiagnosticCategory.Error] as const), + ...warnings.map(error => [error, ts.DiagnosticCategory.Warning] as const), + ].map(([error, category]) => { + const diag: ts.Diagnostic = { category, - code: error.id as any, - messageText: error.text, - file: sourceFile, - start: sourceFile.getPositionOfLineAndCharacter(error.location.line - 1, error.location.column), - length: error.location.lineText.length, - }]; + source: 'tsslint', + code: 0, + messageText: 'Failed to build TSSLint config.', + file: jsonConfigFile, + start: configOptionSpan.start, + length: configOptionSpan.length, + }; + if (error.location) { + const fileName = path.resolve(error.location.file); + const fileText = ts.sys.readFile(error.location.file); + const sourceFile = ts.createSourceFile(fileName, fileText ?? '', ts.ScriptTarget.Latest, true); + diag.relatedInformation = [{ + category, + code: error.id as any, + messageText: error.text, + file: sourceFile, + start: sourceFile.getPositionOfLineAndCharacter(error.location.line - 1, error.location.column), + length: error.location.lineText.length, + }]; + } + else { + diag.messageText += `\n\n${error.text}`; + } + return diag; + }); + if (config) { + linter = createLinter(projectContext, config, true); } - else { - diag.messageText += `\n\n${error.text}`; - } - return diag; - }); - if (config) { - linter = createLinter(projectContext, config, true); - } - info.project.refreshDiagnostics(); - }, - true, - ts.sys.createHash - ); + info.project.refreshDiagnostics(); + }, + true, + ts.sys.createHash + ); + } catch (err) { + configFileDiagnostics.push({ + category: ts.DiagnosticCategory.Error, + source: 'tsslint', + code: 'config-build-error' as any, + messageText: String(err), + file: jsonConfigFile, + start: configOptionSpan.start, + length: configOptionSpan.length, + }); + } } } } diff --git a/packages/vscode/.vscodeignore b/packages/vscode/.vscodeignore deleted file mode 100644 index b744996..0000000 --- a/packages/vscode/.vscodeignore +++ /dev/null @@ -1 +0,0 @@ -scripts diff --git a/packages/vscode/package.json b/packages/vscode/package.json index 3a7795a..a05d91b 100644 --- a/packages/vscode/package.json +++ b/packages/vscode/package.json @@ -30,22 +30,22 @@ ], "typescriptServerPlugins": [ { - "name": "typescript-tsslint-plugin-bundled", + "name": "@tsslint/typescript-plugin", "enableForWorkspaceTypeScriptVersions": true } ] }, "scripts": { - "vscode:prepublish": "npm run build", - "prebuild": "cd ../.. && npm run build", - "build": "node scripts/build", - "watch": "node scripts/build --watch", + "vscode:prepublish": "rm -rf node_modules && npm install", + "postpack": "rm -rf node_modules && pnpm install", + "postrelease": "rm -rf node_modules && pnpm install", "pack": "vsce package", "release": "vsce publish" }, + "dependencies": { + "@tsslint/typescript-plugin": "1.0.14" + }, "devDependencies": { - "@tsslint/typescript-plugin": "1.0.14", - "esbuild": "^0.23.0", "vsce": "latest" } } diff --git a/packages/vscode/scripts/build.js b/packages/vscode/scripts/build.js deleted file mode 100644 index d304bf0..0000000 --- a/packages/vscode/scripts/build.js +++ /dev/null @@ -1,26 +0,0 @@ -// @ts-check -const path = require('path'); -const esbuild = require('esbuild'); - -esbuild.context({ - entryPoints: { - 'typescript-tsslint-plugin-bundled/index': './node_modules/@tsslint/typescript-plugin/index.js', - }, - outdir: path.resolve(__dirname, '../node_modules'), - bundle: true, - external: [], - format: 'cjs', - platform: 'node', - tsconfig: './tsconfig.json', - minify: process.argv.includes('--minify'), -}).then(async ctx => { - console.log('building...'); - if (process.argv.includes('--watch')) { - await ctx.watch(); - console.log('watching...'); - } else { - await ctx.rebuild(); - await ctx.dispose(); - console.log('finished.'); - } -}); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f0d0820..798154d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -92,25 +92,24 @@ importers: '@tsslint/types': specifier: 1.0.14 version: link:../types - esbuild: - specifier: ^0.23.0 - version: 0.23.0 packages/core: dependencies: + '@tsslint/types': + specifier: 1.0.14 + version: link:../types error-stack-parser: specifier: ^2.1.4 version: 2.1.4 + esbuild: + specifier: ^0.23.0 + version: 0.23.0 minimatch: specifier: ^10.0.1 version: 10.0.1 source-map-support: specifier: ^0.5.21 version: 0.5.21 - devDependencies: - '@tsslint/config': - specifier: 1.0.14 - version: link:../config packages/eslint: dependencies: @@ -172,13 +171,11 @@ importers: version: link:../config packages/vscode: - devDependencies: + dependencies: '@tsslint/typescript-plugin': specifier: 1.0.14 version: link:../typescript-plugin - esbuild: - specifier: ^0.23.0 - version: 0.23.0 + devDependencies: vsce: specifier: latest version: 2.15.0 @@ -387,8 +384,60 @@ packages: resolution: {integrity: sha512-e5+YUKENATs1JgYHMzTr2MW/NDcXGfYFAuOQU8gJgF/kEh4EqKgfGrfLI67bMD4tbhZVlkigz/9YYwWcbOFthg==} engines: {node: '>=10.13.0'} - '@inquirer/figures@1.0.3': - resolution: {integrity: sha512-ErXXzENMH5pJt5/ssXV0DfWUZqly8nGzf0UcBV9xTnP+KyffE2mqyxIMBrZ8ijQck2nU0TQm40EQB53YreyWHw==} + '@inquirer/checkbox@2.4.2': + resolution: {integrity: sha512-iZRNbTlSB9xXt/+jdMFViBdxw1ILWu3365rzfM5OLwAyOScbDFFGSH7LEUwoq1uOIo48ymOEwYSqP5y8hQMlmA==} + engines: {node: '>=18'} + + '@inquirer/confirm@3.1.17': + resolution: {integrity: sha512-qCpt/AABzPynz8tr69VDvhcjwmzAryipWXtW8Vi6m651da4H/d0Bdn55LkxXD7Rp2gfgxvxzTdb66AhIA8gzBA==} + engines: {node: '>=18'} + + '@inquirer/core@9.0.5': + resolution: {integrity: sha512-QWG41I7vn62O9stYKg/juKXt1PEbr/4ZZCPb4KgXDQGwgA9M5NBTQ7FnOvT1ridbxkm/wTxLCNraUs7y47pIRQ==} + engines: {node: '>=18'} + + '@inquirer/editor@2.1.17': + resolution: {integrity: sha512-hwx3VpFQzOY2hFWnY+XPsUGCIUVQ5kYxH6+CExv/RbMiAoN3zXtzj8DyrWBOHami0vBrrnPS8CTq3uQWc7N2BA==} + engines: {node: '>=18'} + + '@inquirer/expand@2.1.17': + resolution: {integrity: sha512-s4V/dC+GeE5s97xoTtZSmC440uNKePKqZgzqEf0XM63ciilnXAtKGvoAWOePFdlK+oGTz0d8bhbPKwpKGvRYfg==} + engines: {node: '>=18'} + + '@inquirer/figures@1.0.5': + resolution: {integrity: sha512-79hP/VWdZ2UVc9bFGJnoQ/lQMpL74mGgzSYX1xUqCVk7/v73vJCMw1VuyWN1jGkZ9B3z7THAbySqGbCNefcjfA==} + engines: {node: '>=18'} + + '@inquirer/input@2.2.4': + resolution: {integrity: sha512-wvYnDITPQn+ltktj/O9kQjPxOvpmwcpxLWh8brAyD+jlEbihxtrx9cZdZcxqaCVQj3caw4eZa2Uq5xELo4yXkA==} + engines: {node: '>=18'} + + '@inquirer/number@1.0.5': + resolution: {integrity: sha512-+H6TJPU2AJEcoF6nVTWssxS7gnhxWvf6CkILAdfq/yGm/htBKNDrvYLYaJvi1Be/aXQoKID9FaP94bUCjOvJNQ==} + engines: {node: '>=18'} + + '@inquirer/password@2.1.17': + resolution: {integrity: sha512-/u6DM/fDHXoBWyA+9aRhghkeo5smE7wO9k4E2UoJbgiRCkt3JjBEuBqLOJNrz8E16M0ez4UM1vd5cXrmICHW+A==} + engines: {node: '>=18'} + + '@inquirer/prompts@5.3.2': + resolution: {integrity: sha512-8Jv+6rbY98ilFAZMYYfetu6XGXF/ZU44i5Z6Jx4t0xmwDh/AihdBV/FgetzDDZZMv5AMW1MT35LI0FiS55LoXw==} + engines: {node: '>=18'} + + '@inquirer/rawlist@2.1.17': + resolution: {integrity: sha512-RFrw34xU5aVlMA3ZJCaeKGxYjhu3j4i46O2GMmaRRGeLObCRM1yOKQOsRclSTzjd4A7+M5QleR2iuW/68J9Kwg==} + engines: {node: '>=18'} + + '@inquirer/search@1.0.2': + resolution: {integrity: sha512-E/JD3MeJwJeNilOnRDmHGnlUksyVqrTQEUNqkRpioj8J0sVxW7+pFRHBM2coFsiCpvI4XKRRhWsai5VP8rrfrQ==} + engines: {node: '>=18'} + + '@inquirer/select@2.4.2': + resolution: {integrity: sha512-r78JlgShqRxyAtBDeBHSDtfrOhSQwm2ecWGGaxe7kD9JwgL3UN563G1ncVRYdsWD7/tigflcskfipVeoDLhLJg==} + engines: {node: '>=18'} + + '@inquirer/type@1.5.1': + resolution: {integrity: sha512-m3YgGQlKNS0BM+8AFiJkCsTqHEFCWn6s/Rqye3mYwvqY6LdfUv12eSwbsgNzrYyrLXiy7IrrjDLPysaSBwEfhw==} engines: {node: '>=18'} '@isaacs/cliui@8.0.2': @@ -443,10 +492,6 @@ packages: resolution: {integrity: sha512-C4CycUp4rgdTGtWYGoa+Ci8EZUsO7b0sAl8Vsdwzjk3g2FRD8d62tpD5Q6drthUQrWRKWpg62rY3q+H+7CGSPg==} engines: {node: ^18.0.0 || >=20.0.0} - '@ljharb/through@2.3.13': - resolution: {integrity: sha512-/gKJun8NNiWGZJkGzI/Ragc53cOdcLNdzjLaIa+GEjguQs0ulsurx8WN0jijdK9yPqDvziX995sMRLyLt1uZMQ==} - engines: {node: '>= 0.4'} - '@nodelib/fs.scandir@2.1.5': resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} engines: {node: '>= 8'} @@ -624,12 +669,21 @@ packages: '@types/json-schema@7.0.15': resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} + '@types/mute-stream@0.0.4': + resolution: {integrity: sha512-CPM9nzrCPPJHQNA9keH9CVkVI+WR5kMa+7XEs5jcGQ0VoAGnLv242w8lIVgwAEfmE4oufJRaTc9PNLQl0ioAow==} + '@types/node@20.14.10': resolution: {integrity: sha512-MdiXf+nDuMvY0gJKxyfZ7/6UFsETO7mGKF54MVD/ekJS6HdFtpZFBgrh6Pseu64XTb2MLyFPlbW6hj8HYRQNOQ==} + '@types/node@20.14.12': + resolution: {integrity: sha512-r7wNXakLeSsGT0H1AU863vS2wa5wBOK4bWMjZz2wj+8nBx+m5PeIn0k8AloSLpRuiwdRQZwarZqHE4FNArPuJQ==} + '@types/normalize-package-data@2.4.4': resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} + '@types/wrap-ansi@3.0.0': + resolution: {integrity: sha512-ltIpx+kM7g/MLRZfkbL7EsCEjfzCcScLpkg37eXEtx5kmrAKBkTJwd1GIAjDSL8wTpM6Hzn5YO4pSb91BEwu1g==} + '@typescript-eslint/eslint-plugin@7.16.1': resolution: {integrity: sha512-SxdPak/5bO0EnGktV05+Hq8oatjAYVY3Zh2bye9pGZy6+jwyR3LG3YKkV4YatlsgqXP28BTeVm9pqwJM96vf2A==} engines: {node: ^18.18.0 || >=20.0.0} @@ -862,10 +916,6 @@ packages: resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==} engines: {node: '>=6'} - cli-cursor@3.1.0: - resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==} - engines: {node: '>=8'} - cli-spinners@2.9.2: resolution: {integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==} engines: {node: '>=6'} @@ -1473,8 +1523,8 @@ packages: resolution: {integrity: sha512-X7rqawQBvfdjS10YU1y1YVreA3SsLrW9dX2CewP2EbBJM4ypVNLDkO5y04gejPwKIY9lR+7r9gn3rFPt/kmWFg==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - inquirer@9.2.23: - resolution: {integrity: sha512-kod5s+FBPIDM2xiy9fu+6wdU/SkK5le5GS9lh4FEBjBHqiMgD9lLFbCbuqFNAjNL2ZOy9Wd9F694IOzN9pZHBA==} + inquirer@10.1.2: + resolution: {integrity: sha512-rwoy4e2xFz3rru5Q5695rKXLbNlVfODRhRftBEPdxHfbGzN1T8Fxzszcb//SaRnQHsRdiwR8dOZOV+y4SoZ4KQ==} engines: {node: '>=18'} ip-address@9.0.5: @@ -1504,10 +1554,6 @@ packages: resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} engines: {node: '>=0.10.0'} - is-interactive@1.0.0: - resolution: {integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==} - engines: {node: '>=8'} - is-lambda@1.0.1: resolution: {integrity: sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==} @@ -1549,10 +1595,6 @@ packages: is-typedarray@1.0.0: resolution: {integrity: sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==} - is-unicode-supported@0.1.0: - resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} - engines: {node: '>=10'} - isexe@2.0.0: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} @@ -1676,13 +1718,6 @@ packages: lodash.merge@4.6.2: resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} - lodash@4.17.21: - resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} - - log-symbols@4.1.0: - resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==} - engines: {node: '>=10'} - lru-cache@10.4.3: resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} @@ -1725,10 +1760,6 @@ packages: engines: {node: '>=4'} hasBin: true - mimic-fn@2.1.0: - resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} - engines: {node: '>=6'} - mimic-fn@4.0.0: resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} engines: {node: '>=12'} @@ -1901,10 +1932,6 @@ packages: once@1.4.0: resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} - onetime@5.1.2: - resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} - engines: {node: '>=6'} - onetime@6.0.0: resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} engines: {node: '>=12'} @@ -1913,10 +1940,6 @@ packages: resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} engines: {node: '>= 0.8.0'} - ora@5.4.1: - resolution: {integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==} - engines: {node: '>=10'} - os-tmpdir@1.0.2: resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} engines: {node: '>=0.10.0'} @@ -2184,10 +2207,6 @@ packages: resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} hasBin: true - restore-cursor@3.1.0: - resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} - engines: {node: '>=8'} - retry@0.12.0: resolution: {integrity: sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==} engines: {node: '>= 4'} @@ -2643,6 +2662,10 @@ packages: resolution: {integrity: sha512-b4JR1PFR10y1mKjhHY9LaGo6tmrgjit7hxVIeAmyMw3jegXR4dhYqLaQF5zMXZxY7tLpMyJeLjr1C4rLmkVe8g==} engines: {node: '>=12.20'} + yoctocolors-cjs@2.1.2: + resolution: {integrity: sha512-cYVsTjKl8b+FrnidjibDWskAv7UKOfcwaVZdp/it9n1s9fU3IkgDbhdIRKCW4JDsAlECJY0ytoVPT3sK6kideA==} + engines: {node: '>=18'} + snapshots: '@babel/code-frame@7.24.7': @@ -2781,7 +2804,102 @@ snapshots: '@hutson/parse-repository-url@5.0.0': {} - '@inquirer/figures@1.0.3': {} + '@inquirer/checkbox@2.4.2': + dependencies: + '@inquirer/core': 9.0.5 + '@inquirer/figures': 1.0.5 + '@inquirer/type': 1.5.1 + ansi-escapes: 4.3.2 + yoctocolors-cjs: 2.1.2 + + '@inquirer/confirm@3.1.17': + dependencies: + '@inquirer/core': 9.0.5 + '@inquirer/type': 1.5.1 + + '@inquirer/core@9.0.5': + dependencies: + '@inquirer/figures': 1.0.5 + '@inquirer/type': 1.5.1 + '@types/mute-stream': 0.0.4 + '@types/node': 20.14.12 + '@types/wrap-ansi': 3.0.0 + ansi-escapes: 4.3.2 + cli-spinners: 2.9.2 + cli-width: 4.1.0 + mute-stream: 1.0.0 + signal-exit: 4.1.0 + strip-ansi: 6.0.1 + wrap-ansi: 6.2.0 + yoctocolors-cjs: 2.1.2 + + '@inquirer/editor@2.1.17': + dependencies: + '@inquirer/core': 9.0.5 + '@inquirer/type': 1.5.1 + external-editor: 3.1.0 + + '@inquirer/expand@2.1.17': + dependencies: + '@inquirer/core': 9.0.5 + '@inquirer/type': 1.5.1 + yoctocolors-cjs: 2.1.2 + + '@inquirer/figures@1.0.5': {} + + '@inquirer/input@2.2.4': + dependencies: + '@inquirer/core': 9.0.5 + '@inquirer/type': 1.5.1 + + '@inquirer/number@1.0.5': + dependencies: + '@inquirer/core': 9.0.5 + '@inquirer/type': 1.5.1 + + '@inquirer/password@2.1.17': + dependencies: + '@inquirer/core': 9.0.5 + '@inquirer/type': 1.5.1 + ansi-escapes: 4.3.2 + + '@inquirer/prompts@5.3.2': + dependencies: + '@inquirer/checkbox': 2.4.2 + '@inquirer/confirm': 3.1.17 + '@inquirer/editor': 2.1.17 + '@inquirer/expand': 2.1.17 + '@inquirer/input': 2.2.4 + '@inquirer/number': 1.0.5 + '@inquirer/password': 2.1.17 + '@inquirer/rawlist': 2.1.17 + '@inquirer/search': 1.0.2 + '@inquirer/select': 2.4.2 + + '@inquirer/rawlist@2.1.17': + dependencies: + '@inquirer/core': 9.0.5 + '@inquirer/type': 1.5.1 + yoctocolors-cjs: 2.1.2 + + '@inquirer/search@1.0.2': + dependencies: + '@inquirer/core': 9.0.5 + '@inquirer/figures': 1.0.5 + '@inquirer/type': 1.5.1 + yoctocolors-cjs: 2.1.2 + + '@inquirer/select@2.4.2': + dependencies: + '@inquirer/core': 9.0.5 + '@inquirer/figures': 1.0.5 + '@inquirer/type': 1.5.1 + ansi-escapes: 4.3.2 + yoctocolors-cjs: 2.1.2 + + '@inquirer/type@1.5.1': + dependencies: + mute-stream: 1.0.0 '@isaacs/cliui@8.0.2': dependencies: @@ -2826,7 +2944,7 @@ snapshots: fs-extra: 11.2.0 glob-parent: 6.0.2 globby: 14.0.2 - inquirer: 9.2.23 + inquirer: 10.1.2 is-ci: 3.0.1 json5: 2.2.3 load-json-file: 7.0.1 @@ -2954,10 +3072,6 @@ snapshots: - supports-color - typescript - '@ljharb/through@2.3.13': - dependencies: - call-bind: 1.0.7 - '@nodelib/fs.scandir@2.1.5': dependencies: '@nodelib/fs.stat': 2.0.5 @@ -3218,12 +3332,22 @@ snapshots: '@types/json-schema@7.0.15': {} + '@types/mute-stream@0.0.4': + dependencies: + '@types/node': 20.14.12 + '@types/node@20.14.10': dependencies: undici-types: 5.26.5 + '@types/node@20.14.12': + dependencies: + undici-types: 5.26.5 + '@types/normalize-package-data@2.4.4': {} + '@types/wrap-ansi@3.0.0': {} + '@typescript-eslint/eslint-plugin@7.16.1(@typescript-eslint/parser@7.16.1(eslint@9.7.0)(typescript@5.5.3))(eslint@9.7.0)(typescript@5.5.3)': dependencies: '@eslint-community/regexpp': 4.11.0 @@ -3489,10 +3613,6 @@ snapshots: clean-stack@2.2.0: {} - cli-cursor@3.1.0: - dependencies: - restore-cursor: 3.1.0 - cli-spinners@2.9.2: {} cli-width@4.1.0: {} @@ -4150,23 +4270,15 @@ snapshots: ini@4.1.3: {} - inquirer@9.2.23: + inquirer@10.1.2: dependencies: - '@inquirer/figures': 1.0.3 - '@ljharb/through': 2.3.13 + '@inquirer/prompts': 5.3.2 + '@inquirer/type': 1.5.1 + '@types/mute-stream': 0.0.4 ansi-escapes: 4.3.2 - chalk: 5.3.0 - cli-cursor: 3.1.0 - cli-width: 4.1.0 - external-editor: 3.1.0 - lodash: 4.17.21 mute-stream: 1.0.0 - ora: 5.4.1 run-async: 3.0.0 rxjs: 7.8.1 - string-width: 4.2.3 - strip-ansi: 6.0.1 - wrap-ansi: 6.2.0 ip-address@9.0.5: dependencies: @@ -4191,8 +4303,6 @@ snapshots: dependencies: is-extglob: 2.1.1 - is-interactive@1.0.0: {} - is-lambda@1.0.1: {} is-number@7.0.0: {} @@ -4221,8 +4331,6 @@ snapshots: is-typedarray@1.0.0: {} - is-unicode-supported@0.1.0: {} - isexe@2.0.0: {} isexe@3.1.1: {} @@ -4338,13 +4446,6 @@ snapshots: lodash.merge@4.6.2: {} - lodash@4.17.21: {} - - log-symbols@4.1.0: - dependencies: - chalk: 4.1.2 - is-unicode-supported: 0.1.0 - lru-cache@10.4.3: {} lru-cache@6.0.0: @@ -4393,8 +4494,6 @@ snapshots: mime@1.6.0: {} - mimic-fn@2.1.0: {} - mimic-fn@4.0.0: {} mimic-response@3.1.0: {} @@ -4572,10 +4671,6 @@ snapshots: dependencies: wrappy: 1.0.2 - onetime@5.1.2: - dependencies: - mimic-fn: 2.1.0 - onetime@6.0.0: dependencies: mimic-fn: 4.0.0 @@ -4589,18 +4684,6 @@ snapshots: type-check: 0.4.0 word-wrap: 1.2.5 - ora@5.4.1: - dependencies: - bl: 4.1.0 - chalk: 4.1.2 - cli-cursor: 3.1.0 - cli-spinners: 2.9.2 - is-interactive: 1.0.0 - is-unicode-supported: 0.1.0 - log-symbols: 4.1.0 - strip-ansi: 6.0.1 - wcwidth: 1.0.1 - os-tmpdir@1.0.2: {} p-limit@2.3.0: @@ -4875,11 +4958,6 @@ snapshots: path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 - restore-cursor@3.1.0: - dependencies: - onetime: 5.1.2 - signal-exit: 3.0.7 - retry@0.12.0: {} reusify@1.0.4: {} @@ -5346,3 +5424,5 @@ snapshots: yocto-queue@0.1.0: {} yocto-queue@1.1.1: {} + + yoctocolors-cjs@2.1.2: {}