@alexlit/lint-kit 126.6.0 → 126.7.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 (597) hide show
  1. package/package.json +1 -1
  2. package/packages/config-eslint/node_modules/ajv/.tonic_example.js +20 -0
  3. package/packages/config-eslint/node_modules/ajv/LICENSE +22 -0
  4. package/packages/config-eslint/node_modules/ajv/README.md +1497 -0
  5. package/packages/config-eslint/node_modules/ajv/dist/ajv.bundle.js +7189 -0
  6. package/packages/config-eslint/node_modules/ajv/dist/ajv.min.js +3 -0
  7. package/packages/config-eslint/node_modules/ajv/dist/ajv.min.js.map +1 -0
  8. package/packages/config-eslint/node_modules/ajv/lib/ajv.d.ts +397 -0
  9. package/packages/config-eslint/node_modules/ajv/lib/ajv.js +506 -0
  10. package/packages/config-eslint/node_modules/ajv/lib/cache.js +26 -0
  11. package/packages/config-eslint/node_modules/ajv/lib/compile/async.js +90 -0
  12. package/packages/config-eslint/node_modules/ajv/lib/compile/equal.js +5 -0
  13. package/packages/config-eslint/node_modules/ajv/lib/compile/error_classes.js +34 -0
  14. package/packages/config-eslint/node_modules/ajv/lib/compile/formats.js +142 -0
  15. package/packages/config-eslint/node_modules/ajv/lib/compile/index.js +387 -0
  16. package/packages/config-eslint/node_modules/ajv/lib/compile/resolve.js +270 -0
  17. package/packages/config-eslint/node_modules/ajv/lib/compile/rules.js +66 -0
  18. package/packages/config-eslint/node_modules/ajv/lib/compile/schema_obj.js +9 -0
  19. package/packages/config-eslint/node_modules/ajv/lib/compile/ucs2length.js +20 -0
  20. package/packages/config-eslint/node_modules/ajv/lib/compile/util.js +239 -0
  21. package/packages/config-eslint/node_modules/ajv/lib/data.js +49 -0
  22. package/packages/config-eslint/node_modules/ajv/lib/definition_schema.js +37 -0
  23. package/packages/config-eslint/node_modules/ajv/lib/dot/_limit.jst +113 -0
  24. package/packages/config-eslint/node_modules/ajv/lib/dot/_limitItems.jst +12 -0
  25. package/packages/config-eslint/node_modules/ajv/lib/dot/_limitLength.jst +12 -0
  26. package/packages/config-eslint/node_modules/ajv/lib/dot/_limitProperties.jst +12 -0
  27. package/packages/config-eslint/node_modules/ajv/lib/dot/allOf.jst +32 -0
  28. package/packages/config-eslint/node_modules/ajv/lib/dot/anyOf.jst +46 -0
  29. package/packages/config-eslint/node_modules/ajv/lib/dot/coerce.def +51 -0
  30. package/packages/config-eslint/node_modules/ajv/lib/dot/comment.jst +9 -0
  31. package/packages/config-eslint/node_modules/ajv/lib/dot/const.jst +11 -0
  32. package/packages/config-eslint/node_modules/ajv/lib/dot/contains.jst +55 -0
  33. package/packages/config-eslint/node_modules/ajv/lib/dot/custom.jst +191 -0
  34. package/packages/config-eslint/node_modules/ajv/lib/dot/defaults.def +47 -0
  35. package/packages/config-eslint/node_modules/ajv/lib/dot/definitions.def +203 -0
  36. package/packages/config-eslint/node_modules/ajv/lib/dot/dependencies.jst +79 -0
  37. package/packages/config-eslint/node_modules/ajv/lib/dot/enum.jst +30 -0
  38. package/packages/config-eslint/node_modules/ajv/lib/dot/errors.def +194 -0
  39. package/packages/config-eslint/node_modules/ajv/lib/dot/format.jst +106 -0
  40. package/packages/config-eslint/node_modules/ajv/lib/dot/if.jst +73 -0
  41. package/packages/config-eslint/node_modules/ajv/lib/dot/items.jst +98 -0
  42. package/packages/config-eslint/node_modules/ajv/lib/dot/missing.def +39 -0
  43. package/packages/config-eslint/node_modules/ajv/lib/dot/multipleOf.jst +22 -0
  44. package/packages/config-eslint/node_modules/ajv/lib/dot/not.jst +43 -0
  45. package/packages/config-eslint/node_modules/ajv/lib/dot/oneOf.jst +54 -0
  46. package/packages/config-eslint/node_modules/ajv/lib/dot/pattern.jst +14 -0
  47. package/packages/config-eslint/node_modules/ajv/lib/dot/properties.jst +245 -0
  48. package/packages/config-eslint/node_modules/ajv/lib/dot/propertyNames.jst +52 -0
  49. package/packages/config-eslint/node_modules/ajv/lib/dot/ref.jst +85 -0
  50. package/packages/config-eslint/node_modules/ajv/lib/dot/required.jst +108 -0
  51. package/packages/config-eslint/node_modules/ajv/lib/dot/uniqueItems.jst +62 -0
  52. package/packages/config-eslint/node_modules/ajv/lib/dot/validate.jst +276 -0
  53. package/packages/config-eslint/node_modules/ajv/lib/dotjs/README.md +3 -0
  54. package/packages/config-eslint/node_modules/ajv/lib/dotjs/_limit.js +163 -0
  55. package/packages/config-eslint/node_modules/ajv/lib/dotjs/_limitItems.js +80 -0
  56. package/packages/config-eslint/node_modules/ajv/lib/dotjs/_limitLength.js +85 -0
  57. package/packages/config-eslint/node_modules/ajv/lib/dotjs/_limitProperties.js +80 -0
  58. package/packages/config-eslint/node_modules/ajv/lib/dotjs/allOf.js +42 -0
  59. package/packages/config-eslint/node_modules/ajv/lib/dotjs/anyOf.js +73 -0
  60. package/packages/config-eslint/node_modules/ajv/lib/dotjs/comment.js +14 -0
  61. package/packages/config-eslint/node_modules/ajv/lib/dotjs/const.js +56 -0
  62. package/packages/config-eslint/node_modules/ajv/lib/dotjs/contains.js +81 -0
  63. package/packages/config-eslint/node_modules/ajv/lib/dotjs/custom.js +228 -0
  64. package/packages/config-eslint/node_modules/ajv/lib/dotjs/dependencies.js +168 -0
  65. package/packages/config-eslint/node_modules/ajv/lib/dotjs/enum.js +66 -0
  66. package/packages/config-eslint/node_modules/ajv/lib/dotjs/format.js +150 -0
  67. package/packages/config-eslint/node_modules/ajv/lib/dotjs/if.js +103 -0
  68. package/packages/config-eslint/node_modules/ajv/lib/dotjs/index.js +33 -0
  69. package/packages/config-eslint/node_modules/ajv/lib/dotjs/items.js +140 -0
  70. package/packages/config-eslint/node_modules/ajv/lib/dotjs/multipleOf.js +80 -0
  71. package/packages/config-eslint/node_modules/ajv/lib/dotjs/not.js +84 -0
  72. package/packages/config-eslint/node_modules/ajv/lib/dotjs/oneOf.js +73 -0
  73. package/packages/config-eslint/node_modules/ajv/lib/dotjs/pattern.js +75 -0
  74. package/packages/config-eslint/node_modules/ajv/lib/dotjs/properties.js +335 -0
  75. package/packages/config-eslint/node_modules/ajv/lib/dotjs/propertyNames.js +81 -0
  76. package/packages/config-eslint/node_modules/ajv/lib/dotjs/ref.js +124 -0
  77. package/packages/config-eslint/node_modules/ajv/lib/dotjs/required.js +270 -0
  78. package/packages/config-eslint/node_modules/ajv/lib/dotjs/uniqueItems.js +86 -0
  79. package/packages/config-eslint/node_modules/ajv/lib/dotjs/validate.js +482 -0
  80. package/packages/config-eslint/node_modules/ajv/lib/keyword.js +146 -0
  81. package/packages/config-eslint/node_modules/ajv/lib/refs/data.json +17 -0
  82. package/packages/config-eslint/node_modules/ajv/lib/refs/json-schema-draft-04.json +149 -0
  83. package/packages/config-eslint/node_modules/ajv/lib/refs/json-schema-draft-06.json +154 -0
  84. package/packages/config-eslint/node_modules/ajv/lib/refs/json-schema-draft-07.json +168 -0
  85. package/packages/config-eslint/node_modules/ajv/lib/refs/json-schema-secure.json +94 -0
  86. package/packages/config-eslint/node_modules/ajv/package.json +106 -0
  87. package/packages/config-eslint/node_modules/ajv/scripts/.eslintrc.yml +3 -0
  88. package/packages/config-eslint/node_modules/ajv/scripts/bundle.js +61 -0
  89. package/packages/config-eslint/node_modules/ajv/scripts/compile-dots.js +73 -0
  90. package/packages/config-eslint/node_modules/ajv/scripts/info +10 -0
  91. package/packages/config-eslint/node_modules/ajv/scripts/prepare-tests +12 -0
  92. package/packages/config-eslint/node_modules/ajv/scripts/publish-built-version +32 -0
  93. package/packages/config-eslint/node_modules/ajv/scripts/travis-gh-pages +23 -0
  94. package/packages/config-eslint/node_modules/ansi-styles/index.d.ts +345 -0
  95. package/packages/config-eslint/node_modules/ansi-styles/index.js +163 -0
  96. package/packages/config-eslint/node_modules/ansi-styles/license +9 -0
  97. package/packages/config-eslint/node_modules/ansi-styles/package.json +56 -0
  98. package/packages/config-eslint/node_modules/ansi-styles/readme.md +152 -0
  99. package/packages/config-eslint/node_modules/chalk/index.d.ts +415 -0
  100. package/packages/config-eslint/node_modules/chalk/license +9 -0
  101. package/packages/config-eslint/node_modules/chalk/package.json +68 -0
  102. package/packages/config-eslint/node_modules/chalk/readme.md +341 -0
  103. package/packages/config-eslint/node_modules/chalk/source/index.js +229 -0
  104. package/packages/config-eslint/node_modules/chalk/source/templates.js +134 -0
  105. package/packages/config-eslint/node_modules/chalk/source/util.js +39 -0
  106. package/packages/config-eslint/node_modules/color-convert/CHANGELOG.md +54 -0
  107. package/packages/config-eslint/node_modules/color-convert/LICENSE +21 -0
  108. package/packages/config-eslint/node_modules/color-convert/README.md +68 -0
  109. package/packages/config-eslint/node_modules/color-convert/conversions.js +839 -0
  110. package/packages/config-eslint/node_modules/color-convert/index.js +81 -0
  111. package/packages/config-eslint/node_modules/color-convert/package.json +48 -0
  112. package/packages/config-eslint/node_modules/color-convert/route.js +97 -0
  113. package/packages/config-eslint/node_modules/color-name/LICENSE +8 -0
  114. package/packages/config-eslint/node_modules/color-name/README.md +11 -0
  115. package/packages/config-eslint/node_modules/color-name/index.js +152 -0
  116. package/packages/config-eslint/node_modules/color-name/package.json +28 -0
  117. package/packages/config-eslint/node_modules/eslint/LICENSE +19 -0
  118. package/packages/config-eslint/node_modules/eslint/README.md +306 -0
  119. package/packages/config-eslint/node_modules/eslint/bin/eslint.js +174 -0
  120. package/packages/config-eslint/node_modules/eslint/conf/default-cli-options.js +32 -0
  121. package/packages/config-eslint/node_modules/eslint/conf/ecma-version.js +16 -0
  122. package/packages/config-eslint/node_modules/eslint/conf/globals.js +160 -0
  123. package/packages/config-eslint/node_modules/eslint/conf/replacements.json +22 -0
  124. package/packages/config-eslint/node_modules/eslint/conf/rule-type-list.json +30 -0
  125. package/packages/config-eslint/node_modules/eslint/lib/api.js +50 -0
  126. package/packages/config-eslint/node_modules/eslint/lib/cli-engine/cli-engine.js +1089 -0
  127. package/packages/config-eslint/node_modules/eslint/lib/cli-engine/file-enumerator.js +547 -0
  128. package/packages/config-eslint/node_modules/eslint/lib/cli-engine/formatters/formatters-meta.json +18 -0
  129. package/packages/config-eslint/node_modules/eslint/lib/cli-engine/formatters/html.js +351 -0
  130. package/packages/config-eslint/node_modules/eslint/lib/cli-engine/formatters/json-with-metadata.js +16 -0
  131. package/packages/config-eslint/node_modules/eslint/lib/cli-engine/formatters/json.js +13 -0
  132. package/packages/config-eslint/node_modules/eslint/lib/cli-engine/formatters/stylish.js +101 -0
  133. package/packages/config-eslint/node_modules/eslint/lib/cli-engine/hash.js +35 -0
  134. package/packages/config-eslint/node_modules/eslint/lib/cli-engine/index.js +7 -0
  135. package/packages/config-eslint/node_modules/eslint/lib/cli-engine/lint-result-cache.js +203 -0
  136. package/packages/config-eslint/node_modules/eslint/lib/cli-engine/load-rules.js +46 -0
  137. package/packages/config-eslint/node_modules/eslint/lib/cli.js +552 -0
  138. package/packages/config-eslint/node_modules/eslint/lib/config/default-config.js +75 -0
  139. package/packages/config-eslint/node_modules/eslint/lib/config/flat-config-array.js +423 -0
  140. package/packages/config-eslint/node_modules/eslint/lib/config/flat-config-helpers.js +132 -0
  141. package/packages/config-eslint/node_modules/eslint/lib/config/flat-config-schema.js +576 -0
  142. package/packages/config-eslint/node_modules/eslint/lib/config/rule-validator.js +194 -0
  143. package/packages/config-eslint/node_modules/eslint/lib/eslint/eslint-helpers.js +975 -0
  144. package/packages/config-eslint/node_modules/eslint/lib/eslint/eslint.js +1307 -0
  145. package/packages/config-eslint/node_modules/eslint/lib/eslint/index.js +9 -0
  146. package/packages/config-eslint/node_modules/eslint/lib/eslint/legacy-eslint.js +742 -0
  147. package/packages/config-eslint/node_modules/eslint/lib/languages/js/index.js +252 -0
  148. package/packages/config-eslint/node_modules/eslint/lib/languages/js/source-code/index.js +7 -0
  149. package/packages/config-eslint/node_modules/eslint/lib/languages/js/source-code/source-code.js +1318 -0
  150. package/packages/config-eslint/node_modules/eslint/lib/languages/js/source-code/token-store/backward-token-comment-cursor.js +57 -0
  151. package/packages/config-eslint/node_modules/eslint/lib/languages/js/source-code/token-store/backward-token-cursor.js +58 -0
  152. package/packages/config-eslint/node_modules/eslint/lib/languages/js/source-code/token-store/cursor.js +76 -0
  153. package/packages/config-eslint/node_modules/eslint/lib/languages/js/source-code/token-store/cursors.js +92 -0
  154. package/packages/config-eslint/node_modules/eslint/lib/languages/js/source-code/token-store/decorative-cursor.js +39 -0
  155. package/packages/config-eslint/node_modules/eslint/lib/languages/js/source-code/token-store/filter-cursor.js +43 -0
  156. package/packages/config-eslint/node_modules/eslint/lib/languages/js/source-code/token-store/forward-token-comment-cursor.js +57 -0
  157. package/packages/config-eslint/node_modules/eslint/lib/languages/js/source-code/token-store/forward-token-cursor.js +63 -0
  158. package/packages/config-eslint/node_modules/eslint/lib/languages/js/source-code/token-store/index.js +627 -0
  159. package/packages/config-eslint/node_modules/eslint/lib/languages/js/source-code/token-store/limit-cursor.js +40 -0
  160. package/packages/config-eslint/node_modules/eslint/lib/languages/js/source-code/token-store/padded-token-cursor.js +38 -0
  161. package/packages/config-eslint/node_modules/eslint/lib/languages/js/source-code/token-store/skip-cursor.js +42 -0
  162. package/packages/config-eslint/node_modules/eslint/lib/languages/js/source-code/token-store/utils.js +107 -0
  163. package/packages/config-eslint/node_modules/eslint/lib/languages/js/validate-language-options.js +181 -0
  164. package/packages/config-eslint/node_modules/eslint/lib/linter/apply-disable-directives.js +513 -0
  165. package/packages/config-eslint/node_modules/eslint/lib/linter/code-path-analysis/code-path-analyzer.js +851 -0
  166. package/packages/config-eslint/node_modules/eslint/lib/linter/code-path-analysis/code-path-segment.js +263 -0
  167. package/packages/config-eslint/node_modules/eslint/lib/linter/code-path-analysis/code-path-state.js +2348 -0
  168. package/packages/config-eslint/node_modules/eslint/lib/linter/code-path-analysis/code-path.js +344 -0
  169. package/packages/config-eslint/node_modules/eslint/lib/linter/code-path-analysis/debug-helpers.js +203 -0
  170. package/packages/config-eslint/node_modules/eslint/lib/linter/code-path-analysis/fork-context.js +349 -0
  171. package/packages/config-eslint/node_modules/eslint/lib/linter/code-path-analysis/id-generator.js +45 -0
  172. package/packages/config-eslint/node_modules/eslint/lib/linter/config-comment-parser.js +169 -0
  173. package/packages/config-eslint/node_modules/eslint/lib/linter/index.js +11 -0
  174. package/packages/config-eslint/node_modules/eslint/lib/linter/interpolate.js +50 -0
  175. package/packages/config-eslint/node_modules/eslint/lib/linter/linter.js +2410 -0
  176. package/packages/config-eslint/node_modules/eslint/lib/linter/node-event-generator.js +352 -0
  177. package/packages/config-eslint/node_modules/eslint/lib/linter/report-translator.js +376 -0
  178. package/packages/config-eslint/node_modules/eslint/lib/linter/rule-fixer.js +163 -0
  179. package/packages/config-eslint/node_modules/eslint/lib/linter/rules.js +71 -0
  180. package/packages/config-eslint/node_modules/eslint/lib/linter/safe-emitter.js +52 -0
  181. package/packages/config-eslint/node_modules/eslint/lib/linter/source-code-fixer.js +152 -0
  182. package/packages/config-eslint/node_modules/eslint/lib/linter/timing.js +169 -0
  183. package/packages/config-eslint/node_modules/eslint/lib/linter/vfile.js +111 -0
  184. package/packages/config-eslint/node_modules/eslint/lib/options.js +442 -0
  185. package/packages/config-eslint/node_modules/eslint/lib/rule-tester/index.js +7 -0
  186. package/packages/config-eslint/node_modules/eslint/lib/rule-tester/rule-tester.js +1286 -0
  187. package/packages/config-eslint/node_modules/eslint/lib/rules/accessor-pairs.js +346 -0
  188. package/packages/config-eslint/node_modules/eslint/lib/rules/array-bracket-newline.js +261 -0
  189. package/packages/config-eslint/node_modules/eslint/lib/rules/array-bracket-spacing.js +244 -0
  190. package/packages/config-eslint/node_modules/eslint/lib/rules/array-callback-return.js +446 -0
  191. package/packages/config-eslint/node_modules/eslint/lib/rules/array-element-newline.js +311 -0
  192. package/packages/config-eslint/node_modules/eslint/lib/rules/arrow-body-style.js +296 -0
  193. package/packages/config-eslint/node_modules/eslint/lib/rules/arrow-parens.js +186 -0
  194. package/packages/config-eslint/node_modules/eslint/lib/rules/arrow-spacing.js +164 -0
  195. package/packages/config-eslint/node_modules/eslint/lib/rules/block-scoped-var.js +135 -0
  196. package/packages/config-eslint/node_modules/eslint/lib/rules/block-spacing.js +174 -0
  197. package/packages/config-eslint/node_modules/eslint/lib/rules/brace-style.js +197 -0
  198. package/packages/config-eslint/node_modules/eslint/lib/rules/callback-return.js +187 -0
  199. package/packages/config-eslint/node_modules/eslint/lib/rules/camelcase.js +397 -0
  200. package/packages/config-eslint/node_modules/eslint/lib/rules/capitalized-comments.js +303 -0
  201. package/packages/config-eslint/node_modules/eslint/lib/rules/class-methods-use-this.js +187 -0
  202. package/packages/config-eslint/node_modules/eslint/lib/rules/comma-dangle.js +373 -0
  203. package/packages/config-eslint/node_modules/eslint/lib/rules/comma-spacing.js +192 -0
  204. package/packages/config-eslint/node_modules/eslint/lib/rules/comma-style.js +314 -0
  205. package/packages/config-eslint/node_modules/eslint/lib/rules/complexity.js +178 -0
  206. package/packages/config-eslint/node_modules/eslint/lib/rules/computed-property-spacing.js +208 -0
  207. package/packages/config-eslint/node_modules/eslint/lib/rules/consistent-return.js +210 -0
  208. package/packages/config-eslint/node_modules/eslint/lib/rules/consistent-this.js +153 -0
  209. package/packages/config-eslint/node_modules/eslint/lib/rules/constructor-super.js +445 -0
  210. package/packages/config-eslint/node_modules/eslint/lib/rules/curly.js +486 -0
  211. package/packages/config-eslint/node_modules/eslint/lib/rules/default-case-last.js +44 -0
  212. package/packages/config-eslint/node_modules/eslint/lib/rules/default-case.js +97 -0
  213. package/packages/config-eslint/node_modules/eslint/lib/rules/default-param-last.js +62 -0
  214. package/packages/config-eslint/node_modules/eslint/lib/rules/dot-location.js +108 -0
  215. package/packages/config-eslint/node_modules/eslint/lib/rules/dot-notation.js +176 -0
  216. package/packages/config-eslint/node_modules/eslint/lib/rules/eol-last.js +115 -0
  217. package/packages/config-eslint/node_modules/eslint/lib/rules/eqeqeq.js +174 -0
  218. package/packages/config-eslint/node_modules/eslint/lib/rules/for-direction.js +140 -0
  219. package/packages/config-eslint/node_modules/eslint/lib/rules/func-call-spacing.js +233 -0
  220. package/packages/config-eslint/node_modules/eslint/lib/rules/func-name-matching.js +253 -0
  221. package/packages/config-eslint/node_modules/eslint/lib/rules/func-names.js +191 -0
  222. package/packages/config-eslint/node_modules/eslint/lib/rules/func-style.js +136 -0
  223. package/packages/config-eslint/node_modules/eslint/lib/rules/function-call-argument-newline.js +125 -0
  224. package/packages/config-eslint/node_modules/eslint/lib/rules/function-paren-newline.js +292 -0
  225. package/packages/config-eslint/node_modules/eslint/lib/rules/generator-star-spacing.js +209 -0
  226. package/packages/config-eslint/node_modules/eslint/lib/rules/getter-return.js +204 -0
  227. package/packages/config-eslint/node_modules/eslint/lib/rules/global-require.js +90 -0
  228. package/packages/config-eslint/node_modules/eslint/lib/rules/grouped-accessor-pairs.js +215 -0
  229. package/packages/config-eslint/node_modules/eslint/lib/rules/guard-for-in.js +76 -0
  230. package/packages/config-eslint/node_modules/eslint/lib/rules/handle-callback-err.js +101 -0
  231. package/packages/config-eslint/node_modules/eslint/lib/rules/id-blacklist.js +246 -0
  232. package/packages/config-eslint/node_modules/eslint/lib/rules/id-denylist.js +228 -0
  233. package/packages/config-eslint/node_modules/eslint/lib/rules/id-length.js +177 -0
  234. package/packages/config-eslint/node_modules/eslint/lib/rules/id-match.js +299 -0
  235. package/packages/config-eslint/node_modules/eslint/lib/rules/implicit-arrow-linebreak.js +84 -0
  236. package/packages/config-eslint/node_modules/eslint/lib/rules/indent-legacy.js +1126 -0
  237. package/packages/config-eslint/node_modules/eslint/lib/rules/indent.js +1803 -0
  238. package/packages/config-eslint/node_modules/eslint/lib/rules/index.js +305 -0
  239. package/packages/config-eslint/node_modules/eslint/lib/rules/init-declarations.js +139 -0
  240. package/packages/config-eslint/node_modules/eslint/lib/rules/jsx-quotes.js +98 -0
  241. package/packages/config-eslint/node_modules/eslint/lib/rules/key-spacing.js +687 -0
  242. package/packages/config-eslint/node_modules/eslint/lib/rules/keyword-spacing.js +640 -0
  243. package/packages/config-eslint/node_modules/eslint/lib/rules/line-comment-position.js +125 -0
  244. package/packages/config-eslint/node_modules/eslint/lib/rules/linebreak-style.js +108 -0
  245. package/packages/config-eslint/node_modules/eslint/lib/rules/lines-around-comment.js +471 -0
  246. package/packages/config-eslint/node_modules/eslint/lib/rules/lines-around-directive.js +201 -0
  247. package/packages/config-eslint/node_modules/eslint/lib/rules/lines-between-class-members.js +269 -0
  248. package/packages/config-eslint/node_modules/eslint/lib/rules/logical-assignment-operators.js +504 -0
  249. package/packages/config-eslint/node_modules/eslint/lib/rules/max-classes-per-file.js +89 -0
  250. package/packages/config-eslint/node_modules/eslint/lib/rules/max-depth.js +156 -0
  251. package/packages/config-eslint/node_modules/eslint/lib/rules/max-len.js +440 -0
  252. package/packages/config-eslint/node_modules/eslint/lib/rules/max-lines-per-function.js +213 -0
  253. package/packages/config-eslint/node_modules/eslint/lib/rules/max-lines.js +193 -0
  254. package/packages/config-eslint/node_modules/eslint/lib/rules/max-nested-callbacks.js +117 -0
  255. package/packages/config-eslint/node_modules/eslint/lib/rules/max-params.js +102 -0
  256. package/packages/config-eslint/node_modules/eslint/lib/rules/max-statements-per-line.js +199 -0
  257. package/packages/config-eslint/node_modules/eslint/lib/rules/max-statements.js +184 -0
  258. package/packages/config-eslint/node_modules/eslint/lib/rules/multiline-comment-style.js +476 -0
  259. package/packages/config-eslint/node_modules/eslint/lib/rules/multiline-ternary.js +174 -0
  260. package/packages/config-eslint/node_modules/eslint/lib/rules/new-cap.js +276 -0
  261. package/packages/config-eslint/node_modules/eslint/lib/rules/new-parens.js +93 -0
  262. package/packages/config-eslint/node_modules/eslint/lib/rules/newline-after-var.js +253 -0
  263. package/packages/config-eslint/node_modules/eslint/lib/rules/newline-before-return.js +217 -0
  264. package/packages/config-eslint/node_modules/eslint/lib/rules/newline-per-chained-call.js +126 -0
  265. package/packages/config-eslint/node_modules/eslint/lib/rules/no-alert.js +138 -0
  266. package/packages/config-eslint/node_modules/eslint/lib/rules/no-array-constructor.js +133 -0
  267. package/packages/config-eslint/node_modules/eslint/lib/rules/no-async-promise-executor.js +39 -0
  268. package/packages/config-eslint/node_modules/eslint/lib/rules/no-await-in-loop.js +106 -0
  269. package/packages/config-eslint/node_modules/eslint/lib/rules/no-bitwise.js +119 -0
  270. package/packages/config-eslint/node_modules/eslint/lib/rules/no-buffer-constructor.js +50 -0
  271. package/packages/config-eslint/node_modules/eslint/lib/rules/no-caller.js +46 -0
  272. package/packages/config-eslint/node_modules/eslint/lib/rules/no-case-declarations.js +76 -0
  273. package/packages/config-eslint/node_modules/eslint/lib/rules/no-catch-shadow.js +82 -0
  274. package/packages/config-eslint/node_modules/eslint/lib/rules/no-class-assign.js +63 -0
  275. package/packages/config-eslint/node_modules/eslint/lib/rules/no-compare-neg-zero.js +60 -0
  276. package/packages/config-eslint/node_modules/eslint/lib/rules/no-cond-assign.js +159 -0
  277. package/packages/config-eslint/node_modules/eslint/lib/rules/no-confusing-arrow.js +92 -0
  278. package/packages/config-eslint/node_modules/eslint/lib/rules/no-console.js +207 -0
  279. package/packages/config-eslint/node_modules/eslint/lib/rules/no-const-assign.js +56 -0
  280. package/packages/config-eslint/node_modules/eslint/lib/rules/no-constant-binary-expression.js +508 -0
  281. package/packages/config-eslint/node_modules/eslint/lib/rules/no-constant-condition.js +161 -0
  282. package/packages/config-eslint/node_modules/eslint/lib/rules/no-constructor-return.js +62 -0
  283. package/packages/config-eslint/node_modules/eslint/lib/rules/no-continue.js +39 -0
  284. package/packages/config-eslint/node_modules/eslint/lib/rules/no-control-regex.js +138 -0
  285. package/packages/config-eslint/node_modules/eslint/lib/rules/no-debugger.js +43 -0
  286. package/packages/config-eslint/node_modules/eslint/lib/rules/no-delete-var.js +42 -0
  287. package/packages/config-eslint/node_modules/eslint/lib/rules/no-div-regex.js +53 -0
  288. package/packages/config-eslint/node_modules/eslint/lib/rules/no-dupe-args.js +82 -0
  289. package/packages/config-eslint/node_modules/eslint/lib/rules/no-dupe-class-members.js +104 -0
  290. package/packages/config-eslint/node_modules/eslint/lib/rules/no-dupe-else-if.js +122 -0
  291. package/packages/config-eslint/node_modules/eslint/lib/rules/no-dupe-keys.js +142 -0
  292. package/packages/config-eslint/node_modules/eslint/lib/rules/no-duplicate-case.js +71 -0
  293. package/packages/config-eslint/node_modules/eslint/lib/rules/no-duplicate-imports.js +290 -0
  294. package/packages/config-eslint/node_modules/eslint/lib/rules/no-else-return.js +405 -0
  295. package/packages/config-eslint/node_modules/eslint/lib/rules/no-empty-character-class.js +76 -0
  296. package/packages/config-eslint/node_modules/eslint/lib/rules/no-empty-function.js +167 -0
  297. package/packages/config-eslint/node_modules/eslint/lib/rules/no-empty-pattern.js +78 -0
  298. package/packages/config-eslint/node_modules/eslint/lib/rules/no-empty-static-block.js +47 -0
  299. package/packages/config-eslint/node_modules/eslint/lib/rules/no-empty.js +103 -0
  300. package/packages/config-eslint/node_modules/eslint/lib/rules/no-eq-null.js +46 -0
  301. package/packages/config-eslint/node_modules/eslint/lib/rules/no-eval.js +286 -0
  302. package/packages/config-eslint/node_modules/eslint/lib/rules/no-ex-assign.js +54 -0
  303. package/packages/config-eslint/node_modules/eslint/lib/rules/no-extend-native.js +178 -0
  304. package/packages/config-eslint/node_modules/eslint/lib/rules/no-extra-bind.js +213 -0
  305. package/packages/config-eslint/node_modules/eslint/lib/rules/no-extra-boolean-cast.js +369 -0
  306. package/packages/config-eslint/node_modules/eslint/lib/rules/no-extra-label.js +149 -0
  307. package/packages/config-eslint/node_modules/eslint/lib/rules/no-extra-parens.js +1322 -0
  308. package/packages/config-eslint/node_modules/eslint/lib/rules/no-extra-semi.js +147 -0
  309. package/packages/config-eslint/node_modules/eslint/lib/rules/no-fallthrough.js +221 -0
  310. package/packages/config-eslint/node_modules/eslint/lib/rules/no-floating-decimal.js +73 -0
  311. package/packages/config-eslint/node_modules/eslint/lib/rules/no-func-assign.js +78 -0
  312. package/packages/config-eslint/node_modules/eslint/lib/rules/no-global-assign.js +95 -0
  313. package/packages/config-eslint/node_modules/eslint/lib/rules/no-implicit-coercion.js +422 -0
  314. package/packages/config-eslint/node_modules/eslint/lib/rules/no-implicit-globals.js +146 -0
  315. package/packages/config-eslint/node_modules/eslint/lib/rules/no-implied-eval.js +132 -0
  316. package/packages/config-eslint/node_modules/eslint/lib/rules/no-import-assign.js +241 -0
  317. package/packages/config-eslint/node_modules/eslint/lib/rules/no-inline-comments.js +110 -0
  318. package/packages/config-eslint/node_modules/eslint/lib/rules/no-inner-declarations.js +131 -0
  319. package/packages/config-eslint/node_modules/eslint/lib/rules/no-invalid-regexp.js +194 -0
  320. package/packages/config-eslint/node_modules/eslint/lib/rules/no-invalid-this.js +150 -0
  321. package/packages/config-eslint/node_modules/eslint/lib/rules/no-irregular-whitespace.js +276 -0
  322. package/packages/config-eslint/node_modules/eslint/lib/rules/no-iterator.js +52 -0
  323. package/packages/config-eslint/node_modules/eslint/lib/rules/no-label-var.js +80 -0
  324. package/packages/config-eslint/node_modules/eslint/lib/rules/no-labels.js +149 -0
  325. package/packages/config-eslint/node_modules/eslint/lib/rules/no-lone-blocks.js +136 -0
  326. package/packages/config-eslint/node_modules/eslint/lib/rules/no-lonely-if.js +88 -0
  327. package/packages/config-eslint/node_modules/eslint/lib/rules/no-loop-func.js +238 -0
  328. package/packages/config-eslint/node_modules/eslint/lib/rules/no-loss-of-precision.js +214 -0
  329. package/packages/config-eslint/node_modules/eslint/lib/rules/no-magic-numbers.js +243 -0
  330. package/packages/config-eslint/node_modules/eslint/lib/rules/no-misleading-character-class.js +537 -0
  331. package/packages/config-eslint/node_modules/eslint/lib/rules/no-mixed-operators.js +229 -0
  332. package/packages/config-eslint/node_modules/eslint/lib/rules/no-mixed-requires.js +238 -0
  333. package/packages/config-eslint/node_modules/eslint/lib/rules/no-mixed-spaces-and-tabs.js +116 -0
  334. package/packages/config-eslint/node_modules/eslint/lib/rules/no-multi-assign.js +67 -0
  335. package/packages/config-eslint/node_modules/eslint/lib/rules/no-multi-spaces.js +141 -0
  336. package/packages/config-eslint/node_modules/eslint/lib/rules/no-multi-str.js +65 -0
  337. package/packages/config-eslint/node_modules/eslint/lib/rules/no-multiple-empty-lines.js +154 -0
  338. package/packages/config-eslint/node_modules/eslint/lib/rules/no-native-reassign.js +98 -0
  339. package/packages/config-eslint/node_modules/eslint/lib/rules/no-negated-condition.js +95 -0
  340. package/packages/config-eslint/node_modules/eslint/lib/rules/no-negated-in-lhs.js +46 -0
  341. package/packages/config-eslint/node_modules/eslint/lib/rules/no-nested-ternary.js +44 -0
  342. package/packages/config-eslint/node_modules/eslint/lib/rules/no-new-func.js +87 -0
  343. package/packages/config-eslint/node_modules/eslint/lib/rules/no-new-native-nonconstructor.js +66 -0
  344. package/packages/config-eslint/node_modules/eslint/lib/rules/no-new-object.js +67 -0
  345. package/packages/config-eslint/node_modules/eslint/lib/rules/no-new-require.js +50 -0
  346. package/packages/config-eslint/node_modules/eslint/lib/rules/no-new-symbol.js +63 -0
  347. package/packages/config-eslint/node_modules/eslint/lib/rules/no-new-wrappers.js +60 -0
  348. package/packages/config-eslint/node_modules/eslint/lib/rules/no-new.js +43 -0
  349. package/packages/config-eslint/node_modules/eslint/lib/rules/no-nonoctal-decimal-escape.js +148 -0
  350. package/packages/config-eslint/node_modules/eslint/lib/rules/no-obj-calls.js +86 -0
  351. package/packages/config-eslint/node_modules/eslint/lib/rules/no-object-constructor.js +117 -0
  352. package/packages/config-eslint/node_modules/eslint/lib/rules/no-octal-escape.js +56 -0
  353. package/packages/config-eslint/node_modules/eslint/lib/rules/no-octal.js +45 -0
  354. package/packages/config-eslint/node_modules/eslint/lib/rules/no-param-reassign.js +230 -0
  355. package/packages/config-eslint/node_modules/eslint/lib/rules/no-path-concat.js +64 -0
  356. package/packages/config-eslint/node_modules/eslint/lib/rules/no-plusplus.js +105 -0
  357. package/packages/config-eslint/node_modules/eslint/lib/rules/no-process-env.js +51 -0
  358. package/packages/config-eslint/node_modules/eslint/lib/rules/no-process-exit.js +47 -0
  359. package/packages/config-eslint/node_modules/eslint/lib/rules/no-promise-executor-return.js +263 -0
  360. package/packages/config-eslint/node_modules/eslint/lib/rules/no-proto.js +48 -0
  361. package/packages/config-eslint/node_modules/eslint/lib/rules/no-prototype-builtins.js +159 -0
  362. package/packages/config-eslint/node_modules/eslint/lib/rules/no-redeclare.js +174 -0
  363. package/packages/config-eslint/node_modules/eslint/lib/rules/no-regex-spaces.js +197 -0
  364. package/packages/config-eslint/node_modules/eslint/lib/rules/no-restricted-exports.js +204 -0
  365. package/packages/config-eslint/node_modules/eslint/lib/rules/no-restricted-globals.js +124 -0
  366. package/packages/config-eslint/node_modules/eslint/lib/rules/no-restricted-imports.js +563 -0
  367. package/packages/config-eslint/node_modules/eslint/lib/rules/no-restricted-modules.js +213 -0
  368. package/packages/config-eslint/node_modules/eslint/lib/rules/no-restricted-properties.js +168 -0
  369. package/packages/config-eslint/node_modules/eslint/lib/rules/no-restricted-syntax.js +70 -0
  370. package/packages/config-eslint/node_modules/eslint/lib/rules/no-return-assign.js +80 -0
  371. package/packages/config-eslint/node_modules/eslint/lib/rules/no-return-await.js +135 -0
  372. package/packages/config-eslint/node_modules/eslint/lib/rules/no-script-url.js +61 -0
  373. package/packages/config-eslint/node_modules/eslint/lib/rules/no-self-assign.js +183 -0
  374. package/packages/config-eslint/node_modules/eslint/lib/rules/no-self-compare.js +60 -0
  375. package/packages/config-eslint/node_modules/eslint/lib/rules/no-sequences.js +139 -0
  376. package/packages/config-eslint/node_modules/eslint/lib/rules/no-setter-return.js +226 -0
  377. package/packages/config-eslint/node_modules/eslint/lib/rules/no-shadow-restricted-names.js +65 -0
  378. package/packages/config-eslint/node_modules/eslint/lib/rules/no-shadow.js +336 -0
  379. package/packages/config-eslint/node_modules/eslint/lib/rules/no-spaced-func.js +83 -0
  380. package/packages/config-eslint/node_modules/eslint/lib/rules/no-sparse-arrays.js +73 -0
  381. package/packages/config-eslint/node_modules/eslint/lib/rules/no-sync.js +64 -0
  382. package/packages/config-eslint/node_modules/eslint/lib/rules/no-tabs.js +81 -0
  383. package/packages/config-eslint/node_modules/eslint/lib/rules/no-template-curly-in-string.js +44 -0
  384. package/packages/config-eslint/node_modules/eslint/lib/rules/no-ternary.js +41 -0
  385. package/packages/config-eslint/node_modules/eslint/lib/rules/no-this-before-super.js +363 -0
  386. package/packages/config-eslint/node_modules/eslint/lib/rules/no-throw-literal.js +51 -0
  387. package/packages/config-eslint/node_modules/eslint/lib/rules/no-trailing-spaces.js +192 -0
  388. package/packages/config-eslint/node_modules/eslint/lib/rules/no-undef-init.js +75 -0
  389. package/packages/config-eslint/node_modules/eslint/lib/rules/no-undef.js +79 -0
  390. package/packages/config-eslint/node_modules/eslint/lib/rules/no-undefined.js +86 -0
  391. package/packages/config-eslint/node_modules/eslint/lib/rules/no-underscore-dangle.js +335 -0
  392. package/packages/config-eslint/node_modules/eslint/lib/rules/no-unexpected-multiline.js +120 -0
  393. package/packages/config-eslint/node_modules/eslint/lib/rules/no-unmodified-loop-condition.js +360 -0
  394. package/packages/config-eslint/node_modules/eslint/lib/rules/no-unneeded-ternary.js +166 -0
  395. package/packages/config-eslint/node_modules/eslint/lib/rules/no-unreachable-loop.js +185 -0
  396. package/packages/config-eslint/node_modules/eslint/lib/rules/no-unreachable.js +293 -0
  397. package/packages/config-eslint/node_modules/eslint/lib/rules/no-unsafe-finally.js +111 -0
  398. package/packages/config-eslint/node_modules/eslint/lib/rules/no-unsafe-negation.js +128 -0
  399. package/packages/config-eslint/node_modules/eslint/lib/rules/no-unsafe-optional-chaining.js +205 -0
  400. package/packages/config-eslint/node_modules/eslint/lib/rules/no-unused-expressions.js +186 -0
  401. package/packages/config-eslint/node_modules/eslint/lib/rules/no-unused-labels.js +143 -0
  402. package/packages/config-eslint/node_modules/eslint/lib/rules/no-unused-private-class-members.js +195 -0
  403. package/packages/config-eslint/node_modules/eslint/lib/rules/no-unused-vars.js +881 -0
  404. package/packages/config-eslint/node_modules/eslint/lib/rules/no-use-before-define.js +348 -0
  405. package/packages/config-eslint/node_modules/eslint/lib/rules/no-useless-assignment.js +566 -0
  406. package/packages/config-eslint/node_modules/eslint/lib/rules/no-useless-backreference.js +244 -0
  407. package/packages/config-eslint/node_modules/eslint/lib/rules/no-useless-call.js +90 -0
  408. package/packages/config-eslint/node_modules/eslint/lib/rules/no-useless-catch.js +57 -0
  409. package/packages/config-eslint/node_modules/eslint/lib/rules/no-useless-computed-key.js +168 -0
  410. package/packages/config-eslint/node_modules/eslint/lib/rules/no-useless-concat.js +115 -0
  411. package/packages/config-eslint/node_modules/eslint/lib/rules/no-useless-constructor.js +189 -0
  412. package/packages/config-eslint/node_modules/eslint/lib/rules/no-useless-escape.js +333 -0
  413. package/packages/config-eslint/node_modules/eslint/lib/rules/no-useless-rename.js +172 -0
  414. package/packages/config-eslint/node_modules/eslint/lib/rules/no-useless-return.js +369 -0
  415. package/packages/config-eslint/node_modules/eslint/lib/rules/no-var.js +334 -0
  416. package/packages/config-eslint/node_modules/eslint/lib/rules/no-void.js +64 -0
  417. package/packages/config-eslint/node_modules/eslint/lib/rules/no-warning-comments.js +201 -0
  418. package/packages/config-eslint/node_modules/eslint/lib/rules/no-whitespace-before-property.js +116 -0
  419. package/packages/config-eslint/node_modules/eslint/lib/rules/no-with.js +39 -0
  420. package/packages/config-eslint/node_modules/eslint/lib/rules/nonblock-statement-body-position.js +127 -0
  421. package/packages/config-eslint/node_modules/eslint/lib/rules/object-curly-newline.js +324 -0
  422. package/packages/config-eslint/node_modules/eslint/lib/rules/object-curly-spacing.js +311 -0
  423. package/packages/config-eslint/node_modules/eslint/lib/rules/object-property-newline.js +102 -0
  424. package/packages/config-eslint/node_modules/eslint/lib/rules/object-shorthand.js +521 -0
  425. package/packages/config-eslint/node_modules/eslint/lib/rules/one-var-declaration-per-line.js +95 -0
  426. package/packages/config-eslint/node_modules/eslint/lib/rules/one-var.js +567 -0
  427. package/packages/config-eslint/node_modules/eslint/lib/rules/operator-assignment.js +209 -0
  428. package/packages/config-eslint/node_modules/eslint/lib/rules/operator-linebreak.js +253 -0
  429. package/packages/config-eslint/node_modules/eslint/lib/rules/padded-blocks.js +310 -0
  430. package/packages/config-eslint/node_modules/eslint/lib/rules/padding-line-between-statements.js +590 -0
  431. package/packages/config-eslint/node_modules/eslint/lib/rules/prefer-arrow-callback.js +381 -0
  432. package/packages/config-eslint/node_modules/eslint/lib/rules/prefer-const.js +501 -0
  433. package/packages/config-eslint/node_modules/eslint/lib/rules/prefer-destructuring.js +301 -0
  434. package/packages/config-eslint/node_modules/eslint/lib/rules/prefer-exponentiation-operator.js +191 -0
  435. package/packages/config-eslint/node_modules/eslint/lib/rules/prefer-named-capture-group.js +178 -0
  436. package/packages/config-eslint/node_modules/eslint/lib/rules/prefer-numeric-literals.js +148 -0
  437. package/packages/config-eslint/node_modules/eslint/lib/rules/prefer-object-has-own.js +114 -0
  438. package/packages/config-eslint/node_modules/eslint/lib/rules/prefer-object-spread.js +298 -0
  439. package/packages/config-eslint/node_modules/eslint/lib/rules/prefer-promise-reject-errors.js +132 -0
  440. package/packages/config-eslint/node_modules/eslint/lib/rules/prefer-reflect.js +127 -0
  441. package/packages/config-eslint/node_modules/eslint/lib/rules/prefer-regex-literals.js +507 -0
  442. package/packages/config-eslint/node_modules/eslint/lib/rules/prefer-rest-params.js +118 -0
  443. package/packages/config-eslint/node_modules/eslint/lib/rules/prefer-spread.js +87 -0
  444. package/packages/config-eslint/node_modules/eslint/lib/rules/prefer-template.js +275 -0
  445. package/packages/config-eslint/node_modules/eslint/lib/rules/quote-props.js +310 -0
  446. package/packages/config-eslint/node_modules/eslint/lib/rules/quotes.js +350 -0
  447. package/packages/config-eslint/node_modules/eslint/lib/rules/radix.js +198 -0
  448. package/packages/config-eslint/node_modules/eslint/lib/rules/require-atomic-updates.js +331 -0
  449. package/packages/config-eslint/node_modules/eslint/lib/rules/require-await.js +147 -0
  450. package/packages/config-eslint/node_modules/eslint/lib/rules/require-unicode-regexp.js +129 -0
  451. package/packages/config-eslint/node_modules/eslint/lib/rules/require-yield.js +77 -0
  452. package/packages/config-eslint/node_modules/eslint/lib/rules/rest-spread-spacing.js +123 -0
  453. package/packages/config-eslint/node_modules/eslint/lib/rules/semi-spacing.js +248 -0
  454. package/packages/config-eslint/node_modules/eslint/lib/rules/semi-style.js +158 -0
  455. package/packages/config-eslint/node_modules/eslint/lib/rules/semi.js +438 -0
  456. package/packages/config-eslint/node_modules/eslint/lib/rules/sort-imports.js +241 -0
  457. package/packages/config-eslint/node_modules/eslint/lib/rules/sort-keys.js +230 -0
  458. package/packages/config-eslint/node_modules/eslint/lib/rules/sort-vars.js +104 -0
  459. package/packages/config-eslint/node_modules/eslint/lib/rules/space-before-blocks.js +204 -0
  460. package/packages/config-eslint/node_modules/eslint/lib/rules/space-before-function-paren.js +167 -0
  461. package/packages/config-eslint/node_modules/eslint/lib/rules/space-in-parens.js +285 -0
  462. package/packages/config-eslint/node_modules/eslint/lib/rules/space-infix-ops.js +198 -0
  463. package/packages/config-eslint/node_modules/eslint/lib/rules/space-unary-ops.js +324 -0
  464. package/packages/config-eslint/node_modules/eslint/lib/rules/spaced-comment.js +385 -0
  465. package/packages/config-eslint/node_modules/eslint/lib/rules/strict.js +277 -0
  466. package/packages/config-eslint/node_modules/eslint/lib/rules/switch-colon-spacing.js +132 -0
  467. package/packages/config-eslint/node_modules/eslint/lib/rules/symbol-description.js +73 -0
  468. package/packages/config-eslint/node_modules/eslint/lib/rules/template-curly-spacing.js +144 -0
  469. package/packages/config-eslint/node_modules/eslint/lib/rules/template-tag-spacing.js +93 -0
  470. package/packages/config-eslint/node_modules/eslint/lib/rules/unicode-bom.js +73 -0
  471. package/packages/config-eslint/node_modules/eslint/lib/rules/use-isnan.js +235 -0
  472. package/packages/config-eslint/node_modules/eslint/lib/rules/utils/ast-utils.js +2292 -0
  473. package/packages/config-eslint/node_modules/eslint/lib/rules/utils/char-source.js +240 -0
  474. package/packages/config-eslint/node_modules/eslint/lib/rules/utils/fix-tracker.js +114 -0
  475. package/packages/config-eslint/node_modules/eslint/lib/rules/utils/keywords.js +67 -0
  476. package/packages/config-eslint/node_modules/eslint/lib/rules/utils/lazy-loading-rule-map.js +115 -0
  477. package/packages/config-eslint/node_modules/eslint/lib/rules/utils/regular-expressions.js +42 -0
  478. package/packages/config-eslint/node_modules/eslint/lib/rules/utils/unicode/index.js +16 -0
  479. package/packages/config-eslint/node_modules/eslint/lib/rules/utils/unicode/is-combining-character.js +13 -0
  480. package/packages/config-eslint/node_modules/eslint/lib/rules/utils/unicode/is-emoji-modifier.js +13 -0
  481. package/packages/config-eslint/node_modules/eslint/lib/rules/utils/unicode/is-regional-indicator-symbol.js +13 -0
  482. package/packages/config-eslint/node_modules/eslint/lib/rules/utils/unicode/is-surrogate-pair.js +14 -0
  483. package/packages/config-eslint/node_modules/eslint/lib/rules/valid-typeof.js +127 -0
  484. package/packages/config-eslint/node_modules/eslint/lib/rules/vars-on-top.js +157 -0
  485. package/packages/config-eslint/node_modules/eslint/lib/rules/wrap-iife.js +207 -0
  486. package/packages/config-eslint/node_modules/eslint/lib/rules/wrap-regex.js +61 -0
  487. package/packages/config-eslint/node_modules/eslint/lib/rules/yield-star-spacing.js +130 -0
  488. package/packages/config-eslint/node_modules/eslint/lib/rules/yoda.js +353 -0
  489. package/packages/config-eslint/node_modules/eslint/lib/shared/ajv.js +34 -0
  490. package/packages/config-eslint/node_modules/eslint/lib/shared/ast-utils.js +29 -0
  491. package/packages/config-eslint/node_modules/eslint/lib/shared/directives.js +15 -0
  492. package/packages/config-eslint/node_modules/eslint/lib/shared/flags.js +27 -0
  493. package/packages/config-eslint/node_modules/eslint/lib/shared/logging.js +39 -0
  494. package/packages/config-eslint/node_modules/eslint/lib/shared/runtime-info.js +168 -0
  495. package/packages/config-eslint/node_modules/eslint/lib/shared/serialization.js +55 -0
  496. package/packages/config-eslint/node_modules/eslint/lib/shared/severity.js +49 -0
  497. package/packages/config-eslint/node_modules/eslint/lib/shared/stats.js +30 -0
  498. package/packages/config-eslint/node_modules/eslint/lib/shared/string-utils.js +58 -0
  499. package/packages/config-eslint/node_modules/eslint/lib/shared/traverser.js +195 -0
  500. package/packages/config-eslint/node_modules/eslint/lib/shared/types.js +250 -0
  501. package/packages/config-eslint/node_modules/eslint/lib/unsupported-api.js +28 -0
  502. package/packages/config-eslint/node_modules/eslint/messages/all-files-ignored.js +16 -0
  503. package/packages/config-eslint/node_modules/eslint/messages/all-matched-files-ignored.js +21 -0
  504. package/packages/config-eslint/node_modules/eslint/messages/config-file-missing.js +16 -0
  505. package/packages/config-eslint/node_modules/eslint/messages/eslintrc-incompat.js +119 -0
  506. package/packages/config-eslint/node_modules/eslint/messages/eslintrc-plugins.js +24 -0
  507. package/packages/config-eslint/node_modules/eslint/messages/extend-config-missing.js +13 -0
  508. package/packages/config-eslint/node_modules/eslint/messages/failed-to-read-json.js +11 -0
  509. package/packages/config-eslint/node_modules/eslint/messages/file-not-found.js +10 -0
  510. package/packages/config-eslint/node_modules/eslint/messages/invalid-rule-options.js +17 -0
  511. package/packages/config-eslint/node_modules/eslint/messages/invalid-rule-severity.js +13 -0
  512. package/packages/config-eslint/node_modules/eslint/messages/no-config-found.js +15 -0
  513. package/packages/config-eslint/node_modules/eslint/messages/plugin-conflict.js +22 -0
  514. package/packages/config-eslint/node_modules/eslint/messages/plugin-invalid.js +16 -0
  515. package/packages/config-eslint/node_modules/eslint/messages/plugin-missing.js +19 -0
  516. package/packages/config-eslint/node_modules/eslint/messages/print-config-with-directory-path.js +8 -0
  517. package/packages/config-eslint/node_modules/eslint/messages/shared.js +18 -0
  518. package/packages/config-eslint/node_modules/eslint/messages/whitespace-found.js +11 -0
  519. package/packages/config-eslint/node_modules/eslint/package.json +188 -0
  520. package/packages/config-eslint/node_modules/eslint-scope/LICENSE +22 -0
  521. package/packages/config-eslint/node_modules/eslint-scope/README.md +91 -0
  522. package/packages/config-eslint/node_modules/eslint-scope/dist/eslint-scope.cjs +2266 -0
  523. package/packages/config-eslint/node_modules/eslint-scope/lib/definition.js +85 -0
  524. package/packages/config-eslint/node_modules/eslint-scope/lib/index.js +169 -0
  525. package/packages/config-eslint/node_modules/eslint-scope/lib/pattern-visitor.js +154 -0
  526. package/packages/config-eslint/node_modules/eslint-scope/lib/reference.js +166 -0
  527. package/packages/config-eslint/node_modules/eslint-scope/lib/referencer.js +656 -0
  528. package/packages/config-eslint/node_modules/eslint-scope/lib/scope-manager.js +249 -0
  529. package/packages/config-eslint/node_modules/eslint-scope/lib/scope.js +793 -0
  530. package/packages/config-eslint/node_modules/eslint-scope/lib/variable.js +87 -0
  531. package/packages/config-eslint/node_modules/eslint-scope/lib/version.js +3 -0
  532. package/packages/config-eslint/node_modules/eslint-scope/package.json +65 -0
  533. package/packages/config-eslint/node_modules/eslint-visitor-keys/LICENSE +201 -0
  534. package/packages/config-eslint/node_modules/eslint-visitor-keys/README.md +105 -0
  535. package/packages/config-eslint/node_modules/eslint-visitor-keys/dist/eslint-visitor-keys.cjs +384 -0
  536. package/packages/config-eslint/node_modules/eslint-visitor-keys/dist/eslint-visitor-keys.d.cts +27 -0
  537. package/packages/config-eslint/node_modules/eslint-visitor-keys/dist/index.d.ts +16 -0
  538. package/packages/config-eslint/node_modules/eslint-visitor-keys/dist/visitor-keys.d.ts +12 -0
  539. package/packages/config-eslint/node_modules/eslint-visitor-keys/lib/index.js +65 -0
  540. package/packages/config-eslint/node_modules/eslint-visitor-keys/lib/visitor-keys.js +315 -0
  541. package/packages/config-eslint/node_modules/eslint-visitor-keys/package.json +74 -0
  542. package/packages/config-eslint/node_modules/file-entry-cache/LICENSE +22 -0
  543. package/packages/config-eslint/node_modules/file-entry-cache/README.md +115 -0
  544. package/packages/config-eslint/node_modules/file-entry-cache/cache.js +291 -0
  545. package/packages/config-eslint/node_modules/file-entry-cache/package.json +56 -0
  546. package/packages/config-eslint/node_modules/find-up/index.d.ts +138 -0
  547. package/packages/config-eslint/node_modules/find-up/index.js +89 -0
  548. package/packages/config-eslint/node_modules/find-up/license +9 -0
  549. package/packages/config-eslint/node_modules/find-up/package.json +54 -0
  550. package/packages/config-eslint/node_modules/find-up/readme.md +151 -0
  551. package/packages/config-eslint/node_modules/flat-cache/LICENSE +22 -0
  552. package/packages/config-eslint/node_modules/flat-cache/README.md +77 -0
  553. package/packages/config-eslint/node_modules/flat-cache/changelog.md +278 -0
  554. package/packages/config-eslint/node_modules/flat-cache/package.json +63 -0
  555. package/packages/config-eslint/node_modules/flat-cache/src/cache.js +214 -0
  556. package/packages/config-eslint/node_modules/flat-cache/src/del.js +30 -0
  557. package/packages/config-eslint/node_modules/flat-cache/src/utils.js +42 -0
  558. package/packages/config-eslint/node_modules/glob-parent/LICENSE +15 -0
  559. package/packages/config-eslint/node_modules/glob-parent/README.md +134 -0
  560. package/packages/config-eslint/node_modules/glob-parent/index.js +75 -0
  561. package/packages/config-eslint/node_modules/glob-parent/package.json +54 -0
  562. package/packages/config-eslint/node_modules/json-schema-traverse/.eslintrc.yml +27 -0
  563. package/packages/config-eslint/node_modules/json-schema-traverse/.travis.yml +8 -0
  564. package/packages/config-eslint/node_modules/json-schema-traverse/LICENSE +21 -0
  565. package/packages/config-eslint/node_modules/json-schema-traverse/README.md +83 -0
  566. package/packages/config-eslint/node_modules/json-schema-traverse/index.js +89 -0
  567. package/packages/config-eslint/node_modules/json-schema-traverse/package.json +43 -0
  568. package/packages/config-eslint/node_modules/json-schema-traverse/spec/.eslintrc.yml +6 -0
  569. package/packages/config-eslint/node_modules/json-schema-traverse/spec/fixtures/schema.js +125 -0
  570. package/packages/config-eslint/node_modules/json-schema-traverse/spec/index.spec.js +171 -0
  571. package/packages/config-eslint/node_modules/locate-path/index.d.ts +83 -0
  572. package/packages/config-eslint/node_modules/locate-path/index.js +68 -0
  573. package/packages/config-eslint/node_modules/locate-path/license +9 -0
  574. package/packages/config-eslint/node_modules/locate-path/package.json +46 -0
  575. package/packages/config-eslint/node_modules/locate-path/readme.md +125 -0
  576. package/packages/config-eslint/node_modules/p-limit/index.d.ts +42 -0
  577. package/packages/config-eslint/node_modules/p-limit/index.js +71 -0
  578. package/packages/config-eslint/node_modules/p-limit/license +9 -0
  579. package/packages/config-eslint/node_modules/p-limit/package.json +52 -0
  580. package/packages/config-eslint/node_modules/p-limit/readme.md +101 -0
  581. package/packages/config-eslint/node_modules/p-locate/index.d.ts +53 -0
  582. package/packages/config-eslint/node_modules/p-locate/index.js +50 -0
  583. package/packages/config-eslint/node_modules/p-locate/license +9 -0
  584. package/packages/config-eslint/node_modules/p-locate/package.json +54 -0
  585. package/packages/config-eslint/node_modules/p-locate/readme.md +93 -0
  586. package/packages/config-eslint/node_modules/path-exists/index.d.ts +28 -0
  587. package/packages/config-eslint/node_modules/path-exists/index.js +23 -0
  588. package/packages/config-eslint/node_modules/path-exists/license +9 -0
  589. package/packages/config-eslint/node_modules/path-exists/package.json +39 -0
  590. package/packages/config-eslint/node_modules/path-exists/readme.md +52 -0
  591. package/packages/config-eslint/node_modules/yocto-queue/index.d.ts +56 -0
  592. package/packages/config-eslint/node_modules/yocto-queue/index.js +68 -0
  593. package/packages/config-eslint/node_modules/yocto-queue/license +9 -0
  594. package/packages/config-eslint/node_modules/yocto-queue/package.json +43 -0
  595. package/packages/config-eslint/node_modules/yocto-queue/readme.md +64 -0
  596. package/packages/config-eslint/package.json +2 -2
  597. package/packages/config-hooks/package.json +2 -2
