@alexlit/lint-kit 126.6.0 → 126.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (597) hide show
  1. package/package.json +1 -1
  2. package/packages/config-eslint/node_modules/ajv/.tonic_example.js +20 -0
  3. package/packages/config-eslint/node_modules/ajv/LICENSE +22 -0
  4. package/packages/config-eslint/node_modules/ajv/README.md +1497 -0
  5. package/packages/config-eslint/node_modules/ajv/dist/ajv.bundle.js +7189 -0
  6. package/packages/config-eslint/node_modules/ajv/dist/ajv.min.js +3 -0
  7. package/packages/config-eslint/node_modules/ajv/dist/ajv.min.js.map +1 -0
  8. package/packages/config-eslint/node_modules/ajv/lib/ajv.d.ts +397 -0
  9. package/packages/config-eslint/node_modules/ajv/lib/ajv.js +506 -0
  10. package/packages/config-eslint/node_modules/ajv/lib/cache.js +26 -0
  11. package/packages/config-eslint/node_modules/ajv/lib/compile/async.js +90 -0
  12. package/packages/config-eslint/node_modules/ajv/lib/compile/equal.js +5 -0
  13. package/packages/config-eslint/node_modules/ajv/lib/compile/error_classes.js +34 -0
  14. package/packages/config-eslint/node_modules/ajv/lib/compile/formats.js +142 -0
  15. package/packages/config-eslint/node_modules/ajv/lib/compile/index.js +387 -0
  16. package/packages/config-eslint/node_modules/ajv/lib/compile/resolve.js +270 -0
  17. package/packages/config-eslint/node_modules/ajv/lib/compile/rules.js +66 -0
  18. package/packages/config-eslint/node_modules/ajv/lib/compile/schema_obj.js +9 -0
  19. package/packages/config-eslint/node_modules/ajv/lib/compile/ucs2length.js +20 -0
  20. package/packages/config-eslint/node_modules/ajv/lib/compile/util.js +239 -0
  21. package/packages/config-eslint/node_modules/ajv/lib/data.js +49 -0
  22. package/packages/config-eslint/node_modules/ajv/lib/definition_schema.js +37 -0
  23. package/packages/config-eslint/node_modules/ajv/lib/dot/_limit.jst +113 -0
  24. package/packages/config-eslint/node_modules/ajv/lib/dot/_limitItems.jst +12 -0
  25. package/packages/config-eslint/node_modules/ajv/lib/dot/_limitLength.jst +12 -0
  26. package/packages/config-eslint/node_modules/ajv/lib/dot/_limitProperties.jst +12 -0
  27. package/packages/config-eslint/node_modules/ajv/lib/dot/allOf.jst +32 -0
  28. package/packages/config-eslint/node_modules/ajv/lib/dot/anyOf.jst +46 -0
  29. package/packages/config-eslint/node_modules/ajv/lib/dot/coerce.def +51 -0
  30. package/packages/config-eslint/node_modules/ajv/lib/dot/comment.jst +9 -0
  31. package/packages/config-eslint/node_modules/ajv/lib/dot/const.jst +11 -0
  32. package/packages/config-eslint/node_modules/ajv/lib/dot/contains.jst +55 -0
  33. package/packages/config-eslint/node_modules/ajv/lib/dot/custom.jst +191 -0
  34. package/packages/config-eslint/node_modules/ajv/lib/dot/defaults.def +47 -0
  35. package/packages/config-eslint/node_modules/ajv/lib/dot/definitions.def +203 -0
  36. package/packages/config-eslint/node_modules/ajv/lib/dot/dependencies.jst +79 -0
  37. package/packages/config-eslint/node_modules/ajv/lib/dot/enum.jst +30 -0
  38. package/packages/config-eslint/node_modules/ajv/lib/dot/errors.def +194 -0
  39. package/packages/config-eslint/node_modules/ajv/lib/dot/format.jst +106 -0
  40. package/packages/config-eslint/node_modules/ajv/lib/dot/if.jst +73 -0
  41. package/packages/config-eslint/node_modules/ajv/lib/dot/items.jst +98 -0
  42. package/packages/config-eslint/node_modules/ajv/lib/dot/missing.def +39 -0
  43. package/packages/config-eslint/node_modules/ajv/lib/dot/multipleOf.jst +22 -0
  44. package/packages/config-eslint/node_modules/ajv/lib/dot/not.jst +43 -0
  45. package/packages/config-eslint/node_modules/ajv/lib/dot/oneOf.jst +54 -0
  46. package/packages/config-eslint/node_modules/ajv/lib/dot/pattern.jst +14 -0
  47. package/packages/config-eslint/node_modules/ajv/lib/dot/properties.jst +245 -0
  48. package/packages/config-eslint/node_modules/ajv/lib/dot/propertyNames.jst +52 -0
  49. package/packages/config-eslint/node_modules/ajv/lib/dot/ref.jst +85 -0
  50. package/packages/config-eslint/node_modules/ajv/lib/dot/required.jst +108 -0
  51. package/packages/config-eslint/node_modules/ajv/lib/dot/uniqueItems.jst +62 -0
  52. package/packages/config-eslint/node_modules/ajv/lib/dot/validate.jst +276 -0
  53. package/packages/config-eslint/node_modules/ajv/lib/dotjs/README.md +3 -0
  54. package/packages/config-eslint/node_modules/ajv/lib/dotjs/_limit.js +163 -0
  55. package/packages/config-eslint/node_modules/ajv/lib/dotjs/_limitItems.js +80 -0
  56. package/packages/config-eslint/node_modules/ajv/lib/dotjs/_limitLength.js +85 -0
  57. package/packages/config-eslint/node_modules/ajv/lib/dotjs/_limitProperties.js +80 -0
  58. package/packages/config-eslint/node_modules/ajv/lib/dotjs/allOf.js +42 -0
  59. package/packages/config-eslint/node_modules/ajv/lib/dotjs/anyOf.js +73 -0
  60. package/packages/config-eslint/node_modules/ajv/lib/dotjs/comment.js +14 -0
  61. package/packages/config-eslint/node_modules/ajv/lib/dotjs/const.js +56 -0
  62. package/packages/config-eslint/node_modules/ajv/lib/dotjs/contains.js +81 -0
  63. package/packages/config-eslint/node_modules/ajv/lib/dotjs/custom.js +228 -0
  64. package/packages/config-eslint/node_modules/ajv/lib/dotjs/dependencies.js +168 -0
  65. package/packages/config-eslint/node_modules/ajv/lib/dotjs/enum.js +66 -0
  66. package/packages/config-eslint/node_modules/ajv/lib/dotjs/format.js +150 -0
  67. package/packages/config-eslint/node_modules/ajv/lib/dotjs/if.js +103 -0
  68. package/packages/config-eslint/node_modules/ajv/lib/dotjs/index.js +33 -0
  69. package/packages/config-eslint/node_modules/ajv/lib/dotjs/items.js +140 -0
  70. package/packages/config-eslint/node_modules/ajv/lib/dotjs/multipleOf.js +80 -0
  71. package/packages/config-eslint/node_modules/ajv/lib/dotjs/not.js +84 -0
  72. package/packages/config-eslint/node_modules/ajv/lib/dotjs/oneOf.js +73 -0
  73. package/packages/config-eslint/node_modules/ajv/lib/dotjs/pattern.js +75 -0
  74. package/packages/config-eslint/node_modules/ajv/lib/dotjs/properties.js +335 -0
  75. package/packages/config-eslint/node_modules/ajv/lib/dotjs/propertyNames.js +81 -0
  76. package/packages/config-eslint/node_modules/ajv/lib/dotjs/ref.js +124 -0
  77. package/packages/config-eslint/node_modules/ajv/lib/dotjs/required.js +270 -0
  78. package/packages/config-eslint/node_modules/ajv/lib/dotjs/uniqueItems.js +86 -0
  79. package/packages/config-eslint/node_modules/ajv/lib/dotjs/validate.js +482 -0
  80. package/packages/config-eslint/node_modules/ajv/lib/keyword.js +146 -0
  81. package/packages/config-eslint/node_modules/ajv/lib/refs/data.json +17 -0
  82. package/packages/config-eslint/node_modules/ajv/lib/refs/json-schema-draft-04.json +149 -0
  83. package/packages/config-eslint/node_modules/ajv/lib/refs/json-schema-draft-06.json +154 -0
  84. package/packages/config-eslint/node_modules/ajv/lib/refs/json-schema-draft-07.json +168 -0
  85. package/packages/config-eslint/node_modules/ajv/lib/refs/json-schema-secure.json +94 -0
  86. package/packages/config-eslint/node_modules/ajv/package.json +106 -0
  87. package/packages/config-eslint/node_modules/ajv/scripts/.eslintrc.yml +3 -0
  88. package/packages/config-eslint/node_modules/ajv/scripts/bundle.js +61 -0
  89. package/packages/config-eslint/node_modules/ajv/scripts/compile-dots.js +73 -0
  90. package/packages/config-eslint/node_modules/ajv/scripts/info +10 -0
  91. package/packages/config-eslint/node_modules/ajv/scripts/prepare-tests +12 -0
  92. package/packages/config-eslint/node_modules/ajv/scripts/publish-built-version +32 -0
  93. package/packages/config-eslint/node_modules/ajv/scripts/travis-gh-pages +23 -0
  94. package/packages/config-eslint/node_modules/ansi-styles/index.d.ts +345 -0
  95. package/packages/config-eslint/node_modules/ansi-styles/index.js +163 -0
  96. package/packages/config-eslint/node_modules/ansi-styles/license +9 -0
  97. package/packages/config-eslint/node_modules/ansi-styles/package.json +56 -0
  98. package/packages/config-eslint/node_modules/ansi-styles/readme.md +152 -0
  99. package/packages/config-eslint/node_modules/chalk/index.d.ts +415 -0
  100. package/packages/config-eslint/node_modules/chalk/license +9 -0
  101. package/packages/config-eslint/node_modules/chalk/package.json +68 -0
  102. package/packages/config-eslint/node_modules/chalk/readme.md +341 -0
  103. package/packages/config-eslint/node_modules/chalk/source/index.js +229 -0
  104. package/packages/config-eslint/node_modules/chalk/source/templates.js +134 -0
  105. package/packages/config-eslint/node_modules/chalk/source/util.js +39 -0
  106. package/packages/config-eslint/node_modules/color-convert/CHANGELOG.md +54 -0
  107. package/packages/config-eslint/node_modules/color-convert/LICENSE +21 -0
  108. package/packages/config-eslint/node_modules/color-convert/README.md +68 -0
  109. package/packages/config-eslint/node_modules/color-convert/conversions.js +839 -0
  110. package/packages/config-eslint/node_modules/color-convert/index.js +81 -0
  111. package/packages/config-eslint/node_modules/color-convert/package.json +48 -0
  112. package/packages/config-eslint/node_modules/color-convert/route.js +97 -0
  113. package/packages/config-eslint/node_modules/color-name/LICENSE +8 -0
  114. package/packages/config-eslint/node_modules/color-name/README.md +11 -0
  115. package/packages/config-eslint/node_modules/color-name/index.js +152 -0
  116. package/packages/config-eslint/node_modules/color-name/package.json +28 -0
  117. package/packages/config-eslint/node_modules/eslint/LICENSE +19 -0
  118. package/packages/config-eslint/node_modules/eslint/README.md +306 -0
  119. package/packages/config-eslint/node_modules/eslint/bin/eslint.js +174 -0
  120. package/packages/config-eslint/node_modules/eslint/conf/default-cli-options.js +32 -0
  121. package/packages/config-eslint/node_modules/eslint/conf/ecma-version.js +16 -0
  122. package/packages/config-eslint/node_modules/eslint/conf/globals.js +160 -0
  123. package/packages/config-eslint/node_modules/eslint/conf/replacements.json +22 -0
  124. package/packages/config-eslint/node_modules/eslint/conf/rule-type-list.json +30 -0
  125. package/packages/config-eslint/node_modules/eslint/lib/api.js +50 -0
  126. package/packages/config-eslint/node_modules/eslint/lib/cli-engine/cli-engine.js +1089 -0
  127. package/packages/config-eslint/node_modules/eslint/lib/cli-engine/file-enumerator.js +547 -0
  128. package/packages/config-eslint/node_modules/eslint/lib/cli-engine/formatters/formatters-meta.json +18 -0
  129. package/packages/config-eslint/node_modules/eslint/lib/cli-engine/formatters/html.js +351 -0
  130. package/packages/config-eslint/node_modules/eslint/lib/cli-engine/formatters/json-with-metadata.js +16 -0
  131. package/packages/config-eslint/node_modules/eslint/lib/cli-engine/formatters/json.js +13 -0
  132. package/packages/config-eslint/node_modules/eslint/lib/cli-engine/formatters/stylish.js +101 -0
  133. package/packages/config-eslint/node_modules/eslint/lib/cli-engine/hash.js +35 -0
  134. package/packages/config-eslint/node_modules/eslint/lib/cli-engine/index.js +7 -0
  135. package/packages/config-eslint/node_modules/eslint/lib/cli-engine/lint-result-cache.js +203 -0
  136. package/packages/config-eslint/node_modules/eslint/lib/cli-engine/load-rules.js +46 -0
  137. package/packages/config-eslint/node_modules/eslint/lib/cli.js +552 -0
  138. package/packages/config-eslint/node_modules/eslint/lib/config/default-config.js +75 -0
  139. package/packages/config-eslint/node_modules/eslint/lib/config/flat-config-array.js +423 -0
  140. package/packages/config-eslint/node_modules/eslint/lib/config/flat-config-helpers.js +132 -0
  141. package/packages/config-eslint/node_modules/eslint/lib/config/flat-config-schema.js +576 -0
  142. package/packages/config-eslint/node_modules/eslint/lib/config/rule-validator.js +194 -0
  143. package/packages/config-eslint/node_modules/eslint/lib/eslint/eslint-helpers.js +975 -0
  144. package/packages/config-eslint/node_modules/eslint/lib/eslint/eslint.js +1307 -0
  145. package/packages/config-eslint/node_modules/eslint/lib/eslint/index.js +9 -0
  146. package/packages/config-eslint/node_modules/eslint/lib/eslint/legacy-eslint.js +742 -0
  147. package/packages/config-eslint/node_modules/eslint/lib/languages/js/index.js +252 -0
  148. package/packages/config-eslint/node_modules/eslint/lib/languages/js/source-code/index.js +7 -0
  149. package/packages/config-eslint/node_modules/eslint/lib/languages/js/source-code/source-code.js +1318 -0
  150. package/packages/config-eslint/node_modules/eslint/lib/languages/js/source-code/token-store/backward-token-comment-cursor.js +57 -0
  151. package/packages/config-eslint/node_modules/eslint/lib/languages/js/source-code/token-store/backward-token-cursor.js +58 -0
  152. package/packages/config-eslint/node_modules/eslint/lib/languages/js/source-code/token-store/cursor.js +76 -0
  153. package/packages/config-eslint/node_modules/eslint/lib/languages/js/source-code/token-store/cursors.js +92 -0
  154. package/packages/config-eslint/node_modules/eslint/lib/languages/js/source-code/token-store/decorative-cursor.js +39 -0
  155. package/packages/config-eslint/node_modules/eslint/lib/languages/js/source-code/token-store/filter-cursor.js +43 -0
  156. package/packages/config-eslint/node_modules/eslint/lib/languages/js/source-code/token-store/forward-token-comment-cursor.js +57 -0
  157. package/packages/config-eslint/node_modules/eslint/lib/languages/js/source-code/token-store/forward-token-cursor.js +63 -0
  158. package/packages/config-eslint/node_modules/eslint/lib/languages/js/source-code/token-store/index.js +627 -0
  159. package/packages/config-eslint/node_modules/eslint/lib/languages/js/source-code/token-store/limit-cursor.js +40 -0
  160. package/packages/config-eslint/node_modules/eslint/lib/languages/js/source-code/token-store/padded-token-cursor.js +38 -0
  161. package/packages/config-eslint/node_modules/eslint/lib/languages/js/source-code/token-store/skip-cursor.js +42 -0
  162. package/packages/config-eslint/node_modules/eslint/lib/languages/js/source-code/token-store/utils.js +107 -0
  163. package/packages/config-eslint/node_modules/eslint/lib/languages/js/validate-language-options.js +181 -0
  164. package/packages/config-eslint/node_modules/eslint/lib/linter/apply-disable-directives.js +513 -0
  165. package/packages/config-eslint/node_modules/eslint/lib/linter/code-path-analysis/code-path-analyzer.js +851 -0
  166. package/packages/config-eslint/node_modules/eslint/lib/linter/code-path-analysis/code-path-segment.js +263 -0
  167. package/packages/config-eslint/node_modules/eslint/lib/linter/code-path-analysis/code-path-state.js +2348 -0
  168. package/packages/config-eslint/node_modules/eslint/lib/linter/code-path-analysis/code-path.js +344 -0
  169. package/packages/config-eslint/node_modules/eslint/lib/linter/code-path-analysis/debug-helpers.js +203 -0
  170. package/packages/config-eslint/node_modules/eslint/lib/linter/code-path-analysis/fork-context.js +349 -0
  171. package/packages/config-eslint/node_modules/eslint/lib/linter/code-path-analysis/id-generator.js +45 -0
  172. package/packages/config-eslint/node_modules/eslint/lib/linter/config-comment-parser.js +169 -0
  173. package/packages/config-eslint/node_modules/eslint/lib/linter/index.js +11 -0
  174. package/packages/config-eslint/node_modules/eslint/lib/linter/interpolate.js +50 -0
  175. package/packages/config-eslint/node_modules/eslint/lib/linter/linter.js +2410 -0
  176. package/packages/config-eslint/node_modules/eslint/lib/linter/node-event-generator.js +352 -0
  177. package/packages/config-eslint/node_modules/eslint/lib/linter/report-translator.js +376 -0
  178. package/packages/config-eslint/node_modules/eslint/lib/linter/rule-fixer.js +163 -0
  179. package/packages/config-eslint/node_modules/eslint/lib/linter/rules.js +71 -0
  180. package/packages/config-eslint/node_modules/eslint/lib/linter/safe-emitter.js +52 -0
  181. package/packages/config-eslint/node_modules/eslint/lib/linter/source-code-fixer.js +152 -0
  182. package/packages/config-eslint/node_modules/eslint/lib/linter/timing.js +169 -0
  183. package/packages/config-eslint/node_modules/eslint/lib/linter/vfile.js +111 -0
  184. package/packages/config-eslint/node_modules/eslint/lib/options.js +442 -0
  185. package/packages/config-eslint/node_modules/eslint/lib/rule-tester/index.js +7 -0
  186. package/packages/config-eslint/node_modules/eslint/lib/rule-tester/rule-tester.js +1286 -0
  187. package/packages/config-eslint/node_modules/eslint/lib/rules/accessor-pairs.js +346 -0
  188. package/packages/config-eslint/node_modules/eslint/lib/rules/array-bracket-newline.js +261 -0
  189. package/packages/config-eslint/node_modules/eslint/lib/rules/array-bracket-spacing.js +244 -0
  190. package/packages/config-eslint/node_modules/eslint/lib/rules/array-callback-return.js +446 -0
  191. package/packages/config-eslint/node_modules/eslint/lib/rules/array-element-newline.js +311 -0
  192. package/packages/config-eslint/node_modules/eslint/lib/rules/arrow-body-style.js +296 -0
  193. package/packages/config-eslint/node_modules/eslint/lib/rules/arrow-parens.js +186 -0
  194. package/packages/config-eslint/node_modules/eslint/lib/rules/arrow-spacing.js +164 -0
  195. package/packages/config-eslint/node_modules/eslint/lib/rules/block-scoped-var.js +135 -0
  196. package/packages/config-eslint/node_modules/eslint/lib/rules/block-spacing.js +174 -0
  197. package/packages/config-eslint/node_modules/eslint/lib/rules/brace-style.js +197 -0
  198. package/packages/config-eslint/node_modules/eslint/lib/rules/callback-return.js +187 -0
  199. package/packages/config-eslint/node_modules/eslint/lib/rules/camelcase.js +397 -0
  200. package/packages/config-eslint/node_modules/eslint/lib/rules/capitalized-comments.js +303 -0
  201. package/packages/config-eslint/node_modules/eslint/lib/rules/class-methods-use-this.js +187 -0
  202. package/packages/config-eslint/node_modules/eslint/lib/rules/comma-dangle.js +373 -0
  203. package/packages/config-eslint/node_modules/eslint/lib/rules/comma-spacing.js +192 -0
  204. package/packages/config-eslint/node_modules/eslint/lib/rules/comma-style.js +314 -0
  205. package/packages/config-eslint/node_modules/eslint/lib/rules/complexity.js +178 -0
  206. package/packages/config-eslint/node_modules/eslint/lib/rules/computed-property-spacing.js +208 -0
  207. package/packages/config-eslint/node_modules/eslint/lib/rules/consistent-return.js +210 -0
  208. package/packages/config-eslint/node_modules/eslint/lib/rules/consistent-this.js +153 -0
  209. package/packages/config-eslint/node_modules/eslint/lib/rules/constructor-super.js +445 -0
  210. package/packages/config-eslint/node_modules/eslint/lib/rules/curly.js +486 -0
  211. package/packages/config-eslint/node_modules/eslint/lib/rules/default-case-last.js +44 -0
  212. package/packages/config-eslint/node_modules/eslint/lib/rules/default-case.js +97 -0
  213. package/packages/config-eslint/node_modules/eslint/lib/rules/default-param-last.js +62 -0
  214. package/packages/config-eslint/node_modules/eslint/lib/rules/dot-location.js +108 -0
  215. package/packages/config-eslint/node_modules/eslint/lib/rules/dot-notation.js +176 -0
  216. package/packages/config-eslint/node_modules/eslint/lib/rules/eol-last.js +115 -0
  217. package/packages/config-eslint/node_modules/eslint/lib/rules/eqeqeq.js +174 -0
  218. package/packages/config-eslint/node_modules/eslint/lib/rules/for-direction.js +140 -0
  219. package/packages/config-eslint/node_modules/eslint/lib/rules/func-call-spacing.js +233 -0
  220. package/packages/config-eslint/node_modules/eslint/lib/rules/func-name-matching.js +253 -0
  221. package/packages/config-eslint/node_modules/eslint/lib/rules/func-names.js +191 -0
  222. package/packages/config-eslint/node_modules/eslint/lib/rules/func-style.js +136 -0
  223. package/packages/config-eslint/node_modules/eslint/lib/rules/function-call-argument-newline.js +125 -0
  224. package/packages/config-eslint/node_modules/eslint/lib/rules/function-paren-newline.js +292 -0
  225. package/packages/config-eslint/node_modules/eslint/lib/rules/generator-star-spacing.js +209 -0
  226. package/packages/config-eslint/node_modules/eslint/lib/rules/getter-return.js +204 -0
  227. package/packages/config-eslint/node_modules/eslint/lib/rules/global-require.js +90 -0
  228. package/packages/config-eslint/node_modules/eslint/lib/rules/grouped-accessor-pairs.js +215 -0
  229. package/packages/config-eslint/node_modules/eslint/lib/rules/guard-for-in.js +76 -0
  230. package/packages/config-eslint/node_modules/eslint/lib/rules/handle-callback-err.js +101 -0
  231. package/packages/config-eslint/node_modules/eslint/lib/rules/id-blacklist.js +246 -0
  232. package/packages/config-eslint/node_modules/eslint/lib/rules/id-denylist.js +228 -0
  233. package/packages/config-eslint/node_modules/eslint/lib/rules/id-length.js +177 -0
  234. package/packages/config-eslint/node_modules/eslint/lib/rules/id-match.js +299 -0
  235. package/packages/config-eslint/node_modules/eslint/lib/rules/implicit-arrow-linebreak.js +84 -0
  236. package/packages/config-eslint/node_modules/eslint/lib/rules/indent-legacy.js +1126 -0
  237. package/packages/config-eslint/node_modules/eslint/lib/rules/indent.js +1803 -0
  238. package/packages/config-eslint/node_modules/eslint/lib/rules/index.js +305 -0
  239. package/packages/config-eslint/node_modules/eslint/lib/rules/init-declarations.js +139 -0
  240. package/packages/config-eslint/node_modules/eslint/lib/rules/jsx-quotes.js +98 -0
  241. package/packages/config-eslint/node_modules/eslint/lib/rules/key-spacing.js +687 -0
  242. package/packages/config-eslint/node_modules/eslint/lib/rules/keyword-spacing.js +640 -0
  243. package/packages/config-eslint/node_modules/eslint/lib/rules/line-comment-position.js +125 -0
  244. package/packages/config-eslint/node_modules/eslint/lib/rules/linebreak-style.js +108 -0
  245. package/packages/config-eslint/node_modules/eslint/lib/rules/lines-around-comment.js +471 -0
  246. package/packages/config-eslint/node_modules/eslint/lib/rules/lines-around-directive.js +201 -0
  247. package/packages/config-eslint/node_modules/eslint/lib/rules/lines-between-class-members.js +269 -0
  248. package/packages/config-eslint/node_modules/eslint/lib/rules/logical-assignment-operators.js +504 -0
  249. package/packages/config-eslint/node_modules/eslint/lib/rules/max-classes-per-file.js +89 -0
  250. package/packages/config-eslint/node_modules/eslint/lib/rules/max-depth.js +156 -0
  251. package/packages/config-eslint/node_modules/eslint/lib/rules/max-len.js +440 -0
  252. package/packages/config-eslint/node_modules/eslint/lib/rules/max-lines-per-function.js +213 -0
  253. package/packages/config-eslint/node_modules/eslint/lib/rules/max-lines.js +193 -0
  254. package/packages/config-eslint/node_modules/eslint/lib/rules/max-nested-callbacks.js +117 -0
  255. package/packages/config-eslint/node_modules/eslint/lib/rules/max-params.js +102 -0
  256. package/packages/config-eslint/node_modules/eslint/lib/rules/max-statements-per-line.js +199 -0
  257. package/packages/config-eslint/node_modules/eslint/lib/rules/max-statements.js +184 -0
  258. package/packages/config-eslint/node_modules/eslint/lib/rules/multiline-comment-style.js +476 -0
  259. package/packages/config-eslint/node_modules/eslint/lib/rules/multiline-ternary.js +174 -0
  260. package/packages/config-eslint/node_modules/eslint/lib/rules/new-cap.js +276 -0
  261. package/packages/config-eslint/node_modules/eslint/lib/rules/new-parens.js +93 -0
  262. package/packages/config-eslint/node_modules/eslint/lib/rules/newline-after-var.js +253 -0
  263. package/packages/config-eslint/node_modules/eslint/lib/rules/newline-before-return.js +217 -0
  264. package/packages/config-eslint/node_modules/eslint/lib/rules/newline-per-chained-call.js +126 -0
  265. package/packages/config-eslint/node_modules/eslint/lib/rules/no-alert.js +138 -0
  266. package/packages/config-eslint/node_modules/eslint/lib/rules/no-array-constructor.js +133 -0
  267. package/packages/config-eslint/node_modules/eslint/lib/rules/no-async-promise-executor.js +39 -0
  268. package/packages/config-eslint/node_modules/eslint/lib/rules/no-await-in-loop.js +106 -0
  269. package/packages/config-eslint/node_modules/eslint/lib/rules/no-bitwise.js +119 -0
  270. package/packages/config-eslint/node_modules/eslint/lib/rules/no-buffer-constructor.js +50 -0
  271. package/packages/config-eslint/node_modules/eslint/lib/rules/no-caller.js +46 -0
  272. package/packages/config-eslint/node_modules/eslint/lib/rules/no-case-declarations.js +76 -0
  273. package/packages/config-eslint/node_modules/eslint/lib/rules/no-catch-shadow.js +82 -0
  274. package/packages/config-eslint/node_modules/eslint/lib/rules/no-class-assign.js +63 -0
  275. package/packages/config-eslint/node_modules/eslint/lib/rules/no-compare-neg-zero.js +60 -0
  276. package/packages/config-eslint/node_modules/eslint/lib/rules/no-cond-assign.js +159 -0
  277. package/packages/config-eslint/node_modules/eslint/lib/rules/no-confusing-arrow.js +92 -0
  278. package/packages/config-eslint/node_modules/eslint/lib/rules/no-console.js +207 -0
  279. package/packages/config-eslint/node_modules/eslint/lib/rules/no-const-assign.js +56 -0
  280. package/packages/config-eslint/node_modules/eslint/lib/rules/no-constant-binary-expression.js +508 -0
  281. package/packages/config-eslint/node_modules/eslint/lib/rules/no-constant-condition.js +161 -0
  282. package/packages/config-eslint/node_modules/eslint/lib/rules/no-constructor-return.js +62 -0
  283. package/packages/config-eslint/node_modules/eslint/lib/rules/no-continue.js +39 -0
  284. package/packages/config-eslint/node_modules/eslint/lib/rules/no-control-regex.js +138 -0
  285. package/packages/config-eslint/node_modules/eslint/lib/rules/no-debugger.js +43 -0
  286. package/packages/config-eslint/node_modules/eslint/lib/rules/no-delete-var.js +42 -0
  287. package/packages/config-eslint/node_modules/eslint/lib/rules/no-div-regex.js +53 -0
  288. package/packages/config-eslint/node_modules/eslint/lib/rules/no-dupe-args.js +82 -0
  289. package/packages/config-eslint/node_modules/eslint/lib/rules/no-dupe-class-members.js +104 -0
  290. package/packages/config-eslint/node_modules/eslint/lib/rules/no-dupe-else-if.js +122 -0
  291. package/packages/config-eslint/node_modules/eslint/lib/rules/no-dupe-keys.js +142 -0
  292. package/packages/config-eslint/node_modules/eslint/lib/rules/no-duplicate-case.js +71 -0
  293. package/packages/config-eslint/node_modules/eslint/lib/rules/no-duplicate-imports.js +290 -0
  294. package/packages/config-eslint/node_modules/eslint/lib/rules/no-else-return.js +405 -0
  295. package/packages/config-eslint/node_modules/eslint/lib/rules/no-empty-character-class.js +76 -0
  296. package/packages/config-eslint/node_modules/eslint/lib/rules/no-empty-function.js +167 -0
  297. package/packages/config-eslint/node_modules/eslint/lib/rules/no-empty-pattern.js +78 -0
  298. package/packages/config-eslint/node_modules/eslint/lib/rules/no-empty-static-block.js +47 -0
  299. package/packages/config-eslint/node_modules/eslint/lib/rules/no-empty.js +103 -0
  300. package/packages/config-eslint/node_modules/eslint/lib/rules/no-eq-null.js +46 -0
  301. package/packages/config-eslint/node_modules/eslint/lib/rules/no-eval.js +286 -0
  302. package/packages/config-eslint/node_modules/eslint/lib/rules/no-ex-assign.js +54 -0
  303. package/packages/config-eslint/node_modules/eslint/lib/rules/no-extend-native.js +178 -0
  304. package/packages/config-eslint/node_modules/eslint/lib/rules/no-extra-bind.js +213 -0
  305. package/packages/config-eslint/node_modules/eslint/lib/rules/no-extra-boolean-cast.js +369 -0
  306. package/packages/config-eslint/node_modules/eslint/lib/rules/no-extra-label.js +149 -0
  307. package/packages/config-eslint/node_modules/eslint/lib/rules/no-extra-parens.js +1322 -0
  308. package/packages/config-eslint/node_modules/eslint/lib/rules/no-extra-semi.js +147 -0
  309. package/packages/config-eslint/node_modules/eslint/lib/rules/no-fallthrough.js +221 -0
  310. package/packages/config-eslint/node_modules/eslint/lib/rules/no-floating-decimal.js +73 -0
  311. package/packages/config-eslint/node_modules/eslint/lib/rules/no-func-assign.js +78 -0
  312. package/packages/config-eslint/node_modules/eslint/lib/rules/no-global-assign.js +95 -0
  313. package/packages/config-eslint/node_modules/eslint/lib/rules/no-implicit-coercion.js +422 -0
  314. package/packages/config-eslint/node_modules/eslint/lib/rules/no-implicit-globals.js +146 -0
  315. package/packages/config-eslint/node_modules/eslint/lib/rules/no-implied-eval.js +132 -0
  316. package/packages/config-eslint/node_modules/eslint/lib/rules/no-import-assign.js +241 -0
  317. package/packages/config-eslint/node_modules/eslint/lib/rules/no-inline-comments.js +110 -0
  318. package/packages/config-eslint/node_modules/eslint/lib/rules/no-inner-declarations.js +131 -0
  319. package/packages/config-eslint/node_modules/eslint/lib/rules/no-invalid-regexp.js +194 -0
  320. package/packages/config-eslint/node_modules/eslint/lib/rules/no-invalid-this.js +150 -0
  321. package/packages/config-eslint/node_modules/eslint/lib/rules/no-irregular-whitespace.js +276 -0
  322. package/packages/config-eslint/node_modules/eslint/lib/rules/no-iterator.js +52 -0
  323. package/packages/config-eslint/node_modules/eslint/lib/rules/no-label-var.js +80 -0
  324. package/packages/config-eslint/node_modules/eslint/lib/rules/no-labels.js +149 -0
  325. package/packages/config-eslint/node_modules/eslint/lib/rules/no-lone-blocks.js +136 -0
  326. package/packages/config-eslint/node_modules/eslint/lib/rules/no-lonely-if.js +88 -0
  327. package/packages/config-eslint/node_modules/eslint/lib/rules/no-loop-func.js +238 -0
  328. package/packages/config-eslint/node_modules/eslint/lib/rules/no-loss-of-precision.js +214 -0
  329. package/packages/config-eslint/node_modules/eslint/lib/rules/no-magic-numbers.js +243 -0
  330. package/packages/config-eslint/node_modules/eslint/lib/rules/no-misleading-character-class.js +537 -0
  331. package/packages/config-eslint/node_modules/eslint/lib/rules/no-mixed-operators.js +229 -0
  332. package/packages/config-eslint/node_modules/eslint/lib/rules/no-mixed-requires.js +238 -0
  333. package/packages/config-eslint/node_modules/eslint/lib/rules/no-mixed-spaces-and-tabs.js +116 -0
  334. package/packages/config-eslint/node_modules/eslint/lib/rules/no-multi-assign.js +67 -0
  335. package/packages/config-eslint/node_modules/eslint/lib/rules/no-multi-spaces.js +141 -0
  336. package/packages/config-eslint/node_modules/eslint/lib/rules/no-multi-str.js +65 -0
  337. package/packages/config-eslint/node_modules/eslint/lib/rules/no-multiple-empty-lines.js +154 -0
  338. package/packages/config-eslint/node_modules/eslint/lib/rules/no-native-reassign.js +98 -0
  339. package/packages/config-eslint/node_modules/eslint/lib/rules/no-negated-condition.js +95 -0
  340. package/packages/config-eslint/node_modules/eslint/lib/rules/no-negated-in-lhs.js +46 -0
  341. package/packages/config-eslint/node_modules/eslint/lib/rules/no-nested-ternary.js +44 -0
  342. package/packages/config-eslint/node_modules/eslint/lib/rules/no-new-func.js +87 -0
  343. package/packages/config-eslint/node_modules/eslint/lib/rules/no-new-native-nonconstructor.js +66 -0
  344. package/packages/config-eslint/node_modules/eslint/lib/rules/no-new-object.js +67 -0
  345. package/packages/config-eslint/node_modules/eslint/lib/rules/no-new-require.js +50 -0
  346. package/packages/config-eslint/node_modules/eslint/lib/rules/no-new-symbol.js +63 -0
  347. package/packages/config-eslint/node_modules/eslint/lib/rules/no-new-wrappers.js +60 -0
  348. package/packages/config-eslint/node_modules/eslint/lib/rules/no-new.js +43 -0
  349. package/packages/config-eslint/node_modules/eslint/lib/rules/no-nonoctal-decimal-escape.js +148 -0
  350. package/packages/config-eslint/node_modules/eslint/lib/rules/no-obj-calls.js +86 -0
  351. package/packages/config-eslint/node_modules/eslint/lib/rules/no-object-constructor.js +117 -0
  352. package/packages/config-eslint/node_modules/eslint/lib/rules/no-octal-escape.js +56 -0
  353. package/packages/config-eslint/node_modules/eslint/lib/rules/no-octal.js +45 -0
  354. package/packages/config-eslint/node_modules/eslint/lib/rules/no-param-reassign.js +230 -0
  355. package/packages/config-eslint/node_modules/eslint/lib/rules/no-path-concat.js +64 -0
  356. package/packages/config-eslint/node_modules/eslint/lib/rules/no-plusplus.js +105 -0
  357. package/packages/config-eslint/node_modules/eslint/lib/rules/no-process-env.js +51 -0
  358. package/packages/config-eslint/node_modules/eslint/lib/rules/no-process-exit.js +47 -0
  359. package/packages/config-eslint/node_modules/eslint/lib/rules/no-promise-executor-return.js +263 -0
  360. package/packages/config-eslint/node_modules/eslint/lib/rules/no-proto.js +48 -0
  361. package/packages/config-eslint/node_modules/eslint/lib/rules/no-prototype-builtins.js +159 -0
  362. package/packages/config-eslint/node_modules/eslint/lib/rules/no-redeclare.js +174 -0
  363. package/packages/config-eslint/node_modules/eslint/lib/rules/no-regex-spaces.js +197 -0
  364. package/packages/config-eslint/node_modules/eslint/lib/rules/no-restricted-exports.js +204 -0
  365. package/packages/config-eslint/node_modules/eslint/lib/rules/no-restricted-globals.js +124 -0
  366. package/packages/config-eslint/node_modules/eslint/lib/rules/no-restricted-imports.js +563 -0
  367. package/packages/config-eslint/node_modules/eslint/lib/rules/no-restricted-modules.js +213 -0
  368. package/packages/config-eslint/node_modules/eslint/lib/rules/no-restricted-properties.js +168 -0
  369. package/packages/config-eslint/node_modules/eslint/lib/rules/no-restricted-syntax.js +70 -0
  370. package/packages/config-eslint/node_modules/eslint/lib/rules/no-return-assign.js +80 -0
  371. package/packages/config-eslint/node_modules/eslint/lib/rules/no-return-await.js +135 -0
  372. package/packages/config-eslint/node_modules/eslint/lib/rules/no-script-url.js +61 -0
  373. package/packages/config-eslint/node_modules/eslint/lib/rules/no-self-assign.js +183 -0
  374. package/packages/config-eslint/node_modules/eslint/lib/rules/no-self-compare.js +60 -0
  375. package/packages/config-eslint/node_modules/eslint/lib/rules/no-sequences.js +139 -0
  376. package/packages/config-eslint/node_modules/eslint/lib/rules/no-setter-return.js +226 -0
  377. package/packages/config-eslint/node_modules/eslint/lib/rules/no-shadow-restricted-names.js +65 -0
  378. package/packages/config-eslint/node_modules/eslint/lib/rules/no-shadow.js +336 -0
  379. package/packages/config-eslint/node_modules/eslint/lib/rules/no-spaced-func.js +83 -0
  380. package/packages/config-eslint/node_modules/eslint/lib/rules/no-sparse-arrays.js +73 -0
  381. package/packages/config-eslint/node_modules/eslint/lib/rules/no-sync.js +64 -0
  382. package/packages/config-eslint/node_modules/eslint/lib/rules/no-tabs.js +81 -0
  383. package/packages/config-eslint/node_modules/eslint/lib/rules/no-template-curly-in-string.js +44 -0
  384. package/packages/config-eslint/node_modules/eslint/lib/rules/no-ternary.js +41 -0
  385. package/packages/config-eslint/node_modules/eslint/lib/rules/no-this-before-super.js +363 -0
  386. package/packages/config-eslint/node_modules/eslint/lib/rules/no-throw-literal.js +51 -0
  387. package/packages/config-eslint/node_modules/eslint/lib/rules/no-trailing-spaces.js +192 -0
  388. package/packages/config-eslint/node_modules/eslint/lib/rules/no-undef-init.js +75 -0
  389. package/packages/config-eslint/node_modules/eslint/lib/rules/no-undef.js +79 -0
  390. package/packages/config-eslint/node_modules/eslint/lib/rules/no-undefined.js +86 -0
  391. package/packages/config-eslint/node_modules/eslint/lib/rules/no-underscore-dangle.js +335 -0
  392. package/packages/config-eslint/node_modules/eslint/lib/rules/no-unexpected-multiline.js +120 -0
  393. package/packages/config-eslint/node_modules/eslint/lib/rules/no-unmodified-loop-condition.js +360 -0
  394. package/packages/config-eslint/node_modules/eslint/lib/rules/no-unneeded-ternary.js +166 -0
  395. package/packages/config-eslint/node_modules/eslint/lib/rules/no-unreachable-loop.js +185 -0
  396. package/packages/config-eslint/node_modules/eslint/lib/rules/no-unreachable.js +293 -0
  397. package/packages/config-eslint/node_modules/eslint/lib/rules/no-unsafe-finally.js +111 -0
  398. package/packages/config-eslint/node_modules/eslint/lib/rules/no-unsafe-negation.js +128 -0
  399. package/packages/config-eslint/node_modules/eslint/lib/rules/no-unsafe-optional-chaining.js +205 -0
  400. package/packages/config-eslint/node_modules/eslint/lib/rules/no-unused-expressions.js +186 -0
  401. package/packages/config-eslint/node_modules/eslint/lib/rules/no-unused-labels.js +143 -0
  402. package/packages/config-eslint/node_modules/eslint/lib/rules/no-unused-private-class-members.js +195 -0
  403. package/packages/config-eslint/node_modules/eslint/lib/rules/no-unused-vars.js +881 -0
  404. package/packages/config-eslint/node_modules/eslint/lib/rules/no-use-before-define.js +348 -0
  405. package/packages/config-eslint/node_modules/eslint/lib/rules/no-useless-assignment.js +566 -0
  406. package/packages/config-eslint/node_modules/eslint/lib/rules/no-useless-backreference.js +244 -0
  407. package/packages/config-eslint/node_modules/eslint/lib/rules/no-useless-call.js +90 -0
  408. package/packages/config-eslint/node_modules/eslint/lib/rules/no-useless-catch.js +57 -0
  409. package/packages/config-eslint/node_modules/eslint/lib/rules/no-useless-computed-key.js +168 -0
  410. package/packages/config-eslint/node_modules/eslint/lib/rules/no-useless-concat.js +115 -0
  411. package/packages/config-eslint/node_modules/eslint/lib/rules/no-useless-constructor.js +189 -0
  412. package/packages/config-eslint/node_modules/eslint/lib/rules/no-useless-escape.js +333 -0
  413. package/packages/config-eslint/node_modules/eslint/lib/rules/no-useless-rename.js +172 -0
  414. package/packages/config-eslint/node_modules/eslint/lib/rules/no-useless-return.js +369 -0
  415. package/packages/config-eslint/node_modules/eslint/lib/rules/no-var.js +334 -0
  416. package/packages/config-eslint/node_modules/eslint/lib/rules/no-void.js +64 -0
  417. package/packages/config-eslint/node_modules/eslint/lib/rules/no-warning-comments.js +201 -0
  418. package/packages/config-eslint/node_modules/eslint/lib/rules/no-whitespace-before-property.js +116 -0
  419. package/packages/config-eslint/node_modules/eslint/lib/rules/no-with.js +39 -0
  420. package/packages/config-eslint/node_modules/eslint/lib/rules/nonblock-statement-body-position.js +127 -0
  421. package/packages/config-eslint/node_modules/eslint/lib/rules/object-curly-newline.js +324 -0
  422. package/packages/config-eslint/node_modules/eslint/lib/rules/object-curly-spacing.js +311 -0
  423. package/packages/config-eslint/node_modules/eslint/lib/rules/object-property-newline.js +102 -0
  424. package/packages/config-eslint/node_modules/eslint/lib/rules/object-shorthand.js +521 -0
  425. package/packages/config-eslint/node_modules/eslint/lib/rules/one-var-declaration-per-line.js +95 -0
  426. package/packages/config-eslint/node_modules/eslint/lib/rules/one-var.js +567 -0
  427. package/packages/config-eslint/node_modules/eslint/lib/rules/operator-assignment.js +209 -0
  428. package/packages/config-eslint/node_modules/eslint/lib/rules/operator-linebreak.js +253 -0
  429. package/packages/config-eslint/node_modules/eslint/lib/rules/padded-blocks.js +310 -0
  430. package/packages/config-eslint/node_modules/eslint/lib/rules/padding-line-between-statements.js +590 -0
  431. package/packages/config-eslint/node_modules/eslint/lib/rules/prefer-arrow-callback.js +381 -0
  432. package/packages/config-eslint/node_modules/eslint/lib/rules/prefer-const.js +501 -0
  433. package/packages/config-eslint/node_modules/eslint/lib/rules/prefer-destructuring.js +301 -0
  434. package/packages/config-eslint/node_modules/eslint/lib/rules/prefer-exponentiation-operator.js +191 -0
  435. package/packages/config-eslint/node_modules/eslint/lib/rules/prefer-named-capture-group.js +178 -0
  436. package/packages/config-eslint/node_modules/eslint/lib/rules/prefer-numeric-literals.js +148 -0
  437. package/packages/config-eslint/node_modules/eslint/lib/rules/prefer-object-has-own.js +114 -0
  438. package/packages/config-eslint/node_modules/eslint/lib/rules/prefer-object-spread.js +298 -0
  439. package/packages/config-eslint/node_modules/eslint/lib/rules/prefer-promise-reject-errors.js +132 -0
  440. package/packages/config-eslint/node_modules/eslint/lib/rules/prefer-reflect.js +127 -0
  441. package/packages/config-eslint/node_modules/eslint/lib/rules/prefer-regex-literals.js +507 -0
  442. package/packages/config-eslint/node_modules/eslint/lib/rules/prefer-rest-params.js +118 -0
  443. package/packages/config-eslint/node_modules/eslint/lib/rules/prefer-spread.js +87 -0
  444. package/packages/config-eslint/node_modules/eslint/lib/rules/prefer-template.js +275 -0
  445. package/packages/config-eslint/node_modules/eslint/lib/rules/quote-props.js +310 -0
  446. package/packages/config-eslint/node_modules/eslint/lib/rules/quotes.js +350 -0
  447. package/packages/config-eslint/node_modules/eslint/lib/rules/radix.js +198 -0
  448. package/packages/config-eslint/node_modules/eslint/lib/rules/require-atomic-updates.js +331 -0
  449. package/packages/config-eslint/node_modules/eslint/lib/rules/require-await.js +147 -0
  450. package/packages/config-eslint/node_modules/eslint/lib/rules/require-unicode-regexp.js +129 -0
  451. package/packages/config-eslint/node_modules/eslint/lib/rules/require-yield.js +77 -0
  452. package/packages/config-eslint/node_modules/eslint/lib/rules/rest-spread-spacing.js +123 -0
  453. package/packages/config-eslint/node_modules/eslint/lib/rules/semi-spacing.js +248 -0
  454. package/packages/config-eslint/node_modules/eslint/lib/rules/semi-style.js +158 -0
  455. package/packages/config-eslint/node_modules/eslint/lib/rules/semi.js +438 -0
  456. package/packages/config-eslint/node_modules/eslint/lib/rules/sort-imports.js +241 -0
  457. package/packages/config-eslint/node_modules/eslint/lib/rules/sort-keys.js +230 -0
  458. package/packages/config-eslint/node_modules/eslint/lib/rules/sort-vars.js +104 -0
  459. package/packages/config-eslint/node_modules/eslint/lib/rules/space-before-blocks.js +204 -0
  460. package/packages/config-eslint/node_modules/eslint/lib/rules/space-before-function-paren.js +167 -0
  461. package/packages/config-eslint/node_modules/eslint/lib/rules/space-in-parens.js +285 -0
  462. package/packages/config-eslint/node_modules/eslint/lib/rules/space-infix-ops.js +198 -0
  463. package/packages/config-eslint/node_modules/eslint/lib/rules/space-unary-ops.js +324 -0
  464. package/packages/config-eslint/node_modules/eslint/lib/rules/spaced-comment.js +385 -0
  465. package/packages/config-eslint/node_modules/eslint/lib/rules/strict.js +277 -0
  466. package/packages/config-eslint/node_modules/eslint/lib/rules/switch-colon-spacing.js +132 -0
  467. package/packages/config-eslint/node_modules/eslint/lib/rules/symbol-description.js +73 -0
  468. package/packages/config-eslint/node_modules/eslint/lib/rules/template-curly-spacing.js +144 -0
  469. package/packages/config-eslint/node_modules/eslint/lib/rules/template-tag-spacing.js +93 -0
  470. package/packages/config-eslint/node_modules/eslint/lib/rules/unicode-bom.js +73 -0
  471. package/packages/config-eslint/node_modules/eslint/lib/rules/use-isnan.js +235 -0
  472. package/packages/config-eslint/node_modules/eslint/lib/rules/utils/ast-utils.js +2292 -0
  473. package/packages/config-eslint/node_modules/eslint/lib/rules/utils/char-source.js +240 -0
  474. package/packages/config-eslint/node_modules/eslint/lib/rules/utils/fix-tracker.js +114 -0
  475. package/packages/config-eslint/node_modules/eslint/lib/rules/utils/keywords.js +67 -0
  476. package/packages/config-eslint/node_modules/eslint/lib/rules/utils/lazy-loading-rule-map.js +115 -0
  477. package/packages/config-eslint/node_modules/eslint/lib/rules/utils/regular-expressions.js +42 -0
  478. package/packages/config-eslint/node_modules/eslint/lib/rules/utils/unicode/index.js +16 -0
  479. package/packages/config-eslint/node_modules/eslint/lib/rules/utils/unicode/is-combining-character.js +13 -0
  480. package/packages/config-eslint/node_modules/eslint/lib/rules/utils/unicode/is-emoji-modifier.js +13 -0
  481. package/packages/config-eslint/node_modules/eslint/lib/rules/utils/unicode/is-regional-indicator-symbol.js +13 -0
  482. package/packages/config-eslint/node_modules/eslint/lib/rules/utils/unicode/is-surrogate-pair.js +14 -0
  483. package/packages/config-eslint/node_modules/eslint/lib/rules/valid-typeof.js +127 -0
  484. package/packages/config-eslint/node_modules/eslint/lib/rules/vars-on-top.js +157 -0
  485. package/packages/config-eslint/node_modules/eslint/lib/rules/wrap-iife.js +207 -0
  486. package/packages/config-eslint/node_modules/eslint/lib/rules/wrap-regex.js +61 -0
  487. package/packages/config-eslint/node_modules/eslint/lib/rules/yield-star-spacing.js +130 -0
  488. package/packages/config-eslint/node_modules/eslint/lib/rules/yoda.js +353 -0
  489. package/packages/config-eslint/node_modules/eslint/lib/shared/ajv.js +34 -0
  490. package/packages/config-eslint/node_modules/eslint/lib/shared/ast-utils.js +29 -0
  491. package/packages/config-eslint/node_modules/eslint/lib/shared/directives.js +15 -0
  492. package/packages/config-eslint/node_modules/eslint/lib/shared/flags.js +27 -0
  493. package/packages/config-eslint/node_modules/eslint/lib/shared/logging.js +39 -0
  494. package/packages/config-eslint/node_modules/eslint/lib/shared/runtime-info.js +168 -0
  495. package/packages/config-eslint/node_modules/eslint/lib/shared/serialization.js +55 -0
  496. package/packages/config-eslint/node_modules/eslint/lib/shared/severity.js +49 -0
  497. package/packages/config-eslint/node_modules/eslint/lib/shared/stats.js +30 -0
  498. package/packages/config-eslint/node_modules/eslint/lib/shared/string-utils.js +58 -0
  499. package/packages/config-eslint/node_modules/eslint/lib/shared/traverser.js +195 -0
  500. package/packages/config-eslint/node_modules/eslint/lib/shared/types.js +250 -0
  501. package/packages/config-eslint/node_modules/eslint/lib/unsupported-api.js +28 -0
  502. package/packages/config-eslint/node_modules/eslint/messages/all-files-ignored.js +16 -0
  503. package/packages/config-eslint/node_modules/eslint/messages/all-matched-files-ignored.js +21 -0
  504. package/packages/config-eslint/node_modules/eslint/messages/config-file-missing.js +16 -0
  505. package/packages/config-eslint/node_modules/eslint/messages/eslintrc-incompat.js +119 -0
  506. package/packages/config-eslint/node_modules/eslint/messages/eslintrc-plugins.js +24 -0
  507. package/packages/config-eslint/node_modules/eslint/messages/extend-config-missing.js +13 -0
  508. package/packages/config-eslint/node_modules/eslint/messages/failed-to-read-json.js +11 -0
  509. package/packages/config-eslint/node_modules/eslint/messages/file-not-found.js +10 -0
  510. package/packages/config-eslint/node_modules/eslint/messages/invalid-rule-options.js +17 -0
  511. package/packages/config-eslint/node_modules/eslint/messages/invalid-rule-severity.js +13 -0
  512. package/packages/config-eslint/node_modules/eslint/messages/no-config-found.js +15 -0
  513. package/packages/config-eslint/node_modules/eslint/messages/plugin-conflict.js +22 -0
  514. package/packages/config-eslint/node_modules/eslint/messages/plugin-invalid.js +16 -0
  515. package/packages/config-eslint/node_modules/eslint/messages/plugin-missing.js +19 -0
  516. package/packages/config-eslint/node_modules/eslint/messages/print-config-with-directory-path.js +8 -0
  517. package/packages/config-eslint/node_modules/eslint/messages/shared.js +18 -0
  518. package/packages/config-eslint/node_modules/eslint/messages/whitespace-found.js +11 -0
  519. package/packages/config-eslint/node_modules/eslint/package.json +188 -0
  520. package/packages/config-eslint/node_modules/eslint-scope/LICENSE +22 -0
  521. package/packages/config-eslint/node_modules/eslint-scope/README.md +91 -0
  522. package/packages/config-eslint/node_modules/eslint-scope/dist/eslint-scope.cjs +2266 -0
  523. package/packages/config-eslint/node_modules/eslint-scope/lib/definition.js +85 -0
  524. package/packages/config-eslint/node_modules/eslint-scope/lib/index.js +169 -0
  525. package/packages/config-eslint/node_modules/eslint-scope/lib/pattern-visitor.js +154 -0
  526. package/packages/config-eslint/node_modules/eslint-scope/lib/reference.js +166 -0
  527. package/packages/config-eslint/node_modules/eslint-scope/lib/referencer.js +656 -0
  528. package/packages/config-eslint/node_modules/eslint-scope/lib/scope-manager.js +249 -0
  529. package/packages/config-eslint/node_modules/eslint-scope/lib/scope.js +793 -0
  530. package/packages/config-eslint/node_modules/eslint-scope/lib/variable.js +87 -0
  531. package/packages/config-eslint/node_modules/eslint-scope/lib/version.js +3 -0
  532. package/packages/config-eslint/node_modules/eslint-scope/package.json +65 -0
  533. package/packages/config-eslint/node_modules/eslint-visitor-keys/LICENSE +201 -0
  534. package/packages/config-eslint/node_modules/eslint-visitor-keys/README.md +105 -0
  535. package/packages/config-eslint/node_modules/eslint-visitor-keys/dist/eslint-visitor-keys.cjs +384 -0
  536. package/packages/config-eslint/node_modules/eslint-visitor-keys/dist/eslint-visitor-keys.d.cts +27 -0
  537. package/packages/config-eslint/node_modules/eslint-visitor-keys/dist/index.d.ts +16 -0
  538. package/packages/config-eslint/node_modules/eslint-visitor-keys/dist/visitor-keys.d.ts +12 -0
  539. package/packages/config-eslint/node_modules/eslint-visitor-keys/lib/index.js +65 -0
  540. package/packages/config-eslint/node_modules/eslint-visitor-keys/lib/visitor-keys.js +315 -0
  541. package/packages/config-eslint/node_modules/eslint-visitor-keys/package.json +74 -0
  542. package/packages/config-eslint/node_modules/file-entry-cache/LICENSE +22 -0
  543. package/packages/config-eslint/node_modules/file-entry-cache/README.md +115 -0
  544. package/packages/config-eslint/node_modules/file-entry-cache/cache.js +291 -0
  545. package/packages/config-eslint/node_modules/file-entry-cache/package.json +56 -0
  546. package/packages/config-eslint/node_modules/find-up/index.d.ts +138 -0
  547. package/packages/config-eslint/node_modules/find-up/index.js +89 -0
  548. package/packages/config-eslint/node_modules/find-up/license +9 -0
  549. package/packages/config-eslint/node_modules/find-up/package.json +54 -0
  550. package/packages/config-eslint/node_modules/find-up/readme.md +151 -0
  551. package/packages/config-eslint/node_modules/flat-cache/LICENSE +22 -0
  552. package/packages/config-eslint/node_modules/flat-cache/README.md +77 -0
  553. package/packages/config-eslint/node_modules/flat-cache/changelog.md +278 -0
  554. package/packages/config-eslint/node_modules/flat-cache/package.json +63 -0
  555. package/packages/config-eslint/node_modules/flat-cache/src/cache.js +214 -0
  556. package/packages/config-eslint/node_modules/flat-cache/src/del.js +30 -0
  557. package/packages/config-eslint/node_modules/flat-cache/src/utils.js +42 -0
  558. package/packages/config-eslint/node_modules/glob-parent/LICENSE +15 -0
  559. package/packages/config-eslint/node_modules/glob-parent/README.md +134 -0
  560. package/packages/config-eslint/node_modules/glob-parent/index.js +75 -0
  561. package/packages/config-eslint/node_modules/glob-parent/package.json +54 -0
  562. package/packages/config-eslint/node_modules/json-schema-traverse/.eslintrc.yml +27 -0
  563. package/packages/config-eslint/node_modules/json-schema-traverse/.travis.yml +8 -0
  564. package/packages/config-eslint/node_modules/json-schema-traverse/LICENSE +21 -0
  565. package/packages/config-eslint/node_modules/json-schema-traverse/README.md +83 -0
  566. package/packages/config-eslint/node_modules/json-schema-traverse/index.js +89 -0
  567. package/packages/config-eslint/node_modules/json-schema-traverse/package.json +43 -0
  568. package/packages/config-eslint/node_modules/json-schema-traverse/spec/.eslintrc.yml +6 -0
  569. package/packages/config-eslint/node_modules/json-schema-traverse/spec/fixtures/schema.js +125 -0
  570. package/packages/config-eslint/node_modules/json-schema-traverse/spec/index.spec.js +171 -0
  571. package/packages/config-eslint/node_modules/locate-path/index.d.ts +83 -0
  572. package/packages/config-eslint/node_modules/locate-path/index.js +68 -0
  573. package/packages/config-eslint/node_modules/locate-path/license +9 -0
  574. package/packages/config-eslint/node_modules/locate-path/package.json +46 -0
  575. package/packages/config-eslint/node_modules/locate-path/readme.md +125 -0
  576. package/packages/config-eslint/node_modules/p-limit/index.d.ts +42 -0
  577. package/packages/config-eslint/node_modules/p-limit/index.js +71 -0
  578. package/packages/config-eslint/node_modules/p-limit/license +9 -0
  579. package/packages/config-eslint/node_modules/p-limit/package.json +52 -0
  580. package/packages/config-eslint/node_modules/p-limit/readme.md +101 -0
  581. package/packages/config-eslint/node_modules/p-locate/index.d.ts +53 -0
  582. package/packages/config-eslint/node_modules/p-locate/index.js +50 -0
  583. package/packages/config-eslint/node_modules/p-locate/license +9 -0
  584. package/packages/config-eslint/node_modules/p-locate/package.json +54 -0
  585. package/packages/config-eslint/node_modules/p-locate/readme.md +93 -0
  586. package/packages/config-eslint/node_modules/path-exists/index.d.ts +28 -0
  587. package/packages/config-eslint/node_modules/path-exists/index.js +23 -0
  588. package/packages/config-eslint/node_modules/path-exists/license +9 -0
  589. package/packages/config-eslint/node_modules/path-exists/package.json +39 -0
  590. package/packages/config-eslint/node_modules/path-exists/readme.md +52 -0
  591. package/packages/config-eslint/node_modules/yocto-queue/index.d.ts +56 -0
  592. package/packages/config-eslint/node_modules/yocto-queue/index.js +68 -0
  593. package/packages/config-eslint/node_modules/yocto-queue/license +9 -0
  594. package/packages/config-eslint/node_modules/yocto-queue/package.json +43 -0
  595. package/packages/config-eslint/node_modules/yocto-queue/readme.md +64 -0
  596. package/packages/config-eslint/package.json +2 -2
  597. package/packages/config-hooks/package.json +2 -2
