@alexlit/lint-kit 183.0.0 → 183.2.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 (631) hide show
  1. package/package.json +1 -1
  2. package/packages/config-eslint/package.json +2 -2
  3. package/packages/config-prettier/package.json +2 -2
  4. package/packages/config-stylelint/index.js +1 -1
  5. package/packages/config-stylelint/package.json +2 -2
  6. package/packages/config-stylelint/plugins/bem.js +1 -5
  7. package/packages/config-eslint/node_modules/ajv/.tonic_example.js +0 -20
  8. package/packages/config-eslint/node_modules/ajv/LICENSE +0 -22
  9. package/packages/config-eslint/node_modules/ajv/README.md +0 -1505
  10. package/packages/config-eslint/node_modules/ajv/dist/ajv.bundle.js +0 -7201
  11. package/packages/config-eslint/node_modules/ajv/dist/ajv.min.js +0 -3
  12. package/packages/config-eslint/node_modules/ajv/dist/ajv.min.js.map +0 -1
  13. package/packages/config-eslint/node_modules/ajv/lib/ajv.d.ts +0 -402
  14. package/packages/config-eslint/node_modules/ajv/lib/ajv.js +0 -506
  15. package/packages/config-eslint/node_modules/ajv/lib/cache.js +0 -26
  16. package/packages/config-eslint/node_modules/ajv/lib/compile/async.js +0 -90
  17. package/packages/config-eslint/node_modules/ajv/lib/compile/equal.js +0 -5
  18. package/packages/config-eslint/node_modules/ajv/lib/compile/error_classes.js +0 -34
  19. package/packages/config-eslint/node_modules/ajv/lib/compile/formats.js +0 -142
  20. package/packages/config-eslint/node_modules/ajv/lib/compile/index.js +0 -389
  21. package/packages/config-eslint/node_modules/ajv/lib/compile/resolve.js +0 -270
  22. package/packages/config-eslint/node_modules/ajv/lib/compile/rules.js +0 -66
  23. package/packages/config-eslint/node_modules/ajv/lib/compile/schema_obj.js +0 -9
  24. package/packages/config-eslint/node_modules/ajv/lib/compile/ucs2length.js +0 -20
  25. package/packages/config-eslint/node_modules/ajv/lib/compile/util.js +0 -239
  26. package/packages/config-eslint/node_modules/ajv/lib/data.js +0 -49
  27. package/packages/config-eslint/node_modules/ajv/lib/definition_schema.js +0 -37
  28. package/packages/config-eslint/node_modules/ajv/lib/dot/_limit.jst +0 -113
  29. package/packages/config-eslint/node_modules/ajv/lib/dot/_limitItems.jst +0 -12
  30. package/packages/config-eslint/node_modules/ajv/lib/dot/_limitLength.jst +0 -12
  31. package/packages/config-eslint/node_modules/ajv/lib/dot/_limitProperties.jst +0 -12
  32. package/packages/config-eslint/node_modules/ajv/lib/dot/allOf.jst +0 -32
  33. package/packages/config-eslint/node_modules/ajv/lib/dot/anyOf.jst +0 -46
  34. package/packages/config-eslint/node_modules/ajv/lib/dot/coerce.def +0 -51
  35. package/packages/config-eslint/node_modules/ajv/lib/dot/comment.jst +0 -9
  36. package/packages/config-eslint/node_modules/ajv/lib/dot/const.jst +0 -11
  37. package/packages/config-eslint/node_modules/ajv/lib/dot/contains.jst +0 -55
  38. package/packages/config-eslint/node_modules/ajv/lib/dot/custom.jst +0 -191
  39. package/packages/config-eslint/node_modules/ajv/lib/dot/defaults.def +0 -47
  40. package/packages/config-eslint/node_modules/ajv/lib/dot/definitions.def +0 -203
  41. package/packages/config-eslint/node_modules/ajv/lib/dot/dependencies.jst +0 -79
  42. package/packages/config-eslint/node_modules/ajv/lib/dot/enum.jst +0 -30
  43. package/packages/config-eslint/node_modules/ajv/lib/dot/errors.def +0 -194
  44. package/packages/config-eslint/node_modules/ajv/lib/dot/format.jst +0 -106
  45. package/packages/config-eslint/node_modules/ajv/lib/dot/if.jst +0 -73
  46. package/packages/config-eslint/node_modules/ajv/lib/dot/items.jst +0 -98
  47. package/packages/config-eslint/node_modules/ajv/lib/dot/missing.def +0 -39
  48. package/packages/config-eslint/node_modules/ajv/lib/dot/multipleOf.jst +0 -22
  49. package/packages/config-eslint/node_modules/ajv/lib/dot/not.jst +0 -43
  50. package/packages/config-eslint/node_modules/ajv/lib/dot/oneOf.jst +0 -54
  51. package/packages/config-eslint/node_modules/ajv/lib/dot/pattern.jst +0 -25
  52. package/packages/config-eslint/node_modules/ajv/lib/dot/properties.jst +0 -245
  53. package/packages/config-eslint/node_modules/ajv/lib/dot/propertyNames.jst +0 -52
  54. package/packages/config-eslint/node_modules/ajv/lib/dot/ref.jst +0 -85
  55. package/packages/config-eslint/node_modules/ajv/lib/dot/required.jst +0 -108
  56. package/packages/config-eslint/node_modules/ajv/lib/dot/uniqueItems.jst +0 -62
  57. package/packages/config-eslint/node_modules/ajv/lib/dot/validate.jst +0 -276
  58. package/packages/config-eslint/node_modules/ajv/lib/dotjs/README.md +0 -3
  59. package/packages/config-eslint/node_modules/ajv/lib/dotjs/_limit.js +0 -163
  60. package/packages/config-eslint/node_modules/ajv/lib/dotjs/_limitItems.js +0 -80
  61. package/packages/config-eslint/node_modules/ajv/lib/dotjs/_limitLength.js +0 -85
  62. package/packages/config-eslint/node_modules/ajv/lib/dotjs/_limitProperties.js +0 -80
  63. package/packages/config-eslint/node_modules/ajv/lib/dotjs/allOf.js +0 -42
  64. package/packages/config-eslint/node_modules/ajv/lib/dotjs/anyOf.js +0 -73
  65. package/packages/config-eslint/node_modules/ajv/lib/dotjs/comment.js +0 -14
  66. package/packages/config-eslint/node_modules/ajv/lib/dotjs/const.js +0 -56
  67. package/packages/config-eslint/node_modules/ajv/lib/dotjs/contains.js +0 -81
  68. package/packages/config-eslint/node_modules/ajv/lib/dotjs/custom.js +0 -228
  69. package/packages/config-eslint/node_modules/ajv/lib/dotjs/dependencies.js +0 -168
  70. package/packages/config-eslint/node_modules/ajv/lib/dotjs/enum.js +0 -66
  71. package/packages/config-eslint/node_modules/ajv/lib/dotjs/format.js +0 -150
  72. package/packages/config-eslint/node_modules/ajv/lib/dotjs/if.js +0 -103
  73. package/packages/config-eslint/node_modules/ajv/lib/dotjs/index.js +0 -33
  74. package/packages/config-eslint/node_modules/ajv/lib/dotjs/items.js +0 -140
  75. package/packages/config-eslint/node_modules/ajv/lib/dotjs/multipleOf.js +0 -80
  76. package/packages/config-eslint/node_modules/ajv/lib/dotjs/not.js +0 -84
  77. package/packages/config-eslint/node_modules/ajv/lib/dotjs/oneOf.js +0 -73
  78. package/packages/config-eslint/node_modules/ajv/lib/dotjs/pattern.js +0 -85
  79. package/packages/config-eslint/node_modules/ajv/lib/dotjs/properties.js +0 -335
  80. package/packages/config-eslint/node_modules/ajv/lib/dotjs/propertyNames.js +0 -81
  81. package/packages/config-eslint/node_modules/ajv/lib/dotjs/ref.js +0 -124
  82. package/packages/config-eslint/node_modules/ajv/lib/dotjs/required.js +0 -270
  83. package/packages/config-eslint/node_modules/ajv/lib/dotjs/uniqueItems.js +0 -86
  84. package/packages/config-eslint/node_modules/ajv/lib/dotjs/validate.js +0 -482
  85. package/packages/config-eslint/node_modules/ajv/lib/keyword.js +0 -146
  86. package/packages/config-eslint/node_modules/ajv/lib/refs/data.json +0 -17
  87. package/packages/config-eslint/node_modules/ajv/lib/refs/json-schema-draft-04.json +0 -149
  88. package/packages/config-eslint/node_modules/ajv/lib/refs/json-schema-draft-06.json +0 -154
  89. package/packages/config-eslint/node_modules/ajv/lib/refs/json-schema-draft-07.json +0 -168
  90. package/packages/config-eslint/node_modules/ajv/lib/refs/json-schema-secure.json +0 -94
  91. package/packages/config-eslint/node_modules/ajv/package.json +0 -107
  92. package/packages/config-eslint/node_modules/ajv/scripts/.eslintrc.yml +0 -3
  93. package/packages/config-eslint/node_modules/ajv/scripts/bundle.js +0 -61
  94. package/packages/config-eslint/node_modules/ajv/scripts/compile-dots.js +0 -73
  95. package/packages/config-eslint/node_modules/ajv/scripts/info +0 -10
  96. package/packages/config-eslint/node_modules/ajv/scripts/prepare-tests +0 -12
  97. package/packages/config-eslint/node_modules/ajv/scripts/publish-built-version +0 -32
  98. package/packages/config-eslint/node_modules/ajv/scripts/travis-gh-pages +0 -23
  99. package/packages/config-eslint/node_modules/balanced-match/LICENSE.md +0 -23
  100. package/packages/config-eslint/node_modules/balanced-match/README.md +0 -57
  101. package/packages/config-eslint/node_modules/balanced-match/dist/commonjs/index.d.ts +0 -9
  102. package/packages/config-eslint/node_modules/balanced-match/dist/commonjs/index.d.ts.map +0 -1
  103. package/packages/config-eslint/node_modules/balanced-match/dist/commonjs/index.js +0 -59
  104. package/packages/config-eslint/node_modules/balanced-match/dist/commonjs/index.js.map +0 -1
  105. package/packages/config-eslint/node_modules/balanced-match/dist/commonjs/package.json +0 -3
  106. package/packages/config-eslint/node_modules/balanced-match/dist/esm/index.d.ts +0 -9
  107. package/packages/config-eslint/node_modules/balanced-match/dist/esm/index.d.ts.map +0 -1
  108. package/packages/config-eslint/node_modules/balanced-match/dist/esm/index.js +0 -54
  109. package/packages/config-eslint/node_modules/balanced-match/dist/esm/index.js.map +0 -1
  110. package/packages/config-eslint/node_modules/balanced-match/dist/esm/package.json +0 -3
  111. package/packages/config-eslint/node_modules/balanced-match/package.json +0 -68
  112. package/packages/config-eslint/node_modules/brace-expansion/LICENSE +0 -23
  113. package/packages/config-eslint/node_modules/brace-expansion/README.md +0 -94
  114. package/packages/config-eslint/node_modules/brace-expansion/dist/commonjs/index.d.ts +0 -6
  115. package/packages/config-eslint/node_modules/brace-expansion/dist/commonjs/index.d.ts.map +0 -1
  116. package/packages/config-eslint/node_modules/brace-expansion/dist/commonjs/index.js +0 -199
  117. package/packages/config-eslint/node_modules/brace-expansion/dist/commonjs/index.js.map +0 -1
  118. package/packages/config-eslint/node_modules/brace-expansion/dist/commonjs/package.json +0 -3
  119. package/packages/config-eslint/node_modules/brace-expansion/dist/esm/index.d.ts +0 -6
  120. package/packages/config-eslint/node_modules/brace-expansion/dist/esm/index.d.ts.map +0 -1
  121. package/packages/config-eslint/node_modules/brace-expansion/dist/esm/index.js +0 -195
  122. package/packages/config-eslint/node_modules/brace-expansion/dist/esm/index.js.map +0 -1
  123. package/packages/config-eslint/node_modules/brace-expansion/dist/esm/package.json +0 -3
  124. package/packages/config-eslint/node_modules/brace-expansion/package.json +0 -64
  125. package/packages/config-eslint/node_modules/eslint/LICENSE +0 -19
  126. package/packages/config-eslint/node_modules/eslint/README.md +0 -369
  127. package/packages/config-eslint/node_modules/eslint/bin/eslint.js +0 -195
  128. package/packages/config-eslint/node_modules/eslint/conf/ecma-version.js +0 -16
  129. package/packages/config-eslint/node_modules/eslint/conf/globals.js +0 -169
  130. package/packages/config-eslint/node_modules/eslint/conf/replacements.json +0 -26
  131. package/packages/config-eslint/node_modules/eslint/conf/rule-type-list.json +0 -91
  132. package/packages/config-eslint/node_modules/eslint/lib/api.js +0 -39
  133. package/packages/config-eslint/node_modules/eslint/lib/cli-engine/formatters/formatters-meta.json +0 -18
  134. package/packages/config-eslint/node_modules/eslint/lib/cli-engine/formatters/html.js +0 -359
  135. package/packages/config-eslint/node_modules/eslint/lib/cli-engine/formatters/json-with-metadata.js +0 -16
  136. package/packages/config-eslint/node_modules/eslint/lib/cli-engine/formatters/json.js +0 -13
  137. package/packages/config-eslint/node_modules/eslint/lib/cli-engine/formatters/stylish.js +0 -153
  138. package/packages/config-eslint/node_modules/eslint/lib/cli-engine/hash.js +0 -35
  139. package/packages/config-eslint/node_modules/eslint/lib/cli-engine/lint-result-cache.js +0 -220
  140. package/packages/config-eslint/node_modules/eslint/lib/cli.js +0 -521
  141. package/packages/config-eslint/node_modules/eslint/lib/config/config-loader.js +0 -668
  142. package/packages/config-eslint/node_modules/eslint/lib/config/config.js +0 -674
  143. package/packages/config-eslint/node_modules/eslint/lib/config/default-config.js +0 -78
  144. package/packages/config-eslint/node_modules/eslint/lib/config/flat-config-array.js +0 -217
  145. package/packages/config-eslint/node_modules/eslint/lib/config/flat-config-schema.js +0 -598
  146. package/packages/config-eslint/node_modules/eslint/lib/config-api.js +0 -12
  147. package/packages/config-eslint/node_modules/eslint/lib/eslint/eslint-helpers.js +0 -1462
  148. package/packages/config-eslint/node_modules/eslint/lib/eslint/eslint.js +0 -1364
  149. package/packages/config-eslint/node_modules/eslint/lib/eslint/index.js +0 -7
  150. package/packages/config-eslint/node_modules/eslint/lib/eslint/worker.js +0 -173
  151. package/packages/config-eslint/node_modules/eslint/lib/languages/js/index.js +0 -336
  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 -1178
  154. package/packages/config-eslint/node_modules/eslint/lib/languages/js/source-code/token-store/backward-token-comment-cursor.js +0 -61
  155. package/packages/config-eslint/node_modules/eslint/lib/languages/js/source-code/token-store/backward-token-cursor.js +0 -57
  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 -120
  158. package/packages/config-eslint/node_modules/eslint/lib/languages/js/source-code/token-store/decorative-cursor.js +0 -38
  159. package/packages/config-eslint/node_modules/eslint/lib/languages/js/source-code/token-store/filter-cursor.js +0 -42
  160. package/packages/config-eslint/node_modules/eslint/lib/languages/js/source-code/token-store/forward-token-comment-cursor.js +0 -65
  161. package/packages/config-eslint/node_modules/eslint/lib/languages/js/source-code/token-store/forward-token-cursor.js +0 -62
  162. package/packages/config-eslint/node_modules/eslint/lib/languages/js/source-code/token-store/index.js +0 -695
  163. package/packages/config-eslint/node_modules/eslint/lib/languages/js/source-code/token-store/limit-cursor.js +0 -39
  164. package/packages/config-eslint/node_modules/eslint/lib/languages/js/source-code/token-store/padded-token-cursor.js +0 -45
  165. package/packages/config-eslint/node_modules/eslint/lib/languages/js/source-code/token-store/skip-cursor.js +0 -41
  166. package/packages/config-eslint/node_modules/eslint/lib/languages/js/source-code/token-store/utils.js +0 -131
  167. package/packages/config-eslint/node_modules/eslint/lib/languages/js/validate-language-options.js +0 -196
  168. package/packages/config-eslint/node_modules/eslint/lib/linter/apply-disable-directives.js +0 -583
  169. package/packages/config-eslint/node_modules/eslint/lib/linter/code-path-analysis/code-path-analyzer.js +0 -828
  170. package/packages/config-eslint/node_modules/eslint/lib/linter/code-path-analysis/code-path-segment.js +0 -262
  171. package/packages/config-eslint/node_modules/eslint/lib/linter/code-path-analysis/code-path-state.js +0 -2370
  172. package/packages/config-eslint/node_modules/eslint/lib/linter/code-path-analysis/code-path.js +0 -332
  173. package/packages/config-eslint/node_modules/eslint/lib/linter/code-path-analysis/debug-helpers.js +0 -223
  174. package/packages/config-eslint/node_modules/eslint/lib/linter/code-path-analysis/fork-context.js +0 -374
  175. package/packages/config-eslint/node_modules/eslint/lib/linter/code-path-analysis/id-generator.js +0 -44
  176. package/packages/config-eslint/node_modules/eslint/lib/linter/esquery.js +0 -332
  177. package/packages/config-eslint/node_modules/eslint/lib/linter/file-context.js +0 -88
  178. package/packages/config-eslint/node_modules/eslint/lib/linter/file-report.js +0 -604
  179. package/packages/config-eslint/node_modules/eslint/lib/linter/index.js +0 -11
  180. package/packages/config-eslint/node_modules/eslint/lib/linter/interpolate.js +0 -50
  181. package/packages/config-eslint/node_modules/eslint/lib/linter/linter.js +0 -1614
  182. package/packages/config-eslint/node_modules/eslint/lib/linter/rule-fixer.js +0 -199
  183. package/packages/config-eslint/node_modules/eslint/lib/linter/source-code-fixer.js +0 -154
  184. package/packages/config-eslint/node_modules/eslint/lib/linter/source-code-traverser.js +0 -333
  185. package/packages/config-eslint/node_modules/eslint/lib/linter/source-code-visitor.js +0 -81
  186. package/packages/config-eslint/node_modules/eslint/lib/linter/timing.js +0 -209
  187. package/packages/config-eslint/node_modules/eslint/lib/linter/vfile.js +0 -115
  188. package/packages/config-eslint/node_modules/eslint/lib/options.js +0 -416
  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 -1996
  191. package/packages/config-eslint/node_modules/eslint/lib/rules/accessor-pairs.js +0 -420
  192. package/packages/config-eslint/node_modules/eslint/lib/rules/array-bracket-newline.js +0 -291
  193. package/packages/config-eslint/node_modules/eslint/lib/rules/array-bracket-spacing.js +0 -301
  194. package/packages/config-eslint/node_modules/eslint/lib/rules/array-callback-return.js +0 -510
  195. package/packages/config-eslint/node_modules/eslint/lib/rules/array-element-newline.js +0 -374
  196. package/packages/config-eslint/node_modules/eslint/lib/rules/arrow-body-style.js +0 -418
  197. package/packages/config-eslint/node_modules/eslint/lib/rules/arrow-parens.js +0 -237
  198. package/packages/config-eslint/node_modules/eslint/lib/rules/arrow-spacing.js +0 -188
  199. package/packages/config-eslint/node_modules/eslint/lib/rules/block-scoped-var.js +0 -144
  200. package/packages/config-eslint/node_modules/eslint/lib/rules/block-spacing.js +0 -202
  201. package/packages/config-eslint/node_modules/eslint/lib/rules/brace-style.js +0 -278
  202. package/packages/config-eslint/node_modules/eslint/lib/rules/callback-return.js +0 -216
  203. package/packages/config-eslint/node_modules/eslint/lib/rules/camelcase.js +0 -422
  204. package/packages/config-eslint/node_modules/eslint/lib/rules/capitalized-comments.js +0 -325
  205. package/packages/config-eslint/node_modules/eslint/lib/rules/class-methods-use-this.js +0 -250
  206. package/packages/config-eslint/node_modules/eslint/lib/rules/comma-dangle.js +0 -424
  207. package/packages/config-eslint/node_modules/eslint/lib/rules/comma-spacing.js +0 -205
  208. package/packages/config-eslint/node_modules/eslint/lib/rules/comma-style.js +0 -391
  209. package/packages/config-eslint/node_modules/eslint/lib/rules/complexity.js +0 -201
  210. package/packages/config-eslint/node_modules/eslint/lib/rules/computed-property-spacing.js +0 -251
  211. package/packages/config-eslint/node_modules/eslint/lib/rules/consistent-return.js +0 -221
  212. package/packages/config-eslint/node_modules/eslint/lib/rules/consistent-this.js +0 -179
  213. package/packages/config-eslint/node_modules/eslint/lib/rules/constructor-super.js +0 -453
  214. package/packages/config-eslint/node_modules/eslint/lib/rules/curly.js +0 -425
  215. package/packages/config-eslint/node_modules/eslint/lib/rules/default-case-last.js +0 -51
  216. package/packages/config-eslint/node_modules/eslint/lib/rules/default-case.js +0 -103
  217. package/packages/config-eslint/node_modules/eslint/lib/rules/default-param-last.js +0 -78
  218. package/packages/config-eslint/node_modules/eslint/lib/rules/dot-location.js +0 -138
  219. package/packages/config-eslint/node_modules/eslint/lib/rules/dot-notation.js +0 -216
  220. package/packages/config-eslint/node_modules/eslint/lib/rules/eol-last.js +0 -135
  221. package/packages/config-eslint/node_modules/eslint/lib/rules/eqeqeq.js +0 -210
  222. package/packages/config-eslint/node_modules/eslint/lib/rules/for-direction.js +0 -168
  223. package/packages/config-eslint/node_modules/eslint/lib/rules/func-call-spacing.js +0 -281
  224. package/packages/config-eslint/node_modules/eslint/lib/rules/func-name-matching.js +0 -338
  225. package/packages/config-eslint/node_modules/eslint/lib/rules/func-names.js +0 -204
  226. package/packages/config-eslint/node_modules/eslint/lib/rules/func-style.js +0 -221
  227. package/packages/config-eslint/node_modules/eslint/lib/rules/function-call-argument-newline.js +0 -166
  228. package/packages/config-eslint/node_modules/eslint/lib/rules/function-paren-newline.js +0 -368
  229. package/packages/config-eslint/node_modules/eslint/lib/rules/generator-star-spacing.js +0 -246
  230. package/packages/config-eslint/node_modules/eslint/lib/rules/getter-return.js +0 -242
  231. package/packages/config-eslint/node_modules/eslint/lib/rules/global-require.js +0 -117
  232. package/packages/config-eslint/node_modules/eslint/lib/rules/grouped-accessor-pairs.js +0 -268
  233. package/packages/config-eslint/node_modules/eslint/lib/rules/guard-for-in.js +0 -85
  234. package/packages/config-eslint/node_modules/eslint/lib/rules/handle-callback-err.js +0 -122
  235. package/packages/config-eslint/node_modules/eslint/lib/rules/id-blacklist.js +0 -241
  236. package/packages/config-eslint/node_modules/eslint/lib/rules/id-denylist.js +0 -223
  237. package/packages/config-eslint/node_modules/eslint/lib/rules/id-length.js +0 -217
  238. package/packages/config-eslint/node_modules/eslint/lib/rules/id-match.js +0 -363
  239. package/packages/config-eslint/node_modules/eslint/lib/rules/implicit-arrow-linebreak.js +0 -125
  240. package/packages/config-eslint/node_modules/eslint/lib/rules/indent-legacy.js +0 -1369
  241. package/packages/config-eslint/node_modules/eslint/lib/rules/indent.js +0 -2334
  242. package/packages/config-eslint/node_modules/eslint/lib/rules/index.js +0 -332
  243. package/packages/config-eslint/node_modules/eslint/lib/rules/init-declarations.js +0 -172
  244. package/packages/config-eslint/node_modules/eslint/lib/rules/jsx-quotes.js +0 -128
  245. package/packages/config-eslint/node_modules/eslint/lib/rules/key-spacing.js +0 -822
  246. package/packages/config-eslint/node_modules/eslint/lib/rules/keyword-spacing.js +0 -701
  247. package/packages/config-eslint/node_modules/eslint/lib/rules/line-comment-position.js +0 -157
  248. package/packages/config-eslint/node_modules/eslint/lib/rules/linebreak-style.js +0 -135
  249. package/packages/config-eslint/node_modules/eslint/lib/rules/lines-around-comment.js +0 -581
  250. package/packages/config-eslint/node_modules/eslint/lib/rules/lines-around-directive.js +0 -249
  251. package/packages/config-eslint/node_modules/eslint/lib/rules/lines-between-class-members.js +0 -358
  252. package/packages/config-eslint/node_modules/eslint/lib/rules/logical-assignment-operators.js +0 -688
  253. package/packages/config-eslint/node_modules/eslint/lib/rules/max-classes-per-file.js +0 -90
  254. package/packages/config-eslint/node_modules/eslint/lib/rules/max-depth.js +0 -159
  255. package/packages/config-eslint/node_modules/eslint/lib/rules/max-len.js +0 -497
  256. package/packages/config-eslint/node_modules/eslint/lib/rules/max-lines-per-function.js +0 -238
  257. package/packages/config-eslint/node_modules/eslint/lib/rules/max-lines.js +0 -189
  258. package/packages/config-eslint/node_modules/eslint/lib/rules/max-nested-callbacks.js +0 -115
  259. package/packages/config-eslint/node_modules/eslint/lib/rules/max-params.js +0 -148
  260. package/packages/config-eslint/node_modules/eslint/lib/rules/max-statements-per-line.js +0 -224
  261. package/packages/config-eslint/node_modules/eslint/lib/rules/max-statements.js +0 -188
  262. package/packages/config-eslint/node_modules/eslint/lib/rules/multiline-comment-style.js +0 -652
  263. package/packages/config-eslint/node_modules/eslint/lib/rules/multiline-ternary.js +0 -257
  264. package/packages/config-eslint/node_modules/eslint/lib/rules/new-cap.js +0 -277
  265. package/packages/config-eslint/node_modules/eslint/lib/rules/new-parens.js +0 -120
  266. package/packages/config-eslint/node_modules/eslint/lib/rules/newline-after-var.js +0 -307
  267. package/packages/config-eslint/node_modules/eslint/lib/rules/newline-before-return.js +0 -242
  268. package/packages/config-eslint/node_modules/eslint/lib/rules/newline-per-chained-call.js +0 -159
  269. package/packages/config-eslint/node_modules/eslint/lib/rules/no-alert.js +0 -149
  270. package/packages/config-eslint/node_modules/eslint/lib/rules/no-array-constructor.js +0 -195
  271. package/packages/config-eslint/node_modules/eslint/lib/rules/no-async-promise-executor.js +0 -45
  272. package/packages/config-eslint/node_modules/eslint/lib/rules/no-await-in-loop.js +0 -115
  273. package/packages/config-eslint/node_modules/eslint/lib/rules/no-bitwise.js +0 -145
  274. package/packages/config-eslint/node_modules/eslint/lib/rules/no-buffer-constructor.js +0 -74
  275. package/packages/config-eslint/node_modules/eslint/lib/rules/no-caller.js +0 -52
  276. package/packages/config-eslint/node_modules/eslint/lib/rules/no-case-declarations.js +0 -80
  277. package/packages/config-eslint/node_modules/eslint/lib/rules/no-catch-shadow.js +0 -96
  278. package/packages/config-eslint/node_modules/eslint/lib/rules/no-class-assign.js +0 -66
  279. package/packages/config-eslint/node_modules/eslint/lib/rules/no-compare-neg-zero.js +0 -74
  280. package/packages/config-eslint/node_modules/eslint/lib/rules/no-cond-assign.js +0 -175
  281. package/packages/config-eslint/node_modules/eslint/lib/rules/no-confusing-arrow.js +0 -127
  282. package/packages/config-eslint/node_modules/eslint/lib/rules/no-console.js +0 -227
  283. package/packages/config-eslint/node_modules/eslint/lib/rules/no-const-assign.js +0 -73
  284. package/packages/config-eslint/node_modules/eslint/lib/rules/no-constant-binary-expression.js +0 -603
  285. package/packages/config-eslint/node_modules/eslint/lib/rules/no-constant-condition.js +0 -177
  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 -38
  288. package/packages/config-eslint/node_modules/eslint/lib/rules/no-control-regex.js +0 -142
  289. package/packages/config-eslint/node_modules/eslint/lib/rules/no-debugger.js +0 -41
  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 -60
  292. package/packages/config-eslint/node_modules/eslint/lib/rules/no-dupe-args.js +0 -98
  293. package/packages/config-eslint/node_modules/eslint/lib/rules/no-dupe-class-members.js +0 -117
  294. package/packages/config-eslint/node_modules/eslint/lib/rules/no-dupe-else-if.js +0 -145
  295. package/packages/config-eslint/node_modules/eslint/lib/rules/no-dupe-keys.js +0 -165
  296. package/packages/config-eslint/node_modules/eslint/lib/rules/no-duplicate-case.js +0 -78
  297. package/packages/config-eslint/node_modules/eslint/lib/rules/no-duplicate-imports.js +0 -368
  298. package/packages/config-eslint/node_modules/eslint/lib/rules/no-else-return.js +0 -456
  299. package/packages/config-eslint/node_modules/eslint/lib/rules/no-empty-character-class.js +0 -83
  300. package/packages/config-eslint/node_modules/eslint/lib/rules/no-empty-function.js +0 -236
  301. package/packages/config-eslint/node_modules/eslint/lib/rules/no-empty-pattern.js +0 -85
  302. package/packages/config-eslint/node_modules/eslint/lib/rules/no-empty-static-block.js +0 -73
  303. package/packages/config-eslint/node_modules/eslint/lib/rules/no-empty.js +0 -153
  304. package/packages/config-eslint/node_modules/eslint/lib/rules/no-eq-null.js +0 -51
  305. package/packages/config-eslint/node_modules/eslint/lib/rules/no-eval.js +0 -301
  306. package/packages/config-eslint/node_modules/eslint/lib/rules/no-ex-assign.js +0 -57
  307. package/packages/config-eslint/node_modules/eslint/lib/rules/no-extend-native.js +0 -180
  308. package/packages/config-eslint/node_modules/eslint/lib/rules/no-extra-bind.js +0 -224
  309. package/packages/config-eslint/node_modules/eslint/lib/rules/no-extra-boolean-cast.js +0 -420
  310. package/packages/config-eslint/node_modules/eslint/lib/rules/no-extra-label.js +0 -169
  311. package/packages/config-eslint/node_modules/eslint/lib/rules/no-extra-parens.js +0 -1669
  312. package/packages/config-eslint/node_modules/eslint/lib/rules/no-extra-semi.js +0 -167
  313. package/packages/config-eslint/node_modules/eslint/lib/rules/no-fallthrough.js +0 -260
  314. package/packages/config-eslint/node_modules/eslint/lib/rules/no-floating-decimal.js +0 -99
  315. package/packages/config-eslint/node_modules/eslint/lib/rules/no-func-assign.js +0 -77
  316. package/packages/config-eslint/node_modules/eslint/lib/rules/no-global-assign.js +0 -101
  317. package/packages/config-eslint/node_modules/eslint/lib/rules/no-implicit-coercion.js +0 -468
  318. package/packages/config-eslint/node_modules/eslint/lib/rules/no-implicit-globals.js +0 -187
  319. package/packages/config-eslint/node_modules/eslint/lib/rules/no-implied-eval.js +0 -171
  320. package/packages/config-eslint/node_modules/eslint/lib/rules/no-import-assign.js +0 -227
  321. package/packages/config-eslint/node_modules/eslint/lib/rules/no-inline-comments.js +0 -115
  322. package/packages/config-eslint/node_modules/eslint/lib/rules/no-inner-declarations.js +0 -147
  323. package/packages/config-eslint/node_modules/eslint/lib/rules/no-invalid-regexp.js +0 -244
  324. package/packages/config-eslint/node_modules/eslint/lib/rules/no-invalid-this.js +0 -178
  325. package/packages/config-eslint/node_modules/eslint/lib/rules/no-irregular-whitespace.js +0 -292
  326. package/packages/config-eslint/node_modules/eslint/lib/rules/no-iterator.js +0 -48
  327. package/packages/config-eslint/node_modules/eslint/lib/rules/no-label-var.js +0 -78
  328. package/packages/config-eslint/node_modules/eslint/lib/rules/no-labels.js +0 -156
  329. package/packages/config-eslint/node_modules/eslint/lib/rules/no-lone-blocks.js +0 -140
  330. package/packages/config-eslint/node_modules/eslint/lib/rules/no-lonely-if.js +0 -126
  331. package/packages/config-eslint/node_modules/eslint/lib/rules/no-loop-func.js +0 -273
  332. package/packages/config-eslint/node_modules/eslint/lib/rules/no-loss-of-precision.js +0 -249
  333. package/packages/config-eslint/node_modules/eslint/lib/rules/no-magic-numbers.js +0 -365
  334. package/packages/config-eslint/node_modules/eslint/lib/rules/no-misleading-character-class.js +0 -595
  335. package/packages/config-eslint/node_modules/eslint/lib/rules/no-mixed-operators.js +0 -253
  336. package/packages/config-eslint/node_modules/eslint/lib/rules/no-mixed-requires.js +0 -267
  337. package/packages/config-eslint/node_modules/eslint/lib/rules/no-mixed-spaces-and-tabs.js +0 -148
  338. package/packages/config-eslint/node_modules/eslint/lib/rules/no-multi-assign.js +0 -66
  339. package/packages/config-eslint/node_modules/eslint/lib/rules/no-multi-spaces.js +0 -179
  340. package/packages/config-eslint/node_modules/eslint/lib/rules/no-multi-str.js +0 -67
  341. package/packages/config-eslint/node_modules/eslint/lib/rules/no-multiple-empty-lines.js +0 -210
  342. package/packages/config-eslint/node_modules/eslint/lib/rules/no-native-reassign.js +0 -114
  343. package/packages/config-eslint/node_modules/eslint/lib/rules/no-negated-condition.js +0 -100
  344. package/packages/config-eslint/node_modules/eslint/lib/rules/no-negated-in-lhs.js +0 -59
  345. package/packages/config-eslint/node_modules/eslint/lib/rules/no-nested-ternary.js +0 -46
  346. package/packages/config-eslint/node_modules/eslint/lib/rules/no-new-func.js +0 -96
  347. package/packages/config-eslint/node_modules/eslint/lib/rules/no-new-native-nonconstructor.js +0 -70
  348. package/packages/config-eslint/node_modules/eslint/lib/rules/no-new-object.js +0 -76
  349. package/packages/config-eslint/node_modules/eslint/lib/rules/no-new-require.js +0 -67
  350. package/packages/config-eslint/node_modules/eslint/lib/rules/no-new-symbol.js +0 -74
  351. package/packages/config-eslint/node_modules/eslint/lib/rules/no-new-wrappers.js +0 -62
  352. package/packages/config-eslint/node_modules/eslint/lib/rules/no-new.js +0 -42
  353. package/packages/config-eslint/node_modules/eslint/lib/rules/no-nonoctal-decimal-escape.js +0 -176
  354. package/packages/config-eslint/node_modules/eslint/lib/rules/no-obj-calls.js +0 -99
  355. package/packages/config-eslint/node_modules/eslint/lib/rules/no-object-constructor.js +0 -124
  356. package/packages/config-eslint/node_modules/eslint/lib/rules/no-octal-escape.js +0 -53
  357. package/packages/config-eslint/node_modules/eslint/lib/rules/no-octal.js +0 -42
  358. package/packages/config-eslint/node_modules/eslint/lib/rules/no-param-reassign.js +0 -248
  359. package/packages/config-eslint/node_modules/eslint/lib/rules/no-path-concat.js +0 -79
  360. package/packages/config-eslint/node_modules/eslint/lib/rules/no-plusplus.js +0 -102
  361. package/packages/config-eslint/node_modules/eslint/lib/rules/no-process-env.js +0 -68
  362. package/packages/config-eslint/node_modules/eslint/lib/rules/no-process-exit.js +0 -67
  363. package/packages/config-eslint/node_modules/eslint/lib/rules/no-promise-executor-return.js +0 -264
  364. package/packages/config-eslint/node_modules/eslint/lib/rules/no-proto.js +0 -45
  365. package/packages/config-eslint/node_modules/eslint/lib/rules/no-prototype-builtins.js +0 -181
  366. package/packages/config-eslint/node_modules/eslint/lib/rules/no-redeclare.js +0 -173
  367. package/packages/config-eslint/node_modules/eslint/lib/rules/no-regex-spaces.js +0 -219
  368. package/packages/config-eslint/node_modules/eslint/lib/rules/no-restricted-exports.js +0 -227
  369. package/packages/config-eslint/node_modules/eslint/lib/rules/no-restricted-globals.js +0 -266
  370. package/packages/config-eslint/node_modules/eslint/lib/rules/no-restricted-imports.js +0 -892
  371. package/packages/config-eslint/node_modules/eslint/lib/rules/no-restricted-modules.js +0 -249
  372. package/packages/config-eslint/node_modules/eslint/lib/rules/no-restricted-properties.js +0 -233
  373. package/packages/config-eslint/node_modules/eslint/lib/rules/no-restricted-syntax.js +0 -74
  374. package/packages/config-eslint/node_modules/eslint/lib/rules/no-return-assign.js +0 -87
  375. package/packages/config-eslint/node_modules/eslint/lib/rules/no-return-await.js +0 -162
  376. package/packages/config-eslint/node_modules/eslint/lib/rules/no-script-url.js +0 -68
  377. package/packages/config-eslint/node_modules/eslint/lib/rules/no-self-assign.js +0 -186
  378. package/packages/config-eslint/node_modules/eslint/lib/rules/no-self-compare.js +0 -77
  379. package/packages/config-eslint/node_modules/eslint/lib/rules/no-sequences.js +0 -158
  380. package/packages/config-eslint/node_modules/eslint/lib/rules/no-setter-return.js +0 -224
  381. package/packages/config-eslint/node_modules/eslint/lib/rules/no-shadow-restricted-names.js +0 -113
  382. package/packages/config-eslint/node_modules/eslint/lib/rules/no-shadow.js +0 -695
  383. package/packages/config-eslint/node_modules/eslint/lib/rules/no-spaced-func.js +0 -105
  384. package/packages/config-eslint/node_modules/eslint/lib/rules/no-sparse-arrays.js +0 -68
  385. package/packages/config-eslint/node_modules/eslint/lib/rules/no-sync.js +0 -81
  386. package/packages/config-eslint/node_modules/eslint/lib/rules/no-tabs.js +0 -110
  387. package/packages/config-eslint/node_modules/eslint/lib/rules/no-template-curly-in-string.js +0 -45
  388. package/packages/config-eslint/node_modules/eslint/lib/rules/no-ternary.js +0 -38
  389. package/packages/config-eslint/node_modules/eslint/lib/rules/no-this-before-super.js +0 -365
  390. package/packages/config-eslint/node_modules/eslint/lib/rules/no-throw-literal.js +0 -46
  391. package/packages/config-eslint/node_modules/eslint/lib/rules/no-trailing-spaces.js +0 -227
  392. package/packages/config-eslint/node_modules/eslint/lib/rules/no-unassigned-vars.js +0 -80
  393. package/packages/config-eslint/node_modules/eslint/lib/rules/no-undef-init.js +0 -101
  394. package/packages/config-eslint/node_modules/eslint/lib/rules/no-undef.js +0 -84
  395. package/packages/config-eslint/node_modules/eslint/lib/rules/no-undefined.js +0 -91
  396. package/packages/config-eslint/node_modules/eslint/lib/rules/no-underscore-dangle.js +0 -383
  397. package/packages/config-eslint/node_modules/eslint/lib/rules/no-unexpected-multiline.js +0 -130
  398. package/packages/config-eslint/node_modules/eslint/lib/rules/no-unmodified-loop-condition.js +0 -367
  399. package/packages/config-eslint/node_modules/eslint/lib/rules/no-unneeded-ternary.js +0 -232
  400. package/packages/config-eslint/node_modules/eslint/lib/rules/no-unreachable-loop.js +0 -190
  401. package/packages/config-eslint/node_modules/eslint/lib/rules/no-unreachable.js +0 -300
  402. package/packages/config-eslint/node_modules/eslint/lib/rules/no-unsafe-finally.js +0 -119
  403. package/packages/config-eslint/node_modules/eslint/lib/rules/no-unsafe-negation.js +0 -152
  404. package/packages/config-eslint/node_modules/eslint/lib/rules/no-unsafe-optional-chaining.js +0 -221
  405. package/packages/config-eslint/node_modules/eslint/lib/rules/no-unused-expressions.js +0 -227
  406. package/packages/config-eslint/node_modules/eslint/lib/rules/no-unused-labels.js +0 -158
  407. package/packages/config-eslint/node_modules/eslint/lib/rules/no-unused-private-class-members.js +0 -219
  408. package/packages/config-eslint/node_modules/eslint/lib/rules/no-unused-vars.js +0 -1746
  409. package/packages/config-eslint/node_modules/eslint/lib/rules/no-use-before-define.js +0 -453
  410. package/packages/config-eslint/node_modules/eslint/lib/rules/no-useless-assignment.js +0 -658
  411. package/packages/config-eslint/node_modules/eslint/lib/rules/no-useless-backreference.js +0 -263
  412. package/packages/config-eslint/node_modules/eslint/lib/rules/no-useless-call.js +0 -95
  413. package/packages/config-eslint/node_modules/eslint/lib/rules/no-useless-catch.js +0 -57
  414. package/packages/config-eslint/node_modules/eslint/lib/rules/no-useless-computed-key.js +0 -204
  415. package/packages/config-eslint/node_modules/eslint/lib/rules/no-useless-concat.js +0 -121
  416. package/packages/config-eslint/node_modules/eslint/lib/rules/no-useless-constructor.js +0 -262
  417. package/packages/config-eslint/node_modules/eslint/lib/rules/no-useless-escape.js +0 -406
  418. package/packages/config-eslint/node_modules/eslint/lib/rules/no-useless-rename.js +0 -202
  419. package/packages/config-eslint/node_modules/eslint/lib/rules/no-useless-return.js +0 -401
  420. package/packages/config-eslint/node_modules/eslint/lib/rules/no-var.js +0 -375
  421. package/packages/config-eslint/node_modules/eslint/lib/rules/no-void.js +0 -69
  422. package/packages/config-eslint/node_modules/eslint/lib/rules/no-warning-comments.js +0 -209
  423. package/packages/config-eslint/node_modules/eslint/lib/rules/no-whitespace-before-property.js +0 -150
  424. package/packages/config-eslint/node_modules/eslint/lib/rules/no-with.js +0 -37
  425. package/packages/config-eslint/node_modules/eslint/lib/rules/nonblock-statement-body-position.js +0 -164
  426. package/packages/config-eslint/node_modules/eslint/lib/rules/object-curly-newline.js +0 -383
  427. package/packages/config-eslint/node_modules/eslint/lib/rules/object-curly-spacing.js +0 -369
  428. package/packages/config-eslint/node_modules/eslint/lib/rules/object-property-newline.js +0 -151
  429. package/packages/config-eslint/node_modules/eslint/lib/rules/object-shorthand.js +0 -652
  430. package/packages/config-eslint/node_modules/eslint/lib/rules/one-var-declaration-per-line.js +0 -117
  431. package/packages/config-eslint/node_modules/eslint/lib/rules/one-var.js +0 -717
  432. package/packages/config-eslint/node_modules/eslint/lib/rules/operator-assignment.js +0 -270
  433. package/packages/config-eslint/node_modules/eslint/lib/rules/operator-linebreak.js +0 -315
  434. package/packages/config-eslint/node_modules/eslint/lib/rules/padded-blocks.js +0 -366
  435. package/packages/config-eslint/node_modules/eslint/lib/rules/padding-line-between-statements.js +0 -612
  436. package/packages/config-eslint/node_modules/eslint/lib/rules/prefer-arrow-callback.js +0 -444
  437. package/packages/config-eslint/node_modules/eslint/lib/rules/prefer-const.js +0 -554
  438. package/packages/config-eslint/node_modules/eslint/lib/rules/prefer-destructuring.js +0 -332
  439. package/packages/config-eslint/node_modules/eslint/lib/rules/prefer-exponentiation-operator.js +0 -235
  440. package/packages/config-eslint/node_modules/eslint/lib/rules/prefer-named-capture-group.js +0 -197
  441. package/packages/config-eslint/node_modules/eslint/lib/rules/prefer-numeric-literals.js +0 -157
  442. package/packages/config-eslint/node_modules/eslint/lib/rules/prefer-object-has-own.js +0 -148
  443. package/packages/config-eslint/node_modules/eslint/lib/rules/prefer-object-spread.js +0 -319
  444. package/packages/config-eslint/node_modules/eslint/lib/rules/prefer-promise-reject-errors.js +0 -154
  445. package/packages/config-eslint/node_modules/eslint/lib/rules/prefer-reflect.js +0 -150
  446. package/packages/config-eslint/node_modules/eslint/lib/rules/prefer-regex-literals.js +0 -605
  447. package/packages/config-eslint/node_modules/eslint/lib/rules/prefer-rest-params.js +0 -125
  448. package/packages/config-eslint/node_modules/eslint/lib/rules/prefer-spread.js +0 -91
  449. package/packages/config-eslint/node_modules/eslint/lib/rules/prefer-template.js +0 -347
  450. package/packages/config-eslint/node_modules/eslint/lib/rules/preserve-caught-error.js +0 -535
  451. package/packages/config-eslint/node_modules/eslint/lib/rules/quote-props.js +0 -394
  452. package/packages/config-eslint/node_modules/eslint/lib/rules/quotes.js +0 -416
  453. package/packages/config-eslint/node_modules/eslint/lib/rules/radix.js +0 -199
  454. package/packages/config-eslint/node_modules/eslint/lib/rules/require-atomic-updates.js +0 -365
  455. package/packages/config-eslint/node_modules/eslint/lib/rules/require-await.js +0 -184
  456. package/packages/config-eslint/node_modules/eslint/lib/rules/require-unicode-regexp.js +0 -317
  457. package/packages/config-eslint/node_modules/eslint/lib/rules/require-yield.js +0 -86
  458. package/packages/config-eslint/node_modules/eslint/lib/rules/rest-spread-spacing.js +0 -150
  459. package/packages/config-eslint/node_modules/eslint/lib/rules/semi-spacing.js +0 -297
  460. package/packages/config-eslint/node_modules/eslint/lib/rules/semi-style.js +0 -218
  461. package/packages/config-eslint/node_modules/eslint/lib/rules/semi.js +0 -476
  462. package/packages/config-eslint/node_modules/eslint/lib/rules/sort-imports.js +0 -319
  463. package/packages/config-eslint/node_modules/eslint/lib/rules/sort-keys.js +0 -268
  464. package/packages/config-eslint/node_modules/eslint/lib/rules/sort-vars.js +0 -140
  465. package/packages/config-eslint/node_modules/eslint/lib/rules/space-before-blocks.js +0 -232
  466. package/packages/config-eslint/node_modules/eslint/lib/rules/space-before-function-paren.js +0 -202
  467. package/packages/config-eslint/node_modules/eslint/lib/rules/space-in-parens.js +0 -374
  468. package/packages/config-eslint/node_modules/eslint/lib/rules/space-infix-ops.js +0 -249
  469. package/packages/config-eslint/node_modules/eslint/lib/rules/space-unary-ops.js +0 -400
  470. package/packages/config-eslint/node_modules/eslint/lib/rules/spaced-comment.js +0 -447
  471. package/packages/config-eslint/node_modules/eslint/lib/rules/strict.js +0 -324
  472. package/packages/config-eslint/node_modules/eslint/lib/rules/switch-colon-spacing.js +0 -158
  473. package/packages/config-eslint/node_modules/eslint/lib/rules/symbol-description.js +0 -70
  474. package/packages/config-eslint/node_modules/eslint/lib/rules/template-curly-spacing.js +0 -168
  475. package/packages/config-eslint/node_modules/eslint/lib/rules/template-tag-spacing.js +0 -121
  476. package/packages/config-eslint/node_modules/eslint/lib/rules/unicode-bom.js +0 -73
  477. package/packages/config-eslint/node_modules/eslint/lib/rules/use-isnan.js +0 -268
  478. package/packages/config-eslint/node_modules/eslint/lib/rules/utils/ast-utils.js +0 -2848
  479. package/packages/config-eslint/node_modules/eslint/lib/rules/utils/char-source.js +0 -247
  480. package/packages/config-eslint/node_modules/eslint/lib/rules/utils/fix-tracker.js +0 -125
  481. package/packages/config-eslint/node_modules/eslint/lib/rules/utils/keywords.js +0 -67
  482. package/packages/config-eslint/node_modules/eslint/lib/rules/utils/lazy-loading-rule-map.js +0 -118
  483. package/packages/config-eslint/node_modules/eslint/lib/rules/utils/regular-expressions.js +0 -58
  484. package/packages/config-eslint/node_modules/eslint/lib/rules/utils/unicode/index.js +0 -16
  485. package/packages/config-eslint/node_modules/eslint/lib/rules/utils/unicode/is-combining-character.js +0 -13
  486. package/packages/config-eslint/node_modules/eslint/lib/rules/utils/unicode/is-emoji-modifier.js +0 -13
  487. package/packages/config-eslint/node_modules/eslint/lib/rules/utils/unicode/is-regional-indicator-symbol.js +0 -13
  488. package/packages/config-eslint/node_modules/eslint/lib/rules/utils/unicode/is-surrogate-pair.js +0 -14
  489. package/packages/config-eslint/node_modules/eslint/lib/rules/valid-typeof.js +0 -171
  490. package/packages/config-eslint/node_modules/eslint/lib/rules/vars-on-top.js +0 -165
  491. package/packages/config-eslint/node_modules/eslint/lib/rules/wrap-iife.js +0 -238
  492. package/packages/config-eslint/node_modules/eslint/lib/rules/wrap-regex.js +0 -91
  493. package/packages/config-eslint/node_modules/eslint/lib/rules/yield-star-spacing.js +0 -158
  494. package/packages/config-eslint/node_modules/eslint/lib/rules/yoda.js +0 -362
  495. package/packages/config-eslint/node_modules/eslint/lib/services/parser-service.js +0 -64
  496. package/packages/config-eslint/node_modules/eslint/lib/services/processor-service.js +0 -100
  497. package/packages/config-eslint/node_modules/eslint/lib/services/suppressions-service.js +0 -302
  498. package/packages/config-eslint/node_modules/eslint/lib/services/warning-service.js +0 -87
  499. package/packages/config-eslint/node_modules/eslint/lib/shared/ajv.js +0 -34
  500. package/packages/config-eslint/node_modules/eslint/lib/shared/assert.js +0 -21
  501. package/packages/config-eslint/node_modules/eslint/lib/shared/ast-utils.js +0 -30
  502. package/packages/config-eslint/node_modules/eslint/lib/shared/deep-merge-arrays.js +0 -62
  503. package/packages/config-eslint/node_modules/eslint/lib/shared/directives.js +0 -16
  504. package/packages/config-eslint/node_modules/eslint/lib/shared/flags.js +0 -89
  505. package/packages/config-eslint/node_modules/eslint/lib/shared/logging.js +0 -38
  506. package/packages/config-eslint/node_modules/eslint/lib/shared/naming.js +0 -109
  507. package/packages/config-eslint/node_modules/eslint/lib/shared/option-utils.js +0 -63
  508. package/packages/config-eslint/node_modules/eslint/lib/shared/relative-module-resolver.js +0 -28
  509. package/packages/config-eslint/node_modules/eslint/lib/shared/runtime-info.js +0 -177
  510. package/packages/config-eslint/node_modules/eslint/lib/shared/serialization.js +0 -78
  511. package/packages/config-eslint/node_modules/eslint/lib/shared/severity.js +0 -49
  512. package/packages/config-eslint/node_modules/eslint/lib/shared/stats.js +0 -30
  513. package/packages/config-eslint/node_modules/eslint/lib/shared/string-utils.js +0 -58
  514. package/packages/config-eslint/node_modules/eslint/lib/shared/text-table.js +0 -68
  515. package/packages/config-eslint/node_modules/eslint/lib/shared/translate-cli-options.js +0 -223
  516. package/packages/config-eslint/node_modules/eslint/lib/shared/traverser.js +0 -202
  517. package/packages/config-eslint/node_modules/eslint/lib/types/config-api.d.ts +0 -12
  518. package/packages/config-eslint/node_modules/eslint/lib/types/index.d.ts +0 -1475
  519. package/packages/config-eslint/node_modules/eslint/lib/types/rules.d.ts +0 -5603
  520. package/packages/config-eslint/node_modules/eslint/lib/types/universal.d.ts +0 -6
  521. package/packages/config-eslint/node_modules/eslint/lib/types/use-at-your-own-risk.d.ts +0 -34
  522. package/packages/config-eslint/node_modules/eslint/lib/universal.js +0 -10
  523. package/packages/config-eslint/node_modules/eslint/lib/unsupported-api.js +0 -21
  524. package/packages/config-eslint/node_modules/eslint/messages/all-matched-files-ignored.js +0 -21
  525. package/packages/config-eslint/node_modules/eslint/messages/config-file-missing.js +0 -16
  526. package/packages/config-eslint/node_modules/eslint/messages/config-plugin-missing.js +0 -14
  527. package/packages/config-eslint/node_modules/eslint/messages/config-serialize-function.js +0 -30
  528. package/packages/config-eslint/node_modules/eslint/messages/eslintrc-incompat.js +0 -117
  529. package/packages/config-eslint/node_modules/eslint/messages/eslintrc-plugins.js +0 -27
  530. package/packages/config-eslint/node_modules/eslint/messages/extend-config-missing.js +0 -13
  531. package/packages/config-eslint/node_modules/eslint/messages/failed-to-read-json.js +0 -11
  532. package/packages/config-eslint/node_modules/eslint/messages/file-not-found.js +0 -10
  533. package/packages/config-eslint/node_modules/eslint/messages/invalid-rule-options.js +0 -17
  534. package/packages/config-eslint/node_modules/eslint/messages/invalid-rule-severity.js +0 -13
  535. package/packages/config-eslint/node_modules/eslint/messages/no-config-found.js +0 -15
  536. package/packages/config-eslint/node_modules/eslint/messages/plugin-conflict.js +0 -22
  537. package/packages/config-eslint/node_modules/eslint/messages/plugin-invalid.js +0 -16
  538. package/packages/config-eslint/node_modules/eslint/messages/plugin-missing.js +0 -19
  539. package/packages/config-eslint/node_modules/eslint/messages/shared.js +0 -23
  540. package/packages/config-eslint/node_modules/eslint/messages/whitespace-found.js +0 -11
  541. package/packages/config-eslint/node_modules/eslint/package.json +0 -220
  542. package/packages/config-eslint/node_modules/eslint-visitor-keys/LICENSE +0 -201
  543. package/packages/config-eslint/node_modules/eslint-visitor-keys/README.md +0 -123
  544. package/packages/config-eslint/node_modules/eslint-visitor-keys/dist/eslint-visitor-keys.cjs +0 -187
  545. package/packages/config-eslint/node_modules/eslint-visitor-keys/dist/eslint-visitor-keys.d.cts +0 -28
  546. package/packages/config-eslint/node_modules/eslint-visitor-keys/dist/index.d.ts +0 -16
  547. package/packages/config-eslint/node_modules/eslint-visitor-keys/dist/visitor-keys.d.ts +0 -12
  548. package/packages/config-eslint/node_modules/eslint-visitor-keys/lib/index.js +0 -67
  549. package/packages/config-eslint/node_modules/eslint-visitor-keys/lib/visitor-keys.js +0 -118
  550. package/packages/config-eslint/node_modules/eslint-visitor-keys/package.json +0 -57
  551. package/packages/config-eslint/node_modules/espree/LICENSE +0 -25
  552. package/packages/config-eslint/node_modules/espree/README.md +0 -261
  553. package/packages/config-eslint/node_modules/espree/dist/espree.cjs +0 -1284
  554. package/packages/config-eslint/node_modules/espree/dist/espree.d.cts +0 -3
  555. package/packages/config-eslint/node_modules/espree/dist/espree.d.cts.map +0 -1
  556. package/packages/config-eslint/node_modules/espree/dist/espree.d.ts +0 -67
  557. package/packages/config-eslint/node_modules/espree/dist/espree.d.ts.map +0 -1
  558. package/packages/config-eslint/node_modules/espree/espree.js +0 -287
  559. package/packages/config-eslint/node_modules/espree/lib/espree.js +0 -493
  560. package/packages/config-eslint/node_modules/espree/lib/options.js +0 -176
  561. package/packages/config-eslint/node_modules/espree/lib/token-translator.js +0 -306
  562. package/packages/config-eslint/node_modules/espree/lib/types.js +0 -118
  563. package/packages/config-eslint/node_modules/espree/package.json +0 -70
  564. package/packages/config-eslint/node_modules/ignore/LICENSE-MIT +0 -21
  565. package/packages/config-eslint/node_modules/ignore/README.md +0 -412
  566. package/packages/config-eslint/node_modules/ignore/index.d.ts +0 -61
  567. package/packages/config-eslint/node_modules/ignore/index.js +0 -636
  568. package/packages/config-eslint/node_modules/ignore/legacy.js +0 -559
  569. package/packages/config-eslint/node_modules/ignore/package.json +0 -74
  570. package/packages/config-eslint/node_modules/json-schema-traverse/.eslintrc.yml +0 -27
  571. package/packages/config-eslint/node_modules/json-schema-traverse/.travis.yml +0 -8
  572. package/packages/config-eslint/node_modules/json-schema-traverse/LICENSE +0 -21
  573. package/packages/config-eslint/node_modules/json-schema-traverse/README.md +0 -83
  574. package/packages/config-eslint/node_modules/json-schema-traverse/index.js +0 -89
  575. package/packages/config-eslint/node_modules/json-schema-traverse/package.json +0 -43
  576. package/packages/config-eslint/node_modules/json-schema-traverse/spec/.eslintrc.yml +0 -6
  577. package/packages/config-eslint/node_modules/json-schema-traverse/spec/fixtures/schema.js +0 -125
  578. package/packages/config-eslint/node_modules/json-schema-traverse/spec/index.spec.js +0 -171
  579. package/packages/config-eslint/node_modules/minimatch/LICENSE.md +0 -55
  580. package/packages/config-eslint/node_modules/minimatch/README.md +0 -528
  581. package/packages/config-eslint/node_modules/minimatch/dist/commonjs/assert-valid-pattern.d.ts +0 -2
  582. package/packages/config-eslint/node_modules/minimatch/dist/commonjs/assert-valid-pattern.d.ts.map +0 -1
  583. package/packages/config-eslint/node_modules/minimatch/dist/commonjs/assert-valid-pattern.js +0 -14
  584. package/packages/config-eslint/node_modules/minimatch/dist/commonjs/assert-valid-pattern.js.map +0 -1
  585. package/packages/config-eslint/node_modules/minimatch/dist/commonjs/ast.d.ts +0 -22
  586. package/packages/config-eslint/node_modules/minimatch/dist/commonjs/ast.d.ts.map +0 -1
  587. package/packages/config-eslint/node_modules/minimatch/dist/commonjs/ast.js +0 -846
  588. package/packages/config-eslint/node_modules/minimatch/dist/commonjs/ast.js.map +0 -1
  589. package/packages/config-eslint/node_modules/minimatch/dist/commonjs/brace-expressions.d.ts +0 -8
  590. package/packages/config-eslint/node_modules/minimatch/dist/commonjs/brace-expressions.d.ts.map +0 -1
  591. package/packages/config-eslint/node_modules/minimatch/dist/commonjs/brace-expressions.js +0 -150
  592. package/packages/config-eslint/node_modules/minimatch/dist/commonjs/brace-expressions.js.map +0 -1
  593. package/packages/config-eslint/node_modules/minimatch/dist/commonjs/escape.d.ts +0 -15
  594. package/packages/config-eslint/node_modules/minimatch/dist/commonjs/escape.d.ts.map +0 -1
  595. package/packages/config-eslint/node_modules/minimatch/dist/commonjs/escape.js +0 -30
  596. package/packages/config-eslint/node_modules/minimatch/dist/commonjs/escape.js.map +0 -1
  597. package/packages/config-eslint/node_modules/minimatch/dist/commonjs/index.d.ts +0 -174
  598. package/packages/config-eslint/node_modules/minimatch/dist/commonjs/index.d.ts.map +0 -1
  599. package/packages/config-eslint/node_modules/minimatch/dist/commonjs/index.js +0 -1121
  600. package/packages/config-eslint/node_modules/minimatch/dist/commonjs/index.js.map +0 -1
  601. package/packages/config-eslint/node_modules/minimatch/dist/commonjs/package.json +0 -3
  602. package/packages/config-eslint/node_modules/minimatch/dist/commonjs/unescape.d.ts +0 -22
  603. package/packages/config-eslint/node_modules/minimatch/dist/commonjs/unescape.d.ts.map +0 -1
  604. package/packages/config-eslint/node_modules/minimatch/dist/commonjs/unescape.js +0 -38
  605. package/packages/config-eslint/node_modules/minimatch/dist/commonjs/unescape.js.map +0 -1
  606. package/packages/config-eslint/node_modules/minimatch/dist/esm/assert-valid-pattern.d.ts +0 -2
  607. package/packages/config-eslint/node_modules/minimatch/dist/esm/assert-valid-pattern.d.ts.map +0 -1
  608. package/packages/config-eslint/node_modules/minimatch/dist/esm/assert-valid-pattern.js +0 -10
  609. package/packages/config-eslint/node_modules/minimatch/dist/esm/assert-valid-pattern.js.map +0 -1
  610. package/packages/config-eslint/node_modules/minimatch/dist/esm/ast.d.ts +0 -22
  611. package/packages/config-eslint/node_modules/minimatch/dist/esm/ast.d.ts.map +0 -1
  612. package/packages/config-eslint/node_modules/minimatch/dist/esm/ast.js +0 -842
  613. package/packages/config-eslint/node_modules/minimatch/dist/esm/ast.js.map +0 -1
  614. package/packages/config-eslint/node_modules/minimatch/dist/esm/brace-expressions.d.ts +0 -8
  615. package/packages/config-eslint/node_modules/minimatch/dist/esm/brace-expressions.d.ts.map +0 -1
  616. package/packages/config-eslint/node_modules/minimatch/dist/esm/brace-expressions.js +0 -146
  617. package/packages/config-eslint/node_modules/minimatch/dist/esm/brace-expressions.js.map +0 -1
  618. package/packages/config-eslint/node_modules/minimatch/dist/esm/escape.d.ts +0 -15
  619. package/packages/config-eslint/node_modules/minimatch/dist/esm/escape.d.ts.map +0 -1
  620. package/packages/config-eslint/node_modules/minimatch/dist/esm/escape.js +0 -26
  621. package/packages/config-eslint/node_modules/minimatch/dist/esm/escape.js.map +0 -1
  622. package/packages/config-eslint/node_modules/minimatch/dist/esm/index.d.ts +0 -174
  623. package/packages/config-eslint/node_modules/minimatch/dist/esm/index.d.ts.map +0 -1
  624. package/packages/config-eslint/node_modules/minimatch/dist/esm/index.js +0 -1108
  625. package/packages/config-eslint/node_modules/minimatch/dist/esm/index.js.map +0 -1
  626. package/packages/config-eslint/node_modules/minimatch/dist/esm/package.json +0 -3
  627. package/packages/config-eslint/node_modules/minimatch/dist/esm/unescape.d.ts +0 -22
  628. package/packages/config-eslint/node_modules/minimatch/dist/esm/unescape.d.ts.map +0 -1
  629. package/packages/config-eslint/node_modules/minimatch/dist/esm/unescape.js +0 -34
  630. package/packages/config-eslint/node_modules/minimatch/dist/esm/unescape.js.map +0 -1
  631. package/packages/config-eslint/node_modules/minimatch/package.json +0 -67
