From 773f92ae83b19bc49c8d52329425b85b5734950a Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 2 Jul 2024 04:35:30 +0000 Subject: [PATCH 1/7] =?UTF-8?q?=E2=AC=86=EF=B8=8F=20Update=20`eslint`=20to?= =?UTF-8?q?=20v9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 2 +- yarn.lock | 151 ++++++++++++++++++++++----------------------------- 2 files changed, 66 insertions(+), 87 deletions(-) diff --git a/package.json b/package.json index 197c0e3fd2..66bd8bc3a6 100644 --- a/package.json +++ b/package.json @@ -71,7 +71,7 @@ "all-contributors-cli": "6.26.1", "copy-dir": "1.3.0", "css-loader": "7.1.2", - "eslint": "8.57.0", + "eslint": "9.6.0", "eslint-config-prettier": "9.1.0", "eslint-import-resolver-typescript": "3.6.1", "eslint-plugin-compat": "5.0.0", diff --git a/yarn.lock b/yarn.lock index fb281367c6..46b54c7de3 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1573,24 +1573,18 @@ __metadata: languageName: node linkType: hard -"@eslint/eslintrc@npm:^2.1.4": - version: 2.1.4 - resolution: "@eslint/eslintrc@npm:2.1.4" +"@eslint/config-array@npm:^0.17.0": + version: 0.17.0 + resolution: "@eslint/config-array@npm:0.17.0" dependencies: - ajv: "npm:^6.12.4" - debug: "npm:^4.3.2" - espree: "npm:^9.6.0" - globals: "npm:^13.19.0" - ignore: "npm:^5.2.0" - import-fresh: "npm:^3.2.1" - js-yaml: "npm:^4.1.0" + "@eslint/object-schema": "npm:^2.1.4" + debug: "npm:^4.3.1" minimatch: "npm:^3.1.2" - strip-json-comments: "npm:^3.1.1" - checksum: 10c0/32f67052b81768ae876c84569ffd562491ec5a5091b0c1e1ca1e0f3c24fb42f804952fdd0a137873bc64303ba368a71ba079a6f691cee25beee9722d94cc8573 + checksum: 10c0/97eb23ef0948dbc5f24884a3b75c537ca37ee2b1f27a864cd0d9189c089bc1a724dc6e1a4d9b7dd304d9f732ca02aa7916243a7715d6f1f17159d8a8c83f0c9e languageName: node linkType: hard -"@eslint/eslintrc@npm:^3.0.2": +"@eslint/eslintrc@npm:^3.0.2, @eslint/eslintrc@npm:^3.1.0": version: 3.1.0 resolution: "@eslint/eslintrc@npm:3.1.0" dependencies: @@ -1607,10 +1601,17 @@ __metadata: languageName: node linkType: hard -"@eslint/js@npm:8.57.0": - version: 8.57.0 - resolution: "@eslint/js@npm:8.57.0" - checksum: 10c0/9a518bb8625ba3350613903a6d8c622352ab0c6557a59fe6ff6178bf882bf57123f9d92aa826ee8ac3ee74b9c6203fe630e9ee00efb03d753962dcf65ee4bd94 +"@eslint/js@npm:9.6.0": + version: 9.6.0 + resolution: "@eslint/js@npm:9.6.0" + checksum: 10c0/83967a7e59f2e958c9bbb3acd0929cad00d59d927ad786ed8e0d30b07f983c6bea3af6f4ad32da32145db40b7a741a816ba339bdd8960fc7fc8231716d943b7f + languageName: node + linkType: hard + +"@eslint/object-schema@npm:^2.1.4": + version: 2.1.4 + resolution: "@eslint/object-schema@npm:2.1.4" + checksum: 10c0/e9885532ea70e483fb007bf1275968b05bb15ebaa506d98560c41a41220d33d342e19023d5f2939fed6eb59676c1bda5c847c284b4b55fce521d282004da4dda languageName: node linkType: hard @@ -1672,17 +1673,6 @@ __metadata: languageName: node linkType: hard -"@humanwhocodes/config-array@npm:^0.11.14": - version: 0.11.14 - resolution: "@humanwhocodes/config-array@npm:0.11.14" - dependencies: - "@humanwhocodes/object-schema": "npm:^2.0.2" - debug: "npm:^4.3.1" - minimatch: "npm:^3.0.5" - checksum: 10c0/66f725b4ee5fdd8322c737cb5013e19fac72d4d69c8bf4b7feb192fcb83442b035b92186f8e9497c220e58b2d51a080f28a73f7899bc1ab288c3be172c467541 - languageName: node - linkType: hard - "@humanwhocodes/module-importer@npm:^1.0.1": version: 1.0.1 resolution: "@humanwhocodes/module-importer@npm:1.0.1" @@ -1690,10 +1680,10 @@ __metadata: languageName: node linkType: hard -"@humanwhocodes/object-schema@npm:^2.0.2": - version: 2.0.3 - resolution: "@humanwhocodes/object-schema@npm:2.0.3" - checksum: 10c0/80520eabbfc2d32fe195a93557cef50dfe8c8905de447f022675aaf66abc33ae54098f5ea78548d925aa671cd4ab7c7daa5ad704fe42358c9b5e7db60f80696c +"@humanwhocodes/retry@npm:^0.3.0": + version: 0.3.0 + resolution: "@humanwhocodes/retry@npm:0.3.0" + checksum: 10c0/7111ec4e098b1a428459b4e3be5a5d2a13b02905f805a2468f4fa628d072f0de2da26a27d04f65ea2846f73ba51f4204661709f05bfccff645e3cedef8781bb6 languageName: node linkType: hard @@ -2767,13 +2757,6 @@ __metadata: languageName: node linkType: hard -"@ungap/structured-clone@npm:^1.2.0": - version: 1.2.0 - resolution: "@ungap/structured-clone@npm:1.2.0" - checksum: 10c0/8209c937cb39119f44eb63cf90c0b73e7c754209a6411c707be08e50e29ee81356dca1a848a405c8bdeebfe2f5e4f831ad310ae1689eeef65e7445c090c6657d - languageName: node - linkType: hard - "@vitejs/plugin-vue@npm:^5.0.3": version: 5.0.5 resolution: "@vitejs/plugin-vue@npm:5.0.5" @@ -4892,15 +4875,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: 10c0/c96bdccabe9d62ab6fea9399fdff04a66e6563c1d6fb3a3a063e8d53c3bb136ba63e84250bbf63d00086a769ad53aef92d2bd483f03f837fc97b71cbee6b2520 - languageName: node - linkType: hard - "dom-serializer@npm:^2.0.0": version: 2.0.0 resolution: "dom-serializer@npm:2.0.0" @@ -5551,7 +5525,7 @@ __metadata: languageName: node linkType: hard -"eslint-scope@npm:^7.1.1, eslint-scope@npm:^7.2.2": +"eslint-scope@npm:^7.1.1": version: 7.2.2 resolution: "eslint-scope@npm:7.2.2" dependencies: @@ -5561,7 +5535,17 @@ __metadata: 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-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: 10c0/0ec40ab284e58ac7ef064ecd23c127e03d339fa57173c96852336c73afc70ce5631da21dc1c772415a37a421291845538dd69db83c68d611044c0fde1d1fa269 + languageName: node + linkType: hard + +"eslint-visitor-keys@npm:^3.3.0, eslint-visitor-keys@npm:^3.4.1": version: 3.4.3 resolution: "eslint-visitor-keys@npm:3.4.3" checksum: 10c0/92708e882c0a5ffd88c23c0b404ac1628cf20104a108c745f240a13c332a11aac54f49a22d5762efbffc18ecbc9a580d1b7ad034bf5f3cc3307e5cbff2ec9820 @@ -5575,40 +5559,36 @@ __metadata: languageName: node linkType: hard -"eslint@npm:8.57.0": - version: 8.57.0 - resolution: "eslint@npm:8.57.0" +"eslint@npm:9.6.0": + version: 9.6.0 + resolution: "eslint@npm:9.6.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/config-array": "npm:^0.17.0" + "@eslint/eslintrc": "npm:^3.1.0" + "@eslint/js": "npm:9.6.0" "@humanwhocodes/module-importer": "npm:^1.0.1" + "@humanwhocodes/retry": "npm:^0.3.0" "@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" - esquery: "npm:^1.4.2" + eslint-scope: "npm:^8.0.1" + eslint-visitor-keys: "npm:^4.0.0" + espree: "npm:^10.1.0" + esquery: "npm:^1.5.0" 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" @@ -5619,11 +5599,11 @@ __metadata: text-table: "npm:^0.2.0" bin: eslint: bin/eslint.js - checksum: 10c0/00bb96fd2471039a312435a6776fe1fd557c056755eaa2b96093ef3a8508c92c8775d5f754768be6b1dddd09fdd3379ddb231eeb9b6c579ee17ea7d68000a529 + checksum: 10c0/82ea5ad3f28aaef89e2a98f4e6df0eae9d4e16ccd6d667c69977042e0b103fa5df98bf16d3df72d1ae77edd8c1dccfdf4afa2a55309aa8081a1bc54af6229826 languageName: node linkType: hard -"espree@npm:^10.0.1": +"espree@npm:^10.0.1, espree@npm:^10.1.0": version: 10.1.0 resolution: "espree@npm:10.1.0" dependencies: @@ -5634,7 +5614,7 @@ __metadata: languageName: node linkType: hard -"espree@npm:^9.3.1, espree@npm:^9.6.0, espree@npm:^9.6.1": +"espree@npm:^9.3.1": version: 9.6.1 resolution: "espree@npm:9.6.1" dependencies: @@ -5655,7 +5635,7 @@ __metadata: languageName: node linkType: hard -"esquery@npm:^1.4.0, esquery@npm:^1.4.2, esquery@npm:^1.5.0": +"esquery@npm:^1.4.0, esquery@npm:^1.5.0": version: 1.5.0 resolution: "esquery@npm:1.5.0" dependencies: @@ -5839,12 +5819,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: 10c0/58473e8a82794d01b38e5e435f6feaf648e3f36fdb3a56e98f417f4efae71ad1c0d4ebd8a9a7c50c3ad085820a93fc7494ad721e0e4ebc1da3573f4e1c3c7cdd + flat-cache: "npm:^4.0.0" + checksum: 10c0/9e2b5938b1cd9b6d7e3612bdc533afd4ac17b2fc646569e9a8abbf2eb48e5eb8e316bc38815a3ef6a1b456f4107f0d0f055a614ca613e75db6bf9ff4d72c1638 languageName: node linkType: hard @@ -5895,14 +5875,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: 10c0/b76f611bd5f5d68f7ae632e3ae503e678d205cf97a17c6ab5b12f6ca61188b5f1f7464503efae6dc18683ed8f0b41460beb48ac4b9ac63fe6201296a91ba2f75 + keyv: "npm:^4.5.4" + checksum: 10c0/2c59d93e9faa2523e4fda6b4ada749bed432cfa28c8e251f33b25795e426a1c6dbada777afb1f74fcfff33934fdbdea921ee738fcc33e71adc9d6eca984a1cfc languageName: node linkType: hard @@ -6169,7 +6148,7 @@ __metadata: languageName: node linkType: hard -"globals@npm:^13.19.0, globals@npm:^13.24.0": +"globals@npm:^13.24.0": version: 13.24.0 resolution: "globals@npm:13.24.0" dependencies: @@ -7242,7 +7221,7 @@ __metadata: languageName: node linkType: hard -"keyv@npm:^4.5.3": +"keyv@npm:^4.5.4": version: 4.5.4 resolution: "keyv@npm:4.5.4" dependencies: @@ -7718,7 +7697,7 @@ __metadata: copy-dir: "npm:1.3.0" css-loader: "npm:7.1.2" emoji-toolkit: "npm:8.0.0" - eslint: "npm:8.57.0" + eslint: "npm:9.6.0" eslint-config-prettier: "npm:9.1.0" eslint-import-resolver-typescript: "npm:3.6.1" eslint-plugin-compat: "npm:5.0.0" @@ -8157,7 +8136,7 @@ __metadata: languageName: node linkType: hard -"minimatch@npm:^3.0.5, minimatch@npm:^3.1.1, minimatch@npm:^3.1.2": +"minimatch@npm:^3.1.1, minimatch@npm:^3.1.2": version: 3.1.2 resolution: "minimatch@npm:3.1.2" dependencies: @@ -9549,7 +9528,7 @@ __metadata: languageName: node linkType: hard -"rimraf@npm:3.0.2, rimraf@npm:^3.0.2": +"rimraf@npm:3.0.2": version: 3.0.2 resolution: "rimraf@npm:3.0.2" dependencies: From 47c54a321619066fdd8e2538a7e328177be2d920 Mon Sep 17 00:00:00 2001 From: kdev Date: Tue, 2 Jul 2024 11:45:35 +0200 Subject: [PATCH 2/7] =?UTF-8?q?=F0=9F=94=A7=20[eslint]=20migrate=20eslint?= =?UTF-8?q?=20config?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- build/build.ps1 | 2 +- build/build.sh | 5 +- eslint.config.cjs | 478 ++++++++++++++++++++++++++++++++++++++++++++++ package.json | 6 +- yarn.lock | 27 ++- 5 files changed, 512 insertions(+), 6 deletions(-) create mode 100644 eslint.config.cjs diff --git a/build/build.ps1 b/build/build.ps1 index 9df4b70805..65649b6d25 100644 --- a/build/build.ps1 +++ b/build/build.ps1 @@ -377,7 +377,7 @@ if ($_RUN_STEP_ESLINT) { $start_time = now print_start_message "[🚨] run ESLint" enable_debugging - yarn eslint ./docs/.vuepress/ ./static/ ./prebuild/ ./build/ ./src/ ./scripts/ ./typings/ --ext .js, .ts, .vue, .md --no-error-on-unmatched-pattern --exit-on-fatal-error --report-unused-disable-directives --cache --cache-strategy content --fix + yarn eslint ./docs/.vuepress/ ./static/ ./prebuild/ ./build/ ./src/ ./scripts/ ./typings/ --no-error-on-unmatched-pattern --exit-on-fatal-error --report-unused-disable-directives --cache --cache-strategy content --fix if (!$?) { exit 1 } diff --git a/build/build.sh b/build/build.sh index 7f05590be7..7970e938a8 100755 --- a/build/build.sh +++ b/build/build.sh @@ -260,7 +260,7 @@ if [[ $_RUN_STEP_ENV = true ]]; then enable_debugging ref="$REF" BRANCH="dummy" - + if [[ $ref == "refs/heads/master" ]]; then BRANCH="stable" elif [[ $ref == "refs/heads/dev" ]]; then @@ -310,7 +310,6 @@ if [[ $_RUN_STEP_ESLINT = true ]]; then ./src/ \ ./scripts/ \ ./typings/ \ - --ext .js,.ts,.vue,.md \ --no-error-on-unmatched-pattern \ --exit-on-fatal-error \ --report-unused-disable-directives \ @@ -407,4 +406,4 @@ fi print_end_message "Total" "$total_start_time" -exit 0 \ No newline at end of file +exit 0 diff --git a/eslint.config.cjs b/eslint.config.cjs new file mode 100644 index 0000000000..57465f32c8 --- /dev/null +++ b/eslint.config.cjs @@ -0,0 +1,478 @@ +const { fixupConfigRules, fixupPluginRules } = require('@eslint/compat'); + +const typescriptEslint = require('@typescript-eslint/eslint-plugin'); +const _import = require('eslint-plugin-import'); +const jsdoc = require('eslint-plugin-jsdoc'); +const prettier = require('eslint-plugin-prettier'); +const tsdoc = require('eslint-plugin-tsdoc'); +const unicorn = require('eslint-plugin-unicorn'); +const regexp = require('eslint-plugin-regexp'); +const vue = require('eslint-plugin-vue'); +const globals = require('globals'); +const markdownlint = require('eslint-plugin-markdownlint'); +const parser = require('eslint-plugin-markdownlint/parser'); +const js = require('@eslint/js'); + +const { FlatCompat } = require('@eslint/eslintrc'); + +const compat = new FlatCompat({ + baseDirectory: __dirname, + recommendedConfig: js.configs.recommended, + allConfig: js.configs.all, +}); + +module.exports = [ + { + files: ['./src/**/*.+(js|ts|vue|md)'], + ignores: [ + 'node_modules/*', + '*/dist/*', + '**/*.user.js', + 'build/**/*.js', + 'docs/.vuepress/*.js', + 'docs/.vuepress/.cache', + 'docs/.vuepress/.temp', + 'docs/.vuepress/dist', + 'docs/.vuepress/node_modules', + 'docs/.vuepress/components/.temp', + 'prebuild/*.js', + 'scripts/**/*.js', + 'src/userscript.js', + 'src/config.js', + 'static/fontawesome_*.min.js', + 'static/missions/*', + 'static/releasenotes/*', + 'src/modules/support/*', + 'src/modules/renameFz/*', + ], + }, + ...fixupConfigRules( + compat.extends( + 'eslint:recommended', + 'plugin:@typescript-eslint/recommended', + 'plugin:compat/recommended', + 'plugin:import/typescript', + 'plugin:jsdoc/recommended', + 'plugin:regexp/recommended', + 'plugin:vue/essential', + 'prettier' + ) + ), + { + plugins: { + '@typescript-eslint': fixupPluginRules(typescriptEslint), + //compat, + 'import': fixupPluginRules(_import), + 'jsdoc': fixupPluginRules(jsdoc), + prettier, + tsdoc, + unicorn, + 'regexp': fixupPluginRules(regexp), + 'vue': fixupPluginRules(vue), + }, + + languageOptions: { + globals: { + ...globals.browser, + ...globals.commonjs, + Atomics: 'readonly', + SharedArrayBuffer: 'readonly', + process: 'readonly', + __dirname: 'readonly', + PREFIX: 'readonly', + MODE: 'readonly', + VERSION: 'readonly', + BRANCH: 'readonly', + LOADSCRIPT_EVENT_START: 'readonly', + LOADSCRIPT_EVENT_END: 'readonly', + }, + + ecmaVersion: 2018, + sourceType: 'module', + + parserOptions: { + parser: '@typescript-eslint/parser', + + project: [ + './tsconfig.json', + './build/tsconfig.json', + './docs/.vuepress/tsconfig.json', + './prebuild/tsconfig.json', + './scripts/tsconfig.json', + './src/tsconfig.userscript.json', + ], + + extraFileExtensions: ['.vue'], + }, + }, + + settings: { + jsdoc: { + mode: 'typescript', + }, + }, + + rules: { + '@typescript-eslint/array-type': ['error'], + '@typescript-eslint/consistent-indexed-object-style': [ + 'error', + 'record', + ], + '@typescript-eslint/consistent-type-definitions': [ + 'error', + 'interface', + ], + '@typescript-eslint/consistent-type-imports': ['error'], + '@typescript-eslint/method-signature-style': ['error', 'method'], + '@typescript-eslint/no-duplicate-enum-values': ['off'], + '@typescript-eslint/sort-type-constituents': ['error'], + 'array-callback-return': ['error'], + 'block-scoped-var': 'warn', + 'curly': ['error', 'multi-or-nest', 'consistent'], + 'default-case-last': 'error', + 'guard-for-in': 'error', + + 'import/order': [ + 'error', + { + 'groups': [ + ['builtin'], + ['external'], + ['internal'], + ['parent', 'sibling'], + ['index'], + ['object'], + ['type'], + ], + + 'pathGroups': [ + { + pattern: 'vue', + group: 'builtin', + position: 'before', + }, + ], + + 'pathGroupsExcludedImportTypes': ['vue'], + 'newlines-between': 'always', + }, + ], + + 'jsdoc/check-syntax': ['error'], + + 'jsdoc/check-tag-names': [ + 'error', + { + definedTags: ['alpha', 'beta'], + }, + ], + + 'jsdoc/no-types': ['error'], + 'jsdoc/require-asterisk-prefix': ['error'], + 'jsdoc/require-description': ['error'], + 'jsdoc/require-description-complete-sentence': ['error'], + 'jsdoc/require-hyphen-before-param-description': ['error'], + 'jsdoc/require-param-type': ['off'], + 'jsdoc/require-returns-type': ['off'], + 'no-constant-binary-expression': 'error', + + 'no-duplicate-imports': [ + 'error', + { + includeExports: true, + }, + ], + + 'no-eval': 'error', + 'no-floating-decimal': 'warn', + + 'no-implicit-coercion': [ + 'error', + { + allow: ['!!'], + }, + ], + + 'no-loop-func': 'error', + 'no-loss-of-precision': 'error', + 'no-multi-str': 'warn', + 'no-new-native-nonconstructor': 'error', + 'no-param-reassign': 'error', + 'no-prototype-builtins': 'off', + 'no-self-compare': 'error', + 'no-sequences': 'error', + 'no-template-curly-in-string': 'warn', + 'no-unmodified-loop-condition': 'error', + 'no-unreachable-loop': 'error', + 'no-unsafe-optional-chaining': 'error', + 'no-unused-expressions': 'error', + 'no-useless-concat': 'warn', + 'no-useless-rename': 'error', + 'no-useless-return': 'warn', + 'no-var': 'error', + + 'object-shorthand': [ + 'error', + 'always', + { + avoidQuotes: true, + }, + ], + + 'prefer-arrow-callback': 'error', + 'prefer-const': 'error', + + 'prefer-regex-literals': [ + 'error', + { + disallowRedundantWrapping: true, + }, + ], + + 'prefer-rest-params': 'error', + 'prefer-spread': 'error', + 'prefer-template': 'error', + 'prettier/prettier': 'error', + 'regexp/hexadecimal-escape': ['error', 'never'], + 'regexp/letter-case': ['error'], + 'regexp/no-control-character': ['error'], + 'regexp/no-empty-character-class': ['error'], + 'regexp/no-extra-lookaround-assertions': ['error'], + 'regexp/no-misleading-unicode-character': ['error'], + 'regexp/no-missing-g-flag': ['error'], + 'regexp/no-octal': ['error'], + 'regexp/no-standalone-backslash': ['error'], + 'regexp/prefer-escape-replacement-dollar-char': ['error'], + 'regexp/prefer-lookaround': ['error'], + 'regexp/prefer-named-backreference': ['error'], + 'regexp/prefer-named-replacement': ['error'], + 'regexp/prefer-result-array-groups': ['error'], + 'regexp/prefer-regexp-test': ['error'], + 'regexp/require-unicode-regexp': ['error'], + 'regexp/sort-alternatives': ['error'], + 'regexp/sort-character-class-elements': ['error'], + 'regexp/unicode-escape': ['error', 'unicodeEscape'], + 'regexp/use-ignore-case': ['error'], + 'semi': ['error', 'always'], + + 'sort-imports': [ + 'warn', + { + allowSeparatedGroups: true, + ignoreCase: true, + memberSyntaxSortOrder: [ + 'none', + 'all', + 'single', + 'multiple', + ], + }, + ], + + 'template-curly-spacing': 'error', + 'tsdoc/syntax': 'warn', + 'unicorn/consistent-destructuring': ['error'], + 'unicorn/no-array-push-push': ['error'], + 'unicorn/no-for-loop': ['error'], + 'unicorn/no-unnecessary-await': ['error'], + 'unicorn/no-unreadable-iife': ['error'], + 'unicorn/no-useless-switch-case': ['error'], + 'unicorn/no-zero-fractions': ['error'], + 'unicorn/numeric-separators-style': ['error'], + 'unicorn/prefer-add-event-listener': ['error'], + 'unicorn/prefer-array-index-of': ['error'], + + 'unicorn/prefer-array-find': [ + 'error', + { + checkFromLast: true, + }, + ], + + 'unicorn/prefer-array-flat': ['error'], + 'unicorn/prefer-array-flat-map': ['error'], + 'unicorn/prefer-array-some': ['error'], + 'unicorn/prefer-at': ['error'], + 'unicorn/prefer-dom-node-append': ['error'], + 'unicorn/prefer-dom-node-remove': ['error'], + 'unicorn/prefer-dom-node-text-content': ['error'], + 'unicorn/prefer-keyboard-event-key': ['error'], + 'unicorn/prefer-modern-dom-apis': ['error'], + 'unicorn/prefer-modern-math-apis': ['error'], + 'unicorn/prefer-native-coercion-functions': ['error'], + 'unicorn/prefer-negative-index': ['error'], + 'unicorn/prefer-object-from-entries': ['error'], + 'unicorn/prefer-query-selector': ['off'], + 'unicorn/switch-case-braces': ['error', 'avoid'], + 'vue/no-unused-refs': 'warn', + 'vue/prefer-true-attribute-shorthand': 'warn', + + 'yoda': [ + 'error', + 'never', + { + exceptRange: true, + }, + ], + }, + }, + { + files: ['./src/**/*'], + + rules: { + 'no-console': 'warn', + }, + }, + { + files: ['**/*.md'], + + plugins: { + markdownlint, + }, + + languageOptions: { + parser: parser, + }, + + rules: { + 'prettier/prettier': ['off'], + 'markdownlint/md001': ['error'], + + 'markdownlint/md003': [ + 'error', + { + style: 'atx', + }, + ], + + 'markdownlint/md004': [ + 'error', + { + style: 'asterisk', + }, + ], + + 'markdownlint/md005': ['error'], + + 'markdownlint/md007': [ + 'error', + { + indent: 4, + }, + ], + + 'markdownlint/md009': ['error'], + + 'markdownlint/md010': [ + 'error', + { + spaces_per_tab: 4, + }, + ], + + 'markdownlint/md011': ['error'], + 'markdownlint/md012': ['error'], + 'markdownlint/md014': ['error'], + 'markdownlint/md018': ['error'], + 'markdownlint/md019': ['error'], + 'markdownlint/md020': ['error'], + 'markdownlint/md021': ['error'], + + 'markdownlint/md022': [ + 'error', + { + lines_above: 1, + lines_below: 0, + }, + ], + + 'markdownlint/md023': ['error'], + + 'markdownlint/md024': [ + 'error', + { + siblings_only: true, + }, + ], + + 'markdownlint/md025': ['off'], + 'markdownlint/md026': ['error'], + 'markdownlint/md027': ['error'], + 'markdownlint/md028': ['error'], + + 'markdownlint/md029': [ + 'error', + { + style: 'ordered', + }, + ], + + 'markdownlint/md030': ['error'], + 'markdownlint/md031': ['error'], + 'markdownlint/md032': ['error'], + + 'markdownlint/md033': [ + 'error', + { + allowed_elements: ['discord', 'a'], + }, + ], + + 'markdownlint/md034': ['error'], + + 'markdownlint/md035': [ + 'error', + { + style: '***', + }, + ], + + 'markdownlint/md036': ['error'], + 'markdownlint/md037': ['error'], + 'markdownlint/md038': ['error'], + 'markdownlint/md039': ['error'], + 'markdownlint/md040': ['error'], + 'markdownlint/md041': ['off'], + 'markdownlint/md042': ['error'], + + 'markdownlint/md044': [ + 'error', + { + names: ['LSSM'], + }, + ], + + 'markdownlint/md045': ['error'], + + 'markdownlint/md046': [ + 'error', + { + style: 'fenced', + }, + ], + + 'markdownlint/md047': ['error'], + + 'markdownlint/md048': [ + 'error', + { + style: 'backtick', + }, + ], + + 'markdownlint/md049': [ + 'error', + { + style: 'asterisk', + }, + ], + + 'markdownlint/md050': [ + 'error', + { + style: 'asterisk', + }, + ], + }, + }, +]; diff --git a/package.json b/package.json index 66bd8bc3a6..793c974304 100644 --- a/package.json +++ b/package.json @@ -50,6 +50,9 @@ "vue-slim-tabs": "0.4.0" }, "devDependencies": { + "@eslint/compat": "1.0.3", + "@eslint/eslintrc": "3.1.0", + "@eslint/js": "9.4.0", "@types/he": "1.2.3", "@types/i18n-js": "3.8.9", "@types/jquery": "3.5.30", @@ -83,6 +86,7 @@ "eslint-plugin-tsdoc": "0.3.0", "eslint-plugin-unicorn": "54.0.0", "eslint-plugin-vue": "9.26.0", + "globals": "15.3.0", "html-loader": "5.0.0", "husky": "9.0.11", "js-yaml": "4.1.0", @@ -128,4 +132,4 @@ "author": "The LSSM-Team: Sanni, Jan (jxn_30), Ron31, Crazycake", "description": "LSSM V4 is a Script-Collection for Leitstellenspiel, Missionchief, Meldkamerspel and its other language versions." } -} \ No newline at end of file +} diff --git a/yarn.lock b/yarn.lock index 46b54c7de3..8033f26449 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1573,6 +1573,13 @@ __metadata: languageName: node linkType: hard +"@eslint/compat@npm:1.0.3": + version: 1.0.3 + resolution: "@eslint/compat@npm:1.0.3" + checksum: 10c0/7d8392949c07e518dc487fb745379b08fbc22680039d52f1f370472154fb3e98197e21c4b692479b965739d7ec0c84523b376b43e03360ffbfde65b628788acf + languageName: node + linkType: hard + "@eslint/config-array@npm:^0.17.0": version: 0.17.0 resolution: "@eslint/config-array@npm:0.17.0" @@ -1584,7 +1591,7 @@ __metadata: languageName: node linkType: hard -"@eslint/eslintrc@npm:^3.0.2, @eslint/eslintrc@npm:^3.1.0": +"@eslint/eslintrc@npm:3.1.0, @eslint/eslintrc@npm:^3.0.2, @eslint/eslintrc@npm:^3.1.0": version: 3.1.0 resolution: "@eslint/eslintrc@npm:3.1.0" dependencies: @@ -1601,6 +1608,13 @@ __metadata: languageName: node linkType: hard +"@eslint/js@npm:9.4.0": + version: 9.4.0 + resolution: "@eslint/js@npm:9.4.0" + checksum: 10c0/7ffc508d3e9cd496cab7f08c5ba8f97851c8adaea3ebff8804b1c3b4662aa7aac7e9c3b597f7e47fdc29319a107bcf892865070a6b113c2e4d19f8fa1f99f569 + languageName: node + linkType: hard + "@eslint/js@npm:9.6.0": version: 9.6.0 resolution: "@eslint/js@npm:9.6.0" @@ -6141,6 +6155,13 @@ __metadata: languageName: node linkType: hard +"globals@npm:15.3.0": + version: 15.3.0 + resolution: "globals@npm:15.3.0" + checksum: 10c0/edbef1c528185d02636ed6d72a1688168b922d6176031904386214f8b59d893f1d0a28da519b95665f557d366b17ea1affb9f433ea451e7372e2808fb31079d7 + languageName: node + linkType: hard + "globals@npm:^11.1.0": version: 11.12.0 resolution: "globals@npm:11.12.0" @@ -7667,6 +7688,9 @@ __metadata: version: 0.0.0-use.local resolution: "lss-manager-v4@workspace:." dependencies: + "@eslint/compat": "npm:1.0.3" + "@eslint/eslintrc": "npm:3.1.0" + "@eslint/js": "npm:9.4.0" "@fortawesome/fontawesome-free": "npm:6.5.2" "@fortawesome/fontawesome-svg-core": "npm:6.5.2" "@fortawesome/free-regular-svg-icons": "npm:6.5.2" @@ -7709,6 +7733,7 @@ __metadata: eslint-plugin-tsdoc: "npm:0.3.0" eslint-plugin-unicorn: "npm:54.0.0" eslint-plugin-vue: "npm:9.26.0" + globals: "npm:15.3.0" he: "npm:1.2.0" highcharts: "npm:11.4.3" highcharts-vue: "npm:1.4.3" From 3e0983048ff1be3044f3e243654254a6c846401d Mon Sep 17 00:00:00 2001 From: kdev Date: Wed, 3 Jul 2024 17:33:19 +0200 Subject: [PATCH 3/7] =?UTF-8?q?=F0=9F=94=A7=20[eslint]=20remove=20eslintig?= =?UTF-8?q?nore?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .eslintignore | 21 --------------------- 1 file changed, 21 deletions(-) delete mode 100644 .eslintignore diff --git a/.eslintignore b/.eslintignore deleted file mode 100644 index 943f80f503..0000000000 --- a/.eslintignore +++ /dev/null @@ -1,21 +0,0 @@ -node_modules/* -*/dist/* -*.user.js -build/**/*.js -docs/.vuepress/*.js -docs/.vuepress/.cache -docs/.vuepress/.temp -docs/.vuepress/dist -docs/.vuepress/node_modules -docs/.vuepress/components/.temp -prebuild/*.js -scripts/**/*.js -src/userscript.js -src/config.js - -static/fontawesome_*.min.js -static/missions/* -static/releasenotes/* - -src/modules/support/* -src/modules/renameFz/* From c85c5828db7d573c9a4bc6157420e103b7fd9ffe Mon Sep 17 00:00:00 2001 From: kdev Date: Wed, 3 Jul 2024 17:36:38 +0200 Subject: [PATCH 4/7] =?UTF-8?q?=F0=9F=91=B7=20[workflows/build]=20remove?= =?UTF-8?q?=20unknown=20cli=20argument?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/build.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 0a738402d9..a2ed5d0fa3 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -146,7 +146,6 @@ jobs: ./src/ \ ./scripts/ \ ./typings/ \ - --ext .js,.ts,.vue,.md \ --no-error-on-unmatched-pattern \ --exit-on-fatal-error \ --report-unused-disable-directives \ From 21798eaadb47310525b48646fcdc20da800fbbbc Mon Sep 17 00:00:00 2001 From: kdev Date: Wed, 3 Jul 2024 18:00:01 +0200 Subject: [PATCH 5/7] =?UTF-8?q?=F0=9F=9A=A8=20[modules/support]=20fix=20li?= =?UTF-8?q?nter=20warnings?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/modules/support/components/chat.vue | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/src/modules/support/components/chat.vue b/src/modules/support/components/chat.vue index 47e5d83767..d7f6e8ad4d 100644 --- a/src/modules/support/components/chat.vue +++ b/src/modules/support/components/chat.vue @@ -12,15 +12,11 @@ :class="message.self ? 'pull-right' : 'pull-left'" > User Avatar @@ -73,8 +69,9 @@