- Add Legal Office of the Master seal (SVG design with Maltese Cross, scales of justice, legal scroll) - Create legal-office-manifest-template.json for Legal Office credentials - Update SEAL_MAPPING.md and DESIGN_GUIDE.md with Legal Office seal documentation - Complete Azure CDN infrastructure deployment: - Resource group, storage account, and container created - 17 PNG seal files uploaded to Azure Blob Storage - All manifest templates updated with Azure URLs - Configuration files generated (azure-cdn-config.env) - Add comprehensive Azure CDN setup scripts and documentation - Fix manifest URL generation to prevent double slashes - Verify all seals accessible via HTTPS
66 lines
1.9 KiB
JavaScript
66 lines
1.9 KiB
JavaScript
/**
|
|
* ESLint 9 Flat Config
|
|
* Migration from .eslintrc.js
|
|
*/
|
|
|
|
import js from '@eslint/js';
|
|
import tseslint from 'typescript-eslint';
|
|
import prettier from 'eslint-config-prettier';
|
|
import security from 'eslint-plugin-security';
|
|
import sonarjs from 'eslint-plugin-sonarjs';
|
|
|
|
export default tseslint.config(
|
|
js.configs.recommended,
|
|
...tseslint.configs.recommended,
|
|
prettier,
|
|
{
|
|
plugins: {
|
|
security,
|
|
sonarjs,
|
|
},
|
|
languageOptions: {
|
|
parserOptions: {
|
|
ecmaVersion: 2022,
|
|
sourceType: 'module',
|
|
},
|
|
},
|
|
rules: {
|
|
'@typescript-eslint/no-unused-vars': ['error', { argsIgnorePattern: '^_' }],
|
|
'@typescript-eslint/explicit-function-return-type': 'warn',
|
|
'@typescript-eslint/no-explicit-any': 'error',
|
|
'security/detect-object-injection': 'warn',
|
|
// Temporarily disabled due to ESLint 9 compatibility issues
|
|
// 'security/detect-non-literal-regexp': 'warn',
|
|
'sonarjs/cognitive-complexity': ['warn', 15],
|
|
},
|
|
},
|
|
// Type-checked config for packages with tsconfig.json
|
|
...tseslint.configs.recommendedTypeChecked.map((config) => ({
|
|
...config,
|
|
languageOptions: {
|
|
...config.languageOptions,
|
|
parserOptions: {
|
|
...config.languageOptions?.parserOptions,
|
|
project: ['./tsconfig.json', './packages/*/tsconfig.json', './apps/*/tsconfig.json', './services/*/tsconfig.json'],
|
|
tsconfigRootDir: import.meta.dirname,
|
|
},
|
|
},
|
|
})),
|
|
{
|
|
languageOptions: {
|
|
parserOptions: {
|
|
project: ['./tsconfig.json', './packages/*/tsconfig.json', './apps/*/tsconfig.json', './services/*/tsconfig.json'],
|
|
tsconfigRootDir: import.meta.dirname,
|
|
},
|
|
},
|
|
rules: {
|
|
'@typescript-eslint/no-floating-promises': 'error',
|
|
'@typescript-eslint/await-thenable': 'error',
|
|
},
|
|
},
|
|
{
|
|
ignores: ['node_modules', 'dist', 'build', '.next', 'coverage', '**/*.config.js'],
|
|
}
|
|
);
|
|
|