chore(tooling): add 15 missing direct ESLint deps + Cursor settings cleanup

Surfaced during WS-3 1c-prep follow-up: Cursor's ESLint extension uses
strict module resolution and crashed on every plugin in the
@antfu/eslint-config-vue extends-chain that was only resolvable via
pnpm-hoisting in terminal.

Direct deps added (versions match what was already in pnpm store —
zero version shifts):
- 12 unscoped ESLint plugins (eslint-plugin-{antfu,es-x,html,i,jest,
  jsdoc,jsonc,markdown,n,no-only-tests,unused-imports,yml,
  eslint-comments})
- vue-eslint-parser
- @antfu/eslint-config-basic + @antfu/eslint-config-ts (extends targets)
- @stylistic/eslint-plugin-js + @stylistic/eslint-plugin-ts

.vscode/settings.json: removed redundant root-level
editor.defaultFormatter (per-language overrides do the job).

ESLint extension now activates correctly, server runs, save-on-format
works for TS/Vue files. Verified via smoke test: double quote in
useImpersonationStore.ts:1 was auto-corrected to single quote on Cmd+S.

Note: package.json declares some deprecated dependencies that pnpm
warns about (@antfu/eslint-config-vue@0.43.1, eslint@8.57.1,
eslint-plugin-i@2.28.1, eslint-plugin-markdown@3.0.1). Those are
pre-existing — not introduced here. Migration to ESLint v9 + flat
config + @antfu/eslint-config (modern) is a separate workstream.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
2026-04-30 20:28:44 +02:00
parent a269ca6836
commit 436980632a
3 changed files with 117 additions and 31 deletions

View File

@@ -63,6 +63,8 @@
"zod": "3"
},
"devDependencies": {
"@antfu/eslint-config-basic": "0.43.1",
"@antfu/eslint-config-ts": "0.43.1",
"@antfu/eslint-config-vue": "0.43.1",
"@antfu/utils": "0.7.10",
"@fullcalendar/core": "6.1.19",
@@ -79,6 +81,8 @@
"@iconify/utils": "2.3.0",
"@iconify/vue": "4.1.2",
"@intlify/unplugin-vue-i18n": "11.0.1",
"@stylistic/eslint-plugin-js": "0.0.4",
"@stylistic/eslint-plugin-ts": "0.0.4",
"@stylistic/stylelint-config": "1.0.1",
"@stylistic/stylelint-plugin": "2.1.3",
"@testing-library/vue": "^8.1.0",
@@ -101,13 +105,26 @@
"eslint": "8.57.1",
"eslint-config-airbnb-base": "15.0.0",
"eslint-import-resolver-typescript": "3.10.1",
"eslint-plugin-antfu": "0.43.1",
"eslint-plugin-case-police": "0.6.1",
"eslint-plugin-es-x": "7.8.0",
"eslint-plugin-eslint-comments": "3.2.0",
"eslint-plugin-html": "7.1.0",
"eslint-plugin-i": "2.28.1",
"eslint-plugin-import": "2.32.0",
"eslint-plugin-jest": "27.9.0",
"eslint-plugin-jsdoc": "46.10.1",
"eslint-plugin-jsonc": "2.21.0",
"eslint-plugin-markdown": "3.0.1",
"eslint-plugin-n": "16.6.2",
"eslint-plugin-no-only-tests": "3.3.0",
"eslint-plugin-promise": "6.6.0",
"eslint-plugin-regex": "1.10.0",
"eslint-plugin-sonarjs": "0.24.0",
"eslint-plugin-unicorn": "51.0.1",
"eslint-plugin-unused-imports": "3.2.0",
"eslint-plugin-vue": "9.33.0",
"eslint-plugin-yml": "1.19.0",
"happy-dom": "^20.9.0",
"msw": "2.6.8",
"postcss-html": "1.8.0",
@@ -130,6 +147,7 @@
"vite-plugin-vuetify": "2.1.2",
"vite-svg-loader": "5.1.0",
"vitest": "^4.1.5",
"vue-eslint-parser": "9.4.3",
"vue-shepherd": "3.0.0",
"vue-tsc": "3.1.2"
},