bahlint 28.58.6934

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 (420) hide show
  1. package/LICENSE +19 -0
  2. package/README.md +370 -0
  3. package/bin/eslint.js +195 -0
  4. package/conf/ecma-version.js +16 -0
  5. package/conf/globals.js +169 -0
  6. package/conf/replacements.json +26 -0
  7. package/conf/rule-type-list.json +91 -0
  8. package/lib/api.js +39 -0
  9. package/lib/cli-engine/formatters/formatters-meta.json +22 -0
  10. package/lib/cli-engine/formatters/gasoline.js +168 -0
  11. package/lib/cli-engine/formatters/html.js +359 -0
  12. package/lib/cli-engine/formatters/json-with-metadata.js +16 -0
  13. package/lib/cli-engine/formatters/json.js +13 -0
  14. package/lib/cli-engine/formatters/stylish.js +153 -0
  15. package/lib/cli-engine/hash.js +35 -0
  16. package/lib/cli-engine/lint-result-cache.js +220 -0
  17. package/lib/cli.js +607 -0
  18. package/lib/config/config-loader.js +683 -0
  19. package/lib/config/config.js +674 -0
  20. package/lib/config/default-config.js +78 -0
  21. package/lib/config/flat-config-array.js +217 -0
  22. package/lib/config/flat-config-schema.js +598 -0
  23. package/lib/config-api.js +12 -0
  24. package/lib/eslint/eslint-helpers.js +1462 -0
  25. package/lib/eslint/eslint.js +1364 -0
  26. package/lib/eslint/index.js +7 -0
  27. package/lib/eslint/worker.js +173 -0
  28. package/lib/languages/js/index.js +336 -0
  29. package/lib/languages/js/source-code/index.js +7 -0
  30. package/lib/languages/js/source-code/source-code.js +1178 -0
  31. package/lib/languages/js/source-code/token-store/backward-token-comment-cursor.js +61 -0
  32. package/lib/languages/js/source-code/token-store/backward-token-cursor.js +57 -0
  33. package/lib/languages/js/source-code/token-store/cursor.js +76 -0
  34. package/lib/languages/js/source-code/token-store/cursors.js +120 -0
  35. package/lib/languages/js/source-code/token-store/decorative-cursor.js +38 -0
  36. package/lib/languages/js/source-code/token-store/filter-cursor.js +42 -0
  37. package/lib/languages/js/source-code/token-store/forward-token-comment-cursor.js +65 -0
  38. package/lib/languages/js/source-code/token-store/forward-token-cursor.js +62 -0
  39. package/lib/languages/js/source-code/token-store/index.js +695 -0
  40. package/lib/languages/js/source-code/token-store/limit-cursor.js +39 -0
  41. package/lib/languages/js/source-code/token-store/padded-token-cursor.js +45 -0
  42. package/lib/languages/js/source-code/token-store/skip-cursor.js +41 -0
  43. package/lib/languages/js/source-code/token-store/utils.js +131 -0
  44. package/lib/languages/js/validate-language-options.js +196 -0
  45. package/lib/linter/apply-disable-directives.js +583 -0
  46. package/lib/linter/code-path-analysis/code-path-analyzer.js +828 -0
  47. package/lib/linter/code-path-analysis/code-path-segment.js +262 -0
  48. package/lib/linter/code-path-analysis/code-path-state.js +2370 -0
  49. package/lib/linter/code-path-analysis/code-path.js +332 -0
  50. package/lib/linter/code-path-analysis/debug-helpers.js +223 -0
  51. package/lib/linter/code-path-analysis/fork-context.js +374 -0
  52. package/lib/linter/code-path-analysis/id-generator.js +44 -0
  53. package/lib/linter/esquery.js +332 -0
  54. package/lib/linter/file-context.js +88 -0
  55. package/lib/linter/file-report.js +604 -0
  56. package/lib/linter/index.js +11 -0
  57. package/lib/linter/interpolate.js +50 -0
  58. package/lib/linter/linter.js +1614 -0
  59. package/lib/linter/rule-fixer.js +199 -0
  60. package/lib/linter/source-code-fixer.js +154 -0
  61. package/lib/linter/source-code-traverser.js +333 -0
  62. package/lib/linter/source-code-visitor.js +81 -0
  63. package/lib/linter/timing.js +209 -0
  64. package/lib/linter/vfile.js +115 -0
  65. package/lib/options.js +416 -0
  66. package/lib/rule-tester/index.js +7 -0
  67. package/lib/rule-tester/rule-tester.js +1817 -0
  68. package/lib/rules/accessor-pairs.js +420 -0
  69. package/lib/rules/array-bracket-newline.js +291 -0
  70. package/lib/rules/array-bracket-spacing.js +301 -0
  71. package/lib/rules/array-callback-return.js +493 -0
  72. package/lib/rules/array-element-newline.js +374 -0
  73. package/lib/rules/arrow-body-style.js +418 -0
  74. package/lib/rules/arrow-parens.js +237 -0
  75. package/lib/rules/arrow-spacing.js +188 -0
  76. package/lib/rules/block-scoped-var.js +137 -0
  77. package/lib/rules/block-spacing.js +202 -0
  78. package/lib/rules/brace-style.js +278 -0
  79. package/lib/rules/callback-return.js +216 -0
  80. package/lib/rules/camelcase.js +422 -0
  81. package/lib/rules/capitalized-comments.js +325 -0
  82. package/lib/rules/class-methods-use-this.js +250 -0
  83. package/lib/rules/comma-dangle.js +424 -0
  84. package/lib/rules/comma-spacing.js +205 -0
  85. package/lib/rules/comma-style.js +391 -0
  86. package/lib/rules/complexity.js +201 -0
  87. package/lib/rules/computed-property-spacing.js +251 -0
  88. package/lib/rules/consistent-return.js +221 -0
  89. package/lib/rules/consistent-this.js +179 -0
  90. package/lib/rules/constructor-super.js +453 -0
  91. package/lib/rules/curly.js +425 -0
  92. package/lib/rules/default-case-last.js +51 -0
  93. package/lib/rules/default-case.js +103 -0
  94. package/lib/rules/default-param-last.js +78 -0
  95. package/lib/rules/dot-location.js +138 -0
  96. package/lib/rules/dot-notation.js +216 -0
  97. package/lib/rules/eol-last.js +135 -0
  98. package/lib/rules/eqeqeq.js +210 -0
  99. package/lib/rules/for-direction.js +168 -0
  100. package/lib/rules/func-call-spacing.js +281 -0
  101. package/lib/rules/func-name-matching.js +338 -0
  102. package/lib/rules/func-names.js +194 -0
  103. package/lib/rules/func-style.js +221 -0
  104. package/lib/rules/function-call-argument-newline.js +166 -0
  105. package/lib/rules/function-paren-newline.js +368 -0
  106. package/lib/rules/generator-star-spacing.js +246 -0
  107. package/lib/rules/getter-return.js +242 -0
  108. package/lib/rules/global-require.js +117 -0
  109. package/lib/rules/grouped-accessor-pairs.js +268 -0
  110. package/lib/rules/guard-for-in.js +85 -0
  111. package/lib/rules/handle-callback-err.js +122 -0
  112. package/lib/rules/id-blacklist.js +241 -0
  113. package/lib/rules/id-denylist.js +223 -0
  114. package/lib/rules/id-length.js +217 -0
  115. package/lib/rules/id-match.js +363 -0
  116. package/lib/rules/implicit-arrow-linebreak.js +125 -0
  117. package/lib/rules/indent-legacy.js +1369 -0
  118. package/lib/rules/indent.js +2334 -0
  119. package/lib/rules/index.js +332 -0
  120. package/lib/rules/init-declarations.js +172 -0
  121. package/lib/rules/jsx-quotes.js +128 -0
  122. package/lib/rules/key-spacing.js +822 -0
  123. package/lib/rules/keyword-spacing.js +701 -0
  124. package/lib/rules/line-comment-position.js +157 -0
  125. package/lib/rules/linebreak-style.js +135 -0
  126. package/lib/rules/lines-around-comment.js +581 -0
  127. package/lib/rules/lines-around-directive.js +249 -0
  128. package/lib/rules/lines-between-class-members.js +358 -0
  129. package/lib/rules/logical-assignment-operators.js +688 -0
  130. package/lib/rules/max-classes-per-file.js +90 -0
  131. package/lib/rules/max-depth.js +159 -0
  132. package/lib/rules/max-len.js +497 -0
  133. package/lib/rules/max-lines-per-function.js +238 -0
  134. package/lib/rules/max-lines.js +189 -0
  135. package/lib/rules/max-nested-callbacks.js +115 -0
  136. package/lib/rules/max-params.js +148 -0
  137. package/lib/rules/max-statements-per-line.js +224 -0
  138. package/lib/rules/max-statements.js +188 -0
  139. package/lib/rules/multiline-comment-style.js +652 -0
  140. package/lib/rules/multiline-ternary.js +257 -0
  141. package/lib/rules/new-cap.js +277 -0
  142. package/lib/rules/new-parens.js +120 -0
  143. package/lib/rules/newline-after-var.js +307 -0
  144. package/lib/rules/newline-before-return.js +242 -0
  145. package/lib/rules/newline-per-chained-call.js +159 -0
  146. package/lib/rules/no-alert.js +149 -0
  147. package/lib/rules/no-array-constructor.js +195 -0
  148. package/lib/rules/no-async-promise-executor.js +45 -0
  149. package/lib/rules/no-await-in-loop.js +115 -0
  150. package/lib/rules/no-bitwise.js +145 -0
  151. package/lib/rules/no-buffer-constructor.js +74 -0
  152. package/lib/rules/no-caller.js +52 -0
  153. package/lib/rules/no-case-declarations.js +80 -0
  154. package/lib/rules/no-catch-shadow.js +96 -0
  155. package/lib/rules/no-class-assign.js +66 -0
  156. package/lib/rules/no-compare-neg-zero.js +74 -0
  157. package/lib/rules/no-cond-assign.js +175 -0
  158. package/lib/rules/no-confusing-arrow.js +127 -0
  159. package/lib/rules/no-console.js +221 -0
  160. package/lib/rules/no-const-assign.js +73 -0
  161. package/lib/rules/no-constant-binary-expression.js +603 -0
  162. package/lib/rules/no-constant-condition.js +177 -0
  163. package/lib/rules/no-constructor-return.js +62 -0
  164. package/lib/rules/no-continue.js +38 -0
  165. package/lib/rules/no-control-regex.js +142 -0
  166. package/lib/rules/no-debugger.js +41 -0
  167. package/lib/rules/no-delete-var.js +42 -0
  168. package/lib/rules/no-div-regex.js +60 -0
  169. package/lib/rules/no-dupe-args.js +92 -0
  170. package/lib/rules/no-dupe-class-members.js +117 -0
  171. package/lib/rules/no-dupe-else-if.js +145 -0
  172. package/lib/rules/no-dupe-keys.js +165 -0
  173. package/lib/rules/no-duplicate-case.js +78 -0
  174. package/lib/rules/no-duplicate-imports.js +368 -0
  175. package/lib/rules/no-else-return.js +450 -0
  176. package/lib/rules/no-empty-character-class.js +83 -0
  177. package/lib/rules/no-empty-function.js +236 -0
  178. package/lib/rules/no-empty-pattern.js +85 -0
  179. package/lib/rules/no-empty-static-block.js +73 -0
  180. package/lib/rules/no-empty.js +153 -0
  181. package/lib/rules/no-eq-null.js +51 -0
  182. package/lib/rules/no-eval.js +295 -0
  183. package/lib/rules/no-ex-assign.js +57 -0
  184. package/lib/rules/no-extend-native.js +180 -0
  185. package/lib/rules/no-extra-bind.js +224 -0
  186. package/lib/rules/no-extra-boolean-cast.js +420 -0
  187. package/lib/rules/no-extra-label.js +169 -0
  188. package/lib/rules/no-extra-parens.js +1669 -0
  189. package/lib/rules/no-extra-semi.js +167 -0
  190. package/lib/rules/no-fallthrough.js +260 -0
  191. package/lib/rules/no-floating-decimal.js +99 -0
  192. package/lib/rules/no-func-assign.js +77 -0
  193. package/lib/rules/no-global-assign.js +101 -0
  194. package/lib/rules/no-implicit-coercion.js +468 -0
  195. package/lib/rules/no-implicit-globals.js +187 -0
  196. package/lib/rules/no-implied-eval.js +170 -0
  197. package/lib/rules/no-import-assign.js +227 -0
  198. package/lib/rules/no-inline-comments.js +115 -0
  199. package/lib/rules/no-inner-declarations.js +147 -0
  200. package/lib/rules/no-invalid-regexp.js +244 -0
  201. package/lib/rules/no-invalid-this.js +178 -0
  202. package/lib/rules/no-irregular-whitespace.js +292 -0
  203. package/lib/rules/no-iterator.js +48 -0
  204. package/lib/rules/no-label-var.js +78 -0
  205. package/lib/rules/no-labels.js +156 -0
  206. package/lib/rules/no-lone-blocks.js +140 -0
  207. package/lib/rules/no-lonely-if.js +126 -0
  208. package/lib/rules/no-loop-func.js +267 -0
  209. package/lib/rules/no-loss-of-precision.js +249 -0
  210. package/lib/rules/no-magic-numbers.js +365 -0
  211. package/lib/rules/no-misleading-character-class.js +595 -0
  212. package/lib/rules/no-mixed-operators.js +253 -0
  213. package/lib/rules/no-mixed-requires.js +267 -0
  214. package/lib/rules/no-mixed-spaces-and-tabs.js +148 -0
  215. package/lib/rules/no-multi-assign.js +66 -0
  216. package/lib/rules/no-multi-spaces.js +179 -0
  217. package/lib/rules/no-multi-str.js +67 -0
  218. package/lib/rules/no-multiple-empty-lines.js +210 -0
  219. package/lib/rules/no-native-reassign.js +114 -0
  220. package/lib/rules/no-negated-condition.js +100 -0
  221. package/lib/rules/no-negated-in-lhs.js +59 -0
  222. package/lib/rules/no-nested-ternary.js +46 -0
  223. package/lib/rules/no-new-func.js +96 -0
  224. package/lib/rules/no-new-native-nonconstructor.js +70 -0
  225. package/lib/rules/no-new-object.js +76 -0
  226. package/lib/rules/no-new-require.js +67 -0
  227. package/lib/rules/no-new-symbol.js +74 -0
  228. package/lib/rules/no-new-wrappers.js +62 -0
  229. package/lib/rules/no-new.js +42 -0
  230. package/lib/rules/no-nonoctal-decimal-escape.js +176 -0
  231. package/lib/rules/no-obj-calls.js +99 -0
  232. package/lib/rules/no-object-constructor.js +124 -0
  233. package/lib/rules/no-octal-escape.js +53 -0
  234. package/lib/rules/no-octal.js +42 -0
  235. package/lib/rules/no-param-reassign.js +248 -0
  236. package/lib/rules/no-path-concat.js +79 -0
  237. package/lib/rules/no-plusplus.js +102 -0
  238. package/lib/rules/no-process-env.js +68 -0
  239. package/lib/rules/no-process-exit.js +67 -0
  240. package/lib/rules/no-promise-executor-return.js +264 -0
  241. package/lib/rules/no-proto.js +45 -0
  242. package/lib/rules/no-prototype-builtins.js +181 -0
  243. package/lib/rules/no-redeclare.js +173 -0
  244. package/lib/rules/no-regex-spaces.js +219 -0
  245. package/lib/rules/no-restricted-exports.js +227 -0
  246. package/lib/rules/no-restricted-globals.js +266 -0
  247. package/lib/rules/no-restricted-imports.js +892 -0
  248. package/lib/rules/no-restricted-modules.js +249 -0
  249. package/lib/rules/no-restricted-properties.js +233 -0
  250. package/lib/rules/no-restricted-syntax.js +74 -0
  251. package/lib/rules/no-return-assign.js +87 -0
  252. package/lib/rules/no-return-await.js +162 -0
  253. package/lib/rules/no-script-url.js +68 -0
  254. package/lib/rules/no-self-assign.js +186 -0
  255. package/lib/rules/no-self-compare.js +77 -0
  256. package/lib/rules/no-sequences.js +158 -0
  257. package/lib/rules/no-setter-return.js +224 -0
  258. package/lib/rules/no-shadow-restricted-names.js +113 -0
  259. package/lib/rules/no-shadow.js +624 -0
  260. package/lib/rules/no-spaced-func.js +105 -0
  261. package/lib/rules/no-sparse-arrays.js +68 -0
  262. package/lib/rules/no-sync.js +81 -0
  263. package/lib/rules/no-tabs.js +110 -0
  264. package/lib/rules/no-template-curly-in-string.js +45 -0
  265. package/lib/rules/no-ternary.js +38 -0
  266. package/lib/rules/no-this-before-super.js +365 -0
  267. package/lib/rules/no-throw-literal.js +46 -0
  268. package/lib/rules/no-trailing-spaces.js +227 -0
  269. package/lib/rules/no-unassigned-vars.js +80 -0
  270. package/lib/rules/no-undef-init.js +101 -0
  271. package/lib/rules/no-undef.js +84 -0
  272. package/lib/rules/no-undefined.js +85 -0
  273. package/lib/rules/no-underscore-dangle.js +383 -0
  274. package/lib/rules/no-unexpected-multiline.js +130 -0
  275. package/lib/rules/no-unmodified-loop-condition.js +360 -0
  276. package/lib/rules/no-unneeded-ternary.js +232 -0
  277. package/lib/rules/no-unreachable-loop.js +190 -0
  278. package/lib/rules/no-unreachable.js +300 -0
  279. package/lib/rules/no-unsafe-finally.js +119 -0
  280. package/lib/rules/no-unsafe-negation.js +152 -0
  281. package/lib/rules/no-unsafe-optional-chaining.js +221 -0
  282. package/lib/rules/no-unused-expressions.js +227 -0
  283. package/lib/rules/no-unused-labels.js +158 -0
  284. package/lib/rules/no-unused-private-class-members.js +219 -0
  285. package/lib/rules/no-unused-vars.js +1739 -0
  286. package/lib/rules/no-use-before-define.js +446 -0
  287. package/lib/rules/no-useless-assignment.js +657 -0
  288. package/lib/rules/no-useless-backreference.js +263 -0
  289. package/lib/rules/no-useless-call.js +95 -0
  290. package/lib/rules/no-useless-catch.js +57 -0
  291. package/lib/rules/no-useless-computed-key.js +204 -0
  292. package/lib/rules/no-useless-concat.js +121 -0
  293. package/lib/rules/no-useless-constructor.js +262 -0
  294. package/lib/rules/no-useless-escape.js +406 -0
  295. package/lib/rules/no-useless-rename.js +202 -0
  296. package/lib/rules/no-useless-return.js +401 -0
  297. package/lib/rules/no-var.js +367 -0
  298. package/lib/rules/no-void.js +69 -0
  299. package/lib/rules/no-warning-comments.js +209 -0
  300. package/lib/rules/no-whitespace-before-property.js +150 -0
  301. package/lib/rules/no-with.js +37 -0
  302. package/lib/rules/nonblock-statement-body-position.js +164 -0
  303. package/lib/rules/object-curly-newline.js +383 -0
  304. package/lib/rules/object-curly-spacing.js +369 -0
  305. package/lib/rules/object-property-newline.js +151 -0
  306. package/lib/rules/object-shorthand.js +652 -0
  307. package/lib/rules/one-var-declaration-per-line.js +117 -0
  308. package/lib/rules/one-var.js +717 -0
  309. package/lib/rules/operator-assignment.js +270 -0
  310. package/lib/rules/operator-linebreak.js +315 -0
  311. package/lib/rules/padded-blocks.js +366 -0
  312. package/lib/rules/padding-line-between-statements.js +612 -0
  313. package/lib/rules/prefer-arrow-callback.js +437 -0
  314. package/lib/rules/prefer-const.js +546 -0
  315. package/lib/rules/prefer-destructuring.js +332 -0
  316. package/lib/rules/prefer-exponentiation-operator.js +235 -0
  317. package/lib/rules/prefer-named-capture-group.js +197 -0
  318. package/lib/rules/prefer-numeric-literals.js +157 -0
  319. package/lib/rules/prefer-object-has-own.js +148 -0
  320. package/lib/rules/prefer-object-spread.js +319 -0
  321. package/lib/rules/prefer-promise-reject-errors.js +154 -0
  322. package/lib/rules/prefer-reflect.js +150 -0
  323. package/lib/rules/prefer-regex-literals.js +605 -0
  324. package/lib/rules/prefer-rest-params.js +117 -0
  325. package/lib/rules/prefer-spread.js +91 -0
  326. package/lib/rules/prefer-template.js +347 -0
  327. package/lib/rules/preserve-caught-error.js +535 -0
  328. package/lib/rules/quote-props.js +394 -0
  329. package/lib/rules/quotes.js +416 -0
  330. package/lib/rules/radix.js +193 -0
  331. package/lib/rules/require-atomic-updates.js +365 -0
  332. package/lib/rules/require-await.js +184 -0
  333. package/lib/rules/require-unicode-regexp.js +317 -0
  334. package/lib/rules/require-yield.js +86 -0
  335. package/lib/rules/rest-spread-spacing.js +150 -0
  336. package/lib/rules/semi-spacing.js +297 -0
  337. package/lib/rules/semi-style.js +218 -0
  338. package/lib/rules/semi.js +476 -0
  339. package/lib/rules/sort-imports.js +319 -0
  340. package/lib/rules/sort-keys.js +268 -0
  341. package/lib/rules/sort-vars.js +140 -0
  342. package/lib/rules/space-before-blocks.js +232 -0
  343. package/lib/rules/space-before-function-paren.js +202 -0
  344. package/lib/rules/space-in-parens.js +374 -0
  345. package/lib/rules/space-infix-ops.js +249 -0
  346. package/lib/rules/space-unary-ops.js +400 -0
  347. package/lib/rules/spaced-comment.js +447 -0
  348. package/lib/rules/strict.js +314 -0
  349. package/lib/rules/switch-colon-spacing.js +158 -0
  350. package/lib/rules/symbol-description.js +70 -0
  351. package/lib/rules/template-curly-spacing.js +168 -0
  352. package/lib/rules/template-tag-spacing.js +121 -0
  353. package/lib/rules/unicode-bom.js +73 -0
  354. package/lib/rules/use-isnan.js +268 -0
  355. package/lib/rules/utils/ast-utils.js +2828 -0
  356. package/lib/rules/utils/char-source.js +247 -0
  357. package/lib/rules/utils/fix-tracker.js +125 -0
  358. package/lib/rules/utils/keywords.js +67 -0
  359. package/lib/rules/utils/lazy-loading-rule-map.js +118 -0
  360. package/lib/rules/utils/regular-expressions.js +58 -0
  361. package/lib/rules/utils/unicode/index.js +16 -0
  362. package/lib/rules/utils/unicode/is-combining-character.js +13 -0
  363. package/lib/rules/utils/unicode/is-emoji-modifier.js +13 -0
  364. package/lib/rules/utils/unicode/is-regional-indicator-symbol.js +13 -0
  365. package/lib/rules/utils/unicode/is-surrogate-pair.js +14 -0
  366. package/lib/rules/valid-typeof.js +171 -0
  367. package/lib/rules/vars-on-top.js +165 -0
  368. package/lib/rules/wrap-iife.js +238 -0
  369. package/lib/rules/wrap-regex.js +91 -0
  370. package/lib/rules/yield-star-spacing.js +158 -0
  371. package/lib/rules/yoda.js +362 -0
  372. package/lib/services/parser-service.js +64 -0
  373. package/lib/services/processor-service.js +100 -0
  374. package/lib/services/suppressions-service.js +302 -0
  375. package/lib/services/warning-service.js +87 -0
  376. package/lib/shared/ajv.js +34 -0
  377. package/lib/shared/assert.js +21 -0
  378. package/lib/shared/ast-utils.js +30 -0
  379. package/lib/shared/deep-merge-arrays.js +62 -0
  380. package/lib/shared/directives.js +16 -0
  381. package/lib/shared/flags.js +89 -0
  382. package/lib/shared/logging.js +38 -0
  383. package/lib/shared/naming.js +109 -0
  384. package/lib/shared/option-utils.js +63 -0
  385. package/lib/shared/relative-module-resolver.js +28 -0
  386. package/lib/shared/runtime-info.js +177 -0
  387. package/lib/shared/serialization.js +78 -0
  388. package/lib/shared/severity.js +49 -0
  389. package/lib/shared/stats.js +30 -0
  390. package/lib/shared/string-utils.js +58 -0
  391. package/lib/shared/text-table.js +68 -0
  392. package/lib/shared/translate-cli-options.js +223 -0
  393. package/lib/shared/traverser.js +202 -0
  394. package/lib/types/config-api.d.ts +12 -0
  395. package/lib/types/index.d.ts +1482 -0
  396. package/lib/types/rules.d.ts +5603 -0
  397. package/lib/types/universal.d.ts +6 -0
  398. package/lib/types/use-at-your-own-risk.d.ts +34 -0
  399. package/lib/universal.js +10 -0
  400. package/lib/unsupported-api.js +26 -0
  401. package/messages/all-files-ignored.js +16 -0
  402. package/messages/all-matched-files-ignored.js +21 -0
  403. package/messages/config-file-missing.js +16 -0
  404. package/messages/config-plugin-missing.js +14 -0
  405. package/messages/config-serialize-function.js +30 -0
  406. package/messages/eslintrc-incompat.js +117 -0
  407. package/messages/eslintrc-plugins.js +27 -0
  408. package/messages/extend-config-missing.js +13 -0
  409. package/messages/failed-to-read-json.js +11 -0
  410. package/messages/file-not-found.js +10 -0
  411. package/messages/invalid-rule-options.js +17 -0
  412. package/messages/invalid-rule-severity.js +13 -0
  413. package/messages/no-config-found.js +15 -0
  414. package/messages/plugin-conflict.js +22 -0
  415. package/messages/plugin-invalid.js +16 -0
  416. package/messages/plugin-missing.js +19 -0
  417. package/messages/print-config-with-directory-path.js +8 -0
  418. package/messages/shared.js +23 -0
  419. package/messages/whitespace-found.js +11 -0
  420. package/package.json +220 -0
