const js = require('@eslint/js') const tsPlugin = require('@typescript-eslint/eslint-plugin') const tsParser = require('@typescript-eslint/parser') const vuePlugin = require('eslint-plugin-vue') const vueParser = require('vue-eslint-parser') module.exports = [ { ignores: [ 'dist/**', 'node_modules/**', 'eslint.config.cjs' ] }, js.configs.recommended, ...tsPlugin.configs['flat/recommended'], ...vuePlugin.configs['flat/recommended'], { files: ['**/*.{js,jsx,cjs,mjs,ts,tsx,cts,mts,vue}'], languageOptions: { ecmaVersion: 'latest', sourceType: 'module', globals: { window: 'readonly', document: 'readonly', navigator: 'readonly', localStorage: 'readonly', console: 'readonly', setTimeout: 'readonly', clearTimeout: 'readonly', setInterval: 'readonly', clearInterval: 'readonly', HTMLElement: 'readonly', HTMLInputElement: 'readonly', MouseEvent: 'readonly', Event: 'readonly', Node: 'readonly' }, parserOptions: { parser: tsParser } }, rules: { 'vue/multi-word-component-names': 'off' } }, { files: ['**/*.vue'], languageOptions: { parser: vueParser, parserOptions: { ecmaVersion: 'latest', sourceType: 'module', parser: tsParser } } } ]