@alexlit/lint-kit 166.1.0 → 167.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 (602) hide show
  1. package/package.json +1 -1
  2. package/packages/config-commitlint/package.json +3 -3
  3. package/packages/config-eslint/package.json +2 -2
  4. package/packages/config-eslint/node_modules/@eslint/js/LICENSE +0 -19
  5. package/packages/config-eslint/node_modules/@eslint/js/README.md +0 -103
  6. package/packages/config-eslint/node_modules/@eslint/js/package.json +0 -36
  7. package/packages/config-eslint/node_modules/@eslint/js/src/configs/eslint-all.js +0 -217
  8. package/packages/config-eslint/node_modules/@eslint/js/src/configs/eslint-recommended.js +0 -79
  9. package/packages/config-eslint/node_modules/@eslint/js/src/index.js +0 -23
  10. package/packages/config-eslint/node_modules/@eslint/js/types/index.d.ts +0 -14
  11. package/packages/config-eslint/node_modules/ajv/.tonic_example.js +0 -20
  12. package/packages/config-eslint/node_modules/ajv/LICENSE +0 -22
  13. package/packages/config-eslint/node_modules/ajv/README.md +0 -1497
  14. package/packages/config-eslint/node_modules/ajv/dist/ajv.bundle.js +0 -7189
  15. package/packages/config-eslint/node_modules/ajv/dist/ajv.min.js +0 -3
  16. package/packages/config-eslint/node_modules/ajv/dist/ajv.min.js.map +0 -1
  17. package/packages/config-eslint/node_modules/ajv/lib/ajv.d.ts +0 -397
  18. package/packages/config-eslint/node_modules/ajv/lib/ajv.js +0 -506
  19. package/packages/config-eslint/node_modules/ajv/lib/cache.js +0 -26
  20. package/packages/config-eslint/node_modules/ajv/lib/compile/async.js +0 -90
  21. package/packages/config-eslint/node_modules/ajv/lib/compile/equal.js +0 -5
  22. package/packages/config-eslint/node_modules/ajv/lib/compile/error_classes.js +0 -34
  23. package/packages/config-eslint/node_modules/ajv/lib/compile/formats.js +0 -142
  24. package/packages/config-eslint/node_modules/ajv/lib/compile/index.js +0 -387
  25. package/packages/config-eslint/node_modules/ajv/lib/compile/resolve.js +0 -270
  26. package/packages/config-eslint/node_modules/ajv/lib/compile/rules.js +0 -66
  27. package/packages/config-eslint/node_modules/ajv/lib/compile/schema_obj.js +0 -9
  28. package/packages/config-eslint/node_modules/ajv/lib/compile/ucs2length.js +0 -20
  29. package/packages/config-eslint/node_modules/ajv/lib/compile/util.js +0 -239
  30. package/packages/config-eslint/node_modules/ajv/lib/data.js +0 -49
  31. package/packages/config-eslint/node_modules/ajv/lib/definition_schema.js +0 -37
  32. package/packages/config-eslint/node_modules/ajv/lib/dot/_limit.jst +0 -113
  33. package/packages/config-eslint/node_modules/ajv/lib/dot/_limitItems.jst +0 -12
  34. package/packages/config-eslint/node_modules/ajv/lib/dot/_limitLength.jst +0 -12
  35. package/packages/config-eslint/node_modules/ajv/lib/dot/_limitProperties.jst +0 -12
  36. package/packages/config-eslint/node_modules/ajv/lib/dot/allOf.jst +0 -32
  37. package/packages/config-eslint/node_modules/ajv/lib/dot/anyOf.jst +0 -46
  38. package/packages/config-eslint/node_modules/ajv/lib/dot/coerce.def +0 -51
  39. package/packages/config-eslint/node_modules/ajv/lib/dot/comment.jst +0 -9
  40. package/packages/config-eslint/node_modules/ajv/lib/dot/const.jst +0 -11
  41. package/packages/config-eslint/node_modules/ajv/lib/dot/contains.jst +0 -55
  42. package/packages/config-eslint/node_modules/ajv/lib/dot/custom.jst +0 -191
  43. package/packages/config-eslint/node_modules/ajv/lib/dot/defaults.def +0 -47
  44. package/packages/config-eslint/node_modules/ajv/lib/dot/definitions.def +0 -203
  45. package/packages/config-eslint/node_modules/ajv/lib/dot/dependencies.jst +0 -79
  46. package/packages/config-eslint/node_modules/ajv/lib/dot/enum.jst +0 -30
  47. package/packages/config-eslint/node_modules/ajv/lib/dot/errors.def +0 -194
  48. package/packages/config-eslint/node_modules/ajv/lib/dot/format.jst +0 -106
  49. package/packages/config-eslint/node_modules/ajv/lib/dot/if.jst +0 -73
  50. package/packages/config-eslint/node_modules/ajv/lib/dot/items.jst +0 -98
  51. package/packages/config-eslint/node_modules/ajv/lib/dot/missing.def +0 -39
  52. package/packages/config-eslint/node_modules/ajv/lib/dot/multipleOf.jst +0 -22
  53. package/packages/config-eslint/node_modules/ajv/lib/dot/not.jst +0 -43
  54. package/packages/config-eslint/node_modules/ajv/lib/dot/oneOf.jst +0 -54
  55. package/packages/config-eslint/node_modules/ajv/lib/dot/pattern.jst +0 -14
  56. package/packages/config-eslint/node_modules/ajv/lib/dot/properties.jst +0 -245
  57. package/packages/config-eslint/node_modules/ajv/lib/dot/propertyNames.jst +0 -52
  58. package/packages/config-eslint/node_modules/ajv/lib/dot/ref.jst +0 -85
  59. package/packages/config-eslint/node_modules/ajv/lib/dot/required.jst +0 -108
  60. package/packages/config-eslint/node_modules/ajv/lib/dot/uniqueItems.jst +0 -62
  61. package/packages/config-eslint/node_modules/ajv/lib/dot/validate.jst +0 -276
  62. package/packages/config-eslint/node_modules/ajv/lib/dotjs/README.md +0 -3
  63. package/packages/config-eslint/node_modules/ajv/lib/dotjs/_limit.js +0 -163
  64. package/packages/config-eslint/node_modules/ajv/lib/dotjs/_limitItems.js +0 -80
  65. package/packages/config-eslint/node_modules/ajv/lib/dotjs/_limitLength.js +0 -85
  66. package/packages/config-eslint/node_modules/ajv/lib/dotjs/_limitProperties.js +0 -80
  67. package/packages/config-eslint/node_modules/ajv/lib/dotjs/allOf.js +0 -42
  68. package/packages/config-eslint/node_modules/ajv/lib/dotjs/anyOf.js +0 -73
  69. package/packages/config-eslint/node_modules/ajv/lib/dotjs/comment.js +0 -14
  70. package/packages/config-eslint/node_modules/ajv/lib/dotjs/const.js +0 -56
  71. package/packages/config-eslint/node_modules/ajv/lib/dotjs/contains.js +0 -81
  72. package/packages/config-eslint/node_modules/ajv/lib/dotjs/custom.js +0 -228
  73. package/packages/config-eslint/node_modules/ajv/lib/dotjs/dependencies.js +0 -168
  74. package/packages/config-eslint/node_modules/ajv/lib/dotjs/enum.js +0 -66
  75. package/packages/config-eslint/node_modules/ajv/lib/dotjs/format.js +0 -150
  76. package/packages/config-eslint/node_modules/ajv/lib/dotjs/if.js +0 -103
  77. package/packages/config-eslint/node_modules/ajv/lib/dotjs/index.js +0 -33
  78. package/packages/config-eslint/node_modules/ajv/lib/dotjs/items.js +0 -140
  79. package/packages/config-eslint/node_modules/ajv/lib/dotjs/multipleOf.js +0 -80
  80. package/packages/config-eslint/node_modules/ajv/lib/dotjs/not.js +0 -84
  81. package/packages/config-eslint/node_modules/ajv/lib/dotjs/oneOf.js +0 -73
  82. package/packages/config-eslint/node_modules/ajv/lib/dotjs/pattern.js +0 -75
  83. package/packages/config-eslint/node_modules/ajv/lib/dotjs/properties.js +0 -335
  84. package/packages/config-eslint/node_modules/ajv/lib/dotjs/propertyNames.js +0 -81
  85. package/packages/config-eslint/node_modules/ajv/lib/dotjs/ref.js +0 -124
  86. package/packages/config-eslint/node_modules/ajv/lib/dotjs/required.js +0 -270
  87. package/packages/config-eslint/node_modules/ajv/lib/dotjs/uniqueItems.js +0 -86
  88. package/packages/config-eslint/node_modules/ajv/lib/dotjs/validate.js +0 -482
  89. package/packages/config-eslint/node_modules/ajv/lib/keyword.js +0 -146
  90. package/packages/config-eslint/node_modules/ajv/lib/refs/data.json +0 -17
  91. package/packages/config-eslint/node_modules/ajv/lib/refs/json-schema-draft-04.json +0 -149
  92. package/packages/config-eslint/node_modules/ajv/lib/refs/json-schema-draft-06.json +0 -154
  93. package/packages/config-eslint/node_modules/ajv/lib/refs/json-schema-draft-07.json +0 -168
  94. package/packages/config-eslint/node_modules/ajv/lib/refs/json-schema-secure.json +0 -94
  95. package/packages/config-eslint/node_modules/ajv/package.json +0 -106
  96. package/packages/config-eslint/node_modules/ajv/scripts/.eslintrc.yml +0 -3
  97. package/packages/config-eslint/node_modules/ajv/scripts/bundle.js +0 -61
  98. package/packages/config-eslint/node_modules/ajv/scripts/compile-dots.js +0 -73
  99. package/packages/config-eslint/node_modules/ajv/scripts/info +0 -10
  100. package/packages/config-eslint/node_modules/ajv/scripts/prepare-tests +0 -12
  101. package/packages/config-eslint/node_modules/ajv/scripts/publish-built-version +0 -32
  102. package/packages/config-eslint/node_modules/ajv/scripts/travis-gh-pages +0 -23
  103. package/packages/config-eslint/node_modules/ansi-styles/index.d.ts +0 -345
  104. package/packages/config-eslint/node_modules/ansi-styles/index.js +0 -163
  105. package/packages/config-eslint/node_modules/ansi-styles/license +0 -9
  106. package/packages/config-eslint/node_modules/ansi-styles/package.json +0 -56
  107. package/packages/config-eslint/node_modules/ansi-styles/readme.md +0 -152
  108. package/packages/config-eslint/node_modules/chalk/index.d.ts +0 -415
  109. package/packages/config-eslint/node_modules/chalk/license +0 -9
  110. package/packages/config-eslint/node_modules/chalk/package.json +0 -68
  111. package/packages/config-eslint/node_modules/chalk/readme.md +0 -341
  112. package/packages/config-eslint/node_modules/chalk/source/index.js +0 -229
  113. package/packages/config-eslint/node_modules/chalk/source/templates.js +0 -134
  114. package/packages/config-eslint/node_modules/chalk/source/util.js +0 -39
  115. package/packages/config-eslint/node_modules/color-convert/CHANGELOG.md +0 -54
  116. package/packages/config-eslint/node_modules/color-convert/LICENSE +0 -21
  117. package/packages/config-eslint/node_modules/color-convert/README.md +0 -68
  118. package/packages/config-eslint/node_modules/color-convert/conversions.js +0 -839
  119. package/packages/config-eslint/node_modules/color-convert/index.js +0 -81
  120. package/packages/config-eslint/node_modules/color-convert/package.json +0 -48
  121. package/packages/config-eslint/node_modules/color-convert/route.js +0 -97
  122. package/packages/config-eslint/node_modules/color-name/LICENSE +0 -8
  123. package/packages/config-eslint/node_modules/color-name/README.md +0 -11
  124. package/packages/config-eslint/node_modules/color-name/index.js +0 -152
  125. package/packages/config-eslint/node_modules/color-name/package.json +0 -28
  126. package/packages/config-eslint/node_modules/eslint/LICENSE +0 -19
  127. package/packages/config-eslint/node_modules/eslint/README.md +0 -354
  128. package/packages/config-eslint/node_modules/eslint/bin/eslint.js +0 -196
  129. package/packages/config-eslint/node_modules/eslint/conf/default-cli-options.js +0 -32
  130. package/packages/config-eslint/node_modules/eslint/conf/ecma-version.js +0 -16
  131. package/packages/config-eslint/node_modules/eslint/conf/globals.js +0 -169
  132. package/packages/config-eslint/node_modules/eslint/conf/replacements.json +0 -26
  133. package/packages/config-eslint/node_modules/eslint/conf/rule-type-list.json +0 -91
  134. package/packages/config-eslint/node_modules/eslint/lib/api.js +0 -50
  135. package/packages/config-eslint/node_modules/eslint/lib/cli-engine/cli-engine.js +0 -1109
  136. package/packages/config-eslint/node_modules/eslint/lib/cli-engine/file-enumerator.js +0 -541
  137. package/packages/config-eslint/node_modules/eslint/lib/cli-engine/formatters/formatters-meta.json +0 -18
  138. package/packages/config-eslint/node_modules/eslint/lib/cli-engine/formatters/html.js +0 -359
  139. package/packages/config-eslint/node_modules/eslint/lib/cli-engine/formatters/json-with-metadata.js +0 -16
  140. package/packages/config-eslint/node_modules/eslint/lib/cli-engine/formatters/json.js +0 -13
  141. package/packages/config-eslint/node_modules/eslint/lib/cli-engine/formatters/stylish.js +0 -122
  142. package/packages/config-eslint/node_modules/eslint/lib/cli-engine/hash.js +0 -35
  143. package/packages/config-eslint/node_modules/eslint/lib/cli-engine/index.js +0 -7
  144. package/packages/config-eslint/node_modules/eslint/lib/cli-engine/lint-result-cache.js +0 -220
  145. package/packages/config-eslint/node_modules/eslint/lib/cli-engine/load-rules.js +0 -46
  146. package/packages/config-eslint/node_modules/eslint/lib/cli.js +0 -553
  147. package/packages/config-eslint/node_modules/eslint/lib/config/config-loader.js +0 -816
  148. package/packages/config-eslint/node_modules/eslint/lib/config/config.js +0 -674
  149. package/packages/config-eslint/node_modules/eslint/lib/config/default-config.js +0 -78
  150. package/packages/config-eslint/node_modules/eslint/lib/config/flat-config-array.js +0 -217
  151. package/packages/config-eslint/node_modules/eslint/lib/config/flat-config-schema.js +0 -598
  152. package/packages/config-eslint/node_modules/eslint/lib/config-api.js +0 -12
  153. package/packages/config-eslint/node_modules/eslint/lib/eslint/eslint-helpers.js +0 -1465
  154. package/packages/config-eslint/node_modules/eslint/lib/eslint/eslint.js +0 -1362
  155. package/packages/config-eslint/node_modules/eslint/lib/eslint/index.js +0 -9
  156. package/packages/config-eslint/node_modules/eslint/lib/eslint/legacy-eslint.js +0 -786
  157. package/packages/config-eslint/node_modules/eslint/lib/eslint/worker.js +0 -173
  158. package/packages/config-eslint/node_modules/eslint/lib/languages/js/index.js +0 -336
  159. package/packages/config-eslint/node_modules/eslint/lib/languages/js/source-code/index.js +0 -7
  160. package/packages/config-eslint/node_modules/eslint/lib/languages/js/source-code/source-code.js +0 -1364
  161. package/packages/config-eslint/node_modules/eslint/lib/languages/js/source-code/token-store/backward-token-comment-cursor.js +0 -61
  162. package/packages/config-eslint/node_modules/eslint/lib/languages/js/source-code/token-store/backward-token-cursor.js +0 -57
  163. package/packages/config-eslint/node_modules/eslint/lib/languages/js/source-code/token-store/cursor.js +0 -76
  164. package/packages/config-eslint/node_modules/eslint/lib/languages/js/source-code/token-store/cursors.js +0 -120
  165. package/packages/config-eslint/node_modules/eslint/lib/languages/js/source-code/token-store/decorative-cursor.js +0 -38
  166. package/packages/config-eslint/node_modules/eslint/lib/languages/js/source-code/token-store/filter-cursor.js +0 -42
  167. package/packages/config-eslint/node_modules/eslint/lib/languages/js/source-code/token-store/forward-token-comment-cursor.js +0 -65
  168. package/packages/config-eslint/node_modules/eslint/lib/languages/js/source-code/token-store/forward-token-cursor.js +0 -62
  169. package/packages/config-eslint/node_modules/eslint/lib/languages/js/source-code/token-store/index.js +0 -721
  170. package/packages/config-eslint/node_modules/eslint/lib/languages/js/source-code/token-store/limit-cursor.js +0 -39
  171. package/packages/config-eslint/node_modules/eslint/lib/languages/js/source-code/token-store/padded-token-cursor.js +0 -45
  172. package/packages/config-eslint/node_modules/eslint/lib/languages/js/source-code/token-store/skip-cursor.js +0 -41
  173. package/packages/config-eslint/node_modules/eslint/lib/languages/js/source-code/token-store/utils.js +0 -110
  174. package/packages/config-eslint/node_modules/eslint/lib/languages/js/validate-language-options.js +0 -196
  175. package/packages/config-eslint/node_modules/eslint/lib/linter/apply-disable-directives.js +0 -584
  176. package/packages/config-eslint/node_modules/eslint/lib/linter/code-path-analysis/code-path-analyzer.js +0 -828
  177. package/packages/config-eslint/node_modules/eslint/lib/linter/code-path-analysis/code-path-segment.js +0 -262
  178. package/packages/config-eslint/node_modules/eslint/lib/linter/code-path-analysis/code-path-state.js +0 -2370
  179. package/packages/config-eslint/node_modules/eslint/lib/linter/code-path-analysis/code-path.js +0 -332
  180. package/packages/config-eslint/node_modules/eslint/lib/linter/code-path-analysis/debug-helpers.js +0 -223
  181. package/packages/config-eslint/node_modules/eslint/lib/linter/code-path-analysis/fork-context.js +0 -374
  182. package/packages/config-eslint/node_modules/eslint/lib/linter/code-path-analysis/id-generator.js +0 -44
  183. package/packages/config-eslint/node_modules/eslint/lib/linter/esquery.js +0 -332
  184. package/packages/config-eslint/node_modules/eslint/lib/linter/file-context.js +0 -144
  185. package/packages/config-eslint/node_modules/eslint/lib/linter/file-report.js +0 -608
  186. package/packages/config-eslint/node_modules/eslint/lib/linter/index.js +0 -11
  187. package/packages/config-eslint/node_modules/eslint/lib/linter/interpolate.js +0 -50
  188. package/packages/config-eslint/node_modules/eslint/lib/linter/linter.js +0 -2676
  189. package/packages/config-eslint/node_modules/eslint/lib/linter/rule-fixer.js +0 -169
  190. package/packages/config-eslint/node_modules/eslint/lib/linter/rules.js +0 -71
  191. package/packages/config-eslint/node_modules/eslint/lib/linter/source-code-fixer.js +0 -154
  192. package/packages/config-eslint/node_modules/eslint/lib/linter/source-code-traverser.js +0 -333
  193. package/packages/config-eslint/node_modules/eslint/lib/linter/source-code-visitor.js +0 -81
  194. package/packages/config-eslint/node_modules/eslint/lib/linter/timing.js +0 -209
  195. package/packages/config-eslint/node_modules/eslint/lib/linter/vfile.js +0 -115
  196. package/packages/config-eslint/node_modules/eslint/lib/options.js +0 -536
  197. package/packages/config-eslint/node_modules/eslint/lib/rule-tester/index.js +0 -7
  198. package/packages/config-eslint/node_modules/eslint/lib/rule-tester/rule-tester.js +0 -1579
  199. package/packages/config-eslint/node_modules/eslint/lib/rules/accessor-pairs.js +0 -420
  200. package/packages/config-eslint/node_modules/eslint/lib/rules/array-bracket-newline.js +0 -291
  201. package/packages/config-eslint/node_modules/eslint/lib/rules/array-bracket-spacing.js +0 -301
  202. package/packages/config-eslint/node_modules/eslint/lib/rules/array-callback-return.js +0 -493
  203. package/packages/config-eslint/node_modules/eslint/lib/rules/array-element-newline.js +0 -374
  204. package/packages/config-eslint/node_modules/eslint/lib/rules/arrow-body-style.js +0 -418
  205. package/packages/config-eslint/node_modules/eslint/lib/rules/arrow-parens.js +0 -237
  206. package/packages/config-eslint/node_modules/eslint/lib/rules/arrow-spacing.js +0 -188
  207. package/packages/config-eslint/node_modules/eslint/lib/rules/block-scoped-var.js +0 -137
  208. package/packages/config-eslint/node_modules/eslint/lib/rules/block-spacing.js +0 -202
  209. package/packages/config-eslint/node_modules/eslint/lib/rules/brace-style.js +0 -278
  210. package/packages/config-eslint/node_modules/eslint/lib/rules/callback-return.js +0 -216
  211. package/packages/config-eslint/node_modules/eslint/lib/rules/camelcase.js +0 -422
  212. package/packages/config-eslint/node_modules/eslint/lib/rules/capitalized-comments.js +0 -325
  213. package/packages/config-eslint/node_modules/eslint/lib/rules/class-methods-use-this.js +0 -250
  214. package/packages/config-eslint/node_modules/eslint/lib/rules/comma-dangle.js +0 -424
  215. package/packages/config-eslint/node_modules/eslint/lib/rules/comma-spacing.js +0 -208
  216. package/packages/config-eslint/node_modules/eslint/lib/rules/comma-style.js +0 -391
  217. package/packages/config-eslint/node_modules/eslint/lib/rules/complexity.js +0 -201
  218. package/packages/config-eslint/node_modules/eslint/lib/rules/computed-property-spacing.js +0 -251
  219. package/packages/config-eslint/node_modules/eslint/lib/rules/consistent-return.js +0 -221
  220. package/packages/config-eslint/node_modules/eslint/lib/rules/consistent-this.js +0 -179
  221. package/packages/config-eslint/node_modules/eslint/lib/rules/constructor-super.js +0 -453
  222. package/packages/config-eslint/node_modules/eslint/lib/rules/curly.js +0 -425
  223. package/packages/config-eslint/node_modules/eslint/lib/rules/default-case-last.js +0 -51
  224. package/packages/config-eslint/node_modules/eslint/lib/rules/default-case.js +0 -103
  225. package/packages/config-eslint/node_modules/eslint/lib/rules/default-param-last.js +0 -78
  226. package/packages/config-eslint/node_modules/eslint/lib/rules/dot-location.js +0 -138
  227. package/packages/config-eslint/node_modules/eslint/lib/rules/dot-notation.js +0 -216
  228. package/packages/config-eslint/node_modules/eslint/lib/rules/eol-last.js +0 -135
  229. package/packages/config-eslint/node_modules/eslint/lib/rules/eqeqeq.js +0 -210
  230. package/packages/config-eslint/node_modules/eslint/lib/rules/for-direction.js +0 -168
  231. package/packages/config-eslint/node_modules/eslint/lib/rules/func-call-spacing.js +0 -281
  232. package/packages/config-eslint/node_modules/eslint/lib/rules/func-name-matching.js +0 -338
  233. package/packages/config-eslint/node_modules/eslint/lib/rules/func-names.js +0 -192
  234. package/packages/config-eslint/node_modules/eslint/lib/rules/func-style.js +0 -221
  235. package/packages/config-eslint/node_modules/eslint/lib/rules/function-call-argument-newline.js +0 -166
  236. package/packages/config-eslint/node_modules/eslint/lib/rules/function-paren-newline.js +0 -368
  237. package/packages/config-eslint/node_modules/eslint/lib/rules/generator-star-spacing.js +0 -246
  238. package/packages/config-eslint/node_modules/eslint/lib/rules/getter-return.js +0 -242
  239. package/packages/config-eslint/node_modules/eslint/lib/rules/global-require.js +0 -117
  240. package/packages/config-eslint/node_modules/eslint/lib/rules/grouped-accessor-pairs.js +0 -268
  241. package/packages/config-eslint/node_modules/eslint/lib/rules/guard-for-in.js +0 -85
  242. package/packages/config-eslint/node_modules/eslint/lib/rules/handle-callback-err.js +0 -122
  243. package/packages/config-eslint/node_modules/eslint/lib/rules/id-blacklist.js +0 -241
  244. package/packages/config-eslint/node_modules/eslint/lib/rules/id-denylist.js +0 -223
  245. package/packages/config-eslint/node_modules/eslint/lib/rules/id-length.js +0 -217
  246. package/packages/config-eslint/node_modules/eslint/lib/rules/id-match.js +0 -363
  247. package/packages/config-eslint/node_modules/eslint/lib/rules/implicit-arrow-linebreak.js +0 -125
  248. package/packages/config-eslint/node_modules/eslint/lib/rules/indent-legacy.js +0 -1369
  249. package/packages/config-eslint/node_modules/eslint/lib/rules/indent.js +0 -2334
  250. package/packages/config-eslint/node_modules/eslint/lib/rules/index.js +0 -332
  251. package/packages/config-eslint/node_modules/eslint/lib/rules/init-declarations.js +0 -172
  252. package/packages/config-eslint/node_modules/eslint/lib/rules/jsx-quotes.js +0 -128
  253. package/packages/config-eslint/node_modules/eslint/lib/rules/key-spacing.js +0 -822
  254. package/packages/config-eslint/node_modules/eslint/lib/rules/keyword-spacing.js +0 -701
  255. package/packages/config-eslint/node_modules/eslint/lib/rules/line-comment-position.js +0 -157
  256. package/packages/config-eslint/node_modules/eslint/lib/rules/linebreak-style.js +0 -135
  257. package/packages/config-eslint/node_modules/eslint/lib/rules/lines-around-comment.js +0 -581
  258. package/packages/config-eslint/node_modules/eslint/lib/rules/lines-around-directive.js +0 -249
  259. package/packages/config-eslint/node_modules/eslint/lib/rules/lines-between-class-members.js +0 -358
  260. package/packages/config-eslint/node_modules/eslint/lib/rules/logical-assignment-operators.js +0 -688
  261. package/packages/config-eslint/node_modules/eslint/lib/rules/max-classes-per-file.js +0 -90
  262. package/packages/config-eslint/node_modules/eslint/lib/rules/max-depth.js +0 -159
  263. package/packages/config-eslint/node_modules/eslint/lib/rules/max-len.js +0 -497
  264. package/packages/config-eslint/node_modules/eslint/lib/rules/max-lines-per-function.js +0 -238
  265. package/packages/config-eslint/node_modules/eslint/lib/rules/max-lines.js +0 -189
  266. package/packages/config-eslint/node_modules/eslint/lib/rules/max-nested-callbacks.js +0 -115
  267. package/packages/config-eslint/node_modules/eslint/lib/rules/max-params.js +0 -129
  268. package/packages/config-eslint/node_modules/eslint/lib/rules/max-statements-per-line.js +0 -224
  269. package/packages/config-eslint/node_modules/eslint/lib/rules/max-statements.js +0 -188
  270. package/packages/config-eslint/node_modules/eslint/lib/rules/multiline-comment-style.js +0 -652
  271. package/packages/config-eslint/node_modules/eslint/lib/rules/multiline-ternary.js +0 -257
  272. package/packages/config-eslint/node_modules/eslint/lib/rules/new-cap.js +0 -277
  273. package/packages/config-eslint/node_modules/eslint/lib/rules/new-parens.js +0 -120
  274. package/packages/config-eslint/node_modules/eslint/lib/rules/newline-after-var.js +0 -307
  275. package/packages/config-eslint/node_modules/eslint/lib/rules/newline-before-return.js +0 -242
  276. package/packages/config-eslint/node_modules/eslint/lib/rules/newline-per-chained-call.js +0 -159
  277. package/packages/config-eslint/node_modules/eslint/lib/rules/no-alert.js +0 -149
  278. package/packages/config-eslint/node_modules/eslint/lib/rules/no-array-constructor.js +0 -195
  279. package/packages/config-eslint/node_modules/eslint/lib/rules/no-async-promise-executor.js +0 -45
  280. package/packages/config-eslint/node_modules/eslint/lib/rules/no-await-in-loop.js +0 -115
  281. package/packages/config-eslint/node_modules/eslint/lib/rules/no-bitwise.js +0 -145
  282. package/packages/config-eslint/node_modules/eslint/lib/rules/no-buffer-constructor.js +0 -74
  283. package/packages/config-eslint/node_modules/eslint/lib/rules/no-caller.js +0 -52
  284. package/packages/config-eslint/node_modules/eslint/lib/rules/no-case-declarations.js +0 -80
  285. package/packages/config-eslint/node_modules/eslint/lib/rules/no-catch-shadow.js +0 -96
  286. package/packages/config-eslint/node_modules/eslint/lib/rules/no-class-assign.js +0 -66
  287. package/packages/config-eslint/node_modules/eslint/lib/rules/no-compare-neg-zero.js +0 -74
  288. package/packages/config-eslint/node_modules/eslint/lib/rules/no-cond-assign.js +0 -175
  289. package/packages/config-eslint/node_modules/eslint/lib/rules/no-confusing-arrow.js +0 -127
  290. package/packages/config-eslint/node_modules/eslint/lib/rules/no-console.js +0 -221
  291. package/packages/config-eslint/node_modules/eslint/lib/rules/no-const-assign.js +0 -73
  292. package/packages/config-eslint/node_modules/eslint/lib/rules/no-constant-binary-expression.js +0 -603
  293. package/packages/config-eslint/node_modules/eslint/lib/rules/no-constant-condition.js +0 -177
  294. package/packages/config-eslint/node_modules/eslint/lib/rules/no-constructor-return.js +0 -62
  295. package/packages/config-eslint/node_modules/eslint/lib/rules/no-continue.js +0 -38
  296. package/packages/config-eslint/node_modules/eslint/lib/rules/no-control-regex.js +0 -142
  297. package/packages/config-eslint/node_modules/eslint/lib/rules/no-debugger.js +0 -41
  298. package/packages/config-eslint/node_modules/eslint/lib/rules/no-delete-var.js +0 -42
  299. package/packages/config-eslint/node_modules/eslint/lib/rules/no-div-regex.js +0 -60
  300. package/packages/config-eslint/node_modules/eslint/lib/rules/no-dupe-args.js +0 -92
  301. package/packages/config-eslint/node_modules/eslint/lib/rules/no-dupe-class-members.js +0 -117
  302. package/packages/config-eslint/node_modules/eslint/lib/rules/no-dupe-else-if.js +0 -145
  303. package/packages/config-eslint/node_modules/eslint/lib/rules/no-dupe-keys.js +0 -165
  304. package/packages/config-eslint/node_modules/eslint/lib/rules/no-duplicate-case.js +0 -78
  305. package/packages/config-eslint/node_modules/eslint/lib/rules/no-duplicate-imports.js +0 -368
  306. package/packages/config-eslint/node_modules/eslint/lib/rules/no-else-return.js +0 -450
  307. package/packages/config-eslint/node_modules/eslint/lib/rules/no-empty-character-class.js +0 -83
  308. package/packages/config-eslint/node_modules/eslint/lib/rules/no-empty-function.js +0 -236
  309. package/packages/config-eslint/node_modules/eslint/lib/rules/no-empty-pattern.js +0 -85
  310. package/packages/config-eslint/node_modules/eslint/lib/rules/no-empty-static-block.js +0 -73
  311. package/packages/config-eslint/node_modules/eslint/lib/rules/no-empty.js +0 -153
  312. package/packages/config-eslint/node_modules/eslint/lib/rules/no-eq-null.js +0 -51
  313. package/packages/config-eslint/node_modules/eslint/lib/rules/no-eval.js +0 -295
  314. package/packages/config-eslint/node_modules/eslint/lib/rules/no-ex-assign.js +0 -57
  315. package/packages/config-eslint/node_modules/eslint/lib/rules/no-extend-native.js +0 -180
  316. package/packages/config-eslint/node_modules/eslint/lib/rules/no-extra-bind.js +0 -224
  317. package/packages/config-eslint/node_modules/eslint/lib/rules/no-extra-boolean-cast.js +0 -420
  318. package/packages/config-eslint/node_modules/eslint/lib/rules/no-extra-label.js +0 -169
  319. package/packages/config-eslint/node_modules/eslint/lib/rules/no-extra-parens.js +0 -1669
  320. package/packages/config-eslint/node_modules/eslint/lib/rules/no-extra-semi.js +0 -167
  321. package/packages/config-eslint/node_modules/eslint/lib/rules/no-fallthrough.js +0 -260
  322. package/packages/config-eslint/node_modules/eslint/lib/rules/no-floating-decimal.js +0 -99
  323. package/packages/config-eslint/node_modules/eslint/lib/rules/no-func-assign.js +0 -77
  324. package/packages/config-eslint/node_modules/eslint/lib/rules/no-global-assign.js +0 -101
  325. package/packages/config-eslint/node_modules/eslint/lib/rules/no-implicit-coercion.js +0 -468
  326. package/packages/config-eslint/node_modules/eslint/lib/rules/no-implicit-globals.js +0 -187
  327. package/packages/config-eslint/node_modules/eslint/lib/rules/no-implied-eval.js +0 -170
  328. package/packages/config-eslint/node_modules/eslint/lib/rules/no-import-assign.js +0 -227
  329. package/packages/config-eslint/node_modules/eslint/lib/rules/no-inline-comments.js +0 -115
  330. package/packages/config-eslint/node_modules/eslint/lib/rules/no-inner-declarations.js +0 -147
  331. package/packages/config-eslint/node_modules/eslint/lib/rules/no-invalid-regexp.js +0 -243
  332. package/packages/config-eslint/node_modules/eslint/lib/rules/no-invalid-this.js +0 -178
  333. package/packages/config-eslint/node_modules/eslint/lib/rules/no-irregular-whitespace.js +0 -292
  334. package/packages/config-eslint/node_modules/eslint/lib/rules/no-iterator.js +0 -48
  335. package/packages/config-eslint/node_modules/eslint/lib/rules/no-label-var.js +0 -78
  336. package/packages/config-eslint/node_modules/eslint/lib/rules/no-labels.js +0 -156
  337. package/packages/config-eslint/node_modules/eslint/lib/rules/no-lone-blocks.js +0 -140
  338. package/packages/config-eslint/node_modules/eslint/lib/rules/no-lonely-if.js +0 -126
  339. package/packages/config-eslint/node_modules/eslint/lib/rules/no-loop-func.js +0 -267
  340. package/packages/config-eslint/node_modules/eslint/lib/rules/no-loss-of-precision.js +0 -249
  341. package/packages/config-eslint/node_modules/eslint/lib/rules/no-magic-numbers.js +0 -365
  342. package/packages/config-eslint/node_modules/eslint/lib/rules/no-misleading-character-class.js +0 -595
  343. package/packages/config-eslint/node_modules/eslint/lib/rules/no-mixed-operators.js +0 -253
  344. package/packages/config-eslint/node_modules/eslint/lib/rules/no-mixed-requires.js +0 -267
  345. package/packages/config-eslint/node_modules/eslint/lib/rules/no-mixed-spaces-and-tabs.js +0 -148
  346. package/packages/config-eslint/node_modules/eslint/lib/rules/no-multi-assign.js +0 -66
  347. package/packages/config-eslint/node_modules/eslint/lib/rules/no-multi-spaces.js +0 -179
  348. package/packages/config-eslint/node_modules/eslint/lib/rules/no-multi-str.js +0 -67
  349. package/packages/config-eslint/node_modules/eslint/lib/rules/no-multiple-empty-lines.js +0 -210
  350. package/packages/config-eslint/node_modules/eslint/lib/rules/no-native-reassign.js +0 -114
  351. package/packages/config-eslint/node_modules/eslint/lib/rules/no-negated-condition.js +0 -100
  352. package/packages/config-eslint/node_modules/eslint/lib/rules/no-negated-in-lhs.js +0 -59
  353. package/packages/config-eslint/node_modules/eslint/lib/rules/no-nested-ternary.js +0 -46
  354. package/packages/config-eslint/node_modules/eslint/lib/rules/no-new-func.js +0 -96
  355. package/packages/config-eslint/node_modules/eslint/lib/rules/no-new-native-nonconstructor.js +0 -70
  356. package/packages/config-eslint/node_modules/eslint/lib/rules/no-new-object.js +0 -76
  357. package/packages/config-eslint/node_modules/eslint/lib/rules/no-new-require.js +0 -67
  358. package/packages/config-eslint/node_modules/eslint/lib/rules/no-new-symbol.js +0 -74
  359. package/packages/config-eslint/node_modules/eslint/lib/rules/no-new-wrappers.js +0 -62
  360. package/packages/config-eslint/node_modules/eslint/lib/rules/no-new.js +0 -42
  361. package/packages/config-eslint/node_modules/eslint/lib/rules/no-nonoctal-decimal-escape.js +0 -176
  362. package/packages/config-eslint/node_modules/eslint/lib/rules/no-obj-calls.js +0 -99
  363. package/packages/config-eslint/node_modules/eslint/lib/rules/no-object-constructor.js +0 -124
  364. package/packages/config-eslint/node_modules/eslint/lib/rules/no-octal-escape.js +0 -53
  365. package/packages/config-eslint/node_modules/eslint/lib/rules/no-octal.js +0 -42
  366. package/packages/config-eslint/node_modules/eslint/lib/rules/no-param-reassign.js +0 -248
  367. package/packages/config-eslint/node_modules/eslint/lib/rules/no-path-concat.js +0 -79
  368. package/packages/config-eslint/node_modules/eslint/lib/rules/no-plusplus.js +0 -102
  369. package/packages/config-eslint/node_modules/eslint/lib/rules/no-process-env.js +0 -68
  370. package/packages/config-eslint/node_modules/eslint/lib/rules/no-process-exit.js +0 -67
  371. package/packages/config-eslint/node_modules/eslint/lib/rules/no-promise-executor-return.js +0 -264
  372. package/packages/config-eslint/node_modules/eslint/lib/rules/no-proto.js +0 -45
  373. package/packages/config-eslint/node_modules/eslint/lib/rules/no-prototype-builtins.js +0 -181
  374. package/packages/config-eslint/node_modules/eslint/lib/rules/no-redeclare.js +0 -173
  375. package/packages/config-eslint/node_modules/eslint/lib/rules/no-regex-spaces.js +0 -219
  376. package/packages/config-eslint/node_modules/eslint/lib/rules/no-restricted-exports.js +0 -227
  377. package/packages/config-eslint/node_modules/eslint/lib/rules/no-restricted-globals.js +0 -266
  378. package/packages/config-eslint/node_modules/eslint/lib/rules/no-restricted-imports.js +0 -850
  379. package/packages/config-eslint/node_modules/eslint/lib/rules/no-restricted-modules.js +0 -249
  380. package/packages/config-eslint/node_modules/eslint/lib/rules/no-restricted-properties.js +0 -233
  381. package/packages/config-eslint/node_modules/eslint/lib/rules/no-restricted-syntax.js +0 -74
  382. package/packages/config-eslint/node_modules/eslint/lib/rules/no-return-assign.js +0 -87
  383. package/packages/config-eslint/node_modules/eslint/lib/rules/no-return-await.js +0 -162
  384. package/packages/config-eslint/node_modules/eslint/lib/rules/no-script-url.js +0 -68
  385. package/packages/config-eslint/node_modules/eslint/lib/rules/no-self-assign.js +0 -186
  386. package/packages/config-eslint/node_modules/eslint/lib/rules/no-self-compare.js +0 -77
  387. package/packages/config-eslint/node_modules/eslint/lib/rules/no-sequences.js +0 -158
  388. package/packages/config-eslint/node_modules/eslint/lib/rules/no-setter-return.js +0 -224
  389. package/packages/config-eslint/node_modules/eslint/lib/rules/no-shadow-restricted-names.js +0 -113
  390. package/packages/config-eslint/node_modules/eslint/lib/rules/no-shadow.js +0 -624
  391. package/packages/config-eslint/node_modules/eslint/lib/rules/no-spaced-func.js +0 -105
  392. package/packages/config-eslint/node_modules/eslint/lib/rules/no-sparse-arrays.js +0 -68
  393. package/packages/config-eslint/node_modules/eslint/lib/rules/no-sync.js +0 -81
  394. package/packages/config-eslint/node_modules/eslint/lib/rules/no-tabs.js +0 -110
  395. package/packages/config-eslint/node_modules/eslint/lib/rules/no-template-curly-in-string.js +0 -45
  396. package/packages/config-eslint/node_modules/eslint/lib/rules/no-ternary.js +0 -38
  397. package/packages/config-eslint/node_modules/eslint/lib/rules/no-this-before-super.js +0 -365
  398. package/packages/config-eslint/node_modules/eslint/lib/rules/no-throw-literal.js +0 -46
  399. package/packages/config-eslint/node_modules/eslint/lib/rules/no-trailing-spaces.js +0 -227
  400. package/packages/config-eslint/node_modules/eslint/lib/rules/no-unassigned-vars.js +0 -80
  401. package/packages/config-eslint/node_modules/eslint/lib/rules/no-undef-init.js +0 -101
  402. package/packages/config-eslint/node_modules/eslint/lib/rules/no-undef.js +0 -84
  403. package/packages/config-eslint/node_modules/eslint/lib/rules/no-undefined.js +0 -85
  404. package/packages/config-eslint/node_modules/eslint/lib/rules/no-underscore-dangle.js +0 -383
  405. package/packages/config-eslint/node_modules/eslint/lib/rules/no-unexpected-multiline.js +0 -130
  406. package/packages/config-eslint/node_modules/eslint/lib/rules/no-unmodified-loop-condition.js +0 -360
  407. package/packages/config-eslint/node_modules/eslint/lib/rules/no-unneeded-ternary.js +0 -232
  408. package/packages/config-eslint/node_modules/eslint/lib/rules/no-unreachable-loop.js +0 -190
  409. package/packages/config-eslint/node_modules/eslint/lib/rules/no-unreachable.js +0 -300
  410. package/packages/config-eslint/node_modules/eslint/lib/rules/no-unsafe-finally.js +0 -119
  411. package/packages/config-eslint/node_modules/eslint/lib/rules/no-unsafe-negation.js +0 -152
  412. package/packages/config-eslint/node_modules/eslint/lib/rules/no-unsafe-optional-chaining.js +0 -221
  413. package/packages/config-eslint/node_modules/eslint/lib/rules/no-unused-expressions.js +0 -227
  414. package/packages/config-eslint/node_modules/eslint/lib/rules/no-unused-labels.js +0 -158
  415. package/packages/config-eslint/node_modules/eslint/lib/rules/no-unused-private-class-members.js +0 -219
  416. package/packages/config-eslint/node_modules/eslint/lib/rules/no-unused-vars.js +0 -1739
  417. package/packages/config-eslint/node_modules/eslint/lib/rules/no-use-before-define.js +0 -446
  418. package/packages/config-eslint/node_modules/eslint/lib/rules/no-useless-assignment.js +0 -654
  419. package/packages/config-eslint/node_modules/eslint/lib/rules/no-useless-backreference.js +0 -263
  420. package/packages/config-eslint/node_modules/eslint/lib/rules/no-useless-call.js +0 -95
  421. package/packages/config-eslint/node_modules/eslint/lib/rules/no-useless-catch.js +0 -57
  422. package/packages/config-eslint/node_modules/eslint/lib/rules/no-useless-computed-key.js +0 -204
  423. package/packages/config-eslint/node_modules/eslint/lib/rules/no-useless-concat.js +0 -121
  424. package/packages/config-eslint/node_modules/eslint/lib/rules/no-useless-constructor.js +0 -252
  425. package/packages/config-eslint/node_modules/eslint/lib/rules/no-useless-escape.js +0 -406
  426. package/packages/config-eslint/node_modules/eslint/lib/rules/no-useless-rename.js +0 -202
  427. package/packages/config-eslint/node_modules/eslint/lib/rules/no-useless-return.js +0 -401
  428. package/packages/config-eslint/node_modules/eslint/lib/rules/no-var.js +0 -367
  429. package/packages/config-eslint/node_modules/eslint/lib/rules/no-void.js +0 -69
  430. package/packages/config-eslint/node_modules/eslint/lib/rules/no-warning-comments.js +0 -209
  431. package/packages/config-eslint/node_modules/eslint/lib/rules/no-whitespace-before-property.js +0 -150
  432. package/packages/config-eslint/node_modules/eslint/lib/rules/no-with.js +0 -37
  433. package/packages/config-eslint/node_modules/eslint/lib/rules/nonblock-statement-body-position.js +0 -164
  434. package/packages/config-eslint/node_modules/eslint/lib/rules/object-curly-newline.js +0 -383
  435. package/packages/config-eslint/node_modules/eslint/lib/rules/object-curly-spacing.js +0 -375
  436. package/packages/config-eslint/node_modules/eslint/lib/rules/object-property-newline.js +0 -151
  437. package/packages/config-eslint/node_modules/eslint/lib/rules/object-shorthand.js +0 -652
  438. package/packages/config-eslint/node_modules/eslint/lib/rules/one-var-declaration-per-line.js +0 -117
  439. package/packages/config-eslint/node_modules/eslint/lib/rules/one-var.js +0 -717
  440. package/packages/config-eslint/node_modules/eslint/lib/rules/operator-assignment.js +0 -270
  441. package/packages/config-eslint/node_modules/eslint/lib/rules/operator-linebreak.js +0 -315
  442. package/packages/config-eslint/node_modules/eslint/lib/rules/padded-blocks.js +0 -366
  443. package/packages/config-eslint/node_modules/eslint/lib/rules/padding-line-between-statements.js +0 -612
  444. package/packages/config-eslint/node_modules/eslint/lib/rules/prefer-arrow-callback.js +0 -437
  445. package/packages/config-eslint/node_modules/eslint/lib/rules/prefer-const.js +0 -546
  446. package/packages/config-eslint/node_modules/eslint/lib/rules/prefer-destructuring.js +0 -332
  447. package/packages/config-eslint/node_modules/eslint/lib/rules/prefer-exponentiation-operator.js +0 -235
  448. package/packages/config-eslint/node_modules/eslint/lib/rules/prefer-named-capture-group.js +0 -197
  449. package/packages/config-eslint/node_modules/eslint/lib/rules/prefer-numeric-literals.js +0 -157
  450. package/packages/config-eslint/node_modules/eslint/lib/rules/prefer-object-has-own.js +0 -148
  451. package/packages/config-eslint/node_modules/eslint/lib/rules/prefer-object-spread.js +0 -319
  452. package/packages/config-eslint/node_modules/eslint/lib/rules/prefer-promise-reject-errors.js +0 -154
  453. package/packages/config-eslint/node_modules/eslint/lib/rules/prefer-reflect.js +0 -150
  454. package/packages/config-eslint/node_modules/eslint/lib/rules/prefer-regex-literals.js +0 -605
  455. package/packages/config-eslint/node_modules/eslint/lib/rules/prefer-rest-params.js +0 -117
  456. package/packages/config-eslint/node_modules/eslint/lib/rules/prefer-spread.js +0 -91
  457. package/packages/config-eslint/node_modules/eslint/lib/rules/prefer-template.js +0 -347
  458. package/packages/config-eslint/node_modules/eslint/lib/rules/preserve-caught-error.js +0 -535
  459. package/packages/config-eslint/node_modules/eslint/lib/rules/quote-props.js +0 -394
  460. package/packages/config-eslint/node_modules/eslint/lib/rules/quotes.js +0 -416
  461. package/packages/config-eslint/node_modules/eslint/lib/rules/radix.js +0 -216
  462. package/packages/config-eslint/node_modules/eslint/lib/rules/require-atomic-updates.js +0 -365
  463. package/packages/config-eslint/node_modules/eslint/lib/rules/require-await.js +0 -184
  464. package/packages/config-eslint/node_modules/eslint/lib/rules/require-unicode-regexp.js +0 -317
  465. package/packages/config-eslint/node_modules/eslint/lib/rules/require-yield.js +0 -76
  466. package/packages/config-eslint/node_modules/eslint/lib/rules/rest-spread-spacing.js +0 -153
  467. package/packages/config-eslint/node_modules/eslint/lib/rules/semi-spacing.js +0 -297
  468. package/packages/config-eslint/node_modules/eslint/lib/rules/semi-style.js +0 -218
  469. package/packages/config-eslint/node_modules/eslint/lib/rules/semi.js +0 -476
  470. package/packages/config-eslint/node_modules/eslint/lib/rules/sort-imports.js +0 -319
  471. package/packages/config-eslint/node_modules/eslint/lib/rules/sort-keys.js +0 -268
  472. package/packages/config-eslint/node_modules/eslint/lib/rules/sort-vars.js +0 -140
  473. package/packages/config-eslint/node_modules/eslint/lib/rules/space-before-blocks.js +0 -232
  474. package/packages/config-eslint/node_modules/eslint/lib/rules/space-before-function-paren.js +0 -205
  475. package/packages/config-eslint/node_modules/eslint/lib/rules/space-in-parens.js +0 -374
  476. package/packages/config-eslint/node_modules/eslint/lib/rules/space-infix-ops.js +0 -252
  477. package/packages/config-eslint/node_modules/eslint/lib/rules/space-unary-ops.js +0 -400
  478. package/packages/config-eslint/node_modules/eslint/lib/rules/spaced-comment.js +0 -447
  479. package/packages/config-eslint/node_modules/eslint/lib/rules/strict.js +0 -314
  480. package/packages/config-eslint/node_modules/eslint/lib/rules/switch-colon-spacing.js +0 -158
  481. package/packages/config-eslint/node_modules/eslint/lib/rules/symbol-description.js +0 -70
  482. package/packages/config-eslint/node_modules/eslint/lib/rules/template-curly-spacing.js +0 -168
  483. package/packages/config-eslint/node_modules/eslint/lib/rules/template-tag-spacing.js +0 -121
  484. package/packages/config-eslint/node_modules/eslint/lib/rules/unicode-bom.js +0 -73
  485. package/packages/config-eslint/node_modules/eslint/lib/rules/use-isnan.js +0 -268
  486. package/packages/config-eslint/node_modules/eslint/lib/rules/utils/ast-utils.js +0 -2733
  487. package/packages/config-eslint/node_modules/eslint/lib/rules/utils/char-source.js +0 -247
  488. package/packages/config-eslint/node_modules/eslint/lib/rules/utils/fix-tracker.js +0 -125
  489. package/packages/config-eslint/node_modules/eslint/lib/rules/utils/keywords.js +0 -67
  490. package/packages/config-eslint/node_modules/eslint/lib/rules/utils/lazy-loading-rule-map.js +0 -118
  491. package/packages/config-eslint/node_modules/eslint/lib/rules/utils/regular-expressions.js +0 -58
  492. package/packages/config-eslint/node_modules/eslint/lib/rules/utils/unicode/index.js +0 -16
  493. package/packages/config-eslint/node_modules/eslint/lib/rules/utils/unicode/is-combining-character.js +0 -13
  494. package/packages/config-eslint/node_modules/eslint/lib/rules/utils/unicode/is-emoji-modifier.js +0 -13
  495. package/packages/config-eslint/node_modules/eslint/lib/rules/utils/unicode/is-regional-indicator-symbol.js +0 -13
  496. package/packages/config-eslint/node_modules/eslint/lib/rules/utils/unicode/is-surrogate-pair.js +0 -14
  497. package/packages/config-eslint/node_modules/eslint/lib/rules/valid-typeof.js +0 -171
  498. package/packages/config-eslint/node_modules/eslint/lib/rules/vars-on-top.js +0 -165
  499. package/packages/config-eslint/node_modules/eslint/lib/rules/wrap-iife.js +0 -238
  500. package/packages/config-eslint/node_modules/eslint/lib/rules/wrap-regex.js +0 -91
  501. package/packages/config-eslint/node_modules/eslint/lib/rules/yield-star-spacing.js +0 -159
  502. package/packages/config-eslint/node_modules/eslint/lib/rules/yoda.js +0 -362
  503. package/packages/config-eslint/node_modules/eslint/lib/services/parser-service.js +0 -65
  504. package/packages/config-eslint/node_modules/eslint/lib/services/processor-service.js +0 -101
  505. package/packages/config-eslint/node_modules/eslint/lib/services/suppressions-service.js +0 -302
  506. package/packages/config-eslint/node_modules/eslint/lib/services/warning-service.js +0 -111
  507. package/packages/config-eslint/node_modules/eslint/lib/shared/ajv.js +0 -34
  508. package/packages/config-eslint/node_modules/eslint/lib/shared/assert.js +0 -21
  509. package/packages/config-eslint/node_modules/eslint/lib/shared/ast-utils.js +0 -30
  510. package/packages/config-eslint/node_modules/eslint/lib/shared/deep-merge-arrays.js +0 -62
  511. package/packages/config-eslint/node_modules/eslint/lib/shared/directives.js +0 -16
  512. package/packages/config-eslint/node_modules/eslint/lib/shared/flags.js +0 -108
  513. package/packages/config-eslint/node_modules/eslint/lib/shared/logging.js +0 -38
  514. package/packages/config-eslint/node_modules/eslint/lib/shared/naming.js +0 -109
  515. package/packages/config-eslint/node_modules/eslint/lib/shared/option-utils.js +0 -63
  516. package/packages/config-eslint/node_modules/eslint/lib/shared/relative-module-resolver.js +0 -28
  517. package/packages/config-eslint/node_modules/eslint/lib/shared/runtime-info.js +0 -177
  518. package/packages/config-eslint/node_modules/eslint/lib/shared/serialization.js +0 -78
  519. package/packages/config-eslint/node_modules/eslint/lib/shared/severity.js +0 -49
  520. package/packages/config-eslint/node_modules/eslint/lib/shared/stats.js +0 -30
  521. package/packages/config-eslint/node_modules/eslint/lib/shared/string-utils.js +0 -58
  522. package/packages/config-eslint/node_modules/eslint/lib/shared/text-table.js +0 -68
  523. package/packages/config-eslint/node_modules/eslint/lib/shared/translate-cli-options.js +0 -281
  524. package/packages/config-eslint/node_modules/eslint/lib/shared/traverser.js +0 -202
  525. package/packages/config-eslint/node_modules/eslint/lib/types/config-api.d.ts +0 -12
  526. package/packages/config-eslint/node_modules/eslint/lib/types/index.d.ts +0 -1473
  527. package/packages/config-eslint/node_modules/eslint/lib/types/rules.d.ts +0 -5589
  528. package/packages/config-eslint/node_modules/eslint/lib/types/universal.d.ts +0 -6
  529. package/packages/config-eslint/node_modules/eslint/lib/types/use-at-your-own-risk.d.ts +0 -87
  530. package/packages/config-eslint/node_modules/eslint/lib/universal.js +0 -10
  531. package/packages/config-eslint/node_modules/eslint/lib/unsupported-api.js +0 -29
  532. package/packages/config-eslint/node_modules/eslint/messages/all-files-ignored.js +0 -16
  533. package/packages/config-eslint/node_modules/eslint/messages/all-matched-files-ignored.js +0 -21
  534. package/packages/config-eslint/node_modules/eslint/messages/config-file-missing.js +0 -16
  535. package/packages/config-eslint/node_modules/eslint/messages/config-plugin-missing.js +0 -14
  536. package/packages/config-eslint/node_modules/eslint/messages/config-serialize-function.js +0 -30
  537. package/packages/config-eslint/node_modules/eslint/messages/eslintrc-incompat.js +0 -117
  538. package/packages/config-eslint/node_modules/eslint/messages/eslintrc-plugins.js +0 -27
  539. package/packages/config-eslint/node_modules/eslint/messages/extend-config-missing.js +0 -13
  540. package/packages/config-eslint/node_modules/eslint/messages/failed-to-read-json.js +0 -11
  541. package/packages/config-eslint/node_modules/eslint/messages/file-not-found.js +0 -10
  542. package/packages/config-eslint/node_modules/eslint/messages/invalid-rule-options.js +0 -17
  543. package/packages/config-eslint/node_modules/eslint/messages/invalid-rule-severity.js +0 -13
  544. package/packages/config-eslint/node_modules/eslint/messages/no-config-found.js +0 -15
  545. package/packages/config-eslint/node_modules/eslint/messages/plugin-conflict.js +0 -22
  546. package/packages/config-eslint/node_modules/eslint/messages/plugin-invalid.js +0 -16
  547. package/packages/config-eslint/node_modules/eslint/messages/plugin-missing.js +0 -19
  548. package/packages/config-eslint/node_modules/eslint/messages/print-config-with-directory-path.js +0 -8
  549. package/packages/config-eslint/node_modules/eslint/messages/shared.js +0 -23
  550. package/packages/config-eslint/node_modules/eslint/messages/whitespace-found.js +0 -11
  551. package/packages/config-eslint/node_modules/eslint/package.json +0 -226
  552. package/packages/config-eslint/node_modules/find-up/index.d.ts +0 -138
  553. package/packages/config-eslint/node_modules/find-up/index.js +0 -89
  554. package/packages/config-eslint/node_modules/find-up/license +0 -9
  555. package/packages/config-eslint/node_modules/find-up/package.json +0 -54
  556. package/packages/config-eslint/node_modules/find-up/readme.md +0 -151
  557. package/packages/config-eslint/node_modules/globals/globals.json +0 -3970
  558. package/packages/config-eslint/node_modules/globals/index.d.ts +0 -4087
  559. package/packages/config-eslint/node_modules/globals/index.js +0 -2
  560. package/packages/config-eslint/node_modules/globals/license +0 -9
  561. package/packages/config-eslint/node_modules/globals/package.json +0 -122
  562. package/packages/config-eslint/node_modules/globals/readme.md +0 -42
  563. package/packages/config-eslint/node_modules/ignore/LICENSE-MIT +0 -21
  564. package/packages/config-eslint/node_modules/ignore/README.md +0 -412
  565. package/packages/config-eslint/node_modules/ignore/index.d.ts +0 -61
  566. package/packages/config-eslint/node_modules/ignore/index.js +0 -636
  567. package/packages/config-eslint/node_modules/ignore/legacy.js +0 -559
  568. package/packages/config-eslint/node_modules/ignore/package.json +0 -74
  569. package/packages/config-eslint/node_modules/json-schema-traverse/.eslintrc.yml +0 -27
  570. package/packages/config-eslint/node_modules/json-schema-traverse/.travis.yml +0 -8
  571. package/packages/config-eslint/node_modules/json-schema-traverse/LICENSE +0 -21
  572. package/packages/config-eslint/node_modules/json-schema-traverse/README.md +0 -83
  573. package/packages/config-eslint/node_modules/json-schema-traverse/index.js +0 -89
  574. package/packages/config-eslint/node_modules/json-schema-traverse/package.json +0 -43
  575. package/packages/config-eslint/node_modules/json-schema-traverse/spec/.eslintrc.yml +0 -6
  576. package/packages/config-eslint/node_modules/json-schema-traverse/spec/fixtures/schema.js +0 -125
  577. package/packages/config-eslint/node_modules/json-schema-traverse/spec/index.spec.js +0 -171
  578. package/packages/config-eslint/node_modules/locate-path/index.d.ts +0 -83
  579. package/packages/config-eslint/node_modules/locate-path/index.js +0 -68
  580. package/packages/config-eslint/node_modules/locate-path/license +0 -9
  581. package/packages/config-eslint/node_modules/locate-path/package.json +0 -46
  582. package/packages/config-eslint/node_modules/locate-path/readme.md +0 -125
  583. package/packages/config-eslint/node_modules/p-limit/index.d.ts +0 -42
  584. package/packages/config-eslint/node_modules/p-limit/index.js +0 -71
  585. package/packages/config-eslint/node_modules/p-limit/license +0 -9
  586. package/packages/config-eslint/node_modules/p-limit/package.json +0 -52
  587. package/packages/config-eslint/node_modules/p-limit/readme.md +0 -101
  588. package/packages/config-eslint/node_modules/p-locate/index.d.ts +0 -53
  589. package/packages/config-eslint/node_modules/p-locate/index.js +0 -50
  590. package/packages/config-eslint/node_modules/p-locate/license +0 -9
  591. package/packages/config-eslint/node_modules/p-locate/package.json +0 -54
  592. package/packages/config-eslint/node_modules/p-locate/readme.md +0 -93
  593. package/packages/config-eslint/node_modules/path-exists/index.d.ts +0 -28
  594. package/packages/config-eslint/node_modules/path-exists/index.js +0 -23
  595. package/packages/config-eslint/node_modules/path-exists/license +0 -9
  596. package/packages/config-eslint/node_modules/path-exists/package.json +0 -39
  597. package/packages/config-eslint/node_modules/path-exists/readme.md +0 -52
  598. package/packages/config-eslint/node_modules/yocto-queue/index.d.ts +0 -56
  599. package/packages/config-eslint/node_modules/yocto-queue/index.js +0 -68
  600. package/packages/config-eslint/node_modules/yocto-queue/license +0 -9
  601. package/packages/config-eslint/node_modules/yocto-queue/package.json +0 -43
  602. package/packages/config-eslint/node_modules/yocto-queue/readme.md +0 -64
