Some checks failed
CICD / Build and Push CICD Images (push) Successful in 37m29s
CICD / Build CICD Image Failure Postmortem (push) Has been skipped
CICD / Source Checks (push) Successful in 8m58s
CICD / Dependency Audits (Informational) (push) Successful in 1m26s
CICD / Source Lanes Failure Postmortem (push) Has been skipped
CICD / CICD Tests Complete (push) Successful in 5s
CICD / Build Release Images (push) Failing after 5m45s
CICD / Production Images Complete (push) Has been cancelled
CICD / Production Image Failures Postmortem (push) Has been cancelled
CICD / Runtime Black-Box Integration Tests (push) Has been cancelled
CICD / Integration Tests Failure Postmortem (push) Has been cancelled
CICD / End-to-End Tests (push) Has been cancelled
CICD / E2E Tests Failure Postmortem (push) Has been cancelled
CICD / Promote Staging Images To Release (push) Has been cancelled
CICD / Build Tester Images (push) Has started running
115 lines
3.0 KiB
JavaScript
115 lines
3.0 KiB
JavaScript
import typescript from '@typescript-eslint/eslint-plugin';
|
|
import typescriptParser from '@typescript-eslint/parser';
|
|
import vue from 'eslint-plugin-vue';
|
|
import vueParser from 'vue-eslint-parser';
|
|
import jsdoc from 'eslint-plugin-jsdoc';
|
|
import tsdoc from 'eslint-plugin-tsdoc';
|
|
import security from 'eslint-plugin-security';
|
|
|
|
const securityRules = security.configs?.recommended?.rules ?? {};
|
|
|
|
export default [
|
|
// Ignore patterns (replaces .eslintignore)
|
|
{
|
|
ignores: [
|
|
'node_modules/',
|
|
'.yarn/',
|
|
'dist/',
|
|
'dist-ssr/',
|
|
'*.local',
|
|
'coverage/',
|
|
'.env*',
|
|
'.vscode/',
|
|
'.idea/',
|
|
'*.tmp',
|
|
'*.temp',
|
|
],
|
|
},
|
|
|
|
// JavaScript files
|
|
{
|
|
files: ['**/*.{js,mjs,cjs}'],
|
|
languageOptions: {
|
|
ecmaVersion: 'latest',
|
|
sourceType: 'module',
|
|
},
|
|
plugins: {
|
|
security,
|
|
},
|
|
rules: {
|
|
'no-console': process.env.NODE_ENV === 'production' ? 'warn' : 'off',
|
|
'no-debugger': process.env.NODE_ENV === 'production' ? 'warn' : 'off',
|
|
...securityRules,
|
|
},
|
|
},
|
|
|
|
// TypeScript files
|
|
{
|
|
files: ['**/*.{ts,tsx}'],
|
|
languageOptions: {
|
|
parser: typescriptParser,
|
|
ecmaVersion: 'latest',
|
|
sourceType: 'module',
|
|
},
|
|
plugins: {
|
|
'@typescript-eslint': typescript,
|
|
jsdoc,
|
|
tsdoc,
|
|
security,
|
|
},
|
|
rules: {
|
|
'no-console': process.env.NODE_ENV === 'production' ? 'warn' : 'off',
|
|
'no-debugger': process.env.NODE_ENV === 'production' ? 'warn' : 'off',
|
|
...securityRules,
|
|
// TSDoc rules for TypeScript files
|
|
'tsdoc/syntax': 'error',
|
|
'jsdoc/require-description': 'error',
|
|
'jsdoc/require-param': 'error',
|
|
'jsdoc/require-param-description': 'error',
|
|
'jsdoc/require-returns': 'error',
|
|
'jsdoc/require-returns-description': 'error',
|
|
'jsdoc/check-param-names': 'error',
|
|
'jsdoc/check-tag-names': 'error',
|
|
'jsdoc/check-types': 'error',
|
|
'jsdoc/valid-types': 'error',
|
|
},
|
|
},
|
|
|
|
// Vue files
|
|
{
|
|
files: ['**/*.vue'],
|
|
languageOptions: {
|
|
parser: vueParser,
|
|
parserOptions: {
|
|
parser: typescriptParser,
|
|
ecmaVersion: 'latest',
|
|
sourceType: 'module',
|
|
},
|
|
},
|
|
plugins: {
|
|
vue,
|
|
'@typescript-eslint': typescript,
|
|
jsdoc,
|
|
tsdoc,
|
|
security,
|
|
},
|
|
rules: {
|
|
...vue.configs['essential'].rules,
|
|
'no-console': process.env.NODE_ENV === 'production' ? 'warn' : 'off',
|
|
'no-debugger': process.env.NODE_ENV === 'production' ? 'warn' : 'off',
|
|
...securityRules,
|
|
// TSDoc rules for Vue files
|
|
'tsdoc/syntax': 'error',
|
|
'jsdoc/require-description': 'error',
|
|
'jsdoc/require-param': 'error',
|
|
'jsdoc/require-param-description': 'error',
|
|
'jsdoc/require-returns': 'error',
|
|
'jsdoc/require-returns-description': 'error',
|
|
'jsdoc/check-param-names': 'error',
|
|
'jsdoc/check-tag-names': 'error',
|
|
'jsdoc/check-types': 'error',
|
|
'jsdoc/valid-types': 'error',
|
|
},
|
|
},
|
|
];
|