eslint-interactive 13.0.1 → 14.0.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 (111) hide show
  1. package/README.md +19 -10
  2. package/dist/action/convert-error-to-warning-per-file.d.ts +2 -4
  3. package/dist/action/convert-error-to-warning-per-file.d.ts.map +1 -1
  4. package/dist/action/convert-error-to-warning-per-file.js +2 -2
  5. package/dist/action/convert-error-to-warning-per-file.js.map +1 -1
  6. package/dist/action/disable-per-file.d.ts +2 -4
  7. package/dist/action/disable-per-file.d.ts.map +1 -1
  8. package/dist/action/disable-per-file.js +2 -2
  9. package/dist/action/disable-per-file.js.map +1 -1
  10. package/dist/action/disable-per-line.d.ts +2 -4
  11. package/dist/action/disable-per-line.d.ts.map +1 -1
  12. package/dist/action/disable-per-line.js +2 -2
  13. package/dist/action/disable-per-line.js.map +1 -1
  14. package/dist/action/fix.d.ts +2 -4
  15. package/dist/action/fix.d.ts.map +1 -1
  16. package/dist/action/fix.js +2 -2
  17. package/dist/action/fix.js.map +1 -1
  18. package/dist/action/print-result-details.d.ts +2 -3
  19. package/dist/action/print-result-details.d.ts.map +1 -1
  20. package/dist/action/print-result-details.js +3 -2
  21. package/dist/action/print-result-details.js.map +1 -1
  22. package/dist/cli/log.d.ts +1 -0
  23. package/dist/cli/log.d.ts.map +1 -1
  24. package/dist/cli/log.js +25 -0
  25. package/dist/cli/log.js.map +1 -1
  26. package/dist/cli/parse-argv.d.ts.map +1 -1
  27. package/dist/cli/parse-argv.js +31 -10
  28. package/dist/cli/parse-argv.js.map +1 -1
  29. package/dist/cli/prompt.d.ts.map +1 -1
  30. package/dist/cli/prompt.js +53 -91
  31. package/dist/cli/prompt.js.map +1 -1
  32. package/dist/cli/run.d.ts +1 -3
  33. package/dist/cli/run.d.ts.map +1 -1
  34. package/dist/cli/run.js +3 -27
  35. package/dist/cli/run.js.map +1 -1
  36. package/dist/core.d.ts +2 -2
  37. package/dist/core.d.ts.map +1 -1
  38. package/dist/core.js +10 -7
  39. package/dist/core.js.map +1 -1
  40. package/dist/fix/disable-per-file.d.ts +1 -1
  41. package/dist/fix/disable-per-file.d.ts.map +1 -1
  42. package/dist/fix/disable-per-line.d.ts +1 -1
  43. package/dist/fix/disable-per-line.d.ts.map +1 -1
  44. package/dist/formatter/filter-rule-statistics.d.ts +9 -0
  45. package/dist/formatter/filter-rule-statistics.d.ts.map +1 -0
  46. package/dist/formatter/filter-rule-statistics.js +22 -0
  47. package/dist/formatter/filter-rule-statistics.js.map +1 -0
  48. package/dist/formatter/format-by-rules.d.ts +4 -3
  49. package/dist/formatter/format-by-rules.d.ts.map +1 -1
  50. package/dist/formatter/format-by-rules.js +7 -5
  51. package/dist/formatter/format-by-rules.js.map +1 -1
  52. package/dist/formatter/index.d.ts +3 -2
  53. package/dist/formatter/index.d.ts.map +1 -1
  54. package/dist/formatter/index.js +3 -2
  55. package/dist/formatter/index.js.map +1 -1
  56. package/dist/index.d.ts +1 -1
  57. package/dist/index.d.ts.map +1 -1
  58. package/dist/index.js.map +1 -1
  59. package/dist/scene/check-results.d.ts.map +1 -1
  60. package/dist/scene/check-results.js +2 -5
  61. package/dist/scene/check-results.js.map +1 -1
  62. package/dist/scene/lint.d.ts +2 -3
  63. package/dist/scene/lint.d.ts.map +1 -1
  64. package/dist/scene/lint.js +13 -9
  65. package/dist/scene/lint.js.map +1 -1
  66. package/dist/scene/select-action.d.ts +2 -3
  67. package/dist/scene/select-action.d.ts.map +1 -1
  68. package/dist/scene/select-action.js.map +1 -1
  69. package/dist/scene/select-rule-ids.d.ts +2 -3
  70. package/dist/scene/select-rule-ids.d.ts.map +1 -1
  71. package/dist/scene/select-rule-ids.js.map +1 -1
  72. package/dist/type.d.ts +2 -0
  73. package/dist/type.d.ts.map +1 -1
  74. package/dist/util/terminal-link.d.ts +2 -0
  75. package/dist/util/terminal-link.d.ts.map +1 -0
  76. package/dist/util/terminal-link.js +16 -0
  77. package/dist/util/terminal-link.js.map +1 -0
  78. package/package.json +5 -6
  79. package/src/action/convert-error-to-warning-per-file.ts +4 -6
  80. package/src/action/disable-per-file.ts +4 -6
  81. package/src/action/disable-per-line.ts +4 -6
  82. package/src/action/fix.ts +4 -10
  83. package/src/action/print-result-details.ts +5 -9
  84. package/src/cli/log.ts +25 -0
  85. package/src/cli/parse-argv.ts +32 -11
  86. package/src/cli/prompt.ts +56 -92
  87. package/src/cli/run.ts +3 -29
  88. package/src/core.ts +13 -6
  89. package/src/fix/disable-per-file.ts +1 -1
  90. package/src/fix/disable-per-line.ts +1 -1
  91. package/src/formatter/filter-rule-statistics.ts +27 -0
  92. package/src/formatter/format-by-rules.ts +10 -7
  93. package/src/formatter/index.ts +4 -3
  94. package/src/index.ts +1 -1
  95. package/src/scene/check-results.ts +2 -5
  96. package/src/scene/lint.ts +14 -12
  97. package/src/scene/select-action.ts +2 -4
  98. package/src/scene/select-rule-ids.ts +2 -6
  99. package/src/type.ts +2 -0
  100. package/src/util/terminal-link.ts +16 -0
  101. package/dist/cli/spinner.d.ts +0 -4
  102. package/dist/cli/spinner.d.ts.map +0 -1
  103. package/dist/cli/spinner.js +0 -20
  104. package/dist/cli/spinner.js.map +0 -1
  105. package/dist/core-worker.d.ts +0 -21
  106. package/dist/core-worker.d.ts.map +0 -1
  107. package/dist/core-worker.js +0 -47
  108. package/dist/core-worker.js.map +0 -1
  109. package/src/cli/spinner.ts +0 -22
  110. package/src/core-worker.ts +0 -55
  111. package/src/typings/enquirer.d.ts +0 -7