package/lib/options.js ADDED
@@ -0,0 +1,416 @@
1
+ /**
2
+ * @fileoverview Options configuration for optionator.
3
+ * @author George Zahariev
4
+ */
5
+
6
+ "use strict";
7
+
8
+ //------------------------------------------------------------------------------
9
+ // Requirements
10
+ //------------------------------------------------------------------------------
11
+
12
+ const optionator = require("optionator");
13
+
14
+ //------------------------------------------------------------------------------
15
+ // Typedefs
16
+ //------------------------------------------------------------------------------
17
+
18
+ /**
19
+ * The options object parsed by Optionator.
20
+ * @typedef {Object} ParsedCLIOptions
21
+ * @property {boolean} cache Only check changed files
22
+ * @property {string} cacheFile Path to the cache file. Deprecated: use --cache-location
23
+ * @property {string} [cacheLocation] Path to the cache file or directory
24
+ * @property {"metadata" | "content"} cacheStrategy Strategy to use for detecting changed files in the cache
25
+ * @property {boolean} [color] Force enabling/disabling of color
26
+ * @property {number | "auto" | "off"} [concurrency] Number of linting threads, "auto" to choose automatically, "off" for no multithreading
27
+ * @property {string} [config] Use this configuration, overriding eslint.config.* config options if present
28
+ * @property {boolean} debug Output debugging information
29
+ * @property {boolean} envInfo Output execution environment information
30
+ * @property {boolean} errorOnUnmatchedPattern Prevent errors when pattern is unmatched
31
+ * @property {string[]} [ext] Specify JavaScript file extensions
32
+ * @property {string[]} [flag] Feature flags
33
+ * @property {boolean} fix Automatically fix problems
34
+ * @property {boolean} fixDryRun Automatically fix problems without saving the changes to the file system
35
+ * @property {("directive" | "problem" | "suggestion" | "layout")[]} [fixType] Specify the types of fixes to apply (directive, problem, suggestion, layout)
36
+ * @property {string} format Use a specific output format
37
+ * @property {string[]} [global] Define global variables
38
+ * @property {boolean} [help] Show help
39
+ * @property {boolean} ignore Disable use of ignore files and patterns
40
+ * @property {string[]} [ignorePattern] Patterns of files to ignore
41
+ * @property {boolean} init Run config initialization wizard
42
+ * @property {boolean} inlineConfig Prevent comments from changing config or rules
43
+ * @property {number} maxWarnings Number of warnings to trigger nonzero exit code
44
+ * @property {string} [outputFile] Specify file to write report to
45
+ * @property {string} [parser] Specify the parser to be used
46
+ * @property {Object} [parserOptions] Specify parser options
47
+ * @property {boolean} [passOnNoPatterns=false] When set to true, missing patterns cause
48
+ * the linting operation to short circuit and not report any failures.
49
+ * @property {boolean} [passOnUnprunedSuppressions] Ignore unused suppressions
50
+ * @property {string[]} [plugin] Specify plugins
51
+ * @property {string} [printConfig] Print the configuration for the given file
52
+ * @property {boolean} [pruneSuppressions] Prune unused suppressions
53
+ * @property {boolean} quiet Report errors only
54
+ * @property {boolean | undefined} reportUnusedDisableDirectives Adds reported errors for unused eslint-disable and eslint-enable directives
55
+ * @property {string | undefined} reportUnusedDisableDirectivesSeverity A severity string indicating if and how unused disable and enable directives should be tracked and reported.
56
+ * @property {Object} [rule] Specify rules
57
+ * @property {boolean} [stats] Report additional statistics
58
+ * @property {boolean} stdin Lint code provided on <STDIN>
59
+ * @property {string} [stdinFilename] Specify filename to process STDIN as
60
+ * @property {boolean} [suppressAll] Suppress all error violations
61
+ * @property {string} [suppressionsLocation] Path to the suppressions file or directory
62
+ * @property {string[]} [suppressRule] Suppress specific rules
63
+ * @property {boolean} [version] Output the version number
64
+ * @property {boolean} warnIgnored Show warnings when the file list includes ignored files
65
+ * @property {string[]} _ Positional filenames or patterns
66
+ */
67
+
68
+ //------------------------------------------------------------------------------
69
+ // Initialization and Public Interface
70
+ //------------------------------------------------------------------------------
71
+
72
+ // exports "parse(args)", "generateHelp()", and "generateHelpForOption(optionName)"
73
+
74
+ /**
75
+ * Creates the CLI options for ESLint.
76
+ * @returns {Object} The optionator instance.
77
+ */
78
+ module.exports = function () {
79
+ return optionator({
80
+ prepend: "eslint [options] file.js [file.js] [dir]",
81
+ defaults: {
82
+ concatRepeatedArrays: true,
83
+ mergeRepeatedObjects: true,
84
+ },
85
+ options: [
86
+ {
87
+ heading: "Basic configuration",
88
+ },
89
+ {
90
+ option: "config-lookup",
91
+ type: "Boolean",
92
+ default: "true",
93
+ description: "Disable look up for eslint.config.js",
94
+ },
95
+ {
96
+ option: "config",
97
+ alias: "c",
98
+ type: "path::String",
99
+ description:
100
+ "Use this configuration instead of eslint.config.js, eslint.config.mjs, or eslint.config.cjs",
101
+ },
102
+ {
103
+ option: "inspect-config",
104
+ type: "Boolean",
105
+ description:
106
+ "Open the config inspector with the current configuration",
107
+ },
108
+ {
109
+ option: "ext",
110
+ type: "[String]",
111
+ description: "Specify additional file extensions to lint",
112
+ },
113
+ {
114
+ option: "global",
115
+ type: "[String]",
116
+ description: "Define global variables",
117
+ },
118
+ {
119
+ option: "parser",
120
+ type: "String",
121
+ description: "Specify the parser to be used",
122
+ },
123
+ {
124
+ option: "parser-options",
125
+ type: "Object",
126
+ description: "Specify parser options",
127
+ },
128
+ {
129
+ heading: "Specify Rules and Plugins",
130
+ },
131
+ {
132
+ option: "plugin",
133
+ type: "[String]",
134
+ description: "Specify plugins",
135
+ },
136
+ {
137
+ option: "rule",
138
+ type: "Object",
139
+ description: "Specify rules",
140
+ },
141
+ {
142
+ heading: "Fix Problems",
143
+ },
144
+ {
145
+ option: "fix",
146
+ type: "Boolean",
147
+ default: false,
148
+ description: "Automatically fix problems",
149
+ },
150
+ {
151
+ option: "fix-dry-run",
152
+ type: "Boolean",
153
+ default: false,
154
+ description:
155
+ "Automatically fix problems without saving the changes to the file system",
156
+ },
157
+ {
158
+ option: "fix-type",
159
+ type: "Array",
160
+ description:
161
+ "Specify the types of fixes to apply (directive, problem, suggestion, layout)",
162
+ },
163
+ {
164
+ heading: "Ignore Files",
165
+ },
166
+ {
167
+ option: "ignore",
168
+ type: "Boolean",
169
+ default: "true",
170
+ description: "Disable use of ignore files and patterns",
171
+ },
172
+ {
173
+ option: "ignore-pattern",
174
+ type: "[String]",
175
+ description: "Patterns of files to ignore",
176
+ concatRepeatedArrays: [
177
+ true,
178
+ {
179
+ oneValuePerFlag: true,
180
+ },
181
+ ],
182
+ },
183
+ {
184
+ heading: "Use stdin",
185
+ },
186
+ {
187
+ option: "stdin",
188
+ type: "Boolean",
189
+ default: "false",
190
+ description: "Lint code provided on <STDIN>",
191
+ },
192
+ {
193
+ option: "stdin-filename",
194
+ type: "String",
195
+ description: "Specify filename to process STDIN as",
196
+ },
197
+ {
198
+ heading: "Handle Warnings",
199
+ },
200
+ {
201
+ option: "quiet",
202
+ type: "Boolean",
203
+ default: "false",
204
+ description: "Report errors only",
205
+ },
206
+ {
207
+ option: "max-warnings",
208
+ type: "Int",
209
+ default: "-1",
210
+ description: "Number of warnings to trigger nonzero exit code",
211
+ },
212
+ {
213
+ heading: "Output",
214
+ },
215
+ {
216
+ option: "output-file",
217
+ alias: "o",
218
+ type: "path::String",
219
+ description: "Specify file to write report to",
220
+ },
221
+ {
222
+ option: "format",
223
+ alias: "f",
224
+ type: "String",
225
+ default: "gasoline",
226
+ description: "Use a specific output format",
227
+ },
228
+ {
229
+ option: "color",
230
+ type: "Boolean",
231
+ alias: "no-color",
232
+ description: "Force enabling/disabling of color",
233
+ },
234
+ {
235
+ heading: "Inline configuration comments",
236
+ },
237
+ {
238
+ option: "inline-config",
239
+ type: "Boolean",
240
+ default: "true",
241
+ description: "Prevent comments from changing config or rules",
242
+ },
243
+ {
244
+ option: "report-unused-disable-directives",
245
+ type: "Boolean",
246
+ default: void 0,
247
+ description:
248
+ "Adds reported errors for unused eslint-disable and eslint-enable directives",
249
+ },
250
+ {
251
+ option: "report-unused-disable-directives-severity",
252
+ type: "String",
253
+ default: void 0,
254
+ description:
255
+ "Chooses severity level for reporting unused eslint-disable and eslint-enable directives",
256
+ enum: ["off", "warn", "error", "0", "1", "2"],
257
+ },
258
+ {
259
+ option: "report-unused-inline-configs",
260
+ type: "String",
261
+ default: void 0,
262
+ description:
263
+ "Adds reported errors for unused eslint inline config comments",
264
+ enum: ["off", "warn", "error", "0", "1", "2"],
265
+ },
266
+ {
267
+ heading: "Caching",
268
+ },
269
+ {
270
+ option: "cache",
271
+ type: "Boolean",
272
+ default: "false",
273
+ description: "Only check changed files",
274
+ },
275
+ {
276
+ option: "cache-file",
277
+ type: "path::String",
278
+ default: ".eslintcache",
279
+ description:
280
+ "Path to the cache file. Deprecated: use --cache-location",
281
+ },
282
+ {
283
+ option: "cache-location",
284
+ type: "path::String",
285
+ description: "Path to the cache file or directory",
286
+ },
287
+ {
288
+ option: "cache-strategy",
289
+ dependsOn: ["cache"],
290
+ type: "String",
291
+ default: "metadata",
292
+ enum: ["metadata", "content"],
293
+ description:
294
+ "Strategy to use for detecting changed files in the cache",
295
+ },
296
+ {
297
+ heading: "Suppressing Violations",
298
+ },
299
+ {
300
+ option: "suppress-all",
301
+ type: "Boolean",
302
+ default: "false",
303
+ description: "Suppress all violations",
304
+ },
305
+ {
306
+ option: "suppress-rule",
307
+ type: "[String]",
308
+ description: "Suppress specific rules",
309
+ },
310
+ {
311
+ option: "suppressions-location",
312
+ type: "path::String",
313
+ description: "Specify the location of the suppressions file",
314
+ },
315
+ {
316
+ option: "prune-suppressions",
317
+ type: "Boolean",
318
+ default: "false",
319
+ description: "Prune unused suppressions",
320
+ },
321
+ {
322
+ option: "pass-on-unpruned-suppressions",
323
+ type: "Boolean",
324
+ default: "false",
325
+ description: "Ignore unused suppressions",
326
+ },
327
+ {
328
+ heading: "Miscellaneous",
329
+ },
330
+ {
331
+ option: "init",
332
+ type: "Boolean",
333
+ default: "false",
334
+ description: "Run config initialization wizard",
335
+ },
336
+ {
337
+ option: "env-info",
338
+ type: "Boolean",
339
+ default: "false",
340
+ description: "Output execution environment information",
341
+ },
342
+ {
343
+ option: "error-on-unmatched-pattern",
344
+ type: "Boolean",
345
+ default: "true",
346
+ description: "Prevent errors when pattern is unmatched",
347
+ },
348
+ {
349
+ option: "exit-on-fatal-error",
350
+ type: "Boolean",
351
+ default: "false",
352
+ description: "Exit with exit code 2 in case of fatal error",
353
+ },
354
+ {
355
+ option: "warn-ignored",
356
+ type: "Boolean",
357
+ default: "true",
358
+ description:
359
+ "Suppress warnings when the file list includes ignored files",
360
+ },
361
+ {
362
+ option: "pass-on-no-patterns",
363
+ type: "Boolean",
364
+ default: false,
365
+ description:
366
+ "Exit with exit code 0 in case no file patterns are passed",
367
+ },
368
+ {
369
+ option: "debug",
370
+ type: "Boolean",
371
+ default: false,
372
+ description: "Output debugging information",
373
+ },
374
+ {
375
+ option: "help",
376
+ alias: "h",
377
+ type: "Boolean",
378
+ description: "Show help",
379
+ },
380
+ {
381
+ option: "version",
382
+ alias: "v",
383
+ type: "Boolean",
384
+ description: "Output the version number",
385
+ },
386
+ {
387
+ option: "print-config",
388
+ type: "path::String",
389
+ description: "Print the configuration for the given file",
390
+ },
391
+ {
392
+ option: "stats",
393
+ type: "Boolean",
394
+ default: "false",
395
+ description: "Add statistics to the lint report",
396
+ },
397
+ {
398
+ option: "flag",
399
+ type: "[String]",
400
+ description: "Enable a feature flag",
401
+ },
402
+ {
403
+ option: "mcp",
404
+ type: "Boolean",
405
+ description: "Start the ESLint MCP server",
406
+ },
407
+ {
408
+ option: "concurrency",
409
+ type: "Int|String",
410
+ default: "off",
411
+ description:
412
+ "Number of linting threads, auto to choose automatically, off for no multithreading",
413
+ },
414
+ ],
415
+ });
416
+ };
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+
3
+ const RuleTester = require("./rule-tester");
4
+
5
+ module.exports = {
6
+ RuleTester,
7
+ };