@perfective/eslint-config 0.29.2 → 0.30.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (77) hide show
  1. package/LICENSE +1 -1
  2. package/README.adoc +24 -18
  3. package/README.md +20 -16
  4. package/config/node.d.ts +7 -0
  5. package/config/node.js +7 -11
  6. package/config/plugin.d.ts +9 -0
  7. package/config/plugin.js +22 -26
  8. package/config.js +1 -6
  9. package/cypress.d.ts +5 -0
  10. package/cypress.js +31 -56
  11. package/index.d.ts +46 -12
  12. package/index.js +100 -144
  13. package/jest-dom.js +8 -11
  14. package/jest.d.ts +6 -0
  15. package/jest.js +29 -24
  16. package/package.json +18 -17
  17. package/rules/array-func/index.d.ts +1 -2
  18. package/rules/array-func/index.js +14 -50
  19. package/rules/cypress/index.d.ts +11 -3
  20. package/rules/cypress/index.js +23 -57
  21. package/rules/eslint/index.js +6 -9
  22. package/rules/eslint/layout-formatting.js +64 -67
  23. package/rules/eslint/possible-problems.js +96 -99
  24. package/rules/eslint/suggestions.js +181 -182
  25. package/rules/eslint-comments/best-practices.js +8 -11
  26. package/rules/eslint-comments/index.d.ts +1 -2
  27. package/rules/eslint-comments/index.js +9 -45
  28. package/rules/eslint-comments/stylistic-issues.js +9 -18
  29. package/rules/import/helpful-warnings.js +11 -14
  30. package/rules/import/index.js +11 -14
  31. package/rules/import/module-systems.js +10 -13
  32. package/rules/import/rules/no-extraneous-dependencies.d.ts +3 -0
  33. package/rules/import/rules/no-extraneous-dependencies.js +20 -21
  34. package/rules/import/static-analysis.js +26 -29
  35. package/rules/import/style-guide.js +33 -36
  36. package/rules/jest/index.js +98 -72
  37. package/rules/jest/typescript-eslint.js +5 -8
  38. package/rules/jest-dom/index.js +19 -55
  39. package/rules/jsdoc/index.d.ts +1 -1
  40. package/rules/jsdoc/index.js +158 -344
  41. package/rules/n/index.d.ts +1 -1
  42. package/rules/n/index.js +64 -98
  43. package/rules/prefer-arrow/index.d.ts +1 -2
  44. package/rules/prefer-arrow/index.js +14 -50
  45. package/rules/promise/index.d.ts +1 -2
  46. package/rules/promise/index.js +35 -73
  47. package/rules/rxjs/index.d.ts +1 -1
  48. package/rules/rxjs/index.js +60 -96
  49. package/rules/security/index.d.ts +1 -2
  50. package/rules/security/index.js +22 -58
  51. package/rules/simple-import-sort/index.js +12 -48
  52. package/rules/simple-import-sort/rules/imports.d.ts +11 -0
  53. package/rules/simple-import-sort/rules/imports.js +18 -32
  54. package/rules/stylistic/js/index.d.ts +9 -2
  55. package/rules/stylistic/js/index.js +198 -236
  56. package/rules/stylistic/jsx/index.d.ts +8 -2
  57. package/rules/stylistic/jsx/index.js +81 -117
  58. package/rules/stylistic/plus/index.d.ts +6 -2
  59. package/rules/stylistic/plus/index.js +14 -50
  60. package/rules/stylistic/ts/index.d.ts +8 -2
  61. package/rules/stylistic/ts/index.js +135 -169
  62. package/rules/testing-library/index.js +41 -77
  63. package/rules/typescript-eslint/extension-rules.js +113 -116
  64. package/rules/typescript-eslint/index.d.ts +2 -0
  65. package/rules/typescript-eslint/index.js +9 -45
  66. package/rules/typescript-eslint/rules/typescript-eslint-naming-convention.d.ts +5 -0
  67. package/rules/typescript-eslint/rules/typescript-eslint-naming-convention.js +24 -30
  68. package/rules/typescript-eslint/supported-rules.d.ts +2 -0
  69. package/rules/typescript-eslint/supported-rules.js +256 -319
  70. package/rules/unicorn/index.d.ts +7 -2
  71. package/rules/unicorn/index.js +178 -209
  72. package/rules/unicorn/rules/prevent-abbreviations.d.ts +8 -0
  73. package/rules/unicorn/rules/prevent-abbreviations.js +30 -8
  74. package/rules.js +4 -14
  75. package/rxjs.d.ts +5 -0
  76. package/rxjs.js +21 -57
  77. package/testing-library.js +8 -11