@@ -0,0 +1,881 @@
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('../shared/types').Rule} */
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
+ schema: [
54
+ {
55
+ oneOf: [
56
+ {
57
+ enum: ["all", "local"]
58
+ },
59
+ {
60
+ type: "object",
61
+ properties: {
62
+ vars: {
63
+ enum: ["all", "local"]
64
+ },
65
+ varsIgnorePattern: {
66
+ type: "string"
67
+ },
68
+ args: {
69
+ enum: ["all", "after-used", "none"]
70
+ },
71
+ ignoreRestSiblings: {
72
+ type: "boolean"
73
+ },
74
+ argsIgnorePattern: {
75
+ type: "string"
76
+ },
77
+ caughtErrors: {
78
+ enum: ["all", "none"]
79
+ },
80
+ caughtErrorsIgnorePattern: {
81
+ type: "string"
82
+ },
83
+ destructuredArrayIgnorePattern: {
84
+ type: "string"
85
+ },
86
+ ignoreClassWithStaticInitBlock: {
87
+ type: "boolean"
88
+ },
89
+ reportUsedIgnorePattern: {
90
+ type: "boolean"
91
+ }
92
+ },
93
+ additionalProperties: false
94
+ }
95
+ ]
96
+ }
97
+ ],
98
+
99
+ messages: {
100
+ unusedVar: "'{{varName}}' is {{action}} but never used{{additional}}.",
101
+ usedIgnoredVar: "'{{varName}}' is marked as ignored but is used{{additional}}."
102
+ }
103
+ },
104
+
105
+ create(context) {
106
+ const sourceCode = context.sourceCode;
107
+
108
+ const REST_PROPERTY_TYPE = /^(?:RestElement|(?:Experimental)?RestProperty)$/u;
109
+
110
+ const config = {
111
+ vars: "all",
112
+ args: "after-used",
113
+ ignoreRestSiblings: false,
114
+ caughtErrors: "all",
115
+ ignoreClassWithStaticInitBlock: false,
116
+ reportUsedIgnorePattern: false
117
+ };
118
+
119
+ const firstOption = context.options[0];
120
+
121
+ if (firstOption) {
122
+ if (typeof firstOption === "string") {
123
+ config.vars = firstOption;
124
+ } else {
125
+ config.vars = firstOption.vars || config.vars;
126
+ config.args = firstOption.args || config.args;
127
+ config.ignoreRestSiblings = firstOption.ignoreRestSiblings || config.ignoreRestSiblings;
128
+ config.caughtErrors = firstOption.caughtErrors || config.caughtErrors;
129
+ config.ignoreClassWithStaticInitBlock = firstOption.ignoreClassWithStaticInitBlock || config.ignoreClassWithStaticInitBlock;
130
+ config.reportUsedIgnorePattern = firstOption.reportUsedIgnorePattern || config.reportUsedIgnorePattern;
131
+
132
+ if (firstOption.varsIgnorePattern) {
133
+ config.varsIgnorePattern = new RegExp(firstOption.varsIgnorePattern, "u");
134
+ }
135
+
136
+ if (firstOption.argsIgnorePattern) {
137
+ config.argsIgnorePattern = new RegExp(firstOption.argsIgnorePattern, "u");
138
+ }
139
+
140
+ if (firstOption.caughtErrorsIgnorePattern) {
141
+ config.caughtErrorsIgnorePattern = new RegExp(firstOption.caughtErrorsIgnorePattern, "u");
142
+ }
143
+
144
+ if (firstOption.destructuredArrayIgnorePattern) {
145
+ config.destructuredArrayIgnorePattern = new RegExp(firstOption.destructuredArrayIgnorePattern, "u");
146
+ }
147
+ }
148
+ }
149
+
150
+ /**
151
+ * Determines what variable type a def is.
152
+ * @param {Object} def the declaration to check
153
+ * @returns {VariableType} a simple name for the types of variables that this rule supports
154
+ */
155
+ function defToVariableType(def) {
156
+
157
+ /*
158
+ * This `destructuredArrayIgnorePattern` error report works differently from the catch
159
+ * clause and parameter error reports. _Both_ the `varsIgnorePattern` and the
160
+ * `destructuredArrayIgnorePattern` will be checked for array destructuring. However,
161
+ * for the purposes of the report, the currently defined behavior is to only inform the
162
+ * user of the `destructuredArrayIgnorePattern` if it's present (regardless of the fact
163
+ * that the `varsIgnorePattern` would also apply). If it's not present, the user will be
164
+ * informed of the `varsIgnorePattern`, assuming that's present.
165
+ */
166
+ if (config.destructuredArrayIgnorePattern && def.name.parent.type === "ArrayPattern") {
167
+ return "array-destructure";
168
+ }
169
+
170
+ switch (def.type) {
171
+ case "CatchClause":
172
+ return "catch-clause";
173
+ case "Parameter":
174
+ return "parameter";
175
+ default:
176
+ return "variable";
177
+ }
178
+ }
179
+
180
+ /**
181
+ * Gets a given variable's description and configured ignore pattern
182
+ * based on the provided variableType
183
+ * @param {VariableType} variableType a simple name for the types of variables that this rule supports
184
+ * @throws {Error} (Unreachable)
185
+ * @returns {[string | undefined, string | undefined]} the given variable's description and
186
+ * ignore pattern
187
+ */
188
+ function getVariableDescription(variableType) {
189
+ let pattern;
190
+ let variableDescription;
191
+
192
+ switch (variableType) {
193
+ case "array-destructure":
194
+ pattern = config.destructuredArrayIgnorePattern;
195
+ variableDescription = "elements of array destructuring";
196
+ break;
197
+
198
+ case "catch-clause":
199
+ pattern = config.caughtErrorsIgnorePattern;
200
+ variableDescription = "caught errors";
201
+ break;
202
+
203
+ case "parameter":
204
+ pattern = config.argsIgnorePattern;
205
+ variableDescription = "args";
206
+ break;
207
+
208
+ case "variable":
209
+ pattern = config.varsIgnorePattern;
210
+ variableDescription = "vars";
211
+ break;
212
+
213
+ default:
214
+ throw new Error(`Unexpected variable type: ${variableType}`);
215
+ }
216
+
217
+ if (pattern) {
218
+ pattern = pattern.toString();
219
+ }
220
+
221
+ return [variableDescription, pattern];
222
+ }
223
+
224
+ /**
225
+ * Generates the message data about the variable being defined and unused,
226
+ * including the ignore pattern if configured.
227
+ * @param {Variable} unusedVar eslint-scope variable object.
228
+ * @returns {UnusedVarMessageData} The message data to be used with this unused variable.
229
+ */
230
+ function getDefinedMessageData(unusedVar) {
231
+ const def = unusedVar.defs && unusedVar.defs[0];
232
+ let additionalMessageData = "";
233
+
234
+ if (def) {
235
+ const [variableDescription, pattern] = getVariableDescription(defToVariableType(def));
236
+
237
+ if (pattern && variableDescription) {
238
+ additionalMessageData = `. Allowed unused ${variableDescription} must match ${pattern}`;
239
+ }
240
+ }
241
+
242
+ return {
243
+ varName: unusedVar.name,
244
+ action: "defined",
245
+ additional: additionalMessageData
246
+ };
247
+ }
248
+
249
+ /**
250
+ * Generate the warning message about the variable being
251
+ * assigned and unused, including the ignore pattern if configured.
252
+ * @param {Variable} unusedVar eslint-scope variable object.
253
+ * @returns {UnusedVarMessageData} The message data to be used with this unused variable.
254
+ */
255
+ function getAssignedMessageData(unusedVar) {
256
+ const def = unusedVar.defs && unusedVar.defs[0];
257
+ let additionalMessageData = "";
258
+
259
+ if (def) {
260
+ const [variableDescription, pattern] = getVariableDescription(defToVariableType(def));
261
+
262
+ if (pattern && variableDescription) {
263
+ additionalMessageData = `. Allowed unused ${variableDescription} must match ${pattern}`;
264
+ }
265
+ }
266
+
267
+ return {
268
+ varName: unusedVar.name,
269
+ action: "assigned a value",
270
+ additional: additionalMessageData
271
+ };
272
+ }
273
+
274
+ /**
275
+ * Generate the warning message about a variable being used even though
276
+ * it is marked as being ignored.
277
+ * @param {Variable} variable eslint-scope variable object
278
+ * @param {VariableType} variableType a simple name for the types of variables that this rule supports
279
+ * @returns {UsedIgnoredVarMessageData} The message data to be used with
280
+ * this used ignored variable.
281
+ */
282
+ function getUsedIgnoredMessageData(variable, variableType) {
283
+ const [variableDescription, pattern] = getVariableDescription(variableType);
284
+
285
+ let additionalMessageData = "";
286
+
287
+ if (pattern && variableDescription) {
288
+ additionalMessageData = `. Used ${variableDescription} must not match ${pattern}`;
289
+ }
290
+
291
+ return {
292
+ varName: variable.name,
293
+ additional: additionalMessageData
294
+ };
295
+ }
296
+
297
+ //--------------------------------------------------------------------------
298
+ // Helpers
299
+ //--------------------------------------------------------------------------
300
+
301
+ const STATEMENT_TYPE = /(?:Statement|Declaration)$/u;
302
+
303
+ /**
304
+ * Determines if a given variable is being exported from a module.
305
+ * @param {Variable} variable eslint-scope variable object.
306
+ * @returns {boolean} True if the variable is exported, false if not.
307
+ * @private
308
+ */
309
+ function isExported(variable) {
310
+
311
+ const definition = variable.defs[0];
312
+
313
+ if (definition) {
314
+
315
+ let node = definition.node;
316
+
317
+ if (node.type === "VariableDeclarator") {
318
+ node = node.parent;
319
+ } else if (definition.type === "Parameter") {
320
+ return false;
321
+ }
322
+
323
+ return node.parent.type.indexOf("Export") === 0;
324
+ }
325
+ return false;
326
+
327
+ }
328
+
329
+ /**
330
+ * Checks whether a node is a sibling of the rest property or not.
331
+ * @param {ASTNode} node a node to check
332
+ * @returns {boolean} True if the node is a sibling of the rest property, otherwise false.
333
+ */
334
+ function hasRestSibling(node) {
335
+ return node.type === "Property" &&
336
+ node.parent.type === "ObjectPattern" &&
337
+ REST_PROPERTY_TYPE.test(node.parent.properties.at(-1).type);
338
+ }
339
+
340
+ /**
341
+ * Determines if a variable has a sibling rest property
342
+ * @param {Variable} variable eslint-scope variable object.
343
+ * @returns {boolean} True if the variable has a sibling rest property, false if not.
344
+ * @private
345
+ */
346
+ function hasRestSpreadSibling(variable) {
347
+ if (config.ignoreRestSiblings) {
348
+ const hasRestSiblingDefinition = variable.defs.some(def => hasRestSibling(def.name.parent));
349
+ const hasRestSiblingReference = variable.references.some(ref => hasRestSibling(ref.identifier.parent));
350
+
351
+ return hasRestSiblingDefinition || hasRestSiblingReference;
352
+ }
353
+
354
+ return false;
355
+ }
356
+
357
+ /**
358
+ * Determines if a reference is a read operation.
359
+ * @param {Reference} ref An eslint-scope Reference
360
+ * @returns {boolean} whether the given reference represents a read operation
361
+ * @private
362
+ */
363
+ function isReadRef(ref) {
364
+ return ref.isRead();
365
+ }
366
+
367
+ /**
368
+ * Determine if an identifier is referencing an enclosing function name.
369
+ * @param {Reference} ref The reference to check.
370
+ * @param {ASTNode[]} nodes The candidate function nodes.
371
+ * @returns {boolean} True if it's a self-reference, false if not.
372
+ * @private
373
+ */
374
+ function isSelfReference(ref, nodes) {
375
+ let scope = ref.from;
376
+
377
+ while (scope) {
378
+ if (nodes.includes(scope.block)) {
379
+ return true;
380
+ }
381
+
382
+ scope = scope.upper;
383
+ }
384
+
385
+ return false;
386
+ }
387
+
388
+ /**
389
+ * Gets a list of function definitions for a specified variable.
390
+ * @param {Variable} variable eslint-scope variable object.
391
+ * @returns {ASTNode[]} Function nodes.
392
+ * @private
393
+ */
394
+ function getFunctionDefinitions(variable) {
395
+ const functionDefinitions = [];
396
+
397
+ variable.defs.forEach(def => {
398
+ const { type, node } = def;
399
+
400
+ // FunctionDeclarations
401
+ if (type === "FunctionName") {
402
+ functionDefinitions.push(node);
403
+ }
404
+
405
+ // FunctionExpressions
406
+ if (type === "Variable" && node.init &&
407
+ (node.init.type === "FunctionExpression" || node.init.type === "ArrowFunctionExpression")) {
408
+ functionDefinitions.push(node.init);
409
+ }
410
+ });
411
+ return functionDefinitions;
412
+ }
413
+
414
+ /**
415
+ * Checks the position of given nodes.
416
+ * @param {ASTNode} inner A node which is expected as inside.
417
+ * @param {ASTNode} outer A node which is expected as outside.
418
+ * @returns {boolean} `true` if the `inner` node exists in the `outer` node.
419
+ * @private
420
+ */
421
+ function isInside(inner, outer) {
422
+ return (
423
+ inner.range[0] >= outer.range[0] &&
424
+ inner.range[1] <= outer.range[1]
425
+ );
426
+ }
427
+
428
+ /**
429
+ * Checks whether a given node is unused expression or not.
430
+ * @param {ASTNode} node The node itself
431
+ * @returns {boolean} The node is an unused expression.
432
+ * @private
433
+ */
434
+ function isUnusedExpression(node) {
435
+ const parent = node.parent;
436
+
437
+ if (parent.type === "ExpressionStatement") {
438
+ return true;
439
+ }
440
+
441
+ if (parent.type === "SequenceExpression") {
442
+ const isLastExpression = parent.expressions.at(-1) === node;
443
+
444
+ if (!isLastExpression) {
445
+ return true;
446
+ }
447
+ return isUnusedExpression(parent);
448
+ }
449
+
450
+ return false;
451
+ }
452
+
453
+ /**
454
+ * If a given reference is left-hand side of an assignment, this gets
455
+ * the right-hand side node of the assignment.
456
+ *
457
+ * In the following cases, this returns null.
458
+ *
459
+ * - The reference is not the LHS of an assignment expression.
460
+ * - The reference is inside of a loop.
461
+ * - The reference is inside of a function scope which is different from
462
+ * the declaration.
463
+ * @param {eslint-scope.Reference} ref A reference to check.
464
+ * @param {ASTNode} prevRhsNode The previous RHS node.
465
+ * @returns {ASTNode|null} The RHS node or null.
466
+ * @private
467
+ */
468
+ function getRhsNode(ref, prevRhsNode) {
469
+ const id = ref.identifier;
470
+ const parent = id.parent;
471
+ const refScope = ref.from.variableScope;
472
+ const varScope = ref.resolved.scope.variableScope;
473
+ const canBeUsedLater = refScope !== varScope || astUtils.isInLoop(id);
474
+
475
+ /*
476
+ * Inherits the previous node if this reference is in the node.
477
+ * This is for `a = a + a`-like code.
478
+ */
479
+ if (prevRhsNode && isInside(id, prevRhsNode)) {
480
+ return prevRhsNode;
481
+ }
482
+
483
+ if (parent.type === "AssignmentExpression" &&
484
+ isUnusedExpression(parent) &&
485
+ id === parent.left &&
486
+ !canBeUsedLater
487
+ ) {
488
+ return parent.right;
489
+ }
490
+ return null;
491
+ }
492
+
493
+ /**
494
+ * Checks whether a given function node is stored to somewhere or not.
495
+ * If the function node is stored, the function can be used later.
496
+ * @param {ASTNode} funcNode A function node to check.
497
+ * @param {ASTNode} rhsNode The RHS node of the previous assignment.
498
+ * @returns {boolean} `true` if under the following conditions:
499
+ * - the funcNode is assigned to a variable.
500
+ * - the funcNode is bound as an argument of a function call.
501
+ * - the function is bound to a property and the object satisfies above conditions.
502
+ * @private
503
+ */
504
+ function isStorableFunction(funcNode, rhsNode) {
505
+ let node = funcNode;
506
+ let parent = funcNode.parent;
507
+
508
+ while (parent && isInside(parent, rhsNode)) {
509
+ switch (parent.type) {
510
+ case "SequenceExpression":
511
+ if (parent.expressions.at(-1) !== node) {
512
+ return false;
513
+ }
514
+ break;
515
+
516
+ case "CallExpression":
517
+ case "NewExpression":
518
+ return parent.callee !== node;
519
+
520
+ case "AssignmentExpression":
521
+ case "TaggedTemplateExpression":
522
+ case "YieldExpression":
523
+ return true;
524
+
525
+ default:
526
+ if (STATEMENT_TYPE.test(parent.type)) {
527
+
528
+ /*
529
+ * If it encountered statements, this is a complex pattern.
530
+ * Since analyzing complex patterns is hard, this returns `true` to avoid false positive.
531
+ */
532
+ return true;
533
+ }
534
+ }
535
+
536
+ node = parent;
537
+ parent = parent.parent;
538
+ }
539
+
540
+ return false;
541
+ }
542
+
543
+ /**
544
+ * Checks whether a given Identifier node exists inside of a function node which can be used later.
545
+ *
546
+ * "can be used later" means:
547
+ * - the function is assigned to a variable.
548
+ * - the function is bound to a property and the object can be used later.
549
+ * - the function is bound as an argument of a function call.
550
+ *
551
+ * If a reference exists in a function which can be used later, the reference is read when the function is called.
552
+ * @param {ASTNode} id An Identifier node to check.
553
+ * @param {ASTNode} rhsNode The RHS node of the previous assignment.
554
+ * @returns {boolean} `true` if the `id` node exists inside of a function node which can be used later.
555
+ * @private
556
+ */
557
+ function isInsideOfStorableFunction(id, rhsNode) {
558
+ const funcNode = astUtils.getUpperFunction(id);
559
+
560
+ return (
561
+ funcNode &&
562
+ isInside(funcNode, rhsNode) &&
563
+ isStorableFunction(funcNode, rhsNode)
564
+ );
565
+ }
566
+
567
+ /**
568
+ * Checks whether a given reference is a read to update itself or not.
569
+ * @param {eslint-scope.Reference} ref A reference to check.
570
+ * @param {ASTNode} rhsNode The RHS node of the previous assignment.
571
+ * @returns {boolean} The reference is a read to update itself.
572
+ * @private
573
+ */
574
+ function isReadForItself(ref, rhsNode) {
575
+ const id = ref.identifier;
576
+ const parent = id.parent;
577
+
578
+ return ref.isRead() && (
579
+
580
+ // self update. e.g. `a += 1`, `a++`
581
+ (
582
+ (
583
+ parent.type === "AssignmentExpression" &&
584
+ parent.left === id &&
585
+ isUnusedExpression(parent) &&
586
+ !astUtils.isLogicalAssignmentOperator(parent.operator)
587
+ ) ||
588
+ (
589
+ parent.type === "UpdateExpression" &&
590
+ isUnusedExpression(parent)
591
+ )
592
+ ) ||
593
+
594
+ // in RHS of an assignment for itself. e.g. `a = a + 1`
595
+ (
596
+ rhsNode &&
597
+ isInside(id, rhsNode) &&
598
+ !isInsideOfStorableFunction(id, rhsNode)
599
+ )
600
+ );
601
+ }
602
+
603
+ /**
604
+ * Determine if an identifier is used either in for-in or for-of loops.
605
+ * @param {Reference} ref The reference to check.
606
+ * @returns {boolean} whether reference is used in the for-in loops
607
+ * @private
608
+ */
609
+ function isForInOfRef(ref) {
610
+ let target = ref.identifier.parent;
611
+
612
+
613
+ // "for (var ...) { return; }"
614
+ if (target.type === "VariableDeclarator") {
615
+ target = target.parent.parent;
616
+ }
617
+
618
+ if (target.type !== "ForInStatement" && target.type !== "ForOfStatement") {
619
+ return false;
620
+ }
621
+
622
+ // "for (...) { return; }"
623
+ if (target.body.type === "BlockStatement") {
624
+ target = target.body.body[0];
625
+
626
+ // "for (...) return;"
627
+ } else {
628
+ target = target.body;
629
+ }
630
+
631
+ // For empty loop body
632
+ if (!target) {
633
+ return false;
634
+ }
635
+
636
+ return target.type === "ReturnStatement";
637
+ }
638
+
639
+ /**
640
+ * Determines if the variable is used.
641
+ * @param {Variable} variable The variable to check.
642
+ * @returns {boolean} True if the variable is used
643
+ * @private
644
+ */
645
+ function isUsedVariable(variable) {
646
+ if (variable.eslintUsed) {
647
+ return true;
648
+ }
649
+
650
+ const functionNodes = getFunctionDefinitions(variable);
651
+ const isFunctionDefinition = functionNodes.length > 0;
652
+
653
+ let rhsNode = null;
654
+
655
+ return variable.references.some(ref => {
656
+ if (isForInOfRef(ref)) {
657
+ return true;
658
+ }
659
+
660
+ const forItself = isReadForItself(ref, rhsNode);
661
+
662
+ rhsNode = getRhsNode(ref, rhsNode);
663
+
664
+ return (
665
+ isReadRef(ref) &&
666
+ !forItself &&
667
+ !(isFunctionDefinition && isSelfReference(ref, functionNodes))
668
+ );
669
+ });
670
+ }
671
+
672
+ /**
673
+ * Checks whether the given variable is after the last used parameter.
674
+ * @param {eslint-scope.Variable} variable The variable to check.
675
+ * @returns {boolean} `true` if the variable is defined after the last
676
+ * used parameter.
677
+ */
678
+ function isAfterLastUsedArg(variable) {
679
+ const def = variable.defs[0];
680
+ const params = sourceCode.getDeclaredVariables(def.node);
681
+ const posteriorParams = params.slice(params.indexOf(variable) + 1);
682
+
683
+ // If any used parameters occur after this parameter, do not report.
684
+ return !posteriorParams.some(v => v.references.length > 0 || v.eslintUsed);
685
+ }
686
+
687
+ /**
688
+ * Gets an array of variables without read references.
689
+ * @param {Scope} scope an eslint-scope Scope object.
690
+ * @param {Variable[]} unusedVars an array that saving result.
691
+ * @returns {Variable[]} unused variables of the scope and descendant scopes.
692
+ * @private
693
+ */
694
+ function collectUnusedVariables(scope, unusedVars) {
695
+ const variables = scope.variables;
696
+ const childScopes = scope.childScopes;
697
+ let i, l;
698
+
699
+ if (scope.type !== "global" || config.vars === "all") {
700
+ for (i = 0, l = variables.length; i < l; ++i) {
701
+ const variable = variables[i];
702
+
703
+ // skip a variable of class itself name in the class scope
704
+ if (scope.type === "class" && scope.block.id === variable.identifiers[0]) {
705
+ continue;
706
+ }
707
+
708
+ // skip function expression names
709
+ if (scope.functionExpressionScope) {
710
+ continue;
711
+ }
712
+
713
+ // skip variables marked with markVariableAsUsed()
714
+ if (!config.reportUsedIgnorePattern && variable.eslintUsed) {
715
+ continue;
716
+ }
717
+
718
+ // skip implicit "arguments" variable
719
+ if (scope.type === "function" && variable.name === "arguments" && variable.identifiers.length === 0) {
720
+ continue;
721
+ }
722
+
723
+ // explicit global variables don't have definitions.
724
+ const def = variable.defs[0];
725
+
726
+ if (def) {
727
+ const type = def.type;
728
+ const refUsedInArrayPatterns = variable.references.some(ref => ref.identifier.parent.type === "ArrayPattern");
729
+
730
+ // skip elements of array destructuring patterns
731
+ if (
732
+ (
733
+ def.name.parent.type === "ArrayPattern" ||
734
+ refUsedInArrayPatterns
735
+ ) &&
736
+ config.destructuredArrayIgnorePattern &&
737
+ config.destructuredArrayIgnorePattern.test(def.name.name)
738
+ ) {
739
+ if (config.reportUsedIgnorePattern && isUsedVariable(variable)) {
740
+ context.report({
741
+ node: def.name,
742
+ messageId: "usedIgnoredVar",
743
+ data: getUsedIgnoredMessageData(variable, "array-destructure")
744
+ });
745
+ }
746
+
747
+ continue;
748
+ }
749
+
750
+ if (type === "ClassName") {
751
+ const hasStaticBlock = def.node.body.body.some(node => node.type === "StaticBlock");
752
+
753
+ if (config.ignoreClassWithStaticInitBlock && hasStaticBlock) {
754
+ continue;
755
+ }
756
+ }
757
+
758
+ // skip catch variables
759
+ if (type === "CatchClause") {
760
+ if (config.caughtErrors === "none") {
761
+ continue;
762
+ }
763
+
764
+ // skip ignored parameters
765
+ if (config.caughtErrorsIgnorePattern && config.caughtErrorsIgnorePattern.test(def.name.name)) {
766
+ if (config.reportUsedIgnorePattern && isUsedVariable(variable)) {
767
+ context.report({
768
+ node: def.name,
769
+ messageId: "usedIgnoredVar",
770
+ data: getUsedIgnoredMessageData(variable, "catch-clause")
771
+ });
772
+ }
773
+
774
+ continue;
775
+ }
776
+ } else if (type === "Parameter") {
777
+
778
+ // skip any setter argument
779
+ if ((def.node.parent.type === "Property" || def.node.parent.type === "MethodDefinition") && def.node.parent.kind === "set") {
780
+ continue;
781
+ }
782
+
783
+ // if "args" option is "none", skip any parameter
784
+ if (config.args === "none") {
785
+ continue;
786
+ }
787
+
788
+ // skip ignored parameters
789
+ if (config.argsIgnorePattern && config.argsIgnorePattern.test(def.name.name)) {
790
+ if (config.reportUsedIgnorePattern && isUsedVariable(variable)) {
791
+ context.report({
792
+ node: def.name,
793
+ messageId: "usedIgnoredVar",
794
+ data: getUsedIgnoredMessageData(variable, "parameter")
795
+ });
796
+ }
797
+
798
+ continue;
799
+ }
800
+
801
+ // if "args" option is "after-used", skip used variables
802
+ if (config.args === "after-used" && astUtils.isFunction(def.name.parent) && !isAfterLastUsedArg(variable)) {
803
+ continue;
804
+ }
805
+ } else {
806
+
807
+ // skip ignored variables
808
+ if (config.varsIgnorePattern && config.varsIgnorePattern.test(def.name.name)) {
809
+ if (config.reportUsedIgnorePattern && isUsedVariable(variable)) {
810
+ context.report({
811
+ node: def.name,
812
+ messageId: "usedIgnoredVar",
813
+ data: getUsedIgnoredMessageData(variable, "variable")
814
+ });
815
+ }
816
+
817
+ continue;
818
+ }
819
+ }
820
+ }
821
+
822
+ if (!isUsedVariable(variable) && !isExported(variable) && !hasRestSpreadSibling(variable)) {
823
+ unusedVars.push(variable);
824
+ }
825
+ }
826
+ }
827
+
828
+ for (i = 0, l = childScopes.length; i < l; ++i) {
829
+ collectUnusedVariables(childScopes[i], unusedVars);
830
+ }
831
+
832
+ return unusedVars;
833
+ }
834
+
835
+ //--------------------------------------------------------------------------
836
+ // Public
837
+ //--------------------------------------------------------------------------
838
+
839
+ return {
840
+ "Program:exit"(programNode) {
841
+ const unusedVars = collectUnusedVariables(sourceCode.getScope(programNode), []);
842
+
843
+ for (let i = 0, l = unusedVars.length; i < l; ++i) {
844
+ const unusedVar = unusedVars[i];
845
+
846
+ // Report the first declaration.
847
+ if (unusedVar.defs.length > 0) {
848
+
849
+ // report last write reference, https://github.com/eslint/eslint/issues/14324
850
+ const writeReferences = unusedVar.references.filter(ref => ref.isWrite() && ref.from.variableScope === unusedVar.scope.variableScope);
851
+
852
+ let referenceToReport;
853
+
854
+ if (writeReferences.length > 0) {
855
+ referenceToReport = writeReferences.at(-1);
856
+ }
857
+
858
+ context.report({
859
+ node: referenceToReport ? referenceToReport.identifier : unusedVar.identifiers[0],
860
+ messageId: "unusedVar",
861
+ data: unusedVar.references.some(ref => ref.isWrite())
862
+ ? getAssignedMessageData(unusedVar)
863
+ : getDefinedMessageData(unusedVar)
864
+ });
865
+
866
+ // If there are no regular declaration, report the first `/*globals*/` comment directive.
867
+ } else if (unusedVar.eslintExplicitGlobalComments) {
868
+ const directiveComment = unusedVar.eslintExplicitGlobalComments[0];
869
+
870
+ context.report({
871
+ node: programNode,
872
+ loc: astUtils.getNameLocationInGlobalDirectiveComment(sourceCode, directiveComment, unusedVar.name),
873
+ messageId: "unusedVar",
874
+ data: getDefinedMessageData(unusedVar)
875
+ });
876
+ }
877
+ }
878
+ }
879
+ };
880
+ }
881
+ };