@alexlit/lint-kit 126.7.0 → 127.1.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 (599) hide show
  1. package/eslint.config.js +16 -0
  2. package/package.json +5 -5
  3. package/packages/config-eslint/package.json +5 -5
  4. package/packages/config-prettier/package.json +2 -2
  5. package/packages/config-stylelint/package.json +3 -3
  6. package/packages/config-eslint/node_modules/ajv/.tonic_example.js +0 -20
  7. package/packages/config-eslint/node_modules/ajv/LICENSE +0 -22
  8. package/packages/config-eslint/node_modules/ajv/README.md +0 -1497
  9. package/packages/config-eslint/node_modules/ajv/dist/ajv.bundle.js +0 -7189
  10. package/packages/config-eslint/node_modules/ajv/dist/ajv.min.js +0 -3
  11. package/packages/config-eslint/node_modules/ajv/dist/ajv.min.js.map +0 -1
  12. package/packages/config-eslint/node_modules/ajv/lib/ajv.d.ts +0 -397
  13. package/packages/config-eslint/node_modules/ajv/lib/ajv.js +0 -506
  14. package/packages/config-eslint/node_modules/ajv/lib/cache.js +0 -26
  15. package/packages/config-eslint/node_modules/ajv/lib/compile/async.js +0 -90
  16. package/packages/config-eslint/node_modules/ajv/lib/compile/equal.js +0 -5
  17. package/packages/config-eslint/node_modules/ajv/lib/compile/error_classes.js +0 -34
  18. package/packages/config-eslint/node_modules/ajv/lib/compile/formats.js +0 -142
  19. package/packages/config-eslint/node_modules/ajv/lib/compile/index.js +0 -387
  20. package/packages/config-eslint/node_modules/ajv/lib/compile/resolve.js +0 -270
  21. package/packages/config-eslint/node_modules/ajv/lib/compile/rules.js +0 -66
  22. package/packages/config-eslint/node_modules/ajv/lib/compile/schema_obj.js +0 -9
  23. package/packages/config-eslint/node_modules/ajv/lib/compile/ucs2length.js +0 -20
  24. package/packages/config-eslint/node_modules/ajv/lib/compile/util.js +0 -239
  25. package/packages/config-eslint/node_modules/ajv/lib/data.js +0 -49
  26. package/packages/config-eslint/node_modules/ajv/lib/definition_schema.js +0 -37
  27. package/packages/config-eslint/node_modules/ajv/lib/dot/_limit.jst +0 -113
  28. package/packages/config-eslint/node_modules/ajv/lib/dot/_limitItems.jst +0 -12
  29. package/packages/config-eslint/node_modules/ajv/lib/dot/_limitLength.jst +0 -12
  30. package/packages/config-eslint/node_modules/ajv/lib/dot/_limitProperties.jst +0 -12
  31. package/packages/config-eslint/node_modules/ajv/lib/dot/allOf.jst +0 -32
  32. package/packages/config-eslint/node_modules/ajv/lib/dot/anyOf.jst +0 -46
  33. package/packages/config-eslint/node_modules/ajv/lib/dot/coerce.def +0 -51
  34. package/packages/config-eslint/node_modules/ajv/lib/dot/comment.jst +0 -9
  35. package/packages/config-eslint/node_modules/ajv/lib/dot/const.jst +0 -11
  36. package/packages/config-eslint/node_modules/ajv/lib/dot/contains.jst +0 -55
  37. package/packages/config-eslint/node_modules/ajv/lib/dot/custom.jst +0 -191
  38. package/packages/config-eslint/node_modules/ajv/lib/dot/defaults.def +0 -47
  39. package/packages/config-eslint/node_modules/ajv/lib/dot/definitions.def +0 -203
  40. package/packages/config-eslint/node_modules/ajv/lib/dot/dependencies.jst +0 -79
  41. package/packages/config-eslint/node_modules/ajv/lib/dot/enum.jst +0 -30
  42. package/packages/config-eslint/node_modules/ajv/lib/dot/errors.def +0 -194
  43. package/packages/config-eslint/node_modules/ajv/lib/dot/format.jst +0 -106
  44. package/packages/config-eslint/node_modules/ajv/lib/dot/if.jst +0 -73
  45. package/packages/config-eslint/node_modules/ajv/lib/dot/items.jst +0 -98
  46. package/packages/config-eslint/node_modules/ajv/lib/dot/missing.def +0 -39
  47. package/packages/config-eslint/node_modules/ajv/lib/dot/multipleOf.jst +0 -22
  48. package/packages/config-eslint/node_modules/ajv/lib/dot/not.jst +0 -43
  49. package/packages/config-eslint/node_modules/ajv/lib/dot/oneOf.jst +0 -54
  50. package/packages/config-eslint/node_modules/ajv/lib/dot/pattern.jst +0 -14
  51. package/packages/config-eslint/node_modules/ajv/lib/dot/properties.jst +0 -245
  52. package/packages/config-eslint/node_modules/ajv/lib/dot/propertyNames.jst +0 -52
  53. package/packages/config-eslint/node_modules/ajv/lib/dot/ref.jst +0 -85
  54. package/packages/config-eslint/node_modules/ajv/lib/dot/required.jst +0 -108
  55. package/packages/config-eslint/node_modules/ajv/lib/dot/uniqueItems.jst +0 -62
  56. package/packages/config-eslint/node_modules/ajv/lib/dot/validate.jst +0 -276
  57. package/packages/config-eslint/node_modules/ajv/lib/dotjs/README.md +0 -3
  58. package/packages/config-eslint/node_modules/ajv/lib/dotjs/_limit.js +0 -163
  59. package/packages/config-eslint/node_modules/ajv/lib/dotjs/_limitItems.js +0 -80
  60. package/packages/config-eslint/node_modules/ajv/lib/dotjs/_limitLength.js +0 -85
  61. package/packages/config-eslint/node_modules/ajv/lib/dotjs/_limitProperties.js +0 -80
  62. package/packages/config-eslint/node_modules/ajv/lib/dotjs/allOf.js +0 -42
  63. package/packages/config-eslint/node_modules/ajv/lib/dotjs/anyOf.js +0 -73
  64. package/packages/config-eslint/node_modules/ajv/lib/dotjs/comment.js +0 -14
  65. package/packages/config-eslint/node_modules/ajv/lib/dotjs/const.js +0 -56
  66. package/packages/config-eslint/node_modules/ajv/lib/dotjs/contains.js +0 -81
  67. package/packages/config-eslint/node_modules/ajv/lib/dotjs/custom.js +0 -228
  68. package/packages/config-eslint/node_modules/ajv/lib/dotjs/dependencies.js +0 -168
  69. package/packages/config-eslint/node_modules/ajv/lib/dotjs/enum.js +0 -66
  70. package/packages/config-eslint/node_modules/ajv/lib/dotjs/format.js +0 -150
  71. package/packages/config-eslint/node_modules/ajv/lib/dotjs/if.js +0 -103
  72. package/packages/config-eslint/node_modules/ajv/lib/dotjs/index.js +0 -33
  73. package/packages/config-eslint/node_modules/ajv/lib/dotjs/items.js +0 -140
  74. package/packages/config-eslint/node_modules/ajv/lib/dotjs/multipleOf.js +0 -80
  75. package/packages/config-eslint/node_modules/ajv/lib/dotjs/not.js +0 -84
  76. package/packages/config-eslint/node_modules/ajv/lib/dotjs/oneOf.js +0 -73
  77. package/packages/config-eslint/node_modules/ajv/lib/dotjs/pattern.js +0 -75
  78. package/packages/config-eslint/node_modules/ajv/lib/dotjs/properties.js +0 -335
  79. package/packages/config-eslint/node_modules/ajv/lib/dotjs/propertyNames.js +0 -81
  80. package/packages/config-eslint/node_modules/ajv/lib/dotjs/ref.js +0 -124
  81. package/packages/config-eslint/node_modules/ajv/lib/dotjs/required.js +0 -270
  82. package/packages/config-eslint/node_modules/ajv/lib/dotjs/uniqueItems.js +0 -86
  83. package/packages/config-eslint/node_modules/ajv/lib/dotjs/validate.js +0 -482
  84. package/packages/config-eslint/node_modules/ajv/lib/keyword.js +0 -146
  85. package/packages/config-eslint/node_modules/ajv/lib/refs/data.json +0 -17
  86. package/packages/config-eslint/node_modules/ajv/lib/refs/json-schema-draft-04.json +0 -149
  87. package/packages/config-eslint/node_modules/ajv/lib/refs/json-schema-draft-06.json +0 -154
  88. package/packages/config-eslint/node_modules/ajv/lib/refs/json-schema-draft-07.json +0 -168
  89. package/packages/config-eslint/node_modules/ajv/lib/refs/json-schema-secure.json +0 -94
  90. package/packages/config-eslint/node_modules/ajv/package.json +0 -106
  91. package/packages/config-eslint/node_modules/ajv/scripts/.eslintrc.yml +0 -3
  92. package/packages/config-eslint/node_modules/ajv/scripts/bundle.js +0 -61
  93. package/packages/config-eslint/node_modules/ajv/scripts/compile-dots.js +0 -73
  94. package/packages/config-eslint/node_modules/ajv/scripts/info +0 -10
  95. package/packages/config-eslint/node_modules/ajv/scripts/prepare-tests +0 -12
  96. package/packages/config-eslint/node_modules/ajv/scripts/publish-built-version +0 -32
  97. package/packages/config-eslint/node_modules/ajv/scripts/travis-gh-pages +0 -23
  98. package/packages/config-eslint/node_modules/ansi-styles/index.d.ts +0 -345
  99. package/packages/config-eslint/node_modules/ansi-styles/index.js +0 -163
  100. package/packages/config-eslint/node_modules/ansi-styles/license +0 -9
  101. package/packages/config-eslint/node_modules/ansi-styles/package.json +0 -56
  102. package/packages/config-eslint/node_modules/ansi-styles/readme.md +0 -152
  103. package/packages/config-eslint/node_modules/chalk/index.d.ts +0 -415
  104. package/packages/config-eslint/node_modules/chalk/license +0 -9
  105. package/packages/config-eslint/node_modules/chalk/package.json +0 -68
  106. package/packages/config-eslint/node_modules/chalk/readme.md +0 -341
  107. package/packages/config-eslint/node_modules/chalk/source/index.js +0 -229
  108. package/packages/config-eslint/node_modules/chalk/source/templates.js +0 -134
  109. package/packages/config-eslint/node_modules/chalk/source/util.js +0 -39
  110. package/packages/config-eslint/node_modules/color-convert/CHANGELOG.md +0 -54
  111. package/packages/config-eslint/node_modules/color-convert/LICENSE +0 -21
  112. package/packages/config-eslint/node_modules/color-convert/README.md +0 -68
  113. package/packages/config-eslint/node_modules/color-convert/conversions.js +0 -839
  114. package/packages/config-eslint/node_modules/color-convert/index.js +0 -81
  115. package/packages/config-eslint/node_modules/color-convert/package.json +0 -48
  116. package/packages/config-eslint/node_modules/color-convert/route.js +0 -97
  117. package/packages/config-eslint/node_modules/color-name/LICENSE +0 -8
  118. package/packages/config-eslint/node_modules/color-name/README.md +0 -11
  119. package/packages/config-eslint/node_modules/color-name/index.js +0 -152
  120. package/packages/config-eslint/node_modules/color-name/package.json +0 -28
  121. package/packages/config-eslint/node_modules/eslint/LICENSE +0 -19
  122. package/packages/config-eslint/node_modules/eslint/README.md +0 -306
  123. package/packages/config-eslint/node_modules/eslint/bin/eslint.js +0 -174
  124. package/packages/config-eslint/node_modules/eslint/conf/default-cli-options.js +0 -32
  125. package/packages/config-eslint/node_modules/eslint/conf/ecma-version.js +0 -16
  126. package/packages/config-eslint/node_modules/eslint/conf/globals.js +0 -160
  127. package/packages/config-eslint/node_modules/eslint/conf/replacements.json +0 -22
  128. package/packages/config-eslint/node_modules/eslint/conf/rule-type-list.json +0 -30
  129. package/packages/config-eslint/node_modules/eslint/lib/api.js +0 -50
  130. package/packages/config-eslint/node_modules/eslint/lib/cli-engine/cli-engine.js +0 -1089
  131. package/packages/config-eslint/node_modules/eslint/lib/cli-engine/file-enumerator.js +0 -547
  132. package/packages/config-eslint/node_modules/eslint/lib/cli-engine/formatters/formatters-meta.json +0 -18
  133. package/packages/config-eslint/node_modules/eslint/lib/cli-engine/formatters/html.js +0 -351
  134. package/packages/config-eslint/node_modules/eslint/lib/cli-engine/formatters/json-with-metadata.js +0 -16
  135. package/packages/config-eslint/node_modules/eslint/lib/cli-engine/formatters/json.js +0 -13
  136. package/packages/config-eslint/node_modules/eslint/lib/cli-engine/formatters/stylish.js +0 -101
  137. package/packages/config-eslint/node_modules/eslint/lib/cli-engine/hash.js +0 -35
  138. package/packages/config-eslint/node_modules/eslint/lib/cli-engine/index.js +0 -7
  139. package/packages/config-eslint/node_modules/eslint/lib/cli-engine/lint-result-cache.js +0 -203
  140. package/packages/config-eslint/node_modules/eslint/lib/cli-engine/load-rules.js +0 -46
  141. package/packages/config-eslint/node_modules/eslint/lib/cli.js +0 -552
  142. package/packages/config-eslint/node_modules/eslint/lib/config/default-config.js +0 -75
  143. package/packages/config-eslint/node_modules/eslint/lib/config/flat-config-array.js +0 -423
  144. package/packages/config-eslint/node_modules/eslint/lib/config/flat-config-helpers.js +0 -132
  145. package/packages/config-eslint/node_modules/eslint/lib/config/flat-config-schema.js +0 -576
  146. package/packages/config-eslint/node_modules/eslint/lib/config/rule-validator.js +0 -194
  147. package/packages/config-eslint/node_modules/eslint/lib/eslint/eslint-helpers.js +0 -975
  148. package/packages/config-eslint/node_modules/eslint/lib/eslint/eslint.js +0 -1307
  149. package/packages/config-eslint/node_modules/eslint/lib/eslint/index.js +0 -9
  150. package/packages/config-eslint/node_modules/eslint/lib/eslint/legacy-eslint.js +0 -742
  151. package/packages/config-eslint/node_modules/eslint/lib/languages/js/index.js +0 -252
  152. package/packages/config-eslint/node_modules/eslint/lib/languages/js/source-code/index.js +0 -7
  153. package/packages/config-eslint/node_modules/eslint/lib/languages/js/source-code/source-code.js +0 -1318
  154. package/packages/config-eslint/node_modules/eslint/lib/languages/js/source-code/token-store/backward-token-comment-cursor.js +0 -57
  155. package/packages/config-eslint/node_modules/eslint/lib/languages/js/source-code/token-store/backward-token-cursor.js +0 -58
  156. package/packages/config-eslint/node_modules/eslint/lib/languages/js/source-code/token-store/cursor.js +0 -76
  157. package/packages/config-eslint/node_modules/eslint/lib/languages/js/source-code/token-store/cursors.js +0 -92
  158. package/packages/config-eslint/node_modules/eslint/lib/languages/js/source-code/token-store/decorative-cursor.js +0 -39
  159. package/packages/config-eslint/node_modules/eslint/lib/languages/js/source-code/token-store/filter-cursor.js +0 -43
  160. package/packages/config-eslint/node_modules/eslint/lib/languages/js/source-code/token-store/forward-token-comment-cursor.js +0 -57
  161. package/packages/config-eslint/node_modules/eslint/lib/languages/js/source-code/token-store/forward-token-cursor.js +0 -63
  162. package/packages/config-eslint/node_modules/eslint/lib/languages/js/source-code/token-store/index.js +0 -627
  163. package/packages/config-eslint/node_modules/eslint/lib/languages/js/source-code/token-store/limit-cursor.js +0 -40
  164. package/packages/config-eslint/node_modules/eslint/lib/languages/js/source-code/token-store/padded-token-cursor.js +0 -38
  165. package/packages/config-eslint/node_modules/eslint/lib/languages/js/source-code/token-store/skip-cursor.js +0 -42
  166. package/packages/config-eslint/node_modules/eslint/lib/languages/js/source-code/token-store/utils.js +0 -107
  167. package/packages/config-eslint/node_modules/eslint/lib/languages/js/validate-language-options.js +0 -181
  168. package/packages/config-eslint/node_modules/eslint/lib/linter/apply-disable-directives.js +0 -513
  169. package/packages/config-eslint/node_modules/eslint/lib/linter/code-path-analysis/code-path-analyzer.js +0 -851
  170. package/packages/config-eslint/node_modules/eslint/lib/linter/code-path-analysis/code-path-segment.js +0 -263
  171. package/packages/config-eslint/node_modules/eslint/lib/linter/code-path-analysis/code-path-state.js +0 -2348
  172. package/packages/config-eslint/node_modules/eslint/lib/linter/code-path-analysis/code-path.js +0 -344
  173. package/packages/config-eslint/node_modules/eslint/lib/linter/code-path-analysis/debug-helpers.js +0 -203
  174. package/packages/config-eslint/node_modules/eslint/lib/linter/code-path-analysis/fork-context.js +0 -349
  175. package/packages/config-eslint/node_modules/eslint/lib/linter/code-path-analysis/id-generator.js +0 -45
  176. package/packages/config-eslint/node_modules/eslint/lib/linter/config-comment-parser.js +0 -169
  177. package/packages/config-eslint/node_modules/eslint/lib/linter/index.js +0 -11
  178. package/packages/config-eslint/node_modules/eslint/lib/linter/interpolate.js +0 -50
  179. package/packages/config-eslint/node_modules/eslint/lib/linter/linter.js +0 -2410
  180. package/packages/config-eslint/node_modules/eslint/lib/linter/node-event-generator.js +0 -352
  181. package/packages/config-eslint/node_modules/eslint/lib/linter/report-translator.js +0 -376
  182. package/packages/config-eslint/node_modules/eslint/lib/linter/rule-fixer.js +0 -163
  183. package/packages/config-eslint/node_modules/eslint/lib/linter/rules.js +0 -71
  184. package/packages/config-eslint/node_modules/eslint/lib/linter/safe-emitter.js +0 -52
  185. package/packages/config-eslint/node_modules/eslint/lib/linter/source-code-fixer.js +0 -152
  186. package/packages/config-eslint/node_modules/eslint/lib/linter/timing.js +0 -169
  187. package/packages/config-eslint/node_modules/eslint/lib/linter/vfile.js +0 -111
  188. package/packages/config-eslint/node_modules/eslint/lib/options.js +0 -442
  189. package/packages/config-eslint/node_modules/eslint/lib/rule-tester/index.js +0 -7
  190. package/packages/config-eslint/node_modules/eslint/lib/rule-tester/rule-tester.js +0 -1286
  191. package/packages/config-eslint/node_modules/eslint/lib/rules/accessor-pairs.js +0 -346
  192. package/packages/config-eslint/node_modules/eslint/lib/rules/array-bracket-newline.js +0 -261
  193. package/packages/config-eslint/node_modules/eslint/lib/rules/array-bracket-spacing.js +0 -244
  194. package/packages/config-eslint/node_modules/eslint/lib/rules/array-callback-return.js +0 -446
  195. package/packages/config-eslint/node_modules/eslint/lib/rules/array-element-newline.js +0 -311
  196. package/packages/config-eslint/node_modules/eslint/lib/rules/arrow-body-style.js +0 -296
  197. package/packages/config-eslint/node_modules/eslint/lib/rules/arrow-parens.js +0 -186
  198. package/packages/config-eslint/node_modules/eslint/lib/rules/arrow-spacing.js +0 -164
  199. package/packages/config-eslint/node_modules/eslint/lib/rules/block-scoped-var.js +0 -135
  200. package/packages/config-eslint/node_modules/eslint/lib/rules/block-spacing.js +0 -174
  201. package/packages/config-eslint/node_modules/eslint/lib/rules/brace-style.js +0 -197
  202. package/packages/config-eslint/node_modules/eslint/lib/rules/callback-return.js +0 -187
  203. package/packages/config-eslint/node_modules/eslint/lib/rules/camelcase.js +0 -397
  204. package/packages/config-eslint/node_modules/eslint/lib/rules/capitalized-comments.js +0 -303
  205. package/packages/config-eslint/node_modules/eslint/lib/rules/class-methods-use-this.js +0 -187
  206. package/packages/config-eslint/node_modules/eslint/lib/rules/comma-dangle.js +0 -373
  207. package/packages/config-eslint/node_modules/eslint/lib/rules/comma-spacing.js +0 -192
  208. package/packages/config-eslint/node_modules/eslint/lib/rules/comma-style.js +0 -314
  209. package/packages/config-eslint/node_modules/eslint/lib/rules/complexity.js +0 -178
  210. package/packages/config-eslint/node_modules/eslint/lib/rules/computed-property-spacing.js +0 -208
  211. package/packages/config-eslint/node_modules/eslint/lib/rules/consistent-return.js +0 -210
  212. package/packages/config-eslint/node_modules/eslint/lib/rules/consistent-this.js +0 -153
  213. package/packages/config-eslint/node_modules/eslint/lib/rules/constructor-super.js +0 -445
  214. package/packages/config-eslint/node_modules/eslint/lib/rules/curly.js +0 -486
  215. package/packages/config-eslint/node_modules/eslint/lib/rules/default-case-last.js +0 -44
  216. package/packages/config-eslint/node_modules/eslint/lib/rules/default-case.js +0 -97
  217. package/packages/config-eslint/node_modules/eslint/lib/rules/default-param-last.js +0 -62
  218. package/packages/config-eslint/node_modules/eslint/lib/rules/dot-location.js +0 -108
  219. package/packages/config-eslint/node_modules/eslint/lib/rules/dot-notation.js +0 -176
  220. package/packages/config-eslint/node_modules/eslint/lib/rules/eol-last.js +0 -115
  221. package/packages/config-eslint/node_modules/eslint/lib/rules/eqeqeq.js +0 -174
  222. package/packages/config-eslint/node_modules/eslint/lib/rules/for-direction.js +0 -140
  223. package/packages/config-eslint/node_modules/eslint/lib/rules/func-call-spacing.js +0 -233
  224. package/packages/config-eslint/node_modules/eslint/lib/rules/func-name-matching.js +0 -253
  225. package/packages/config-eslint/node_modules/eslint/lib/rules/func-names.js +0 -191
  226. package/packages/config-eslint/node_modules/eslint/lib/rules/func-style.js +0 -136
  227. package/packages/config-eslint/node_modules/eslint/lib/rules/function-call-argument-newline.js +0 -125
  228. package/packages/config-eslint/node_modules/eslint/lib/rules/function-paren-newline.js +0 -292
  229. package/packages/config-eslint/node_modules/eslint/lib/rules/generator-star-spacing.js +0 -209
  230. package/packages/config-eslint/node_modules/eslint/lib/rules/getter-return.js +0 -204
  231. package/packages/config-eslint/node_modules/eslint/lib/rules/global-require.js +0 -90
  232. package/packages/config-eslint/node_modules/eslint/lib/rules/grouped-accessor-pairs.js +0 -215
  233. package/packages/config-eslint/node_modules/eslint/lib/rules/guard-for-in.js +0 -76
  234. package/packages/config-eslint/node_modules/eslint/lib/rules/handle-callback-err.js +0 -101
  235. package/packages/config-eslint/node_modules/eslint/lib/rules/id-blacklist.js +0 -246
  236. package/packages/config-eslint/node_modules/eslint/lib/rules/id-denylist.js +0 -228
  237. package/packages/config-eslint/node_modules/eslint/lib/rules/id-length.js +0 -177
  238. package/packages/config-eslint/node_modules/eslint/lib/rules/id-match.js +0 -299
  239. package/packages/config-eslint/node_modules/eslint/lib/rules/implicit-arrow-linebreak.js +0 -84
  240. package/packages/config-eslint/node_modules/eslint/lib/rules/indent-legacy.js +0 -1126
  241. package/packages/config-eslint/node_modules/eslint/lib/rules/indent.js +0 -1803
  242. package/packages/config-eslint/node_modules/eslint/lib/rules/index.js +0 -305
  243. package/packages/config-eslint/node_modules/eslint/lib/rules/init-declarations.js +0 -139
  244. package/packages/config-eslint/node_modules/eslint/lib/rules/jsx-quotes.js +0 -98
  245. package/packages/config-eslint/node_modules/eslint/lib/rules/key-spacing.js +0 -687
  246. package/packages/config-eslint/node_modules/eslint/lib/rules/keyword-spacing.js +0 -640
  247. package/packages/config-eslint/node_modules/eslint/lib/rules/line-comment-position.js +0 -125
  248. package/packages/config-eslint/node_modules/eslint/lib/rules/linebreak-style.js +0 -108
  249. package/packages/config-eslint/node_modules/eslint/lib/rules/lines-around-comment.js +0 -471
  250. package/packages/config-eslint/node_modules/eslint/lib/rules/lines-around-directive.js +0 -201
  251. package/packages/config-eslint/node_modules/eslint/lib/rules/lines-between-class-members.js +0 -269
  252. package/packages/config-eslint/node_modules/eslint/lib/rules/logical-assignment-operators.js +0 -504
  253. package/packages/config-eslint/node_modules/eslint/lib/rules/max-classes-per-file.js +0 -89
  254. package/packages/config-eslint/node_modules/eslint/lib/rules/max-depth.js +0 -156
  255. package/packages/config-eslint/node_modules/eslint/lib/rules/max-len.js +0 -440
  256. package/packages/config-eslint/node_modules/eslint/lib/rules/max-lines-per-function.js +0 -213
  257. package/packages/config-eslint/node_modules/eslint/lib/rules/max-lines.js +0 -193
  258. package/packages/config-eslint/node_modules/eslint/lib/rules/max-nested-callbacks.js +0 -117
  259. package/packages/config-eslint/node_modules/eslint/lib/rules/max-params.js +0 -102
  260. package/packages/config-eslint/node_modules/eslint/lib/rules/max-statements-per-line.js +0 -199
  261. package/packages/config-eslint/node_modules/eslint/lib/rules/max-statements.js +0 -184
  262. package/packages/config-eslint/node_modules/eslint/lib/rules/multiline-comment-style.js +0 -476
  263. package/packages/config-eslint/node_modules/eslint/lib/rules/multiline-ternary.js +0 -174
  264. package/packages/config-eslint/node_modules/eslint/lib/rules/new-cap.js +0 -276
  265. package/packages/config-eslint/node_modules/eslint/lib/rules/new-parens.js +0 -93
  266. package/packages/config-eslint/node_modules/eslint/lib/rules/newline-after-var.js +0 -253
  267. package/packages/config-eslint/node_modules/eslint/lib/rules/newline-before-return.js +0 -217
  268. package/packages/config-eslint/node_modules/eslint/lib/rules/newline-per-chained-call.js +0 -126
  269. package/packages/config-eslint/node_modules/eslint/lib/rules/no-alert.js +0 -138
  270. package/packages/config-eslint/node_modules/eslint/lib/rules/no-array-constructor.js +0 -133
  271. package/packages/config-eslint/node_modules/eslint/lib/rules/no-async-promise-executor.js +0 -39
  272. package/packages/config-eslint/node_modules/eslint/lib/rules/no-await-in-loop.js +0 -106
  273. package/packages/config-eslint/node_modules/eslint/lib/rules/no-bitwise.js +0 -119
  274. package/packages/config-eslint/node_modules/eslint/lib/rules/no-buffer-constructor.js +0 -50
  275. package/packages/config-eslint/node_modules/eslint/lib/rules/no-caller.js +0 -46
  276. package/packages/config-eslint/node_modules/eslint/lib/rules/no-case-declarations.js +0 -76
  277. package/packages/config-eslint/node_modules/eslint/lib/rules/no-catch-shadow.js +0 -82
  278. package/packages/config-eslint/node_modules/eslint/lib/rules/no-class-assign.js +0 -63
  279. package/packages/config-eslint/node_modules/eslint/lib/rules/no-compare-neg-zero.js +0 -60
  280. package/packages/config-eslint/node_modules/eslint/lib/rules/no-cond-assign.js +0 -159
  281. package/packages/config-eslint/node_modules/eslint/lib/rules/no-confusing-arrow.js +0 -92
  282. package/packages/config-eslint/node_modules/eslint/lib/rules/no-console.js +0 -207
  283. package/packages/config-eslint/node_modules/eslint/lib/rules/no-const-assign.js +0 -56
  284. package/packages/config-eslint/node_modules/eslint/lib/rules/no-constant-binary-expression.js +0 -508
  285. package/packages/config-eslint/node_modules/eslint/lib/rules/no-constant-condition.js +0 -161
  286. package/packages/config-eslint/node_modules/eslint/lib/rules/no-constructor-return.js +0 -62
  287. package/packages/config-eslint/node_modules/eslint/lib/rules/no-continue.js +0 -39
  288. package/packages/config-eslint/node_modules/eslint/lib/rules/no-control-regex.js +0 -138
  289. package/packages/config-eslint/node_modules/eslint/lib/rules/no-debugger.js +0 -43
  290. package/packages/config-eslint/node_modules/eslint/lib/rules/no-delete-var.js +0 -42
  291. package/packages/config-eslint/node_modules/eslint/lib/rules/no-div-regex.js +0 -53
  292. package/packages/config-eslint/node_modules/eslint/lib/rules/no-dupe-args.js +0 -82
  293. package/packages/config-eslint/node_modules/eslint/lib/rules/no-dupe-class-members.js +0 -104
  294. package/packages/config-eslint/node_modules/eslint/lib/rules/no-dupe-else-if.js +0 -122
  295. package/packages/config-eslint/node_modules/eslint/lib/rules/no-dupe-keys.js +0 -142
  296. package/packages/config-eslint/node_modules/eslint/lib/rules/no-duplicate-case.js +0 -71
  297. package/packages/config-eslint/node_modules/eslint/lib/rules/no-duplicate-imports.js +0 -290
  298. package/packages/config-eslint/node_modules/eslint/lib/rules/no-else-return.js +0 -405
  299. package/packages/config-eslint/node_modules/eslint/lib/rules/no-empty-character-class.js +0 -76
  300. package/packages/config-eslint/node_modules/eslint/lib/rules/no-empty-function.js +0 -167
  301. package/packages/config-eslint/node_modules/eslint/lib/rules/no-empty-pattern.js +0 -78
  302. package/packages/config-eslint/node_modules/eslint/lib/rules/no-empty-static-block.js +0 -47
  303. package/packages/config-eslint/node_modules/eslint/lib/rules/no-empty.js +0 -103
  304. package/packages/config-eslint/node_modules/eslint/lib/rules/no-eq-null.js +0 -46
  305. package/packages/config-eslint/node_modules/eslint/lib/rules/no-eval.js +0 -286
  306. package/packages/config-eslint/node_modules/eslint/lib/rules/no-ex-assign.js +0 -54
  307. package/packages/config-eslint/node_modules/eslint/lib/rules/no-extend-native.js +0 -178
  308. package/packages/config-eslint/node_modules/eslint/lib/rules/no-extra-bind.js +0 -213
  309. package/packages/config-eslint/node_modules/eslint/lib/rules/no-extra-boolean-cast.js +0 -369
  310. package/packages/config-eslint/node_modules/eslint/lib/rules/no-extra-label.js +0 -149
  311. package/packages/config-eslint/node_modules/eslint/lib/rules/no-extra-parens.js +0 -1322
  312. package/packages/config-eslint/node_modules/eslint/lib/rules/no-extra-semi.js +0 -147
  313. package/packages/config-eslint/node_modules/eslint/lib/rules/no-fallthrough.js +0 -221
  314. package/packages/config-eslint/node_modules/eslint/lib/rules/no-floating-decimal.js +0 -73
  315. package/packages/config-eslint/node_modules/eslint/lib/rules/no-func-assign.js +0 -78
  316. package/packages/config-eslint/node_modules/eslint/lib/rules/no-global-assign.js +0 -95
  317. package/packages/config-eslint/node_modules/eslint/lib/rules/no-implicit-coercion.js +0 -422
  318. package/packages/config-eslint/node_modules/eslint/lib/rules/no-implicit-globals.js +0 -146
  319. package/packages/config-eslint/node_modules/eslint/lib/rules/no-implied-eval.js +0 -132
  320. package/packages/config-eslint/node_modules/eslint/lib/rules/no-import-assign.js +0 -241
  321. package/packages/config-eslint/node_modules/eslint/lib/rules/no-inline-comments.js +0 -110
  322. package/packages/config-eslint/node_modules/eslint/lib/rules/no-inner-declarations.js +0 -131
  323. package/packages/config-eslint/node_modules/eslint/lib/rules/no-invalid-regexp.js +0 -194
  324. package/packages/config-eslint/node_modules/eslint/lib/rules/no-invalid-this.js +0 -150
  325. package/packages/config-eslint/node_modules/eslint/lib/rules/no-irregular-whitespace.js +0 -276
  326. package/packages/config-eslint/node_modules/eslint/lib/rules/no-iterator.js +0 -52
  327. package/packages/config-eslint/node_modules/eslint/lib/rules/no-label-var.js +0 -80
  328. package/packages/config-eslint/node_modules/eslint/lib/rules/no-labels.js +0 -149
  329. package/packages/config-eslint/node_modules/eslint/lib/rules/no-lone-blocks.js +0 -136
  330. package/packages/config-eslint/node_modules/eslint/lib/rules/no-lonely-if.js +0 -88
  331. package/packages/config-eslint/node_modules/eslint/lib/rules/no-loop-func.js +0 -238
  332. package/packages/config-eslint/node_modules/eslint/lib/rules/no-loss-of-precision.js +0 -214
  333. package/packages/config-eslint/node_modules/eslint/lib/rules/no-magic-numbers.js +0 -243
  334. package/packages/config-eslint/node_modules/eslint/lib/rules/no-misleading-character-class.js +0 -537
  335. package/packages/config-eslint/node_modules/eslint/lib/rules/no-mixed-operators.js +0 -229
  336. package/packages/config-eslint/node_modules/eslint/lib/rules/no-mixed-requires.js +0 -238
  337. package/packages/config-eslint/node_modules/eslint/lib/rules/no-mixed-spaces-and-tabs.js +0 -116
  338. package/packages/config-eslint/node_modules/eslint/lib/rules/no-multi-assign.js +0 -67
  339. package/packages/config-eslint/node_modules/eslint/lib/rules/no-multi-spaces.js +0 -141
  340. package/packages/config-eslint/node_modules/eslint/lib/rules/no-multi-str.js +0 -65
  341. package/packages/config-eslint/node_modules/eslint/lib/rules/no-multiple-empty-lines.js +0 -154
  342. package/packages/config-eslint/node_modules/eslint/lib/rules/no-native-reassign.js +0 -98
  343. package/packages/config-eslint/node_modules/eslint/lib/rules/no-negated-condition.js +0 -95
  344. package/packages/config-eslint/node_modules/eslint/lib/rules/no-negated-in-lhs.js +0 -46
  345. package/packages/config-eslint/node_modules/eslint/lib/rules/no-nested-ternary.js +0 -44
  346. package/packages/config-eslint/node_modules/eslint/lib/rules/no-new-func.js +0 -87
  347. package/packages/config-eslint/node_modules/eslint/lib/rules/no-new-native-nonconstructor.js +0 -66
  348. package/packages/config-eslint/node_modules/eslint/lib/rules/no-new-object.js +0 -67
  349. package/packages/config-eslint/node_modules/eslint/lib/rules/no-new-require.js +0 -50
  350. package/packages/config-eslint/node_modules/eslint/lib/rules/no-new-symbol.js +0 -63
  351. package/packages/config-eslint/node_modules/eslint/lib/rules/no-new-wrappers.js +0 -60
  352. package/packages/config-eslint/node_modules/eslint/lib/rules/no-new.js +0 -43
  353. package/packages/config-eslint/node_modules/eslint/lib/rules/no-nonoctal-decimal-escape.js +0 -148
  354. package/packages/config-eslint/node_modules/eslint/lib/rules/no-obj-calls.js +0 -86
  355. package/packages/config-eslint/node_modules/eslint/lib/rules/no-object-constructor.js +0 -117
  356. package/packages/config-eslint/node_modules/eslint/lib/rules/no-octal-escape.js +0 -56
  357. package/packages/config-eslint/node_modules/eslint/lib/rules/no-octal.js +0 -45
  358. package/packages/config-eslint/node_modules/eslint/lib/rules/no-param-reassign.js +0 -230
  359. package/packages/config-eslint/node_modules/eslint/lib/rules/no-path-concat.js +0 -64
  360. package/packages/config-eslint/node_modules/eslint/lib/rules/no-plusplus.js +0 -105
  361. package/packages/config-eslint/node_modules/eslint/lib/rules/no-process-env.js +0 -51
  362. package/packages/config-eslint/node_modules/eslint/lib/rules/no-process-exit.js +0 -47
  363. package/packages/config-eslint/node_modules/eslint/lib/rules/no-promise-executor-return.js +0 -263
  364. package/packages/config-eslint/node_modules/eslint/lib/rules/no-proto.js +0 -48
  365. package/packages/config-eslint/node_modules/eslint/lib/rules/no-prototype-builtins.js +0 -159
  366. package/packages/config-eslint/node_modules/eslint/lib/rules/no-redeclare.js +0 -174
  367. package/packages/config-eslint/node_modules/eslint/lib/rules/no-regex-spaces.js +0 -197
  368. package/packages/config-eslint/node_modules/eslint/lib/rules/no-restricted-exports.js +0 -204
  369. package/packages/config-eslint/node_modules/eslint/lib/rules/no-restricted-globals.js +0 -124
  370. package/packages/config-eslint/node_modules/eslint/lib/rules/no-restricted-imports.js +0 -563
  371. package/packages/config-eslint/node_modules/eslint/lib/rules/no-restricted-modules.js +0 -213
  372. package/packages/config-eslint/node_modules/eslint/lib/rules/no-restricted-properties.js +0 -168
  373. package/packages/config-eslint/node_modules/eslint/lib/rules/no-restricted-syntax.js +0 -70
  374. package/packages/config-eslint/node_modules/eslint/lib/rules/no-return-assign.js +0 -80
  375. package/packages/config-eslint/node_modules/eslint/lib/rules/no-return-await.js +0 -135
  376. package/packages/config-eslint/node_modules/eslint/lib/rules/no-script-url.js +0 -61
  377. package/packages/config-eslint/node_modules/eslint/lib/rules/no-self-assign.js +0 -183
  378. package/packages/config-eslint/node_modules/eslint/lib/rules/no-self-compare.js +0 -60
  379. package/packages/config-eslint/node_modules/eslint/lib/rules/no-sequences.js +0 -139
  380. package/packages/config-eslint/node_modules/eslint/lib/rules/no-setter-return.js +0 -226
  381. package/packages/config-eslint/node_modules/eslint/lib/rules/no-shadow-restricted-names.js +0 -65
  382. package/packages/config-eslint/node_modules/eslint/lib/rules/no-shadow.js +0 -336
  383. package/packages/config-eslint/node_modules/eslint/lib/rules/no-spaced-func.js +0 -83
  384. package/packages/config-eslint/node_modules/eslint/lib/rules/no-sparse-arrays.js +0 -73
  385. package/packages/config-eslint/node_modules/eslint/lib/rules/no-sync.js +0 -64
  386. package/packages/config-eslint/node_modules/eslint/lib/rules/no-tabs.js +0 -81
  387. package/packages/config-eslint/node_modules/eslint/lib/rules/no-template-curly-in-string.js +0 -44
  388. package/packages/config-eslint/node_modules/eslint/lib/rules/no-ternary.js +0 -41
  389. package/packages/config-eslint/node_modules/eslint/lib/rules/no-this-before-super.js +0 -363
  390. package/packages/config-eslint/node_modules/eslint/lib/rules/no-throw-literal.js +0 -51
  391. package/packages/config-eslint/node_modules/eslint/lib/rules/no-trailing-spaces.js +0 -192
  392. package/packages/config-eslint/node_modules/eslint/lib/rules/no-undef-init.js +0 -75
  393. package/packages/config-eslint/node_modules/eslint/lib/rules/no-undef.js +0 -79
  394. package/packages/config-eslint/node_modules/eslint/lib/rules/no-undefined.js +0 -86
  395. package/packages/config-eslint/node_modules/eslint/lib/rules/no-underscore-dangle.js +0 -335
  396. package/packages/config-eslint/node_modules/eslint/lib/rules/no-unexpected-multiline.js +0 -120
  397. package/packages/config-eslint/node_modules/eslint/lib/rules/no-unmodified-loop-condition.js +0 -360
  398. package/packages/config-eslint/node_modules/eslint/lib/rules/no-unneeded-ternary.js +0 -166
  399. package/packages/config-eslint/node_modules/eslint/lib/rules/no-unreachable-loop.js +0 -185
  400. package/packages/config-eslint/node_modules/eslint/lib/rules/no-unreachable.js +0 -293
  401. package/packages/config-eslint/node_modules/eslint/lib/rules/no-unsafe-finally.js +0 -111
  402. package/packages/config-eslint/node_modules/eslint/lib/rules/no-unsafe-negation.js +0 -128
  403. package/packages/config-eslint/node_modules/eslint/lib/rules/no-unsafe-optional-chaining.js +0 -205
  404. package/packages/config-eslint/node_modules/eslint/lib/rules/no-unused-expressions.js +0 -186
  405. package/packages/config-eslint/node_modules/eslint/lib/rules/no-unused-labels.js +0 -143
  406. package/packages/config-eslint/node_modules/eslint/lib/rules/no-unused-private-class-members.js +0 -195
  407. package/packages/config-eslint/node_modules/eslint/lib/rules/no-unused-vars.js +0 -881
  408. package/packages/config-eslint/node_modules/eslint/lib/rules/no-use-before-define.js +0 -348
  409. package/packages/config-eslint/node_modules/eslint/lib/rules/no-useless-assignment.js +0 -566
  410. package/packages/config-eslint/node_modules/eslint/lib/rules/no-useless-backreference.js +0 -244
  411. package/packages/config-eslint/node_modules/eslint/lib/rules/no-useless-call.js +0 -90
  412. package/packages/config-eslint/node_modules/eslint/lib/rules/no-useless-catch.js +0 -57
  413. package/packages/config-eslint/node_modules/eslint/lib/rules/no-useless-computed-key.js +0 -168
  414. package/packages/config-eslint/node_modules/eslint/lib/rules/no-useless-concat.js +0 -115
  415. package/packages/config-eslint/node_modules/eslint/lib/rules/no-useless-constructor.js +0 -189
  416. package/packages/config-eslint/node_modules/eslint/lib/rules/no-useless-escape.js +0 -333
  417. package/packages/config-eslint/node_modules/eslint/lib/rules/no-useless-rename.js +0 -172
  418. package/packages/config-eslint/node_modules/eslint/lib/rules/no-useless-return.js +0 -369
  419. package/packages/config-eslint/node_modules/eslint/lib/rules/no-var.js +0 -334
  420. package/packages/config-eslint/node_modules/eslint/lib/rules/no-void.js +0 -64
  421. package/packages/config-eslint/node_modules/eslint/lib/rules/no-warning-comments.js +0 -201
  422. package/packages/config-eslint/node_modules/eslint/lib/rules/no-whitespace-before-property.js +0 -116
  423. package/packages/config-eslint/node_modules/eslint/lib/rules/no-with.js +0 -39
  424. package/packages/config-eslint/node_modules/eslint/lib/rules/nonblock-statement-body-position.js +0 -127
  425. package/packages/config-eslint/node_modules/eslint/lib/rules/object-curly-newline.js +0 -324
  426. package/packages/config-eslint/node_modules/eslint/lib/rules/object-curly-spacing.js +0 -311
  427. package/packages/config-eslint/node_modules/eslint/lib/rules/object-property-newline.js +0 -102
  428. package/packages/config-eslint/node_modules/eslint/lib/rules/object-shorthand.js +0 -521
  429. package/packages/config-eslint/node_modules/eslint/lib/rules/one-var-declaration-per-line.js +0 -95
  430. package/packages/config-eslint/node_modules/eslint/lib/rules/one-var.js +0 -567
  431. package/packages/config-eslint/node_modules/eslint/lib/rules/operator-assignment.js +0 -209
  432. package/packages/config-eslint/node_modules/eslint/lib/rules/operator-linebreak.js +0 -253
  433. package/packages/config-eslint/node_modules/eslint/lib/rules/padded-blocks.js +0 -310
  434. package/packages/config-eslint/node_modules/eslint/lib/rules/padding-line-between-statements.js +0 -590
  435. package/packages/config-eslint/node_modules/eslint/lib/rules/prefer-arrow-callback.js +0 -381
  436. package/packages/config-eslint/node_modules/eslint/lib/rules/prefer-const.js +0 -501
  437. package/packages/config-eslint/node_modules/eslint/lib/rules/prefer-destructuring.js +0 -301
  438. package/packages/config-eslint/node_modules/eslint/lib/rules/prefer-exponentiation-operator.js +0 -191
  439. package/packages/config-eslint/node_modules/eslint/lib/rules/prefer-named-capture-group.js +0 -178
  440. package/packages/config-eslint/node_modules/eslint/lib/rules/prefer-numeric-literals.js +0 -148
  441. package/packages/config-eslint/node_modules/eslint/lib/rules/prefer-object-has-own.js +0 -114
  442. package/packages/config-eslint/node_modules/eslint/lib/rules/prefer-object-spread.js +0 -298
  443. package/packages/config-eslint/node_modules/eslint/lib/rules/prefer-promise-reject-errors.js +0 -132
  444. package/packages/config-eslint/node_modules/eslint/lib/rules/prefer-reflect.js +0 -127
  445. package/packages/config-eslint/node_modules/eslint/lib/rules/prefer-regex-literals.js +0 -507
  446. package/packages/config-eslint/node_modules/eslint/lib/rules/prefer-rest-params.js +0 -118
  447. package/packages/config-eslint/node_modules/eslint/lib/rules/prefer-spread.js +0 -87
  448. package/packages/config-eslint/node_modules/eslint/lib/rules/prefer-template.js +0 -275
  449. package/packages/config-eslint/node_modules/eslint/lib/rules/quote-props.js +0 -310
  450. package/packages/config-eslint/node_modules/eslint/lib/rules/quotes.js +0 -350
  451. package/packages/config-eslint/node_modules/eslint/lib/rules/radix.js +0 -198
  452. package/packages/config-eslint/node_modules/eslint/lib/rules/require-atomic-updates.js +0 -331
  453. package/packages/config-eslint/node_modules/eslint/lib/rules/require-await.js +0 -147
  454. package/packages/config-eslint/node_modules/eslint/lib/rules/require-unicode-regexp.js +0 -129
  455. package/packages/config-eslint/node_modules/eslint/lib/rules/require-yield.js +0 -77
  456. package/packages/config-eslint/node_modules/eslint/lib/rules/rest-spread-spacing.js +0 -123
  457. package/packages/config-eslint/node_modules/eslint/lib/rules/semi-spacing.js +0 -248
  458. package/packages/config-eslint/node_modules/eslint/lib/rules/semi-style.js +0 -158
  459. package/packages/config-eslint/node_modules/eslint/lib/rules/semi.js +0 -438
  460. package/packages/config-eslint/node_modules/eslint/lib/rules/sort-imports.js +0 -241
  461. package/packages/config-eslint/node_modules/eslint/lib/rules/sort-keys.js +0 -230
  462. package/packages/config-eslint/node_modules/eslint/lib/rules/sort-vars.js +0 -104
  463. package/packages/config-eslint/node_modules/eslint/lib/rules/space-before-blocks.js +0 -204
  464. package/packages/config-eslint/node_modules/eslint/lib/rules/space-before-function-paren.js +0 -167
  465. package/packages/config-eslint/node_modules/eslint/lib/rules/space-in-parens.js +0 -285
  466. package/packages/config-eslint/node_modules/eslint/lib/rules/space-infix-ops.js +0 -198
  467. package/packages/config-eslint/node_modules/eslint/lib/rules/space-unary-ops.js +0 -324
  468. package/packages/config-eslint/node_modules/eslint/lib/rules/spaced-comment.js +0 -385
  469. package/packages/config-eslint/node_modules/eslint/lib/rules/strict.js +0 -277
  470. package/packages/config-eslint/node_modules/eslint/lib/rules/switch-colon-spacing.js +0 -132
  471. package/packages/config-eslint/node_modules/eslint/lib/rules/symbol-description.js +0 -73
  472. package/packages/config-eslint/node_modules/eslint/lib/rules/template-curly-spacing.js +0 -144
  473. package/packages/config-eslint/node_modules/eslint/lib/rules/template-tag-spacing.js +0 -93
  474. package/packages/config-eslint/node_modules/eslint/lib/rules/unicode-bom.js +0 -73
  475. package/packages/config-eslint/node_modules/eslint/lib/rules/use-isnan.js +0 -235
  476. package/packages/config-eslint/node_modules/eslint/lib/rules/utils/ast-utils.js +0 -2292
  477. package/packages/config-eslint/node_modules/eslint/lib/rules/utils/char-source.js +0 -240
  478. package/packages/config-eslint/node_modules/eslint/lib/rules/utils/fix-tracker.js +0 -114
  479. package/packages/config-eslint/node_modules/eslint/lib/rules/utils/keywords.js +0 -67
  480. package/packages/config-eslint/node_modules/eslint/lib/rules/utils/lazy-loading-rule-map.js +0 -115
  481. package/packages/config-eslint/node_modules/eslint/lib/rules/utils/regular-expressions.js +0 -42
  482. package/packages/config-eslint/node_modules/eslint/lib/rules/utils/unicode/index.js +0 -16
  483. package/packages/config-eslint/node_modules/eslint/lib/rules/utils/unicode/is-combining-character.js +0 -13
  484. package/packages/config-eslint/node_modules/eslint/lib/rules/utils/unicode/is-emoji-modifier.js +0 -13
  485. package/packages/config-eslint/node_modules/eslint/lib/rules/utils/unicode/is-regional-indicator-symbol.js +0 -13
  486. package/packages/config-eslint/node_modules/eslint/lib/rules/utils/unicode/is-surrogate-pair.js +0 -14
  487. package/packages/config-eslint/node_modules/eslint/lib/rules/valid-typeof.js +0 -127
  488. package/packages/config-eslint/node_modules/eslint/lib/rules/vars-on-top.js +0 -157
  489. package/packages/config-eslint/node_modules/eslint/lib/rules/wrap-iife.js +0 -207
  490. package/packages/config-eslint/node_modules/eslint/lib/rules/wrap-regex.js +0 -61
  491. package/packages/config-eslint/node_modules/eslint/lib/rules/yield-star-spacing.js +0 -130
  492. package/packages/config-eslint/node_modules/eslint/lib/rules/yoda.js +0 -353
  493. package/packages/config-eslint/node_modules/eslint/lib/shared/ajv.js +0 -34
  494. package/packages/config-eslint/node_modules/eslint/lib/shared/ast-utils.js +0 -29
  495. package/packages/config-eslint/node_modules/eslint/lib/shared/directives.js +0 -15
  496. package/packages/config-eslint/node_modules/eslint/lib/shared/flags.js +0 -27
  497. package/packages/config-eslint/node_modules/eslint/lib/shared/logging.js +0 -39
  498. package/packages/config-eslint/node_modules/eslint/lib/shared/runtime-info.js +0 -168
  499. package/packages/config-eslint/node_modules/eslint/lib/shared/serialization.js +0 -55
  500. package/packages/config-eslint/node_modules/eslint/lib/shared/severity.js +0 -49
  501. package/packages/config-eslint/node_modules/eslint/lib/shared/stats.js +0 -30
  502. package/packages/config-eslint/node_modules/eslint/lib/shared/string-utils.js +0 -58
  503. package/packages/config-eslint/node_modules/eslint/lib/shared/traverser.js +0 -195
  504. package/packages/config-eslint/node_modules/eslint/lib/shared/types.js +0 -250
  505. package/packages/config-eslint/node_modules/eslint/lib/unsupported-api.js +0 -28
  506. package/packages/config-eslint/node_modules/eslint/messages/all-files-ignored.js +0 -16
  507. package/packages/config-eslint/node_modules/eslint/messages/all-matched-files-ignored.js +0 -21
  508. package/packages/config-eslint/node_modules/eslint/messages/config-file-missing.js +0 -16
  509. package/packages/config-eslint/node_modules/eslint/messages/eslintrc-incompat.js +0 -119
  510. package/packages/config-eslint/node_modules/eslint/messages/eslintrc-plugins.js +0 -24
  511. package/packages/config-eslint/node_modules/eslint/messages/extend-config-missing.js +0 -13
  512. package/packages/config-eslint/node_modules/eslint/messages/failed-to-read-json.js +0 -11
  513. package/packages/config-eslint/node_modules/eslint/messages/file-not-found.js +0 -10
  514. package/packages/config-eslint/node_modules/eslint/messages/invalid-rule-options.js +0 -17
  515. package/packages/config-eslint/node_modules/eslint/messages/invalid-rule-severity.js +0 -13
  516. package/packages/config-eslint/node_modules/eslint/messages/no-config-found.js +0 -15
  517. package/packages/config-eslint/node_modules/eslint/messages/plugin-conflict.js +0 -22
  518. package/packages/config-eslint/node_modules/eslint/messages/plugin-invalid.js +0 -16
  519. package/packages/config-eslint/node_modules/eslint/messages/plugin-missing.js +0 -19
  520. package/packages/config-eslint/node_modules/eslint/messages/print-config-with-directory-path.js +0 -8
  521. package/packages/config-eslint/node_modules/eslint/messages/shared.js +0 -18
  522. package/packages/config-eslint/node_modules/eslint/messages/whitespace-found.js +0 -11
  523. package/packages/config-eslint/node_modules/eslint/package.json +0 -188
  524. package/packages/config-eslint/node_modules/eslint-scope/LICENSE +0 -22
  525. package/packages/config-eslint/node_modules/eslint-scope/README.md +0 -91
  526. package/packages/config-eslint/node_modules/eslint-scope/dist/eslint-scope.cjs +0 -2266
  527. package/packages/config-eslint/node_modules/eslint-scope/lib/definition.js +0 -85
  528. package/packages/config-eslint/node_modules/eslint-scope/lib/index.js +0 -169
  529. package/packages/config-eslint/node_modules/eslint-scope/lib/pattern-visitor.js +0 -154
  530. package/packages/config-eslint/node_modules/eslint-scope/lib/reference.js +0 -166
  531. package/packages/config-eslint/node_modules/eslint-scope/lib/referencer.js +0 -656
  532. package/packages/config-eslint/node_modules/eslint-scope/lib/scope-manager.js +0 -249
  533. package/packages/config-eslint/node_modules/eslint-scope/lib/scope.js +0 -793
  534. package/packages/config-eslint/node_modules/eslint-scope/lib/variable.js +0 -87
  535. package/packages/config-eslint/node_modules/eslint-scope/lib/version.js +0 -3
  536. package/packages/config-eslint/node_modules/eslint-scope/package.json +0 -65
  537. package/packages/config-eslint/node_modules/eslint-visitor-keys/LICENSE +0 -201
  538. package/packages/config-eslint/node_modules/eslint-visitor-keys/README.md +0 -105
  539. package/packages/config-eslint/node_modules/eslint-visitor-keys/dist/eslint-visitor-keys.cjs +0 -384
  540. package/packages/config-eslint/node_modules/eslint-visitor-keys/dist/eslint-visitor-keys.d.cts +0 -27
  541. package/packages/config-eslint/node_modules/eslint-visitor-keys/dist/index.d.ts +0 -16
  542. package/packages/config-eslint/node_modules/eslint-visitor-keys/dist/visitor-keys.d.ts +0 -12
  543. package/packages/config-eslint/node_modules/eslint-visitor-keys/lib/index.js +0 -65
  544. package/packages/config-eslint/node_modules/eslint-visitor-keys/lib/visitor-keys.js +0 -315
  545. package/packages/config-eslint/node_modules/eslint-visitor-keys/package.json +0 -74
  546. package/packages/config-eslint/node_modules/file-entry-cache/LICENSE +0 -22
  547. package/packages/config-eslint/node_modules/file-entry-cache/README.md +0 -115
  548. package/packages/config-eslint/node_modules/file-entry-cache/cache.js +0 -291
  549. package/packages/config-eslint/node_modules/file-entry-cache/package.json +0 -56
  550. package/packages/config-eslint/node_modules/find-up/index.d.ts +0 -138
  551. package/packages/config-eslint/node_modules/find-up/index.js +0 -89
  552. package/packages/config-eslint/node_modules/find-up/license +0 -9
  553. package/packages/config-eslint/node_modules/find-up/package.json +0 -54
  554. package/packages/config-eslint/node_modules/find-up/readme.md +0 -151
  555. package/packages/config-eslint/node_modules/flat-cache/LICENSE +0 -22
  556. package/packages/config-eslint/node_modules/flat-cache/README.md +0 -77
  557. package/packages/config-eslint/node_modules/flat-cache/changelog.md +0 -278
  558. package/packages/config-eslint/node_modules/flat-cache/package.json +0 -63
  559. package/packages/config-eslint/node_modules/flat-cache/src/cache.js +0 -214
  560. package/packages/config-eslint/node_modules/flat-cache/src/del.js +0 -30
  561. package/packages/config-eslint/node_modules/flat-cache/src/utils.js +0 -42
  562. package/packages/config-eslint/node_modules/glob-parent/LICENSE +0 -15
  563. package/packages/config-eslint/node_modules/glob-parent/README.md +0 -134
  564. package/packages/config-eslint/node_modules/glob-parent/index.js +0 -75
  565. package/packages/config-eslint/node_modules/glob-parent/package.json +0 -54
  566. package/packages/config-eslint/node_modules/json-schema-traverse/.eslintrc.yml +0 -27
  567. package/packages/config-eslint/node_modules/json-schema-traverse/.travis.yml +0 -8
  568. package/packages/config-eslint/node_modules/json-schema-traverse/LICENSE +0 -21
  569. package/packages/config-eslint/node_modules/json-schema-traverse/README.md +0 -83
  570. package/packages/config-eslint/node_modules/json-schema-traverse/index.js +0 -89
  571. package/packages/config-eslint/node_modules/json-schema-traverse/package.json +0 -43
  572. package/packages/config-eslint/node_modules/json-schema-traverse/spec/.eslintrc.yml +0 -6
  573. package/packages/config-eslint/node_modules/json-schema-traverse/spec/fixtures/schema.js +0 -125
  574. package/packages/config-eslint/node_modules/json-schema-traverse/spec/index.spec.js +0 -171
  575. package/packages/config-eslint/node_modules/locate-path/index.d.ts +0 -83
  576. package/packages/config-eslint/node_modules/locate-path/index.js +0 -68
  577. package/packages/config-eslint/node_modules/locate-path/license +0 -9
  578. package/packages/config-eslint/node_modules/locate-path/package.json +0 -46
  579. package/packages/config-eslint/node_modules/locate-path/readme.md +0 -125
  580. package/packages/config-eslint/node_modules/p-limit/index.d.ts +0 -42
  581. package/packages/config-eslint/node_modules/p-limit/index.js +0 -71
  582. package/packages/config-eslint/node_modules/p-limit/license +0 -9
  583. package/packages/config-eslint/node_modules/p-limit/package.json +0 -52
  584. package/packages/config-eslint/node_modules/p-limit/readme.md +0 -101
  585. package/packages/config-eslint/node_modules/p-locate/index.d.ts +0 -53
  586. package/packages/config-eslint/node_modules/p-locate/index.js +0 -50
  587. package/packages/config-eslint/node_modules/p-locate/license +0 -9
  588. package/packages/config-eslint/node_modules/p-locate/package.json +0 -54
  589. package/packages/config-eslint/node_modules/p-locate/readme.md +0 -93
  590. package/packages/config-eslint/node_modules/path-exists/index.d.ts +0 -28
  591. package/packages/config-eslint/node_modules/path-exists/index.js +0 -23
  592. package/packages/config-eslint/node_modules/path-exists/license +0 -9
  593. package/packages/config-eslint/node_modules/path-exists/package.json +0 -39
  594. package/packages/config-eslint/node_modules/path-exists/readme.md +0 -52
  595. package/packages/config-eslint/node_modules/yocto-queue/index.d.ts +0 -56
  596. package/packages/config-eslint/node_modules/yocto-queue/index.js +0 -68
  597. package/packages/config-eslint/node_modules/yocto-queue/license +0 -9
  598. package/packages/config-eslint/node_modules/yocto-queue/package.json +0 -43
  599. package/packages/config-eslint/node_modules/yocto-queue/readme.md +0 -64