package/README.md CHANGED
@@ -46,7 +46,7 @@ It also supports the following actions in addition to `eslint --fix`. All action
46
46
 
47
47
  ## Requirements
48
48
 
49
- - Node.js `^20.19.0 || ^22.12.0 || >=24.0.0`
49
+ - Node.js `^22.12.0 || >=24.0.0`
50
50
  - ESLint `>=9.0.0`
51
51
  - If you use ESLint `<8.45.0`, use `eslint-interactive@^10`.
52
52
  - Flat config (`eslint.config.js`)
@@ -60,7 +60,7 @@ It also supports the following actions in addition to `eslint --fix`. All action
60
60
  ```console
61
61
  $ # For npm
62
62
  $ npm i -D eslint-interactive
63
- $ npx eslint-interactive --help
63
+ $ npx --no --offline eslint-interactive --help
64
64
 
65
65
  $ # For yarn
66
66
  $ yarn add -D eslint-interactive
@@ -81,19 +81,28 @@ $ npx eslint-interactive --help
81
81
  eslint-interactive [...patterns]
82
82
 
83
83
  Options:
84
- --help Show help
85
- --version Show version number
86
- -c, --config <path> Use this configuration, overriding config options if present
87
- --format <nameOrPath> Specify the format to be used for the "Display problem messages" action
88
- --quiet Report errors only
89
- --cache Only check changed files
90
- --cache-location <path> Path to the cache file or directory
91
- --flag <name> Enable a feature flag (requires ESLint v9.6.0+)
84
+ --help Show help
85
+ --version Show version number
86
+ -c, --config <path> Use this configuration, overriding config options if present
87
+ --format <nameOrPath> Specify the format to be used for the "Display problem messages" action
88
+ --quiet Report errors only
89
+ --ignore-pattern <string> Patterns of files to ignore
90
+ --no-ignore Disable use of ignore files and patterns
91
+ --cache Only check changed files
92
+ --cache-location <path> Path to the cache file or directory
93
+ --flag <name> Enable a feature flag (requires ESLint v9.6.0+)
94
+ --sort <field> Sort rules by: rule, error, warning, fixable, suggestions
95
+ --sort-order <direction> Sort direction: asc, desc (default: desc for counts, asc for rule)
96
+ --filter <criterion> Show only rules matching the criterion: fixable, has-suggestions
97
+ (repeatable; multiple values are OR-ed)
92
98
 
93
99
  Examples:
94
100
  eslint-interactive Lint all files in the project
95
101
  eslint-interactive src test Lint specified directories
96
102
  eslint-interactive 'src/**/*.{ts,tsx,vue}' Lint with glob pattern
103
+ eslint-interactive --sort error Sort rules by error count (descending)
104
+ eslint-interactive --sort rule Sort rules by rule name (ascending)
105
+ eslint-interactive --filter fixable Show only rules that have fixable problems
97
106
  ```
98
107
 
99
108
  ## Programmable API
@@ -1,6 +1,4 @@
1
- import type { Remote } from 'comlink';
2
1
  import type { ESLint } from 'eslint';
3
- import type { Undo } from '../core.js';
4
- import type { SerializableCore } from '../core-worker.js';
5
- export declare function doConvertErrorToWarningPerFileAction(core: Remote<SerializableCore>, results: ESLint.LintResult[], selectedRuleIds: string[]): Promise<Undo>;
2
+ import type { Core, Undo } from '../core.js';
3
+ export declare function doConvertErrorToWarningPerFileAction(core: Core, results: ESLint.LintResult[], selectedRuleIds: string[]): Promise<Undo>;
6
4
  //# sourceMappingURL=convert-error-to-warning-per-file.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"convert-error-to-warning-per-file.d.ts","sourceRoot":"","sources":["../../src/action/convert-error-to-warning-per-file.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACtC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAGrC,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAE1D,wBAAsB,oCAAoC,CACxD,IAAI,EAAE,MAAM,CAAC,gBAAgB,CAAC,EAC9B,OAAO,EAAE,MAAM,CAAC,UAAU,EAAE,EAC5B,eAAe,EAAE,MAAM,EAAE,GACxB,OAAO,CAAC,IAAI,CAAC,CAMf"}