@@ -1,1369 +0,0 @@
1
- /**
2
- * @fileoverview This option sets a specific tab width for your code
3
- *
4
- * This rule has been ported and modified from nodeca.
5
- * @author Vitaly Puzrin
6
- * @author Gyandeep Singh
7
- * @deprecated in ESLint v4.0.0
8
- */
9
-
10
- "use strict";
11
-
12
- //------------------------------------------------------------------------------
13
- // Requirements
14
- //------------------------------------------------------------------------------
15
-
16
- const astUtils = require("./utils/ast-utils");
17
-
18
- //------------------------------------------------------------------------------
19
- // Rule Definition
20
- //------------------------------------------------------------------------------
21
- // this rule has known coverage issues, but it's deprecated and shouldn't be updated in the future anyway.
22
- /* c8 ignore next */
23
- /** @type {import('../types').Rule.RuleModule} */
24
- module.exports = {
25
- meta: {
26
- type: "layout",
27
-
28
- docs: {
29
- description: "Enforce consistent indentation",
30
- recommended: false,
31
- url: "https://eslint.org/docs/latest/rules/indent-legacy",
32
- },
33
-
34
- deprecated: {
35
- message: "Formatting rules are being moved out of ESLint core.",
36
- url: "https://eslint.org/blog/2023/10/deprecating-formatting-rules/",
37
- deprecatedSince: "4.0.0",
38
- availableUntil: "11.0.0",
39
- replacedBy: [
40
- {
41
- message:
42
- "ESLint Stylistic now maintains deprecated stylistic core rules.",
43
- url: "https://eslint.style/guide/migration",
44
- plugin: {
45
- name: "@stylistic/eslint-plugin",
46
- url: "https://eslint.style",
47
- },
48
- rule: {
49
- name: "indent",
50
- url: "https://eslint.style/rules/indent",
51
- },
52
- },
53
- ],
54
- },
55
-
56
- fixable: "whitespace",
57
-
58
- schema: [
59
- {
60
- oneOf: [
61
- {
62
- enum: ["tab"],
63
- },
64
- {
65
- type: "integer",
66
- minimum: 0,
67
- },
68
- ],
69
- },
70
- {
71
- type: "object",
72
- properties: {
73
- SwitchCase: {
74
- type: "integer",
75
- minimum: 0,
76
- },
77
- VariableDeclarator: {
78
- oneOf: [
79
- {
80
- type: "integer",
81
- minimum: 0,
82
- },
83
- {
84
- type: "object",
85
- properties: {
86
- var: {
87
- type: "integer",
88
- minimum: 0,
89
- },
90
- let: {
91
- type: "integer",
92
- minimum: 0,
93
- },
94
- const: {
95
- type: "integer",
96
- minimum: 0,
97
- },
98
- },
99
- },
100
- ],
101
- },
102
- outerIIFEBody: {
103
- type: "integer",
104
- minimum: 0,
105
- },
106
- MemberExpression: {
107
- type: "integer",
108
- minimum: 0,
109
- },
110
- FunctionDeclaration: {
111
- type: "object",
112
- properties: {
113
- parameters: {
114
- oneOf: [
115
- {
116
- type: "integer",
117
- minimum: 0,
118
- },
119
- {
120
- enum: ["first"],
121
- },
122
- ],
123
- },
124
- body: {
125
- type: "integer",
126
- minimum: 0,
127
- },
128
- },
129
- },
130
- FunctionExpression: {
131
- type: "object",
132
- properties: {
133
- parameters: {
134
- oneOf: [
135
- {
136
- type: "integer",
137
- minimum: 0,
138
- },
139
- {
140
- enum: ["first"],
141
- },
142
- ],
143
- },
144
- body: {
145
- type: "integer",
146
- minimum: 0,
147
- },
148
- },
149
- },
150
- CallExpression: {
151
- type: "object",
152
- properties: {
153
- parameters: {
154
- oneOf: [
155
- {
156
- type: "integer",
157
- minimum: 0,
158
- },
159
- {
160
- enum: ["first"],
161
- },
162
- ],
163
- },
164
- },
165
- },
166
- ArrayExpression: {
167
- oneOf: [
168
- {
169
- type: "integer",
170
- minimum: 0,
171
- },
172
- {
173
- enum: ["first"],
174
- },
175
- ],
176
- },
177
- ObjectExpression: {
178
- oneOf: [
179
- {
180
- type: "integer",
181
- minimum: 0,
182
- },
183
- {
184
- enum: ["first"],
185
- },
186
- ],
187
- },
188
- },
189
- additionalProperties: false,
190
- },
191
- ],
192
- messages: {
193
- expected:
194
- "Expected indentation of {{expected}} but found {{actual}}.",
195
- },
196
- },
197
-
198
- create(context) {
199
- const DEFAULT_VARIABLE_INDENT = 1;
200
- const DEFAULT_PARAMETER_INDENT = null; // For backwards compatibility, don't check parameter indentation unless specified in the config
201
- const DEFAULT_FUNCTION_BODY_INDENT = 1;
202
-
203
- let indentType = "space";
204
- let indentSize = 4;
205
- const options = {
206
- SwitchCase: 0,
207
- VariableDeclarator: {
208
- var: DEFAULT_VARIABLE_INDENT,
209
- let: DEFAULT_VARIABLE_INDENT,
210
- const: DEFAULT_VARIABLE_INDENT,
211
- },
212
- outerIIFEBody: null,
213
- FunctionDeclaration: {
214
- parameters: DEFAULT_PARAMETER_INDENT,
215
- body: DEFAULT_FUNCTION_BODY_INDENT,
216
- },
217
- FunctionExpression: {
218
- parameters: DEFAULT_PARAMETER_INDENT,
219
- body: DEFAULT_FUNCTION_BODY_INDENT,
220
- },
221
- CallExpression: {
222
- arguments: DEFAULT_PARAMETER_INDENT,
223
- },
224
- ArrayExpression: 1,
225
- ObjectExpression: 1,
226
- };
227
-
228
- const sourceCode = context.sourceCode;
229
-
230
- if (context.options.length) {
231
- if (context.options[0] === "tab") {
232
- indentSize = 1;
233
- indentType = "tab";
234
- } /* c8 ignore start */ else if (
235
- typeof context.options[0] === "number"
236
- ) {
237
- indentSize = context.options[0];
238
- indentType = "space";
239
- } /* c8 ignore stop */
240
-
241
- if (context.options[1]) {
242
- const opts = context.options[1];
243
-
244
- options.SwitchCase = opts.SwitchCase || 0;
245
- const variableDeclaratorRules = opts.VariableDeclarator;
246
-
247
- if (typeof variableDeclaratorRules === "number") {
248
- options.VariableDeclarator = {
249
- var: variableDeclaratorRules,
250
- let: variableDeclaratorRules,
251
- const: variableDeclaratorRules,
252
- };
253
- } else if (typeof variableDeclaratorRules === "object") {
254
- Object.assign(
255
- options.VariableDeclarator,
256
- variableDeclaratorRules,
257
- );
258
- }
259
-
260
- if (typeof opts.outerIIFEBody === "number") {
261
- options.outerIIFEBody = opts.outerIIFEBody;
262
- }
263
-
264
- if (typeof opts.MemberExpression === "number") {
265
- options.MemberExpression = opts.MemberExpression;
266
- }
267
-
268
- if (typeof opts.FunctionDeclaration === "object") {
269
- Object.assign(
270
- options.FunctionDeclaration,
271
- opts.FunctionDeclaration,
272
- );
273
- }
274
-
275
- if (typeof opts.FunctionExpression === "object") {
276
- Object.assign(
277
- options.FunctionExpression,
278
- opts.FunctionExpression,
279
- );
280
- }
281
-
282
- if (typeof opts.CallExpression === "object") {
283
- Object.assign(options.CallExpression, opts.CallExpression);
284
- }
285
-
286
- if (
287
- typeof opts.ArrayExpression === "number" ||
288
- typeof opts.ArrayExpression === "string"
289
- ) {
290
- options.ArrayExpression = opts.ArrayExpression;
291
- }
292
-
293
- if (
294
- typeof opts.ObjectExpression === "number" ||
295
- typeof opts.ObjectExpression === "string"
296
- ) {
297
- options.ObjectExpression = opts.ObjectExpression;
298
- }
299
- }
300
- }
301
-
302
- const caseIndentStore = {};
303
-
304
- /**
305
- * Creates an error message for a line, given the expected/actual indentation.
306
- * @param {number} expectedAmount The expected amount of indentation characters for this line
307
- * @param {number} actualSpaces The actual number of indentation spaces that were found on this line
308
- * @param {number} actualTabs The actual number of indentation tabs that were found on this line
309
- * @returns {string} An error message for this line
310
- */
311
- function createErrorMessageData(
312
- expectedAmount,
313
- actualSpaces,
314
- actualTabs,
315
- ) {
316
- const expectedStatement = `${expectedAmount} ${indentType}${expectedAmount === 1 ? "" : "s"}`; // e.g. "2 tabs"
317
- const foundSpacesWord = `space${actualSpaces === 1 ? "" : "s"}`; // e.g. "space"
318
- const foundTabsWord = `tab${actualTabs === 1 ? "" : "s"}`; // e.g. "tabs"
319
- let foundStatement;
320
-
321
- if (actualSpaces > 0 && actualTabs > 0) {
322
- foundStatement = `${actualSpaces} ${foundSpacesWord} and ${actualTabs} ${foundTabsWord}`; // e.g. "1 space and 2 tabs"
323
- } else if (actualSpaces > 0) {
324
- /*
325
- * Abbreviate the message if the expected indentation is also spaces.
326
- * e.g. 'Expected 4 spaces but found 2' rather than 'Expected 4 spaces but found 2 spaces'
327
- */
328
- foundStatement =
329
- indentType === "space"
330
- ? actualSpaces
331
- : `${actualSpaces} ${foundSpacesWord}`;
332
- } else if (actualTabs > 0) {
333
- foundStatement =
334
- indentType === "tab"
335
- ? actualTabs
336
- : `${actualTabs} ${foundTabsWord}`;
337
- } else {
338
- foundStatement = "0";
339
- }
340
- return {
341
- expected: expectedStatement,
342
- actual: foundStatement,
343
- };
344
- }
345
-
346
- /**
347
- * Reports a given indent violation
348
- * @param {ASTNode} node Node violating the indent rule
349
- * @param {number} needed Expected indentation character count
350
- * @param {number} gottenSpaces Indentation space count in the actual node/code
351
- * @param {number} gottenTabs Indentation tab count in the actual node/code
352
- * @param {Object} [loc] Error line and column location
353
- * @param {boolean} isLastNodeCheck Is the error for last node check
354
- * @returns {void}
355
- */
356
- function report(
357
- node,
358
- needed,
359
- gottenSpaces,
360
- gottenTabs,
361
- loc,
362
- isLastNodeCheck,
363
- ) {
364
- if (gottenSpaces && gottenTabs) {
365
- // To avoid conflicts with `no-mixed-spaces-and-tabs`, don't report lines that have both spaces and tabs.
366
- return;
367
- }
368
-
369
- const desiredIndent = (indentType === "space" ? " " : "\t").repeat(
370
- needed,
371
- );
372
-
373
- const textRange = isLastNodeCheck
374
- ? [
375
- node.range[1] - node.loc.end.column,
376
- node.range[1] -
377
- node.loc.end.column +
378
- gottenSpaces +
379
- gottenTabs,
380
- ]
381
- : [
382
- node.range[0] - node.loc.start.column,
383
- node.range[0] -
384
- node.loc.start.column +
385
- gottenSpaces +
386
- gottenTabs,
387
- ];
388
-
389
- context.report({
390
- node,
391
- loc,
392
- messageId: "expected",
393
- data: createErrorMessageData(needed, gottenSpaces, gottenTabs),
394
- fix: fixer => fixer.replaceTextRange(textRange, desiredIndent),
395
- });
396
- }
397
-
398
- /**
399
- * Get the actual indent of node
400
- * @param {ASTNode|Token} node Node to examine
401
- * @param {boolean} [byLastLine=false] get indent of node's last line
402
- * @returns {Object} The node's indent. Contains keys `space` and `tab`, representing the indent of each character. Also
403
- * contains keys `goodChar` and `badChar`, where `goodChar` is the amount of the user's desired indentation character, and
404
- * `badChar` is the amount of the other indentation character.
405
- */
406
- function getNodeIndent(node, byLastLine) {
407
- const token = byLastLine
408
- ? sourceCode.getLastToken(node)
409
- : sourceCode.getFirstToken(node);
410
- const srcCharsBeforeNode = sourceCode
411
- .getText(token, token.loc.start.column)
412
- .split("");
413
- const indentChars = srcCharsBeforeNode.slice(
414
- 0,
415
- srcCharsBeforeNode.findIndex(
416
- char => char !== " " && char !== "\t",
417
- ),
418
- );
419
- const spaces = indentChars.filter(char => char === " ").length;
420
- const tabs = indentChars.filter(char => char === "\t").length;
421
-
422
- return {
423
- space: spaces,
424
- tab: tabs,
425
- goodChar: indentType === "space" ? spaces : tabs,
426
- badChar: indentType === "space" ? tabs : spaces,
427
- };
428
- }
429
-
430
- /**
431
- * Checks node is the first in its own start line. By default it looks by start line.
432
- * @param {ASTNode} node The node to check
433
- * @param {boolean} [byEndLocation=false] Lookup based on start position or end
434
- * @returns {boolean} true if its the first in the its start line
435
- */
436
- function isNodeFirstInLine(node, byEndLocation) {
437
- const firstToken =
438
- byEndLocation === true
439
- ? sourceCode.getLastToken(node, 1)
440
- : sourceCode.getTokenBefore(node),
441
- startLine =
442
- byEndLocation === true
443
- ? node.loc.end.line
444
- : node.loc.start.line,
445
- endLine = firstToken ? firstToken.loc.end.line : -1;
446
-
447
- return startLine !== endLine;
448
- }
449
-
450
- /**
451
- * Check indent for node
452
- * @param {ASTNode} node Node to check
453
- * @param {number} neededIndent needed indent
454
- * @returns {void}
455
- */
456
- function checkNodeIndent(node, neededIndent) {
457
- const actualIndent = getNodeIndent(node, false);
458
-
459
- if (
460
- node.type !== "ArrayExpression" &&
461
- node.type !== "ObjectExpression" &&
462
- (actualIndent.goodChar !== neededIndent ||
463
- actualIndent.badChar !== 0) &&
464
- isNodeFirstInLine(node)
465
- ) {
466
- report(
467
- node,
468
- neededIndent,
469
- actualIndent.space,
470
- actualIndent.tab,
471
- );
472
- }
473
-
474
- if (node.type === "IfStatement" && node.alternate) {
475
- const elseToken = sourceCode.getTokenBefore(node.alternate);
476
-
477
- checkNodeIndent(elseToken, neededIndent);
478
-
479
- if (!isNodeFirstInLine(node.alternate)) {
480
- checkNodeIndent(node.alternate, neededIndent);
481
- }
482
- }
483
-
484
- if (node.type === "TryStatement" && node.handler) {
485
- const catchToken = sourceCode.getFirstToken(node.handler);
486
-
487
- checkNodeIndent(catchToken, neededIndent);
488
- }
489
-
490
- if (node.type === "TryStatement" && node.finalizer) {
491
- const finallyToken = sourceCode.getTokenBefore(node.finalizer);
492
-
493
- checkNodeIndent(finallyToken, neededIndent);
494
- }
495
-
496
- if (node.type === "DoWhileStatement") {
497
- const whileToken = sourceCode.getTokenAfter(node.body);
498
-
499
- checkNodeIndent(whileToken, neededIndent);
500
- }
501
- }
502
-
503
- /**
504
- * Check indent for nodes list
505
- * @param {ASTNode[]} nodes list of node objects
506
- * @param {number} indent needed indent
507
- * @returns {void}
508
- */
509
- function checkNodesIndent(nodes, indent) {
510
- nodes.forEach(node => checkNodeIndent(node, indent));
511
- }
512
-
513
- /**
514
- * Check last node line indent this detects, that block closed correctly
515
- * @param {ASTNode} node Node to examine
516
- * @param {number} lastLineIndent needed indent
517
- * @returns {void}
518
- */
519
- function checkLastNodeLineIndent(node, lastLineIndent) {
520
- const lastToken = sourceCode.getLastToken(node);
521
- const endIndent = getNodeIndent(lastToken, true);
522
-
523
- if (
524
- (endIndent.goodChar !== lastLineIndent ||
525
- endIndent.badChar !== 0) &&
526
- isNodeFirstInLine(node, true)
527
- ) {
528
- report(
529
- node,
530
- lastLineIndent,
531
- endIndent.space,
532
- endIndent.tab,
533
- {
534
- line: lastToken.loc.start.line,
535
- column: lastToken.loc.start.column,
536
- },
537
- true,
538
- );
539
- }
540
- }
541
-
542
- /**
543
- * Check last node line indent this detects, that block closed correctly
544
- * This function for more complicated return statement case, where closing parenthesis may be followed by ';'
545
- * @param {ASTNode} node Node to examine
546
- * @param {number} firstLineIndent first line needed indent
547
- * @returns {void}
548
- */
549
- function checkLastReturnStatementLineIndent(node, firstLineIndent) {
550
- /*
551
- * in case if return statement ends with ');' we have traverse back to ')'
552
- * otherwise we'll measure indent for ';' and replace ')'
553
- */
554
- const lastToken = sourceCode.getLastToken(
555
- node,
556
- astUtils.isClosingParenToken,
557
- );
558
- const textBeforeClosingParenthesis = sourceCode
559
- .getText(lastToken, lastToken.loc.start.column)
560
- .slice(0, -1);
561
-
562
- if (textBeforeClosingParenthesis.trim()) {
563
- // There are tokens before the closing paren, don't report this case
564
- return;
565
- }
566
-
567
- const endIndent = getNodeIndent(lastToken, true);
568
-
569
- if (endIndent.goodChar !== firstLineIndent) {
570
- report(
571
- node,
572
- firstLineIndent,
573
- endIndent.space,
574
- endIndent.tab,
575
- {
576
- line: lastToken.loc.start.line,
577
- column: lastToken.loc.start.column,
578
- },
579
- true,
580
- );
581
- }
582
- }
583
-
584
- /**
585
- * Check first node line indent is correct
586
- * @param {ASTNode} node Node to examine
587
- * @param {number} firstLineIndent needed indent
588
- * @returns {void}
589
- */
590
- function checkFirstNodeLineIndent(node, firstLineIndent) {
591
- const startIndent = getNodeIndent(node, false);
592
-
593
- if (
594
- (startIndent.goodChar !== firstLineIndent ||
595
- startIndent.badChar !== 0) &&
596
- isNodeFirstInLine(node)
597
- ) {
598
- report(
599
- node,
600
- firstLineIndent,
601
- startIndent.space,
602
- startIndent.tab,
603
- {
604
- line: node.loc.start.line,
605
- column: node.loc.start.column,
606
- },
607
- );
608
- }
609
- }
610
-
611
- /**
612
- * Returns a parent node of given node based on a specified type
613
- * if not present then return null
614
- * @param {ASTNode} node node to examine
615
- * @param {string} type type that is being looked for
616
- * @param {string} stopAtList end points for the evaluating code
617
- * @returns {ASTNode|void} if found then node otherwise null
618
- */
619
- function getParentNodeByType(node, type, stopAtList) {
620
- let parent = node.parent;
621
- const stopAtSet = new Set(stopAtList || ["Program"]);
622
-
623
- while (
624
- parent.type !== type &&
625
- !stopAtSet.has(parent.type) &&
626
- parent.type !== "Program"
627
- ) {
628
- parent = parent.parent;
629
- }
630
-
631
- return parent.type === type ? parent : null;
632
- }
633
-
634
- /**
635
- * Returns the VariableDeclarator based on the current node
636
- * if not present then return null
637
- * @param {ASTNode} node node to examine
638
- * @returns {ASTNode|void} if found then node otherwise null
639
- */
640
- function getVariableDeclaratorNode(node) {
641
- return getParentNodeByType(node, "VariableDeclarator");
642
- }
643
-
644
- /**
645
- * Check to see if the node is part of the multi-line variable declaration.
646
- * Also if its on the same line as the varNode
647
- * @param {ASTNode} node node to check
648
- * @param {ASTNode} varNode variable declaration node to check against
649
- * @returns {boolean} True if all the above condition satisfy
650
- */
651
- function isNodeInVarOnTop(node, varNode) {
652
- return (
653
- varNode &&
654
- varNode.parent.loc.start.line === node.loc.start.line &&
655
- varNode.parent.declarations.length > 1
656
- );
657
- }
658
-
659
- /**
660
- * Check to see if the argument before the callee node is multi-line and
661
- * there should only be 1 argument before the callee node
662
- * @param {ASTNode} node node to check
663
- * @returns {boolean} True if arguments are multi-line
664
- */
665
- function isArgBeforeCalleeNodeMultiline(node) {
666
- const parent = node.parent;
667
-
668
- if (parent.arguments.length >= 2 && parent.arguments[1] === node) {
669
- return (
670
- parent.arguments[0].loc.end.line >
671
- parent.arguments[0].loc.start.line
672
- );
673
- }
674
-
675
- return false;
676
- }
677
-
678
- /**
679
- * Check to see if the node is a file level IIFE
680
- * @param {ASTNode} node The function node to check.
681
- * @returns {boolean} True if the node is the outer IIFE
682
- */
683
- function isOuterIIFE(node) {
684
- const parent = node.parent;
685
- let stmt = parent.parent;
686
-
687
- /*
688
- * Verify that the node is an IIEF
689
- */
690
- if (parent.type !== "CallExpression" || parent.callee !== node) {
691
- return false;
692
- }
693
-
694
- /*
695
- * Navigate legal ancestors to determine whether this IIEF is outer
696
- */
697
- while (
698
- (stmt.type === "UnaryExpression" &&
699
- (stmt.operator === "!" ||
700
- stmt.operator === "~" ||
701
- stmt.operator === "+" ||
702
- stmt.operator === "-")) ||
703
- stmt.type === "AssignmentExpression" ||
704
- stmt.type === "LogicalExpression" ||
705
- stmt.type === "SequenceExpression" ||
706
- stmt.type === "VariableDeclarator"
707
- ) {
708
- stmt = stmt.parent;
709
- }
710
-
711
- return (
712
- (stmt.type === "ExpressionStatement" ||
713
- stmt.type === "VariableDeclaration") &&
714
- stmt.parent &&
715
- stmt.parent.type === "Program"
716
- );
717
- }
718
-
719
- /**
720
- * Check indent for function block content
721
- * @param {ASTNode} node A BlockStatement node that is inside of a function.
722
- * @returns {void}
723
- */
724
- function checkIndentInFunctionBlock(node) {
725
- /*
726
- * Search first caller in chain.
727
- * Ex.:
728
- *
729
- * Models <- Identifier
730
- * .User
731
- * .find()
732
- * .exec(function() {
733
- * // function body
734
- * });
735
- *
736
- * Looks for 'Models'
737
- */
738
- const calleeNode = node.parent; // FunctionExpression
739
- let indent;
740
-
741
- if (
742
- calleeNode.parent &&
743
- (calleeNode.parent.type === "Property" ||
744
- calleeNode.parent.type === "ArrayExpression")
745
- ) {
746
- // If function is part of array or object, comma can be put at left
747
- indent = getNodeIndent(calleeNode, false).goodChar;
748
- } else {
749
- // If function is standalone, simple calculate indent
750
- indent = getNodeIndent(calleeNode).goodChar;
751
- }
752
-
753
- if (calleeNode.parent.type === "CallExpression") {
754
- const calleeParent = calleeNode.parent;
755
-
756
- if (
757
- calleeNode.type !== "FunctionExpression" &&
758
- calleeNode.type !== "ArrowFunctionExpression"
759
- ) {
760
- if (
761
- calleeParent &&
762
- calleeParent.loc.start.line < node.loc.start.line
763
- ) {
764
- indent = getNodeIndent(calleeParent).goodChar;
765
- }
766
- } else {
767
- if (
768
- isArgBeforeCalleeNodeMultiline(calleeNode) &&
769
- calleeParent.callee.loc.start.line ===
770
- calleeParent.callee.loc.end.line &&
771
- !isNodeFirstInLine(calleeNode)
772
- ) {
773
- indent = getNodeIndent(calleeParent).goodChar;
774
- }
775
- }
776
- }
777
-
778
- /*
779
- * function body indent should be indent + indent size, unless this
780
- * is a FunctionDeclaration, FunctionExpression, or outer IIFE and the corresponding options are enabled.
781
- */
782
- let functionOffset = indentSize;
783
-
784
- if (options.outerIIFEBody !== null && isOuterIIFE(calleeNode)) {
785
- functionOffset = options.outerIIFEBody * indentSize;
786
- } else if (calleeNode.type === "FunctionExpression") {
787
- functionOffset = options.FunctionExpression.body * indentSize;
788
- } else if (calleeNode.type === "FunctionDeclaration") {
789
- functionOffset = options.FunctionDeclaration.body * indentSize;
790
- }
791
- indent += functionOffset;
792
-
793
- // check if the node is inside a variable
794
- const parentVarNode = getVariableDeclaratorNode(node);
795
-
796
- if (parentVarNode && isNodeInVarOnTop(node, parentVarNode)) {
797
- indent +=
798
- indentSize *
799
- options.VariableDeclarator[parentVarNode.parent.kind];
800
- }
801
-
802
- if (node.body.length > 0) {
803
- checkNodesIndent(node.body, indent);
804
- }
805
-
806
- checkLastNodeLineIndent(node, indent - functionOffset);
807
- }
808
-
809
- /**
810
- * Checks if the given node starts and ends on the same line
811
- * @param {ASTNode} node The node to check
812
- * @returns {boolean} Whether or not the block starts and ends on the same line.
813
- */
814
- function isSingleLineNode(node) {
815
- const lastToken = sourceCode.getLastToken(node),
816
- startLine = node.loc.start.line,
817
- endLine = lastToken.loc.end.line;
818
-
819
- return startLine === endLine;
820
- }
821
-
822
- /**
823
- * Check indent for array block content or object block content
824
- * @param {ASTNode} node node to examine
825
- * @returns {void}
826
- */
827
- function checkIndentInArrayOrObjectBlock(node) {
828
- // Skip inline
829
- if (isSingleLineNode(node)) {
830
- return;
831
- }
832
-
833
- let elements =
834
- node.type === "ArrayExpression"
835
- ? node.elements
836
- : node.properties;
837
-
838
- // filter out empty elements example would be [ , 2] so remove first element as espree considers it as null
839
- elements = elements.filter(elem => elem !== null);
840
-
841
- let nodeIndent;
842
- let elementsIndent;
843
- const parentVarNode = getVariableDeclaratorNode(node);
844
-
845
- // TODO - come up with a better strategy in future
846
- if (isNodeFirstInLine(node)) {
847
- const parent = node.parent;
848
-
849
- nodeIndent = getNodeIndent(parent).goodChar;
850
- if (
851
- !parentVarNode ||
852
- parentVarNode.loc.start.line !== node.loc.start.line
853
- ) {
854
- if (
855
- parent.type !== "VariableDeclarator" ||
856
- parentVarNode === parentVarNode.parent.declarations[0]
857
- ) {
858
- if (
859
- parent.type === "VariableDeclarator" &&
860
- parentVarNode.loc.start.line ===
861
- parent.loc.start.line
862
- ) {
863
- nodeIndent +=
864
- indentSize *
865
- options.VariableDeclarator[
866
- parentVarNode.parent.kind
867
- ];
868
- } else if (
869
- parent.type === "ObjectExpression" ||
870
- parent.type === "ArrayExpression"
871
- ) {
872
- const parentElements =
873
- node.parent.type === "ObjectExpression"
874
- ? node.parent.properties
875
- : node.parent.elements;
876
-
877
- if (
878
- parentElements[0] &&
879
- parentElements[0].loc.start.line ===
880
- parent.loc.start.line &&
881
- parentElements[0].loc.end.line !==
882
- parent.loc.start.line
883
- ) {
884
- /*
885
- * If the first element of the array spans multiple lines, don't increase the expected indentation of the rest.
886
- * e.g. [{
887
- * foo: 1
888
- * },
889
- * {
890
- * bar: 1
891
- * }]
892
- * the second object is not indented.
893
- */
894
- } else if (
895
- typeof options[parent.type] === "number"
896
- ) {
897
- nodeIndent += options[parent.type] * indentSize;
898
- } else {
899
- nodeIndent = parentElements[0].loc.start.column;
900
- }
901
- } else if (
902
- parent.type === "CallExpression" ||
903
- parent.type === "NewExpression"
904
- ) {
905
- if (
906
- typeof options.CallExpression.arguments ===
907
- "number"
908
- ) {
909
- nodeIndent +=
910
- options.CallExpression.arguments *
911
- indentSize;
912
- } else if (
913
- options.CallExpression.arguments === "first"
914
- ) {
915
- if (parent.arguments.includes(node)) {
916
- nodeIndent =
917
- parent.arguments[0].loc.start.column;
918
- }
919
- } else {
920
- nodeIndent += indentSize;
921
- }
922
- } else if (
923
- parent.type === "LogicalExpression" ||
924
- parent.type === "ArrowFunctionExpression"
925
- ) {
926
- nodeIndent += indentSize;
927
- }
928
- }
929
- }
930
-
931
- checkFirstNodeLineIndent(node, nodeIndent);
932
- } else {
933
- nodeIndent = getNodeIndent(node).goodChar;
934
- }
935
-
936
- if (options[node.type] === "first") {
937
- elementsIndent = elements.length
938
- ? elements[0].loc.start.column
939
- : 0; // If there are no elements, elementsIndent doesn't matter.
940
- } else {
941
- elementsIndent = nodeIndent + indentSize * options[node.type];
942
- }
943
-
944
- /*
945
- * Check if the node is a multiple variable declaration; if so, then
946
- * make sure indentation takes that into account.
947
- */
948
- if (isNodeInVarOnTop(node, parentVarNode)) {
949
- elementsIndent +=
950
- indentSize *
951
- options.VariableDeclarator[parentVarNode.parent.kind];
952
- }
953
-
954
- checkNodesIndent(elements, elementsIndent);
955
-
956
- if (elements.length > 0) {
957
- // Skip last block line check if last item in same line
958
- if (elements.at(-1).loc.end.line === node.loc.end.line) {
959
- return;
960
- }
961
- }
962
-
963
- checkLastNodeLineIndent(
964
- node,
965
- nodeIndent +
966
- (isNodeInVarOnTop(node, parentVarNode)
967
- ? options.VariableDeclarator[
968
- parentVarNode.parent.kind
969
- ] * indentSize
970
- : 0),
971
- );
972
- }
973
-
974
- /**
975
- * Check if the node or node body is a BlockStatement or not
976
- * @param {ASTNode} node node to test
977
- * @returns {boolean} True if it or its body is a block statement
978
- */
979
- function isNodeBodyBlock(node) {
980
- return (
981
- node.type === "BlockStatement" ||
982
- node.type === "ClassBody" ||
983
- (node.body && node.body.type === "BlockStatement") ||
984
- (node.consequent && node.consequent.type === "BlockStatement")
985
- );
986
- }
987
-
988
- /**
989
- * Check indentation for blocks
990
- * @param {ASTNode} node node to check
991
- * @returns {void}
992
- */
993
- function blockIndentationCheck(node) {
994
- // Skip inline blocks
995
- if (isSingleLineNode(node)) {
996
- return;
997
- }
998
-
999
- if (
1000
- node.parent &&
1001
- (node.parent.type === "FunctionExpression" ||
1002
- node.parent.type === "FunctionDeclaration" ||
1003
- node.parent.type === "ArrowFunctionExpression")
1004
- ) {
1005
- checkIndentInFunctionBlock(node);
1006
- return;
1007
- }
1008
-
1009
- let indent;
1010
- let nodesToCheck;
1011
-
1012
- /*
1013
- * For this statements we should check indent from statement beginning,
1014
- * not from the beginning of the block.
1015
- */
1016
- const statementsWithProperties = [
1017
- "IfStatement",
1018
- "WhileStatement",
1019
- "ForStatement",
1020
- "ForInStatement",
1021
- "ForOfStatement",
1022
- "DoWhileStatement",
1023
- "ClassDeclaration",
1024
- "TryStatement",
1025
- ];
1026
-
1027
- if (
1028
- node.parent &&
1029
- statementsWithProperties.includes(node.parent.type) &&
1030
- isNodeBodyBlock(node)
1031
- ) {
1032
- indent = getNodeIndent(node.parent).goodChar;
1033
- } else if (node.parent && node.parent.type === "CatchClause") {
1034
- indent = getNodeIndent(node.parent.parent).goodChar;
1035
- } else {
1036
- indent = getNodeIndent(node).goodChar;
1037
- }
1038
-
1039
- if (
1040
- node.type === "IfStatement" &&
1041
- node.consequent.type !== "BlockStatement"
1042
- ) {
1043
- nodesToCheck = [node.consequent];
1044
- } else if (Array.isArray(node.body)) {
1045
- nodesToCheck = node.body;
1046
- } else {
1047
- nodesToCheck = [node.body];
1048
- }
1049
-
1050
- if (nodesToCheck.length > 0) {
1051
- checkNodesIndent(nodesToCheck, indent + indentSize);
1052
- }
1053
-
1054
- if (node.type === "BlockStatement") {
1055
- checkLastNodeLineIndent(node, indent);
1056
- }
1057
- }
1058
-
1059
- /**
1060
- * Filter out the elements which are on the same line of each other or the node.
1061
- * basically have only 1 elements from each line except the variable declaration line.
1062
- * @param {ASTNode} node Variable declaration node
1063
- * @returns {ASTNode[]} Filtered elements
1064
- */
1065
- function filterOutSameLineVars(node) {
1066
- return node.declarations.reduce((finalCollection, elem) => {
1067
- const lastElem = finalCollection.at(-1);
1068
-
1069
- if (
1070
- (elem.loc.start.line !== node.loc.start.line &&
1071
- !lastElem) ||
1072
- (lastElem &&
1073
- lastElem.loc.start.line !== elem.loc.start.line)
1074
- ) {
1075
- finalCollection.push(elem);
1076
- }
1077
-
1078
- return finalCollection;
1079
- }, []);
1080
- }
1081
-
1082
- /**
1083
- * Check indentation for variable declarations
1084
- * @param {ASTNode} node node to examine
1085
- * @returns {void}
1086
- */
1087
- function checkIndentInVariableDeclarations(node) {
1088
- const elements = filterOutSameLineVars(node);
1089
- const nodeIndent = getNodeIndent(node).goodChar;
1090
- const lastElement = elements.at(-1);
1091
-
1092
- const elementsIndent =
1093
- nodeIndent + indentSize * options.VariableDeclarator[node.kind];
1094
-
1095
- checkNodesIndent(elements, elementsIndent);
1096
-
1097
- // Only check the last line if there is any token after the last item
1098
- if (
1099
- sourceCode.getLastToken(node).loc.end.line <=
1100
- lastElement.loc.end.line
1101
- ) {
1102
- return;
1103
- }
1104
-
1105
- const tokenBeforeLastElement =
1106
- sourceCode.getTokenBefore(lastElement);
1107
-
1108
- if (tokenBeforeLastElement.value === ",") {
1109
- // Special case for comma-first syntax where the semicolon is indented
1110
- checkLastNodeLineIndent(
1111
- node,
1112
- getNodeIndent(tokenBeforeLastElement).goodChar,
1113
- );
1114
- } else {
1115
- checkLastNodeLineIndent(node, elementsIndent - indentSize);
1116
- }
1117
- }
1118
-
1119
- /**
1120
- * Check and decide whether to check for indentation for blockless nodes
1121
- * Scenarios are for or while statements without braces around them
1122
- * @param {ASTNode} node node to examine
1123
- * @returns {void}
1124
- */
1125
- function blockLessNodes(node) {
1126
- if (node.body.type !== "BlockStatement") {
1127
- blockIndentationCheck(node);
1128
- }
1129
- }
1130
-
1131
- /**
1132
- * Returns the expected indentation for the case statement
1133
- * @param {ASTNode} node node to examine
1134
- * @param {number} [providedSwitchIndent] indent for switch statement
1135
- * @returns {number} indent size
1136
- */
1137
- function expectedCaseIndent(node, providedSwitchIndent) {
1138
- const switchNode =
1139
- node.type === "SwitchStatement" ? node : node.parent;
1140
- const switchIndent =
1141
- typeof providedSwitchIndent === "undefined"
1142
- ? getNodeIndent(switchNode).goodChar
1143
- : providedSwitchIndent;
1144
- let caseIndent;
1145
-
1146
- if (caseIndentStore[switchNode.loc.start.line]) {
1147
- return caseIndentStore[switchNode.loc.start.line];
1148
- }
1149
-
1150
- if (switchNode.cases.length > 0 && options.SwitchCase === 0) {
1151
- caseIndent = switchIndent;
1152
- } else {
1153
- caseIndent = switchIndent + indentSize * options.SwitchCase;
1154
- }
1155
-
1156
- caseIndentStore[switchNode.loc.start.line] = caseIndent;
1157
- return caseIndent;
1158
- }
1159
-
1160
- /**
1161
- * Checks whether a return statement is wrapped in ()
1162
- * @param {ASTNode} node node to examine
1163
- * @returns {boolean} the result
1164
- */
1165
- function isWrappedInParenthesis(node) {
1166
- const regex = /^return\s*\(\s*\)/u;
1167
-
1168
- const statementWithoutArgument = sourceCode
1169
- .getText(node)
1170
- .replace(sourceCode.getText(node.argument), "");
1171
-
1172
- return regex.test(statementWithoutArgument);
1173
- }
1174
-
1175
- return {
1176
- Program(node) {
1177
- if (node.body.length > 0) {
1178
- // Root nodes should have no indent
1179
- checkNodesIndent(node.body, getNodeIndent(node).goodChar);
1180
- }
1181
- },
1182
-
1183
- ClassBody: blockIndentationCheck,
1184
-
1185
- BlockStatement: blockIndentationCheck,
1186
-
1187
- WhileStatement: blockLessNodes,
1188
-
1189
- ForStatement: blockLessNodes,
1190
-
1191
- ForInStatement: blockLessNodes,
1192
-
1193
- ForOfStatement: blockLessNodes,
1194
-
1195
- DoWhileStatement: blockLessNodes,
1196
-
1197
- IfStatement(node) {
1198
- if (
1199
- node.consequent.type !== "BlockStatement" &&
1200
- node.consequent.loc.start.line > node.loc.start.line
1201
- ) {
1202
- blockIndentationCheck(node);
1203
- }
1204
- },
1205
-
1206
- VariableDeclaration(node) {
1207
- if (
1208
- node.declarations.at(-1).loc.start.line >
1209
- node.declarations[0].loc.start.line
1210
- ) {
1211
- checkIndentInVariableDeclarations(node);
1212
- }
1213
- },
1214
-
1215
- ObjectExpression(node) {
1216
- checkIndentInArrayOrObjectBlock(node);
1217
- },
1218
-
1219
- ArrayExpression(node) {
1220
- checkIndentInArrayOrObjectBlock(node);
1221
- },
1222
-
1223
- MemberExpression(node) {
1224
- if (typeof options.MemberExpression === "undefined") {
1225
- return;
1226
- }
1227
-
1228
- if (isSingleLineNode(node)) {
1229
- return;
1230
- }
1231
-
1232
- /*
1233
- * The typical layout of variable declarations and assignments
1234
- * alter the expectation of correct indentation. Skip them.
1235
- * TODO: Add appropriate configuration options for variable
1236
- * declarations and assignments.
1237
- */
1238
- if (
1239
- getParentNodeByType(node, "VariableDeclarator", [
1240
- "FunctionExpression",
1241
- "ArrowFunctionExpression",
1242
- ])
1243
- ) {
1244
- return;
1245
- }
1246
-
1247
- if (
1248
- getParentNodeByType(node, "AssignmentExpression", [
1249
- "FunctionExpression",
1250
- ])
1251
- ) {
1252
- return;
1253
- }
1254
-
1255
- const propertyIndent =
1256
- getNodeIndent(node).goodChar +
1257
- indentSize * options.MemberExpression;
1258
-
1259
- const checkNodes = [node.property];
1260
-
1261
- const dot = sourceCode.getTokenBefore(node.property);
1262
-
1263
- if (dot.type === "Punctuator" && dot.value === ".") {
1264
- checkNodes.push(dot);
1265
- }
1266
-
1267
- checkNodesIndent(checkNodes, propertyIndent);
1268
- },
1269
-
1270
- SwitchStatement(node) {
1271
- // Switch is not a 'BlockStatement'
1272
- const switchIndent = getNodeIndent(node).goodChar;
1273
- const caseIndent = expectedCaseIndent(node, switchIndent);
1274
-
1275
- checkNodesIndent(node.cases, caseIndent);
1276
-
1277
- checkLastNodeLineIndent(node, switchIndent);
1278
- },
1279
-
1280
- SwitchCase(node) {
1281
- // Skip inline cases
1282
- if (isSingleLineNode(node)) {
1283
- return;
1284
- }
1285
- const caseIndent = expectedCaseIndent(node);
1286
-
1287
- checkNodesIndent(node.consequent, caseIndent + indentSize);
1288
- },
1289
-
1290
- FunctionDeclaration(node) {
1291
- if (isSingleLineNode(node)) {
1292
- return;
1293
- }
1294
- if (
1295
- options.FunctionDeclaration.parameters === "first" &&
1296
- node.params.length
1297
- ) {
1298
- checkNodesIndent(
1299
- node.params.slice(1),
1300
- node.params[0].loc.start.column,
1301
- );
1302
- } else if (options.FunctionDeclaration.parameters !== null) {
1303
- checkNodesIndent(
1304
- node.params,
1305
- getNodeIndent(node).goodChar +
1306
- indentSize * options.FunctionDeclaration.parameters,
1307
- );
1308
- }
1309
- },
1310
-
1311
- FunctionExpression(node) {
1312
- if (isSingleLineNode(node)) {
1313
- return;
1314
- }
1315
- if (
1316
- options.FunctionExpression.parameters === "first" &&
1317
- node.params.length
1318
- ) {
1319
- checkNodesIndent(
1320
- node.params.slice(1),
1321
- node.params[0].loc.start.column,
1322
- );
1323
- } else if (options.FunctionExpression.parameters !== null) {
1324
- checkNodesIndent(
1325
- node.params,
1326
- getNodeIndent(node).goodChar +
1327
- indentSize * options.FunctionExpression.parameters,
1328
- );
1329
- }
1330
- },
1331
-
1332
- ReturnStatement(node) {
1333
- if (isSingleLineNode(node)) {
1334
- return;
1335
- }
1336
-
1337
- const firstLineIndent = getNodeIndent(node).goodChar;
1338
-
1339
- // in case if return statement is wrapped in parenthesis
1340
- if (isWrappedInParenthesis(node)) {
1341
- checkLastReturnStatementLineIndent(node, firstLineIndent);
1342
- } else {
1343
- checkNodeIndent(node, firstLineIndent);
1344
- }
1345
- },
1346
-
1347
- CallExpression(node) {
1348
- if (isSingleLineNode(node)) {
1349
- return;
1350
- }
1351
- if (
1352
- options.CallExpression.arguments === "first" &&
1353
- node.arguments.length
1354
- ) {
1355
- checkNodesIndent(
1356
- node.arguments.slice(1),
1357
- node.arguments[0].loc.start.column,
1358
- );
1359
- } else if (options.CallExpression.arguments !== null) {
1360
- checkNodesIndent(
1361
- node.arguments,
1362
- getNodeIndent(node).goodChar +
1363
- indentSize * options.CallExpression.arguments,
1364
- );
1365
- }
1366
- },
1367
- };
1368
- },
1369
- };