diff --git a/.vscode/tasks.json b/.vscode/tasks.json index e7d9bf0..653e350 100644 --- a/.vscode/tasks.json +++ b/.vscode/tasks.json @@ -46,6 +46,21 @@ "problemMatcher": [], "detail": "Lint the Vue 3 Vite project" }, + { + "label": "Fix lint issues in AAS Hub frontend", + "type": "shell", + "command": "yarn", + "args": ["lint:fix"], + "options": { + "cwd": "${workspaceFolder}/frontend/aashub" + }, + "group": { + "kind": "test", + "isDefault": false + }, + "problemMatcher": [], + "detail": "Fix lint issues in the Vue 3 Vite project" + }, { "label": "Check code formatting", "type": "shell", diff --git a/frontend/aashub/eslint.config.mjs b/frontend/aashub/eslint.config.mjs index 3228c3f..7dcd687 100644 --- a/frontend/aashub/eslint.config.mjs +++ b/frontend/aashub/eslint.config.mjs @@ -1,50 +1,76 @@ -import { FlatCompat } from '@eslint/eslintrc'; -import ESLint from '@eslint/js'; -import Oxlint from 'eslint-plugin-oxlint'; -import Vue from 'eslint-plugin-vue'; -import globals from 'globals'; -import { dirname } from 'node:path'; -import { fileURLToPath } from 'node:url'; - -const __filename = fileURLToPath(import.meta.url); -const __dirname = dirname(__filename); -const compat = new FlatCompat({ baseDirectory: __dirname }); +import js from '@eslint/js'; +import pluginPromise from 'eslint-plugin-promise'; +import simpleImportSort from 'eslint-plugin-simple-import-sort'; +import vue from 'eslint-plugin-vue'; +import ts from 'typescript-eslint'; export default [ { ignores: ['{dist,public}/**/*'], }, - ESLint.configs.recommended, - ...Vue.configs['flat/recommended'], - ...compat.extends('@vue/eslint-config-typescript/recommended'), - Oxlint.configs['flat/recommended'], - ...compat.extends('@vue/eslint-config-prettier/skip-formatting'), + + { + languageOptions: { + ecmaVersion: 'latest', + }, + }, + + // js + js.configs.recommended, + + // ts + ...ts.configs.recommended, { - files: ['**/*.{js,mjs,cjs,jsx,vue,ts,mts,cts,tsx}'], - linterOptions: { - reportUnusedDisableDirectives: true, + rules: { + '@typescript-eslint/no-explicit-any': 'warn', + '@typescript-eslint/no-unused-expressions': ['error', { allowTernary: true }], }, + }, + + // vue + ...vue.configs['flat/recommended'], + { + // files: ['*.vue', '**/*.vue'], languageOptions: { - globals: { - ...globals.node, - ...globals.browser, - ...globals.es2021, + parserOptions: { + parser: ts.parser, }, }, - plugins: {}, + }, + { rules: { - '@typescript-eslint/no-explicit-any': ['warn', { ignoreRestArgs: true }], - '@typescript-eslint/ban-types': [ - 'warn', + 'vue/multi-word-component-names': 'off', + 'vue/no-unused-vars': ['error', { ignorePattern: '^_' }], + 'vue/max-attributes-per-line': ['error', { singleline: 5 }], + }, + }, + + // Sort imports + { + plugins: { + 'simple-import-sort': simpleImportSort, + }, + rules: { + 'simple-import-sort/imports': [ + 'error', { - types: { - '{}': { - message: 'Consider using a more specific type instead of `{}`.', - }, - }, - extendDefaults: true, + groups: [ + [ + '^\\u0000', // all side effects (0 at start) + '^[^/\\.].*\u0000$', // external types (0 at end) + '^\\..*\u0000$', // internal types (0 at end) + '^@?\\w', // Starts with @ + '^[^.]', // any + '^\\.', // local + ], + ], }, ], + 'simple-import-sort/exports': 'error', + '@typescript-eslint/no-explicit-any': ['warn', { ignoreRestArgs: true }], }, }, + + // Promise + pluginPromise.configs['flat/recommended'], ]; diff --git a/frontend/aashub/package.json b/frontend/aashub/package.json index d5b4e1c..15f22be 100644 --- a/frontend/aashub/package.json +++ b/frontend/aashub/package.json @@ -16,14 +16,16 @@ }, "devDependencies": { "@babel/types": "^7.24.7", - "@eslint/eslintrc": "^3.1.0", "@eslint/js": "^9.8.0", + "@types/eslint__js": "^8.42.3", "@types/node": "^22.1.0", "@vitejs/plugin-vue": "^5.0.5", "@vue/eslint-config-prettier": "^9.0.0", - "@vue/eslint-config-typescript": "^13.0.0", + "typescript-eslint": "^8.0.0", + "@vue/tsconfig": "^0.5.1", "eslint": "^9.8.0", - "eslint-plugin-oxlint": "^0.5.0", + "eslint-plugin-promise": "^7.0.0", + "eslint-plugin-simple-import-sort": "^12.1.1", "eslint-plugin-vue": "^9.27.0", "pinia": "^2.2.1", "globals": "^15.9.0", diff --git a/frontend/aashub/src/main.ts b/frontend/aashub/src/main.ts index 94f4b15..437f7d5 100644 --- a/frontend/aashub/src/main.ts +++ b/frontend/aashub/src/main.ts @@ -5,14 +5,12 @@ */ // Plugins +// Composables +import { createApp } from 'vue'; import { registerPlugins } from '@/plugins'; - // Components import App from './App.vue'; -// Composables -import { createApp } from 'vue'; - const app = createApp(App); registerPlugins(app); diff --git a/frontend/aashub/src/plugins/index.ts b/frontend/aashub/src/plugins/index.ts index 3f68b38..0da7bfe 100644 --- a/frontend/aashub/src/plugins/index.ts +++ b/frontend/aashub/src/plugins/index.ts @@ -5,12 +5,11 @@ */ // Plugins -import vuetify from './vuetify'; -import router from '../router'; -import pinia from '../stores'; - // Types import type { App } from 'vue'; +import router from '../router'; +import pinia from '../stores'; +import vuetify from './vuetify'; export function registerPlugins(app: App) { app.use(vuetify).use(router).use(pinia); diff --git a/frontend/aashub/src/plugins/vuetify.ts b/frontend/aashub/src/plugins/vuetify.ts index b88d0fb..86d4024 100644 --- a/frontend/aashub/src/plugins/vuetify.ts +++ b/frontend/aashub/src/plugins/vuetify.ts @@ -7,7 +7,6 @@ // Styles import '@mdi/font/css/materialdesignicons.css'; import 'vuetify/styles'; - // Composables import { createVuetify } from 'vuetify'; diff --git a/frontend/aashub/src/router/index.ts b/frontend/aashub/src/router/index.ts index 2e1f450..71e19cb 100644 --- a/frontend/aashub/src/router/index.ts +++ b/frontend/aashub/src/router/index.ts @@ -6,7 +6,6 @@ // Composables import { createRouter, createWebHistory } from 'vue-router'; - // Views import HelloWorld from '@/pages/HelloWorld.vue'; diff --git a/frontend/aashub/src/vite-env.d.ts b/frontend/aashub/src/vite-env.d.ts index af36df3..1bf02d1 100644 --- a/frontend/aashub/src/vite-env.d.ts +++ b/frontend/aashub/src/vite-env.d.ts @@ -2,6 +2,6 @@ declare module '*.vue' { import type { DefineComponent } from 'vue'; - const component: DefineComponent<{}, {}, any>; + const component: DefineComponent; export default component; } diff --git a/frontend/aashub/vite.config.mts b/frontend/aashub/vite.config.mts index f92bae9..5d1fe9a 100644 --- a/frontend/aashub/vite.config.mts +++ b/frontend/aashub/vite.config.mts @@ -1,13 +1,12 @@ // Plugins -import Components from 'unplugin-vue-components/vite'; import Vue from '@vitejs/plugin-vue'; -import eslintPlugin from 'vite-plugin-eslint'; -import Vuetify, { transformAssetUrls } from 'vite-plugin-vuetify'; +import { fileURLToPath, URL } from 'node:url'; import ViteFonts from 'unplugin-fonts/vite'; - +import Components from 'unplugin-vue-components/vite'; // Utilities import { defineConfig } from 'vite'; -import { fileURLToPath, URL } from 'node:url'; +import eslintPlugin from 'vite-plugin-eslint'; +import Vuetify, { transformAssetUrls } from 'vite-plugin-vuetify'; // https://vitejs.dev/config/ export default defineConfig({ diff --git a/frontend/aashub/yarn.lock b/frontend/aashub/yarn.lock index a681719..5768d35 100644 --- a/frontend/aashub/yarn.lock +++ b/frontend/aashub/yarn.lock @@ -337,6 +337,14 @@ resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.20.0.tgz#601fffee719a1e8447f908aca97864eec23b2784" integrity sha512-aJ1EJSuTdGnM6qbVC4B5DSmozPTqIag9fSzXRNNo+humQLG89XpPgdt16Ia56ORD7s+H8Pmyx44uczDQ0yDzpg== +"@types/eslint@*": + version "9.6.0" + resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-9.6.0.tgz#51d4fe4d0316da9e9f2c80884f2c20ed5fb022ff" + integrity sha512-gi6WQJ7cHRgZxtkQEoyHMppPjq9Kxo5Tjn2prSKDSmZrCz8TZ3jSRCeTJm+WoM+oB0WG37bRqLzaaU3q7JypGg== + dependencies: + "@types/estree" "*" + "@types/json-schema" "*" + "@types/eslint@^8.4.5": version "8.56.11" resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-8.56.11.tgz#e2ff61510a3b9454b3329fe7731e3b4c6f780041" @@ -345,6 +353,13 @@ "@types/estree" "*" "@types/json-schema" "*" +"@types/eslint__js@^8.42.3": + version "8.42.3" + resolved "https://registry.yarnpkg.com/@types/eslint__js/-/eslint__js-8.42.3.tgz#d1fa13e5c1be63a10b4e3afe992779f81c1179a0" + integrity sha512-alfG737uhmPdnvkrLdZLcEKJ/B8s9Y4hrZ+YAdzUeoArBlSUERA2E87ROfOaS4jd/C45fzOoZzidLc1IPwLqOw== + dependencies: + "@types/eslint" "*" + "@types/estree@*", "@types/estree@1.0.5", "@types/estree@^1.0.0": version "1.0.5" resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.5.tgz#a6ce3e556e00fd9895dd872dd172ad0d4bd687f4" @@ -362,62 +377,62 @@ dependencies: undici-types "~6.13.0" -"@typescript-eslint/eslint-plugin@^7.1.1": - version "7.18.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.18.0.tgz#b16d3cf3ee76bf572fdf511e79c248bdec619ea3" - integrity sha512-94EQTWZ40mzBc42ATNIBimBEDltSJ9RQHCC8vc/PDbxi4k8dVwUAv4o98dk50M1zB+JGFxp43FP7f8+FP8R6Sw== +"@typescript-eslint/eslint-plugin@8.0.1": + version "8.0.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.0.1.tgz#5dbd1b498fdea83a16d292322d27d293ce156f94" + integrity sha512-5g3Y7GDFsJAnY4Yhvk8sZtFfV6YNF2caLzjrRPUBzewjPCaj0yokePB4LJSobyCzGMzjZZYFbwuzbfDHlimXbQ== dependencies: "@eslint-community/regexpp" "^4.10.0" - "@typescript-eslint/scope-manager" "7.18.0" - "@typescript-eslint/type-utils" "7.18.0" - "@typescript-eslint/utils" "7.18.0" - "@typescript-eslint/visitor-keys" "7.18.0" + "@typescript-eslint/scope-manager" "8.0.1" + "@typescript-eslint/type-utils" "8.0.1" + "@typescript-eslint/utils" "8.0.1" + "@typescript-eslint/visitor-keys" "8.0.1" graphemer "^1.4.0" ignore "^5.3.1" natural-compare "^1.4.0" ts-api-utils "^1.3.0" -"@typescript-eslint/parser@^7.1.1": - version "7.18.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-7.18.0.tgz#83928d0f1b7f4afa974098c64b5ce6f9051f96a0" - integrity sha512-4Z+L8I2OqhZV8qA132M4wNL30ypZGYOQVBfMgxDH/K5UX0PNqTu1c6za9ST5r9+tavvHiTWmBnKzpCJ/GlVFtg== +"@typescript-eslint/parser@8.0.1": + version "8.0.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-8.0.1.tgz#eb0728147a3a79edf43dde84c797f117213bbfdb" + integrity sha512-5IgYJ9EO/12pOUwiBKFkpU7rS3IU21mtXzB81TNwq2xEybcmAZrE9qwDtsb5uQd9aVO9o0fdabFyAmKveXyujg== dependencies: - "@typescript-eslint/scope-manager" "7.18.0" - "@typescript-eslint/types" "7.18.0" - "@typescript-eslint/typescript-estree" "7.18.0" - "@typescript-eslint/visitor-keys" "7.18.0" + "@typescript-eslint/scope-manager" "8.0.1" + "@typescript-eslint/types" "8.0.1" + "@typescript-eslint/typescript-estree" "8.0.1" + "@typescript-eslint/visitor-keys" "8.0.1" debug "^4.3.4" -"@typescript-eslint/scope-manager@7.18.0": - version "7.18.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-7.18.0.tgz#c928e7a9fc2c0b3ed92ab3112c614d6bd9951c83" - integrity sha512-jjhdIE/FPF2B7Z1uzc6i3oWKbGcHb87Qw7AWj6jmEqNOfDFbJWtjt/XfwCpvNkpGWlcJaog5vTR+VV8+w9JflA== +"@typescript-eslint/scope-manager@8.0.1": + version "8.0.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-8.0.1.tgz#544259c29e1ebf65d30b6e99a9f420d98795a54e" + integrity sha512-NpixInP5dm7uukMiRyiHjRKkom5RIFA4dfiHvalanD2cF0CLUuQqxfg8PtEUo9yqJI2bBhF+pcSafqnG3UBnRQ== dependencies: - "@typescript-eslint/types" "7.18.0" - "@typescript-eslint/visitor-keys" "7.18.0" + "@typescript-eslint/types" "8.0.1" + "@typescript-eslint/visitor-keys" "8.0.1" -"@typescript-eslint/type-utils@7.18.0": - version "7.18.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-7.18.0.tgz#2165ffaee00b1fbbdd2d40aa85232dab6998f53b" - integrity sha512-XL0FJXuCLaDuX2sYqZUUSOJ2sG5/i1AAze+axqmLnSkNEVMVYLF+cbwlB2w8D1tinFuSikHmFta+P+HOofrLeA== +"@typescript-eslint/type-utils@8.0.1": + version "8.0.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-8.0.1.tgz#a613ee2dfeed4a9781300b5d326ec7cf946eed92" + integrity sha512-+/UT25MWvXeDX9YaHv1IS6KI1fiuTto43WprE7pgSMswHbn1Jm9GEM4Txp+X74ifOWV8emu2AWcbLhpJAvD5Ng== dependencies: - "@typescript-eslint/typescript-estree" "7.18.0" - "@typescript-eslint/utils" "7.18.0" + "@typescript-eslint/typescript-estree" "8.0.1" + "@typescript-eslint/utils" "8.0.1" debug "^4.3.4" ts-api-utils "^1.3.0" -"@typescript-eslint/types@7.18.0": - version "7.18.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-7.18.0.tgz#b90a57ccdea71797ffffa0321e744f379ec838c9" - integrity sha512-iZqi+Ds1y4EDYUtlOOC+aUmxnE9xS/yCigkjA7XpTKV6nCBd3Hp/PRGGmdwnfkV2ThMyYldP1wRpm/id99spTQ== +"@typescript-eslint/types@8.0.1": + version "8.0.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-8.0.1.tgz#333e2f4c158952dbc8181a4ddcc6e49898a28918" + integrity sha512-PpqTVT3yCA/bIgJ12czBuE3iBlM3g4inRSC5J0QOdQFAn07TYrYEQBBKgXH1lQpglup+Zy6c1fxuwTk4MTNKIw== -"@typescript-eslint/typescript-estree@7.18.0": - version "7.18.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-7.18.0.tgz#b5868d486c51ce8f312309ba79bdb9f331b37931" - integrity sha512-aP1v/BSPnnyhMHts8cf1qQ6Q1IFwwRvAQGRvBFkWlo3/lH29OXA3Pts+c10nxRxIBrDnoMqzhgdwVe5f2D6OzA== +"@typescript-eslint/typescript-estree@8.0.1": + version "8.0.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-8.0.1.tgz#64575ec7b77aedfe497acdfb2779ec942bb8d866" + integrity sha512-8V9hriRvZQXPWU3bbiUV4Epo7EvgM6RTs+sUmxp5G//dBGy402S7Fx0W0QkB2fb4obCF8SInoUzvTYtc3bkb5w== dependencies: - "@typescript-eslint/types" "7.18.0" - "@typescript-eslint/visitor-keys" "7.18.0" + "@typescript-eslint/types" "8.0.1" + "@typescript-eslint/visitor-keys" "8.0.1" debug "^4.3.4" globby "^11.1.0" is-glob "^4.0.3" @@ -425,22 +440,22 @@ semver "^7.6.0" ts-api-utils "^1.3.0" -"@typescript-eslint/utils@7.18.0": - version "7.18.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-7.18.0.tgz#bca01cde77f95fc6a8d5b0dbcbfb3d6ca4be451f" - integrity sha512-kK0/rNa2j74XuHVcoCZxdFBMF+aq/vH83CXAOHieC+2Gis4mF8jJXT5eAfyD3K0sAxtPuwxaIOIOvhwzVDt/kw== +"@typescript-eslint/utils@8.0.1": + version "8.0.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-8.0.1.tgz#b48e3320c4f9011f97d25e0588b8c143adc38d2a" + integrity sha512-CBFR0G0sCt0+fzfnKaciu9IBsKvEKYwN9UZ+eeogK1fYHg4Qxk1yf/wLQkLXlq8wbU2dFlgAesxt8Gi76E8RTA== dependencies: "@eslint-community/eslint-utils" "^4.4.0" - "@typescript-eslint/scope-manager" "7.18.0" - "@typescript-eslint/types" "7.18.0" - "@typescript-eslint/typescript-estree" "7.18.0" + "@typescript-eslint/scope-manager" "8.0.1" + "@typescript-eslint/types" "8.0.1" + "@typescript-eslint/typescript-estree" "8.0.1" -"@typescript-eslint/visitor-keys@7.18.0": - version "7.18.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-7.18.0.tgz#0564629b6124d67607378d0f0332a0495b25e7d7" - integrity sha512-cDF0/Gf81QpY3xYyJKDV14Zwdmid5+uuENhjH2EqFaF0ni+yAyq/LzMaIJdhNJXZI7uLzwIlA+V7oWoyn6Curg== +"@typescript-eslint/visitor-keys@8.0.1": + version "8.0.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-8.0.1.tgz#e5816803b4dad1de5e97f00df8dc15d0bcb49778" + integrity sha512-W5E+o0UfUcK5EgchLZsyVWqARmsM7v54/qEq6PY3YI5arkgmCzHiuk0zKSJJbm71V0xdRna4BGomkCTXz2/LkQ== dependencies: - "@typescript-eslint/types" "7.18.0" + "@typescript-eslint/types" "8.0.1" eslint-visitor-keys "^3.4.3" "@vitejs/plugin-vue@^5.0.5": @@ -532,15 +547,6 @@ eslint-config-prettier "^9.0.0" eslint-plugin-prettier "^5.0.0" -"@vue/eslint-config-typescript@^13.0.0": - version "13.0.0" - resolved "https://registry.yarnpkg.com/@vue/eslint-config-typescript/-/eslint-config-typescript-13.0.0.tgz#f5f3d986ace34a10f403921d5044831b89a1b679" - integrity sha512-MHh9SncG/sfqjVqjcuFLOLD6Ed4dRAis4HNt0dXASeAuLqIAx4YMB1/m2o4pUKK1vCt8fUvYG8KKX2Ot3BVZTg== - dependencies: - "@typescript-eslint/eslint-plugin" "^7.1.1" - "@typescript-eslint/parser" "^7.1.1" - vue-eslint-parser "^9.3.1" - "@vue/language-core@2.0.29": version "2.0.29" resolved "https://registry.yarnpkg.com/@vue/language-core/-/language-core-2.0.29.tgz#19462d786cd7a1c21dbe575b46970a57094e0357" @@ -593,6 +599,11 @@ resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.4.36.tgz#7551f41684966acb6a307152b49a8308e7f69203" integrity sha512-fdPLStwl1sDfYuUftBaUVn2pIrVFDASYerZSrlBvVBfylObPA1gtcWJHy5Ox8jLEJ524zBibss488Q3SZtU1uA== +"@vue/tsconfig@^0.5.1": + version "0.5.1" + resolved "https://registry.yarnpkg.com/@vue/tsconfig/-/tsconfig-0.5.1.tgz#3124ec16cc0c7e04165b88dc091e6b97782fffa9" + integrity sha512-VcZK7MvpjuTPx2w6blwnwZAu5/LgBUtejFOi3pPGQFXQN5Ela03FUtd2Qtg4yWGGissVL0dr6Ro1LfOFh+PCuQ== + "@vuetify/loader-shared@^2.0.3": version "2.0.3" resolved "https://registry.yarnpkg.com/@vuetify/loader-shared/-/loader-shared-2.0.3.tgz#11451c717e4a352ec311da52a79c857cd256c92f" @@ -829,13 +840,6 @@ eslint-config-prettier@^9.0.0: resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz#31af3d94578645966c082fcb71a5846d3c94867f" integrity sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw== -eslint-plugin-oxlint@^0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-oxlint/-/eslint-plugin-oxlint-0.5.0.tgz#744758aaad674face2c7bc7ef8b2917e88bb7899" - integrity sha512-DFPxJTUSe8XdvbOsvpAyzUVNmLHnqpNLQFAH2bJo+Mxkb59s50/EKn1nCukrzMAG34nq02Iu4D+0MuUr9oHWhw== - dependencies: - scule "^1.3.0" - eslint-plugin-prettier@^5.0.0: version "5.2.1" resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-5.2.1.tgz#d1c8f972d8f60e414c25465c163d16f209411f95" @@ -844,6 +848,16 @@ eslint-plugin-prettier@^5.0.0: prettier-linter-helpers "^1.0.0" synckit "^0.9.1" +eslint-plugin-promise@^7.0.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-promise/-/eslint-plugin-promise-7.1.0.tgz#06b3ad6d36b3c3ef3ec201c8a8d97049cf5dbb20" + integrity sha512-8trNmPxdAy3W620WKDpaS65NlM5yAumod6XeC4LOb+jxlkG4IVcp68c6dXY2ev+uT4U1PtG57YDV6EGAXN0GbQ== + +eslint-plugin-simple-import-sort@^12.1.1: + version "12.1.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-simple-import-sort/-/eslint-plugin-simple-import-sort-12.1.1.tgz#e64bfdaf91c5b98a298619aa634a9f7aa43b709e" + integrity sha512-6nuzu4xwQtE3332Uz0to+TxDQYRLTKRESSc2hefVT48Zc8JthmN23Gx9lnYhu0FtkRSL1oxny3kJ2aveVhmOVA== + eslint-plugin-vue@^9.27.0: version "9.27.0" resolved "https://registry.yarnpkg.com/eslint-plugin-vue/-/eslint-plugin-vue-9.27.0.tgz#c22dae704a03d9ecefa81364ff89f60ce0481f94" @@ -1501,11 +1515,6 @@ sass@1.77.8: immutable "^4.0.0" source-map-js ">=0.6.2 <2.0.0" -scule@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/scule/-/scule-1.3.0.tgz#6efbd22fd0bb801bdcc585c89266a7d2daa8fbd3" - integrity sha512-6FtHJEvt+pVMIB9IBY+IcCJ6Z5f1iQnytgyfKMhDKgmzYG+TeH/wx1y3l27rshSbLiSanrR9ffZDrEsmjlQF2g== - semver@^7.3.6, semver@^7.5.4, semver@^7.6.0: version "7.6.3" resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.3.tgz#980f7b5550bc175fb4dc09403085627f9eb33143" @@ -1599,6 +1608,15 @@ type-fest@^0.20.2: resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== +typescript-eslint@^8.0.0: + version "8.0.1" + resolved "https://registry.yarnpkg.com/typescript-eslint/-/typescript-eslint-8.0.1.tgz#e812ce16e9332c6c81cfa2f17aecf99b74473da7" + integrity sha512-V3Y+MdfhawxEjE16dWpb7/IOgeXnLwAEEkS7v8oDqNcR1oYlqWhGH/iHqHdKVdpWme1VPZ0SoywXAkCqawj2eQ== + dependencies: + "@typescript-eslint/eslint-plugin" "8.0.1" + "@typescript-eslint/parser" "8.0.1" + "@typescript-eslint/utils" "8.0.1" + typescript@^5.4.2: version "5.5.4" resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.5.4.tgz#d9852d6c82bad2d2eda4fd74a5762a8f5909e9ba" @@ -1704,7 +1722,7 @@ vue-demi@^0.14.10: resolved "https://registry.yarnpkg.com/vue-demi/-/vue-demi-0.14.10.tgz#afc78de3d6f9e11bf78c55e8510ee12814522f04" integrity sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg== -vue-eslint-parser@^9.3.1, vue-eslint-parser@^9.4.3: +vue-eslint-parser@^9.4.3: version "9.4.3" resolved "https://registry.yarnpkg.com/vue-eslint-parser/-/vue-eslint-parser-9.4.3.tgz#9b04b22c71401f1e8bca9be7c3e3416a4bde76a8" integrity sha512-2rYRLWlIpaiN8xbPiDyXZXRgLGOtWxERV7ND5fFAv5qo1D2N9Fu9MNajBNc6o13lZ+24DAWCkQCvj4klgmcITg==