@@ -1,1739 +0,0 @@
1
- /**
2
- * @fileoverview Rule to flag declared but unused variables
3
- * @author Ilya Volodin
4
- */
5
-
6
- "use strict";
7
-
8
- //------------------------------------------------------------------------------
9
- // Requirements
10
- //------------------------------------------------------------------------------
11
-
12
- const astUtils = require("./utils/ast-utils");
13
-
14
- //------------------------------------------------------------------------------
15
- // Typedefs
16
- //------------------------------------------------------------------------------
17
-
18
- /**
19
- * A simple name for the types of variables that this rule supports
20
- * @typedef {'array-destructure'|'catch-clause'|'parameter'|'variable'} VariableType
21
- */
22
-
23
- /**
24
- * Bag of data used for formatting the `unusedVar` lint message.
25
- * @typedef {Object} UnusedVarMessageData
26
- * @property {string} varName The name of the unused var.
27
- * @property {'defined'|'assigned a value'} action Description of the vars state.
28
- * @property {string} additional Any additional info to be appended at the end.
29
- */
30
-
31
- /**
32
- * Bag of data used for formatting the `usedIgnoredVar` lint message.
33
- * @typedef {Object} UsedIgnoredVarMessageData
34
- * @property {string} varName The name of the unused var.
35
- * @property {string} additional Any additional info to be appended at the end.
36
- */
37
-
38
- //------------------------------------------------------------------------------
39
- // Rule Definition
40
- //------------------------------------------------------------------------------
41
-
42
- /** @type {import('../types').Rule.RuleModule} */
43
- module.exports = {
44
- meta: {
45
- type: "problem",
46
-
47
- docs: {
48
- description: "Disallow unused variables",
49
- recommended: true,
50
- url: "https://eslint.org/docs/latest/rules/no-unused-vars",
51
- },
52
-
53
- hasSuggestions: true,
54
-
55
- schema: [
56
- {
57
- oneOf: [
58
- {
59
- enum: ["all", "local"],
60
- },
61
- {
62
- type: "object",
63
- properties: {
64
- vars: {
65
- enum: ["all", "local"],
66
- },
67
- varsIgnorePattern: {
68
- type: "string",
69
- },
70
- args: {
71
- enum: ["all", "after-used", "none"],
72
- },
73
- ignoreRestSiblings: {
74
- type: "boolean",
75
- },
76
- argsIgnorePattern: {
77
- type: "string",
78
- },
79
- caughtErrors: {
80
- enum: ["all", "none"],
81
- },
82
- caughtErrorsIgnorePattern: {
83
- type: "string",
84
- },
85
- destructuredArrayIgnorePattern: {
86
- type: "string",
87
- },
88
- ignoreClassWithStaticInitBlock: {
89
- type: "boolean",
90
- },
91
- ignoreUsingDeclarations: {
92
- type: "boolean",
93
- },
94
- reportUsedIgnorePattern: {
95
- type: "boolean",
96
- },
97
- },
98
- additionalProperties: false,
99
- },
100
- ],
101
- },
102
- ],
103
-
104
- messages: {
105
- unusedVar:
106
- "'{{varName}}' is {{action}} but never used{{additional}}.",
107
- usedIgnoredVar:
108
- "'{{varName}}' is marked as ignored but is used{{additional}}.",
109
- removeVar: "Remove unused variable '{{varName}}'.",
110
- },
111
- },
112
-
113
- create(context) {
114
- const sourceCode = context.sourceCode;
115
-
116
- const REST_PROPERTY_TYPE =
117
- /^(?:RestElement|(?:Experimental)?RestProperty)$/u;
118
-
119
- const config = {
120
- vars: "all",
121
- args: "after-used",
122
- ignoreRestSiblings: false,
123
- caughtErrors: "all",
124
- ignoreClassWithStaticInitBlock: false,
125
- ignoreUsingDeclarations: false,
126
- reportUsedIgnorePattern: false,
127
- };
128
-
129
- const firstOption = context.options[0];
130
-
131
- if (firstOption) {
132
- if (typeof firstOption === "string") {
133
- config.vars = firstOption;
134
- } else {
135
- config.vars = firstOption.vars || config.vars;
136
- config.args = firstOption.args || config.args;
137
- config.ignoreRestSiblings =
138
- firstOption.ignoreRestSiblings || config.ignoreRestSiblings;
139
- config.caughtErrors =
140
- firstOption.caughtErrors || config.caughtErrors;
141
- config.ignoreClassWithStaticInitBlock =
142
- firstOption.ignoreClassWithStaticInitBlock ||
143
- config.ignoreClassWithStaticInitBlock;
144
- config.ignoreUsingDeclarations =
145
- firstOption.ignoreUsingDeclarations ||
146
- config.ignoreUsingDeclarations;
147
- config.reportUsedIgnorePattern =
148
- firstOption.reportUsedIgnorePattern ||
149
- config.reportUsedIgnorePattern;
150
-
151
- if (firstOption.varsIgnorePattern) {
152
- config.varsIgnorePattern = new RegExp(
153
- firstOption.varsIgnorePattern,
154
- "u",
155
- );
156
- }
157
-
158
- if (firstOption.argsIgnorePattern) {
159
- config.argsIgnorePattern = new RegExp(
160
- firstOption.argsIgnorePattern,
161
- "u",
162
- );
163
- }
164
-
165
- if (firstOption.caughtErrorsIgnorePattern) {
166
- config.caughtErrorsIgnorePattern = new RegExp(
167
- firstOption.caughtErrorsIgnorePattern,
168
- "u",
169
- );
170
- }
171
-
172
- if (firstOption.destructuredArrayIgnorePattern) {
173
- config.destructuredArrayIgnorePattern = new RegExp(
174
- firstOption.destructuredArrayIgnorePattern,
175
- "u",
176
- );
177
- }
178
- }
179
- }
180
-
181
- /**
182
- * Determines what variable type a def is.
183
- * @param {Object} def the declaration to check
184
- * @returns {VariableType} a simple name for the types of variables that this rule supports
185
- */
186
- function defToVariableType(def) {
187
- /*
188
- * This `destructuredArrayIgnorePattern` error report works differently from the catch
189
- * clause and parameter error reports. _Both_ the `varsIgnorePattern` and the
190
- * `destructuredArrayIgnorePattern` will be checked for array destructuring. However,
191
- * for the purposes of the report, the currently defined behavior is to only inform the
192
- * user of the `destructuredArrayIgnorePattern` if it's present (regardless of the fact
193
- * that the `varsIgnorePattern` would also apply). If it's not present, the user will be
194
- * informed of the `varsIgnorePattern`, assuming that's present.
195
- */
196
- if (
197
- config.destructuredArrayIgnorePattern &&
198
- def.name.parent.type === "ArrayPattern"
199
- ) {
200
- return "array-destructure";
201
- }
202
-
203
- switch (def.type) {
204
- case "CatchClause":
205
- return "catch-clause";
206
- case "Parameter":
207
- return "parameter";
208
-
209
- default:
210
- return "variable";
211
- }
212
- }
213
-
214
- /**
215
- * Gets a given variable's description and configured ignore pattern
216
- * based on the provided variableType
217
- * @param {VariableType} variableType a simple name for the types of variables that this rule supports
218
- * @throws {Error} (Unreachable)
219
- * @returns {[string | undefined, string | undefined]} the given variable's description and
220
- * ignore pattern
221
- */
222
- function getVariableDescription(variableType) {
223
- let pattern;
224
- let variableDescription;
225
-
226
- switch (variableType) {
227
- case "array-destructure":
228
- pattern = config.destructuredArrayIgnorePattern;
229
- variableDescription = "elements of array destructuring";
230
- break;
231
-
232
- case "catch-clause":
233
- pattern = config.caughtErrorsIgnorePattern;
234
- variableDescription = "caught errors";
235
- break;
236
-
237
- case "parameter":
238
- pattern = config.argsIgnorePattern;
239
- variableDescription = "args";
240
- break;
241
-
242
- case "variable":
243
- pattern = config.varsIgnorePattern;
244
- variableDescription = "vars";
245
- break;
246
-
247
- default:
248
- throw new Error(
249
- `Unexpected variable type: ${variableType}`,
250
- );
251
- }
252
-
253
- if (pattern) {
254
- pattern = pattern.toString();
255
- }
256
-
257
- return [variableDescription, pattern];
258
- }
259
-
260
- /**
261
- * Generates the message data about the variable being defined and unused,
262
- * including the ignore pattern if configured.
263
- * @param {Variable} unusedVar eslint-scope variable object.
264
- * @returns {UnusedVarMessageData} The message data to be used with this unused variable.
265
- */
266
- function getDefinedMessageData(unusedVar) {
267
- const def = unusedVar.defs && unusedVar.defs[0];
268
- let additionalMessageData = "";
269
-
270
- if (def) {
271
- const [variableDescription, pattern] = getVariableDescription(
272
- defToVariableType(def),
273
- );
274
-
275
- if (pattern && variableDescription) {
276
- additionalMessageData = `. Allowed unused ${variableDescription} must match ${pattern}`;
277
- }
278
- }
279
-
280
- return {
281
- varName: unusedVar.name,
282
- action: "defined",
283
- additional: additionalMessageData,
284
- };
285
- }
286
-
287
- /**
288
- * Generate the warning message about the variable being
289
- * assigned and unused, including the ignore pattern if configured.
290
- * @param {Variable} unusedVar eslint-scope variable object.
291
- * @returns {UnusedVarMessageData} The message data to be used with this unused variable.
292
- */
293
- function getAssignedMessageData(unusedVar) {
294
- const def = unusedVar.defs && unusedVar.defs[0];
295
- let additionalMessageData = "";
296
-
297
- if (def) {
298
- const [variableDescription, pattern] = getVariableDescription(
299
- defToVariableType(def),
300
- );
301
-
302
- if (pattern && variableDescription) {
303
- additionalMessageData = `. Allowed unused ${variableDescription} must match ${pattern}`;
304
- }
305
- }
306
-
307
- return {
308
- varName: unusedVar.name,
309
- action: "assigned a value",
310
- additional: additionalMessageData,
311
- };
312
- }
313
-
314
- /**
315
- * Generate the warning message about a variable being used even though
316
- * it is marked as being ignored.
317
- * @param {Variable} variable eslint-scope variable object
318
- * @param {VariableType} variableType a simple name for the types of variables that this rule supports
319
- * @returns {UsedIgnoredVarMessageData} The message data to be used with
320
- * this used ignored variable.
321
- */
322
- function getUsedIgnoredMessageData(variable, variableType) {
323
- const [variableDescription, pattern] =
324
- getVariableDescription(variableType);
325
-
326
- let additionalMessageData = "";
327
-
328
- if (pattern && variableDescription) {
329
- additionalMessageData = `. Used ${variableDescription} must not match ${pattern}`;
330
- }
331
-
332
- return {
333
- varName: variable.name,
334
- additional: additionalMessageData,
335
- };
336
- }
337
-
338
- //--------------------------------------------------------------------------
339
- // Helpers
340
- //--------------------------------------------------------------------------
341
-
342
- const STATEMENT_TYPE = /(?:Statement|Declaration)$/u;
343
-
344
- /**
345
- * Determines if a given variable is being exported from a module.
346
- * @param {Variable} variable eslint-scope variable object.
347
- * @returns {boolean} True if the variable is exported, false if not.
348
- * @private
349
- */
350
- function isExported(variable) {
351
- const definition = variable.defs[0];
352
-
353
- if (definition) {
354
- let node = definition.node;
355
-
356
- if (node.type === "VariableDeclarator") {
357
- node = node.parent;
358
- } else if (definition.type === "Parameter") {
359
- return false;
360
- }
361
-
362
- return node.parent.type.indexOf("Export") === 0;
363
- }
364
- return false;
365
- }
366
-
367
- /**
368
- * Determines if a given variable uses the explicit resource management protocol.
369
- * @param {Variable} variable eslint-scope variable object.
370
- * @returns {boolean} True if the variable is declared with "using" or "await using"
371
- * @private
372
- */
373
- function usesExplicitResourceManagement(variable) {
374
- const [definition] = variable.defs;
375
-
376
- return (
377
- definition?.type === "Variable" &&
378
- (definition.parent.kind === "using" ||
379
- definition.parent.kind === "await using")
380
- );
381
- }
382
-
383
- /**
384
- * Checks whether a node is a sibling of the rest property or not.
385
- * @param {ASTNode} node a node to check
386
- * @returns {boolean} True if the node is a sibling of the rest property, otherwise false.
387
- */
388
- function hasRestSibling(node) {
389
- return (
390
- node.type === "Property" &&
391
- node.parent.type === "ObjectPattern" &&
392
- REST_PROPERTY_TYPE.test(node.parent.properties.at(-1).type)
393
- );
394
- }
395
-
396
- /**
397
- * Determines if a variable has a sibling rest property
398
- * @param {Variable} variable eslint-scope variable object.
399
- * @returns {boolean} True if the variable has a sibling rest property, false if not.
400
- * @private
401
- */
402
- function hasRestSpreadSibling(variable) {
403
- if (config.ignoreRestSiblings) {
404
- const hasRestSiblingDefinition = variable.defs.some(def =>
405
- hasRestSibling(def.name.parent),
406
- );
407
- const hasRestSiblingReference = variable.references.some(ref =>
408
- hasRestSibling(ref.identifier.parent),
409
- );
410
-
411
- return hasRestSiblingDefinition || hasRestSiblingReference;
412
- }
413
-
414
- return false;
415
- }
416
-
417
- /**
418
- * Determines if a reference is a read operation.
419
- * @param {Reference} ref An eslint-scope Reference
420
- * @returns {boolean} whether the given reference represents a read operation
421
- * @private
422
- */
423
- function isReadRef(ref) {
424
- return ref.isRead();
425
- }
426
-
427
- /**
428
- * Determine if an identifier is referencing an enclosing function name.
429
- * @param {Reference} ref The reference to check.
430
- * @param {ASTNode[]} nodes The candidate function nodes.
431
- * @returns {boolean} True if it's a self-reference, false if not.
432
- * @private
433
- */
434
- function isSelfReference(ref, nodes) {
435
- let scope = ref.from;
436
-
437
- while (scope) {
438
- if (nodes.includes(scope.block)) {
439
- return true;
440
- }
441
-
442
- scope = scope.upper;
443
- }
444
-
445
- return false;
446
- }
447
-
448
- /**
449
- * Gets a list of function definitions for a specified variable.
450
- * @param {Variable} variable eslint-scope variable object.
451
- * @returns {ASTNode[]} Function nodes.
452
- * @private
453
- */
454
- function getFunctionDefinitions(variable) {
455
- const functionDefinitions = [];
456
-
457
- variable.defs.forEach(def => {
458
- const { type, node } = def;
459
-
460
- // FunctionDeclarations
461
- if (type === "FunctionName") {
462
- functionDefinitions.push(node);
463
- }
464
-
465
- // FunctionExpressions
466
- if (
467
- type === "Variable" &&
468
- node.init &&
469
- (node.init.type === "FunctionExpression" ||
470
- node.init.type === "ArrowFunctionExpression")
471
- ) {
472
- functionDefinitions.push(node.init);
473
- }
474
- });
475
- return functionDefinitions;
476
- }
477
-
478
- /**
479
- * Checks the position of given nodes.
480
- * @param {ASTNode} inner A node which is expected as inside.
481
- * @param {ASTNode} outer A node which is expected as outside.
482
- * @returns {boolean} `true` if the `inner` node exists in the `outer` node.
483
- * @private
484
- */
485
- function isInside(inner, outer) {
486
- return (
487
- inner.range[0] >= outer.range[0] &&
488
- inner.range[1] <= outer.range[1]
489
- );
490
- }
491
-
492
- /**
493
- * Checks whether a given node is unused expression or not.
494
- * @param {ASTNode} node The node itself
495
- * @returns {boolean} The node is an unused expression.
496
- * @private
497
- */
498
- function isUnusedExpression(node) {
499
- const parent = node.parent;
500
-
501
- if (parent.type === "ExpressionStatement") {
502
- return true;
503
- }
504
-
505
- if (parent.type === "SequenceExpression") {
506
- const isLastExpression = parent.expressions.at(-1) === node;
507
-
508
- if (!isLastExpression) {
509
- return true;
510
- }
511
- return isUnusedExpression(parent);
512
- }
513
-
514
- return false;
515
- }
516
-
517
- /**
518
- * If a given reference is left-hand side of an assignment, this gets
519
- * the right-hand side node of the assignment.
520
- *
521
- * In the following cases, this returns null.
522
- *
523
- * - The reference is not the LHS of an assignment expression.
524
- * - The reference is inside of a loop.
525
- * - The reference is inside of a function scope which is different from
526
- * the declaration.
527
- * @param {eslint-scope.Reference} ref A reference to check.
528
- * @param {ASTNode} prevRhsNode The previous RHS node.
529
- * @returns {ASTNode|null} The RHS node or null.
530
- * @private
531
- */
532
- function getRhsNode(ref, prevRhsNode) {
533
- const id = ref.identifier;
534
- const parent = id.parent;
535
- const refScope = ref.from.variableScope;
536
- const varScope = ref.resolved.scope.variableScope;
537
- const canBeUsedLater =
538
- refScope !== varScope || astUtils.isInLoop(id);
539
-
540
- /*
541
- * Inherits the previous node if this reference is in the node.
542
- * This is for `a = a + a`-like code.
543
- */
544
- if (prevRhsNode && isInside(id, prevRhsNode)) {
545
- return prevRhsNode;
546
- }
547
-
548
- if (
549
- parent.type === "AssignmentExpression" &&
550
- isUnusedExpression(parent) &&
551
- id === parent.left &&
552
- !canBeUsedLater
553
- ) {
554
- return parent.right;
555
- }
556
- return null;
557
- }
558
-
559
- /**
560
- * Checks whether a given function node is stored to somewhere or not.
561
- * If the function node is stored, the function can be used later.
562
- * @param {ASTNode} funcNode A function node to check.
563
- * @param {ASTNode} rhsNode The RHS node of the previous assignment.
564
- * @returns {boolean} `true` if under the following conditions:
565
- * - the funcNode is assigned to a variable.
566
- * - the funcNode is bound as an argument of a function call.
567
- * - the function is bound to a property and the object satisfies above conditions.
568
- * @private
569
- */
570
- function isStorableFunction(funcNode, rhsNode) {
571
- let node = funcNode;
572
- let parent = funcNode.parent;
573
-
574
- while (parent && isInside(parent, rhsNode)) {
575
- switch (parent.type) {
576
- case "SequenceExpression":
577
- if (parent.expressions.at(-1) !== node) {
578
- return false;
579
- }
580
- break;
581
-
582
- case "CallExpression":
583
- case "NewExpression":
584
- return parent.callee !== node;
585
-
586
- case "AssignmentExpression":
587
- case "TaggedTemplateExpression":
588
- case "YieldExpression":
589
- return true;
590
-
591
- default:
592
- if (STATEMENT_TYPE.test(parent.type)) {
593
- /*
594
- * If it encountered statements, this is a complex pattern.
595
- * Since analyzing complex patterns is hard, this returns `true` to avoid false positive.
596
- */
597
- return true;
598
- }
599
- }
600
-
601
- node = parent;
602
- parent = parent.parent;
603
- }
604
-
605
- return false;
606
- }
607
-
608
- /**
609
- * Checks whether a given Identifier node exists inside of a function node which can be used later.
610
- *
611
- * "can be used later" means:
612
- * - the function is assigned to a variable.
613
- * - the function is bound to a property and the object can be used later.
614
- * - the function is bound as an argument of a function call.
615
- *
616
- * If a reference exists in a function which can be used later, the reference is read when the function is called.
617
- * @param {ASTNode} id An Identifier node to check.
618
- * @param {ASTNode} rhsNode The RHS node of the previous assignment.
619
- * @returns {boolean} `true` if the `id` node exists inside of a function node which can be used later.
620
- * @private
621
- */
622
- function isInsideOfStorableFunction(id, rhsNode) {
623
- const funcNode = astUtils.getUpperFunction(id);
624
-
625
- return (
626
- funcNode &&
627
- isInside(funcNode, rhsNode) &&
628
- isStorableFunction(funcNode, rhsNode)
629
- );
630
- }
631
-
632
- /**
633
- * Checks whether a given reference is a read to update itself or not.
634
- * @param {eslint-scope.Reference} ref A reference to check.
635
- * @param {ASTNode} rhsNode The RHS node of the previous assignment.
636
- * @returns {boolean} The reference is a read to update itself.
637
- * @private
638
- */
639
- function isReadForItself(ref, rhsNode) {
640
- const id = ref.identifier;
641
- const parent = id.parent;
642
-
643
- return (
644
- ref.isRead() &&
645
- // self update. e.g. `a += 1`, `a++`
646
- ((parent.type === "AssignmentExpression" &&
647
- parent.left === id &&
648
- isUnusedExpression(parent) &&
649
- !astUtils.isLogicalAssignmentOperator(parent.operator)) ||
650
- (parent.type === "UpdateExpression" &&
651
- isUnusedExpression(parent)) ||
652
- // in RHS of an assignment for itself. e.g. `a = a + 1`
653
- (rhsNode &&
654
- isInside(id, rhsNode) &&
655
- !isInsideOfStorableFunction(id, rhsNode)))
656
- );
657
- }
658
-
659
- /**
660
- * Determine if an identifier is used either in for-in or for-of loops.
661
- * @param {Reference} ref The reference to check.
662
- * @returns {boolean} whether reference is used in the for-in loops
663
- * @private
664
- */
665
- function isForInOfRef(ref) {
666
- let target = ref.identifier.parent;
667
-
668
- // "for (var ...) { return; }"
669
- if (target.type === "VariableDeclarator") {
670
- target = target.parent.parent;
671
- }
672
-
673
- if (
674
- target.type !== "ForInStatement" &&
675
- target.type !== "ForOfStatement"
676
- ) {
677
- return false;
678
- }
679
-
680
- // "for (...) { return; }"
681
- if (target.body.type === "BlockStatement") {
682
- target = target.body.body[0];
683
-
684
- // "for (...) return;"
685
- } else {
686
- target = target.body;
687
- }
688
-
689
- // For empty loop body
690
- if (!target) {
691
- return false;
692
- }
693
-
694
- return target.type === "ReturnStatement";
695
- }
696
-
697
- /**
698
- * Determines if the variable is used.
699
- * @param {Variable} variable The variable to check.
700
- * @returns {boolean} True if the variable is used
701
- * @private
702
- */
703
- function isUsedVariable(variable) {
704
- if (variable.eslintUsed) {
705
- return true;
706
- }
707
-
708
- const functionNodes = getFunctionDefinitions(variable);
709
- const isFunctionDefinition = functionNodes.length > 0;
710
-
711
- let rhsNode = null;
712
-
713
- return variable.references.some(ref => {
714
- if (isForInOfRef(ref)) {
715
- return true;
716
- }
717
-
718
- const forItself = isReadForItself(ref, rhsNode);
719
-
720
- rhsNode = getRhsNode(ref, rhsNode);
721
-
722
- return (
723
- isReadRef(ref) &&
724
- !forItself &&
725
- !(
726
- isFunctionDefinition &&
727
- isSelfReference(ref, functionNodes)
728
- )
729
- );
730
- });
731
- }
732
-
733
- /**
734
- * Checks whether the given variable is after the last used parameter.
735
- * @param {eslint-scope.Variable} variable The variable to check.
736
- * @returns {boolean} `true` if the variable is defined after the last
737
- * used parameter.
738
- */
739
- function isAfterLastUsedArg(variable) {
740
- const def = variable.defs[0];
741
- const params = sourceCode.getDeclaredVariables(def.node);
742
- const posteriorParams = params.slice(params.indexOf(variable) + 1);
743
-
744
- // If any used parameters occur after this parameter, do not report.
745
- return !posteriorParams.some(
746
- v => v.references.length > 0 || v.eslintUsed,
747
- );
748
- }
749
-
750
- /**
751
- * Gets an array of variables without read references.
752
- * @param {Scope} scope an eslint-scope Scope object.
753
- * @param {Variable[]} unusedVars an array that saving result.
754
- * @returns {Variable[]} unused variables of the scope and descendant scopes.
755
- * @private
756
- */
757
- function collectUnusedVariables(scope, unusedVars) {
758
- const variables = scope.variables;
759
- const childScopes = scope.childScopes;
760
- let i, l;
761
-
762
- if (scope.type !== "global" || config.vars === "all") {
763
- for (i = 0, l = variables.length; i < l; ++i) {
764
- const variable = variables[i];
765
-
766
- // skip a variable of class itself name in the class scope
767
- if (
768
- scope.type === "class" &&
769
- scope.block.id === variable.identifiers[0]
770
- ) {
771
- continue;
772
- }
773
-
774
- // skip function expression names
775
- if (scope.functionExpressionScope) {
776
- continue;
777
- }
778
-
779
- // skip variables marked with markVariableAsUsed()
780
- if (
781
- !config.reportUsedIgnorePattern &&
782
- variable.eslintUsed
783
- ) {
784
- continue;
785
- }
786
-
787
- // skip implicit "arguments" variable
788
- if (
789
- scope.type === "function" &&
790
- variable.name === "arguments" &&
791
- variable.identifiers.length === 0
792
- ) {
793
- continue;
794
- }
795
-
796
- // explicit global variables don't have definitions.
797
- const def = variable.defs[0];
798
-
799
- if (def) {
800
- const type = def.type;
801
- const refUsedInArrayPatterns = variable.references.some(
802
- ref =>
803
- ref.identifier.parent.type === "ArrayPattern",
804
- );
805
-
806
- // skip elements of array destructuring patterns
807
- if (
808
- (def.name.parent.type === "ArrayPattern" ||
809
- refUsedInArrayPatterns) &&
810
- config.destructuredArrayIgnorePattern &&
811
- config.destructuredArrayIgnorePattern.test(
812
- def.name.name,
813
- )
814
- ) {
815
- if (
816
- config.reportUsedIgnorePattern &&
817
- isUsedVariable(variable)
818
- ) {
819
- context.report({
820
- node: def.name,
821
- messageId: "usedIgnoredVar",
822
- data: getUsedIgnoredMessageData(
823
- variable,
824
- "array-destructure",
825
- ),
826
- });
827
- }
828
-
829
- continue;
830
- }
831
-
832
- if (type === "ClassName") {
833
- const hasStaticBlock = def.node.body.body.some(
834
- node => node.type === "StaticBlock",
835
- );
836
-
837
- if (
838
- config.ignoreClassWithStaticInitBlock &&
839
- hasStaticBlock
840
- ) {
841
- continue;
842
- }
843
- }
844
-
845
- // skip catch variables
846
- if (type === "CatchClause") {
847
- if (config.caughtErrors === "none") {
848
- continue;
849
- }
850
-
851
- // skip ignored parameters
852
- if (
853
- config.caughtErrorsIgnorePattern &&
854
- config.caughtErrorsIgnorePattern.test(
855
- def.name.name,
856
- )
857
- ) {
858
- if (
859
- config.reportUsedIgnorePattern &&
860
- isUsedVariable(variable)
861
- ) {
862
- context.report({
863
- node: def.name,
864
- messageId: "usedIgnoredVar",
865
- data: getUsedIgnoredMessageData(
866
- variable,
867
- "catch-clause",
868
- ),
869
- });
870
- }
871
-
872
- continue;
873
- }
874
- } else if (type === "Parameter") {
875
- // skip any setter argument
876
- if (
877
- (def.node.parent.type === "Property" ||
878
- def.node.parent.type ===
879
- "MethodDefinition") &&
880
- def.node.parent.kind === "set"
881
- ) {
882
- continue;
883
- }
884
-
885
- // if "args" option is "none", skip any parameter
886
- if (config.args === "none") {
887
- continue;
888
- }
889
-
890
- // skip ignored parameters
891
- if (
892
- config.argsIgnorePattern &&
893
- config.argsIgnorePattern.test(def.name.name)
894
- ) {
895
- if (
896
- config.reportUsedIgnorePattern &&
897
- isUsedVariable(variable)
898
- ) {
899
- context.report({
900
- node: def.name,
901
- messageId: "usedIgnoredVar",
902
- data: getUsedIgnoredMessageData(
903
- variable,
904
- "parameter",
905
- ),
906
- });
907
- }
908
-
909
- continue;
910
- }
911
-
912
- // if "args" option is "after-used", skip used variables
913
- if (
914
- config.args === "after-used" &&
915
- astUtils.isFunction(def.name.parent) &&
916
- !isAfterLastUsedArg(variable)
917
- ) {
918
- continue;
919
- }
920
- } else {
921
- // skip ignored variables
922
- if (
923
- config.varsIgnorePattern &&
924
- config.varsIgnorePattern.test(def.name.name)
925
- ) {
926
- if (
927
- config.reportUsedIgnorePattern &&
928
- isUsedVariable(variable)
929
- ) {
930
- context.report({
931
- node: def.name,
932
- messageId: "usedIgnoredVar",
933
- data: getUsedIgnoredMessageData(
934
- variable,
935
- "variable",
936
- ),
937
- });
938
- }
939
-
940
- continue;
941
- }
942
- }
943
- }
944
-
945
- if (
946
- !isUsedVariable(variable) &&
947
- !isExported(variable) &&
948
- !(
949
- config.ignoreUsingDeclarations &&
950
- usesExplicitResourceManagement(variable)
951
- ) &&
952
- !hasRestSpreadSibling(variable)
953
- ) {
954
- unusedVars.push(variable);
955
- }
956
- }
957
- }
958
-
959
- for (i = 0, l = childScopes.length; i < l; ++i) {
960
- collectUnusedVariables(childScopes[i], unusedVars);
961
- }
962
-
963
- return unusedVars;
964
- }
965
-
966
- /**
967
- * fixes unused variables
968
- * @param {Object} fixer fixer object
969
- * @param {Object} unusedVar unused variable to fix
970
- * @returns {Object} fixer object
971
- */
972
- function handleFixes(fixer, unusedVar) {
973
- const id = unusedVar.identifiers[0];
974
- const parent = id.parent;
975
- const parentType = parent.type;
976
- const tokenBefore = sourceCode.getTokenBefore(id);
977
- const tokenAfter = sourceCode.getTokenAfter(id);
978
- const isFunction = astUtils.isFunction;
979
- const isLoop = astUtils.isLoop;
980
- const allWriteReferences = unusedVar.references.filter(ref =>
981
- ref.isWrite(),
982
- );
983
-
984
- /**
985
- * get range from token before of a given node
986
- * @param {ASTNode} node node of identifier
987
- * @param {number} skips number of token to skip
988
- * @returns {number} start range of token before the identifier
989
- */
990
- function getPreviousTokenStart(node, skips) {
991
- return sourceCode.getTokenBefore(node, skips).range[0];
992
- }
993
-
994
- /**
995
- * get range to token after of a given node
996
- * @param {ASTNode} node node of identifier
997
- * @param {number} skips number of token to skip
998
- * @returns {number} end range of token after the identifier
999
- */
1000
- function getNextTokenEnd(node, skips) {
1001
- return sourceCode.getTokenAfter(node, skips).range[1];
1002
- }
1003
-
1004
- /**
1005
- * get the value of token before of a given node
1006
- * @param {ASTNode} node node of identifier
1007
- * @returns {string} value of token before the identifier
1008
- */
1009
- function getTokenBeforeValue(node) {
1010
- return sourceCode.getTokenBefore(node).value;
1011
- }
1012
-
1013
- /**
1014
- * get the value of token after of a given node
1015
- * @param {ASTNode} node node of identifier
1016
- * @returns {string} value of token after the identifier
1017
- */
1018
- function getTokenAfterValue(node) {
1019
- return sourceCode.getTokenAfter(node).value;
1020
- }
1021
-
1022
- /**
1023
- * Check if an array has a single element with null as other element.
1024
- * @param {ASTNode} node ArrayPattern node
1025
- * @returns {boolean} true if array has single element with other null elements
1026
- */
1027
- function hasSingleElement(node) {
1028
- return node.elements.filter(e => e !== null).length === 1;
1029
- }
1030
-
1031
- /**
1032
- * check whether import specifier has an import of particular type
1033
- * @param {ASTNode} node ImportDeclaration node
1034
- * @param {string} type type of import to check
1035
- * @returns {boolean} true if import specifier has import of specified type
1036
- */
1037
- function hasImportOfCertainType(node, type) {
1038
- return node.specifiers.some(e => e.type === type);
1039
- }
1040
-
1041
- /**
1042
- * Check whether declaration is safe to remove or not
1043
- * @param {ASTNode} nextToken next token of unused variable
1044
- * @param {ASTNode} prevToken previous token of unused variable
1045
- * @returns {boolean} true if declaration is not safe to remove
1046
- */
1047
- function isDeclarationNotSafeToRemove(nextToken, prevToken) {
1048
- return (
1049
- nextToken.type === "String" ||
1050
- (prevToken &&
1051
- !astUtils.isSemicolonToken(prevToken) &&
1052
- !astUtils.isOpeningBraceToken(prevToken))
1053
- );
1054
- }
1055
-
1056
- /**
1057
- * give fixes for unused variables in function parameters
1058
- * @param {ASTNode} node node to check
1059
- * @returns {Object} fixer object
1060
- */
1061
- function fixFunctionParameters(node) {
1062
- const parentNode = node.parent;
1063
-
1064
- if (isFunction(parentNode)) {
1065
- // remove unused function parameter if there is only a single parameter
1066
- if (parentNode.params.length === 1) {
1067
- return fixer.removeRange(node.range);
1068
- }
1069
-
1070
- // remove first unused function parameter when there are multiple parameters
1071
- if (
1072
- getTokenBeforeValue(node) === "(" &&
1073
- getTokenAfterValue(node) === ","
1074
- ) {
1075
- return fixer.removeRange([
1076
- node.range[0],
1077
- getNextTokenEnd(node),
1078
- ]);
1079
- }
1080
-
1081
- // remove unused function parameters except first one when there are multiple parameters
1082
- return fixer.removeRange([
1083
- getPreviousTokenStart(node),
1084
- node.range[1],
1085
- ]);
1086
- }
1087
-
1088
- return null;
1089
- }
1090
-
1091
- /**
1092
- * fix unused variable declarations and function parameters
1093
- * @param {ASTNode} node parent node to identifier
1094
- * @returns {Object} fixer object
1095
- */
1096
- function fixVariables(node) {
1097
- const parentNode = node.parent;
1098
-
1099
- // remove unused declared variables such as var a = b; or var a = b, c;
1100
- if (parentNode.type === "VariableDeclarator") {
1101
- // skip variable in for (const [ foo ] of bar);
1102
- if (isLoop(parentNode.parent.parent)) {
1103
- return null;
1104
- }
1105
-
1106
- /*
1107
- * remove unused declared variable with single declaration such as 'var a = b;'
1108
- * remove complete declaration when there is an unused variable in 'const { a } = foo;', same for arrays.
1109
- */
1110
- if (parentNode.parent.declarations.length === 1) {
1111
- // if next token is a string it could become a directive if node is removed -> no suggestion.
1112
- const nextToken = sourceCode.getTokenAfter(
1113
- parentNode.parent,
1114
- );
1115
-
1116
- // if previous token exists and is not ";" or "{" not sure about ASI rules -> no suggestion.
1117
- const prevToken = sourceCode.getTokenBefore(
1118
- parentNode.parent,
1119
- );
1120
-
1121
- if (
1122
- nextToken &&
1123
- isDeclarationNotSafeToRemove(nextToken, prevToken)
1124
- ) {
1125
- return null;
1126
- }
1127
-
1128
- return fixer.removeRange(parentNode.parent.range);
1129
- }
1130
-
1131
- /*
1132
- * remove unused declared variable with multiple declaration except first one such as 'var a = b, c = d;'
1133
- * fix 'let bar = "hello", { a } = foo;' to 'let bar = "hello";' if 'a' is unused, same for arrays.
1134
- */
1135
- if (getTokenBeforeValue(parentNode) === ",") {
1136
- return fixer.removeRange([
1137
- getPreviousTokenStart(parentNode),
1138
- parentNode.range[1],
1139
- ]);
1140
- }
1141
-
1142
- /*
1143
- * remove first unused declared variable when there are multiple declarations
1144
- * fix 'let { a } = foo, bar = "hello";' to 'let bar = "hello";' if 'a' is unused, same for arrays.
1145
- */
1146
- return fixer.removeRange([
1147
- parentNode.range[0],
1148
- getNextTokenEnd(parentNode),
1149
- ]);
1150
- }
1151
-
1152
- // fixes [{a: {k}}], [{a: [k]}]
1153
- if (getTokenBeforeValue(node) === ":") {
1154
- if (parentNode.parent.type === "ObjectPattern") {
1155
- // eslint-disable-next-line no-use-before-define -- due to interdependency of functions
1156
- return fixObjectWithValueSeparator(node);
1157
- }
1158
- }
1159
-
1160
- // fix unused function parameters
1161
- return fixFunctionParameters(node);
1162
- }
1163
-
1164
- /**
1165
- * fix nested object like { a: { b } }
1166
- * @param {ASTNode} node parent node to check
1167
- * @returns {Object} fixer object
1168
- */
1169
- function fixNestedObjectVariable(node) {
1170
- const parentNode = node.parent;
1171
-
1172
- // fix for { a: { b: { c: { d } } } }
1173
- if (
1174
- parentNode.parent.parent.parent.type === "ObjectPattern" &&
1175
- parentNode.parent.properties.length === 1
1176
- ) {
1177
- return fixNestedObjectVariable(parentNode.parent);
1178
- }
1179
-
1180
- // fix for { a: { b } }
1181
- if (parentNode.parent.type === "ObjectPattern") {
1182
- // fix for unused variables in destructured object with single property in variable declaration and function parameter
1183
- if (parentNode.parent.properties.length === 1) {
1184
- return fixVariables(parentNode.parent);
1185
- }
1186
-
1187
- // fix for first unused property when there are multiple properties such as '{ a: { b }, c }'
1188
- if (getTokenBeforeValue(parentNode) === "{") {
1189
- return fixer.removeRange([
1190
- parentNode.range[0],
1191
- getNextTokenEnd(parentNode),
1192
- ]);
1193
- }
1194
-
1195
- // fix for unused property except first one when there are multiple properties such as '{ k, a: { b } }'
1196
- return fixer.removeRange([
1197
- getPreviousTokenStart(parentNode),
1198
- parentNode.range[1],
1199
- ]);
1200
- }
1201
-
1202
- return null;
1203
- }
1204
-
1205
- /**
1206
- * fix unused variables in array and nested array
1207
- * @param {ASTNode} node parent node to check
1208
- * @returns {Object} fixer object
1209
- */
1210
- function fixNestedArrayVariable(node) {
1211
- const parentNode = node.parent;
1212
-
1213
- // fix for nested arrays [[ a ]]
1214
- if (
1215
- parentNode.parent.type === "ArrayPattern" &&
1216
- hasSingleElement(parentNode)
1217
- ) {
1218
- return fixNestedArrayVariable(parentNode);
1219
- }
1220
-
1221
- if (hasSingleElement(parentNode)) {
1222
- // fixes { a: [{ b }] } or { a: [[ b ]] }
1223
- if (getTokenBeforeValue(parentNode) === ":") {
1224
- return fixVariables(parentNode);
1225
- }
1226
-
1227
- // fixes [a, ...[[ b ]]] or [a, ...[{ b }]]
1228
- if (parentNode.parent.type === "RestElement") {
1229
- // eslint-disable-next-line no-use-before-define -- due to interdependency of functions
1230
- return fixRestInPattern(parentNode.parent);
1231
- }
1232
-
1233
- // fix unused variables in destructured array in variable declaration or function parameter
1234
- return fixVariables(parentNode);
1235
- }
1236
-
1237
- // remove last unused array element
1238
- if (
1239
- getTokenBeforeValue(node) === "," &&
1240
- getTokenAfterValue(node) === "]"
1241
- ) {
1242
- return fixer.removeRange([
1243
- getPreviousTokenStart(node),
1244
- node.range[1],
1245
- ]);
1246
- }
1247
-
1248
- // remove unused array element
1249
- return fixer.removeRange(node.range);
1250
- }
1251
-
1252
- /**
1253
- * fix cases like {a: {k}} or {a: [k]}
1254
- * @param {ASTNode} node parent node to check
1255
- * @returns {Object} fixer object
1256
- */
1257
- function fixObjectWithValueSeparator(node) {
1258
- const parentNode = node.parent.parent;
1259
-
1260
- // fix cases like [{a : { b }}] or [{a : [ b ]}]
1261
- if (
1262
- parentNode.parent.type === "ArrayPattern" &&
1263
- parentNode.properties.length === 1
1264
- ) {
1265
- return fixNestedArrayVariable(parentNode);
1266
- }
1267
-
1268
- // fix cases like {a: {k}} or {a: [k]}
1269
- return fixNestedObjectVariable(node);
1270
- }
1271
-
1272
- /**
1273
- * fix ...[[a]] or ...[{a}] like patterns
1274
- * @param {ASTNode} node parent node to check
1275
- * @returns {Object} fixer object
1276
- */
1277
- function fixRestInPattern(node) {
1278
- const parentNode = node.parent;
1279
-
1280
- // fix ...[[a]] or ...[{a}] in function parameters
1281
- if (isFunction(parentNode)) {
1282
- if (parentNode.params.length === 1) {
1283
- return fixer.removeRange(node.range);
1284
- }
1285
-
1286
- return fixer.removeRange([
1287
- getPreviousTokenStart(node),
1288
- node.range[1],
1289
- ]);
1290
- }
1291
-
1292
- // fix rest in nested array pattern like [[a, ...[b]]]
1293
- if (parentNode.type === "ArrayPattern") {
1294
- // fix [[...[b]]]
1295
- if (hasSingleElement(parentNode)) {
1296
- if (parentNode.parent.type === "ArrayPattern") {
1297
- return fixNestedArrayVariable(parentNode);
1298
- }
1299
-
1300
- // fix 'const [...[b]] = foo; and function foo([...[b]]) {}
1301
- return fixVariables(parentNode);
1302
- }
1303
-
1304
- // fix [[a, ...[b]]]
1305
- return fixer.removeRange([
1306
- getPreviousTokenStart(node),
1307
- node.range[1],
1308
- ]);
1309
- }
1310
-
1311
- return null;
1312
- }
1313
-
1314
- // skip fix when variable has references that would be left behind
1315
- if (
1316
- allWriteReferences.some(
1317
- ref => ref.identifier.range[0] !== id.range[0],
1318
- )
1319
- ) {
1320
- return null;
1321
- }
1322
-
1323
- // remove declared variables such as var a; or var a, b;
1324
- if (parentType === "VariableDeclarator") {
1325
- if (parent.parent.declarations.length === 1) {
1326
- // prevent fix of variable in forOf and forIn loops.
1327
- if (
1328
- isLoop(parent.parent.parent) &&
1329
- parent.parent.parent.body !== parent.parent
1330
- ) {
1331
- return null;
1332
- }
1333
-
1334
- // removes only variable not semicolon in 'if (foo()) var bar;' or in 'loops' or in 'with' statement.
1335
- if (
1336
- parent.parent.parent.type === "IfStatement" ||
1337
- isLoop(parent.parent.parent) ||
1338
- (parent.parent.parent.type === "WithStatement" &&
1339
- parent.parent.parent.body === parent.parent)
1340
- ) {
1341
- return fixer.replaceText(parent.parent, ";");
1342
- }
1343
-
1344
- // if next token is a string it could become a directive if node is removed -> no suggestion.
1345
- const nextToken = sourceCode.getTokenAfter(parent.parent);
1346
-
1347
- // if previous token exists and is not ";" or "{" not sure about ASI rules -> no suggestion.
1348
- const prevToken = sourceCode.getTokenBefore(parent.parent);
1349
-
1350
- if (
1351
- nextToken &&
1352
- isDeclarationNotSafeToRemove(nextToken, prevToken)
1353
- ) {
1354
- return null;
1355
- }
1356
-
1357
- // remove unused declared variable with single declaration like 'var a = b;'
1358
- return fixer.removeRange(parent.parent.range);
1359
- }
1360
-
1361
- // remove unused declared variable with multiple declaration except first one like 'var a = b, c = d;'
1362
- if (tokenBefore.value === ",") {
1363
- return fixer.removeRange([
1364
- tokenBefore.range[0],
1365
- parent.range[1],
1366
- ]);
1367
- }
1368
-
1369
- // remove first unused declared variable when there are multiple declarations
1370
- return fixer.removeRange([
1371
- parent.range[0],
1372
- getNextTokenEnd(parent),
1373
- ]);
1374
- }
1375
-
1376
- // remove variables in object patterns
1377
- if (parent.parent.type === "ObjectPattern") {
1378
- if (parent.parent.properties.length === 1) {
1379
- // fix [a, ...{b}]
1380
- if (parent.parent.parent.type === "RestElement") {
1381
- return fixRestInPattern(parent.parent.parent);
1382
- }
1383
-
1384
- // fix [{ a }]
1385
- if (parent.parent.parent.type === "ArrayPattern") {
1386
- return fixNestedArrayVariable(parent.parent);
1387
- }
1388
-
1389
- /*
1390
- * var {a} = foo;
1391
- * function a({a}) {}
1392
- * fix const { a: { b } } = foo;
1393
- */
1394
- return fixVariables(parent.parent);
1395
- }
1396
-
1397
- // fix const { a:b } = foo;
1398
- if (tokenBefore.value === ":") {
1399
- // remove first unused variable in const { a:b } = foo;
1400
- if (
1401
- getTokenBeforeValue(parent) === "{" &&
1402
- getTokenAfterValue(parent) === ","
1403
- ) {
1404
- return fixer.removeRange([
1405
- parent.range[0],
1406
- getNextTokenEnd(parent),
1407
- ]);
1408
- }
1409
-
1410
- // remove unused variables in const { a: b, c: d } = foo; except first one
1411
- return fixer.removeRange([
1412
- getPreviousTokenStart(parent),
1413
- id.range[1],
1414
- ]);
1415
- }
1416
- }
1417
-
1418
- // remove unused variables inside an array
1419
- if (parentType === "ArrayPattern") {
1420
- if (hasSingleElement(parent)) {
1421
- // fix [a, ...[b]]
1422
- if (parent.parent.type === "RestElement") {
1423
- return fixRestInPattern(parent.parent);
1424
- }
1425
-
1426
- // fix [ [a] ]
1427
- if (parent.parent.type === "ArrayPattern") {
1428
- return fixNestedArrayVariable(parent);
1429
- }
1430
-
1431
- /*
1432
- * fix var [a] = foo;
1433
- * fix function foo([a]) {}
1434
- * fix const { a: [b] } = foo;
1435
- */
1436
- return fixVariables(parent);
1437
- }
1438
-
1439
- // if "a" is unused in [a, b ,c] fixes to [, b, c]
1440
- if (tokenBefore.value === "," && tokenAfter.value === ",") {
1441
- return fixer.removeRange(id.range);
1442
- }
1443
- }
1444
-
1445
- // remove unused rest elements
1446
- if (parentType === "RestElement") {
1447
- // fix [a, ...rest]
1448
- if (parent.parent.type === "ArrayPattern") {
1449
- if (hasSingleElement(parent.parent)) {
1450
- // fix [[...rest]] when there is only rest element
1451
- if (parent.parent.parent.type === "ArrayPattern") {
1452
- return fixNestedArrayVariable(parent.parent);
1453
- }
1454
-
1455
- // fix 'const [...rest] = foo;' and 'function foo([...rest]) {}'
1456
- return fixVariables(parent.parent);
1457
- }
1458
-
1459
- // fix [a, ...rest]
1460
- return fixer.removeRange([
1461
- getPreviousTokenStart(id, 1),
1462
- id.range[1],
1463
- ]);
1464
- }
1465
-
1466
- // fix { a, ...rest}
1467
- if (parent.parent.type === "ObjectPattern") {
1468
- // fix 'const {...rest} = foo;' and 'function foo({...rest}) {}'
1469
- if (parent.parent.properties.length === 1) {
1470
- return fixVariables(parent.parent);
1471
- }
1472
-
1473
- // fix { a, ...rest} when there are multiple properties
1474
- return fixer.removeRange([
1475
- getPreviousTokenStart(id, 1),
1476
- id.range[1],
1477
- ]);
1478
- }
1479
-
1480
- // fix function foo(...rest) {}
1481
- if (isFunction(parent.parent)) {
1482
- // remove unused rest in function parameter if there is only single parameter
1483
- if (parent.parent.params.length === 1) {
1484
- return fixer.removeRange(parent.range);
1485
- }
1486
-
1487
- // remove unused rest in function parameter if there multiple parameter
1488
- return fixer.removeRange([
1489
- getPreviousTokenStart(parent),
1490
- parent.range[1],
1491
- ]);
1492
- }
1493
- }
1494
-
1495
- if (parentType === "AssignmentPattern") {
1496
- // fix [a = aDefault]
1497
- if (parent.parent.type === "ArrayPattern") {
1498
- return fixNestedArrayVariable(parent);
1499
- }
1500
-
1501
- // fix {a = aDefault}
1502
- if (parent.parent.parent.type === "ObjectPattern") {
1503
- if (parent.parent.parent.properties.length === 1) {
1504
- // fixes [{a = aDefault}]
1505
- if (
1506
- parent.parent.parent.parent.type === "ArrayPattern"
1507
- ) {
1508
- return fixNestedArrayVariable(parent.parent.parent);
1509
- }
1510
-
1511
- // fix 'const {a = aDefault} = foo;' and 'function foo({a = aDefault}) {}'
1512
- return fixVariables(parent.parent.parent);
1513
- }
1514
-
1515
- // fix unused 'a' in {a = aDefault} if it is the first property
1516
- if (
1517
- getTokenBeforeValue(parent.parent) === "{" &&
1518
- getTokenAfterValue(parent.parent) === ","
1519
- ) {
1520
- return fixer.removeRange([
1521
- parent.parent.range[0],
1522
- getNextTokenEnd(parent.parent),
1523
- ]);
1524
- }
1525
-
1526
- // fix unused 'b' in {a, b = aDefault} if it is not the first property
1527
- return fixer.removeRange([
1528
- getPreviousTokenStart(parent.parent),
1529
- parent.parent.range[1],
1530
- ]);
1531
- }
1532
-
1533
- // fix unused assignment patterns in function parameters
1534
- if (isFunction(parent.parent)) {
1535
- return fixFunctionParameters(parent);
1536
- }
1537
- }
1538
-
1539
- // remove unused functions
1540
- if (parentType === "FunctionDeclaration" && parent.id === id) {
1541
- return fixer.removeRange(parent.range);
1542
- }
1543
-
1544
- // remove unused default import
1545
- if (parentType === "ImportDefaultSpecifier") {
1546
- // remove unused default import when there are not other imports
1547
- if (
1548
- !hasImportOfCertainType(parent.parent, "ImportSpecifier") &&
1549
- !hasImportOfCertainType(
1550
- parent.parent,
1551
- "ImportNamespaceSpecifier",
1552
- )
1553
- ) {
1554
- return fixer.removeRange([
1555
- parent.range[0],
1556
- parent.parent.source.range[0],
1557
- ]);
1558
- }
1559
-
1560
- // remove unused default import when there are other imports also
1561
- return fixer.removeRange([id.range[0], tokenAfter.range[1]]);
1562
- }
1563
-
1564
- if (parentType === "ImportSpecifier") {
1565
- // remove unused imports when there is a single import
1566
- if (
1567
- parent.parent.specifiers.filter(
1568
- e => e.type === "ImportSpecifier",
1569
- ).length === 1
1570
- ) {
1571
- // remove unused import when there is no default import
1572
- if (
1573
- !hasImportOfCertainType(
1574
- parent.parent,
1575
- "ImportDefaultSpecifier",
1576
- )
1577
- ) {
1578
- return fixer.removeRange(parent.parent.range);
1579
- }
1580
-
1581
- // fixes "import foo from 'module';" to "import 'module';"
1582
- return fixer.removeRange([
1583
- getPreviousTokenStart(parent, 1),
1584
- tokenAfter.range[1],
1585
- ]);
1586
- }
1587
-
1588
- if (getTokenBeforeValue(parent) === "{") {
1589
- return fixer.removeRange([
1590
- parent.range[0],
1591
- getNextTokenEnd(parent),
1592
- ]);
1593
- }
1594
-
1595
- return fixer.removeRange([
1596
- getPreviousTokenStart(parent),
1597
- parent.range[1],
1598
- ]);
1599
- }
1600
-
1601
- if (parentType === "ImportNamespaceSpecifier") {
1602
- if (
1603
- hasImportOfCertainType(
1604
- parent.parent,
1605
- "ImportDefaultSpecifier",
1606
- )
1607
- ) {
1608
- return fixer.removeRange([
1609
- getPreviousTokenStart(parent),
1610
- parent.range[1],
1611
- ]);
1612
- }
1613
-
1614
- // fixes "import * as foo from 'module';" to "import 'module';"
1615
- return fixer.removeRange([
1616
- parent.range[0],
1617
- parent.parent.source.range[0],
1618
- ]);
1619
- }
1620
-
1621
- // skip error in catch(error) variable
1622
- if (parentType === "CatchClause") {
1623
- return null;
1624
- }
1625
-
1626
- // remove unused declared classes
1627
- if (parentType === "ClassDeclaration") {
1628
- return fixer.removeRange(parent.range);
1629
- }
1630
-
1631
- // remove unused variable that is in a sequence [a,b] fixes to [a]
1632
- if (tokenBefore?.value === ",") {
1633
- return fixer.removeRange([tokenBefore.range[0], id.range[1]]);
1634
- }
1635
-
1636
- // remove unused variable that is in a sequence inside function arguments and object pattern
1637
- if (tokenAfter.value === ",") {
1638
- // fix function foo(a, b) {}
1639
- if (tokenBefore.value === "(") {
1640
- return fixer.removeRange([
1641
- id.range[0],
1642
- tokenAfter.range[1],
1643
- ]);
1644
- }
1645
-
1646
- // fix const {a, b} = foo;
1647
- if (tokenBefore.value === "{") {
1648
- return fixer.removeRange([
1649
- id.range[0],
1650
- tokenAfter.range[1],
1651
- ]);
1652
- }
1653
- }
1654
-
1655
- if (
1656
- parentType === "ArrowFunctionExpression" &&
1657
- parent.params.length === 1 &&
1658
- tokenAfter?.value !== ")"
1659
- ) {
1660
- return fixer.replaceText(id, "()");
1661
- }
1662
-
1663
- return fixer.removeRange(id.range);
1664
- }
1665
-
1666
- //--------------------------------------------------------------------------
1667
- // Public
1668
- //--------------------------------------------------------------------------
1669
-
1670
- return {
1671
- "Program:exit"(programNode) {
1672
- const unusedVars = collectUnusedVariables(
1673
- sourceCode.getScope(programNode),
1674
- [],
1675
- );
1676
-
1677
- for (let i = 0, l = unusedVars.length; i < l; ++i) {
1678
- const unusedVar = unusedVars[i];
1679
-
1680
- // Report the first declaration.
1681
- if (unusedVar.defs.length > 0) {
1682
- // report last write reference, https://github.com/eslint/eslint/issues/14324
1683
- const writeReferences = unusedVar.references.filter(
1684
- ref =>
1685
- ref.isWrite() &&
1686
- ref.from.variableScope ===
1687
- unusedVar.scope.variableScope,
1688
- );
1689
-
1690
- let referenceToReport;
1691
-
1692
- if (writeReferences.length > 0) {
1693
- referenceToReport = writeReferences.at(-1);
1694
- }
1695
-
1696
- context.report({
1697
- node: referenceToReport
1698
- ? referenceToReport.identifier
1699
- : unusedVar.identifiers[0],
1700
- messageId: "unusedVar",
1701
- data: unusedVar.references.some(ref =>
1702
- ref.isWrite(),
1703
- )
1704
- ? getAssignedMessageData(unusedVar)
1705
- : getDefinedMessageData(unusedVar),
1706
- suggest: [
1707
- {
1708
- messageId: "removeVar",
1709
- data: {
1710
- varName: unusedVar.name,
1711
- },
1712
- fix(fixer) {
1713
- return handleFixes(fixer, unusedVar);
1714
- },
1715
- },
1716
- ],
1717
- });
1718
-
1719
- // If there are no regular declaration, report the first `/*globals*/` comment directive.
1720
- } else if (unusedVar.eslintExplicitGlobalComments) {
1721
- const directiveComment =
1722
- unusedVar.eslintExplicitGlobalComments[0];
1723
-
1724
- context.report({
1725
- node: programNode,
1726
- loc: astUtils.getNameLocationInGlobalDirectiveComment(
1727
- sourceCode,
1728
- directiveComment,
1729
- unusedVar.name,
1730
- ),
1731
- messageId: "unusedVar",
1732
- data: getDefinedMessageData(unusedVar),
1733
- });
1734
- }
1735
- }
1736
- },
1737
- };
1738
- },
1739
- };