From 38285aa1ac6de98614456f49b4d834fe503f4e58 Mon Sep 17 00:00:00 2001 From: Stephen Zhou Date: Thu, 26 Mar 2026 15:11:25 +0800 Subject: [PATCH] chore: enable no-barrel-files (#34121) --- web/eslint-suppressions.json | 646 +++++++++++++++++++++++++++++++++++ web/eslint.config.mjs | 19 +- web/package.json | 1 + web/pnpm-lock.yaml | 14 + 4 files changed, 677 insertions(+), 3 deletions(-) diff --git a/web/eslint-suppressions.json b/web/eslint-suppressions.json index cb00a657329..65045b596c1 100644 --- a/web/eslint-suppressions.json +++ b/web/eslint-suppressions.json @@ -4,6 +4,11 @@ "count": 1 } }, + "__mocks__/zustand.ts": { + "no-barrel-files/no-barrel-files": { + "count": 1 + } + }, "__tests__/check-i18n.test.ts": { "regexp/no-unused-capturing-group": { "count": 1 @@ -1496,6 +1501,11 @@ "count": 2 } }, + "app/components/base/amplitude/index.ts": { + "no-barrel-files/no-barrel-files": { + "count": 2 + } + }, "app/components/base/amplitude/utils.ts": { "ts/no-explicit-any": { "count": 2 @@ -1855,6 +1865,11 @@ "count": 3 } }, + "app/components/base/chat/types.ts": { + "no-barrel-files/no-barrel-files": { + "count": 3 + } + }, "app/components/base/chat/utils.ts": { "ts/no-explicit-any": { "count": 10 @@ -1962,6 +1977,11 @@ "count": 2 } }, + "app/components/base/date-and-time-picker/utils/dayjs.ts": { + "no-barrel-files/no-barrel-files": { + "count": 1 + } + }, "app/components/base/date-and-time-picker/year-and-month-picker/header.tsx": { "tailwindcss/enforce-consistent-class-order": { "count": 1 @@ -2023,6 +2043,11 @@ "count": 1 } }, + "app/components/base/features/index.tsx": { + "no-barrel-files/no-barrel-files": { + "count": 1 + } + }, "app/components/base/features/new-feature-panel/annotation-reply/annotation-ctrl-button.tsx": { "no-restricted-imports": { "count": 2 @@ -2196,6 +2221,16 @@ "count": 3 } }, + "app/components/base/file-uploader/index.ts": { + "no-barrel-files/no-barrel-files": { + "count": 7 + } + }, + "app/components/base/file-uploader/pdf-highlighter-adapter.tsx": { + "no-barrel-files/no-barrel-files": { + "count": 2 + } + }, "app/components/base/file-uploader/pdf-preview.tsx": { "no-restricted-imports": { "count": 1 @@ -2229,6 +2264,11 @@ "count": 6 } }, + "app/components/base/form/components/base/index.tsx": { + "no-barrel-files/no-barrel-files": { + "count": 2 + } + }, "app/components/base/form/components/field/checkbox.tsx": { "tailwindcss/enforce-consistent-class-order": { "count": 1 @@ -2323,6 +2363,11 @@ "count": 2 } }, + "app/components/base/form/hooks/index.ts": { + "no-barrel-files/no-barrel-files": { + "count": 3 + } + }, "app/components/base/form/hooks/use-check-validated.ts": { "no-restricted-imports": { "count": 1 @@ -2357,6 +2402,271 @@ "count": 4 } }, + "app/components/base/icons/src/image/llm/index.ts": { + "no-barrel-files/no-barrel-files": { + "count": 9 + } + }, + "app/components/base/icons/src/public/avatar/index.ts": { + "no-barrel-files/no-barrel-files": { + "count": 2 + } + }, + "app/components/base/icons/src/public/billing/index.ts": { + "no-barrel-files/no-barrel-files": { + "count": 12 + } + }, + "app/components/base/icons/src/public/common/index.ts": { + "no-barrel-files/no-barrel-files": { + "count": 16 + } + }, + "app/components/base/icons/src/public/education/index.ts": { + "no-barrel-files/no-barrel-files": { + "count": 1 + } + }, + "app/components/base/icons/src/public/files/index.ts": { + "no-barrel-files/no-barrel-files": { + "count": 11 + } + }, + "app/components/base/icons/src/public/knowledge/dataset-card/index.ts": { + "no-barrel-files/no-barrel-files": { + "count": 5 + } + }, + "app/components/base/icons/src/public/knowledge/index.ts": { + "no-barrel-files/no-barrel-files": { + "count": 8 + } + }, + "app/components/base/icons/src/public/knowledge/online-drive/index.ts": { + "no-barrel-files/no-barrel-files": { + "count": 3 + } + }, + "app/components/base/icons/src/public/llm/index.ts": { + "no-barrel-files/no-barrel-files": { + "count": 50 + } + }, + "app/components/base/icons/src/public/model/index.ts": { + "no-barrel-files/no-barrel-files": { + "count": 1 + } + }, + "app/components/base/icons/src/public/other/index.ts": { + "no-barrel-files/no-barrel-files": { + "count": 6 + } + }, + "app/components/base/icons/src/public/plugins/index.ts": { + "no-barrel-files/no-barrel-files": { + "count": 7 + } + }, + "app/components/base/icons/src/public/thought/index.ts": { + "no-barrel-files/no-barrel-files": { + "count": 5 + } + }, + "app/components/base/icons/src/public/tracing/index.ts": { + "no-barrel-files/no-barrel-files": { + "count": 21 + } + }, + "app/components/base/icons/src/vender/features/index.ts": { + "no-barrel-files/no-barrel-files": { + "count": 10 + } + }, + "app/components/base/icons/src/vender/knowledge/index.ts": { + "no-barrel-files/no-barrel-files": { + "count": 16 + } + }, + "app/components/base/icons/src/vender/line/alertsAndFeedback/index.ts": { + "no-barrel-files/no-barrel-files": { + "count": 4 + } + }, + "app/components/base/icons/src/vender/line/arrows/index.ts": { + "no-barrel-files/no-barrel-files": { + "count": 9 + } + }, + "app/components/base/icons/src/vender/line/communication/index.ts": { + "no-barrel-files/no-barrel-files": { + "count": 6 + } + }, + "app/components/base/icons/src/vender/line/development/index.ts": { + "no-barrel-files/no-barrel-files": { + "count": 14 + } + }, + "app/components/base/icons/src/vender/line/editor/index.ts": { + "no-barrel-files/no-barrel-files": { + "count": 8 + } + }, + "app/components/base/icons/src/vender/line/education/index.ts": { + "no-barrel-files/no-barrel-files": { + "count": 1 + } + }, + "app/components/base/icons/src/vender/line/files/index.ts": { + "no-barrel-files/no-barrel-files": { + "count": 11 + } + }, + "app/components/base/icons/src/vender/line/financeAndECommerce/index.ts": { + "no-barrel-files/no-barrel-files": { + "count": 7 + } + }, + "app/components/base/icons/src/vender/line/general/index.ts": { + "no-barrel-files/no-barrel-files": { + "count": 30 + } + }, + "app/components/base/icons/src/vender/line/images/index.ts": { + "no-barrel-files/no-barrel-files": { + "count": 1 + } + }, + "app/components/base/icons/src/vender/line/layout/index.ts": { + "no-barrel-files/no-barrel-files": { + "count": 4 + } + }, + "app/components/base/icons/src/vender/line/mediaAndDevices/index.ts": { + "no-barrel-files/no-barrel-files": { + "count": 6 + } + }, + "app/components/base/icons/src/vender/line/others/index.ts": { + "no-barrel-files/no-barrel-files": { + "count": 10 + } + }, + "app/components/base/icons/src/vender/line/shapes/index.ts": { + "no-barrel-files/no-barrel-files": { + "count": 1 + } + }, + "app/components/base/icons/src/vender/line/time/index.ts": { + "no-barrel-files/no-barrel-files": { + "count": 4 + } + }, + "app/components/base/icons/src/vender/line/users/index.ts": { + "no-barrel-files/no-barrel-files": { + "count": 2 + } + }, + "app/components/base/icons/src/vender/line/weather/index.ts": { + "no-barrel-files/no-barrel-files": { + "count": 1 + } + }, + "app/components/base/icons/src/vender/other/index.ts": { + "no-barrel-files/no-barrel-files": { + "count": 9 + } + }, + "app/components/base/icons/src/vender/pipeline/index.ts": { + "no-barrel-files/no-barrel-files": { + "count": 3 + } + }, + "app/components/base/icons/src/vender/plugin/index.ts": { + "no-barrel-files/no-barrel-files": { + "count": 3 + } + }, + "app/components/base/icons/src/vender/solid/FinanceAndECommerce/index.ts": { + "no-barrel-files/no-barrel-files": { + "count": 2 + } + }, + "app/components/base/icons/src/vender/solid/alertsAndFeedback/index.ts": { + "no-barrel-files/no-barrel-files": { + "count": 1 + } + }, + "app/components/base/icons/src/vender/solid/arrows/index.ts": { + "no-barrel-files/no-barrel-files": { + "count": 5 + } + }, + "app/components/base/icons/src/vender/solid/communication/index.ts": { + "no-barrel-files/no-barrel-files": { + "count": 12 + } + }, + "app/components/base/icons/src/vender/solid/development/index.ts": { + "no-barrel-files/no-barrel-files": { + "count": 13 + } + }, + "app/components/base/icons/src/vender/solid/editor/index.ts": { + "no-barrel-files/no-barrel-files": { + "count": 5 + } + }, + "app/components/base/icons/src/vender/solid/education/index.ts": { + "no-barrel-files/no-barrel-files": { + "count": 4 + } + }, + "app/components/base/icons/src/vender/solid/files/index.ts": { + "no-barrel-files/no-barrel-files": { + "count": 4 + } + }, + "app/components/base/icons/src/vender/solid/general/index.ts": { + "no-barrel-files/no-barrel-files": { + "count": 18 + } + }, + "app/components/base/icons/src/vender/solid/layout/index.ts": { + "no-barrel-files/no-barrel-files": { + "count": 1 + } + }, + "app/components/base/icons/src/vender/solid/mediaAndDevices/index.ts": { + "no-barrel-files/no-barrel-files": { + "count": 12 + } + }, + "app/components/base/icons/src/vender/solid/security/index.ts": { + "no-barrel-files/no-barrel-files": { + "count": 1 + } + }, + "app/components/base/icons/src/vender/solid/shapes/index.ts": { + "no-barrel-files/no-barrel-files": { + "count": 3 + } + }, + "app/components/base/icons/src/vender/solid/users/index.ts": { + "no-barrel-files/no-barrel-files": { + "count": 4 + } + }, + "app/components/base/icons/src/vender/system/index.ts": { + "no-barrel-files/no-barrel-files": { + "count": 1 + } + }, + "app/components/base/icons/src/vender/workflow/index.ts": { + "no-barrel-files/no-barrel-files": { + "count": 31 + } + }, "app/components/base/icons/utils.ts": { "ts/no-explicit-any": { "count": 3 @@ -2467,6 +2777,11 @@ "count": 3 } }, + "app/components/base/markdown-blocks/index.ts": { + "no-barrel-files/no-barrel-files": { + "count": 11 + } + }, "app/components/base/markdown-blocks/link.tsx": { "ts/no-explicit-any": { "count": 1 @@ -2594,6 +2909,11 @@ "count": 2 } }, + "app/components/base/notion-page-selector/index.tsx": { + "no-barrel-files/no-barrel-files": { + "count": 1 + } + }, "app/components/base/notion-page-selector/page-selector/index.tsx": { "react/set-state-in-effect": { "count": 1 @@ -2659,6 +2979,9 @@ } }, "app/components/base/prompt-editor/plugins/context-block/index.tsx": { + "no-barrel-files/no-barrel-files": { + "count": 3 + }, "react-refresh/only-export-components": { "count": 2 } @@ -2669,6 +2992,9 @@ } }, "app/components/base/prompt-editor/plugins/current-block/index.tsx": { + "no-barrel-files/no-barrel-files": { + "count": 3 + }, "react-refresh/only-export-components": { "count": 2 } @@ -2684,6 +3010,9 @@ } }, "app/components/base/prompt-editor/plugins/error-message-block/index.tsx": { + "no-barrel-files/no-barrel-files": { + "count": 3 + }, "react-refresh/only-export-components": { "count": 2 } @@ -2694,6 +3023,9 @@ } }, "app/components/base/prompt-editor/plugins/history-block/index.tsx": { + "no-barrel-files/no-barrel-files": { + "count": 3 + }, "react-refresh/only-export-components": { "count": 2 } @@ -2709,6 +3041,9 @@ } }, "app/components/base/prompt-editor/plugins/hitl-input-block/index.tsx": { + "no-barrel-files/no-barrel-files": { + "count": 3 + }, "react-refresh/only-export-components": { "count": 3 } @@ -2734,11 +3069,17 @@ } }, "app/components/base/prompt-editor/plugins/last-run-block/index.tsx": { + "no-barrel-files/no-barrel-files": { + "count": 3 + }, "react-refresh/only-export-components": { "count": 2 } }, "app/components/base/prompt-editor/plugins/query-block/index.tsx": { + "no-barrel-files/no-barrel-files": { + "count": 3 + }, "react-refresh/only-export-components": { "count": 2 } @@ -2749,6 +3090,9 @@ } }, "app/components/base/prompt-editor/plugins/request-url-block/index.tsx": { + "no-barrel-files/no-barrel-files": { + "count": 3 + }, "react-refresh/only-export-components": { "count": 2 } @@ -2775,6 +3119,9 @@ } }, "app/components/base/prompt-editor/plugins/workflow-variable-block/index.tsx": { + "no-barrel-files/no-barrel-files": { + "count": 3 + }, "react-refresh/only-export-components": { "count": 3 } @@ -2958,6 +3305,11 @@ "count": 1 } }, + "app/components/base/text-generation/types.ts": { + "no-barrel-files/no-barrel-files": { + "count": 3 + } + }, "app/components/base/textarea/index.stories.tsx": { "no-console": { "count": 1 @@ -2971,6 +3323,11 @@ "count": 1 } }, + "app/components/base/toast/index.tsx": { + "no-barrel-files/no-barrel-files": { + "count": 2 + } + }, "app/components/base/video-gallery/VideoPlayer.tsx": { "react/set-state-in-effect": { "count": 1 @@ -3033,6 +3390,11 @@ "count": 1 } }, + "app/components/billing/plan/assets/index.tsx": { + "no-barrel-files/no-barrel-files": { + "count": 4 + } + }, "app/components/billing/plan/index.tsx": { "tailwindcss/enforce-consistent-class-order": { "count": 2 @@ -3041,6 +3403,11 @@ "count": 2 } }, + "app/components/billing/pricing/assets/index.tsx": { + "no-barrel-files/no-barrel-files": { + "count": 12 + } + }, "app/components/billing/pricing/plan-switcher/plan-range-switcher.tsx": { "erasable-syntax-only/enums": { "count": 1 @@ -3219,6 +3586,9 @@ } }, "app/components/datasets/create-from-pipeline/create-options/create-from-dsl-modal/index.tsx": { + "no-barrel-files/no-barrel-files": { + "count": 1 + }, "no-restricted-imports": { "count": 1 }, @@ -3340,6 +3710,16 @@ "count": 1 } }, + "app/components/datasets/create/step-one/components/index.ts": { + "no-barrel-files/no-barrel-files": { + "count": 3 + } + }, + "app/components/datasets/create/step-one/hooks/index.ts": { + "no-barrel-files/no-barrel-files": { + "count": 2 + } + }, "app/components/datasets/create/step-one/index.tsx": { "tailwindcss/enforce-consistent-class-order": { "count": 1 @@ -3363,6 +3743,11 @@ "count": 1 } }, + "app/components/datasets/create/step-two/components/index.ts": { + "no-barrel-files/no-barrel-files": { + "count": 5 + } + }, "app/components/datasets/create/step-two/components/indexing-mode-section.tsx": { "no-restricted-imports": { "count": 2 @@ -3373,6 +3758,11 @@ "count": 1 } }, + "app/components/datasets/create/step-two/hooks/index.ts": { + "no-barrel-files/no-barrel-files": { + "count": 10 + } + }, "app/components/datasets/create/step-two/hooks/use-document-creation.ts": { "no-restricted-imports": { "count": 1 @@ -3387,6 +3777,9 @@ } }, "app/components/datasets/create/step-two/index.tsx": { + "no-barrel-files/no-barrel-files": { + "count": 1 + }, "no-restricted-imports": { "count": 1 }, @@ -3545,6 +3938,21 @@ "count": 1 } }, + "app/components/datasets/documents/components/document-list/components/index.ts": { + "no-barrel-files/no-barrel-files": { + "count": 4 + } + }, + "app/components/datasets/documents/components/document-list/hooks/index.ts": { + "no-barrel-files/no-barrel-files": { + "count": 4 + } + }, + "app/components/datasets/documents/components/document-list/index.tsx": { + "no-barrel-files/no-barrel-files": { + "count": 2 + } + }, "app/components/datasets/documents/components/documents-header.tsx": { "no-restricted-imports": { "count": 1 @@ -3735,6 +4143,11 @@ "count": 2 } }, + "app/components/datasets/documents/create-from-pipeline/hooks/index.ts": { + "no-barrel-files/no-barrel-files": { + "count": 5 + } + }, "app/components/datasets/documents/create-from-pipeline/left-header.tsx": { "tailwindcss/enforce-consistent-class-order": { "count": 3 @@ -3789,6 +4202,11 @@ "count": 3 } }, + "app/components/datasets/documents/create-from-pipeline/steps/index.ts": { + "no-barrel-files/no-barrel-files": { + "count": 3 + } + }, "app/components/datasets/documents/create-from-pipeline/types.tsx": { "erasable-syntax-only/enums": { "count": 1 @@ -3886,6 +4304,11 @@ "count": 2 } }, + "app/components/datasets/documents/detail/completed/components/index.ts": { + "no-barrel-files/no-barrel-files": { + "count": 3 + } + }, "app/components/datasets/documents/detail/completed/components/menu-bar.tsx": { "no-restricted-imports": { "count": 2 @@ -3899,6 +4322,11 @@ "count": 1 } }, + "app/components/datasets/documents/detail/completed/hooks/index.ts": { + "no-barrel-files/no-barrel-files": { + "count": 10 + } + }, "app/components/datasets/documents/detail/completed/hooks/use-child-segment-data.ts": { "no-restricted-imports": { "count": 1 @@ -3915,6 +4343,9 @@ } }, "app/components/datasets/documents/detail/completed/index.tsx": { + "no-barrel-files/no-barrel-files": { + "count": 2 + }, "react-refresh/only-export-components": { "count": 1 }, @@ -3955,6 +4386,11 @@ "count": 1 } }, + "app/components/datasets/documents/detail/embedding/components/index.ts": { + "no-barrel-files/no-barrel-files": { + "count": 4 + } + }, "app/components/datasets/documents/detail/embedding/components/segment-progress.tsx": { "tailwindcss/enforce-consistent-class-order": { "count": 1 @@ -3965,6 +4401,11 @@ "count": 3 } }, + "app/components/datasets/documents/detail/embedding/hooks/index.ts": { + "no-barrel-files/no-barrel-files": { + "count": 2 + } + }, "app/components/datasets/documents/detail/embedding/index.tsx": { "no-restricted-imports": { "count": 1 @@ -3996,6 +4437,11 @@ "count": 4 } }, + "app/components/datasets/documents/detail/metadata/index.tsx": { + "no-barrel-files/no-barrel-files": { + "count": 1 + } + }, "app/components/datasets/documents/detail/segment-add/index.tsx": { "erasable-syntax-only/enums": { "count": 1 @@ -4572,6 +5018,11 @@ "count": 2 } }, + "app/components/goto-anything/actions/commands/index.ts": { + "no-barrel-files/no-barrel-files": { + "count": 5 + } + }, "app/components/goto-anything/actions/commands/registry.ts": { "ts/no-explicit-any": { "count": 3 @@ -4590,6 +5041,11 @@ "count": 1 } }, + "app/components/goto-anything/actions/index.ts": { + "no-barrel-files/no-barrel-files": { + "count": 6 + } + }, "app/components/goto-anything/actions/types.ts": { "ts/no-explicit-any": { "count": 2 @@ -4605,6 +5061,11 @@ "count": 1 } }, + "app/components/goto-anything/components/index.ts": { + "no-barrel-files/no-barrel-files": { + "count": 10 + } + }, "app/components/goto-anything/context.tsx": { "react-refresh/only-export-components": { "count": 1 @@ -4613,6 +5074,11 @@ "count": 4 } }, + "app/components/goto-anything/hooks/index.ts": { + "no-barrel-files/no-barrel-files": { + "count": 8 + } + }, "app/components/goto-anything/hooks/use-goto-anything-results.ts": { "@tanstack/query/exhaustive-deps": { "count": 1 @@ -4682,6 +5148,11 @@ "count": 1 } }, + "app/components/header/account-setting/data-source-page-new/hooks/index.ts": { + "no-barrel-files/no-barrel-files": { + "count": 2 + } + }, "app/components/header/account-setting/data-source-page-new/hooks/use-marketplace-all-plugins.ts": { "ts/no-explicit-any": { "count": 1 @@ -4822,6 +5293,11 @@ "count": 1 } }, + "app/components/header/account-setting/model-provider-page/model-auth/hooks/index.ts": { + "no-barrel-files/no-barrel-files": { + "count": 6 + } + }, "app/components/header/account-setting/model-provider-page/model-auth/hooks/use-auth.ts": { "no-restricted-imports": { "count": 1 @@ -4840,6 +5316,11 @@ "count": 2 } }, + "app/components/header/account-setting/model-provider-page/model-auth/index.tsx": { + "no-barrel-files/no-barrel-files": { + "count": 8 + } + }, "app/components/header/account-setting/model-provider-page/model-auth/switch-credential-in-load-balancing.tsx": { "no-restricted-imports": { "count": 1 @@ -4952,6 +5433,11 @@ "count": 1 } }, + "app/components/header/account-setting/model-provider-page/utils.ts": { + "no-barrel-files/no-barrel-files": { + "count": 2 + } + }, "app/components/header/account-setting/plugin-page/SerpapiPlugin.tsx": { "no-restricted-imports": { "count": 1 @@ -5277,6 +5763,9 @@ } }, "app/components/plugins/plugin-auth/index.tsx": { + "no-barrel-files/no-barrel-files": { + "count": 12 + }, "react-refresh/only-export-components": { "count": 3 } @@ -5290,6 +5779,9 @@ "erasable-syntax-only/enums": { "count": 2 }, + "no-barrel-files/no-barrel-files": { + "count": 2 + }, "ts/no-explicit-any": { "count": 1 } @@ -5351,6 +5843,16 @@ "count": 1 } }, + "app/components/plugins/plugin-detail-panel/detail-header.tsx": { + "no-barrel-files/no-barrel-files": { + "count": 1 + } + }, + "app/components/plugins/plugin-detail-panel/detail-header/components/index.ts": { + "no-barrel-files/no-barrel-files": { + "count": 2 + } + }, "app/components/plugins/plugin-detail-panel/detail-header/components/plugin-source-badge.tsx": { "no-restricted-imports": { "count": 1 @@ -5359,6 +5861,11 @@ "count": 1 } }, + "app/components/plugins/plugin-detail-panel/detail-header/hooks/index.ts": { + "no-barrel-files/no-barrel-files": { + "count": 3 + } + }, "app/components/plugins/plugin-detail-panel/endpoint-card.tsx": { "no-restricted-imports": { "count": 2 @@ -5451,6 +5958,9 @@ } }, "app/components/plugins/plugin-detail-panel/subscription-list/create/index.tsx": { + "no-barrel-files/no-barrel-files": { + "count": 3 + }, "no-restricted-imports": { "count": 3 } @@ -5487,6 +5997,9 @@ } }, "app/components/plugins/plugin-detail-panel/subscription-list/index.tsx": { + "no-barrel-files/no-barrel-files": { + "count": 3 + }, "react-refresh/only-export-components": { "count": 1 } @@ -5539,6 +6052,11 @@ "count": 1 } }, + "app/components/plugins/plugin-detail-panel/tool-selector/components/index.ts": { + "no-barrel-files/no-barrel-files": { + "count": 8 + } + }, "app/components/plugins/plugin-detail-panel/tool-selector/components/reasoning-config-form.tsx": { "no-restricted-imports": { "count": 2 @@ -5575,6 +6093,11 @@ "count": 2 } }, + "app/components/plugins/plugin-detail-panel/tool-selector/hooks/index.ts": { + "no-barrel-files/no-barrel-files": { + "count": 3 + } + }, "app/components/plugins/plugin-detail-panel/tool-selector/index.tsx": { "no-restricted-imports": { "count": 1 @@ -6022,6 +6545,11 @@ "count": 2 } }, + "app/components/rag-pipeline/hooks/index.ts": { + "no-barrel-files/no-barrel-files": { + "count": 9 + } + }, "app/components/rag-pipeline/hooks/use-DSL.ts": { "no-restricted-imports": { "count": 1 @@ -6065,6 +6593,11 @@ "count": 2 } }, + "app/components/rag-pipeline/utils/index.ts": { + "no-barrel-files/no-barrel-files": { + "count": 1 + } + }, "app/components/rag-pipeline/utils/nodes.ts": { "ts/no-explicit-any": { "count": 1 @@ -6418,6 +6951,11 @@ "count": 2 } }, + "app/components/workflow-app/hooks/index.ts": { + "no-barrel-files/no-barrel-files": { + "count": 13 + } + }, "app/components/workflow-app/hooks/use-DSL.ts": { "no-restricted-imports": { "count": 1 @@ -6461,6 +6999,11 @@ "count": 2 } }, + "app/components/workflow/__tests__/fixtures.ts": { + "no-barrel-files/no-barrel-files": { + "count": 2 + } + }, "app/components/workflow/block-selector/all-start-blocks.tsx": { "react/set-state-in-effect": { "count": 1 @@ -6735,6 +7278,11 @@ "count": 1 } }, + "app/components/workflow/hooks-store/index.ts": { + "no-barrel-files/no-barrel-files": { + "count": 2 + } + }, "app/components/workflow/hooks-store/provider.tsx": { "react-refresh/only-export-components": { "count": 1 @@ -6750,6 +7298,11 @@ "count": 1 } }, + "app/components/workflow/hooks/index.ts": { + "no-barrel-files/no-barrel-files": { + "count": 26 + } + }, "app/components/workflow/hooks/use-checklist.ts": { "ts/no-empty-object-type": { "count": 1 @@ -6793,6 +7346,16 @@ "count": 1 } }, + "app/components/workflow/hooks/use-workflow-interactions.ts": { + "no-barrel-files/no-barrel-files": { + "count": 5 + } + }, + "app/components/workflow/hooks/use-workflow-run-event/index.ts": { + "no-barrel-files/no-barrel-files": { + "count": 19 + } + }, "app/components/workflow/hooks/use-workflow-run-event/use-workflow-agent-log.ts": { "ts/no-explicit-any": { "count": 1 @@ -6875,6 +7438,11 @@ "count": 1 } }, + "app/components/workflow/nodes/_base/components/collapse/index.tsx": { + "no-barrel-files/no-barrel-files": { + "count": 1 + } + }, "app/components/workflow/nodes/_base/components/config-vision.tsx": { "no-restricted-imports": { "count": 1 @@ -7018,6 +7586,9 @@ } }, "app/components/workflow/nodes/_base/components/layout/index.tsx": { + "no-barrel-files/no-barrel-files": { + "count": 7 + }, "react-refresh/only-export-components": { "count": 7 } @@ -7260,6 +7831,11 @@ "count": 2 } }, + "app/components/workflow/nodes/_base/components/variable/variable-label/index.tsx": { + "no-barrel-files/no-barrel-files": { + "count": 5 + } + }, "app/components/workflow/nodes/_base/components/workflow-panel/index.tsx": { "no-restricted-imports": { "count": 1 @@ -7521,6 +8097,9 @@ "erasable-syntax-only/enums": { "count": 1 }, + "no-barrel-files/no-barrel-files": { + "count": 1 + }, "ts/no-explicit-any": { "count": 1 } @@ -7928,6 +8507,9 @@ "app/components/workflow/nodes/knowledge-base/types.ts": { "erasable-syntax-only/enums": { "count": 1 + }, + "no-barrel-files/no-barrel-files": { + "count": 8 } }, "app/components/workflow/nodes/knowledge-base/use-single-run-form-params.ts": { @@ -8158,6 +8740,11 @@ "count": 1 } }, + "app/components/workflow/nodes/llm/components/json-schema-config-modal/json-schema-generator/assets/index.tsx": { + "no-barrel-files/no-barrel-files": { + "count": 2 + } + }, "app/components/workflow/nodes/llm/components/json-schema-config-modal/json-schema-generator/generated-result.tsx": { "style/multiline-ternary": { "count": 2 @@ -8585,6 +9172,9 @@ } }, "app/components/workflow/nodes/tool/types.ts": { + "no-barrel-files/no-barrel-files": { + "count": 1 + }, "ts/no-explicit-any": { "count": 3 } @@ -8624,6 +9214,9 @@ } }, "app/components/workflow/nodes/trigger-plugin/types.ts": { + "no-barrel-files/no-barrel-files": { + "count": 1 + }, "ts/no-explicit-any": { "count": 4 } @@ -8712,6 +9305,11 @@ "count": 5 } }, + "app/components/workflow/note-node/note-editor/index.tsx": { + "no-barrel-files/no-barrel-files": { + "count": 3 + } + }, "app/components/workflow/note-node/note-editor/plugins/link-editor-plugin/component.tsx": { "react/set-state-in-effect": { "count": 1 @@ -9054,6 +9652,11 @@ "count": 1 } }, + "app/components/workflow/run/agent-log/index.tsx": { + "no-barrel-files/no-barrel-files": { + "count": 2 + } + }, "app/components/workflow/run/hooks.ts": { "ts/no-explicit-any": { "count": 1 @@ -9064,6 +9667,11 @@ "count": 2 } }, + "app/components/workflow/run/iteration-log/index.tsx": { + "no-barrel-files/no-barrel-files": { + "count": 2 + } + }, "app/components/workflow/run/iteration-log/iteration-log-trigger.tsx": { "tailwindcss/enforce-consistent-class-order": { "count": 1 @@ -9077,6 +9685,11 @@ "count": 2 } }, + "app/components/workflow/run/loop-log/index.tsx": { + "no-barrel-files/no-barrel-files": { + "count": 2 + } + }, "app/components/workflow/run/loop-log/loop-log-trigger.tsx": { "tailwindcss/enforce-consistent-class-order": { "count": 1 @@ -9135,6 +9748,11 @@ "count": 2 } }, + "app/components/workflow/run/retry-log/index.tsx": { + "no-barrel-files/no-barrel-files": { + "count": 2 + } + }, "app/components/workflow/run/retry-log/retry-result-panel.tsx": { "tailwindcss/enforce-consistent-class-order": { "count": 1 @@ -9188,6 +9806,11 @@ "count": 1 } }, + "app/components/workflow/store/index.ts": { + "no-barrel-files/no-barrel-files": { + "count": 2 + } + }, "app/components/workflow/store/workflow/debug/inspect-vars-slice.ts": { "ts/no-explicit-any": { "count": 2 @@ -9232,6 +9855,11 @@ "count": 1 } }, + "app/components/workflow/utils/index.ts": { + "no-barrel-files/no-barrel-files": { + "count": 10 + } + }, "app/components/workflow/utils/node-navigation.ts": { "ts/no-explicit-any": { "count": 2 @@ -9590,6 +10218,9 @@ } }, "context/modal-context-provider.tsx": { + "no-barrel-files/no-barrel-files": { + "count": 1 + }, "ts/no-explicit-any": { "count": 3 } @@ -9666,6 +10297,16 @@ "count": 4 } }, + "i18n-config/index.ts": { + "no-barrel-files/no-barrel-files": { + "count": 1 + } + }, + "i18n-config/lib.client.ts": { + "no-barrel-files/no-barrel-files": { + "count": 1 + } + }, "i18n/de-DE/billing.json": { "no-irregular-whitespace": { "count": 1 @@ -9843,6 +10484,11 @@ "count": 3 } }, + "service/try-app.ts": { + "no-barrel-files/no-barrel-files": { + "count": 2 + } + }, "service/use-apps.ts": { "ts/no-explicit-any": { "count": 1 diff --git a/web/eslint.config.mjs b/web/eslint.config.mjs index fdbd1d018c2..b97fb503ffa 100644 --- a/web/eslint.config.mjs +++ b/web/eslint.config.mjs @@ -7,6 +7,7 @@ import md from 'eslint-markdown' import tailwindcss from 'eslint-plugin-better-tailwindcss' import hyoban from 'eslint-plugin-hyoban' import markdownPreferences from 'eslint-plugin-markdown-preferences' +import noBarrelFiles from 'eslint-plugin-no-barrel-files' import { reactRefresh } from 'eslint-plugin-react-refresh' import sonar from 'eslint-plugin-sonarjs' import storybook from 'eslint-plugin-storybook' @@ -30,7 +31,11 @@ const plugins = pluginReact.configs.all.plugins export default antfu( { react: false, - nextjs: true, + nextjs: { + overrides: { + 'next/no-img-element': 'off', + }, + }, ignores: ['public', 'types/doc-paths.ts', 'eslint-suppressions.json'], typescript: { overrides: { @@ -76,6 +81,15 @@ export default antfu( 'react/no-unnecessary-use-prefix': 'off', }, }, + { + plugins: { + 'no-barrel-files': noBarrelFiles, + }, + ignores: ['next/**'], + rules: { + 'no-barrel-files/no-barrel-files': 'error', + }, + }, reactRefresh.configs.next(), markdownPreferences.configs.standard, { @@ -100,7 +114,6 @@ export default antfu( { rules: { 'node/prefer-global/process': 'off', - 'next/no-img-element': 'off', }, }, { @@ -162,7 +175,7 @@ export default antfu( }, }, { - files: ['**/package.json'], + files: ['package.json'], rules: { 'hyoban/no-dependency-version-prefix': 'error', }, diff --git a/web/package.json b/web/package.json index 765c56efd4b..2bb505db7da 100644 --- a/web/package.json +++ b/web/package.json @@ -215,6 +215,7 @@ "eslint-plugin-better-tailwindcss": "4.3.2", "eslint-plugin-hyoban": "0.14.1", "eslint-plugin-markdown-preferences": "0.40.3", + "eslint-plugin-no-barrel-files": "1.2.2", "eslint-plugin-react-hooks": "7.0.1", "eslint-plugin-react-refresh": "0.5.2", "eslint-plugin-sonarjs": "4.0.2", diff --git a/web/pnpm-lock.yaml b/web/pnpm-lock.yaml index 2801e07df81..c0f58d94eb6 100644 --- a/web/pnpm-lock.yaml +++ b/web/pnpm-lock.yaml @@ -527,6 +527,9 @@ importers: eslint-plugin-markdown-preferences: specifier: 0.40.3 version: 0.40.3(@eslint/markdown@7.5.1)(eslint@10.1.0(jiti@1.21.7)) + eslint-plugin-no-barrel-files: + specifier: 1.2.2 + version: 1.2.2(eslint@10.1.0(jiti@1.21.7))(typescript@5.9.3) eslint-plugin-react-hooks: specifier: 7.0.1 version: 7.0.1(eslint@10.1.0(jiti@1.21.7)) @@ -4917,6 +4920,9 @@ packages: peerDependencies: eslint: '>=8.23.0' + eslint-plugin-no-barrel-files@1.2.2: + resolution: {integrity: sha512-DF2bnHuEHClmL1+maBO5TD2HnnRsLj8J69FFtVkjObkELyjCXaWBsk+URJkqBpdOWURlL+raGX9AEpWCAiOV0g==} + eslint-plugin-no-only-tests@3.3.0: resolution: {integrity: sha512-brcKcxGnISN2CcVhXJ/kEQlNa0MEfGRtwKtWA16SkqXHKitaKIMrfemJKLKX1YqDU5C/5JY3PvZXd5jEW04e0Q==} engines: {node: '>=5.0.0'} @@ -12312,6 +12318,14 @@ snapshots: transitivePeerDependencies: - typescript + eslint-plugin-no-barrel-files@1.2.2(eslint@10.1.0(jiti@1.21.7))(typescript@5.9.3): + dependencies: + '@typescript-eslint/utils': 8.57.1(eslint@10.1.0(jiti@1.21.7))(typescript@5.9.3) + transitivePeerDependencies: + - eslint + - supports-color + - typescript + eslint-plugin-no-only-tests@3.3.0: {} eslint-plugin-perfectionist@5.7.0(eslint@10.1.0(jiti@1.21.7))(typescript@5.9.3):