From 259a97546a809d78716e943ee7507c68352df966 Mon Sep 17 00:00:00 2001 From: Sorin Sbarnea Date: Fri, 12 Apr 2024 15:40:59 +0100 Subject: [PATCH] Upgrade to eslint v9 (#1223) - call eslint as a system hook instead of native pre-commit one - upgrade eslint config - fix few new rules and temporary disable others --- .depcheckrc.yml | 2 + .eslintrc.yml | 28 -- .pre-commit-config.yaml | 44 +- .vscode/settings.json | 6 +- eslint.config.mjs | 63 +++ package.json | 13 +- packages/ansible-language-server/package.json | 2 +- .../src/services/ansibleLint.ts | 8 +- .../src/services/ansiblePlaybook.ts | 8 +- .../ansible-language-server/src/utils/misc.ts | 2 +- .../test/providers/validationProvider.test.ts | 2 +- .../tools/settings-doc-generator.ts | 2 - .../ansible-language-server/tsconfig.json | 8 +- src/extension.ts | 1 - src/features/lightspeed/api.ts | 12 +- .../lightspeed/feedbackWebviewViewProvider.ts | 4 +- src/features/lightspeed/inlineSuggestions.ts | 2 + .../lightspeed/lightSpeedOAuthProvider.ts | 8 +- src/features/lightspeed/utils/feedbackView.ts | 1 - .../lightspeed/utils/promiseHandlers.ts | 6 +- src/features/pythonMetadata.ts | 1 - src/features/utils/ansibleCfg.ts | 6 +- src/features/utils/lightspeed.ts | 2 +- src/features/vault.ts | 6 +- src/treeView.ts | 1 - src/utils/telemetryUtils.ts | 8 +- test/mockLightspeedServer/contentmatches.ts | 1 - .../diagnostics/testAnsibleWithoutEE.test.ts | 1 - .../diagnostics/testYamlWithoutEE.test.ts | 1 - test/units/lightspeed/contentmatches.test.ts | 2 +- tsconfig.json | 14 +- yarn.lock | 434 ++++++++++-------- 32 files changed, 406 insertions(+), 293 deletions(-) delete mode 100644 .eslintrc.yml create mode 100644 eslint.config.mjs diff --git a/.depcheckrc.yml b/.depcheckrc.yml index b4318f818..f711ec1ff 100644 --- a/.depcheckrc.yml +++ b/.depcheckrc.yml @@ -6,6 +6,8 @@ ignores: - "@types/vscode-webview" # provides VSCodeAPI - "@vscode/vsce" - depcheck + - eslint-formatter-gha + - eslint-formatter-unix - mochawesome - mochawesome-report-generator - ovsx diff --git a/.eslintrc.yml b/.eslintrc.yml deleted file mode 100644 index 4ac6ea1b3..000000000 --- a/.eslintrc.yml +++ /dev/null @@ -1,28 +0,0 @@ -# $schema: https://json.schemastore.org/eslintrc -env: - commonjs: true - # Check https://kangax.github.io/compat-table/es2016plus/ and correlated - # with minimal version of node that we target. - es2021: true - node: true -extends: - - plugin:@typescript-eslint/recommended - - prettier -ignorePatterns: - - out - - media -parser: "@typescript-eslint/parser" -parserOptions: - ecmaVersion: 2021 - sourceType: module -plugins: - - "@typescript-eslint" - - prettier - - eslint-plugin-tsdoc -rules: - eqeqeq: - - error - - smart - prefer-template: error - prettier/prettier: error - tsdoc/syntax: error diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 4dcf2dfb7..2509f9dd6 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -13,6 +13,7 @@ ci: - yarn-dedupe - codecov - depcheck + - eslint exclude: > (?x)^( .config/requirements.in| @@ -21,7 +22,7 @@ exclude: > minimum_pre_commit_version: 2.9.0 # types_or repos: - repo: https://github.com/streetsidesoftware/cspell-cli - rev: v8.6.1 + rev: v8.7.0 hooks: - id: cspell # name: Spell check with cspell @@ -48,6 +49,22 @@ repos: language: system pass_filenames: false always_run: true + - id: eslint + name: eslint + entry: npx eslint + language: system + verbose: true # do not remove, as this allows warnings to be displayed on GHA + args: + # default format is not vscode friendly + - --color + - --format=gha + - --format=unix + - --fix + # - --max-warnings + # - "0" + files: \.m?[jt]sx?$ # *.js, *.jsx, *.ts and *.tsx + types: [file] + - id: git-dirty name: Check if git reports dirty entry: git diff --exit-code @@ -80,7 +97,7 @@ repos: # entry: npx yarn npm audit - repo: https://github.com/pre-commit/pre-commit-hooks.git - rev: v4.5.0 + rev: v4.6.0 hooks: - id: end-of-file-fixer exclude: > @@ -153,26 +170,3 @@ repos: hooks: - id: commitlint stages: [commit-msg] - - repo: https://github.com/pre-commit/mirrors-eslint - rev: v9.0.0-rc.0 - hooks: - - id: eslint - args: - # default format is not vscode friendly - - --color - - --format=unix - - --fix - - --max-warnings - - "0" - additional_dependencies: - - "@typescript-eslint/eslint-plugin" - - "@typescript-eslint/parser" - - eslint - - eslint-config-prettier - - eslint-plugin-prettier - - eslint-plugin-tsdoc - - prettier - - typescript - - typescript-eslint - files: \.[jt]sx?$ # *.js, *.jsx, *.ts and *.tsx - types: [file] diff --git a/.vscode/settings.json b/.vscode/settings.json index 0ad2dbe81..c18682f9c 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -5,7 +5,11 @@ "README.md": "CONTRIBUTING.md, LICENSE, CHANGELOG.md, USAGE_DATA.md", "Containerfile": "Dockerfile" }, + "editor.codeActionsOnSave": ["source.fixAll.eslint"], "editor.formatOnSave": true, + "[javascript]": { + "editor.defaultFormatter": "esbenp.prettier-vscode" + }, "[typescript]": { "editor.defaultFormatter": "esbenp.prettier-vscode" }, @@ -32,5 +36,5 @@ }, "redhat.telemetry.enabled": false, "eslint.useESLintClass": true, - "eslint.packageManager": "yarn" + "eslint.experimental.useFlatConfig": true } diff --git a/eslint.config.mjs b/eslint.config.mjs new file mode 100644 index 000000000..798b640f3 --- /dev/null +++ b/eslint.config.mjs @@ -0,0 +1,63 @@ +// @ts-check +// cspell: ignore tseslint +import eslint from "@eslint/js"; +import tseslint from "typescript-eslint"; +import tsParser from "@typescript-eslint/parser"; +import ts from "@typescript-eslint/eslint-plugin"; +import tsdocPlugin from "eslint-plugin-tsdoc"; +import prettierRecommendedConfig from "eslint-plugin-prettier/recommended"; +import globals from "globals"; +import path from "path"; +import { fileURLToPath } from "url"; + +const __filename = fileURLToPath(import.meta.url); // get the resolved path to the file +const __dirname = path.dirname(__filename); // get the name of the directory + +export default tseslint.config( + { + ignores: ["**/out/", ".yarn/*", "media/*"], + }, + { + extends: [ + eslint.configs.recommended, + ...tseslint.configs.recommended, + prettierRecommendedConfig, + ], + files: [ + "**/*.{js,ts,tsx}", + "packages/**/*.{js,ts,tsx}", + "test/**/*.{js,ts,tsx}", + ], + languageOptions: { + globals: { + ...globals.node, + ...globals.mocha, + ...globals.commonjs, + ...globals.es2017, + }, + parser: tsParser, + parserOptions: { + project: true, + tsconfigRootDir: __dirname, + }, + }, + plugins: { + "@typescript-eslint": ts, + tsdoc: tsdocPlugin, + }, + rules: { + eqeqeq: ["error", "smart"], + "tsdoc/syntax": "error", + "@typescript-eslint/no-explicit-any": "error", + "@typescript-eslint/no-namespace": "error", + "@typescript-eslint/no-unused-vars": "error", + // Fix temporary off/warn made during eslint v9 upgrade: + "@typescript-eslint/no-non-null-assertion": "warn", + "no-empty-function": "warn", + "no-case-declarations": "off", + "no-constant-condition": "off", + "no-control-regex": "off", + "no-prototype-builtins": "off", + }, + }, +); diff --git a/package.json b/package.json index 948bfd3af..94ab5a397 100644 --- a/package.json +++ b/package.json @@ -753,6 +753,7 @@ }, "description": "Ansible language support", "devDependencies": { + "@eslint/js": "^9.0.0", "@types/chai": "^4.3.14", "@types/express": "^4.17.21", "@types/glob": "^8.1.0", @@ -765,20 +766,23 @@ "@types/uuid": "^9.0.8", "@types/vscode": "^1.85.0", "@types/vscode-webview": "^1.57.5", - "@typescript-eslint/eslint-plugin": "^7.5.0", - "@typescript-eslint/parser": "^7.5.0", + "@typescript-eslint/eslint-plugin": "^7.6.0", + "@typescript-eslint/parser": "^7.6.0", "@vscode/test-electron": "^2.3.9", "@vscode/vsce": "^2.24.0", "axios": "^1.6.8", "chai": "^4.4.1", "copyfiles": "^2.4.1", "depcheck": "^1.4.7", - "eslint": "^8.57.0", + "eslint": "^9.0.0", "eslint-config-prettier": "^9.1.0", + "eslint-formatter-gha": "^1.4.3", + "eslint-formatter-unix": "^8.40.0", "eslint-plugin-prettier": "^5.1.3", "eslint-plugin-tsdoc": "^0.2.17", "find-process": "^1.4.7", "glob": "^10.3.12", + "globals": "^15.0.0", "lodash": "^4.17.21", "mocha": "^10.4.0", "mochawesome": "^7.1.3", @@ -791,7 +795,8 @@ "sinon": "^17.0.1", "ts-loader": "^9.5.1", "ts-node": "^10.9.2", - "typescript": "^5.4.4", + "typescript": "^5.4.5", + "typescript-eslint": "^7.6.0", "vscode-extension-tester": "^8.0.2", "warnings-to-errors-webpack-plugin": "^2.3.0", "webpack": "^5.91.0", diff --git a/packages/ansible-language-server/package.json b/packages/ansible-language-server/package.json index 775c0c779..ad72f8816 100644 --- a/packages/ansible-language-server/package.json +++ b/packages/ansible-language-server/package.json @@ -75,7 +75,7 @@ "nyc": "^15.1.0", "rimraf": "^5.0.5", "ts-node": "^10.9.2", - "typescript": "^5.4.4" + "typescript": "^5.4.5" }, "scripts": { "clean": "rimraf out/server && rimraf lib", diff --git a/packages/ansible-language-server/src/services/ansibleLint.ts b/packages/ansible-language-server/src/services/ansibleLint.ts index fa9edb1da..815d08c0c 100644 --- a/packages/ansible-language-server/src/services/ansibleLint.ts +++ b/packages/ansible-language-server/src/services/ansibleLint.ts @@ -79,8 +79,12 @@ export class AnsibleLint { const progressTracker = this.useProgressTracker ? await this.connection.window.createWorkDoneProgress() : { - begin: () => {}, // eslint-disable-line @typescript-eslint/no-empty-function - done: () => {}, // eslint-disable-line @typescript-eslint/no-empty-function + begin: () => { + // do nothing + }, + done: () => { + // do nothing + }, }; progressTracker.begin("ansible-lint", undefined, "Processing files..."); diff --git a/packages/ansible-language-server/src/services/ansiblePlaybook.ts b/packages/ansible-language-server/src/services/ansiblePlaybook.ts index 4d98ecf14..de560e9d9 100644 --- a/packages/ansible-language-server/src/services/ansiblePlaybook.ts +++ b/packages/ansible-language-server/src/services/ansiblePlaybook.ts @@ -48,8 +48,12 @@ export class AnsiblePlaybook { const progressTracker = this.useProgressTracker ? await this.connection.window.createWorkDoneProgress() : { - begin: () => {}, // eslint-disable-line @typescript-eslint/no-empty-function - done: () => {}, // eslint-disable-line @typescript-eslint/no-empty-function + begin: () => { + // do nothing + }, + done: () => { + // do nothing + }, }; const workingDirectory = URI.parse(this.context.workspaceFolder.uri).path; diff --git a/packages/ansible-language-server/src/utils/misc.ts b/packages/ansible-language-server/src/utils/misc.ts index 6ba934767..b12f4dc2b 100644 --- a/packages/ansible-language-server/src/utils/misc.ts +++ b/packages/ansible-language-server/src/utils/misc.ts @@ -24,7 +24,7 @@ export function hasOwnProperty( obj: X, prop: Y, ): obj is X & Record { - return isObject(obj) && obj.hasOwnProperty(prop); + return isObject(obj) && Object.prototype.hasOwnProperty.call(obj, prop); } /** diff --git a/packages/ansible-language-server/test/providers/validationProvider.test.ts b/packages/ansible-language-server/test/providers/validationProvider.test.ts index 526da1fcb..7f6597ccb 100644 --- a/packages/ansible-language-server/test/providers/validationProvider.test.ts +++ b/packages/ansible-language-server/test/providers/validationProvider.test.ts @@ -230,7 +230,7 @@ function testAnsibleSyntaxCheckNoHost( diagnosticReport: [ { severity: 1, - // eslint-disable-next-line quotes + message: "the field 'hosts' is required but was not set", range: { start: { line: 0, character: 0 } as Position, diff --git a/packages/ansible-language-server/tools/settings-doc-generator.ts b/packages/ansible-language-server/tools/settings-doc-generator.ts index 4b5aef143..7f4cf811a 100644 --- a/packages/ansible-language-server/tools/settings-doc-generator.ts +++ b/packages/ansible-language-server/tools/settings-doc-generator.ts @@ -65,13 +65,11 @@ const settingsReadmeFileUri = path.join(__dirname, "..", "docs", "settings.md"); // Register a special function for handlebars to deal with comparison of stringed value of false // Else, normal #if treats it as boolean, even after converting booleans to strings in typescript Handlebars.registerHelper("ifEqualsFalse", function (arg1, options) { - // eslint-disable-next-line eqeqeq return arg1.toString() === "false" ? options.fn(this) : options.inverse(this); }); // Register a special function for handlebars to deal with the checking of "list" as value type of settings Handlebars.registerHelper("ifValueArray", function (arg1, options) { - // eslint-disable-next-line eqeqeq return arg1.toString() === "list" ? options.fn(this) : options.inverse(this); }); diff --git a/packages/ansible-language-server/tsconfig.json b/packages/ansible-language-server/tsconfig.json index 31730433a..c3bc1049a 100644 --- a/packages/ansible-language-server/tsconfig.json +++ b/packages/ansible-language-server/tsconfig.json @@ -2,15 +2,15 @@ "compilerOptions": { "alwaysStrict": true, "declaration": true, + "esModuleInterop": true, "forceConsistentCasingInFileNames": true, - "lib": ["es2016"], + "lib": ["ES2020"], "module": "commonjs", "moduleResolution": "node", "outDir": "./out/server", + "skipLibCheck": true, "sourceMap": true, - "target": "es6", - "esModuleInterop": true, - "skipLibCheck": true + "target": "ES2020" }, "exclude": ["node_modules", "out", "vscode-ansible"] } diff --git a/src/extension.ts b/src/extension.ts index 526fa8d2e..087651930 100644 --- a/src/extension.ts +++ b/src/extension.ts @@ -621,7 +621,6 @@ async function resyncAnsibleInventory(): Promise { } } -// eslint-disable-next-line @typescript-eslint/no-unused-vars async function getAuthToken(): Promise { if ( !(await workspace.getConfiguration("ansible").get("lightspeed.enabled")) diff --git a/src/features/lightspeed/api.ts b/src/features/lightspeed/api.ts index 17ae19630..a455ce1cf 100644 --- a/src/features/lightspeed/api.ts +++ b/src/features/lightspeed/api.ts @@ -84,14 +84,10 @@ export class LightSpeedAPI { console.error("Ansible Lightspeed instance is not initialized."); return; } - try { - const response = await axiosInstance.get(urlPath, { - timeout: ANSIBLE_LIGHTSPEED_API_TIMEOUT, - }); - return response.data; - } catch (error) { - throw error; - } + const response = await axiosInstance.get(urlPath, { + timeout: ANSIBLE_LIGHTSPEED_API_TIMEOUT, + }); + return response.data; } public async completionRequest( diff --git a/src/features/lightspeed/feedbackWebviewViewProvider.ts b/src/features/lightspeed/feedbackWebviewViewProvider.ts index c6d12b6d6..eceb51473 100644 --- a/src/features/lightspeed/feedbackWebviewViewProvider.ts +++ b/src/features/lightspeed/feedbackWebviewViewProvider.ts @@ -16,7 +16,9 @@ export class LightspeedFeedbackWebviewViewProvider { public static readonly viewType = "lightspeed-feedback-webview"; - constructor(private readonly _extensionUri: Uri) {} + constructor(private readonly _extensionUri: Uri) { + // do nothing + } public resolveWebviewView( webviewView: WebviewView, diff --git a/src/features/lightspeed/inlineSuggestions.ts b/src/features/lightspeed/inlineSuggestions.ts index 6402f1745..ea266b2a5 100644 --- a/src/features/lightspeed/inlineSuggestions.ts +++ b/src/features/lightspeed/inlineSuggestions.ts @@ -876,9 +876,11 @@ export async function inlineSuggestionHideHandler(userAction?: UserAction) { switch (action) { case UserAction.REJECTED: { console.log("[inline-suggestions] User rejected the inline suggestion."); + break; } case UserAction.IGNORED: { console.log("[inline-suggestions] User ignored the inline suggestion."); + break; } default: { console.log( diff --git a/src/features/lightspeed/lightSpeedOAuthProvider.ts b/src/features/lightspeed/lightSpeedOAuthProvider.ts index 047bae340..7a96313ba 100644 --- a/src/features/lightspeed/lightSpeedOAuthProvider.ts +++ b/src/features/lightspeed/lightSpeedOAuthProvider.ts @@ -1,5 +1,5 @@ /* eslint-disable @typescript-eslint/no-explicit-any */ -/* eslint-disable tsdoc/syntax */ + import { authentication, AuthenticationProvider, @@ -109,7 +109,7 @@ export class LightSpeedAuthenticationProvider /** * Get the existing sessions - * @param scopes + * @param scopes - Scopes * @returns */ public async getSessions(): Promise { @@ -124,7 +124,7 @@ export class LightSpeedAuthenticationProvider /** * Create a new auth session - * @param scopes + * @param scopes - Scopes * @returns */ public async createSession(scopes: string[]): Promise { @@ -205,7 +205,7 @@ export class LightSpeedAuthenticationProvider /** * Remove an existing session - * @param sessionId + * @param sessionId - Session ID */ public async removeSession(sessionId: string): Promise { const allSessions = await this.context.secrets.get(SESSIONS_SECRET_KEY); diff --git a/src/features/lightspeed/utils/feedbackView.ts b/src/features/lightspeed/utils/feedbackView.ts index 27f6aa7cf..5b460c7d3 100644 --- a/src/features/lightspeed/utils/feedbackView.ts +++ b/src/features/lightspeed/utils/feedbackView.ts @@ -78,7 +78,6 @@ export function setWebviewMessageListener( webview: Webview, disposables: Disposable[] = [], ) { - // eslint-disable-next-line @typescript-eslint/no-explicit-any webview.onDidReceiveMessage( // eslint-disable-next-line @typescript-eslint/no-explicit-any (message: any) => { diff --git a/src/features/lightspeed/utils/promiseHandlers.ts b/src/features/lightspeed/utils/promiseHandlers.ts index 6021ee8b5..6702ec208 100644 --- a/src/features/lightspeed/utils/promiseHandlers.ts +++ b/src/features/lightspeed/utils/promiseHandlers.ts @@ -1,5 +1,5 @@ /* eslint-disable @typescript-eslint/no-explicit-any */ -/* eslint-disable tsdoc/syntax */ + import { Disposable, Event, EventEmitter } from "vscode"; export interface PromiseAdapter { @@ -23,8 +23,8 @@ const passthrough = (value: any, resolve: (value?: any) => void) => * * The default adapter is the passthrough function `(value, resolve) => resolve(value)`. * - * @param event the event - * @param adapter controls resolution of the returned promise + * @param event - the event + * @param adapter - controls resolution of the returned promise * @returns a promise that resolves or rejects as specified by the adapter */ export function promiseFromEvent( diff --git a/src/features/pythonMetadata.ts b/src/features/pythonMetadata.ts index 9e684a79e..e4cda0e32 100644 --- a/src/features/pythonMetadata.ts +++ b/src/features/pythonMetadata.ts @@ -1,4 +1,3 @@ -/* eslint-disable @typescript-eslint/no-explicit-any */ import { ExtensionContext, window, diff --git a/src/features/utils/ansibleCfg.ts b/src/features/utils/ansibleCfg.ts index e71205d30..52a3aaa3c 100644 --- a/src/features/utils/ansibleCfg.ts +++ b/src/features/utils/ansibleCfg.ts @@ -49,11 +49,11 @@ export async function scanAnsibleCfg( */ const cfgFiles = ["~/.ansible.cfg", "/etc/ansible/ansible.cfg"]; - if (!!rootPath) { + if (rootPath) { cfgFiles.unshift(`${rootPath}/ansible.cfg`); } - if (!!process.env.ANSIBLE_CONFIG) { + if (process.env.ANSIBLE_CONFIG) { cfgFiles.unshift(process.env.ANSIBLE_CONFIG); } @@ -103,7 +103,7 @@ export async function getValueByCfg( export async function getAnsibleCfg( path: string | undefined, ): Promise { - if (!!process.env.ANSIBLE_VAULT_IDENTITY_LIST) { + if (process.env.ANSIBLE_VAULT_IDENTITY_LIST) { return { path: "ANSIBLE_VAULT_IDENTITY_LIST", defaults: { diff --git a/src/features/utils/lightspeed.ts b/src/features/utils/lightspeed.ts index 4317fea67..9eae0f4aa 100644 --- a/src/features/utils/lightspeed.ts +++ b/src/features/utils/lightspeed.ts @@ -50,7 +50,7 @@ export function convertToSnippetString(suggestion: string): string { counter = counter + 1; modifiedSuggestion = modifiedSuggestion.replace( exactMatch, - `\$\{${counter}:${exactMatch}\}`, + `$\{${counter}:${exactMatch}}`, ); // replace the exact match in the modified suggestion with tab stop syntax according to vscode snippet string }); diff --git a/src/features/vault.ts b/src/features/vault.ts index bfad19759..49a0cf318 100644 --- a/src/features/vault.ts +++ b/src/features/vault.ts @@ -85,7 +85,7 @@ export const toggleEncrypt = async (): Promise => { const useVaultIDs = !!ansibleConfig.defaults.vault_identity_list; // Go encrypt / decrypt - if (!!text) { + if (text) { const type = getInlineTextType(text); const indentationLevel = getIndentationLevel(editor, selection); const tabSize = Number(editor.options.tabSize); @@ -242,7 +242,7 @@ const pipeTextThroughCmd = ( cmd: string, ): Promise => { return new Promise((resolve, reject) => { - const child = !!rootPath ? cp.exec(cmd, { cwd: rootPath }) : cp.exec(cmd); + const child = rootPath ? cp.exec(cmd, { cwd: rootPath }) : cp.exec(cmd); child.stdout?.setEncoding("utf8"); let outputText = ""; let errorText = ""; @@ -296,7 +296,7 @@ const encryptFile = ( ) => { console.log(`Encrypt file: ${f}`); - const cmd = !!vaultId + const cmd = vaultId ? `${ansibleVaultPath( config, )} encrypt --encrypt-vault-id="${vaultId}" "${f}"` diff --git a/src/treeView.ts b/src/treeView.ts index 6de38243d..fcf47122a 100644 --- a/src/treeView.ts +++ b/src/treeView.ts @@ -1,4 +1,3 @@ -/* eslint-disable @typescript-eslint/no-namespace */ import * as vscode from "vscode"; import { LightspeedAuthSession, diff --git a/src/utils/telemetryUtils.ts b/src/utils/telemetryUtils.ts index 1e77aabd5..54b961174 100644 --- a/src/utils/telemetryUtils.ts +++ b/src/utils/telemetryUtils.ts @@ -131,7 +131,9 @@ export class TelemetryErrorHandler implements ErrorHandler { private readonly telemetry: TelemetryService, private readonly name: string, private readonly maxRestartCount: number, - ) {} + ) { + // do nothing + } error(error: Error, message: Message, count: number): ErrorHandlerResult { this.telemetry.send({ @@ -182,7 +184,9 @@ export class TelemetryOutputChannel implements vscode.OutputChannel { constructor( private readonly delegate: vscode.OutputChannel, private readonly telemetry: TelemetryService, - ) {} + ) { + // do nothing + } get name(): string { return this.delegate.name; diff --git a/test/mockLightspeedServer/contentmatches.ts b/test/mockLightspeedServer/contentmatches.ts index 94390b46c..847d8913f 100644 --- a/test/mockLightspeedServer/contentmatches.ts +++ b/test/mockLightspeedServer/contentmatches.ts @@ -43,7 +43,6 @@ const NO_MATCHES = { ], }; -// eslint-disable-next-line @typescript-eslint/no-unused-vars export function contentmatches(_req: { body: { model: string; suggestions: [string]; suggestionId?: string }; }) { diff --git a/test/testScripts/diagnostics/testAnsibleWithoutEE.test.ts b/test/testScripts/diagnostics/testAnsibleWithoutEE.test.ts index 463cfdcf8..48d781a14 100644 --- a/test/testScripts/diagnostics/testAnsibleWithoutEE.test.ts +++ b/test/testScripts/diagnostics/testAnsibleWithoutEE.test.ts @@ -1,4 +1,3 @@ -/* eslint-disable quotes */ import * as vscode from "vscode"; import { integer } from "vscode-languageclient"; import { diff --git a/test/testScripts/diagnostics/testYamlWithoutEE.test.ts b/test/testScripts/diagnostics/testYamlWithoutEE.test.ts index 5dd0f7a59..31c841964 100644 --- a/test/testScripts/diagnostics/testYamlWithoutEE.test.ts +++ b/test/testScripts/diagnostics/testYamlWithoutEE.test.ts @@ -1,4 +1,3 @@ -/* eslint-disable quotes */ import * as vscode from "vscode"; import { integer } from "vscode-languageclient"; import { diff --git a/test/units/lightspeed/contentmatches.test.ts b/test/units/lightspeed/contentmatches.test.ts index 5a115898d..5cb6743b3 100644 --- a/test/units/lightspeed/contentmatches.test.ts +++ b/test/units/lightspeed/contentmatches.test.ts @@ -238,7 +238,7 @@ describe("GetWebviewContent", () => { new RegExp("An error occurred trying to retrieve the training matches."), ); assert.match(res, new RegExp("An error occurred")); - assert.match(res, new RegExp('{\n "cheese": "edam"\n}')); + assert.match(res, new RegExp('{\n {2}"cheese": "edam"\n}')); }); it("no suggestion with error - undefined", async function () { diff --git a/tsconfig.json b/tsconfig.json index bfa81407c..3936ff3d3 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,16 +1,18 @@ { "compilerOptions": { "composite": true, - "target": "ES2020", + "declaration": true, + "esModuleInterop": true, + "forceConsistentCasingInFileNames": true, "lib": ["ES2020", "DOM"], - "module": "CommonJS", - "moduleResolution": "Node", + "module": "commonjs", + "moduleResolution": "node", "outDir": "out/client", + "skipLibCheck": true, "sourceMap": true, "strict": true, - "esModuleInterop": true, - "skipLibCheck": true + "target": "ES2020" }, - "include": ["src", "test"], + "include": ["src", "test", "*.js", "*.ts"], "exclude": ["node_modules", "test-resources"] } diff --git a/yarn.lock b/yarn.lock index 7046e3119..db6e96e62 100644 --- a/yarn.lock +++ b/yarn.lock @@ -12,6 +12,26 @@ __metadata: languageName: node linkType: hard +"@actions/core@npm:^1.10.1": + version: 1.10.1 + resolution: "@actions/core@npm:1.10.1" + dependencies: + "@actions/http-client": "npm:^2.0.1" + uuid: "npm:^8.3.2" + checksum: 10/d32af783ecb07f25a0f190112ee8e749a4c4cb88327d6df756ea1dcee146ab413c0e651a9c949294f8202ced1436c049d7b469485431a5cc4491d66926ec8323 + languageName: node + linkType: hard + +"@actions/http-client@npm:^2.0.1": + version: 2.2.1 + resolution: "@actions/http-client@npm:2.2.1" + dependencies: + tunnel: "npm:^0.0.6" + undici: "npm:^5.25.4" + checksum: 10/b7338f13461eeca945acc9ccdd20a46e545624dc872bc12869eca7d9a58536ee3e1ecc0d1a1d4c16e8610c2b783e7108e12148b6db5d7fb8bf8b950b8a002d66 + languageName: node + linkType: hard + "@ampproject/remapping@npm:^2.2.0": version: 2.2.1 resolution: "@ampproject/remapping@npm:2.2.1" @@ -48,7 +68,7 @@ __metadata: nyc: "npm:^15.1.0" rimraf: "npm:^5.0.5" ts-node: "npm:^10.9.2" - typescript: "npm:^5.4.4" + typescript: "npm:^5.4.5" uuid: "npm:^9.0.1" vscode-languageserver: "npm:^9.0.1" vscode-languageserver-textdocument: "npm:^1.0.11" @@ -318,34 +338,41 @@ __metadata: languageName: node linkType: hard -"@eslint-community/regexpp@npm:^4.5.1, @eslint-community/regexpp@npm:^4.6.1": +"@eslint-community/regexpp@npm:^4.10.0, @eslint-community/regexpp@npm:^4.6.1": version: 4.10.0 resolution: "@eslint-community/regexpp@npm:4.10.0" checksum: 10/8c36169c815fc5d726078e8c71a5b592957ee60d08c6470f9ce0187c8046af1a00afbda0a065cc40ff18d5d83f82aed9793c6818f7304a74a7488dc9f3ecbd42 languageName: node linkType: hard -"@eslint/eslintrc@npm:^2.1.4": - version: 2.1.4 - resolution: "@eslint/eslintrc@npm:2.1.4" +"@eslint/eslintrc@npm:^3.0.2": + version: 3.0.2 + resolution: "@eslint/eslintrc@npm:3.0.2" dependencies: ajv: "npm:^6.12.4" debug: "npm:^4.3.2" - espree: "npm:^9.6.0" - globals: "npm:^13.19.0" + espree: "npm:^10.0.1" + globals: "npm:^14.0.0" ignore: "npm:^5.2.0" import-fresh: "npm:^3.2.1" js-yaml: "npm:^4.1.0" minimatch: "npm:^3.1.2" strip-json-comments: "npm:^3.1.1" - checksum: 10/7a3b14f4b40fc1a22624c3f84d9f467a3d9ea1ca6e9a372116cb92507e485260359465b58e25bcb6c9981b155416b98c9973ad9b796053fd7b3f776a6946bce8 + checksum: 10/04e3d7de2b16fd59ba8985ecd6922eb488e630f94e4433858567a8a6c99b478bb7b47854b166b830b44905759547d0a03654eb1265952c812d5d1d70e3e4ccf9 languageName: node linkType: hard -"@eslint/js@npm:8.57.0": - version: 8.57.0 - resolution: "@eslint/js@npm:8.57.0" - checksum: 10/3c501ce8a997cf6cbbaf4ed358af5492875e3550c19b9621413b82caa9ae5382c584b0efa79835639e6e0ddaa568caf3499318e5bdab68643ef4199dce5eb0a0 +"@eslint/js@npm:9.0.0, @eslint/js@npm:^9.0.0": + version: 9.0.0 + resolution: "@eslint/js@npm:9.0.0" + checksum: 10/b14b20af72410ef53e3e77e7d83cc1d6e6554b0092ceb9f969d25d765f4d775b4be32b0cd99bbfd6ce72eb2e4fb6b39b42a159b31909fbe1b3a5e88d75211687 + languageName: node + linkType: hard + +"@fastify/busboy@npm:^2.0.0": + version: 2.1.1 + resolution: "@fastify/busboy@npm:2.1.1" + checksum: 10/2bb8a7eca8289ed14c9eb15239bc1019797454624e769b39a0b90ed204d032403adc0f8ed0d2aef8a18c772205fa7808cf5a1b91f21c7bfc7b6032150b1062c5 languageName: node linkType: hard @@ -379,14 +406,14 @@ __metadata: languageName: node linkType: hard -"@humanwhocodes/config-array@npm:^0.11.14": - version: 0.11.14 - resolution: "@humanwhocodes/config-array@npm:0.11.14" +"@humanwhocodes/config-array@npm:^0.12.3": + version: 0.12.3 + resolution: "@humanwhocodes/config-array@npm:0.12.3" dependencies: - "@humanwhocodes/object-schema": "npm:^2.0.2" + "@humanwhocodes/object-schema": "npm:^2.0.3" debug: "npm:^4.3.1" minimatch: "npm:^3.0.5" - checksum: 10/3ffb24ecdfab64014a230e127118d50a1a04d11080cbb748bc21629393d100850496456bbcb4e8c438957fe0934430d731042f1264d6a167b62d32fc2863580a + checksum: 10/b05f528c110aa1657d95d213e4ad2662f4161e838806af01a4d3f3b6ee3878d9b6f87d1b10704917f5c2f116757cb5c818480c32c4c4c6f84fe775a170b5f758 languageName: node linkType: hard @@ -397,7 +424,7 @@ __metadata: languageName: node linkType: hard -"@humanwhocodes/object-schema@npm:^2.0.2": +"@humanwhocodes/object-schema@npm:^2.0.3": version: 2.0.3 resolution: "@humanwhocodes/object-schema@npm:2.0.3" checksum: 10/05bb99ed06c16408a45a833f03a732f59bf6184795d4efadd33238ff8699190a8c871ad1121241bb6501589a9598dc83bf25b99dcbcf41e155cdf36e35e937a3 @@ -1121,7 +1148,7 @@ __metadata: languageName: node linkType: hard -"@types/json-schema@npm:*, @types/json-schema@npm:^7.0.12, @types/json-schema@npm:^7.0.8": +"@types/json-schema@npm:*, @types/json-schema@npm:^7.0.15, @types/json-schema@npm:^7.0.8": version: 7.0.15 resolution: "@types/json-schema@npm:7.0.15" checksum: 10/1a3c3e06236e4c4aab89499c428d585527ce50c24fe8259e8b3926d3df4cfbbbcf306cfc73ddfb66cbafc973116efd15967020b0f738f63e09e64c7d260519e7 @@ -1234,10 +1261,10 @@ __metadata: languageName: node linkType: hard -"@types/semver@npm:^7.5.0": - version: 7.5.6 - resolution: "@types/semver@npm:7.5.6" - checksum: 10/e77282b17f74354e17e771c0035cccb54b94cc53d0433fa7e9ba9d23fd5d7edcd14b6c8b7327d58bbd89e83b1c5eda71dfe408e06b929007e2b89586e9b63459 +"@types/semver@npm:^7.5.0, @types/semver@npm:^7.5.8": + version: 7.5.8 + resolution: "@types/semver@npm:7.5.8" + checksum: 10/3496808818ddb36deabfe4974fd343a78101fa242c4690044ccdc3b95dcf8785b494f5d628f2f47f38a702f8db9c53c67f47d7818f2be1b79f2efb09692e1178 languageName: node linkType: hard @@ -1322,133 +1349,126 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/eslint-plugin@npm:^7.5.0": - version: 7.5.0 - resolution: "@typescript-eslint/eslint-plugin@npm:7.5.0" +"@typescript-eslint/eslint-plugin@npm:7.6.0, @typescript-eslint/eslint-plugin@npm:^7.6.0": + version: 7.6.0 + resolution: "@typescript-eslint/eslint-plugin@npm:7.6.0" dependencies: - "@eslint-community/regexpp": "npm:^4.5.1" - "@typescript-eslint/scope-manager": "npm:7.5.0" - "@typescript-eslint/type-utils": "npm:7.5.0" - "@typescript-eslint/utils": "npm:7.5.0" - "@typescript-eslint/visitor-keys": "npm:7.5.0" + "@eslint-community/regexpp": "npm:^4.10.0" + "@typescript-eslint/scope-manager": "npm:7.6.0" + "@typescript-eslint/type-utils": "npm:7.6.0" + "@typescript-eslint/utils": "npm:7.6.0" + "@typescript-eslint/visitor-keys": "npm:7.6.0" debug: "npm:^4.3.4" graphemer: "npm:^1.4.0" - ignore: "npm:^5.2.4" + ignore: "npm:^5.3.1" natural-compare: "npm:^1.4.0" - semver: "npm:^7.5.4" - ts-api-utils: "npm:^1.0.1" + semver: "npm:^7.6.0" + ts-api-utils: "npm:^1.3.0" peerDependencies: "@typescript-eslint/parser": ^7.0.0 eslint: ^8.56.0 peerDependenciesMeta: typescript: optional: true - checksum: 10/5469900a0c2f485dcae10fc8509e2e1d981538d4c90a13330672fbd10cb7b9bb6d55445d6edea876e2c1719f1f0e25f6af0eb2d413e0c458a8930a371481b9e6 + checksum: 10/6977c5fb5397ac6c9fda8786b149130321ffba45a71b813ca8a800fe711ac626bcbe05d5ace2ef6245eb8f0c4b6feb2b505a0e0e398fa37ce088731e78478b20 languageName: node linkType: hard -"@typescript-eslint/parser@npm:^7.5.0": - version: 7.5.0 - resolution: "@typescript-eslint/parser@npm:7.5.0" +"@typescript-eslint/parser@npm:7.6.0, @typescript-eslint/parser@npm:^7.6.0": + version: 7.6.0 + resolution: "@typescript-eslint/parser@npm:7.6.0" dependencies: - "@typescript-eslint/scope-manager": "npm:7.5.0" - "@typescript-eslint/types": "npm:7.5.0" - "@typescript-eslint/typescript-estree": "npm:7.5.0" - "@typescript-eslint/visitor-keys": "npm:7.5.0" + "@typescript-eslint/scope-manager": "npm:7.6.0" + "@typescript-eslint/types": "npm:7.6.0" + "@typescript-eslint/typescript-estree": "npm:7.6.0" + "@typescript-eslint/visitor-keys": "npm:7.6.0" debug: "npm:^4.3.4" peerDependencies: eslint: ^8.56.0 peerDependenciesMeta: typescript: optional: true - checksum: 10/a5414fb2fbd78bf7337125f4a3040318bdffa996a94e27b4f791d51535d5d9286c3e0ae43652b251c48549bbfece0e3a33553b30ed986af6b4f715d76361d6bb + checksum: 10/245b975280691c6c7bd3fe3e9d57943220e0400df62738274b98dffcbd3011b7191fd54c950cb4d0b6328699f3b1a45cea5e46cc5c86528e7f14e533277616c8 languageName: node linkType: hard -"@typescript-eslint/scope-manager@npm:7.5.0": - version: 7.5.0 - resolution: "@typescript-eslint/scope-manager@npm:7.5.0" +"@typescript-eslint/scope-manager@npm:7.6.0": + version: 7.6.0 + resolution: "@typescript-eslint/scope-manager@npm:7.6.0" dependencies: - "@typescript-eslint/types": "npm:7.5.0" - "@typescript-eslint/visitor-keys": "npm:7.5.0" - checksum: 10/9446c07290a7f7f539a0bdaaf2fb97ae57095a01cd0baad9ecac532da88e7d0d207e5180131c0608542aee2fd1270caf700a2788fa460ffc6e65e966baf34135 + "@typescript-eslint/types": "npm:7.6.0" + "@typescript-eslint/visitor-keys": "npm:7.6.0" + checksum: 10/1daa0b84f751e740df39abf7303e63dcff26883242a616712d338edb11d24a05a03156d8f5d6b2c42ef01a28c540dbfc5c83853e159f341189870320e4c4acef languageName: node linkType: hard -"@typescript-eslint/type-utils@npm:7.5.0": - version: 7.5.0 - resolution: "@typescript-eslint/type-utils@npm:7.5.0" +"@typescript-eslint/type-utils@npm:7.6.0": + version: 7.6.0 + resolution: "@typescript-eslint/type-utils@npm:7.6.0" dependencies: - "@typescript-eslint/typescript-estree": "npm:7.5.0" - "@typescript-eslint/utils": "npm:7.5.0" + "@typescript-eslint/typescript-estree": "npm:7.6.0" + "@typescript-eslint/utils": "npm:7.6.0" debug: "npm:^4.3.4" - ts-api-utils: "npm:^1.0.1" + ts-api-utils: "npm:^1.3.0" peerDependencies: eslint: ^8.56.0 peerDependenciesMeta: typescript: optional: true - checksum: 10/257730553760fa943538db9648a11f4253efb722ab3394cd325bd775ee0c9d93af84c62540dee9377d4a669eb1cd801faed5e1bcb673d1606c9225eee82b420a + checksum: 10/1011e1d3ff15f0167f653652865c5b850a1acb21627abff30b0cf1e15865dd490bfb7e9334fa2f4123477fc1eea1ebf4a5c3c8c5cc1972e3b195a39bd8c03aa8 languageName: node linkType: hard -"@typescript-eslint/types@npm:7.5.0": - version: 7.5.0 - resolution: "@typescript-eslint/types@npm:7.5.0" - checksum: 10/12eac46d0dfbbeb1db7d0658b841d554d38365420f42b699dea531e0c475b77d6fd838ac4046b7672e53d9bb76a021eaf6198cf3210fe1ecf1056ea44b6699a9 +"@typescript-eslint/types@npm:7.6.0": + version: 7.6.0 + resolution: "@typescript-eslint/types@npm:7.6.0" + checksum: 10/830c1b12d8a9242285516e9b7e46bf434b52ad835da4fc5cdac19e79f02bf637c9458923d72cc0babe20d474ddcafcdd4dcd8991c2280d00084a014de3d32da0 languageName: node linkType: hard -"@typescript-eslint/typescript-estree@npm:7.5.0": - version: 7.5.0 - resolution: "@typescript-eslint/typescript-estree@npm:7.5.0" +"@typescript-eslint/typescript-estree@npm:7.6.0": + version: 7.6.0 + resolution: "@typescript-eslint/typescript-estree@npm:7.6.0" dependencies: - "@typescript-eslint/types": "npm:7.5.0" - "@typescript-eslint/visitor-keys": "npm:7.5.0" + "@typescript-eslint/types": "npm:7.6.0" + "@typescript-eslint/visitor-keys": "npm:7.6.0" debug: "npm:^4.3.4" globby: "npm:^11.1.0" is-glob: "npm:^4.0.3" - minimatch: "npm:9.0.3" - semver: "npm:^7.5.4" - ts-api-utils: "npm:^1.0.1" + minimatch: "npm:^9.0.4" + semver: "npm:^7.6.0" + ts-api-utils: "npm:^1.3.0" peerDependenciesMeta: typescript: optional: true - checksum: 10/7487293a9ab9459b133322e695435b4540ffcad89f2bea917c3389676d68283297a663c77d6bda298144d3581361733ae4af632213fa7ef48be67e9aa792b4cc + checksum: 10/a10ae981669180d7c09acdd01e1c3b3dcb544edb8fa44d0c82586c2915d3001e6e15c792ef6b0b75774d6ff705613ec213f2316a7d9477a122e68c5913545a2b languageName: node linkType: hard -"@typescript-eslint/utils@npm:7.5.0": - version: 7.5.0 - resolution: "@typescript-eslint/utils@npm:7.5.0" +"@typescript-eslint/utils@npm:7.6.0": + version: 7.6.0 + resolution: "@typescript-eslint/utils@npm:7.6.0" dependencies: "@eslint-community/eslint-utils": "npm:^4.4.0" - "@types/json-schema": "npm:^7.0.12" - "@types/semver": "npm:^7.5.0" - "@typescript-eslint/scope-manager": "npm:7.5.0" - "@typescript-eslint/types": "npm:7.5.0" - "@typescript-eslint/typescript-estree": "npm:7.5.0" - semver: "npm:^7.5.4" + "@types/json-schema": "npm:^7.0.15" + "@types/semver": "npm:^7.5.8" + "@typescript-eslint/scope-manager": "npm:7.6.0" + "@typescript-eslint/types": "npm:7.6.0" + "@typescript-eslint/typescript-estree": "npm:7.6.0" + semver: "npm:^7.6.0" peerDependencies: eslint: ^8.56.0 - checksum: 10/a0b2f206a1c35dd77b292d1cd385443f42d00ccf8a5151811fe6bdd6b5f3a450372bf99b8757c307988d14d99587424c59ed59e78cf56c17b43c9c3fd8932871 + checksum: 10/45bcc1b00ec281cfc997aeff4bca3b3e169f49c656ddfcfad909b18ecdcd8b0d27776df1c452d47d9291cd1346023e0a2d7c8aa67bf3ad917f530033f6b193aa languageName: node linkType: hard -"@typescript-eslint/visitor-keys@npm:7.5.0": - version: 7.5.0 - resolution: "@typescript-eslint/visitor-keys@npm:7.5.0" +"@typescript-eslint/visitor-keys@npm:7.6.0": + version: 7.6.0 + resolution: "@typescript-eslint/visitor-keys@npm:7.6.0" dependencies: - "@typescript-eslint/types": "npm:7.5.0" - eslint-visitor-keys: "npm:^3.4.1" - checksum: 10/ba83113110b13bc65120ea3d1e21e1dcea6010b0a1a3d07da2fd274bb0feb552a92276b6052e659d2fe40178938b17368ede64752c4937f41685c53bdf9d2634 - languageName: node - linkType: hard - -"@ungap/structured-clone@npm:^1.2.0": - version: 1.2.0 - resolution: "@ungap/structured-clone@npm:1.2.0" - checksum: 10/c6fe89a505e513a7592e1438280db1c075764793a2397877ff1351721fe8792a966a5359769e30242b3cd023f2efb9e63ca2ca88019d73b564488cc20e3eab12 + "@typescript-eslint/types": "npm:7.6.0" + eslint-visitor-keys: "npm:^3.4.3" + checksum: 10/2703629f1359f08e7a20706e225f2d83bf12292c282d2effa431eae441b12d4af1fe8c692535f6ef32d5b6d0c15ad61c4c102e4dd157c8fe30eefb94222ba239 languageName: node linkType: hard @@ -1823,7 +1843,7 @@ __metadata: languageName: node linkType: hard -"acorn@npm:^8.4.1, acorn@npm:^8.7.1, acorn@npm:^8.8.2, acorn@npm:^8.9.0": +"acorn@npm:^8.11.3, acorn@npm:^8.4.1, acorn@npm:^8.7.1, acorn@npm:^8.8.2": version: 8.11.3 resolution: "acorn@npm:8.11.3" bin: @@ -1950,6 +1970,7 @@ __metadata: resolution: "ansible@workspace:." dependencies: "@ansible/ansible-language-server": "workspace:^" + "@eslint/js": "npm:^9.0.0" "@redhat-developer/vscode-redhat-telemetry": "npm:^0.7.1" "@types/chai": "npm:^4.3.14" "@types/express": "npm:^4.17.21" @@ -1964,8 +1985,8 @@ __metadata: "@types/uuid": "npm:^9.0.8" "@types/vscode": "npm:^1.85.0" "@types/vscode-webview": "npm:^1.57.5" - "@typescript-eslint/eslint-plugin": "npm:^7.5.0" - "@typescript-eslint/parser": "npm:^7.5.0" + "@typescript-eslint/eslint-plugin": "npm:^7.6.0" + "@typescript-eslint/parser": "npm:^7.6.0" "@vscode/test-electron": "npm:^2.3.9" "@vscode/vsce": "npm:^2.24.0" "@vscode/webview-ui-toolkit": "npm:^1.4.0" @@ -1973,13 +1994,16 @@ __metadata: chai: "npm:^4.4.1" copyfiles: "npm:^2.4.1" depcheck: "npm:^1.4.7" - eslint: "npm:^8.57.0" + eslint: "npm:^9.0.0" eslint-config-prettier: "npm:^9.1.0" + eslint-formatter-gha: "npm:^1.4.3" + eslint-formatter-unix: "npm:^8.40.0" eslint-plugin-prettier: "npm:^5.1.3" eslint-plugin-tsdoc: "npm:^0.2.17" express: "npm:^4.19.2" find-process: "npm:^1.4.7" glob: "npm:^10.3.12" + globals: "npm:^15.0.0" ini: "npm:^4.1.2" lodash: "npm:^4.17.21" marked: "npm:^12.0.1" @@ -1996,7 +2020,8 @@ __metadata: start-server-and-test: "npm:^2.0.3" ts-loader: "npm:^9.5.1" ts-node: "npm:^10.9.2" - typescript: "npm:^5.4.4" + typescript: "npm:^5.4.5" + typescript-eslint: "npm:^7.6.0" uuid: "npm:^9.0.1" vscode-extension-tester: "npm:^8.0.2" vscode-languageclient: "npm:^9.0.1" @@ -3304,15 +3329,6 @@ __metadata: languageName: node linkType: hard -"doctrine@npm:^3.0.0": - version: 3.0.0 - resolution: "doctrine@npm:3.0.0" - dependencies: - esutils: "npm:^2.0.2" - checksum: 10/b4b28f1df5c563f7d876e7461254a4597b8cabe915abe94d7c5d1633fed263fcf9a85e8d3836591fc2d040108e822b0d32758e5ec1fe31c590dc7e08086e3e48 - languageName: node - linkType: hard - "dom-serializer@npm:^2.0.0": version: 2.0.0 resolution: "dom-serializer@npm:2.0.0" @@ -3564,6 +3580,42 @@ __metadata: languageName: node linkType: hard +"eslint-formatter-gha@npm:^1.4.3": + version: 1.4.3 + resolution: "eslint-formatter-gha@npm:1.4.3" + dependencies: + "@actions/core": "npm:^1.10.1" + eslint-formatter-json: "npm:^8.0.0" + eslint-formatter-stylish: "npm:^8.0.0" + checksum: 10/6c9de42dbc7ffd85dbc8b91b7f2961afa05ff0f399e3164e52a073bd28a70a4829a479f9bf402c899d22c64e34bb3e2843d2a2c4c05afdc088836bab30b6ed1f + languageName: node + linkType: hard + +"eslint-formatter-json@npm:^8.0.0": + version: 8.40.0 + resolution: "eslint-formatter-json@npm:8.40.0" + checksum: 10/79fc86f4102308e99a9b02b75175fb2aca2230ad2f5d48c6db0bc4e14ccb5c5ec86ec5c3c0169dfa1824168f9048e729e3078cf19b7008043bd0acd6fd6a9f73 + languageName: node + linkType: hard + +"eslint-formatter-stylish@npm:^8.0.0": + version: 8.40.0 + resolution: "eslint-formatter-stylish@npm:8.40.0" + dependencies: + chalk: "npm:^4.0.0" + strip-ansi: "npm:^6.0.1" + text-table: "npm:^0.2.0" + checksum: 10/a79a4414811999ce36c2f4e41ba25fdad75a8b71a1062f81f5b1b1015ba9775dd349a040b1d8061163ee1f077b5593b1b0df51f1b62d8cf8c13f8b640d5f8e7b + languageName: node + linkType: hard + +"eslint-formatter-unix@npm:^8.40.0": + version: 8.40.0 + resolution: "eslint-formatter-unix@npm:8.40.0" + checksum: 10/5228e59fa1facf472cf1f1781e98dc9dcec8b8624bfe65da24fc55c63bb1adef6dea616197c0d2711dd8eed875e79d7ca0a9fc0063418fce9f1d029f1fb7a2b1 + languageName: node + linkType: hard + "eslint-plugin-prettier@npm:^5.1.3": version: 5.1.3 resolution: "eslint-plugin-prettier@npm:5.1.3" @@ -3604,57 +3656,60 @@ __metadata: languageName: node linkType: hard -"eslint-scope@npm:^7.2.2": - version: 7.2.2 - resolution: "eslint-scope@npm:7.2.2" +"eslint-scope@npm:^8.0.1": + version: 8.0.1 + resolution: "eslint-scope@npm:8.0.1" dependencies: esrecurse: "npm:^4.3.0" estraverse: "npm:^5.2.0" - checksum: 10/5c660fb905d5883ad018a6fea2b49f3cb5b1cbf2cd4bd08e98646e9864f9bc2c74c0839bed2d292e90a4a328833accc197c8f0baed89cbe8d605d6f918465491 + checksum: 10/458513863d3c79005b599f40250437bddba923f18549058ea45820a8d3d4bbc67fe292751d522a0cab69dd01fe211ffde5c1a5fc867e86f2d28727b1d61610da languageName: node linkType: hard -"eslint-visitor-keys@npm:^3.3.0, eslint-visitor-keys@npm:^3.4.1, eslint-visitor-keys@npm:^3.4.3": +"eslint-visitor-keys@npm:^3.3.0, eslint-visitor-keys@npm:^3.4.3": version: 3.4.3 resolution: "eslint-visitor-keys@npm:3.4.3" checksum: 10/3f357c554a9ea794b094a09bd4187e5eacd1bc0d0653c3adeb87962c548e6a1ab8f982b86963ae1337f5d976004146536dcee5d0e2806665b193fbfbf1a9231b languageName: node linkType: hard -"eslint@npm:^8.57.0": - version: 8.57.0 - resolution: "eslint@npm:8.57.0" +"eslint-visitor-keys@npm:^4.0.0": + version: 4.0.0 + resolution: "eslint-visitor-keys@npm:4.0.0" + checksum: 10/c7617166e6291a15ce2982b5c4b9cdfb6409f5c14562712d12e2584480cdf18609694b21d7dad35b02df0fa2cd037505048ded54d2f405c64f600949564eb334 + languageName: node + linkType: hard + +"eslint@npm:^9.0.0": + version: 9.0.0 + resolution: "eslint@npm:9.0.0" dependencies: "@eslint-community/eslint-utils": "npm:^4.2.0" "@eslint-community/regexpp": "npm:^4.6.1" - "@eslint/eslintrc": "npm:^2.1.4" - "@eslint/js": "npm:8.57.0" - "@humanwhocodes/config-array": "npm:^0.11.14" + "@eslint/eslintrc": "npm:^3.0.2" + "@eslint/js": "npm:9.0.0" + "@humanwhocodes/config-array": "npm:^0.12.3" "@humanwhocodes/module-importer": "npm:^1.0.1" "@nodelib/fs.walk": "npm:^1.2.8" - "@ungap/structured-clone": "npm:^1.2.0" ajv: "npm:^6.12.4" chalk: "npm:^4.0.0" cross-spawn: "npm:^7.0.2" debug: "npm:^4.3.2" - doctrine: "npm:^3.0.0" escape-string-regexp: "npm:^4.0.0" - eslint-scope: "npm:^7.2.2" - eslint-visitor-keys: "npm:^3.4.3" - espree: "npm:^9.6.1" + eslint-scope: "npm:^8.0.1" + eslint-visitor-keys: "npm:^4.0.0" + espree: "npm:^10.0.1" esquery: "npm:^1.4.2" esutils: "npm:^2.0.2" fast-deep-equal: "npm:^3.1.3" - file-entry-cache: "npm:^6.0.1" + file-entry-cache: "npm:^8.0.0" find-up: "npm:^5.0.0" glob-parent: "npm:^6.0.2" - globals: "npm:^13.19.0" graphemer: "npm:^1.4.0" ignore: "npm:^5.2.0" imurmurhash: "npm:^0.1.4" is-glob: "npm:^4.0.0" is-path-inside: "npm:^3.0.3" - js-yaml: "npm:^4.1.0" json-stable-stringify-without-jsonify: "npm:^1.0.1" levn: "npm:^0.4.1" lodash.merge: "npm:^4.6.2" @@ -3665,18 +3720,18 @@ __metadata: text-table: "npm:^0.2.0" bin: eslint: bin/eslint.js - checksum: 10/00496e218b23747a7a9817bf58b522276d0dc1f2e546dceb4eea49f9871574088f72f1f069a6b560ef537efa3a75261b8ef70e51ef19033da1cc4c86a755ef15 + checksum: 10/5cf03e14eb114f95bc4e553c8ae2da65ec09d519779beb08e326d98518bce647ce9c8bf3467bcea4cab35a2657cc3a8e945717e784afa4b1bdb9d1ecd9173ba0 languageName: node linkType: hard -"espree@npm:^9.6.0, espree@npm:^9.6.1": - version: 9.6.1 - resolution: "espree@npm:9.6.1" +"espree@npm:^10.0.1": + version: 10.0.1 + resolution: "espree@npm:10.0.1" dependencies: - acorn: "npm:^8.9.0" + acorn: "npm:^8.11.3" acorn-jsx: "npm:^5.3.2" - eslint-visitor-keys: "npm:^3.4.1" - checksum: 10/255ab260f0d711a54096bdeda93adff0eadf02a6f9b92f02b323e83a2b7fc258797919437ad331efec3930475feb0142c5ecaaf3cdab4befebd336d47d3f3134 + eslint-visitor-keys: "npm:^4.0.0" + checksum: 10/557d6cfb4894b1489effcaed8702682086033f8a2449568933bc59493734733d750f2a87907ba575844d3933340aea2d84288f5e67020c6152f6fd18a86497b2 languageName: node linkType: hard @@ -3967,12 +4022,12 @@ __metadata: languageName: node linkType: hard -"file-entry-cache@npm:^6.0.1": - version: 6.0.1 - resolution: "file-entry-cache@npm:6.0.1" +"file-entry-cache@npm:^8.0.0": + version: 8.0.0 + resolution: "file-entry-cache@npm:8.0.0" dependencies: - flat-cache: "npm:^3.0.4" - checksum: 10/099bb9d4ab332cb93c48b14807a6918a1da87c45dce91d4b61fd40e6505d56d0697da060cb901c729c90487067d93c9243f5da3dc9c41f0358483bfdebca736b + flat-cache: "npm:^4.0.0" + checksum: 10/afe55c4de4e0d226a23c1eae62a7219aafb390859122608a89fa4df6addf55c7fd3f1a2da6f5b41e7cdff496e4cf28bbd215d53eab5c817afa96d2b40c81bfb0 languageName: node linkType: hard @@ -4056,14 +4111,13 @@ __metadata: languageName: node linkType: hard -"flat-cache@npm:^3.0.4": - version: 3.2.0 - resolution: "flat-cache@npm:3.2.0" +"flat-cache@npm:^4.0.0": + version: 4.0.1 + resolution: "flat-cache@npm:4.0.1" dependencies: flatted: "npm:^3.2.9" - keyv: "npm:^4.5.3" - rimraf: "npm:^3.0.2" - checksum: 10/02381c6ece5e9fa5b826c9bbea481d7fd77645d96e4b0b1395238124d581d10e56f17f723d897b6d133970f7a57f0fab9148cbbb67237a0a0ffe794ba60c0c70 + keyv: "npm:^4.5.4" + checksum: 10/58ce851d9045fffc7871ce2bd718bc485ad7e777bf748c054904b87c351ff1080c2c11da00788d78738bfb51b71e4d5ea12d13b98eb36e3358851ffe495b62dc languageName: node linkType: hard @@ -4476,12 +4530,17 @@ __metadata: languageName: node linkType: hard -"globals@npm:^13.19.0": - version: 13.24.0 - resolution: "globals@npm:13.24.0" - dependencies: - type-fest: "npm:^0.20.2" - checksum: 10/62c5b1997d06674fc7191d3e01e324d3eda4d65ac9cc4e78329fa3b5c4fd42a0e1c8722822497a6964eee075255ce21ccf1eec2d83f92ef3f06653af4d0ee28e +"globals@npm:^14.0.0": + version: 14.0.0 + resolution: "globals@npm:14.0.0" + checksum: 10/03939c8af95c6df5014b137cac83aa909090c3a3985caef06ee9a5a669790877af8698ab38007e4c0186873adc14c0b13764acc754b16a754c216cc56aa5f021 + languageName: node + linkType: hard + +"globals@npm:^15.0.0": + version: 15.0.0 + resolution: "globals@npm:15.0.0" + checksum: 10/f2f927fe457a5ed2c27b00b77ca22ec31fe5624aac2da178e228a5bcc9928df0f1853e79d6499e04283d184ea13e26cc8127e890098490c9fee616363cdf0d76 languageName: node linkType: hard @@ -4872,10 +4931,10 @@ __metadata: languageName: node linkType: hard -"ignore@npm:^5.2.0, ignore@npm:^5.2.4": - version: 5.3.0 - resolution: "ignore@npm:5.3.0" - checksum: 10/51594355cea4c6ad6b28b3b85eb81afa7b988a1871feefd7062baf136c95aa06760ee934fa9590e43d967bd377ce84a4cf6135fbeb6063e063f1182a0e9a3bcd +"ignore@npm:^5.2.0, ignore@npm:^5.2.4, ignore@npm:^5.3.1": + version: 5.3.1 + resolution: "ignore@npm:5.3.1" + checksum: 10/0a884c2fbc8c316f0b9f92beaf84464253b73230a4d4d286697be45fca081199191ca33e1c2e82d9e5f851f5e9a48a78e25a35c951e7eb41e59f150db3530065 languageName: node linkType: hard @@ -5546,7 +5605,7 @@ __metadata: languageName: node linkType: hard -"keyv@npm:^4.5.3": +"keyv@npm:^4.5.3, keyv@npm:^4.5.4": version: 4.5.4 resolution: "keyv@npm:4.5.4" dependencies: @@ -6068,15 +6127,6 @@ __metadata: languageName: node linkType: hard -"minimatch@npm:9.0.3": - version: 9.0.3 - resolution: "minimatch@npm:9.0.3" - dependencies: - brace-expansion: "npm:^2.0.1" - checksum: 10/c81b47d28153e77521877649f4bab48348d10938df9e8147a58111fe00ef89559a2938de9f6632910c4f7bf7bb5cd81191a546167e58d357f0cfb1e18cecc1c5 - languageName: node - linkType: hard - "minimatch@npm:^3.0.3, minimatch@npm:^3.0.4, minimatch@npm:^3.0.5, minimatch@npm:^3.1.1, minimatch@npm:^3.1.2": version: 3.1.2 resolution: "minimatch@npm:3.1.2" @@ -8774,12 +8824,12 @@ __metadata: languageName: node linkType: hard -"ts-api-utils@npm:^1.0.1": - version: 1.0.3 - resolution: "ts-api-utils@npm:1.0.3" +"ts-api-utils@npm:^1.3.0": + version: 1.3.0 + resolution: "ts-api-utils@npm:1.3.0" peerDependencies: typescript: ">=4.2.0" - checksum: 10/1350a5110eb1e534e9a6178f4081fb8a4fcc439749e19f4ad699baec9090fcb90fe532d5e191d91a062dc6e454a14a8d7eb2ad202f57135a30c4a44a3024f039 + checksum: 10/3ee44faa24410cd649b5c864e068d438aa437ef64e9e4a66a41646a6d3024d3097a695eeb3fb26ee364705d3cb9653a65756d009e6a53badb6066a5f447bf7ed languageName: node linkType: hard @@ -8871,7 +8921,7 @@ __metadata: languageName: node linkType: hard -"tunnel@npm:0.0.6": +"tunnel@npm:0.0.6, tunnel@npm:^0.0.6": version: 0.0.6 resolution: "tunnel@npm:0.0.6" checksum: 10/cf1ffed5e67159b901a924dbf94c989f20b2b3b65649cfbbe4b6abb35955ce2cf7433b23498bdb2c5530ab185b82190fce531597b3b4a649f06a907fc8702405 @@ -8894,13 +8944,6 @@ __metadata: languageName: node linkType: hard -"type-fest@npm:^0.20.2": - version: 0.20.2 - resolution: "type-fest@npm:0.20.2" - checksum: 10/8907e16284b2d6cfa4f4817e93520121941baba36b39219ea36acfe64c86b9dbc10c9941af450bd60832c8f43464974d51c0957f9858bc66b952b66b6914cbb9 - languageName: node - linkType: hard - "type-fest@npm:^0.8.0": version: 0.8.1 resolution: "type-fest@npm:0.8.1" @@ -8952,23 +8995,39 @@ __metadata: languageName: node linkType: hard -"typescript@npm:^5.4.4": - version: 5.4.4 - resolution: "typescript@npm:5.4.4" +"typescript-eslint@npm:^7.6.0": + version: 7.6.0 + resolution: "typescript-eslint@npm:7.6.0" + dependencies: + "@typescript-eslint/eslint-plugin": "npm:7.6.0" + "@typescript-eslint/parser": "npm:7.6.0" + "@typescript-eslint/utils": "npm:7.6.0" + peerDependencies: + eslint: ^8.56.0 + peerDependenciesMeta: + typescript: + optional: true + checksum: 10/ea05ff36505040931c7f727d4475bc3c2a9e486c4ee449f4532ef43b63a55127cd130fde98b57efcdd0beed745afaff7b49a6b51604281386bc934dbf8333a43 + languageName: node + linkType: hard + +"typescript@npm:^5.4.5": + version: 5.4.5 + resolution: "typescript@npm:5.4.5" bin: tsc: bin/tsc tsserver: bin/tsserver - checksum: 10/bade322d88fd93c8179e262aca9ba7f7b4417c09117879819c87946578c782ab123e3acb4733046a6e38714c47ef927360045a1f9292a1bff3a05a6577d27ca2 + checksum: 10/d04a9e27e6d83861f2126665aa8d84847e8ebabcea9125b9ebc30370b98cb38b5dff2508d74e2326a744938191a83a69aa9fddab41f193ffa43eabfdf3f190a5 languageName: node linkType: hard -"typescript@patch:typescript@npm%3A^5.4.4#optional!builtin": - version: 5.4.4 - resolution: "typescript@patch:typescript@npm%3A5.4.4#optional!builtin::version=5.4.4&hash=5adc0c" +"typescript@patch:typescript@npm%3A^5.4.5#optional!builtin": + version: 5.4.5 + resolution: "typescript@patch:typescript@npm%3A5.4.5#optional!builtin::version=5.4.5&hash=5adc0c" bin: tsc: bin/tsc tsserver: bin/tsserver - checksum: 10/88aff3244c31d4c6ede05b4fd28732fc8935a7fc638f2a3dcbbb767d1ac98e4b077f21ec74bc97f43c9307bc3f27e2359def1d793f9918c3429a744408fd75b4 + checksum: 10/760f7d92fb383dbf7dee2443bf902f4365db2117f96f875cf809167f6103d55064de973db9f78fe8f31ec08fff52b2c969aee0d310939c0a3798ec75d0bca2e1 languageName: node linkType: hard @@ -9009,6 +9068,15 @@ __metadata: languageName: node linkType: hard +"undici@npm:^5.25.4": + version: 5.28.4 + resolution: "undici@npm:5.28.4" + dependencies: + "@fastify/busboy": "npm:^2.0.0" + checksum: 10/a666a9f5ac4270c659fafc33d78b6b5039a0adbae3e28f934774c85dcc66ea91da907896f12b414bd6f578508b44d5dc206fa636afa0e49a4e1c9e99831ff065 + languageName: node + linkType: hard + "unique-filename@npm:^2.0.0": version: 2.0.1 resolution: "unique-filename@npm:2.0.1"