eslint 9.18.0 → 9.20.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.
- package/README.md +25 -16
- package/lib/cli.js +8 -0
- package/lib/config/config-loader.js +34 -4
- package/lib/config/config.js +6 -1
- package/lib/config/flat-config-schema.js +16 -1
- package/lib/eslint/eslint.js +1 -1
- package/lib/linter/linter.js +98 -8
- package/lib/options.js +13 -0
- package/lib/rules/arrow-body-style.js +1 -1
- package/lib/rules/consistent-this.js +9 -0
- package/lib/shared/flags.js +43 -5
- package/lib/shared/option-utils.js +56 -0
- package/lib/types/index.d.ts +70 -60
- package/lib/types/rules/best-practices.d.ts +109 -95
- package/lib/types/rules/deprecated.d.ts +32 -15
- package/lib/types/rules/ecmascript-6.d.ts +39 -39
- package/lib/types/rules/node-commonjs.d.ts +23 -12
- package/lib/types/rules/possible-errors.d.ts +86 -54
- package/lib/types/rules/strict-mode.d.ts +1 -1
- package/lib/types/rules/stylistic-issues.d.ts +105 -99
- package/lib/types/rules/variables.d.ts +12 -12
- package/messages/config-serialize-function.js +28 -0
- package/messages/eslintrc-plugins.js +6 -2
- package/package.json +7 -5
package/lib/types/index.d.ts
CHANGED
@@ -26,10 +26,41 @@
|
|
26
26
|
*/
|
27
27
|
|
28
28
|
import * as ESTree from "estree";
|
29
|
-
import {
|
29
|
+
import type {
|
30
|
+
RuleVisitor,
|
31
|
+
TextSourceCode,
|
32
|
+
Language,
|
33
|
+
SourceRange,
|
34
|
+
TraversalStep,
|
35
|
+
LanguageOptions as GenericLanguageOptions,
|
36
|
+
RuleDefinition,
|
37
|
+
RuleContext as CoreRuleContext
|
38
|
+
} from "@eslint/core";
|
30
39
|
import { JSONSchema4 } from "json-schema";
|
31
40
|
import { LegacyESLint } from "./use-at-your-own-risk.js";
|
32
41
|
|
42
|
+
/*
|
43
|
+
* Need to extend the `RuleContext` interface to include the
|
44
|
+
* deprecated methods that have not yet been removed.
|
45
|
+
* TODO: Remove in v10.0.0.
|
46
|
+
*/
|
47
|
+
declare module "@eslint/core" {
|
48
|
+
interface RuleContext {
|
49
|
+
|
50
|
+
/** @deprecated Use `sourceCode.getAncestors()` instead */
|
51
|
+
getAncestors(): ESTree.Node[];
|
52
|
+
|
53
|
+
/** @deprecated Use `sourceCode.getDeclaredVariables()` instead */
|
54
|
+
getDeclaredVariables(node: ESTree.Node): Scope.Variable[];
|
55
|
+
|
56
|
+
/** @deprecated Use `sourceCode.getScope()` instead */
|
57
|
+
getScope(): Scope.Scope;
|
58
|
+
|
59
|
+
/** @deprecated Use `sourceCode.markVariableAsUsed()` instead */
|
60
|
+
markVariableAsUsed(name: string): boolean;
|
61
|
+
}
|
62
|
+
}
|
63
|
+
|
33
64
|
export namespace AST {
|
34
65
|
type TokenType =
|
35
66
|
| "Boolean"
|
@@ -149,7 +180,12 @@ export namespace Scope {
|
|
149
180
|
|
150
181
|
// #region SourceCode
|
151
182
|
|
152
|
-
export class SourceCode {
|
183
|
+
export class SourceCode implements TextSourceCode<{
|
184
|
+
LangOptions: Linter.LanguageOptions;
|
185
|
+
RootNode: AST.Program;
|
186
|
+
SyntaxElementWithLoc: AST.Token | ESTree.Node;
|
187
|
+
ConfigNode: ESTree.Comment;
|
188
|
+
}> {
|
153
189
|
text: string;
|
154
190
|
ast: AST.Program;
|
155
191
|
lines: string[];
|
@@ -163,6 +199,9 @@ export class SourceCode {
|
|
163
199
|
|
164
200
|
static splitLines(text: string): string[];
|
165
201
|
|
202
|
+
getLoc(syntaxElement: AST.Token | ESTree.Node): ESTree.SourceLocation;
|
203
|
+
getRange(syntaxElement: AST.Token | ESTree.Node): SourceRange;
|
204
|
+
|
166
205
|
getText(node?: ESTree.Node, beforeCount?: number, afterCount?: number): string;
|
167
206
|
|
168
207
|
getLines(): string[];
|
@@ -238,6 +277,8 @@ export class SourceCode {
|
|
238
277
|
): boolean;
|
239
278
|
|
240
279
|
markVariableAsUsed(name: string, refNode?: ESTree.Node): boolean;
|
280
|
+
|
281
|
+
traverse(): Iterable<TraversalStep>;
|
241
282
|
}
|
242
283
|
|
243
284
|
export namespace SourceCode {
|
@@ -507,21 +548,25 @@ export namespace SourceCode {
|
|
507
548
|
// #endregion
|
508
549
|
|
509
550
|
export namespace Rule {
|
510
|
-
|
511
|
-
|
512
|
-
|
513
|
-
|
551
|
+
|
552
|
+
type RuleModule = RuleDefinition<{
|
553
|
+
LangOptions: Linter.LanguageOptions,
|
554
|
+
Code: SourceCode,
|
555
|
+
RuleOptions: any[],
|
556
|
+
Visitor: NodeListener,
|
557
|
+
Node: ESTree.Node,
|
558
|
+
MessageIds: string,
|
559
|
+
ExtRuleDocs: {}
|
560
|
+
}>;
|
514
561
|
|
515
562
|
type NodeTypes = ESTree.Node["type"];
|
516
|
-
interface NodeListener {
|
563
|
+
interface NodeListener extends RuleVisitor {
|
517
564
|
ArrayExpression?: ((node: ESTree.ArrayExpression & NodeParentExtension) => void) | undefined;
|
518
565
|
"ArrayExpression:exit"?: ((node: ESTree.ArrayExpression & NodeParentExtension) => void) | undefined;
|
519
566
|
ArrayPattern?: ((node: ESTree.ArrayPattern & NodeParentExtension) => void) | undefined;
|
520
567
|
"ArrayPattern:exit"?: ((node: ESTree.ArrayPattern & NodeParentExtension) => void) | undefined;
|
521
568
|
ArrowFunctionExpression?: ((node: ESTree.ArrowFunctionExpression & NodeParentExtension) => void) | undefined;
|
522
|
-
"ArrowFunctionExpression:exit"?:
|
523
|
-
| ((node: ESTree.ArrowFunctionExpression & NodeParentExtension) => void)
|
524
|
-
| undefined;
|
569
|
+
"ArrowFunctionExpression:exit"?: ((node: ESTree.ArrowFunctionExpression & NodeParentExtension) => void) | undefined;
|
525
570
|
AssignmentExpression?: ((node: ESTree.AssignmentExpression & NodeParentExtension) => void) | undefined;
|
526
571
|
"AssignmentExpression:exit"?: ((node: ESTree.AssignmentExpression & NodeParentExtension) => void) | undefined;
|
527
572
|
AssignmentPattern?: ((node: ESTree.AssignmentPattern & NodeParentExtension) => void) | undefined;
|
@@ -559,13 +604,9 @@ export namespace Rule {
|
|
559
604
|
ExportAllDeclaration?: ((node: ESTree.ExportAllDeclaration & NodeParentExtension) => void) | undefined;
|
560
605
|
"ExportAllDeclaration:exit"?: ((node: ESTree.ExportAllDeclaration & NodeParentExtension) => void) | undefined;
|
561
606
|
ExportDefaultDeclaration?: ((node: ESTree.ExportDefaultDeclaration & NodeParentExtension) => void) | undefined;
|
562
|
-
"ExportDefaultDeclaration:exit"?:
|
563
|
-
| ((node: ESTree.ExportDefaultDeclaration & NodeParentExtension) => void)
|
564
|
-
| undefined;
|
607
|
+
"ExportDefaultDeclaration:exit"?: ((node: ESTree.ExportDefaultDeclaration & NodeParentExtension) => void) | undefined;
|
565
608
|
ExportNamedDeclaration?: ((node: ESTree.ExportNamedDeclaration & NodeParentExtension) => void) | undefined;
|
566
|
-
"ExportNamedDeclaration:exit"?:
|
567
|
-
| ((node: ESTree.ExportNamedDeclaration & NodeParentExtension) => void)
|
568
|
-
| undefined;
|
609
|
+
"ExportNamedDeclaration:exit"?: ((node: ESTree.ExportNamedDeclaration & NodeParentExtension) => void) | undefined;
|
569
610
|
ExportSpecifier?: ((node: ESTree.ExportSpecifier & NodeParentExtension) => void) | undefined;
|
570
611
|
"ExportSpecifier:exit"?: ((node: ESTree.ExportSpecifier & NodeParentExtension) => void) | undefined;
|
571
612
|
ExpressionStatement?: ((node: ESTree.ExpressionStatement & NodeParentExtension) => void) | undefined;
|
@@ -587,15 +628,11 @@ export namespace Rule {
|
|
587
628
|
ImportDeclaration?: ((node: ESTree.ImportDeclaration & NodeParentExtension) => void) | undefined;
|
588
629
|
"ImportDeclaration:exit"?: ((node: ESTree.ImportDeclaration & NodeParentExtension) => void) | undefined;
|
589
630
|
ImportDefaultSpecifier?: ((node: ESTree.ImportDefaultSpecifier & NodeParentExtension) => void) | undefined;
|
590
|
-
"ImportDefaultSpecifier:exit"?:
|
591
|
-
| ((node: ESTree.ImportDefaultSpecifier & NodeParentExtension) => void)
|
592
|
-
| undefined;
|
631
|
+
"ImportDefaultSpecifier:exit"?: ((node: ESTree.ImportDefaultSpecifier & NodeParentExtension) => void) | undefined;
|
593
632
|
ImportExpression?: ((node: ESTree.ImportExpression & NodeParentExtension) => void) | undefined;
|
594
633
|
"ImportExpression:exit"?: ((node: ESTree.ImportExpression & NodeParentExtension) => void) | undefined;
|
595
634
|
ImportNamespaceSpecifier?: ((node: ESTree.ImportNamespaceSpecifier & NodeParentExtension) => void) | undefined;
|
596
|
-
"ImportNamespaceSpecifier:exit"?:
|
597
|
-
| ((node: ESTree.ImportNamespaceSpecifier & NodeParentExtension) => void)
|
598
|
-
| undefined;
|
635
|
+
"ImportNamespaceSpecifier:exit"?: ((node: ESTree.ImportNamespaceSpecifier & NodeParentExtension) => void) | undefined;
|
599
636
|
ImportSpecifier?: ((node: ESTree.ImportSpecifier & NodeParentExtension) => void) | undefined;
|
600
637
|
"ImportSpecifier:exit"?: ((node: ESTree.ImportSpecifier & NodeParentExtension) => void) | undefined;
|
601
638
|
LabeledStatement?: ((node: ESTree.LabeledStatement & NodeParentExtension) => void) | undefined;
|
@@ -641,9 +678,7 @@ export namespace Rule {
|
|
641
678
|
SwitchStatement?: ((node: ESTree.SwitchStatement & NodeParentExtension) => void) | undefined;
|
642
679
|
"SwitchStatement:exit"?: ((node: ESTree.SwitchStatement & NodeParentExtension) => void) | undefined;
|
643
680
|
TaggedTemplateExpression?: ((node: ESTree.TaggedTemplateExpression & NodeParentExtension) => void) | undefined;
|
644
|
-
"TaggedTemplateExpression:exit"?:
|
645
|
-
| ((node: ESTree.TaggedTemplateExpression & NodeParentExtension) => void)
|
646
|
-
| undefined;
|
681
|
+
"TaggedTemplateExpression:exit"?: ((node: ESTree.TaggedTemplateExpression & NodeParentExtension) => void) | undefined;
|
647
682
|
TemplateElement?: ((node: ESTree.TemplateElement & NodeParentExtension) => void) | undefined;
|
648
683
|
"TemplateElement:exit"?: ((node: ESTree.TemplateElement & NodeParentExtension) => void) | undefined;
|
649
684
|
TemplateLiteral?: ((node: ESTree.TemplateLiteral & NodeParentExtension) => void) | undefined;
|
@@ -765,39 +800,8 @@ export namespace Rule {
|
|
765
800
|
hasSuggestions?: boolean | undefined;
|
766
801
|
}
|
767
802
|
|
768
|
-
interface RuleContext {
|
769
|
-
|
770
|
-
options: any[];
|
771
|
-
settings: { [name: string]: any };
|
772
|
-
parserPath: string | undefined;
|
773
|
-
languageOptions: Linter.LanguageOptions;
|
774
|
-
parserOptions: Linter.ParserOptions;
|
775
|
-
cwd: string;
|
776
|
-
filename: string;
|
777
|
-
physicalFilename: string;
|
778
|
-
sourceCode: SourceCode;
|
779
|
-
|
780
|
-
getAncestors(): ESTree.Node[];
|
781
|
-
|
782
|
-
getDeclaredVariables(node: ESTree.Node): Scope.Variable[];
|
783
|
-
|
784
|
-
/** @deprecated Use property `filename` directly instead */
|
785
|
-
getFilename(): string;
|
786
|
-
|
787
|
-
/** @deprecated Use property `physicalFilename` directly instead */
|
788
|
-
getPhysicalFilename(): string;
|
789
|
-
|
790
|
-
/** @deprecated Use property `cwd` directly instead */
|
791
|
-
getCwd(): string;
|
792
|
-
|
793
|
-
getScope(): Scope.Scope;
|
794
|
-
|
795
|
-
/** @deprecated Use property `sourceCode` directly instead */
|
796
|
-
getSourceCode(): SourceCode;
|
797
|
-
|
798
|
-
markVariableAsUsed(name: string): boolean;
|
799
|
-
|
800
|
-
report(descriptor: ReportDescriptor): void;
|
803
|
+
interface RuleContext extends CoreRuleContext {
|
804
|
+
// report(descriptor: ReportDescriptor): void;
|
801
805
|
}
|
802
806
|
|
803
807
|
type ReportFixer = (fixer: RuleFixer) => null | Fix | IterableIterator<Fix> | Fix[];
|
@@ -1325,7 +1329,7 @@ export namespace Linter {
|
|
1325
1329
|
[name: string]: GlobalConf;
|
1326
1330
|
}
|
1327
1331
|
|
1328
|
-
interface LanguageOptions {
|
1332
|
+
interface LanguageOptions extends GenericLanguageOptions {
|
1329
1333
|
/**
|
1330
1334
|
* The version of ECMAScript to support. May be any year (i.e., 2022) or
|
1331
1335
|
* version (i.e., 5). Set to "latest" for the most recent supported version.
|
@@ -1371,6 +1375,12 @@ export namespace Linter {
|
|
1371
1375
|
* tracked and reported.
|
1372
1376
|
*/
|
1373
1377
|
reportUnusedDisableDirectives?: Severity | StringSeverity | boolean;
|
1378
|
+
|
1379
|
+
/**
|
1380
|
+
* A severity value indicating if and how unused inline configs should be
|
1381
|
+
* tracked and reported.
|
1382
|
+
*/
|
1383
|
+
reportUnusedInlineConfigs?: Severity | StringSeverity;
|
1374
1384
|
}
|
1375
1385
|
|
1376
1386
|
interface Stats {
|
@@ -1463,7 +1473,7 @@ export namespace ESLint {
|
|
1463
1473
|
environments?: Record<string, Environment> | undefined;
|
1464
1474
|
languages?: Record<string, Language> | undefined;
|
1465
1475
|
processors?: Record<string, Linter.Processor> | undefined;
|
1466
|
-
rules?: Record<string,
|
1476
|
+
rules?: Record<string, RuleDefinition> | undefined;
|
1467
1477
|
}
|
1468
1478
|
|
1469
1479
|
type FixType = "directive" | "problem" | "suggestion" | "layout";
|