- SECURITY.md with vulnerability disclosure policy and self-hosting guidance - Dependabot config for weekly dependency updates (npm, Docker, Actions) - ESLint v9 flat config for frontend and backend, with eslint-plugin-security - GitHub Actions CI: lint, typecheck, build, and npm audit on every push/PR - CodeQL workflow for automated security scanning (runs on push and weekly)
34 lines
1.0 KiB
JavaScript
34 lines
1.0 KiB
JavaScript
import js from '@eslint/js';
|
|
import tseslint from 'typescript-eslint';
|
|
import reactPlugin from 'eslint-plugin-react';
|
|
import reactHooks from 'eslint-plugin-react-hooks';
|
|
import security from 'eslint-plugin-security';
|
|
|
|
export default tseslint.config(
|
|
{ ignores: ['dist/**', 'node_modules/**'] },
|
|
js.configs.recommended,
|
|
...tseslint.configs.recommended,
|
|
security.configs.recommended,
|
|
{
|
|
files: ['src/**/*.{ts,tsx}'],
|
|
plugins: {
|
|
react: reactPlugin,
|
|
'react-hooks': reactHooks,
|
|
},
|
|
rules: {
|
|
// React rules
|
|
...reactPlugin.configs.recommended.rules,
|
|
...reactHooks.configs.recommended.rules,
|
|
'react/react-in-jsx-scope': 'off', // Not needed with React 17+ JSX transform
|
|
'react/prop-types': 'off', // TypeScript handles this
|
|
|
|
// TypeScript rules
|
|
'@typescript-eslint/no-explicit-any': 'warn',
|
|
'@typescript-eslint/no-unused-vars': ['warn', { argsIgnorePattern: '^_' }],
|
|
},
|
|
settings: {
|
|
react: { version: 'detect' },
|
|
},
|
|
}
|
|
);
|