eslint 8.56.0 → 9.0.0-alpha.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 (50) hide show
  1. package/README.md +2 -2
  2. package/conf/rule-type-list.json +3 -1
  3. package/lib/api.js +1 -1
  4. package/lib/cli-engine/cli-engine.js +13 -2
  5. package/lib/cli-engine/formatters/formatters-meta.json +1 -29
  6. package/lib/cli.js +32 -9
  7. package/lib/config/default-config.js +3 -0
  8. package/lib/config/flat-config-array.js +0 -20
  9. package/lib/config/flat-config-helpers.js +41 -20
  10. package/lib/config/flat-config-schema.js +35 -25
  11. package/lib/config/rule-validator.js +27 -4
  12. package/lib/eslint/eslint-helpers.js +32 -12
  13. package/lib/eslint/eslint.js +856 -373
  14. package/lib/eslint/index.js +2 -2
  15. package/lib/eslint/legacy-eslint.js +722 -0
  16. package/lib/linter/apply-disable-directives.js +33 -5
  17. package/lib/linter/config-comment-parser.js +1 -1
  18. package/lib/linter/linter.js +91 -96
  19. package/lib/linter/rules.js +6 -15
  20. package/lib/options.js +9 -1
  21. package/lib/rule-tester/rule-tester.js +240 -272
  22. package/lib/rules/index.js +0 -2
  23. package/lib/rules/no-constant-binary-expression.js +1 -1
  24. package/lib/rules/no-constructor-return.js +1 -1
  25. package/lib/rules/no-empty-static-block.js +1 -1
  26. package/lib/rules/no-extra-semi.js +1 -1
  27. package/lib/rules/no-implicit-coercion.js +17 -1
  28. package/lib/rules/no-inner-declarations.js +1 -1
  29. package/lib/rules/no-invalid-regexp.js +1 -1
  30. package/lib/rules/no-mixed-spaces-and-tabs.js +1 -1
  31. package/lib/rules/no-new-native-nonconstructor.js +1 -1
  32. package/lib/rules/no-new-symbol.js +8 -1
  33. package/lib/rules/no-sequences.js +1 -0
  34. package/lib/rules/no-unused-private-class-members.js +1 -1
  35. package/lib/shared/config-validator.js +44 -11
  36. package/lib/shared/types.js +1 -1
  37. package/lib/source-code/source-code.js +1 -79
  38. package/lib/unsupported-api.js +3 -5
  39. package/package.json +9 -11
  40. package/lib/cli-engine/formatters/checkstyle.js +0 -60
  41. package/lib/cli-engine/formatters/compact.js +0 -60
  42. package/lib/cli-engine/formatters/jslint-xml.js +0 -41
  43. package/lib/cli-engine/formatters/junit.js +0 -82
  44. package/lib/cli-engine/formatters/tap.js +0 -95
  45. package/lib/cli-engine/formatters/unix.js +0 -58
  46. package/lib/cli-engine/formatters/visualstudio.js +0 -63
  47. package/lib/eslint/flat-eslint.js +0 -1142
  48. package/lib/rule-tester/flat-rule-tester.js +0 -1122
  49. package/lib/rules/require-jsdoc.js +0 -122
  50. package/lib/rules/valid-jsdoc.js +0 -516
