import nextConfig from 'eslint-config-next' import nextCoreWebVitals from 'eslint-config-next/core-web-vitals' import nextTypescript from 'eslint-config-next/typescript' import prettier from 'eslint-config-prettier' const eslintConfig = [ ...nextConfig, ...nextCoreWebVitals, ...nextTypescript, prettier, { ignores: [ // React Compiler false positives in third-party patterns 'components/ui/file-upload.tsx', 'components/ui/origin/evervault-card.tsx', 'app/providers/*-store-providers.tsx', 'components/ui/sidebar.tsx', ], }, { rules: { 'react/no-unescaped-entities': 'off', '@next/next/no-page-custom-font': 'off', 'quotes': ['error', 'single'], '@typescript-eslint/no-explicit-any': 'warn', '@typescript-eslint/no-non-null-asserted-optional-chain': 'warn', '@typescript-eslint/ban-ts-comment': ['warn', { 'ts-expect-error': 'allow-with-description', 'ts-ignore': false, 'ts-nocheck': false, minimumDescriptionLength: 0, }], 'no-multiple-empty-lines': ['error', { 'max': 1 }], 'semi': ['error', 'never'], 'no-unused-vars': 'warn', 'react-hooks/rules-of-hooks': 'warn', 'react-hooks/immutability': 'warn', 'react-hooks/preserve-manual-memoization': 'warn', 'react-hooks/purity': 'warn', 'react-hooks/set-state-in-effect': 'warn', }, }, ] export default eslintConfig