@@ -0,0 +1,975 @@
1
+ /**
2
+ * @fileoverview Helper functions for ESLint class
3
+ * @author Nicholas C. Zakas
4
+ */
5
+
6
+ "use strict";
7
+
8
+ //-----------------------------------------------------------------------------
9
+ // Requirements
10
+ //-----------------------------------------------------------------------------
11
+
12
+ const path = require("node:path");
13
+ const fs = require("node:fs");
14
+ const fsp = fs.promises;
15
+ const isGlob = require("is-glob");
16
+ const hash = require("../cli-engine/hash");
17
+ const minimatch = require("minimatch");
18
+ const fswalk = require("@nodelib/fs.walk");
19
+ const globParent = require("glob-parent");
20
+ const isPathInside = require("is-path-inside");
21
+
22
+ //-----------------------------------------------------------------------------
23
+ // Fixup references
24
+ //-----------------------------------------------------------------------------
25
+
26
+ const Minimatch = minimatch.Minimatch;
27
+ const MINIMATCH_OPTIONS = { dot: true };
28
+
29
+ //-----------------------------------------------------------------------------
30
+ // Types
31
+ //-----------------------------------------------------------------------------
32
+
33
+ /**
34
+ * @typedef {Object} GlobSearch
35
+ * @property {Array<string>} patterns The normalized patterns to use for a search.
36
+ * @property {Array<string>} rawPatterns The patterns as entered by the user
37
+ * before doing any normalization.
38
+ */
39
+
40
+ //-----------------------------------------------------------------------------
41
+ // Errors
42
+ //-----------------------------------------------------------------------------
43
+
44
+ /**
45
+ * The error type when no files match a glob.
46
+ */
47
+ class NoFilesFoundError extends Error {
48
+
49
+ /**
50
+ * @param {string} pattern The glob pattern which was not found.
51
+ * @param {boolean} globEnabled If `false` then the pattern was a glob pattern, but glob was disabled.
52
+ */
53
+ constructor(pattern, globEnabled) {
54
+ super(`No files matching '${pattern}' were found${!globEnabled ? " (glob was disabled)" : ""}.`);
55
+ this.messageTemplate = "file-not-found";
56
+ this.messageData = { pattern, globDisabled: !globEnabled };
57
+ }
58
+ }
59
+
60
+ /**
61
+ * The error type when a search fails to match multiple patterns.
62
+ */
63
+ class UnmatchedSearchPatternsError extends Error {
64
+
65
+ /**
66
+ * @param {Object} options The options for the error.
67
+ * @param {string} options.basePath The directory that was searched.
68
+ * @param {Array<string>} options.unmatchedPatterns The glob patterns
69
+ * which were not found.
70
+ * @param {Array<string>} options.patterns The glob patterns that were
71
+ * searched.
72
+ * @param {Array<string>} options.rawPatterns The raw glob patterns that
73
+ * were searched.
74
+ */
75
+ constructor({ basePath, unmatchedPatterns, patterns, rawPatterns }) {
76
+ super(`No files matching '${rawPatterns}' in '${basePath}' were found.`);
77
+ this.basePath = basePath;
78
+ this.unmatchedPatterns = unmatchedPatterns;
79
+ this.patterns = patterns;
80
+ this.rawPatterns = rawPatterns;
81
+ }
82
+ }
83
+
84
+ /**
85
+ * The error type when there are files matched by a glob, but all of them have been ignored.
86
+ */
87
+ class AllFilesIgnoredError extends Error {
88
+
89
+ /**
90
+ * @param {string} pattern The glob pattern which was not found.
91
+ */
92
+ constructor(pattern) {
93
+ super(`All files matched by '${pattern}' are ignored.`);
94
+ this.messageTemplate = "all-matched-files-ignored";
95
+ this.messageData = { pattern };
96
+ }
97
+ }
98
+
99
+
100
+ //-----------------------------------------------------------------------------
101
+ // General Helpers
102
+ //-----------------------------------------------------------------------------
103
+
104
+ /**
105
+ * Check if a given value is a non-empty string or not.
106
+ * @param {any} value The value to check.
107
+ * @returns {boolean} `true` if `value` is a non-empty string.
108
+ */
109
+ function isNonEmptyString(value) {
110
+ return typeof value === "string" && value.trim() !== "";
111
+ }
112
+
113
+ /**
114
+ * Check if a given value is an array of non-empty strings or not.
115
+ * @param {any} value The value to check.
116
+ * @returns {boolean} `true` if `value` is an array of non-empty strings.
117
+ */
118
+ function isArrayOfNonEmptyString(value) {
119
+ return Array.isArray(value) && value.length && value.every(isNonEmptyString);
120
+ }
121
+
122
+ /**
123
+ * Check if a given value is an empty array or an array of non-empty strings.
124
+ * @param {any} value The value to check.
125
+ * @returns {boolean} `true` if `value` is an empty array or an array of non-empty
126
+ * strings.
127
+ */
128
+ function isEmptyArrayOrArrayOfNonEmptyString(value) {
129
+ return Array.isArray(value) && value.every(isNonEmptyString);
130
+ }
131
+
132
+ //-----------------------------------------------------------------------------
133
+ // File-related Helpers
134
+ //-----------------------------------------------------------------------------
135
+
136
+ /**
137
+ * Normalizes slashes in a file pattern to posix-style.
138
+ * @param {string} pattern The pattern to replace slashes in.
139
+ * @returns {string} The pattern with slashes normalized.
140
+ */
141
+ function normalizeToPosix(pattern) {
142
+ return pattern.replace(/\\/gu, "/");
143
+ }
144
+
145
+ /**
146
+ * Check if a string is a glob pattern or not.
147
+ * @param {string} pattern A glob pattern.
148
+ * @returns {boolean} `true` if the string is a glob pattern.
149
+ */
150
+ function isGlobPattern(pattern) {
151
+ return isGlob(path.sep === "\\" ? normalizeToPosix(pattern) : pattern);
152
+ }
153
+
154
+
155
+ /**
156
+ * Determines if a given glob pattern will return any results.
157
+ * Used primarily to help with useful error messages.
158
+ * @param {Object} options The options for the function.
159
+ * @param {string} options.basePath The directory to search.
160
+ * @param {string} options.pattern A glob pattern to match.
161
+ * @returns {Promise<boolean>} True if there is a glob match, false if not.
162
+ */
163
+ function globMatch({ basePath, pattern }) {
164
+
165
+ let found = false;
166
+ const patternToUse = path.isAbsolute(pattern)
167
+ ? normalizeToPosix(path.relative(basePath, pattern))
168
+ : pattern;
169
+
170
+ const matcher = new Minimatch(patternToUse, MINIMATCH_OPTIONS);
171
+
172
+ const fsWalkSettings = {
173
+
174
+ deepFilter(entry) {
175
+ const relativePath = normalizeToPosix(path.relative(basePath, entry.path));
176
+
177
+ return !found && matcher.match(relativePath, true);
178
+ },
179
+
180
+ entryFilter(entry) {
181
+ if (found || entry.dirent.isDirectory()) {
182
+ return false;
183
+ }
184
+
185
+ const relativePath = normalizeToPosix(path.relative(basePath, entry.path));
186
+
187
+ if (matcher.match(relativePath)) {
188
+ found = true;
189
+ return true;
190
+ }
191
+
192
+ return false;
193
+ }
194
+ };
195
+
196
+ return new Promise(resolve => {
197
+
198
+ // using a stream so we can exit early because we just need one match
199
+ const globStream = fswalk.walkStream(basePath, fsWalkSettings);
200
+
201
+ globStream.on("data", () => {
202
+ globStream.destroy();
203
+ resolve(true);
204
+ });
205
+
206
+ // swallow errors as they're not important here
207
+ globStream.on("error", () => { });
208
+
209
+ globStream.on("end", () => {
210
+ resolve(false);
211
+ });
212
+ globStream.read();
213
+ });
214
+
215
+ }
216
+
217
+ /**
218
+ * Searches a directory looking for matching glob patterns. This uses
219
+ * the config array's logic to determine if a directory or file should
220
+ * be ignored, so it is consistent with how ignoring works throughout
221
+ * ESLint.
222
+ * @param {Object} options The options for this function.
223
+ * @param {string} options.basePath The directory to search.
224
+ * @param {Array<string>} options.patterns An array of glob patterns
225
+ * to match.
226
+ * @param {Array<string>} options.rawPatterns An array of glob patterns
227
+ * as the user inputted them. Used for errors.
228
+ * @param {FlatConfigArray} options.configs The config array to use for
229
+ * determining what to ignore.
230
+ * @param {boolean} options.errorOnUnmatchedPattern Determines if an error
231
+ * should be thrown when a pattern is unmatched.
232
+ * @returns {Promise<Array<string>>} An array of matching file paths
233
+ * or an empty array if there are no matches.
234
+ * @throws {UnmatchedSearchPatternsError} If there is a pattern that doesn't
235
+ * match any files.
236
+ */
237
+ async function globSearch({
238
+ basePath,
239
+ patterns,
240
+ rawPatterns,
241
+ configs,
242
+ errorOnUnmatchedPattern
243
+ }) {
244
+
245
+ if (patterns.length === 0) {
246
+ return [];
247
+ }
248
+
249
+ /*
250
+ * In this section we are converting the patterns into Minimatch
251
+ * instances for performance reasons. Because we are doing the same
252
+ * matches repeatedly, it's best to compile those patterns once and
253
+ * reuse them multiple times.
254
+ *
255
+ * To do that, we convert any patterns with an absolute path into a
256
+ * relative path and normalize it to Posix-style slashes. We also keep
257
+ * track of the relative patterns to map them back to the original
258
+ * patterns, which we need in order to throw an error if there are any
259
+ * unmatched patterns.
260
+ */
261
+ const relativeToPatterns = new Map();
262
+ const matchers = patterns.map((pattern, i) => {
263
+ const patternToUse = path.isAbsolute(pattern)
264
+ ? normalizeToPosix(path.relative(basePath, pattern))
265
+ : pattern;
266
+
267
+ relativeToPatterns.set(patternToUse, patterns[i]);
268
+
269
+ return new Minimatch(patternToUse, MINIMATCH_OPTIONS);
270
+ });
271
+
272
+ /*
273
+ * We track unmatched patterns because we may want to throw an error when
274
+ * they occur. To start, this set is initialized with all of the patterns.
275
+ * Every time a match occurs, the pattern is removed from the set, making
276
+ * it easy to tell if we have any unmatched patterns left at the end of
277
+ * search.
278
+ */
279
+ const unmatchedPatterns = new Set([...relativeToPatterns.keys()]);
280
+
281
+ const filePaths = (await new Promise((resolve, reject) => {
282
+
283
+ let promiseRejected = false;
284
+
285
+ /**
286
+ * Wraps a boolean-returning filter function. The wrapped function will reject the promise if an error occurs.
287
+ * @param {Function} filter A filter function to wrap.
288
+ * @returns {Function} A function similar to the wrapped filter that rejects the promise if an error occurs.
289
+ */
290
+ function wrapFilter(filter) {
291
+ return (...args) => {
292
+
293
+ // No need to run the filter if an error has been thrown.
294
+ if (!promiseRejected) {
295
+ try {
296
+ return filter(...args);
297
+ } catch (error) {
298
+ promiseRejected = true;
299
+ reject(error);
300
+ }
301
+ }
302
+ return false;
303
+ };
304
+ }
305
+
306
+ fswalk.walk(
307
+ basePath,
308
+ {
309
+ deepFilter: wrapFilter(entry => {
310
+ const relativePath = normalizeToPosix(path.relative(basePath, entry.path));
311
+ const matchesPattern = matchers.some(matcher => matcher.match(relativePath, true));
312
+
313
+ return matchesPattern && !configs.isDirectoryIgnored(entry.path);
314
+ }),
315
+ entryFilter: wrapFilter(entry => {
316
+ const relativePath = normalizeToPosix(path.relative(basePath, entry.path));
317
+
318
+ // entries may be directories or files so filter out directories
319
+ if (entry.dirent.isDirectory()) {
320
+ return false;
321
+ }
322
+
323
+ /*
324
+ * Optimization: We need to track when patterns are left unmatched
325
+ * and so we use `unmatchedPatterns` to do that. There is a bit of
326
+ * complexity here because the same file can be matched by more than
327
+ * one pattern. So, when we start, we actually need to test every
328
+ * pattern against every file. Once we know there are no remaining
329
+ * unmatched patterns, then we can switch to just looking for the
330
+ * first matching pattern for improved speed.
331
+ */
332
+ const matchesPattern = unmatchedPatterns.size > 0
333
+ ? matchers.reduce((previousValue, matcher) => {
334
+ const pathMatches = matcher.match(relativePath);
335
+
336
+ /*
337
+ * We updated the unmatched patterns set only if the path
338
+ * matches and the file has a config. If the file has no
339
+ * config, that means there wasn't a match for the
340
+ * pattern so it should not be removed.
341
+ *
342
+ * Performance note: `getConfig()` aggressively caches
343
+ * results so there is no performance penalty for calling
344
+ * it multiple times with the same argument.
345
+ */
346
+ if (pathMatches && configs.getConfig(entry.path)) {
347
+ unmatchedPatterns.delete(matcher.pattern);
348
+ }
349
+
350
+ return pathMatches || previousValue;
351
+ }, false)
352
+ : matchers.some(matcher => matcher.match(relativePath));
353
+
354
+ return matchesPattern && configs.getConfig(entry.path) !== void 0;
355
+ })
356
+ },
357
+ (error, entries) => {
358
+
359
+ // If the promise is already rejected, calling `resolve` or `reject` will do nothing.
360
+ if (error) {
361
+ reject(error);
362
+ } else {
363
+ resolve(entries);
364
+ }
365
+ }
366
+ );
367
+ })).map(entry => entry.path);
368
+
369
+ // now check to see if we have any unmatched patterns
370
+ if (errorOnUnmatchedPattern && unmatchedPatterns.size > 0) {
371
+ throw new UnmatchedSearchPatternsError({
372
+ basePath,
373
+ unmatchedPatterns: [...unmatchedPatterns].map(
374
+ pattern => relativeToPatterns.get(pattern)
375
+ ),
376
+ patterns,
377
+ rawPatterns
378
+ });
379
+ }
380
+
381
+ return filePaths;
382
+ }
383
+
384
+ /**
385
+ * Throws an error for unmatched patterns. The error will only contain information about the first one.
386
+ * Checks to see if there are any ignored results for a given search.
387
+ * @param {Object} options The options for this function.
388
+ * @param {string} options.basePath The directory to search.
389
+ * @param {Array<string>} options.patterns An array of glob patterns
390
+ * that were used in the original search.
391
+ * @param {Array<string>} options.rawPatterns An array of glob patterns
392
+ * as the user inputted them. Used for errors.
393
+ * @param {Array<string>} options.unmatchedPatterns A non-empty array of glob patterns
394
+ * that were unmatched in the original search.
395
+ * @returns {void} Always throws an error.
396
+ * @throws {NoFilesFoundError} If the first unmatched pattern
397
+ * doesn't match any files even when there are no ignores.
398
+ * @throws {AllFilesIgnoredError} If the first unmatched pattern
399
+ * matches some files when there are no ignores.
400
+ */
401
+ async function throwErrorForUnmatchedPatterns({
402
+ basePath,
403
+ patterns,
404
+ rawPatterns,
405
+ unmatchedPatterns
406
+ }) {
407
+
408
+ const pattern = unmatchedPatterns[0];
409
+ const rawPattern = rawPatterns[patterns.indexOf(pattern)];
410
+
411
+ const patternHasMatch = await globMatch({
412
+ basePath,
413
+ pattern
414
+ });
415
+
416
+ if (patternHasMatch) {
417
+ throw new AllFilesIgnoredError(rawPattern);
418
+ }
419
+
420
+ // if we get here there are truly no matches
421
+ throw new NoFilesFoundError(rawPattern, true);
422
+ }
423
+
424
+ /**
425
+ * Performs multiple glob searches in parallel.
426
+ * @param {Object} options The options for this function.
427
+ * @param {Map<string,GlobSearch>} options.searches
428
+ * An array of glob patterns to match.
429
+ * @param {FlatConfigArray} options.configs The config array to use for
430
+ * determining what to ignore.
431
+ * @param {boolean} options.errorOnUnmatchedPattern Determines if an
432
+ * unmatched glob pattern should throw an error.
433
+ * @returns {Promise<Array<string>>} An array of matching file paths
434
+ * or an empty array if there are no matches.
435
+ */
436
+ async function globMultiSearch({ searches, configs, errorOnUnmatchedPattern }) {
437
+
438
+ /*
439
+ * For convenience, we normalized the search map into an array of objects.
440
+ * Next, we filter out all searches that have no patterns. This happens
441
+ * primarily for the cwd, which is prepopulated in the searches map as an
442
+ * optimization. However, if it has no patterns, it means all patterns
443
+ * occur outside of the cwd and we can safely filter out that search.
444
+ */
445
+ const normalizedSearches = [...searches].map(
446
+ ([basePath, { patterns, rawPatterns }]) => ({ basePath, patterns, rawPatterns })
447
+ ).filter(({ patterns }) => patterns.length > 0);
448
+
449
+ const results = await Promise.allSettled(
450
+ normalizedSearches.map(
451
+ ({ basePath, patterns, rawPatterns }) => globSearch({
452
+ basePath,
453
+ patterns,
454
+ rawPatterns,
455
+ configs,
456
+ errorOnUnmatchedPattern
457
+ })
458
+ )
459
+ );
460
+
461
+ const filePaths = [];
462
+
463
+ for (let i = 0; i < results.length; i++) {
464
+
465
+ const result = results[i];
466
+ const currentSearch = normalizedSearches[i];
467
+
468
+ if (result.status === "fulfilled") {
469
+
470
+ // if the search was successful just add the results
471
+ if (result.value.length > 0) {
472
+ filePaths.push(...result.value);
473
+ }
474
+
475
+ continue;
476
+ }
477
+
478
+ // if we make it here then there was an error
479
+ const error = result.reason;
480
+
481
+ // unexpected errors should be re-thrown
482
+ if (!error.basePath) {
483
+ throw error;
484
+ }
485
+
486
+ if (errorOnUnmatchedPattern) {
487
+
488
+ await throwErrorForUnmatchedPatterns({
489
+ ...currentSearch,
490
+ unmatchedPatterns: error.unmatchedPatterns
491
+ });
492
+
493
+ }
494
+
495
+ }
496
+
497
+ return filePaths;
498
+
499
+ }
500
+
501
+ /**
502
+ * Finds all files matching the options specified.
503
+ * @param {Object} args The arguments objects.
504
+ * @param {Array<string>} args.patterns An array of glob patterns.
505
+ * @param {boolean} args.globInputPaths true to interpret glob patterns,
506
+ * false to not interpret glob patterns.
507
+ * @param {string} args.cwd The current working directory to find from.
508
+ * @param {FlatConfigArray} args.configs The configs for the current run.
509
+ * @param {boolean} args.errorOnUnmatchedPattern Determines if an unmatched pattern
510
+ * should throw an error.
511
+ * @returns {Promise<Array<string>>} The fully resolved file paths.
512
+ * @throws {AllFilesIgnoredError} If there are no results due to an ignore pattern.
513
+ * @throws {NoFilesFoundError} If no files matched the given patterns.
514
+ */
515
+ async function findFiles({
516
+ patterns,
517
+ globInputPaths,
518
+ cwd,
519
+ configs,
520
+ errorOnUnmatchedPattern
521
+ }) {
522
+
523
+ const results = [];
524
+ const missingPatterns = [];
525
+ let globbyPatterns = [];
526
+ let rawPatterns = [];
527
+ const searches = new Map([[cwd, { patterns: globbyPatterns, rawPatterns: [] }]]);
528
+
529
+ // check to see if we have explicit files and directories
530
+ const filePaths = patterns.map(filePath => path.resolve(cwd, filePath));
531
+ const stats = await Promise.all(
532
+ filePaths.map(
533
+ filePath => fsp.stat(filePath).catch(() => { })
534
+ )
535
+ );
536
+
537
+ stats.forEach((stat, index) => {
538
+
539
+ const filePath = filePaths[index];
540
+ const pattern = normalizeToPosix(patterns[index]);
541
+
542
+ if (stat) {
543
+
544
+ // files are added directly to the list
545
+ if (stat.isFile()) {
546
+ results.push(filePath);
547
+ }
548
+
549
+ // directories need extensions attached
550
+ if (stat.isDirectory()) {
551
+
552
+ // group everything in cwd together and split out others
553
+ if (isPathInside(filePath, cwd)) {
554
+ ({ patterns: globbyPatterns, rawPatterns } = searches.get(cwd));
555
+ } else {
556
+ if (!searches.has(filePath)) {
557
+ searches.set(filePath, { patterns: [], rawPatterns: [] });
558
+ }
559
+ ({ patterns: globbyPatterns, rawPatterns } = searches.get(filePath));
560
+ }
561
+
562
+ globbyPatterns.push(`${normalizeToPosix(filePath)}/**`);
563
+ rawPatterns.push(pattern);
564
+ }
565
+
566
+ return;
567
+ }
568
+
569
+ // save patterns for later use based on whether globs are enabled
570
+ if (globInputPaths && isGlobPattern(pattern)) {
571
+
572
+ const basePath = path.resolve(cwd, globParent(pattern));
573
+
574
+ // group in cwd if possible and split out others
575
+ if (isPathInside(basePath, cwd)) {
576
+ ({ patterns: globbyPatterns, rawPatterns } = searches.get(cwd));
577
+ } else {
578
+ if (!searches.has(basePath)) {
579
+ searches.set(basePath, { patterns: [], rawPatterns: [] });
580
+ }
581
+ ({ patterns: globbyPatterns, rawPatterns } = searches.get(basePath));
582
+ }
583
+
584
+ globbyPatterns.push(filePath);
585
+ rawPatterns.push(pattern);
586
+ } else {
587
+ missingPatterns.push(pattern);
588
+ }
589
+ });
590
+
591
+ // there were patterns that didn't match anything, tell the user
592
+ if (errorOnUnmatchedPattern && missingPatterns.length) {
593
+ throw new NoFilesFoundError(missingPatterns[0], globInputPaths);
594
+ }
595
+
596
+ // now we are safe to do the search
597
+ const globbyResults = await globMultiSearch({
598
+ searches,
599
+ configs,
600
+ errorOnUnmatchedPattern
601
+ });
602
+
603
+ return [
604
+ ...new Set([
605
+ ...results,
606
+ ...globbyResults.map(filePath => path.resolve(filePath))
607
+ ])
608
+ ];
609
+ }
610
+
611
+ //-----------------------------------------------------------------------------
612
+ // Results-related Helpers
613
+ //-----------------------------------------------------------------------------
614
+
615
+ /**
616
+ * Checks if the given message is an error message.
617
+ * @param {LintMessage} message The message to check.
618
+ * @returns {boolean} Whether or not the message is an error message.
619
+ * @private
620
+ */
621
+ function isErrorMessage(message) {
622
+ return message.severity === 2;
623
+ }
624
+
625
+ /**
626
+ * Returns result with warning by ignore settings
627
+ * @param {string} filePath File path of checked code
628
+ * @param {string} baseDir Absolute path of base directory
629
+ * @param {"ignored"|"external"|"unconfigured"} configStatus A status that determines why the file is ignored
630
+ * @returns {LintResult} Result with single warning
631
+ * @private
632
+ */
633
+ function createIgnoreResult(filePath, baseDir, configStatus) {
634
+ let message;
635
+
636
+ switch (configStatus) {
637
+ case "external":
638
+ message = "File ignored because outside of base path.";
639
+ break;
640
+ case "unconfigured":
641
+ message = "File ignored because no matching configuration was supplied.";
642
+ break;
643
+ default:
644
+ {
645
+ const isInNodeModules = baseDir && path.dirname(path.relative(baseDir, filePath)).split(path.sep).includes("node_modules");
646
+
647
+ if (isInNodeModules) {
648
+ message = "File ignored by default because it is located under the node_modules directory. Use ignore pattern \"!**/node_modules/\" to disable file ignore settings or use \"--no-warn-ignored\" to suppress this warning.";
649
+ } else {
650
+ message = "File ignored because of a matching ignore pattern. Use \"--no-ignore\" to disable file ignore settings or use \"--no-warn-ignored\" to suppress this warning.";
651
+ }
652
+ }
653
+ break;
654
+ }
655
+
656
+ return {
657
+ filePath: path.resolve(filePath),
658
+ messages: [
659
+ {
660
+ ruleId: null,
661
+ fatal: false,
662
+ severity: 1,
663
+ message,
664
+ nodeType: null
665
+ }
666
+ ],
667
+ suppressedMessages: [],
668
+ errorCount: 0,
669
+ warningCount: 1,
670
+ fatalErrorCount: 0,
671
+ fixableErrorCount: 0,
672
+ fixableWarningCount: 0
673
+ };
674
+ }
675
+
676
+ //-----------------------------------------------------------------------------
677
+ // Options-related Helpers
678
+ //-----------------------------------------------------------------------------
679
+
680
+
681
+ /**
682
+ * Check if a given value is a valid fix type or not.
683
+ * @param {any} x The value to check.
684
+ * @returns {boolean} `true` if `x` is valid fix type.
685
+ */
686
+ function isFixType(x) {
687
+ return x === "directive" || x === "problem" || x === "suggestion" || x === "layout";
688
+ }
689
+
690
+ /**
691
+ * Check if a given value is an array of fix types or not.
692
+ * @param {any} x The value to check.
693
+ * @returns {boolean} `true` if `x` is an array of fix types.
694
+ */
695
+ function isFixTypeArray(x) {
696
+ return Array.isArray(x) && x.every(isFixType);
697
+ }
698
+
699
+ /**
700
+ * The error for invalid options.
701
+ */
702
+ class ESLintInvalidOptionsError extends Error {
703
+ constructor(messages) {
704
+ super(`Invalid Options:\n- ${messages.join("\n- ")}`);
705
+ this.code = "ESLINT_INVALID_OPTIONS";
706
+ Error.captureStackTrace(this, ESLintInvalidOptionsError);
707
+ }
708
+ }
709
+
710
+ /**
711
+ * Validates and normalizes options for the wrapped CLIEngine instance.
712
+ * @param {ESLintOptions} options The options to process.
713
+ * @throws {ESLintInvalidOptionsError} If of any of a variety of type errors.
714
+ * @returns {ESLintOptions} The normalized options.
715
+ */
716
+ function processOptions({
717
+ allowInlineConfig = true, // ← we cannot use `overrideConfig.noInlineConfig` instead because `allowInlineConfig` has side-effect that suppress warnings that show inline configs are ignored.
718
+ baseConfig = null,
719
+ cache = false,
720
+ cacheLocation = ".eslintcache",
721
+ cacheStrategy = "metadata",
722
+ cwd = process.cwd(),
723
+ errorOnUnmatchedPattern = true,
724
+ fix = false,
725
+ fixTypes = null, // ← should be null by default because if it's an array then it suppresses rules that don't have the `meta.type` property.
726
+ flags = [],
727
+ globInputPaths = true,
728
+ ignore = true,
729
+ ignorePatterns = null,
730
+ overrideConfig = null,
731
+ overrideConfigFile = null,
732
+ plugins = {},
733
+ stats = false,
734
+ warnIgnored = true,
735
+ passOnNoPatterns = false,
736
+ ruleFilter = () => true,
737
+ ...unknownOptions
738
+ }) {
739
+ const errors = [];
740
+ const unknownOptionKeys = Object.keys(unknownOptions);
741
+
742
+ if (unknownOptionKeys.length >= 1) {
743
+ errors.push(`Unknown options: ${unknownOptionKeys.join(", ")}`);
744
+ if (unknownOptionKeys.includes("cacheFile")) {
745
+ errors.push("'cacheFile' has been removed. Please use the 'cacheLocation' option instead.");
746
+ }
747
+ if (unknownOptionKeys.includes("configFile")) {
748
+ errors.push("'configFile' has been removed. Please use the 'overrideConfigFile' option instead.");
749
+ }
750
+ if (unknownOptionKeys.includes("envs")) {
751
+ errors.push("'envs' has been removed.");
752
+ }
753
+ if (unknownOptionKeys.includes("extensions")) {
754
+ errors.push("'extensions' has been removed.");
755
+ }
756
+ if (unknownOptionKeys.includes("resolvePluginsRelativeTo")) {
757
+ errors.push("'resolvePluginsRelativeTo' has been removed.");
758
+ }
759
+ if (unknownOptionKeys.includes("globals")) {
760
+ errors.push("'globals' has been removed. Please use the 'overrideConfig.languageOptions.globals' option instead.");
761
+ }
762
+ if (unknownOptionKeys.includes("ignorePath")) {
763
+ errors.push("'ignorePath' has been removed.");
764
+ }
765
+ if (unknownOptionKeys.includes("ignorePattern")) {
766
+ errors.push("'ignorePattern' has been removed. Please use the 'overrideConfig.ignorePatterns' option instead.");
767
+ }
768
+ if (unknownOptionKeys.includes("parser")) {
769
+ errors.push("'parser' has been removed. Please use the 'overrideConfig.languageOptions.parser' option instead.");
770
+ }
771
+ if (unknownOptionKeys.includes("parserOptions")) {
772
+ errors.push("'parserOptions' has been removed. Please use the 'overrideConfig.languageOptions.parserOptions' option instead.");
773
+ }
774
+ if (unknownOptionKeys.includes("rules")) {
775
+ errors.push("'rules' has been removed. Please use the 'overrideConfig.rules' option instead.");
776
+ }
777
+ if (unknownOptionKeys.includes("rulePaths")) {
778
+ errors.push("'rulePaths' has been removed. Please define your rules using plugins.");
779
+ }
780
+ if (unknownOptionKeys.includes("reportUnusedDisableDirectives")) {
781
+ errors.push("'reportUnusedDisableDirectives' has been removed. Please use the 'overrideConfig.linterOptions.reportUnusedDisableDirectives' option instead.");
782
+ }
783
+ }
784
+ if (typeof allowInlineConfig !== "boolean") {
785
+ errors.push("'allowInlineConfig' must be a boolean.");
786
+ }
787
+ if (typeof baseConfig !== "object") {
788
+ errors.push("'baseConfig' must be an object or null.");
789
+ }
790
+ if (typeof cache !== "boolean") {
791
+ errors.push("'cache' must be a boolean.");
792
+ }
793
+ if (!isNonEmptyString(cacheLocation)) {
794
+ errors.push("'cacheLocation' must be a non-empty string.");
795
+ }
796
+ if (
797
+ cacheStrategy !== "metadata" &&
798
+ cacheStrategy !== "content"
799
+ ) {
800
+ errors.push("'cacheStrategy' must be any of \"metadata\", \"content\".");
801
+ }
802
+ if (!isNonEmptyString(cwd) || !path.isAbsolute(cwd)) {
803
+ errors.push("'cwd' must be an absolute path.");
804
+ }
805
+ if (typeof errorOnUnmatchedPattern !== "boolean") {
806
+ errors.push("'errorOnUnmatchedPattern' must be a boolean.");
807
+ }
808
+ if (typeof fix !== "boolean" && typeof fix !== "function") {
809
+ errors.push("'fix' must be a boolean or a function.");
810
+ }
811
+ if (fixTypes !== null && !isFixTypeArray(fixTypes)) {
812
+ errors.push("'fixTypes' must be an array of any of \"directive\", \"problem\", \"suggestion\", and \"layout\".");
813
+ }
814
+ if (!isEmptyArrayOrArrayOfNonEmptyString(flags)) {
815
+ errors.push("'flags' must be an array of non-empty strings.");
816
+ }
817
+ if (typeof globInputPaths !== "boolean") {
818
+ errors.push("'globInputPaths' must be a boolean.");
819
+ }
820
+ if (typeof ignore !== "boolean") {
821
+ errors.push("'ignore' must be a boolean.");
822
+ }
823
+ if (!isEmptyArrayOrArrayOfNonEmptyString(ignorePatterns) && ignorePatterns !== null) {
824
+ errors.push("'ignorePatterns' must be an array of non-empty strings or null.");
825
+ }
826
+ if (typeof overrideConfig !== "object") {
827
+ errors.push("'overrideConfig' must be an object or null.");
828
+ }
829
+ if (!isNonEmptyString(overrideConfigFile) && overrideConfigFile !== null && overrideConfigFile !== true) {
830
+ errors.push("'overrideConfigFile' must be a non-empty string, null, or true.");
831
+ }
832
+ if (typeof passOnNoPatterns !== "boolean") {
833
+ errors.push("'passOnNoPatterns' must be a boolean.");
834
+ }
835
+ if (typeof plugins !== "object") {
836
+ errors.push("'plugins' must be an object or null.");
837
+ } else if (plugins !== null && Object.keys(plugins).includes("")) {
838
+ errors.push("'plugins' must not include an empty string.");
839
+ }
840
+ if (Array.isArray(plugins)) {
841
+ errors.push("'plugins' doesn't add plugins to configuration to load. Please use the 'overrideConfig.plugins' option instead.");
842
+ }
843
+ if (typeof stats !== "boolean") {
844
+ errors.push("'stats' must be a boolean.");
845
+ }
846
+ if (typeof warnIgnored !== "boolean") {
847
+ errors.push("'warnIgnored' must be a boolean.");
848
+ }
849
+ if (typeof ruleFilter !== "function") {
850
+ errors.push("'ruleFilter' must be a function.");
851
+ }
852
+ if (errors.length > 0) {
853
+ throw new ESLintInvalidOptionsError(errors);
854
+ }
855
+
856
+ return {
857
+ allowInlineConfig,
858
+ baseConfig,
859
+ cache,
860
+ cacheLocation,
861
+ cacheStrategy,
862
+
863
+ // when overrideConfigFile is true that means don't do config file lookup
864
+ configFile: overrideConfigFile === true ? false : overrideConfigFile,
865
+ overrideConfig,
866
+ cwd: path.normalize(cwd),
867
+ errorOnUnmatchedPattern,
868
+ fix,
869
+ fixTypes,
870
+ flags: [...flags],
871
+ globInputPaths,
872
+ ignore,
873
+ ignorePatterns,
874
+ stats,
875
+ passOnNoPatterns,
876
+ warnIgnored,
877
+ ruleFilter
878
+ };
879
+ }
880
+
881
+
882
+ //-----------------------------------------------------------------------------
883
+ // Cache-related helpers
884
+ //-----------------------------------------------------------------------------
885
+
886
+ /**
887
+ * return the cacheFile to be used by eslint, based on whether the provided parameter is
888
+ * a directory or looks like a directory (ends in `path.sep`), in which case the file
889
+ * name will be the `cacheFile/.cache_hashOfCWD`
890
+ *
891
+ * if cacheFile points to a file or looks like a file then in will just use that file
892
+ * @param {string} cacheFile The name of file to be used to store the cache
893
+ * @param {string} cwd Current working directory
894
+ * @returns {string} the resolved path to the cache file
895
+ */
896
+ function getCacheFile(cacheFile, cwd) {
897
+
898
+ /*
899
+ * make sure the path separators are normalized for the environment/os
900
+ * keeping the trailing path separator if present
901
+ */
902
+ const normalizedCacheFile = path.normalize(cacheFile);
903
+
904
+ const resolvedCacheFile = path.resolve(cwd, normalizedCacheFile);
905
+ const looksLikeADirectory = normalizedCacheFile.slice(-1) === path.sep;
906
+
907
+ /**
908
+ * return the name for the cache file in case the provided parameter is a directory
909
+ * @returns {string} the resolved path to the cacheFile
910
+ */
911
+ function getCacheFileForDirectory() {
912
+ return path.join(resolvedCacheFile, `.cache_${hash(cwd)}`);
913
+ }
914
+
915
+ let fileStats;
916
+
917
+ try {
918
+ fileStats = fs.lstatSync(resolvedCacheFile);
919
+ } catch {
920
+ fileStats = null;
921
+ }
922
+
923
+
924
+ /*
925
+ * in case the file exists we need to verify if the provided path
926
+ * is a directory or a file. If it is a directory we want to create a file
927
+ * inside that directory
928
+ */
929
+ if (fileStats) {
930
+
931
+ /*
932
+ * is a directory or is a file, but the original file the user provided
933
+ * looks like a directory but `path.resolve` removed the `last path.sep`
934
+ * so we need to still treat this like a directory
935
+ */
936
+ if (fileStats.isDirectory() || looksLikeADirectory) {
937
+ return getCacheFileForDirectory();
938
+ }
939
+
940
+ // is file so just use that file
941
+ return resolvedCacheFile;
942
+ }
943
+
944
+ /*
945
+ * here we known the file or directory doesn't exist,
946
+ * so we will try to infer if its a directory if it looks like a directory
947
+ * for the current operating system.
948
+ */
949
+
950
+ // if the last character passed is a path separator we assume is a directory
951
+ if (looksLikeADirectory) {
952
+ return getCacheFileForDirectory();
953
+ }
954
+
955
+ return resolvedCacheFile;
956
+ }
957
+
958
+
959
+ //-----------------------------------------------------------------------------
960
+ // Exports
961
+ //-----------------------------------------------------------------------------
962
+
963
+ module.exports = {
964
+ findFiles,
965
+
966
+ isNonEmptyString,
967
+ isArrayOfNonEmptyString,
968
+
969
+ createIgnoreResult,
970
+ isErrorMessage,
971
+
972
+ processOptions,
973
+
974
+ getCacheFile
975
+ };