package/LICENSE CHANGED
@@ -1,6 +1,6 @@
1
1
  The MIT License
2
2
 
3
- Copyright (c) 2020-2024 Andrey Mikheychik (https://github.com/amikheychik)
3
+ Copyright (c) 2020-2025 Andrey Mikheychik (https://github.com/amikheychik)
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
package/README.adoc CHANGED
@@ -90,21 +90,25 @@ npm install --save-dev \
90
90
  +
91
91
  [source,javascript]
92
92
  ----
93
- const perfectiveEslintConfig = require('@perfective/eslint-config');
94
- const perfectiveCypressConfig = require('@perfective/eslint-config/cypress');
95
- const perfectiveJestConfig = require('@perfective/eslint-config/jest');
96
- const perfectiveJestDomConfig = require('@perfective/eslint-config/jest-dom');
97
- const perfectiveRxjsConfig = require('@perfective/eslint-config/rxjs');
98
- const perfectiveTestingLibraryConfig = require('@perfective/eslint-config/testing-library');
99
-
100
- module.exports = [
101
- ...perfectiveEslintConfig.default,
102
- perfectiveCypressConfig.cypressConfig(),
103
- perfectiveJestConfig.jestConfig(),
104
- perfectiveJestDomConfig.jestDomConfig(),
105
- perfectiveRxjsConfig.rxjsConfig(),
106
- perfectiveTestingLibraryConfig.testingLibrarysConfig(),
93
+ import perfectiveEslintConfig from '@perfective/eslint-config';
94
+
95
+ // Optional dependencies.
96
+ import { cypressConfig } from '@perfective/eslint-config/cypress';
97
+ import { jestConfig } from '@perfective/eslint-config/jest';
98
+ import { jestDomConfig } from '@perfective/eslint-config/jest-dom';
99
+ import { rxjsConfig } from '@perfective/eslint-config/rxjs';
100
+ import { testingLibraryConfig } from '@perfective/eslint-config/testing-library';
101
+
102
+ const eslintConfig = [
103
+ ...perfectiveEslintConfig,
104
+ cypressConfig(),
105
+ jestConfig(),
106
+ jestDomConfig(),
107
+ rxjsConfig(),
108
+ testingLibraryConfig(),
107
109
  ];
110
+
111
+ export default eslintConfig;
108
112
  ----
109
113
 
110
114
  == Rules Configuration Extension Functions
@@ -122,11 +126,11 @@ you can use these functions in the `eslint.config.js` file:
122
126
 
123
127
  [source,javascript]
124
128
  ----
125
- const perfectiveEslintConfig = require('@perfective/eslint-config');
126
- const rules = require('@perfective/eslint-config/rules'); // <.>
129
+ import perfectiveEslintConfig from '@perfective/eslint-config';
130
+ import { simpleImportSortImports } from '@perfective/eslint-config/rules'; // <.>
127
131
 
128
- module.exports = [
129
- ...perfectiveEslintConfig.default,
132
+ const eslintConfig = [
133
+ ...perfectiveEslintConfig,
130
134
  {
131
135
  files: ['**/*.[jt]s?(x)'],
132
136
  rules: {
@@ -136,6 +140,8 @@ module.exports = [
136
140
  },
137
141
  },
138
142
  ];
143
+
144
+ export default eslintConfig;
139
145
  ----
140
146
  <1> Framework-specific packages, based on `@perfective/eslint-config`, re-export all the rules.
141
147
  So rules should be required from those packages for correct `node_modules` resolution.
package/README.md CHANGED
@@ -61,9 +61,9 @@ from issues that will be fixed automatically.
61
61
  2. Require the configuration in your root `eslint.config.js`.
62
62
 
63
63
  ```javascript
64
- const perfectiveEslintConfig = require('@perfective/eslint-config');
64
+ import perfectiveEslintConfig from '@perfective/eslint-config';
65
65
 
66
- module.exports = perfectiveEslintConfig.default;
66
+ export default perfectiveEslintConfig;
67
67
  ```
68
68
 
69
69
  3. Install optional peer dependencies that add linting rules for the tools you use.
@@ -83,19 +83,23 @@ from issues that will be fixed automatically.
83
83
  4. Add optional configurations to your root `eslint.config.js`.
84
84
 
85
85
  ```javascript
86
- const perfectiveEslintConfig = require('@perfective/eslint-config');
87
- const perfectiveCypressConfig = require('@perfective/eslint-config/cypress');
88
- const perfectiveJestConfig = require('@perfective/eslint-config/jest');
89
- const perfectiveJestDomConfig = require('@perfective/eslint-config/jest-dom');
90
- const perfectiveRxjsConfig = require('@perfective/eslint-config/rxjs');
91
- const perfectiveTestingLibraryConfig = require('@perfective/eslint-config/testing-library');
92
-
93
- module.exports = [
94
- ...perfectiveEslintConfig.default,
95
- perfectiveCypressConfig.cypressConfig(),
96
- perfectiveJestConfig.jestConfig(),
97
- perfectiveJestDomConfig.jestDomConfig(),
98
- perfectiveRxjsConfig.rxjsConfig(),
99
- perfectiveTestingLibraryConfig.testingLibrarysConfig(),
86
+ import perfectiveEslintConfig from '@perfective/eslint-config';
87
+
88
+ // Optional dependencies.
89
+ import { cypressConfig } from '@perfective/eslint-config/cypress';
90
+ import { jestConfig } from '@perfective/eslint-config/jest';
91
+ import { jestDomConfig } from '@perfective/eslint-config/jest-dom';
92
+ import { rxjsConfig } from '@perfective/eslint-config/rxjs';
93
+ import { testingLibraryConfig } from '@perfective/eslint-config/testing-library';
94
+
95
+ const eslintConfig = [
96
+ ...perfectiveEslintConfig,
97
+ cypressConfig(),
98
+ jestConfig(),
99
+ jestDomConfig(),
100
+ rxjsConfig(),
101
+ testingLibraryConfig(),
100
102
  ];
103
+
104
+ export default eslintConfig;
101
105
  ```
package/config/node.d.ts CHANGED
@@ -1 +1,8 @@
1
+ /**
2
+ * Returns true if a given `module` can be resolved in node_modules.
3
+ *
4
+ * A module does not have to be required directly by the package.json.
5
+ * The function returns true,
6
+ * even if it is installed as a dependency of another dependency but can be loaded by NodeJS.
7
+ */
1
8
  export declare function hasNodeModule(module: string): boolean;
package/config/node.js CHANGED
@@ -1,11 +1,7 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.hasNodeModule = hasNodeModule;
4
- function hasNodeModule(module) {
5
- try {
6
- return Boolean(require.resolve(module));
7
- }
8
- catch (_a) {
9
- return false;
10
- }
11
- }
1
+ export function hasNodeModule(module) {
2
+ try {
3
+ return Boolean(require.resolve(module));
4
+ } catch (_a) {
5
+ return false;
6
+ }
7
+ }
@@ -1,2 +1,11 @@
1
+ /**
2
+ * If a given rule belongs to an installed ESLint plugin,
3
+ * returns an object with rule as a key and its config as a value.
4
+ *
5
+ * Otherwise, returns an empty object.
6
+ */
1
7
  export declare function optionalRule(rule: string, config: unknown): Record<string, unknown>;
8
+ /**
9
+ * Returns true if a given ESLint plugin exists.
10
+ */
2
11
  export declare function hasEslintPlugin(plugin: string): boolean;
package/config/plugin.js CHANGED
@@ -1,30 +1,26 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.optionalRule = optionalRule;
4
- exports.hasEslintPlugin = hasEslintPlugin;
5
- const node_1 = require("./node");
6
- function optionalRule(rule, config) {
7
- const plugin = pluginOfRule(rule);
8
- if (plugin === null) {
9
- return {};
10
- }
11
- if (hasEslintPlugin(plugin)) {
12
- return {
13
- [rule]: config,
14
- };
15
- }
1
+ import { hasNodeModule } from "./node.js";
2
+ export function optionalRule(rule, config) {
3
+ const plugin = pluginOfRule(rule);
4
+ if (plugin === null) {
16
5
  return {};
6
+ }
7
+ if (hasEslintPlugin(plugin)) {
8
+ return {
9
+ [rule]: config
10
+ };
11
+ }
12
+ return {};
17
13
  }
18
- function hasEslintPlugin(plugin) {
19
- if (plugin.startsWith('@')) {
20
- return (0, node_1.hasNodeModule)(`${plugin}/eslint-plugin`);
21
- }
22
- return (0, node_1.hasNodeModule)(`eslint-plugin-${plugin}`);
14
+ export function hasEslintPlugin(plugin) {
15
+ if (plugin.startsWith('@')) {
16
+ return hasNodeModule(`${plugin}/eslint-plugin`);
17
+ }
18
+ return hasNodeModule(`eslint-plugin-${plugin}`);
23
19
  }
24
20
  function pluginOfRule(rule) {
25
- const parts = rule.split('/');
26
- if (parts.length > 1) {
27
- return parts[0];
28
- }
29
- return null;
30
- }
21
+ const parts = rule.split('/');
22
+ if (parts.length > 1) {
23
+ return parts[0];
24
+ }
25
+ return null;
26
+ }
package/config.js CHANGED
@@ -1,6 +1 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.optionalRule = exports.hasEslintPlugin = void 0;
4
- var plugin_1 = require("./config/plugin");
5
- Object.defineProperty(exports, "hasEslintPlugin", { enumerable: true, get: function () { return plugin_1.hasEslintPlugin; } });
6
- Object.defineProperty(exports, "optionalRule", { enumerable: true, get: function () { return plugin_1.optionalRule; } });
1
+ export { hasEslintPlugin, optionalRule } from "./config/plugin.js";
package/cypress.d.ts CHANGED
@@ -1 +1,6 @@
1
+ /**
2
+ * Configuration for the eslint-plugin-cypress.
3
+ *
4
+ * @param files - A list of globs with the Cypress test files.
5
+ */
1
6
  export declare function cypressConfig(files?: string[]): Record<string, unknown>;
package/cypress.js CHANGED
@@ -1,56 +1,31 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.cypressConfig = cypressConfig;
37
- const tsEslint = __importStar(require("typescript-eslint"));
38
- const cypress_1 = require("./rules/cypress");
39
- const no_extraneous_dependencies_1 = require("./rules/import/rules/no-extraneous-dependencies");
40
- function cypressConfig(files = ['cypress/**/*.[jt]s']) {
41
- return {
42
- files,
43
- languageOptions: Object.assign({ sourceType: 'module', ecmaVersion: 'latest', parser: tsEslint.parser, parserOptions: {
44
- ecmaFeatures: {
45
- globalReturn: false,
46
- impliedStrict: true,
47
- },
48
- projectService: true,
49
- warnOnUnsupportedTypeScriptVersion: true,
50
- } }, cypress_1.cypressOptionalConfig.languageOptions),
51
- plugins: Object.assign({}, cypress_1.cypressOptionalConfig.plugins),
52
- rules: Object.assign(Object.assign({}, cypress_1.cypressOptionalConfig.rules), { 'init-declarations': 'off', '@typescript-eslint/init-declarations': 'off', 'import/no-extraneous-dependencies': ['error', (0, no_extraneous_dependencies_1.cypressImportNoExtraneousDependencies)()], 'max-nested-callbacks': ['error', 4], 'new-cap': ['error', {
53
- capIsNewExceptions: ['Given', 'When', 'Then', 'And', 'But', 'Before', 'After'],
54
- }] }),
55
- };
56
- }
1
+ import { parser } from 'typescript-eslint';
2
+ import { cypressOptionalConfig } from "./rules/cypress/index.js";
3
+ import { cypressImportNoExtraneousDependencies } from "./rules/import/rules/no-extraneous-dependencies.js";
4
+ export function cypressConfig(files = ['cypress/**/*.[jt]s']) {
5
+ return {
6
+ files,
7
+ languageOptions: Object.assign({
8
+ sourceType: 'module',
9
+ ecmaVersion: 'latest',
10
+ parser,
11
+ parserOptions: {
12
+ ecmaFeatures: {
13
+ globalReturn: false,
14
+ impliedStrict: true
15
+ },
16
+ projectService: true,
17
+ warnOnUnsupportedTypeScriptVersion: true
18
+ }
19
+ }, cypressOptionalConfig.languageOptions),
20
+ plugins: Object.assign({}, cypressOptionalConfig.plugins),
21
+ rules: Object.assign(Object.assign({}, cypressOptionalConfig.rules), {
22
+ 'init-declarations': 'off',
23
+ '@typescript-eslint/init-declarations': 'off',
24
+ 'import/no-extraneous-dependencies': ['error', cypressImportNoExtraneousDependencies()],
25
+ 'max-nested-callbacks': ['error', 4],
26
+ 'new-cap': ['error', {
27
+ capIsNewExceptions: ['Given', 'When', 'Then', 'And', 'But', 'Before', 'After']
28
+ }]
29
+ })
30
+ };
31
+ }
package/index.d.ts CHANGED
@@ -25,27 +25,39 @@ declare const _default: ({
25
25
  plugins: {
26
26
  unicorn: import("eslint").ESLint.Plugin & {
27
27
  configs: {
28
- recommended: import("eslint").Linter.Config;
29
- all: import("eslint").Linter.Config;
28
+ recommended: import("eslint").Linter.FlatConfig;
29
+ all: import("eslint").Linter.FlatConfig;
30
30
  "flat/all": import("eslint").Linter.FlatConfig;
31
31
  "flat/recommended": import("eslint").Linter.FlatConfig;
32
32
  };
33
33
  };
34
- '@stylistic/plus': typeof import("@stylistic/eslint-plugin-plus");
35
- '@stylistic/js': typeof import("@stylistic/eslint-plugin-js");
34
+ '@stylistic/plus': {
35
+ rules: import("@stylistic/eslint-plugin-plus").Rules;
36
+ configs: {
37
+ "disable-legacy": import("eslint").Linter.Config;
38
+ };
39
+ };
40
+ '@stylistic/js': {
41
+ rules: import("@stylistic/eslint-plugin-js").Rules;
42
+ configs: {
43
+ "disable-legacy": import("eslint").Linter.Config;
44
+ "all": import("eslint").Linter.Config;
45
+ "all-flat": import("eslint").Linter.Config;
46
+ };
47
+ };
36
48
  'simple-import-sort': import("eslint").ESLint.Plugin;
37
- security: typeof import("eslint-plugin-security");
38
- promise: typeof import("eslint-plugin-promise");
39
- 'prefer-arrow': typeof import("eslint-plugin-prefer-arrow");
49
+ security: import("@typescript-eslint/utils/dist/ts-eslint").FlatConfig.Plugin;
50
+ promise: import("@typescript-eslint/utils/dist/ts-eslint").FlatConfig.Plugin;
51
+ 'prefer-arrow': import("@typescript-eslint/utils/dist/ts-eslint").FlatConfig.Plugin;
40
52
  n: import("eslint").ESLint.Plugin & {
41
53
  configs: import("eslint-plugin-n").Configs;
42
54
  };
43
55
  jsdoc: {
44
- rules: Record<string, import("eslint").Rule.RuleModule> | undefined;
56
+ rules: Record<string, import("@eslint/core").RuleDefinition<import("@eslint/core").RuleDefinitionTypeOptions>> | undefined;
45
57
  };
46
58
  import: Record<string, unknown>;
47
- 'eslint-comments': typeof import("eslint-plugin-eslint-comments");
48
- 'array-func': typeof import("eslint-plugin-array-func");
59
+ 'eslint-comments': import("@typescript-eslint/utils/dist/ts-eslint").FlatConfig.Plugin;
60
+ 'array-func': import("@typescript-eslint/utils/dist/ts-eslint").FlatConfig.Plugin;
49
61
  };
50
62
  settings: {
51
63
  jsdoc: {
@@ -75,6 +87,8 @@ declare const _default: ({
75
87
  rules: {
76
88
  'unicorn/better-regex': string;
77
89
  'unicorn/catch-error-name': string;
90
+ 'unicorn/consistent-assert': string;
91
+ 'unicorn/consistent-date-clone': string;
78
92
  'unicorn/consistent-destructuring': string;
79
93
  'unicorn/consistent-empty-array-spread': string;
80
94
  'unicorn/consistent-existence-index-check': string;
@@ -94,6 +108,7 @@ declare const _default: ({
94
108
  'unicorn/import-style': string;
95
109
  'unicorn/new-for-builtins': string;
96
110
  'unicorn/no-abusive-eslint-disable': string;
111
+ 'unicorn/no-accessor-recursion': string;
97
112
  'unicorn/no-anonymous-default-export': string;
98
113
  'unicorn/no-array-callback-reference': string;
99
114
  'unicorn/no-array-for-each': string;
@@ -110,6 +125,7 @@ declare const _default: ({
110
125
  'unicorn/no-for-loop': string;
111
126
  'unicorn/no-hex-escape': string;
112
127
  'unicorn/no-instanceof-array': string;
128
+ 'unicorn/no-instanceof-builtins': string;
113
129
  'unicorn/no-invalid-fetch-options': string;
114
130
  'unicorn/no-invalid-remove-event-listener': string;
115
131
  'unicorn/no-keyword-prefix': (string | {
@@ -120,6 +136,7 @@ declare const _default: ({
120
136
  'unicorn/no-length-as-slice-end': string;
121
137
  'unicorn/no-lonely-if': string;
122
138
  'unicorn/no-magic-array-flat-depth': string;
139
+ 'unicorn/no-named-default': string;
123
140
  'unicorn/no-negated-condition': string;
124
141
  'unicorn/no-negation-in-equality-check': string;
125
142
  'unicorn/no-nested-ternary': string;
@@ -339,6 +356,7 @@ declare const _default: ({
339
356
  '@stylistic/js/no-extra-parens': (string | {
340
357
  ignoreJSX: string;
341
358
  nestedBinaryExpressions: boolean;
359
+ nestedConditionalExpressions: boolean;
342
360
  enforceForArrowConditionals: boolean;
343
361
  ternaryOperandBinaryExpressions: boolean;
344
362
  })[];
@@ -1119,7 +1137,14 @@ declare const _default: ({
1119
1137
  };
1120
1138
  };
1121
1139
  plugins: {
1122
- '@stylistic/ts': typeof import("@stylistic/eslint-plugin-ts");
1140
+ '@stylistic/ts': {
1141
+ rules: import("@stylistic/eslint-plugin-ts").Rules;
1142
+ configs: {
1143
+ "disable-legacy": import("eslint").Linter.Config;
1144
+ "all": import("eslint").Linter.Config;
1145
+ "all-flat": import("eslint").Linter.Config;
1146
+ };
1147
+ };
1123
1148
  '@typescript-eslint': import("@typescript-eslint/utils/dist/ts-eslint").FlatConfig.Plugin;
1124
1149
  };
1125
1150
  settings: {
@@ -1388,6 +1413,7 @@ declare const _default: ({
1388
1413
  '@typescript-eslint/consistent-indexed-object-style': string[];
1389
1414
  '@typescript-eslint/consistent-type-assertions': (string | {
1390
1415
  assertionStyle: string;
1416
+ arrayLiteralTypeAssertions: string;
1391
1417
  objectLiteralTypeAssertions: string;
1392
1418
  })[];
1393
1419
  '@typescript-eslint/consistent-type-definitions': string[];
@@ -1469,6 +1495,7 @@ declare const _default: ({
1469
1495
  checksConditionals: boolean;
1470
1496
  checksVoidReturn: boolean;
1471
1497
  })[];
1498
+ '@typescript-eslint/no-misused-spread': string;
1472
1499
  '@typescript-eslint/no-mixed-enums': string;
1473
1500
  '@typescript-eslint/no-namespace': string;
1474
1501
  '@typescript-eslint/no-non-null-asserted-nullish-coalescing': string;
@@ -1639,7 +1666,14 @@ declare const _default: ({
1639
1666
  } | {
1640
1667
  files: string[];
1641
1668
  plugins: {
1642
- '@stylistic/jsx': typeof import("@stylistic/eslint-plugin-jsx");
1669
+ '@stylistic/jsx': {
1670
+ rules: import("@stylistic/eslint-plugin-jsx").Rules;
1671
+ configs: {
1672
+ "disable-legacy": import("eslint").Linter.Config;
1673
+ "all": import("eslint").Linter.Config;
1674
+ "all-flat": import("eslint").Linter.Config;
1675
+ };
1676
+ };
1643
1677
  };
1644
1678
  rules: {
1645
1679
  '@stylistic/jsx/jsx-child-element-spacing': string;