@@ -1,508 +0,0 @@
1
- /**
2
- * @fileoverview Rule to flag constant comparisons and logical expressions that always/never short circuit
3
- * @author Jordan Eldredge <https://jordaneldredge.com>
4
- */
5
-
6
- "use strict";
7
-
8
- const { isNullLiteral, isConstant, isReferenceToGlobalVariable, isLogicalAssignmentOperator, ECMASCRIPT_GLOBALS } = require("./utils/ast-utils");
9
-
10
- const NUMERIC_OR_STRING_BINARY_OPERATORS = new Set(["+", "-", "*", "/", "%", "|", "^", "&", "**", "<<", ">>", ">>>"]);
11
-
12
- //------------------------------------------------------------------------------
13
- // Helpers
14
- //------------------------------------------------------------------------------
15
-
16
- /**
17
- * Checks whether or not a node is `null` or `undefined`. Similar to the one
18
- * found in ast-utils.js, but this one correctly handles the edge case that
19
- * `undefined` has been redefined.
20
- * @param {Scope} scope Scope in which the expression was found.
21
- * @param {ASTNode} node A node to check.
22
- * @returns {boolean} Whether or not the node is a `null` or `undefined`.
23
- * @public
24
- */
25
- function isNullOrUndefined(scope, node) {
26
- return (
27
- isNullLiteral(node) ||
28
- (node.type === "Identifier" && node.name === "undefined" && isReferenceToGlobalVariable(scope, node)) ||
29
- (node.type === "UnaryExpression" && node.operator === "void")
30
- );
31
- }
32
-
33
- /**
34
- * Test if an AST node has a statically knowable constant nullishness. Meaning,
35
- * it will always resolve to a constant value of either: `null`, `undefined`
36
- * or not `null` _or_ `undefined`. An expression that can vary between those
37
- * three states at runtime would return `false`.
38
- * @param {Scope} scope The scope in which the node was found.
39
- * @param {ASTNode} node The AST node being tested.
40
- * @param {boolean} nonNullish if `true` then nullish values are not considered constant.
41
- * @returns {boolean} Does `node` have constant nullishness?
42
- */
43
- function hasConstantNullishness(scope, node, nonNullish) {
44
- if (nonNullish && isNullOrUndefined(scope, node)) {
45
- return false;
46
- }
47
-
48
- switch (node.type) {
49
- case "ObjectExpression": // Objects are never nullish
50
- case "ArrayExpression": // Arrays are never nullish
51
- case "ArrowFunctionExpression": // Functions never nullish
52
- case "FunctionExpression": // Functions are never nullish
53
- case "ClassExpression": // Classes are never nullish
54
- case "NewExpression": // Objects are never nullish
55
- case "Literal": // Nullish, or non-nullish, literals never change
56
- case "TemplateLiteral": // A string is never nullish
57
- case "UpdateExpression": // Numbers are never nullish
58
- case "BinaryExpression": // Numbers, strings, or booleans are never nullish
59
- return true;
60
- case "CallExpression": {
61
- if (node.callee.type !== "Identifier") {
62
- return false;
63
- }
64
- const functionName = node.callee.name;
65
-
66
- return (functionName === "Boolean" || functionName === "String" || functionName === "Number") &&
67
- isReferenceToGlobalVariable(scope, node.callee);
68
- }
69
- case "LogicalExpression": {
70
- return node.operator === "??" && hasConstantNullishness(scope, node.right, true);
71
- }
72
- case "AssignmentExpression":
73
- if (node.operator === "=") {
74
- return hasConstantNullishness(scope, node.right, nonNullish);
75
- }
76
-
77
- /*
78
- * Handling short-circuiting assignment operators would require
79
- * walking the scope. We won't attempt that (for now...) /
80
- */
81
- if (isLogicalAssignmentOperator(node.operator)) {
82
- return false;
83
- }
84
-
85
- /*
86
- * The remaining assignment expressions all result in a numeric or
87
- * string (non-nullish) value:
88
- * "+=", "-=", "*=", "/=", "%=", "<<=", ">>=", ">>>=", "|=", "^=", "&="
89
- */
90
-
91
- return true;
92
- case "UnaryExpression":
93
-
94
- /*
95
- * "void" Always returns `undefined`
96
- * "typeof" All types are strings, and thus non-nullish
97
- * "!" Boolean is never nullish
98
- * "delete" Returns a boolean, which is never nullish
99
- * Math operators always return numbers or strings, neither of which
100
- * are non-nullish "+", "-", "~"
101
- */
102
-
103
- return true;
104
- case "SequenceExpression": {
105
- const last = node.expressions.at(-1);
106
-
107
- return hasConstantNullishness(scope, last, nonNullish);
108
- }
109
- case "Identifier":
110
- return node.name === "undefined" && isReferenceToGlobalVariable(scope, node);
111
- case "JSXElement": // ESLint has a policy of not assuming any specific JSX behavior.
112
- case "JSXFragment":
113
- return false;
114
- default:
115
- return false;
116
- }
117
- }
118
-
119
- /**
120
- * Test if an AST node is a boolean value that never changes. Specifically we
121
- * test for:
122
- * 1. Literal booleans (`true` or `false`)
123
- * 2. Unary `!` expressions with a constant value
124
- * 3. Constant booleans created via the `Boolean` global function
125
- * @param {Scope} scope The scope in which the node was found.
126
- * @param {ASTNode} node The node to test
127
- * @returns {boolean} Is `node` guaranteed to be a boolean?
128
- */
129
- function isStaticBoolean(scope, node) {
130
- switch (node.type) {
131
- case "Literal":
132
- return typeof node.value === "boolean";
133
- case "CallExpression":
134
- return node.callee.type === "Identifier" && node.callee.name === "Boolean" &&
135
- isReferenceToGlobalVariable(scope, node.callee) &&
136
- (node.arguments.length === 0 || isConstant(scope, node.arguments[0], true));
137
- case "UnaryExpression":
138
- return node.operator === "!" && isConstant(scope, node.argument, true);
139
- default:
140
- return false;
141
- }
142
- }
143
-
144
-
145
- /**
146
- * Test if an AST node will always give the same result when compared to a
147
- * boolean value. Note that comparison to boolean values is different than
148
- * truthiness.
149
- * https://262.ecma-international.org/5.1/#sec-11.9.3
150
- *
151
- * JavaScript `==` operator works by converting the boolean to `1` (true) or
152
- * `+0` (false) and then checks the values `==` equality to that number.
153
- * @param {Scope} scope The scope in which node was found.
154
- * @param {ASTNode} node The node to test.
155
- * @returns {boolean} Will `node` always coerce to the same boolean value?
156
- */
157
- function hasConstantLooseBooleanComparison(scope, node) {
158
- switch (node.type) {
159
- case "ObjectExpression":
160
- case "ClassExpression":
161
-
162
- /**
163
- * In theory objects like:
164
- *
165
- * `{toString: () => a}`
166
- * `{valueOf: () => a}`
167
- *
168
- * Or a classes like:
169
- *
170
- * `class { static toString() { return a } }`
171
- * `class { static valueOf() { return a } }`
172
- *
173
- * Are not constant verifiably when `inBooleanPosition` is
174
- * false, but it's an edge case we've opted not to handle.
175
- */
176
- return true;
177
- case "ArrayExpression": {
178
- const nonSpreadElements = node.elements.filter(e =>
179
-
180
- // Elements can be `null` in sparse arrays: `[,,]`;
181
- e !== null && e.type !== "SpreadElement");
182
-
183
-
184
- /*
185
- * Possible future direction if needed: We could check if the
186
- * single value would result in variable boolean comparison.
187
- * For now we will err on the side of caution since `[x]` could
188
- * evaluate to `[0]` or `[1]`.
189
- */
190
- return node.elements.length === 0 || nonSpreadElements.length > 1;
191
- }
192
- case "ArrowFunctionExpression":
193
- case "FunctionExpression":
194
- return true;
195
- case "UnaryExpression":
196
- if (node.operator === "void" || // Always returns `undefined`
197
- node.operator === "typeof" // All `typeof` strings, when coerced to number, are not 0 or 1.
198
- ) {
199
- return true;
200
- }
201
- if (node.operator === "!") {
202
- return isConstant(scope, node.argument, true);
203
- }
204
-
205
- /*
206
- * We won't try to reason about +, -, ~, or delete
207
- * In theory, for the mathematical operators, we could look at the
208
- * argument and try to determine if it coerces to a constant numeric
209
- * value.
210
- */
211
- return false;
212
- case "NewExpression": // Objects might have custom `.valueOf` or `.toString`.
213
- return false;
214
- case "CallExpression": {
215
- if (node.callee.type === "Identifier" &&
216
- node.callee.name === "Boolean" &&
217
- isReferenceToGlobalVariable(scope, node.callee)
218
- ) {
219
- return node.arguments.length === 0 || isConstant(scope, node.arguments[0], true);
220
- }
221
- return false;
222
- }
223
- case "Literal": // True or false, literals never change
224
- return true;
225
- case "Identifier":
226
- return node.name === "undefined" && isReferenceToGlobalVariable(scope, node);
227
- case "TemplateLiteral":
228
-
229
- /*
230
- * In theory we could try to check if the quasi are sufficient to
231
- * prove that the expression will always be true, but it would be
232
- * tricky to get right. For example: `000.${foo}000`
233
- */
234
- return node.expressions.length === 0;
235
- case "AssignmentExpression":
236
- if (node.operator === "=") {
237
- return hasConstantLooseBooleanComparison(scope, node.right);
238
- }
239
-
240
- /*
241
- * Handling short-circuiting assignment operators would require
242
- * walking the scope. We won't attempt that (for now...)
243
- *
244
- * The remaining assignment expressions all result in a numeric or
245
- * string (non-nullish) values which could be truthy or falsy:
246
- * "+=", "-=", "*=", "/=", "%=", "<<=", ">>=", ">>>=", "|=", "^=", "&="
247
- */
248
- return false;
249
- case "SequenceExpression": {
250
- const last = node.expressions.at(-1);
251
-
252
- return hasConstantLooseBooleanComparison(scope, last);
253
- }
254
- case "JSXElement": // ESLint has a policy of not assuming any specific JSX behavior.
255
- case "JSXFragment":
256
- return false;
257
- default:
258
- return false;
259
- }
260
- }
261
-
262
-
263
- /**
264
- * Test if an AST node will always give the same result when _strictly_ compared
265
- * to a boolean value. This can happen if the expression can never be boolean, or
266
- * if it is always the same boolean value.
267
- * @param {Scope} scope The scope in which the node was found.
268
- * @param {ASTNode} node The node to test
269
- * @returns {boolean} Will `node` always give the same result when compared to a
270
- * static boolean value?
271
- */
272
- function hasConstantStrictBooleanComparison(scope, node) {
273
- switch (node.type) {
274
- case "ObjectExpression": // Objects are not booleans
275
- case "ArrayExpression": // Arrays are not booleans
276
- case "ArrowFunctionExpression": // Functions are not booleans
277
- case "FunctionExpression":
278
- case "ClassExpression": // Classes are not booleans
279
- case "NewExpression": // Objects are not booleans
280
- case "TemplateLiteral": // Strings are not booleans
281
- case "Literal": // True, false, or not boolean, literals never change.
282
- case "UpdateExpression": // Numbers are not booleans
283
- return true;
284
- case "BinaryExpression":
285
- return NUMERIC_OR_STRING_BINARY_OPERATORS.has(node.operator);
286
- case "UnaryExpression": {
287
- if (node.operator === "delete") {
288
- return false;
289
- }
290
- if (node.operator === "!") {
291
- return isConstant(scope, node.argument, true);
292
- }
293
-
294
- /*
295
- * The remaining operators return either strings or numbers, neither
296
- * of which are boolean.
297
- */
298
- return true;
299
- }
300
- case "SequenceExpression": {
301
- const last = node.expressions.at(-1);
302
-
303
- return hasConstantStrictBooleanComparison(scope, last);
304
- }
305
- case "Identifier":
306
- return node.name === "undefined" && isReferenceToGlobalVariable(scope, node);
307
- case "AssignmentExpression":
308
- if (node.operator === "=") {
309
- return hasConstantStrictBooleanComparison(scope, node.right);
310
- }
311
-
312
- /*
313
- * Handling short-circuiting assignment operators would require
314
- * walking the scope. We won't attempt that (for now...)
315
- */
316
- if (isLogicalAssignmentOperator(node.operator)) {
317
- return false;
318
- }
319
-
320
- /*
321
- * The remaining assignment expressions all result in either a number
322
- * or a string, neither of which can ever be boolean.
323
- */
324
- return true;
325
- case "CallExpression": {
326
- if (node.callee.type !== "Identifier") {
327
- return false;
328
- }
329
- const functionName = node.callee.name;
330
-
331
- if (
332
- (functionName === "String" || functionName === "Number") &&
333
- isReferenceToGlobalVariable(scope, node.callee)
334
- ) {
335
- return true;
336
- }
337
- if (functionName === "Boolean" && isReferenceToGlobalVariable(scope, node.callee)) {
338
- return (
339
- node.arguments.length === 0 || isConstant(scope, node.arguments[0], true));
340
- }
341
- return false;
342
- }
343
- case "JSXElement": // ESLint has a policy of not assuming any specific JSX behavior.
344
- case "JSXFragment":
345
- return false;
346
- default:
347
- return false;
348
- }
349
- }
350
-
351
- /**
352
- * Test if an AST node will always result in a newly constructed object
353
- * @param {Scope} scope The scope in which the node was found.
354
- * @param {ASTNode} node The node to test
355
- * @returns {boolean} Will `node` always be new?
356
- */
357
- function isAlwaysNew(scope, node) {
358
- switch (node.type) {
359
- case "ObjectExpression":
360
- case "ArrayExpression":
361
- case "ArrowFunctionExpression":
362
- case "FunctionExpression":
363
- case "ClassExpression":
364
- return true;
365
- case "NewExpression": {
366
- if (node.callee.type !== "Identifier") {
367
- return false;
368
- }
369
-
370
- /*
371
- * All the built-in constructors are always new, but
372
- * user-defined constructors could return a sentinel
373
- * object.
374
- *
375
- * Catching these is especially useful for primitive constructors
376
- * which return boxed values, a surprising gotcha' in JavaScript.
377
- */
378
- return Object.hasOwn(ECMASCRIPT_GLOBALS, node.callee.name) &&
379
- isReferenceToGlobalVariable(scope, node.callee);
380
- }
381
- case "Literal":
382
-
383
- // Regular expressions are objects, and thus always new
384
- return typeof node.regex === "object";
385
- case "SequenceExpression": {
386
- const last = node.expressions.at(-1);
387
-
388
- return isAlwaysNew(scope, last);
389
- }
390
- case "AssignmentExpression":
391
- if (node.operator === "=") {
392
- return isAlwaysNew(scope, node.right);
393
- }
394
- return false;
395
- case "ConditionalExpression":
396
- return isAlwaysNew(scope, node.consequent) && isAlwaysNew(scope, node.alternate);
397
- case "JSXElement": // ESLint has a policy of not assuming any specific JSX behavior.
398
- case "JSXFragment":
399
- return false;
400
- default:
401
- return false;
402
- }
403
- }
404
-
405
- /**
406
- * Checks if one operand will cause the result to be constant.
407
- * @param {Scope} scope Scope in which the expression was found.
408
- * @param {ASTNode} a One side of the expression
409
- * @param {ASTNode} b The other side of the expression
410
- * @param {string} operator The binary expression operator
411
- * @returns {ASTNode | null} The node which will cause the expression to have a constant result.
412
- */
413
- function findBinaryExpressionConstantOperand(scope, a, b, operator) {
414
- if (operator === "==" || operator === "!=") {
415
- if (
416
- (isNullOrUndefined(scope, a) && hasConstantNullishness(scope, b, false)) ||
417
- (isStaticBoolean(scope, a) && hasConstantLooseBooleanComparison(scope, b))
418
- ) {
419
- return b;
420
- }
421
- } else if (operator === "===" || operator === "!==") {
422
- if (
423
- (isNullOrUndefined(scope, a) && hasConstantNullishness(scope, b, false)) ||
424
- (isStaticBoolean(scope, a) && hasConstantStrictBooleanComparison(scope, b))
425
- ) {
426
- return b;
427
- }
428
- }
429
- return null;
430
- }
431
-
432
- //------------------------------------------------------------------------------
433
- // Rule Definition
434
- //------------------------------------------------------------------------------
435
-
436
- /** @type {import('../shared/types').Rule} */
437
- module.exports = {
438
- meta: {
439
- type: "problem",
440
- docs: {
441
- description: "Disallow expressions where the operation doesn't affect the value",
442
- recommended: true,
443
- url: "https://eslint.org/docs/latest/rules/no-constant-binary-expression"
444
- },
445
- schema: [],
446
- messages: {
447
- constantBinaryOperand: "Unexpected constant binary expression. Compares constantly with the {{otherSide}}-hand side of the `{{operator}}`.",
448
- constantShortCircuit: "Unexpected constant {{property}} on the left-hand side of a `{{operator}}` expression.",
449
- alwaysNew: "Unexpected comparison to newly constructed object. These two values can never be equal.",
450
- bothAlwaysNew: "Unexpected comparison of two newly constructed objects. These two values can never be equal."
451
- }
452
- },
453
-
454
- create(context) {
455
- const sourceCode = context.sourceCode;
456
-
457
- return {
458
- LogicalExpression(node) {
459
- const { operator, left } = node;
460
- const scope = sourceCode.getScope(node);
461
-
462
- if ((operator === "&&" || operator === "||") && isConstant(scope, left, true)) {
463
- context.report({ node: left, messageId: "constantShortCircuit", data: { property: "truthiness", operator } });
464
- } else if (operator === "??" && hasConstantNullishness(scope, left, false)) {
465
- context.report({ node: left, messageId: "constantShortCircuit", data: { property: "nullishness", operator } });
466
- }
467
- },
468
- BinaryExpression(node) {
469
- const scope = sourceCode.getScope(node);
470
- const { right, left, operator } = node;
471
- const rightConstantOperand = findBinaryExpressionConstantOperand(scope, left, right, operator);
472
- const leftConstantOperand = findBinaryExpressionConstantOperand(scope, right, left, operator);
473
-
474
- if (rightConstantOperand) {
475
- context.report({ node: rightConstantOperand, messageId: "constantBinaryOperand", data: { operator, otherSide: "left" } });
476
- } else if (leftConstantOperand) {
477
- context.report({ node: leftConstantOperand, messageId: "constantBinaryOperand", data: { operator, otherSide: "right" } });
478
- } else if (operator === "===" || operator === "!==") {
479
- if (isAlwaysNew(scope, left)) {
480
- context.report({ node: left, messageId: "alwaysNew" });
481
- } else if (isAlwaysNew(scope, right)) {
482
- context.report({ node: right, messageId: "alwaysNew" });
483
- }
484
- } else if (operator === "==" || operator === "!=") {
485
-
486
- /*
487
- * If both sides are "new", then both sides are objects and
488
- * therefore they will be compared by reference even with `==`
489
- * equality.
490
- */
491
- if (isAlwaysNew(scope, left) && isAlwaysNew(scope, right)) {
492
- context.report({ node: left, messageId: "bothAlwaysNew" });
493
- }
494
- }
495
-
496
- }
497
-
498
- /*
499
- * In theory we could handle short-circuiting assignment operators,
500
- * for some constant values, but that would require walking the
501
- * scope to find the value of the variable being assigned. This is
502
- * dependant on https://github.com/eslint/eslint/issues/13776
503
- *
504
- * AssignmentExpression() {},
505
- */
506
- };
507
- }
508
- };
@@ -1,161 +0,0 @@
1
- /**
2
- * @fileoverview Rule to flag use constant conditions
3
- * @author Christian Schulz <http://rndm.de>
4
- */
5
-
6
- "use strict";
7
-
8
- const { isConstant } = require("./utils/ast-utils");
9
-
10
- //------------------------------------------------------------------------------
11
- // Helpers
12
- //------------------------------------------------------------------------------
13
-
14
- //------------------------------------------------------------------------------
15
- // Rule Definition
16
- //------------------------------------------------------------------------------
17
-
18
- /** @type {import('../shared/types').Rule} */
19
- module.exports = {
20
- meta: {
21
- type: "problem",
22
-
23
- docs: {
24
- description: "Disallow constant expressions in conditions",
25
- recommended: true,
26
- url: "https://eslint.org/docs/latest/rules/no-constant-condition"
27
- },
28
-
29
- schema: [
30
- {
31
- type: "object",
32
- properties: {
33
- checkLoops: {
34
- enum: ["all", "allExceptWhileTrue", "none", true, false]
35
- }
36
- },
37
- additionalProperties: false
38
- }
39
- ],
40
-
41
- messages: {
42
- unexpected: "Unexpected constant condition."
43
- }
44
- },
45
-
46
- create(context) {
47
- const options = context.options[0] || {};
48
- let checkLoops = options.checkLoops ?? "allExceptWhileTrue";
49
- const loopSetStack = [];
50
- const sourceCode = context.sourceCode;
51
-
52
- if (options.checkLoops === true) {
53
- checkLoops = "all";
54
- } else if (options.checkLoops === false) {
55
- checkLoops = "none";
56
- }
57
-
58
- let loopsInCurrentScope = new Set();
59
-
60
- //--------------------------------------------------------------------------
61
- // Helpers
62
- //--------------------------------------------------------------------------
63
-
64
- /**
65
- * Tracks when the given node contains a constant condition.
66
- * @param {ASTNode} node The AST node to check.
67
- * @returns {void}
68
- * @private
69
- */
70
- function trackConstantConditionLoop(node) {
71
- if (node.test && isConstant(sourceCode.getScope(node), node.test, true)) {
72
- loopsInCurrentScope.add(node);
73
- }
74
- }
75
-
76
- /**
77
- * Reports when the set contains the given constant condition node
78
- * @param {ASTNode} node The AST node to check.
79
- * @returns {void}
80
- * @private
81
- */
82
- function checkConstantConditionLoopInSet(node) {
83
- if (loopsInCurrentScope.has(node)) {
84
- loopsInCurrentScope.delete(node);
85
- context.report({ node: node.test, messageId: "unexpected" });
86
- }
87
- }
88
-
89
- /**
90
- * Reports when the given node contains a constant condition.
91
- * @param {ASTNode} node The AST node to check.
92
- * @returns {void}
93
- * @private
94
- */
95
- function reportIfConstant(node) {
96
- if (node.test && isConstant(sourceCode.getScope(node), node.test, true)) {
97
- context.report({ node: node.test, messageId: "unexpected" });
98
- }
99
- }
100
-
101
- /**
102
- * Stores current set of constant loops in loopSetStack temporarily
103
- * and uses a new set to track constant loops
104
- * @returns {void}
105
- * @private
106
- */
107
- function enterFunction() {
108
- loopSetStack.push(loopsInCurrentScope);
109
- loopsInCurrentScope = new Set();
110
- }
111
-
112
- /**
113
- * Reports when the set still contains stored constant conditions
114
- * @returns {void}
115
- * @private
116
- */
117
- function exitFunction() {
118
- loopsInCurrentScope = loopSetStack.pop();
119
- }
120
-
121
- /**
122
- * Checks node when checkLoops option is enabled
123
- * @param {ASTNode} node The AST node to check.
124
- * @returns {void}
125
- * @private
126
- */
127
- function checkLoop(node) {
128
- if (checkLoops === "all" || checkLoops === "allExceptWhileTrue") {
129
- trackConstantConditionLoop(node);
130
- }
131
- }
132
-
133
- //--------------------------------------------------------------------------
134
- // Public
135
- //--------------------------------------------------------------------------
136
-
137
- return {
138
- ConditionalExpression: reportIfConstant,
139
- IfStatement: reportIfConstant,
140
- WhileStatement(node) {
141
- if (node.test.type === "Literal" && node.test.value === true && checkLoops === "allExceptWhileTrue") {
142
- return;
143
- }
144
-
145
- checkLoop(node);
146
- },
147
- "WhileStatement:exit": checkConstantConditionLoopInSet,
148
- DoWhileStatement: checkLoop,
149
- "DoWhileStatement:exit": checkConstantConditionLoopInSet,
150
- ForStatement: checkLoop,
151
- "ForStatement > .test": node => checkLoop(node.parent),
152
- "ForStatement:exit": checkConstantConditionLoopInSet,
153
- FunctionDeclaration: enterFunction,
154
- "FunctionDeclaration:exit": exitFunction,
155
- FunctionExpression: enterFunction,
156
- "FunctionExpression:exit": exitFunction,
157
- YieldExpression: () => loopsInCurrentScope.clear()
158
- };
159
-
160
- }
161
- };