chore(lint): remove unused ESLint plugins (#43761)

This commit is contained in:
Stephen Zhou
2026-10-09 12:44:03 +00:00
committed by GitHub
parent f39832b7bc
commit 1a817b9972
7 changed files with 4 additions and 261 deletions
-18
View File
@@ -7,7 +7,6 @@ import md from 'eslint-markdown'
import jsonc from 'eslint-plugin-jsonc'
import markdownPreferences from 'eslint-plugin-markdown-preferences'
import pnpm from 'eslint-plugin-pnpm'
import toml from 'eslint-plugin-toml'
import yml from 'eslint-plugin-yml'
import { defineConfig, globalIgnores } from 'eslint/config'
import dify from './web/plugins/eslint/index.js'
@@ -381,23 +380,6 @@ export default defineConfig([
],
},
},
{
files: ['**/*.toml'],
language: 'toml/toml',
plugins: {
toml,
},
rules: {
'no-irregular-whitespace': 'off',
'spaced-comment': 'off',
'toml/keys-order': 'error',
'toml/no-unreadable-number-separator': 'error',
'toml/precision-of-fractional-seconds': 'error',
'toml/precision-of-integer': 'error',
'toml/tables-order': 'error',
'toml/vue-custom-block/no-parsing-error': 'error',
},
},
{
files: ['**/*.md'],
language: 'markdown/gfm',
-16
View File
@@ -205,15 +205,10 @@ export const lintConfig = {
'@tanstack/eslint-plugin-query',
'eslint-plugin-antfu',
...(enableTailwindCanonicalClasses ? ['eslint-plugin-better-tailwindcss'] : []),
'eslint-plugin-command',
{
name: 'dify',
specifier: './web/plugins/eslint/index.js',
},
{
name: 'eslint-comments',
specifier: '@eslint-community/eslint-plugin-eslint-comments',
},
{
name: 'eslint-react',
specifier: '@eslint-react/eslint-plugin',
@@ -491,11 +486,6 @@ export const lintConfig = {
'dify/require-disable-directive-description': 'error',
'dify/require-i18n-namespace': 'error',
'dify/require-t-function-namespace': 'error',
'eslint-comments/no-aggregating-enable': 'error',
'eslint-comments/no-duplicate-disable': 'error',
'eslint-comments/no-unlimited-disable': 'error',
'eslint-comments/no-unused-enable': 'error',
'command/command': 'error',
'perfectionist/sort-exports': [
'error',
{
@@ -782,7 +772,6 @@ export const lintConfig = {
{
files: ['**/*.d.{ts,cts,mts}'],
rules: {
'eslint-comments/no-unlimited-disable': 'off',
'no-unused-vars': 'off',
},
},
@@ -1384,11 +1373,6 @@ export const lintConfig = {
'valid-typeof': 'error',
'vars-on-top': 'off',
yoda: 'off',
'eslint-comments/no-aggregating-enable': 'off',
'eslint-comments/no-duplicate-disable': 'off',
'eslint-comments/no-unlimited-disable': 'off',
'eslint-comments/no-unused-enable': 'off',
'command/command': 'off',
'perfectionist/sort-exports': 'off',
'perfectionist/sort-named-exports': 'off',
'perfectionist/sort-named-imports': 'off',
-4
View File
@@ -20,7 +20,6 @@
"lint:eslint:quiet": "eslint --quiet --concurrency=auto"
},
"devDependencies": {
"@eslint-community/eslint-plugin-eslint-comments": "catalog:",
"@eslint-react/eslint-plugin": "catalog:",
"@eslint/markdown": "catalog:",
"@iconify-json/heroicons": "catalog:",
@@ -36,7 +35,6 @@
"eslint-markdown": "catalog:",
"eslint-plugin-antfu": "catalog:",
"eslint-plugin-better-tailwindcss": "catalog:",
"eslint-plugin-command": "catalog:",
"eslint-plugin-jsdoc": "catalog:",
"eslint-plugin-jsonc": "catalog:",
"eslint-plugin-markdown-preferences": "catalog:",
@@ -46,8 +44,6 @@
"eslint-plugin-pnpm": "catalog:",
"eslint-plugin-regexp": "catalog:",
"eslint-plugin-storybook": "catalog:",
"eslint-plugin-toml": "catalog:",
"eslint-plugin-unicorn": "catalog:",
"eslint-plugin-yml": "catalog:",
"knip": "catalog:",
"typescript": "catalog:",
-215
View File
@@ -194,9 +194,6 @@ catalogs:
'@egoist/tailwindcss-icons':
specifier: 1.9.2
version: 1.9.2
'@eslint-community/eslint-plugin-eslint-comments':
specifier: 4.8.1
version: 4.8.1
'@eslint-react/eslint-plugin':
specifier: 5.24.10
version: 5.24.10
@@ -497,9 +494,6 @@ catalogs:
eslint-plugin-better-tailwindcss:
specifier: 4.9.0
version: 4.9.0
eslint-plugin-command:
specifier: 4.0.0
version: 4.0.0
eslint-plugin-jsdoc:
specifier: 65.2.1
version: 65.2.1
@@ -527,12 +521,6 @@ catalogs:
eslint-plugin-storybook:
specifier: 10.6.1
version: 10.6.1
eslint-plugin-toml:
specifier: 1.5.0
version: 1.5.0
eslint-plugin-unicorn:
specifier: 77.0.0
version: 77.0.0
eslint-plugin-yml:
specifier: 3.9.0
version: 3.9.0
@@ -814,9 +802,6 @@ importers:
.:
devDependencies:
'@eslint-community/eslint-plugin-eslint-comments':
specifier: 'catalog:'
version: 4.8.1(eslint@10.12.0(jiti@2.7.0)(supports-color@11.0.0))
'@eslint-react/eslint-plugin':
specifier: 'catalog:'
version: 5.24.10(@typescript/typescript6@6.0.2)(eslint@10.12.0(jiti@2.7.0)(supports-color@11.0.0))(supports-color@11.0.0)
@@ -862,9 +847,6 @@ importers:
eslint-plugin-better-tailwindcss:
specifier: 'catalog:'
version: 4.9.0(@typescript/typescript6@6.0.2)(eslint@10.12.0(jiti@2.7.0)(supports-color@11.0.0))(oxlint@1.87.0(oxlint-tsgolint@7.0.2003)(vite-plus@1.1.0(@types/node@25.9.9)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@5.0.3)(@vitest/coverage-v8@5.0.3)(@vitest/ui@5.0.3)(@volar/typescript@2.4.28(@typescript/typescript6@6.0.2))(esbuild@0.28.2)(happy-dom@20.14.6)(jiti@2.7.0)(playwright@1.64.0)(tsx@4.23.13)(yaml@2.9.1)))(tailwindcss@4.3.3)
eslint-plugin-command:
specifier: 'catalog:'
version: 4.0.0(@typescript-eslint/typescript-estree@8.71.1(@typescript/typescript6@6.0.2)(supports-color@11.0.0))(@typescript-eslint/utils@8.71.1(@typescript/typescript6@6.0.2)(eslint@10.12.0(jiti@2.7.0)(supports-color@11.0.0))(supports-color@11.0.0))(eslint@10.12.0(jiti@2.7.0)(supports-color@11.0.0))
eslint-plugin-jsdoc:
specifier: 'catalog:'
version: 65.2.1(@typescript/typescript6@6.0.2)(eslint@10.12.0(jiti@2.7.0)(supports-color@11.0.0))(supports-color@11.0.0)
@@ -892,12 +874,6 @@ importers:
eslint-plugin-storybook:
specifier: 'catalog:'
version: 10.6.1(@typescript/typescript6@6.0.2)(eslint@10.12.0(jiti@2.7.0)(supports-color@11.0.0))(supports-color@11.0.0)
eslint-plugin-toml:
specifier: 'catalog:'
version: 1.5.0(eslint@10.12.0(jiti@2.7.0)(supports-color@11.0.0))(supports-color@11.0.0)
eslint-plugin-unicorn:
specifier: 'catalog:'
version: 77.0.0(eslint@10.12.0(jiti@2.7.0)(supports-color@11.0.0))
eslint-plugin-yml:
specifier: 'catalog:'
version: 3.9.0(eslint@10.12.0(jiti@2.7.0)(supports-color@11.0.0))
@@ -2220,10 +2196,6 @@ packages:
'@emnapi/wasi-threads@1.2.2':
resolution: {integrity: sha512-c95qOXkHdydNKhscBTebqEC1CVAZpyqOfVfBzQ1qgzyl3gfeldUjIggDbIZgDKsHLgnsM+igH7TJ/eAasaVuMA==}
'@es-joy/jsdoccomment@0.92.0':
resolution: {integrity: sha512-WivZqV5jPTYDQJgIMp0hTsyQESKYNY6yCJr4b0l84tYtQntkAMkc6zARh2vlRQyeg4aYHPUkCUDpvr2IWAiGpQ==}
engines: {node: ^22.22.2 || >=24.15.0}
'@es-joy/jsdoccomment@0.98.0':
resolution: {integrity: sha512-QS+b7I2aaSM+gZfDz1b9E4B367JJ2qTjFXRKF289iKkh9sYdZ21Q5MiF/Duzouy3J0C4VhM3I/8f2F4+zT8gYQ==}
engines: {node: ^22.22.2 || >=24.15.0}
@@ -2388,12 +2360,6 @@ packages:
cpu: [x64]
os: [win32]
'@eslint-community/eslint-plugin-eslint-comments@4.8.1':
resolution: {integrity: sha512-vafrdi15JHBFh1qWOAucyJwlEEuhdoMof28jOdKdgnwZ7bXwd6v4wzHYSmAVLwnx0yc7bqAtfJ0EZQV1WAzV/Q==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
peerDependencies:
eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 || ^9.0.0 || ^10.0.0
'@eslint-community/eslint-utils@4.10.1':
resolution: {integrity: sha512-cuadcxVFE8sDK6iWJbs8Sn0av2Nrh2QSGQhVlBW9AaAHqHwjWsZHT8LJ4hFGPh7ASBV2deFdM7H/DPjulmh8rg==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
@@ -5804,10 +5770,6 @@ packages:
buffer@5.7.1:
resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==}
builtin-modules@5.3.0:
resolution: {integrity: sha512-hMQUl2bUFG339QygPM97E+mc8OY1IAchORZxm4a/frcYwKzozMzRVDBwHW0NjOqGElLm2O37AVQE8ikxlZHrMQ==}
engines: {node: '>=18.20'}
bundle-name@4.1.0:
resolution: {integrity: sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==}
engines: {node: '>=18'}
@@ -5877,9 +5839,6 @@ packages:
resolution: {integrity: sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==}
engines: {node: ^12.17.0 || ^14.13 || >=16.0.0}
change-case@5.4.4:
resolution: {integrity: sha512-HRQyTk2/YPEkt9TnUPbOpr64Uw3KOicFWPVBb+xiHvd6eBx/qPr9xqfBFDT8P2vWsvvz4jbEkfDe71W3VyNu2w==}
character-entities-html4@2.1.0:
resolution: {integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==}
@@ -5930,10 +5889,6 @@ packages:
'@chromatic-com/vitest':
optional: true
ci-info@4.4.0:
resolution: {integrity: sha512-77PSwercCZU2Fc4sX94eF8k8Pxte6JAwL4/ICZLFjJLqegs7kCuAsqqj/70NQF6TvDpgFjkubQB2FW2ZZddvQg==}
engines: {node: '>=8'}
class-variance-authority@0.7.1:
resolution: {integrity: sha512-Ka+9Trutv7G8M6WT6SeiRWz792K5qEqIGEGzXKhAE6xOWAY6pPH8U+9IY3oCMv6kqTmLsv7Xh/2w2RigkePMsg==}
@@ -6001,10 +5956,6 @@ packages:
resolution: {integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==}
engines: {node: '>= 12'}
comment-parser@1.4.7:
resolution: {integrity: sha512-0h+uSNtQGW3D98eQt3jJ8L06Fves8hncB4V/PKdw/Qb8Hnk19VaKuTr55UNRYiSoVa7WwrFls+rh3ux9agmkeQ==}
engines: {node: '>= 12.0.0'}
comment-parser@1.4.9:
resolution: {integrity: sha512-+2AvZKjJaNq9GQljm3tr0utwrig5BL+jgJGvz5rDpGKNIp+ojcRXWUwBbh/sGIi1QCprR6PsKFakub+w1v+4hQ==}
engines: {node: '>= 12.0.0'}
@@ -6036,10 +5987,6 @@ packages:
copy-to-clipboard@4.0.2:
resolution: {integrity: sha512-gklSft7IuhriZKHKpuoA1fpJSLPNgvUMWMo5BlnzAJm0zNKnznoSv23IjtNqclx8eKi6ZcdvFFzYEER/+U1LoQ==}
core-js-compat@3.50.0:
resolution: {integrity: sha512-XGpFGbMLHwSt74YLTKho7Ib242qi6O8MSX+sRokV4oz7iKXvQWGYZthjIhjRGMxjzVkAubBO512dKGYcefmX3Q==}
engines: {node: '>=6.4.0'}
cose-base@1.0.3:
resolution: {integrity: sha512-s9whTXInMSgAp/NVXVNuVxVKzGH2qck3aQlVHxDCdAEPgtMKwc4Wq6/QKhgdEdgbLSi9rBTAcPoRa6JpiG4ksg==}
@@ -6351,10 +6298,6 @@ packages:
destr@2.0.5:
resolution: {integrity: sha512-ugFTXCtDZunbzasqBxrK93Ik/DRYsO6S/fedkWEMKqt04xZ4csmnmwGDBAb07QWNaGMAmnTIemsYZCksjATwsA==}
detect-indent@7.0.2:
resolution: {integrity: sha512-y+8xyqdGLL+6sh0tVeHcfP/QDd8gUgbasolJJpY7NgeQGSZ739bDtSiaiDgtoicy+mtYB81dKLxO9xRhCyIB3A==}
engines: {node: '>=12.20'}
detect-libc@2.1.2:
resolution: {integrity: sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==}
engines: {node: '>=8'}
@@ -6587,14 +6530,6 @@ packages:
oxlint:
optional: true
eslint-plugin-command@4.0.0:
resolution: {integrity: sha512-mM1UdKu39YF5nUBVbA+PaVvpB3R3Niwjes8CQ8rJTTbgIThgrfQILgDqmtpAAQL1xGaolCoES1SfiwzwPVGkXQ==}
engines: {node: ^22.22.2 || >=24.15.0}
peerDependencies:
'@typescript-eslint/typescript-estree': '*'
'@typescript-eslint/utils': '*'
eslint: '*'
eslint-plugin-es-x@7.8.0:
resolution: {integrity: sha512-7Ds8+wAAoV3T+LAKeu39Y5BzXCrGKrcISfgKEqTS4BDN8SFEDQd0S43jiQ8vIa3wUKD07qitZdfzlenSi8/0qQ==}
engines: {node: ^14.18.0 || >=16.0.0}
@@ -6731,18 +6666,6 @@ packages:
peerDependencies:
eslint: '>=8'
eslint-plugin-toml@1.5.0:
resolution: {integrity: sha512-qBjRywEkKxO2uYOjus//6GVF1r+Hg5QDkRO8RTY6XcaXgWfBU0DhwpFmJa2Ljf0Sz49r7DdZlpKwwHmJ4nmH1Q==}
engines: {node: ^20.19.0 || ^22.13.0 || >=24}
peerDependencies:
eslint: '>=9.38.0'
eslint-plugin-unicorn@77.0.0:
resolution: {integrity: sha512-aayznMCKTXlPAsoyUjRok862sz3BJAfxpQX/t79AT/uVQTmWsCx3FXfXo+9hfhL8aR2mMZQYyXoDZo3/ly6lJw==}
engines: {node: '>=22'}
peerDependencies:
eslint: '>=10.4'
eslint-plugin-yml@3.9.0:
resolution: {integrity: sha512-o4ByMVFd/mGc0Q/vJmbG9pz7Kyg/BiKAGnWCzvMLqzpa2KMdpUrLgF5a6yYeL2mf1Br/9dckd0ADl3vw7uF+jA==}
engines: {node: ^20.19.0 || ^22.13.0 || >=24.0.0}
@@ -6994,10 +6917,6 @@ packages:
resolution: {integrity: sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg==}
engines: {node: '>=18'}
globals@17.13.0:
resolution: {integrity: sha512-RwMTC61u7hrG3ZJMkZQOK4JLJrKS8QtoTii63EmWvFXHqycY9FObBJQCbsLxSO8kjKhWE5kV1GC+Vb1g3RI0Zg==}
engines: {node: '>=18'}
globrex@0.1.2:
resolution: {integrity: sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==}
@@ -7143,10 +7062,6 @@ packages:
idb@8.0.0:
resolution: {integrity: sha512-l//qvlAKGmQO31Qn7xdzagVPPaHTxXx199MhrAFuVBTPqydcPYBWjkrbv4Y0ktB+GmWOiwHl237UUOrLmQxLvw==}
identifier-regex@1.1.0:
resolution: {integrity: sha512-SLX4H/vtcYlYnL7XqnuJKHU7Z8517TgsW9nmQiGOgMCjQ8V/deLYu6bEmbGoXe7WMMhc9+EUGyFFneHja8KabA==}
engines: {node: '>=18'}
ieee754@1.2.1:
resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==}
@@ -7154,10 +7069,6 @@ packages:
resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==}
engines: {node: '>= 4'}
ignore@7.0.8:
resolution: {integrity: sha512-YYNsSlXBjMk92SKnkwvB5LOVSa6OznlFUGcsvrFgNJbJCd0M1XKeFVRc8ZByeCqz32FivYNHJVooLmdqrmvp/Q==}
engines: {node: '>= 4'}
immer@11.1.21:
resolution: {integrity: sha512-bZSadeCPGdaY5/qRLgr6mDSH1ra21rD3rqpiWk7+QTr4ayYPTE9qZYdLh/NdPhMe0wSrTvHD/Lk8q5EwhUs0aw==}
@@ -7210,10 +7121,6 @@ packages:
is-alphanumerical@2.0.1:
resolution: {integrity: sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==}
is-builtin-module@5.0.0:
resolution: {integrity: sha512-f4RqJKBUe5rQkJ2eJEJBXSticB3hGbN9j0yxxMQFqIW89Jp9WYFtzfTcRlstDKVUTRzSOTLKRfO9vIztenwtxA==}
engines: {node: '>=18.20'}
is-decimal@2.0.1:
resolution: {integrity: sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==}
@@ -7325,10 +7232,6 @@ packages:
resolution: {integrity: sha512-yzzNtgczwgoVHNigCyKTXcQJU4Y8t/ikU4UxXW0BvrLfHTGWZhsNcOT2s/a7vn81/4KqVnNmHjaUEPlvWnNwVw==}
hasBin: true
jsdoc-type-pratt-parser@9.0.1:
resolution: {integrity: sha512-1LJ/negRKJxH0+ulOsJYEpUgzIs1DAOz9QctuS4In2LW/Ro3l8C4ej5al+5FU2hBGEOAY3R3SCnP6x8226JMIw==}
engines: {node: ^22.22.2 || >=24.15.0}
jsdoc-type-pratt-parser@9.2.2:
resolution: {integrity: sha512-eFY7Rlscvv/BpY6UsVsjKwMhu1tJO/F4U/vC9g3yeRy/JqszuO1UP6Vdq+85G+3FP6fEw/sWR8a5ftPFY86csw==}
engines: {node: ^22.22.2 || >=24.15.0}
@@ -8340,10 +8243,6 @@ packages:
engines: {node: '>=20'}
hasBin: true
pluralize@8.0.0:
resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==}
engines: {node: '>=4'}
pngjs@7.0.0:
resolution: {integrity: sha512-LKWqWJRhstyYo9pGvgor/ivk2w94eSjE3RGVuzLGlr3NmD8bf7RcYGze1mNdEHRP6TRP6rMuDHk5t44hnTRyow==}
engines: {node: '>=14.19.0'}
@@ -8432,10 +8331,6 @@ packages:
queue-microtask@1.2.3:
resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
quote-js-string@0.1.0:
resolution: {integrity: sha512-Y3NoRtprEEZQD8RfxMCfS0ZTqc4e+i18OrXEXAvpM6TfC/3y+0L5rNbZiSnbBBEkDfFzbpd8o+cE8q3/anjMGA==}
engines: {node: '>=22'}
radash@12.1.1:
resolution: {integrity: sha512-h36JMxKRqrAxVD8201FrCpyeNuUY9Y5zZwujr20fFO77tpUtGa6EZzfKw/3WaiBX95fq7+MpsuMLNdSnORAwSA==}
engines: {node: '>=14.18.0'}
@@ -8610,10 +8505,6 @@ packages:
resolution: {integrity: sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA==}
hasBin: true
regjsparser@0.13.4:
resolution: {integrity: sha512-EWV80YgFaVgFrjGCAsV7oybp4GOxbls5RzBg8OB0nKEVXsBJR1JlV8Di1JhCROg3MzTfe1RI8yitIm1eOs68iA==}
hasBin: true
rehype-harden@1.1.8:
resolution: {integrity: sha512-Qn7vR1xrf6fZCrkm9TDWi/AB4ylrHy+jqsNm1EHOAmbARYA6gsnVJBq/sdBh6kmT4NEZxH5vgIjrscefJAOXcw==}
@@ -9073,10 +8964,6 @@ packages:
resolution: {integrity: sha512-41wJyvKep3yT2tyPqX/4blcfybknGB4D+oETKLs7Q76UiPqRpUJK3hr1nxelyYO0PHKVzJwlu0aCeEAsGI6rpw==}
engines: {node: '>=20'}
toml-eslint-parser@1.0.3:
resolution: {integrity: sha512-A5F0cM6+mDleacLIEUkmfpkBbnHJFV1d2rprHU2MXNk7mlxHq2zGojA+SRvQD1RoMo9gqjZPWEaKG4v1BQ48lw==}
engines: {node: ^20.19.0 || ^22.13.0 || >=24}
toposort@2.0.2:
resolution: {integrity: sha512-0a5EOkAUp8D4moMi2W8ZF8jcga7BgZd91O/yabJCFY8az+XSzeGyTKs0Aoo897iV1Nj6guFq8orWDS96z91oGg==}
@@ -10180,14 +10067,6 @@ snapshots:
tslib: 2.8.1
optional: true
'@es-joy/jsdoccomment@0.92.0':
dependencies:
'@types/estree': 1.0.9
'@typescript-eslint/types': 8.71.1
comment-parser: 1.4.7
esquery: 1.7.0
jsdoc-type-pratt-parser: 9.0.1
'@es-joy/jsdoccomment@0.98.0':
dependencies:
'@types/estree': 1.0.9
@@ -10276,12 +10155,6 @@ snapshots:
'@esbuild/win32-x64@0.28.2':
optional: true
'@eslint-community/eslint-plugin-eslint-comments@4.8.1(eslint@10.12.0(jiti@2.7.0)(supports-color@11.0.0))':
dependencies:
escape-string-regexp: 4.0.0
eslint: 10.12.0(jiti@2.7.0)(supports-color@11.0.0)
ignore: 7.0.8
'@eslint-community/eslint-utils@4.10.1(eslint@10.12.0(jiti@2.7.0)(supports-color@11.0.0))':
dependencies:
eslint: 10.12.0(jiti@2.7.0)(supports-color@11.0.0)
@@ -13234,8 +13107,6 @@ snapshots:
ieee754: 1.2.1
optional: true
builtin-modules@5.3.0: {}
bundle-name@4.1.0:
dependencies:
run-applescript: 7.1.0
@@ -13315,8 +13186,6 @@ snapshots:
chalk@5.6.2: {}
change-case@5.4.4: {}
character-entities-html4@2.1.0: {}
character-entities-legacy@3.0.0: {}
@@ -13363,8 +13232,6 @@ snapshots:
dependencies:
semver: 7.8.5
ci-info@4.4.0: {}
class-variance-authority@0.7.1:
dependencies:
clsx: 2.1.1
@@ -13423,8 +13290,6 @@ snapshots:
commander@8.3.0: {}
comment-parser@1.4.7: {}
comment-parser@1.4.9: {}
compare-versions@6.1.1: {}
@@ -13450,10 +13315,6 @@ snapshots:
copy-to-clipboard@4.0.2: {}
core-js-compat@3.50.0:
dependencies:
browserslist: 4.29.3
cose-base@1.0.3:
dependencies:
layout-base: 1.0.2
@@ -13778,8 +13639,6 @@ snapshots:
destr@2.0.5: {}
detect-indent@7.0.2: {}
detect-libc@2.1.2: {}
devframe@0.6.2(@typescript/typescript6@6.0.2)(srvx@1.0.5):
@@ -14018,13 +13877,6 @@ snapshots:
- '@eslint/css'
- typescript
eslint-plugin-command@4.0.0(@typescript-eslint/typescript-estree@8.71.1(@typescript/typescript6@6.0.2)(supports-color@11.0.0))(@typescript-eslint/utils@8.71.1(@typescript/typescript6@6.0.2)(eslint@10.12.0(jiti@2.7.0)(supports-color@11.0.0))(supports-color@11.0.0))(eslint@10.12.0(jiti@2.7.0)(supports-color@11.0.0)):
dependencies:
'@es-joy/jsdoccomment': 0.92.0
'@typescript-eslint/typescript-estree': 8.71.1(@typescript/typescript6@6.0.2)(supports-color@11.0.0)
'@typescript-eslint/utils': 8.71.1(@typescript/typescript6@6.0.2)(eslint@10.12.0(jiti@2.7.0)(supports-color@11.0.0))(supports-color@11.0.0)
eslint: 10.12.0(jiti@2.7.0)(supports-color@11.0.0)
eslint-plugin-es-x@7.8.0(eslint@10.12.0(jiti@2.7.0)(supports-color@11.0.0)):
dependencies:
'@eslint-community/eslint-utils': 4.10.1(eslint@10.12.0(jiti@2.7.0)(supports-color@11.0.0))
@@ -14263,41 +14115,6 @@ snapshots:
- supports-color
- typescript
eslint-plugin-toml@1.5.0(eslint@10.12.0(jiti@2.7.0)(supports-color@11.0.0))(supports-color@11.0.0):
dependencies:
'@eslint/core': 1.2.1
'@eslint/plugin-kit': 0.7.3
'@ota-meshi/ast-token-store': 0.3.0
debug: 4.4.3(supports-color@11.0.0)
eslint: 10.12.0(jiti@2.7.0)(supports-color@11.0.0)
toml-eslint-parser: 1.0.3
transitivePeerDependencies:
- supports-color
eslint-plugin-unicorn@77.0.0(eslint@10.12.0(jiti@2.7.0)(supports-color@11.0.0)):
dependencies:
'@eslint-community/eslint-utils': 4.10.1(eslint@10.12.0(jiti@2.7.0)(supports-color@11.0.0))
'@eslint/css-tree': 4.1.1
browserslist: 4.29.3
change-case: 5.4.4
ci-info: 4.4.0
core-js-compat: 3.50.0
detect-indent: 7.0.2
entities: 8.1.0
eslint: 10.12.0(jiti@2.7.0)(supports-color@11.0.0)
find-up-simple: 1.0.1
globals: 17.13.0
identifier-regex: 1.1.0
indent-string: 5.0.0
is-builtin-module: 5.0.0
pluralize: 8.0.0
quote-js-string: 0.1.0
regjsparser: 0.13.4
reserved-identifiers: 1.2.0
semver: 7.8.5
strip-indent: 4.1.1
yaml: 2.9.1
eslint-plugin-yml@3.9.0(eslint@10.12.0(jiti@2.7.0)(supports-color@11.0.0)):
dependencies:
'@eslint/core': 1.2.1
@@ -14553,8 +14370,6 @@ snapshots:
globals@15.15.0: {}
globals@17.13.0: {}
globrex@0.1.2: {}
graceful-fs@4.2.11: {}
@@ -14783,17 +14598,11 @@ snapshots:
idb@8.0.0: {}
identifier-regex@1.1.0:
dependencies:
reserved-identifiers: 1.2.0
ieee754@1.2.1:
optional: true
ignore@5.3.2: {}
ignore@7.0.8: {}
immer@11.1.21: {}
import-meta-resolve@4.2.0: {}
@@ -14829,10 +14638,6 @@ snapshots:
is-alphabetical: 2.0.1
is-decimal: 2.0.1
is-builtin-module@5.0.0:
dependencies:
builtin-modules: 5.3.0
is-decimal@2.0.1: {}
is-docker@3.0.0: {}
@@ -14906,10 +14711,6 @@ snapshots:
dependencies:
argparse: 2.0.1
jsdoc-type-pratt-parser@9.0.1:
dependencies:
'@types/estree': 1.0.9
jsdoc-type-pratt-parser@9.2.2:
dependencies:
'@types/estree': 1.0.9
@@ -16175,8 +15976,6 @@ snapshots:
dependencies:
playwright-core: 1.64.0
pluralize@8.0.0: {}
pngjs@7.0.0: {}
pnpm-workspace-yaml@1.9.1:
@@ -16281,8 +16080,6 @@ snapshots:
queue-microtask@1.2.3: {}
quote-js-string@0.1.0: {}
radash@12.1.1: {}
rc9@3.1.0:
@@ -16489,10 +16286,6 @@ snapshots:
regexp-tree@0.1.27: {}
regjsparser@0.13.4:
dependencies:
jsesc: 3.1.0
rehype-harden@1.1.8:
dependencies:
unist-util-visit: 5.1.0
@@ -17028,10 +16821,6 @@ snapshots:
'@sindresorhus/base62': 1.0.0
reserved-identifiers: 1.2.0
toml-eslint-parser@1.0.3:
dependencies:
eslint-visitor-keys: 5.0.1
toposort@2.0.2: {}
totalist@3.0.1: {}
@@ -17727,7 +17516,6 @@ time:
'@date-fns/tz@1.5.0': '2026-05-21T10:39:51.805Z'
'@daypicker/react@10.0.2': '2026-09-30T09:03:39.069Z'
'@egoist/tailwindcss-icons@1.9.2': '2026-01-31T10:48:44.594Z'
'@eslint-community/eslint-plugin-eslint-comments@4.8.1': '2026-09-12T22:48:47.148Z'
'@eslint-react/eslint-plugin@5.24.10': '2026-10-09T02:26:47.794Z'
'@eslint/markdown@8.0.3': '2026-07-01T13:28:44.339Z'
'@floating-ui/react@0.27.20': '2026-07-11T08:41:33.223Z'
@@ -17828,7 +17616,6 @@ time:
eslint-markdown@0.18.1: '2026-09-27T08:52:54.851Z'
eslint-plugin-antfu@3.2.3: '2026-05-11T02:24:38.348Z'
eslint-plugin-better-tailwindcss@4.9.0: '2026-10-05T21:13:08.995Z'
eslint-plugin-command@4.0.0: '2026-07-31T04:38:09.766Z'
eslint-plugin-jsdoc@65.2.1: '2026-10-08T19:24:59.177Z'
eslint-plugin-jsonc@3.4.2: '2026-08-22T12:13:35.450Z'
eslint-plugin-markdown-preferences@0.42.0: '2026-07-14T00:58:47.572Z'
@@ -17838,8 +17625,6 @@ time:
eslint-plugin-pnpm@1.9.1: '2026-09-02T01:31:47.410Z'
eslint-plugin-regexp@3.3.1: '2026-09-20T04:28:02.918Z'
eslint-plugin-storybook@10.6.1: '2026-09-29T17:17:22.200Z'
eslint-plugin-toml@1.5.0: '2026-07-25T01:46:13.957Z'
eslint-plugin-unicorn@77.0.0: '2026-10-03T10:47:25.784Z'
eslint-plugin-yml@3.9.0: '2026-10-09T01:27:04.784Z'
eslint@10.12.0: '2026-10-02T20:08:19.213Z'
eventsource-parser@4.1.1: '2026-09-15T18:30:29.195Z'
-4
View File
@@ -76,7 +76,6 @@ catalog:
'@date-fns/tz': 1.5.0
'@daypicker/react': 10.0.2
'@egoist/tailwindcss-icons': 1.9.2
'@eslint-community/eslint-plugin-eslint-comments': 4.8.1
'@eslint-react/eslint-plugin': 5.24.10
'@eslint/markdown': 8.0.3
'@floating-ui/react': 0.27.20
@@ -178,7 +177,6 @@ catalog:
eslint-markdown: 0.18.1
eslint-plugin-antfu: 3.2.3
eslint-plugin-better-tailwindcss: 4.9.0
eslint-plugin-command: 4.0.0
eslint-plugin-jsdoc: 65.2.1
eslint-plugin-jsonc: 3.4.2
eslint-plugin-markdown-preferences: 0.42.0
@@ -188,8 +186,6 @@ catalog:
eslint-plugin-pnpm: 1.9.1
eslint-plugin-regexp: 3.3.1
eslint-plugin-storybook: 10.6.1
eslint-plugin-toml: 1.5.0
eslint-plugin-unicorn: 77.0.0
eslint-plugin-yml: 3.9.0
eventsource-parser: 4.1.1
fast-deep-equal: 3.1.3
+1 -1
View File
@@ -2,7 +2,7 @@ import { defineConfig } from 'vite-plus'
import { lintConfig } from './lint.config'
const lintFiles = '*.{js,cjs,mjs,jsx,ts,cts,mts,tsx}'
const eslintFiles = '*.{json,jsonc,json5,md,yml,yaml,toml}'
const eslintFiles = '*.{json,jsonc,json5,md,yml,yaml}'
const formatOnlyFiles = '*.{mdx,css,scss,less,html,vue,svelte,gql,graphql,hbs,handlebars}'
const checkFix = 'vp check --fix --no-error-on-unmatched-pattern'
const formatFix = 'vp fmt --no-error-on-unmatched-pattern'
+3 -3
View File
@@ -55,7 +55,7 @@ vp run dify-web#lint:a11y --deps 'app/(commonLayout)/app/(appDetailLayout)/layou
This is a local page-scoped diagnostic. The repository-wide accessibility rule baseline remains
owned by `lint.config.ts` and is also enforced by the normal `vp check` path.
Run the ESLint fallback separately when targeting JSON, JSONC, JSON5, YAML, TOML, or Markdown:
Run the ESLint fallback separately when targeting JSON, JSONC, JSON5, YAML, or Markdown:
```sh
vp run -w lint:eslint package.json pnpm-workspace.yaml web/docs
@@ -68,7 +68,7 @@ The primary rule baseline lives in `lint.config.ts` and is connected through the
Tailwind canonical class cleanup is optional because loading the JavaScript plugin adds noticeable lint startup time. The default `vp run -w check` command does not load it. Run `vp run -w lint:tailwind` to inspect `web/` and `packages/dify-ui/`, or `vp run -w lint:tailwind:fix` to apply safe replacements. Both commands run the complete lint configuration with the additional `better-tailwindcss/enforce-canonical-classes` rule, using `web/app/styles/globals.css` and a 16px root font size.
The non-code baseline and its repository-wide file scope live in `eslint.config.mjs`. ESLint checks JSON, JSONC, JSON5, YAML, TOML, and Markdown only. The configuration globally ignores JavaScript, JSX, TypeScript, TSX, and declaration files; a comment-only inventory records the removed code checks as a migration tradeoff. It does not import or depend on the Antfu ESLint config.
The non-code baseline and its repository-wide file scope live in `eslint.config.mjs`. ESLint checks JSON, JSONC, JSON5, YAML, and Markdown only. The configuration globally ignores JavaScript, JSX, TypeScript, TSX, and declaration files; a comment-only inventory records the removed code checks as a migration tradeoff. It does not import or depend on the Antfu ESLint config.
### Type-aware Linting
@@ -107,7 +107,7 @@ ESLint is intentionally limited to non-code files. The remaining limitations and
| Code-only fallback rules | ESLint globally ignores all code files. Six core fallback rules, JS `dot-notation`, and other code-only ESLint checks are listed only in comments rather than executable configuration. |
| Declaration files | Oxlint excludes declaration files and ESLint no longer processes code. The former 223-rule declaration snapshot and CLI declaration import restriction are not enforced. |
| Generated contracts | Both linters and Vite+ type checking ignore `packages/contracts/**`; Oxfmt remains the only staged quality step for the contracts package. |
| Non-JavaScript formats | Oxlint plugins cannot provide custom parsers or file languages. ESLint covers JSON, JSONC, YAML, TOML, and Markdown semantic rules, while Oxfmt remains responsible for their formatting. |
| Non-JavaScript formats | Oxlint plugins cannot provide custom parsers or file languages. ESLint covers JSON, JSONC, YAML, and Markdown semantic rules, while Oxfmt remains responsible for their formatting. |
| Markdown code blocks | ESLint validates the Markdown document, but fenced JavaScript and TypeScript blocks are not passed through the former overlapping preset. This remains deferred rather than duplicating the Oxlint rule set. |
| Override-scoped settings | The three Dify UI Tailwind rules are disabled with the rest of ESLint's code path. Oxlint still applies the web `react-x.additionalStateHooks` setting globally because it cannot scope settings to an override. |