module.exports = { root: true, env: { browser: true, es6: true, node: true }, parser: '@typescript-eslint/parser', parserOptions: { sourceType: 'module', extraFileExtensions: ['.json'] }, ignorePatterns: ['.eslintrc.js', '**/*.js', '**/node_modules/**', '**/dist/**'], overrides: [ { files: ['package.json'], plugins: ['eslint-plugin-n8n-nodes-base'], extends: ['plugin:n8n-nodes-base/community'], rules: { 'n8n-nodes-base/community-package-json-name-still-default': 'off', 'n8n-nodes-base/community-package-json-license-not-default': 'off', }, }, { files: ['./credentials/**/*.ts'], plugins: ['eslint-plugin-n8n-nodes-base'], extends: ['plugin:n8n-nodes-base/credentials'], rules: { // This rule only applies to nodes in n8n's main repository (where // documentationUrl is an internal docs slug). Community nodes use a // full external URL, so it is disabled here. 'n8n-nodes-base/cred-class-field-documentation-url-miscased': 'off', }, }, { files: ['./nodes/**/*.ts'], plugins: ['eslint-plugin-n8n-nodes-base'], extends: ['plugin:n8n-nodes-base/nodes'], rules: { // Superseded by the verification scanner's `@n8n/community-nodes` // node-connection-type-literal rule, which requires // NodeConnectionTypes.Main instead of the 'main' string literal. // n8n's own scanner disables these two, so we match it. 'n8n-nodes-base/node-class-description-inputs-wrong-regular-node': 'off', 'n8n-nodes-base/node-class-description-outputs-wrong': 'off', }, }, ], };