1
+ {"version":3,"file":"convert-error-to-warning-per-file.d.ts","sourceRoot":"","sources":["../../src/action/convert-error-to-warning-per-file.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAGrC,OAAO,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAE7C,wBAAsB,oCAAoC,CACxD,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,MAAM,CAAC,UAAU,EAAE,EAC5B,eAAe,EAAE,MAAM,EAAE,GACxB,OAAO,CAAC,IAAI,CAAC,CAMf"}
@@ -1,8 +1,8 @@
1
+ import { withProgress } from '../cli/log.js';
1
2
  import { promptToInputDescription } from '../cli/prompt.js';
2
- import { fixingSpinner } from '../cli/spinner.js';
3
3
  export async function doConvertErrorToWarningPerFileAction(core, results, selectedRuleIds) {
4
4
  const description = await promptToInputDescription();
5
- const undo = await fixingSpinner(async () => core.convertErrorToWarningPerFile(results, selectedRuleIds, description));
5
+ const undo = await withProgress('Fixing', async () => core.convertErrorToWarningPerFile(results, selectedRuleIds, description));
6
6
  return undo;
7
7
  }
8
8
  //# sourceMappingURL=convert-error-to-warning-per-file.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"convert-error-to-warning-per-file.js","sourceRoot":"","sources":["../../src/action/convert-error-to-warning-per-file.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAIlD,MAAM,CAAC,KAAK,UAAU,oCAAoC,CACxD,IAA8B,EAC9B,OAA4B,EAC5B,eAAyB;IAEzB,MAAM,WAAW,GAAG,MAAM,wBAAwB,EAAE,CAAC;IACrD,MAAM,IAAI,GAAG,MAAM,aAAa,CAAC,KAAK,IAAI,EAAE,CAC1C,IAAI,CAAC,4BAA4B,CAAC,OAAO,EAAE,eAAe,EAAE,WAAW,CAAC,CACzE,CAAC;IACF,OAAO,IAAI,CAAC;AACd,CAAC"}
1
+ {"version":3,"file":"convert-error-to-warning-per-file.js","sourceRoot":"","sources":["../../src/action/convert-error-to-warning-per-file.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAG5D,MAAM,CAAC,KAAK,UAAU,oCAAoC,CACxD,IAAU,EACV,OAA4B,EAC5B,eAAyB;IAEzB,MAAM,WAAW,GAAG,MAAM,wBAAwB,EAAE,CAAC;IACrD,MAAM,IAAI,GAAG,MAAM,YAAY,CAAC,QAAQ,EAAE,KAAK,IAAI,EAAE,CACnD,IAAI,CAAC,4BAA4B,CAAC,OAAO,EAAE,eAAe,EAAE,WAAW,CAAC,CACzE,CAAC;IACF,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -1,6 +1,4 @@
1
- import type { Remote } from 'comlink';
2
1
  import type { ESLint } from 'eslint';
3
- import type { Undo } from '../core.js';
4
- import type { SerializableCore } from '../core-worker.js';
5
- export declare function doDisablePerFileAction(core: Remote<SerializableCore>, results: ESLint.LintResult[], selectedRuleIds: string[]): Promise<Undo>;
2
+ import type { Core, Undo } from '../core.js';
3
+ export declare function doDisablePerFileAction(core: Core, results: ESLint.LintResult[], selectedRuleIds: string[]): Promise<Undo>;
6
4
  //# sourceMappingURL=disable-per-file.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"disable-per-file.d.ts","sourceRoot":"","sources":["../../src/action/disable-per-file.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACtC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAIrC,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAE1D,wBAAsB,sBAAsB,CAC1C,IAAI,EAAE,MAAM,CAAC,gBAAgB,CAAC,EAC9B,OAAO,EAAE,MAAM,CAAC,UAAU,EAAE,EAC5B,eAAe,EAAE,MAAM,EAAE,GACxB,OAAO,CAAC,IAAI,CAAC,CAUf"}
1
+ {"version":3,"file":"disable-per-file.d.ts","sourceRoot":"","sources":["../../src/action/disable-per-file.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAIrC,OAAO,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAE7C,wBAAsB,sBAAsB,CAC1C,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,MAAM,CAAC,UAAU,EAAE,EAC5B,eAAe,EAAE,MAAM,EAAE,GACxB,OAAO,CAAC,IAAI,CAAC,CAUf"}
@@ -1,12 +1,12 @@
1
+ import { withProgress } from '../cli/log.js';
1
2
  import { promptToInputDescription, promptToInputDescriptionPosition } from '../cli/prompt.js';
2
- import { fixingSpinner } from '../cli/spinner.js';
3
3
  export async function doDisablePerFileAction(core, results, selectedRuleIds) {
4
4
  const description = await promptToInputDescription();
5
5
  let descriptionPosition;
6
6
  if (description) {
7
7
  descriptionPosition = await promptToInputDescriptionPosition();
8
8
  }
9
- const undo = await fixingSpinner(async () => core.disablePerFile(results, selectedRuleIds, description, descriptionPosition));
9
+ const undo = await withProgress('Fixing', async () => core.disablePerFile(results, selectedRuleIds, description, descriptionPosition));
10
10
  return undo;
11
11
  }
12
12
  //# sourceMappingURL=disable-per-file.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"disable-per-file.js","sourceRoot":"","sources":["../../src/action/disable-per-file.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,wBAAwB,EAAE,gCAAgC,EAAE,MAAM,kBAAkB,CAAC;AAC9F,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAIlD,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,IAA8B,EAC9B,OAA4B,EAC5B,eAAyB;IAEzB,MAAM,WAAW,GAAG,MAAM,wBAAwB,EAAE,CAAC;IACrD,IAAI,mBAAwC,CAAC;IAC7C,IAAI,WAAW,EAAE,CAAC;QAChB,mBAAmB,GAAG,MAAM,gCAAgC,EAAE,CAAC;IACjE,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,aAAa,CAAC,KAAK,IAAI,EAAE,CAC1C,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,mBAAmB,CAAC,CAChF,CAAC;IACF,OAAO,IAAI,CAAC;AACd,CAAC"}
1
+ {"version":3,"file":"disable-per-file.js","sourceRoot":"","sources":["../../src/action/disable-per-file.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C,OAAO,EAAE,wBAAwB,EAAE,gCAAgC,EAAE,MAAM,kBAAkB,CAAC;AAG9F,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,IAAU,EACV,OAA4B,EAC5B,eAAyB;IAEzB,MAAM,WAAW,GAAG,MAAM,wBAAwB,EAAE,CAAC;IACrD,IAAI,mBAAwC,CAAC;IAC7C,IAAI,WAAW,EAAE,CAAC;QAChB,mBAAmB,GAAG,MAAM,gCAAgC,EAAE,CAAC;IACjE,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,YAAY,CAAC,QAAQ,EAAE,KAAK,IAAI,EAAE,CACnD,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,mBAAmB,CAAC,CAChF,CAAC;IACF,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -1,6 +1,4 @@
1
- import type { Remote } from 'comlink';
2
1
  import type { ESLint } from 'eslint';
3
- import type { Undo } from '../core.js';
4
- import type { SerializableCore } from '../core-worker.js';
5
- export declare function doDisablePerLineAction(core: Remote<SerializableCore>, results: ESLint.LintResult[], selectedRuleIds: string[]): Promise<Undo>;
2
+ import type { Core, Undo } from '../core.js';
3
+ export declare function doDisablePerLineAction(core: Core, results: ESLint.LintResult[], selectedRuleIds: string[]): Promise<Undo>;
6
4
  //# sourceMappingURL=disable-per-line.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"disable-per-line.d.ts","sourceRoot":"","sources":["../../src/action/disable-per-line.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACtC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAIrC,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAE1D,wBAAsB,sBAAsB,CAC1C,IAAI,EAAE,MAAM,CAAC,gBAAgB,CAAC,EAC9B,OAAO,EAAE,MAAM,CAAC,UAAU,EAAE,EAC5B,eAAe,EAAE,MAAM,EAAE,GACxB,OAAO,CAAC,IAAI,CAAC,CAUf"}
1
+ {"version":3,"file":"disable-per-line.d.ts","sourceRoot":"","sources":["../../src/action/disable-per-line.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAIrC,OAAO,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAE7C,wBAAsB,sBAAsB,CAC1C,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,MAAM,CAAC,UAAU,EAAE,EAC5B,eAAe,EAAE,MAAM,EAAE,GACxB,OAAO,CAAC,IAAI,CAAC,CAUf"}
@@ -1,12 +1,12 @@
1
+ import { withProgress } from '../cli/log.js';
1
2
  import { promptToInputDescription, promptToInputDescriptionPosition } from '../cli/prompt.js';
2
- import { fixingSpinner } from '../cli/spinner.js';
3
3
  export async function doDisablePerLineAction(core, results, selectedRuleIds) {
4
4
  const description = await promptToInputDescription();
5
5
  let descriptionPosition;
6
6
  if (description) {
7
7
  descriptionPosition = await promptToInputDescriptionPosition();
8
8
  }
9
- const undo = await fixingSpinner(async () => core.disablePerLine(results, selectedRuleIds, description, descriptionPosition));
9
+ const undo = await withProgress('Fixing', async () => core.disablePerLine(results, selectedRuleIds, description, descriptionPosition));
10
10
  return undo;
11
11
  }
12
12
  //# sourceMappingURL=disable-per-line.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"disable-per-line.js","sourceRoot":"","sources":["../../src/action/disable-per-line.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,wBAAwB,EAAE,gCAAgC,EAAE,MAAM,kBAAkB,CAAC;AAC9F,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAIlD,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,IAA8B,EAC9B,OAA4B,EAC5B,eAAyB;IAEzB,MAAM,WAAW,GAAG,MAAM,wBAAwB,EAAE,CAAC;IACrD,IAAI,mBAAwC,CAAC;IAC7C,IAAI,WAAW,EAAE,CAAC;QAChB,mBAAmB,GAAG,MAAM,gCAAgC,EAAE,CAAC;IACjE,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,aAAa,CAAC,KAAK,IAAI,EAAE,CAC1C,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,mBAAmB,CAAC,CAChF,CAAC;IACF,OAAO,IAAI,CAAC;AACd,CAAC"}
1
+ {"version":3,"file":"disable-per-line.js","sourceRoot":"","sources":["../../src/action/disable-per-line.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C,OAAO,EAAE,wBAAwB,EAAE,gCAAgC,EAAE,MAAM,kBAAkB,CAAC;AAG9F,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,IAAU,EACV,OAA4B,EAC5B,eAAyB;IAEzB,MAAM,WAAW,GAAG,MAAM,wBAAwB,EAAE,CAAC;IACrD,IAAI,mBAAwC,CAAC;IAC7C,IAAI,WAAW,EAAE,CAAC;QAChB,mBAAmB,GAAG,MAAM,gCAAgC,EAAE,CAAC;IACjE,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,YAAY,CAAC,QAAQ,EAAE,KAAK,IAAI,EAAE,CACnD,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,mBAAmB,CAAC,CAChF,CAAC;IACF,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -1,6 +1,4 @@
1
- import type { Remote } from 'comlink';
2
1
  import type { ESLint } from 'eslint';
3
- import type { Undo } from '../core.js';
4
- import type { SerializableCore } from '../core-worker.js';
5
- export declare function doFixAction(core: Remote<SerializableCore>, results: ESLint.LintResult[], selectedRuleIds: string[]): Promise<Undo>;
2
+ import type { Core, Undo } from '../core.js';
3
+ export declare function doFixAction(core: Core, results: ESLint.LintResult[], selectedRuleIds: string[]): Promise<Undo>;
6
4
  //# sourceMappingURL=fix.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"fix.d.ts","sourceRoot":"","sources":["../../src/action/fix.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACtC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAErC,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAE1D,wBAAsB,WAAW,CAC/B,IAAI,EAAE,MAAM,CAAC,gBAAgB,CAAC,EAC9B,OAAO,EAAE,MAAM,CAAC,UAAU,EAAE,EAC5B,eAAe,EAAE,MAAM,EAAE,GACxB,OAAO,CAAC,IAAI,CAAC,CAGf"}
1
+ {"version":3,"file":"fix.d.ts","sourceRoot":"","sources":["../../src/action/fix.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAErC,OAAO,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAE7C,wBAAsB,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,UAAU,EAAE,EAAE,eAAe,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAGpH"}
@@ -1,6 +1,6 @@
1
- import { fixingSpinner } from '../cli/spinner.js';
1
+ import { withProgress } from '../cli/log.js';
2
2
  export async function doFixAction(core, results, selectedRuleIds) {
3
- const undo = await fixingSpinner(async () => core.applyAutoFixes(results, selectedRuleIds));
3
+ const undo = await withProgress('Fixing', async () => core.applyAutoFixes(results, selectedRuleIds));
4
4
  return undo;
5
5
  }
6
6
  //# sourceMappingURL=fix.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"fix.js","sourceRoot":"","sources":["../../src/action/fix.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAIlD,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,IAA8B,EAC9B,OAA4B,EAC5B,eAAyB;IAEzB,MAAM,IAAI,GAAG,MAAM,aAAa,CAAC,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC;IAC5F,OAAO,IAAI,CAAC;AACd,CAAC"}
1
+ {"version":3,"file":"fix.js","sourceRoot":"","sources":["../../src/action/fix.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAG7C,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,IAAU,EAAE,OAA4B,EAAE,eAAyB;IACnG,MAAM,IAAI,GAAG,MAAM,YAAY,CAAC,QAAQ,EAAE,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC;IACrG,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -1,5 +1,4 @@
1
- import type { Remote } from 'comlink';
2
1
  import type { ESLint } from 'eslint';
3
- import type { SerializableCore } from '../core-worker.js';
4
- export declare function doPrintResultDetailsAction(core: Remote<SerializableCore>, results: ESLint.LintResult[], selectedRuleIds: string[]): Promise<void>;
2
+ import type { Core } from '../core.js';
3
+ export declare function doPrintResultDetailsAction(core: Core, results: ESLint.LintResult[], selectedRuleIds: string[]): Promise<void>;
5
4
  //# sourceMappingURL=print-result-details.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"print-result-details.d.ts","sourceRoot":"","sources":["../../src/action/print-result-details.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACtC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAIrC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAG1D,wBAAsB,0BAA0B,CAC9C,IAAI,EAAE,MAAM,CAAC,gBAAgB,CAAC,EAC9B,OAAO,EAAE,MAAM,CAAC,UAAU,EAAE,EAC5B,eAAe,EAAE,MAAM,EAAE,iBAkB1B"}
1
+ {"version":3,"file":"print-result-details.d.ts","sourceRoot":"","sources":["../../src/action/print-result-details.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAIrC,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAGvC,wBAAsB,0BAA0B,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,UAAU,EAAE,EAAE,eAAe,EAAE,MAAM,EAAE,iBAiBnH"}
@@ -4,6 +4,7 @@ import { tmpdir } from 'node:os';
4
4
  import { join } from 'node:path';
5
5
  // eslint-disable-next-line n/no-unsupported-features/node-builtins
6
6
  import { stripVTControlCharacters, styleText } from 'node:util';
7
+ import { log } from '@clack/prompts';
7
8
  import { VERSION } from '../cli/package.js';
8
9
  import { pager } from '../cli/pager.js';
9
10
  import { promptToInputDisplayMode } from '../cli/prompt.js';
@@ -12,7 +13,7 @@ export async function doPrintResultDetailsAction(core, results, selectedRuleIds)
12
13
  const displayMode = await promptToInputDisplayMode();
13
14
  const formattedResultDetails = await core.formatResultDetails(results, selectedRuleIds);
14
15
  if (displayMode === 'printInTerminal') {
15
- console.log(formattedResultDetails);
16
+ log.message(formattedResultDetails);
16
17
  }
17
18
  else if (displayMode === 'printInTerminalWithPager') {
18
19
  await pager(formattedResultDetails);
@@ -22,7 +23,7 @@ export async function doPrintResultDetailsAction(core, results, selectedRuleIds)
22
23
  const filePath = join(tempDir, 'lint-result-details.txt');
23
24
  await mkdir(tempDir, { recursive: true }); // Create the directory because it might not exist
24
25
  await writeFile(filePath, stripVTControlCharacters(formattedResultDetails), 'utf8');
25
- console.log(styleText('cyan', `Wrote to ${filePath}`));
26
+ log.message(styleText('cyan', `Wrote to ${filePath}`));
26
27
  }
27
28
  else {
28
29
  // eslint-disable-next-line @typescript-eslint/restrict-template-expressions
@@ -1 +1 @@
1
- {"version":3,"file":"print-result-details.js","sourceRoot":"","sources":["../../src/action/print-result-details.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,mEAAmE;AACnE,OAAO,EAAE,wBAAwB,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAGhE,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACxC,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAE5D,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEpD,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAC9C,IAA8B,EAC9B,OAA4B,EAC5B,eAAyB;IAEzB,MAAM,WAAW,GAAG,MAAM,wBAAwB,EAAE,CAAC;IACrD,MAAM,sBAAsB,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;IACxF,IAAI,WAAW,KAAK,iBAAiB,EAAE,CAAC;QACtC,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;IACtC,CAAC;SAAM,IAAI,WAAW,KAAK,0BAA0B,EAAE,CAAC;QACtD,MAAM,KAAK,CAAC,sBAAsB,CAAC,CAAC;IACtC,CAAC;SAAM,IAAI,WAAW,KAAK,aAAa,EAAE,CAAC;QACzC,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;QAC7B,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,EAAE,yBAAyB,CAAC,CAAC;QAC1D,MAAM,KAAK,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,kDAAkD;QAC7F,MAAM,SAAS,CAAC,QAAQ,EAAE,wBAAwB,CAAC,sBAAsB,CAAC,EAAE,MAAM,CAAC,CAAC;QACpF,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,EAAE,YAAY,QAAQ,EAAE,CAAC,CAAC,CAAC;IACzD,CAAC;SAAM,CAAC;QACN,4EAA4E;QAC5E,WAAW,CAAC,yBAAyB,WAAW,EAAE,CAAC,CAAC;IACtD,CAAC;AACH,CAAC;AAED,SAAS,UAAU;IACjB,OAAO,IAAI,CAAC,MAAM,EAAE,EAAE,oBAAoB,EAAE,OAAO,CAAC,CAAC;AACvD,CAAC"}
1
+ {"version":3,"file":"print-result-details.js","sourceRoot":"","sources":["../../src/action/print-result-details.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,mEAAmE;AACnE,OAAO,EAAE,wBAAwB,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAChE,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AAErC,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACxC,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAE5D,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEpD,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAAC,IAAU,EAAE,OAA4B,EAAE,eAAyB;IAClH,MAAM,WAAW,GAAG,MAAM,wBAAwB,EAAE,CAAC;IACrD,MAAM,sBAAsB,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;IACxF,IAAI,WAAW,KAAK,iBAAiB,EAAE,CAAC;QACtC,GAAG,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;IACtC,CAAC;SAAM,IAAI,WAAW,KAAK,0BAA0B,EAAE,CAAC;QACtD,MAAM,KAAK,CAAC,sBAAsB,CAAC,CAAC;IACtC,CAAC;SAAM,IAAI,WAAW,KAAK,aAAa,EAAE,CAAC;QACzC,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;QAC7B,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,EAAE,yBAAyB,CAAC,CAAC;QAC1D,MAAM,KAAK,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,kDAAkD;QAC7F,MAAM,SAAS,CAAC,QAAQ,EAAE,wBAAwB,CAAC,sBAAsB,CAAC,EAAE,MAAM,CAAC,CAAC;QACpF,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,YAAY,QAAQ,EAAE,CAAC,CAAC,CAAC;IACzD,CAAC;SAAM,CAAC;QACN,4EAA4E;QAC5E,WAAW,CAAC,yBAAyB,WAAW,EAAE,CAAC,CAAC;IACtD,CAAC;AACH,CAAC;AAED,SAAS,UAAU;IACjB,OAAO,IAAI,CAAC,MAAM,EAAE,EAAE,oBAAoB,EAAE,OAAO,CAAC,CAAC;AACvD,CAAC"}
package/dist/cli/log.d.ts CHANGED
@@ -3,4 +3,5 @@
3
3
  * @param message The message to report
4
4
  */
5
5
  export declare function error(message: string): void;
6
+ export declare function withProgress<T>(taskName: 'Linting' | 'Fixing' | 'Undoing', cb: () => Promise<T>): Promise<T>;
6
7
  //# sourceMappingURL=log.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"log.d.ts","sourceRoot":"","sources":["../../src/cli/log.ts"],"names":[],"mappings":"AAGA;;;GAGG;AACH,wBAAgB,KAAK,CAAC,OAAO,EAAE,MAAM,QAEpC"}
1
+ {"version":3,"file":"log.d.ts","sourceRoot":"","sources":["../../src/cli/log.ts"],"names":[],"mappings":"AAIA;;;GAGG;AACH,wBAAgB,KAAK,CAAC,OAAO,EAAE,MAAM,QAEpC;AAED,wBAAsB,YAAY,CAAC,CAAC,EAAE,QAAQ,EAAE,SAAS,GAAG,QAAQ,GAAG,SAAS,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAYlH"}
package/dist/cli/log.js CHANGED
@@ -1,5 +1,6 @@
1
1
  // eslint-disable-next-line n/no-unsupported-features/node-builtins
2
2
  import { styleText } from 'node:util';
3
+ import { taskLog } from '@clack/prompts';
3
4
  /**
4
5
  * Log an error message to stderr
5
6
  * @param message The message to report
@@ -7,4 +8,28 @@ import { styleText } from 'node:util';
7
8
  export function error(message) {
8
9
  process.stderr.write(styleText('red', 'Error') + ': ' + message + '\n');
9
10
  }
11
+ export async function withProgress(taskName, cb) {
12
+ const log = taskLog({
13
+ title: `${taskName}...`,
14
+ });
15
+ startProgress();
16
+ try {
17
+ const result = await cb();
18
+ log.success(`${taskName} completed.`);
19
+ return result;
20
+ }
21
+ finally {
22
+ endProgress();
23
+ }
24
+ }
25
+ function startProgress() {
26
+ if (!process.stdout.isTTY)
27
+ return;
28
+ process.stdout.write('\x1b]9;4;3\x07');
29
+ }
30
+ function endProgress() {
31
+ if (!process.stdout.isTTY)
32
+ return;
33
+ process.stdout.write('\x1b]9;4;0\x07');
34
+ }
10
35
  //# sourceMappingURL=log.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"log.js","sourceRoot":"","sources":["../../src/cli/log.ts"],"names":[],"mappings":"AAAA,mEAAmE;AACnE,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC;;;GAGG;AACH,MAAM,UAAU,KAAK,CAAC,OAAe;IACnC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC,GAAG,IAAI,GAAG,OAAO,GAAG,IAAI,CAAC,CAAC;AAC1E,CAAC"}
1
+ {"version":3,"file":"log.js","sourceRoot":"","sources":["../../src/cli/log.ts"],"names":[],"mappings":"AAAA,mEAAmE;AACnE,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAEzC;;;GAGG;AACH,MAAM,UAAU,KAAK,CAAC,OAAe;IACnC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC,GAAG,IAAI,GAAG,OAAO,GAAG,IAAI,CAAC,CAAC;AAC1E,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAAI,QAA0C,EAAE,EAAoB;IACpG,MAAM,GAAG,GAAG,OAAO,CAAC;QAClB,KAAK,EAAE,GAAG,QAAQ,KAAK;KACxB,CAAC,CAAC;IACH,aAAa,EAAE,CAAC;IAChB,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,EAAE,EAAE,CAAC;QAC1B,GAAG,CAAC,OAAO,CAAC,GAAG,QAAQ,aAAa,CAAC,CAAC;QACtC,OAAO,MAAM,CAAC;IAChB,CAAC;YAAS,CAAC;QACT,WAAW,EAAE,CAAC;IAChB,CAAC;AACH,CAAC;AAED,SAAS,aAAa;IACpB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK;QAAE,OAAO;IAClC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;AACzC,CAAC;AAED,SAAS,WAAW;IAClB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK;QAAE,OAAO;IAClC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;AACzC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"parse-argv.d.ts","sourceRoot":"","sources":["../../src/cli/parse-argv.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAwB,MAAM,YAAY,CAAC;AAM/D,wBAAwB;AACxB,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,CAqFhD"}
1
+ {"version":3,"file":"parse-argv.d.ts","sourceRoot":"","sources":["../../src/cli/parse-argv.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAyC,MAAM,YAAY,CAAC;AAOhF,wBAAwB;AACxB,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,CAyGhD"}
@@ -2,12 +2,15 @@ import { parseArgs } from 'node:util';
2
2
  import { VERSION } from './package.js';
3
3
  const VALID_SORT_FIELDS = ['rule', 'error', 'warning', 'fixable', 'suggestions'];
4
4
  const VALID_SORT_ORDERS = ['asc', 'desc'];
5
+ const VALID_FILTER_CRITERIA = ['fixable', 'has-suggestions'];
5
6
  /** Parse CLI options */
6
7
  export function parseArgv(argv) {
7
8
  const options = {
8
9
  'config': { type: 'string', short: 'c' },
9
10
  'format': { type: 'string' },
10
11
  'quiet': { type: 'boolean' },
12
+ 'ignore-pattern': { type: 'string', multiple: true },
13
+ 'ignore': { type: 'boolean' },
11
14
  'cache': { type: 'boolean' },
12
15
  'cache-location': { type: 'string' },
13
16
  'version': { type: 'boolean' },
@@ -15,6 +18,7 @@ export function parseArgv(argv) {
15
18
  'flag': { type: 'string', multiple: true },
16
19
  'sort': { type: 'string' },
17
20
  'sort-order': { type: 'string' },
21
+ 'filter': { type: 'string', multiple: true },
18
22
  };
19
23
  const { values, positionals } = parseArgs({
20
24
  allowPositionals: true,
@@ -34,6 +38,15 @@ export function parseArgv(argv) {
34
38
  // eslint-disable-next-line n/no-process-exit
35
39
  process.exit(1);
36
40
  }
41
+ if (values.filter !== undefined) {
42
+ for (const filter of values.filter) {
43
+ if (!VALID_FILTER_CRITERIA.includes(filter)) {
44
+ console.error(`Invalid --filter value: "${filter}". Must be one of: ${VALID_FILTER_CRITERIA.join(', ')}`);
45
+ // eslint-disable-next-line n/no-process-exit
46
+ process.exit(1);
47
+ }
48
+ }
49
+ }
37
50
  if (values.version) {
38
51
  console.log(VERSION);
39
52
  // eslint-disable-next-line n/no-process-exit
@@ -44,16 +57,20 @@ export function parseArgv(argv) {
44
57
  eslint-interactive [...patterns]
45
58
 
46
59
  Options:
47
- --help Show help
48
- --version Show version number
49
- -c, --config <path> Use this configuration, overriding config options if present
50
- --format <nameOrPath> Specify the format to be used for the "Display problem messages" action
51
- --quiet Report errors only
52
- --cache Only check changed files
53
- --cache-location <path> Path to the cache file or directory
54
- --flag <name> Enable a feature flag (requires ESLint v9.6.0+)
55
- --sort <field> Sort rules by: rule, error, warning, fixable, suggestions
56
- --sort-order <direction> Sort direction: asc, desc (default: desc for counts, asc for rule)
60
+ --help Show help
61
+ --version Show version number
62
+ -c, --config <path> Use this configuration, overriding config options if present
63
+ --format <nameOrPath> Specify the format to be used for the "Display problem messages" action
64
+ --quiet Report errors only
65
+ --ignore-pattern <string> Patterns of files to ignore
66
+ --no-ignore Disable use of ignore files and patterns
67
+ --cache Only check changed files
68
+ --cache-location <path> Path to the cache file or directory
69
+ --flag <name> Enable a feature flag (requires ESLint v9.6.0+)
70
+ --sort <field> Sort rules by: rule, error, warning, fixable, suggestions
71
+ --sort-order <direction> Sort direction: asc, desc (default: desc for counts, asc for rule)
72
+ --filter <criterion> Show only rules matching the criterion: fixable, has-suggestions
73
+ (repeatable; multiple values are OR-ed)
57
74
 
58
75
  Examples:
59
76
  eslint-interactive Lint all files in the project
@@ -61,6 +78,7 @@ Examples:
61
78
  eslint-interactive 'src/**/*.{ts,tsx,vue}' Lint with glob pattern
62
79
  eslint-interactive --sort error Sort rules by error count (descending)
63
80
  eslint-interactive --sort rule Sort rules by rule name (ascending)
81
+ eslint-interactive --filter fixable Show only rules that have fixable problems
64
82
  `.trim());
65
83
  // eslint-disable-next-line n/no-process-exit
66
84
  process.exit(0);
@@ -71,12 +89,15 @@ Examples:
71
89
  patterns,
72
90
  formatterName,
73
91
  quiet: values.quiet,
92
+ ignorePatterns: values['ignore-pattern'],
93
+ ignore: values.ignore,
74
94
  overrideConfigFile: values.config,
75
95
  cache: values.cache,
76
96
  cacheLocation: values['cache-location'],
77
97
  flags: values.flag,
78
98
  sort: values.sort,
79
99
  sortOrder: values['sort-order'],
100
+ filters: values.filter,
80
101
  };
81
102
  }
82
103
  //# sourceMappingURL=parse-argv.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"parse-argv.js","sourceRoot":"","sources":["../../src/cli/parse-argv.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"parse-argv.js","sourceRoot":"","sources":["../../src/cli/parse-argv.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"prompt.d.ts","sourceRoot":"","sources":["../../src/cli/prompt.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAUrC;;GAEG;AACH,MAAM,MAAM,MAAM,GACd,oBAAoB,GACpB,gBAAgB,GAChB,gBAAgB,GAChB,gBAAgB,GAChB,8BAA8B,GAC9B,wBAAwB,GACxB,eAAe,CAAC;AAEpB;;;;;;GAMG;AACH,KAAK,WAAW,GAAG,iBAAiB,GAAG,0BAA0B,GAAG,aAAa,CAAC;AAElF;;GAEG;AACH,KAAK,QAAQ,GAAG,eAAe,GAAG,MAAM,GAAG,YAAY,CAAC;AAExD,MAAM,MAAM,mBAAmB,GAAG,UAAU,GAAG,cAAc,CAAC;AAE9D;;;;GAIG;AACH,wBAAsB,oBAAoB,CAAC,gBAAgB,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAgBxF;AAED;;;GAGG;AACH,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,MAAM,CAAC,UAAU,EAAE,EAC5B,eAAe,EAAE,MAAM,EAAE,EACzB,aAAa,CAAC,EAAE,MAAM,GACrB,OAAO,CAAC,MAAM,CAAC,CAkCjB;AAED;;;GAGG;AACH,wBAAsB,wBAAwB,IAAI,OAAO,CAAC,WAAW,CAAC,CAiBrE;AAED;;;GAGG;AACH,wBAAsB,wBAAwB,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAY5E;AAED;;;GAGG;AACH,wBAAsB,gCAAgC,IAAI,OAAO,CAAC,mBAAmB,CAAC,CAgBrF;AAED;;;GAGG;AACH,wBAAsB,yBAAyB,IAAI,OAAO,CAAC,QAAQ,CAAC,CAenE"}
1
+ {"version":3,"file":"prompt.d.ts","sourceRoot":"","sources":["../../src/cli/prompt.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAWrC;;GAEG;AACH,MAAM,MAAM,MAAM,GACd,oBAAoB,GACpB,gBAAgB,GAChB,gBAAgB,GAChB,gBAAgB,GAChB,8BAA8B,GAC9B,wBAAwB,GACxB,eAAe,CAAC;AAEpB;;;;;;GAMG;AACH,KAAK,WAAW,GAAG,iBAAiB,GAAG,0BAA0B,GAAG,aAAa,CAAC;AAElF;;GAEG;AACH,KAAK,QAAQ,GAAG,eAAe,GAAG,MAAM,GAAG,YAAY,CAAC;AAExD,MAAM,MAAM,mBAAmB,GAAG,UAAU,GAAG,cAAc,CAAC;AAE9D;;;;GAIG;AACH,wBAAsB,oBAAoB,CAAC,gBAAgB,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAQxF;AAED;;;GAGG;AACH,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,MAAM,CAAC,UAAU,EAAE,EAC5B,eAAe,EAAE,MAAM,EAAE,EACzB,aAAa,CAAC,EAAE,MAAM,GACrB,OAAO,CAAC,MAAM,CAAC,CA0BjB;AAED;;;GAGG;AACH,wBAAsB,wBAAwB,IAAI,OAAO,CAAC,WAAW,CAAC,CAWrE;AAED;;;GAGG;AACH,wBAAsB,wBAAwB,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAO5E;AAED;;;GAGG;AACH,wBAAsB,gCAAgC,IAAI,OAAO,CAAC,mBAAmB,CAAC,CAUrF;AAED;;;GAGG;AACH,wBAAsB,yBAAyB,IAAI,OAAO,CAAC,QAAQ,CAAC,CAWnE"}