@@ -1,82 +0,0 @@
1
- /**
2
- * @fileoverview jUnit Reporter
3
- * @author Jamund Ferguson
4
- */
5
- "use strict";
6
-
7
- const xmlEscape = require("../xml-escape");
8
- const path = require("path");
9
-
10
- //------------------------------------------------------------------------------
11
- // Helper Functions
12
- //------------------------------------------------------------------------------
13
-
14
- /**
15
- * Returns the severity of warning or error
16
- * @param {Object} message message object to examine
17
- * @returns {string} severity level
18
- * @private
19
- */
20
- function getMessageType(message) {
21
- if (message.fatal || message.severity === 2) {
22
- return "Error";
23
- }
24
- return "Warning";
25
-
26
- }
27
-
28
- /**
29
- * Returns a full file path without extension
30
- * @param {string} filePath input file path
31
- * @returns {string} file path without extension
32
- * @private
33
- */
34
- function pathWithoutExt(filePath) {
35
- return path.join(path.dirname(filePath), path.basename(filePath, path.extname(filePath)));
36
- }
37
-
38
- //------------------------------------------------------------------------------
39
- // Public Interface
40
- //------------------------------------------------------------------------------
41
-
42
- module.exports = function(results) {
43
-
44
- let output = "";
45
-
46
- output += "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n";
47
- output += "<testsuites>\n";
48
-
49
- results.forEach(result => {
50
-
51
- const messages = result.messages;
52
- const classname = pathWithoutExt(result.filePath);
53
-
54
- if (messages.length > 0) {
55
- output += `<testsuite package="org.eslint" time="0" tests="${messages.length}" errors="${messages.length}" name="${result.filePath}">\n`;
56
- messages.forEach(message => {
57
- const type = message.fatal ? "error" : "failure";
58
-
59
- output += `<testcase time="0" name="org.eslint.${message.ruleId || "unknown"}" classname="${classname}">`;
60
- output += `<${type} message="${xmlEscape(message.message || "")}">`;
61
- output += "<![CDATA[";
62
- output += `line ${message.line || 0}, col `;
63
- output += `${message.column || 0}, ${getMessageType(message)}`;
64
- output += ` - ${xmlEscape(message.message || "")}`;
65
- output += (message.ruleId ? ` (${message.ruleId})` : "");
66
- output += "]]>";
67
- output += `</${type}>`;
68
- output += "</testcase>\n";
69
- });
70
- output += "</testsuite>\n";
71
- } else {
72
- output += `<testsuite package="org.eslint" time="0" tests="1" errors="0" name="${result.filePath}">\n`;
73
- output += `<testcase time="0" name="${result.filePath}" classname="${classname}" />\n`;
74
- output += "</testsuite>\n";
75
- }
76
-
77
- });
78
-
79
- output += "</testsuites>\n";
80
-
81
- return output;
82
- };
@@ -1,95 +0,0 @@
1
- /**
2
- * @fileoverview TAP reporter
3
- * @author Jonathan Kingston
4
- */
5
- "use strict";
6
-
7
- const yaml = require("js-yaml");
8
-
9
- //------------------------------------------------------------------------------
10
- // Helper Functions
11
- //------------------------------------------------------------------------------
12
-
13
- /**
14
- * Returns a canonical error level string based upon the error message passed in.
15
- * @param {Object} message Individual error message provided by eslint
16
- * @returns {string} Error level string
17
- */
18
- function getMessageType(message) {
19
- if (message.fatal || message.severity === 2) {
20
- return "error";
21
- }
22
- return "warning";
23
- }
24
-
25
- /**
26
- * Takes in a JavaScript object and outputs a TAP diagnostics string
27
- * @param {Object} diagnostic JavaScript object to be embedded as YAML into output.
28
- * @returns {string} diagnostics string with YAML embedded - TAP version 13 compliant
29
- */
30
- function outputDiagnostics(diagnostic) {
31
- const prefix = " ";
32
- let output = `${prefix}---\n`;
33
-
34
- output += prefix + yaml.dump(diagnostic).split("\n").join(`\n${prefix}`);
35
- output += "...\n";
36
- return output;
37
- }
38
-
39
- //------------------------------------------------------------------------------
40
- // Public Interface
41
- //------------------------------------------------------------------------------
42
-
43
- module.exports = function(results) {
44
- let output = `TAP version 13\n1..${results.length}\n`;
45
-
46
- results.forEach((result, id) => {
47
- const messages = result.messages;
48
- let testResult = "ok";
49
- let diagnostics = {};
50
-
51
- if (messages.length > 0) {
52
- messages.forEach(message => {
53
- const severity = getMessageType(message);
54
- const diagnostic = {
55
- message: message.message,
56
- severity,
57
- data: {
58
- line: message.line || 0,
59
- column: message.column || 0,
60
- ruleId: message.ruleId || ""
61
- }
62
- };
63
-
64
- // This ensures a warning message is not flagged as error
65
- if (severity === "error") {
66
- testResult = "not ok";
67
- }
68
-
69
- /*
70
- * If we have multiple messages place them under a messages key
71
- * The first error will be logged as message key
72
- * This is to adhere to TAP 13 loosely defined specification of having a message key
73
- */
74
- if ("message" in diagnostics) {
75
- if (typeof diagnostics.messages === "undefined") {
76
- diagnostics.messages = [];
77
- }
78
- diagnostics.messages.push(diagnostic);
79
- } else {
80
- diagnostics = diagnostic;
81
- }
82
- });
83
- }
84
-
85
- output += `${testResult} ${id + 1} - ${result.filePath}\n`;
86
-
87
- // If we have an error include diagnostics
88
- if (messages.length > 0) {
89
- output += outputDiagnostics(diagnostics);
90
- }
91
-
92
- });
93
-
94
- return output;
95
- };
@@ -1,58 +0,0 @@
1
- /**
2
- * @fileoverview unix-style formatter.
3
- * @author oshi-shinobu
4
- */
5
- "use strict";
6
-
7
- //------------------------------------------------------------------------------
8
- // Helper Functions
9
- //------------------------------------------------------------------------------
10
-
11
- /**
12
- * Returns a canonical error level string based upon the error message passed in.
13
- * @param {Object} message Individual error message provided by eslint
14
- * @returns {string} Error level string
15
- */
16
- function getMessageType(message) {
17
- if (message.fatal || message.severity === 2) {
18
- return "Error";
19
- }
20
- return "Warning";
21
-
22
- }
23
-
24
-
25
- //------------------------------------------------------------------------------
26
- // Public Interface
27
- //------------------------------------------------------------------------------
28
-
29
- module.exports = function(results) {
30
-
31
- let output = "",
32
- total = 0;
33
-
34
- results.forEach(result => {
35
-
36
- const messages = result.messages;
37
-
38
- total += messages.length;
39
-
40
- messages.forEach(message => {
41
-
42
- output += `${result.filePath}:`;
43
- output += `${message.line || 0}:`;
44
- output += `${message.column || 0}:`;
45
- output += ` ${message.message} `;
46
- output += `[${getMessageType(message)}${message.ruleId ? `/${message.ruleId}` : ""}]`;
47
- output += "\n";
48
-
49
- });
50
-
51
- });
52
-
53
- if (total > 0) {
54
- output += `\n${total} problem${total !== 1 ? "s" : ""}`;
55
- }
56
-
57
- return output;
58
- };
@@ -1,63 +0,0 @@
1
- /**
2
- * @fileoverview Visual Studio compatible formatter
3
- * @author Ronald Pijnacker
4
- */
5
-
6
- "use strict";
7
-
8
- //------------------------------------------------------------------------------
9
- // Helper Functions
10
- //------------------------------------------------------------------------------
11
-
12
- /**
13
- * Returns the severity of warning or error
14
- * @param {Object} message message object to examine
15
- * @returns {string} severity level
16
- * @private
17
- */
18
- function getMessageType(message) {
19
- if (message.fatal || message.severity === 2) {
20
- return "error";
21
- }
22
- return "warning";
23
-
24
- }
25
-
26
-
27
- //------------------------------------------------------------------------------
28
- // Public Interface
29
- //------------------------------------------------------------------------------
30
-
31
- module.exports = function(results) {
32
-
33
- let output = "",
34
- total = 0;
35
-
36
- results.forEach(result => {
37
-
38
- const messages = result.messages;
39
-
40
- total += messages.length;
41
-
42
- messages.forEach(message => {
43
-
44
- output += result.filePath;
45
- output += `(${message.line || 0}`;
46
- output += message.column ? `,${message.column}` : "";
47
- output += `): ${getMessageType(message)}`;
48
- output += message.ruleId ? ` ${message.ruleId}` : "";
49
- output += ` : ${message.message}`;
50
- output += "\n";
51
-
52
- });
53
-
54
- });
55
-
56
- if (total === 0) {
57
- output += "no problems";
58
- } else {
59
- output += `\n${total} problem${total !== 1 ? "s" : ""}`;
60
- }
61
-
62
- return output;
63
- };