@alexlit/lint-kit 176.0.1 → 177.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (293) hide show
  1. package/package.json +1 -1
  2. package/packages/config-stylelint/package.json +5 -5
  3. package/packages/config-stylelint/plugins/color-format.js +1 -5
  4. package/packages/config-stylelint/plugins/logical-css.js +1 -4
  5. package/packages/config-eslint/node_modules/@eslint/core/LICENSE +0 -201
  6. package/packages/config-eslint/node_modules/@eslint/core/README.md +0 -29
  7. package/packages/config-eslint/node_modules/@eslint/core/dist/cjs/types.d.cts +0 -1179
  8. package/packages/config-eslint/node_modules/@eslint/core/dist/esm/types.d.ts +0 -1179
  9. package/packages/config-eslint/node_modules/@eslint/core/package.json +0 -49
  10. package/packages/config-eslint/node_modules/@eslint/plugin-kit/LICENSE +0 -201
  11. package/packages/config-eslint/node_modules/@eslint/plugin-kit/README.md +0 -273
  12. package/packages/config-eslint/node_modules/@eslint/plugin-kit/dist/cjs/index.cjs +0 -884
  13. package/packages/config-eslint/node_modules/@eslint/plugin-kit/dist/cjs/index.d.cts +0 -328
  14. package/packages/config-eslint/node_modules/@eslint/plugin-kit/dist/cjs/types.cts +0 -7
  15. package/packages/config-eslint/node_modules/@eslint/plugin-kit/dist/esm/index.d.ts +0 -328
  16. package/packages/config-eslint/node_modules/@eslint/plugin-kit/dist/esm/index.js +0 -879
  17. package/packages/config-eslint/node_modules/@eslint/plugin-kit/dist/esm/types.d.ts +0 -6
  18. package/packages/config-eslint/node_modules/@eslint/plugin-kit/dist/esm/types.ts +0 -7
  19. package/packages/config-eslint/node_modules/@eslint/plugin-kit/package.json +0 -61
  20. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/configs/flat-config-base.js +0 -9
  21. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/index.d.ts +0 -17
  22. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/index.js +0 -91
  23. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/license +0 -9
  24. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/node_modules/globals/globals.json +0 -3345
  25. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/node_modules/globals/index.d.ts +0 -3452
  26. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/node_modules/globals/index.js +0 -2
  27. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/node_modules/globals/license +0 -9
  28. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/node_modules/globals/package.json +0 -117
  29. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/node_modules/globals/readme.md +0 -42
  30. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/package.json +0 -128
  31. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/readme.md +0 -261
  32. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/ast/call-or-new-expression.js +0 -120
  33. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/ast/function-types.js +0 -7
  34. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/ast/index.js +0 -30
  35. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/ast/is-arrow-function-body.js +0 -3
  36. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/ast/is-directive.js +0 -4
  37. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/ast/is-empty-array-expression.js +0 -5
  38. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/ast/is-empty-node.js +0 -17
  39. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/ast/is-expression-statement.js +0 -7
  40. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/ast/is-function.js +0 -5
  41. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/ast/is-member-expression.js +0 -98
  42. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/ast/is-method-call.js +0 -62
  43. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/ast/is-negative-one.js +0 -8
  44. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/ast/is-reference-identifier.js +0 -159
  45. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/ast/is-static-require.js +0 -10
  46. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/ast/is-tagged-template-literal.js +0 -24
  47. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/ast/is-undefined.js +0 -3
  48. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/ast/literal.js +0 -24
  49. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/better-regex.js +0 -146
  50. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/catch-error-name.js +0 -138
  51. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/consistent-assert.js +0 -98
  52. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/consistent-date-clone.js +0 -54
  53. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/consistent-destructuring.js +0 -168
  54. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/consistent-empty-array-spread.js +0 -127
  55. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/consistent-existence-index-check.js +0 -137
  56. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/consistent-function-scoping.js +0 -265
  57. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/custom-error-definition.js +0 -218
  58. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/empty-brace-spaces.js +0 -62
  59. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/error-message.js +0 -98
  60. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/escape-case.js +0 -86
  61. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/expiring-todo-comments.js +0 -584
  62. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/explicit-length-check.js +0 -236
  63. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/filename-case.js +0 -276
  64. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/fix/add-parenthesizes-to-return-or-throw-expression.js +0 -29
  65. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/fix/append-argument.js +0 -30
  66. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/fix/extend-fix-range.js +0 -11
  67. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/fix/fix-space-around-keywords.js +0 -43
  68. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/fix/index.js +0 -23
  69. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/fix/remove-argument.js +0 -40
  70. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/fix/remove-expression-statement.js +0 -34
  71. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/fix/remove-method-call.js +0 -28
  72. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/fix/remove-object-property.js +0 -21
  73. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/fix/remove-parentheses.js +0 -19
  74. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/fix/remove-spaces-after.js +0 -22
  75. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/fix/remove-specifier.js +0 -59
  76. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/fix/rename-variable.js +0 -8
  77. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/fix/replace-argument.js +0 -17
  78. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/fix/replace-member-expression-property.js +0 -25
  79. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/fix/replace-node-or-token-and-spaces-before.js +0 -31
  80. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/fix/replace-reference-identifier.js +0 -32
  81. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/fix/replace-string-raw.js +0 -12
  82. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/fix/replace-template-element.js +0 -10
  83. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/fix/switch-call-expression-to-new-expression.js +0 -29
  84. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/fix/switch-new-expression-to-call-expression.js +0 -42
  85. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/import-style.js +0 -375
  86. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/index.js +0 -143
  87. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/new-for-builtins.js +0 -112
  88. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/no-abusive-eslint-disable.js +0 -63
  89. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/no-accessor-recursion.js +0 -160
  90. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/no-anonymous-default-export.js +0 -210
  91. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/no-array-callback-reference.js +0 -285
  92. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/no-array-for-each.js +0 -496
  93. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/no-array-method-this-argument.js +0 -223
  94. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/no-array-reduce.js +0 -128
  95. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/no-array-reverse.js +0 -6
  96. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/no-array-sort.js +0 -6
  97. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/no-await-expression-member.js +0 -85
  98. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/no-await-in-promise-methods.js +0 -69
  99. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/no-console-spaces.js +0 -89
  100. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/no-document-cookie.js +0 -27
  101. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/no-empty-file.js +0 -58
  102. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/no-for-loop.js +0 -419
  103. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/no-hex-escape.js +0 -54
  104. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/no-immediate-mutation.js +0 -778
  105. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/no-instanceof-builtins.js +0 -216
  106. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/no-invalid-fetch-options.js +0 -112
  107. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/no-invalid-remove-event-listener.js +0 -61
  108. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/no-keyword-prefix.js +0 -202
  109. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/no-lonely-if.js +0 -155
  110. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/no-magic-array-flat-depth.js +0 -55
  111. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/no-named-default.js +0 -101
  112. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/no-negated-condition.js +0 -145
  113. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/no-negation-in-equality-check.js +0 -99
  114. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/no-nested-ternary.js +0 -60
  115. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/no-new-array.js +0 -106
  116. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/no-new-buffer.js +0 -100
  117. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/no-null.js +0 -153
  118. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/no-object-as-default-parameter.js +0 -52
  119. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/no-process-exit.js +0 -106
  120. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/no-single-promise-in-promise-methods.js +0 -179
  121. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/no-static-only-class.js +0 -226
  122. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/no-thenable.js +0 -194
  123. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/no-this-assignment.js +0 -40
  124. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/no-typeof-undefined.js +0 -146
  125. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/no-unnecessary-array-flat-depth.js +0 -49
  126. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/no-unnecessary-array-splice-count.js +0 -23
  127. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/no-unnecessary-await.js +0 -110
  128. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/no-unnecessary-polyfills.js +0 -174
  129. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/no-unnecessary-slice-end.js +0 -22
  130. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/no-unreadable-array-destructuring.js +0 -85
  131. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/no-unreadable-iife.js +0 -43
  132. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/no-unused-properties.js +0 -240
  133. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/no-useless-collection-argument.js +0 -101
  134. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/no-useless-error-capture-stack-trace.js +0 -146
  135. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/no-useless-fallback-in-spread.js +0 -66
  136. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/no-useless-length-check.js +0 -150
  137. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/no-useless-promise-resolve-reject.js +0 -210
  138. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/no-useless-spread.js +0 -389
  139. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/no-useless-switch-case.js +0 -59
  140. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/no-useless-undefined.js +0 -275
  141. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/no-zero-fractions.js +0 -81
  142. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/number-literal-case.js +0 -82
  143. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/numeric-separators-style.js +0 -189
  144. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prefer-add-event-listener.js +0 -191
  145. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prefer-array-find.js +0 -458
  146. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prefer-array-flat-map.js +0 -86
  147. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prefer-array-flat.js +0 -279
  148. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prefer-array-index-of.js +0 -34
  149. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prefer-array-some.js +0 -219
  150. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prefer-at.js +0 -380
  151. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prefer-bigint-literals.js +0 -129
  152. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prefer-blob-reading-methods.js +0 -47
  153. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prefer-class-fields.js +0 -158
  154. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prefer-classlist-toggle.js +0 -255
  155. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prefer-code-point.js +0 -56
  156. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prefer-date-now.js +0 -133
  157. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prefer-default-parameters.js +0 -218
  158. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prefer-dom-node-append.js +0 -50
  159. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prefer-dom-node-dataset.js +0 -135
  160. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prefer-dom-node-remove.js +0 -124
  161. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prefer-dom-node-text-content.js +0 -77
  162. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prefer-event-target.js +0 -119
  163. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prefer-export-from.js +0 -367
  164. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prefer-global-this.js +0 -222
  165. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prefer-import-meta-properties.js +0 -320
  166. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prefer-includes.js +0 -111
  167. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prefer-json-parse-buffer.js +0 -161
  168. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prefer-keyboard-event-key.js +0 -188
  169. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prefer-logical-operator-over-ternary.js +0 -162
  170. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prefer-math-min-max.js +0 -205
  171. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prefer-math-trunc.js +0 -111
  172. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prefer-modern-dom-apis.js +0 -145
  173. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prefer-modern-math-apis.js +0 -210
  174. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prefer-module.js +0 -377
  175. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prefer-native-coercion-functions.js +0 -187
  176. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prefer-negative-index.js +0 -211
  177. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prefer-node-protocol.js +0 -86
  178. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prefer-number-properties.js +0 -142
  179. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prefer-object-from-entries.js +0 -256
  180. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prefer-optional-catch-binding.js +0 -77
  181. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prefer-prototype-methods.js +0 -162
  182. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prefer-query-selector.js +0 -170
  183. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prefer-reflect-apply.js +0 -99
  184. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prefer-regexp-test.js +0 -155
  185. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prefer-response-static-json.js +0 -85
  186. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prefer-set-has.js +0 -181
  187. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prefer-set-size.js +0 -106
  188. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prefer-single-call.js +0 -188
  189. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prefer-spread.js +0 -521
  190. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prefer-string-raw.js +0 -149
  191. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prefer-string-replace-all.js +0 -180
  192. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prefer-string-slice.js +0 -180
  193. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prefer-string-starts-ends-with.js +0 -201
  194. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prefer-string-trim-start-end.js +0 -46
  195. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prefer-structured-clone.js +0 -149
  196. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prefer-switch.js +0 -357
  197. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prefer-ternary.js +0 -288
  198. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prefer-top-level-await.js +0 -154
  199. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prefer-type-error.js +0 -169
  200. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prevent-abbreviations.js +0 -655
  201. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/relative-url-style.js +0 -171
  202. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/require-array-join-separator.js +0 -65
  203. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/require-module-attributes.js +0 -120
  204. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/require-module-specifiers.js +0 -158
  205. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/require-number-to-fixed-digits-argument.js +0 -55
  206. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/require-post-message-target-origin.js +0 -74
  207. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/rule/get-documentation-url.js +0 -9
  208. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/rule/index.js +0 -9
  209. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/rule/to-eslint-create.js +0 -51
  210. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/rule/to-eslint-listener.js +0 -40
  211. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/rule/to-eslint-problem.js +0 -38
  212. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/rule/to-eslint-rule-fixer.js +0 -49
  213. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/rule/to-eslint-rule.js +0 -38
  214. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/rule/to-eslint-rules.js +0 -13
  215. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/rule/unicorn-context.js +0 -36
  216. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/rule/unicorn-listeners.js +0 -65
  217. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/rule/utilities.js +0 -27
  218. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/shared/abbreviations.js +0 -270
  219. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/shared/builtin-errors.js +0 -14
  220. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/shared/dom-events.js +0 -275
  221. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/shared/event-keys.js +0 -54
  222. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/shared/negative-index.js +0 -52
  223. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/shared/no-array-mutate-rule.js +0 -139
  224. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/shared/no-unnecessary-length-or-infinity-rule.js +0 -80
  225. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/shared/package-json.js +0 -42
  226. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/shared/simple-array-search-rule.js +0 -126
  227. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/shared/typed-array.js +0 -17
  228. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/string-content.js +0 -192
  229. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/switch-case-braces.js +0 -114
  230. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/template-indent.js +0 -219
  231. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/text-encoding-identifier-case.js +0 -130
  232. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/throw-new-error.js +0 -60
  233. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/array-or-object-prototype-property.js +0 -57
  234. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/assert-token.js +0 -29
  235. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/boolean.js +0 -88
  236. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/builtins.js +0 -30
  237. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/cartesian-product-samples.js +0 -22
  238. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/create-deprecated-rules.js +0 -29
  239. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/escape-string.js +0 -24
  240. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/escape-template-element-raw.js +0 -6
  241. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/get-ancestor.js +0 -15
  242. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/get-available-variable-name.js +0 -147
  243. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/get-builtin-rule.js +0 -5
  244. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/get-call-expression-arguments-text.js +0 -36
  245. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/get-call-or-new-expression-tokens.js +0 -67
  246. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/get-class-head-location.js +0 -22
  247. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/get-documentation-url.js +0 -9
  248. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/get-indent-string.js +0 -18
  249. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/get-references.js +0 -5
  250. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/get-scopes.js +0 -12
  251. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/get-sibling-node.js +0 -38
  252. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/get-switch-case-head-location.js +0 -22
  253. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/get-token-store.js +0 -24
  254. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/get-variable-identifiers.js +0 -7
  255. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/global-reference-tracker.js +0 -68
  256. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/has-optional-chain-element.js +0 -17
  257. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/has-same-range.js +0 -7
  258. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/index.js +0 -59
  259. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/is-function-self-used-inside.js +0 -39
  260. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/is-left-hand-side.js +0 -20
  261. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/is-logical-expression.js +0 -14
  262. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/is-method-named.js +0 -7
  263. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/is-new-expression-with-parentheses.js +0 -28
  264. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/is-node-matches.js +0 -58
  265. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/is-node-value-not-dom-node.js +0 -20
  266. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/is-node-value-not-function.js +0 -40
  267. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/is-number.js +0 -224
  268. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/is-object-method.js +0 -10
  269. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/is-on-same-line.js +0 -7
  270. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/is-same-identifier.js +0 -5
  271. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/is-same-reference.js +0 -170
  272. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/is-shorthand-export-local.js +0 -8
  273. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/is-shorthand-import-local.js +0 -8
  274. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/is-shorthand-property-assignment-pattern-left.js +0 -8
  275. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/is-shorthand-property-value.js +0 -6
  276. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/is-unresolved-variable.js +0 -14
  277. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/is-value-not-usable.js +0 -5
  278. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/needs-semicolon.js +0 -118
  279. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/numeric.js +0 -49
  280. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/parentheses.js +0 -71
  281. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/resolve-variable-name.js +0 -18
  282. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/rule.js +0 -27
  283. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/should-add-parentheses-to-await-expression-argument.js +0 -17
  284. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/should-add-parentheses-to-call-expression-callee.js +0 -18
  285. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/should-add-parentheses-to-conditional-expression-child.js +0 -13
  286. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/should-add-parentheses-to-expression-statement-expression.js +0 -22
  287. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/should-add-parentheses-to-logical-expression-child.js +0 -43
  288. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/should-add-parentheses-to-member-expression-object.js +0 -47
  289. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/should-add-parentheses-to-new-expression-callee.js +0 -28
  290. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/should-add-parentheses-to-unary-expression.js +0 -24
  291. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/singular.js +0 -16
  292. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/string-cases.js +0 -2
  293. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/to-location.js +0 -25
@@ -1,320 +0,0 @@
1
- import {findVariable} from '@eslint-community/eslint-utils';
2
- import {
3
- isMemberExpression,
4
- isCallExpression,
5
- isNewExpression,
6
- isMethodCall,
7
- } from './ast/index.js';
8
-
9
- const ERROR_DIRNAME = 'error/calculate-dirname';
10
- const ERROR_FILENAME = 'error/calculate-filename';
11
- const messages = {
12
- [ERROR_DIRNAME]: 'Do not construct dirname.',
13
- [ERROR_FILENAME]: 'Do not construct filename using `fileURLToPath()`.',
14
- };
15
-
16
- const isParentLiteral = node => {
17
- if (node?.type !== 'Literal') {
18
- return false;
19
- }
20
-
21
- return node.value === '.' || node.value === './';
22
- };
23
-
24
- const isImportMeta = node =>
25
- node.type === 'MetaProperty'
26
- && node.meta.name === 'import'
27
- && node.property.name === 'meta';
28
-
29
- function isNodeBuiltinModuleFunctionCall(node, {modules, functionName, sourceCode}) {
30
- if (!isCallExpression(node, {optional: false, argumentsLength: 1})) {
31
- return false;
32
- }
33
-
34
- const visited = new Set();
35
-
36
- return checkExpression(node.callee, 'property');
37
-
38
- /** @param {import('estree').Expression} node */
39
- function checkExpression(node, checkKind) {
40
- if (node.type === 'MemberExpression') {
41
- if (!(
42
- checkKind === 'property'
43
- && isMemberExpression(node, {property: functionName, computed: false, optional: false})
44
- )) {
45
- return false;
46
- }
47
-
48
- return checkExpression(node.object, 'module');
49
- }
50
-
51
- if (node.type === 'CallExpression') {
52
- if (checkKind !== 'module') {
53
- return false;
54
- }
55
-
56
- // `process.getBuiltinModule('x')`
57
- return (
58
- isMethodCall(node, {
59
- object: 'process',
60
- method: 'getBuiltinModule',
61
- argumentsLength: 1,
62
- optionalMember: false,
63
- optionalCall: false,
64
- })
65
- && isModuleLiteral(node.arguments[0])
66
- );
67
- }
68
-
69
- if (node.type !== 'Identifier') {
70
- return false;
71
- }
72
-
73
- if (visited.has(node)) {
74
- return false;
75
- }
76
-
77
- visited.add(node);
78
-
79
- const variable = findVariable(sourceCode.getScope(node), node);
80
- if (!variable || variable.defs.length !== 1) {
81
- return;
82
- }
83
-
84
- return checkDefinition(variable.defs[0], checkKind);
85
- }
86
-
87
- /** @param {import('eslint').Scope.Definition} define */
88
- function checkDefinition(define, checkKind) {
89
- if (define.type === 'ImportBinding') {
90
- if (!isModuleLiteral(define.parent.source)) {
91
- return false;
92
- }
93
-
94
- const specifier = define.node;
95
- return checkKind === 'module'
96
- ? (specifier?.type === 'ImportDefaultSpecifier' || specifier?.type === 'ImportNamespaceSpecifier')
97
- : (specifier?.type === 'ImportSpecifier' && specifier.imported.name === functionName);
98
- }
99
-
100
- return define.type === 'Variable' && checkPattern(define.name, checkKind);
101
- }
102
-
103
- /** @param {import('estree').Identifier | import('estree').ObjectPattern} node */
104
- function checkPattern(node, checkKind) {
105
- /** @type {{parent?: import('estree').Node}} */
106
- const {parent} = node;
107
- if (parent.type === 'VariableDeclarator') {
108
- if (
109
- !parent.init
110
- || parent.id !== node
111
- || parent.parent.type !== 'VariableDeclaration'
112
- || parent.parent.kind !== 'const'
113
- ) {
114
- return false;
115
- }
116
-
117
- return checkExpression(parent.init, checkKind);
118
- }
119
-
120
- if (parent.type === 'Property') {
121
- if (!(
122
- checkKind === 'property'
123
- && parent.value === node
124
- && !parent.computed
125
- && parent.key.type === 'Identifier'
126
- && parent.key.name === functionName
127
- )) {
128
- return false;
129
- }
130
-
131
- // Check for ObjectPattern
132
- return checkPattern(parent.parent, 'module');
133
- }
134
-
135
- return false;
136
- }
137
-
138
- function isModuleLiteral(node) {
139
- return node?.type === 'Literal' && modules.has(node.value);
140
- }
141
- }
142
-
143
- /**
144
- @returns {node is import('estree').SimpleCallExpression}
145
- */
146
- function isUrlFileURLToPathCall(node, sourceCode) {
147
- return isNodeBuiltinModuleFunctionCall(node, {
148
- modules: new Set(['url', 'node:url']),
149
- functionName: 'fileURLToPath',
150
- sourceCode,
151
- });
152
- }
153
-
154
- /**
155
- @returns {node is import('estree').SimpleCallExpression}
156
- */
157
- function isPathDirnameCall(node, sourceCode) {
158
- return isNodeBuiltinModuleFunctionCall(node, {
159
- modules: new Set(['path', 'node:path']),
160
- functionName: 'dirname',
161
- sourceCode,
162
- });
163
- }
164
-
165
- function create(context) {
166
- const {sourceCode} = context;
167
-
168
- context.on('MetaProperty', function * (node) {
169
- if (!isImportMeta(node)) {
170
- return;
171
- }
172
-
173
- /** @type {import('estree').Node} */
174
- const memberExpression = node.parent;
175
- if (!isMemberExpression(memberExpression, {
176
- properties: ['url', 'filename'],
177
- computed: false,
178
- optional: false,
179
- })) {
180
- return;
181
- }
182
-
183
- const propertyName = memberExpression.property.name;
184
- if (propertyName === 'url') {
185
- // `url.fileURLToPath(import.meta.url)`
186
- if (
187
- isUrlFileURLToPathCall(memberExpression.parent, sourceCode)
188
- && memberExpression.parent.arguments[0] === memberExpression
189
- ) {
190
- yield iterateProblemsFromFilename(memberExpression.parent, {
191
- reportFilenameNode: true,
192
- });
193
- return;
194
- }
195
-
196
- // `new URL(import.meta.url)`
197
- // `new URL('.', import.meta.url)`
198
- // `new URL('./', import.meta.url)`
199
- if (isNewExpression(memberExpression.parent, {name: 'URL', minimumArguments: 1, maximumArguments: 2})) {
200
- const newUrl = memberExpression.parent;
201
- const urlParent = newUrl.parent;
202
-
203
- // `new URL(import.meta.url)`
204
- if (
205
- newUrl.arguments.length === 1
206
- && newUrl.arguments[0] === memberExpression
207
- // `url.fileURLToPath(new URL(import.meta.url))`
208
- && isUrlFileURLToPathCall(urlParent, sourceCode)
209
- && urlParent.arguments[0] === newUrl
210
- ) {
211
- yield iterateProblemsFromFilename(urlParent, {
212
- reportFilenameNode: true,
213
- });
214
- return;
215
- }
216
-
217
- // `url.fileURLToPath(new URL(".", import.meta.url))`
218
- // `url.fileURLToPath(new URL("./", import.meta.url))`
219
- if (
220
- newUrl.arguments.length === 2
221
- && isParentLiteral(newUrl.arguments[0])
222
- && newUrl.arguments[1] === memberExpression
223
- && isUrlFileURLToPathCall(urlParent, sourceCode)
224
- && urlParent.arguments[0] === newUrl
225
- ) {
226
- yield getProblem(urlParent, 'dirname');
227
- }
228
- }
229
-
230
- return;
231
- }
232
-
233
- if (propertyName === 'filename') {
234
- yield iterateProblemsFromFilename(memberExpression);
235
- }
236
-
237
- /**
238
- Iterates over reports where a given filename expression node
239
- would be used to convert it to a dirname.
240
- @param { import('estree').Expression} node
241
- */
242
- function * iterateProblemsFromFilename(node, {reportFilenameNode = false} = {}) {
243
- /** @type {{parent: import('estree').Node}} */
244
- const {parent} = node;
245
-
246
- // `path.dirname(filename)`
247
- if (
248
- isPathDirnameCall(parent, sourceCode)
249
- && parent.arguments[0] === node
250
- ) {
251
- yield getProblem(parent, 'dirname');
252
- return;
253
- }
254
-
255
- if (reportFilenameNode) {
256
- yield getProblem(node, 'filename');
257
- }
258
-
259
- if (
260
- parent.type !== 'VariableDeclarator'
261
- || parent.init !== node
262
- || parent.id.type !== 'Identifier'
263
- || parent.parent.type !== 'VariableDeclaration'
264
- || parent.parent.kind !== 'const'
265
- ) {
266
- return;
267
- }
268
-
269
- /** @type {import('eslint').Scope.Variable|null} */
270
- const variable = findVariable(sourceCode.getScope(parent.id), parent.id);
271
- if (!variable) {
272
- return;
273
- }
274
-
275
- for (const reference of variable.references) {
276
- if (!reference.isReadOnly()) {
277
- continue;
278
- }
279
-
280
- /** @type {{parent: import('estree').Node}} */
281
- const {parent} = reference.identifier;
282
- if (
283
- isPathDirnameCall(parent, sourceCode)
284
- && parent.arguments[0] === reference.identifier
285
- ) {
286
- // Report `path.dirname(identifier)`
287
- yield getProblem(parent, 'dirname');
288
- }
289
- }
290
- }
291
-
292
- /**
293
- @param { import('estree').Node} node
294
- @param {'dirname' | 'filename'} name
295
- */
296
- function getProblem(node, name) {
297
- return {
298
- node,
299
- messageId: name === 'dirname' ? ERROR_DIRNAME : ERROR_FILENAME,
300
- fix: fixer => fixer.replaceText(node, `import.meta.${name}`),
301
- };
302
- }
303
- });
304
- }
305
-
306
- /** @type {import('eslint').Rule.RuleModule} */
307
- const config = {
308
- create,
309
- meta: {
310
- type: 'suggestion',
311
- docs: {
312
- description: 'Prefer `import.meta.{dirname,filename}` over legacy techniques for getting file paths.',
313
- recommended: false,
314
- },
315
- fixable: 'code',
316
- messages,
317
- },
318
- };
319
-
320
- export default config;
@@ -1,111 +0,0 @@
1
- import {
2
- checkVueTemplate,
3
- isMethodNamed,
4
- getTokenStore,
5
- } from './utils/index.js';
6
- import simpleArraySearchRule from './shared/simple-array-search-rule.js';
7
- import {isLiteral, isNegativeOne} from './ast/index.js';
8
-
9
- const MESSAGE_ID = 'prefer-includes';
10
- const messages = {
11
- [MESSAGE_ID]: 'Use `.includes()`, rather than `.{{method}}()`, when checking for existence.',
12
- };
13
- // Ignore `{_,lodash,underscore}.{indexOf,lastIndexOf}`
14
- const ignoredVariables = new Set(['_', 'lodash', 'underscore']);
15
- const isIgnoredTarget = node => node.type === 'Identifier' && ignoredVariables.has(node.name);
16
- const isLiteralZero = node => isLiteral(node, 0);
17
- const isNegativeResult = node => ['===', '==', '<'].includes(node.operator);
18
-
19
- const getProblem = (context, node, target, argumentsNodes) => {
20
- const {sourceCode} = context;
21
- const tokenStore = getTokenStore(context, target);
22
-
23
- const memberExpressionNode = target.parent;
24
- const dotToken = tokenStore.getTokenBefore(memberExpressionNode.property);
25
- const targetSource = sourceCode.getText().slice(
26
- sourceCode.getRange(memberExpressionNode)[0],
27
- sourceCode.getRange(dotToken)[0],
28
- );
29
-
30
- // Strip default `fromIndex`
31
- if (isLiteralZero(argumentsNodes[1])) {
32
- argumentsNodes = argumentsNodes.slice(0, 1);
33
- }
34
-
35
- const argumentsSource = argumentsNodes.map(argument => sourceCode.getText(argument));
36
-
37
- return {
38
- node: memberExpressionNode.property,
39
- messageId: MESSAGE_ID,
40
- data: {
41
- method: node.left.callee.property.name,
42
- },
43
- fix(fixer) {
44
- const replacement = `${isNegativeResult(node) ? '!' : ''}${targetSource}.includes(${argumentsSource.join(', ')})`;
45
- return fixer.replaceText(node, replacement);
46
- },
47
- };
48
- };
49
-
50
- const includesOverSomeRule = simpleArraySearchRule({
51
- method: 'some',
52
- replacement: 'includes',
53
- });
54
-
55
- /** @param {import('eslint').Rule.RuleContext} context */
56
- const create = context => {
57
- includesOverSomeRule.listen(context);
58
-
59
- context.on('BinaryExpression', node => {
60
- const {left, right, operator} = node;
61
-
62
- if (!isMethodNamed(left, 'indexOf') && !isMethodNamed(left, 'lastIndexOf')) {
63
- return;
64
- }
65
-
66
- const target = left.callee.object;
67
-
68
- if (isIgnoredTarget(target)) {
69
- return;
70
- }
71
-
72
- const {arguments: argumentsNodes} = left;
73
-
74
- // Ignore something.indexOf(foo, 0, another)
75
- if (argumentsNodes.length > 2) {
76
- return;
77
- }
78
-
79
- if (
80
- (['!==', '!=', '>', '===', '=='].includes(operator) && isNegativeOne(right))
81
- || (['>=', '<'].includes(operator) && isLiteralZero(right))
82
- ) {
83
- return getProblem(
84
- context,
85
- node,
86
- target,
87
- argumentsNodes,
88
- );
89
- }
90
- });
91
- };
92
-
93
- /** @type {import('eslint').Rule.RuleModule} */
94
- const config = {
95
- create: checkVueTemplate(create),
96
- meta: {
97
- type: 'suggestion',
98
- docs: {
99
- description: 'Prefer `.includes()` over `.indexOf()`, `.lastIndexOf()`, and `Array#some()` when checking for existence or non-existence.',
100
- recommended: 'unopinionated',
101
- },
102
- fixable: 'code',
103
- hasSuggestions: true,
104
- messages: {
105
- ...messages,
106
- ...includesOverSomeRule.messages,
107
- },
108
- },
109
- };
110
-
111
- export default config;
@@ -1,161 +0,0 @@
1
- import {findVariable, getStaticValue, getPropertyName} from '@eslint-community/eslint-utils';
2
- import {isMethodCall} from './ast/index.js';
3
- import {removeArgument} from './fix/index.js';
4
-
5
- const MESSAGE_ID = 'prefer-json-parse-buffer';
6
- const messages = {
7
- [MESSAGE_ID]: 'Prefer reading the JSON file as a buffer.',
8
- };
9
-
10
- const getAwaitExpressionArgument = node => {
11
- while (node.type === 'AwaitExpression') {
12
- node = node.argument;
13
- }
14
-
15
- return node;
16
- };
17
-
18
- function getIdentifierDeclaration(node, scope) {
19
- if (!node) {
20
- return;
21
- }
22
-
23
- node = getAwaitExpressionArgument(node);
24
-
25
- if (!node || node.type !== 'Identifier') {
26
- return node;
27
- }
28
-
29
- const variable = findVariable(scope, node);
30
- if (!variable) {
31
- return;
32
- }
33
-
34
- const {identifiers, references} = variable;
35
-
36
- if (identifiers.length !== 1 || references.length !== 2) {
37
- return;
38
- }
39
-
40
- const [identifier] = identifiers;
41
-
42
- if (
43
- identifier.parent.type !== 'VariableDeclarator'
44
- || identifier.parent.id !== identifier
45
- ) {
46
- return;
47
- }
48
-
49
- return getIdentifierDeclaration(identifier.parent.init, variable.scope);
50
- }
51
-
52
- const isUtf8EncodingStringNode = (node, scope) =>
53
- isUtf8EncodingString(getStaticValue(node, scope)?.value);
54
-
55
- const isUtf8EncodingString = value => {
56
- if (typeof value !== 'string') {
57
- return false;
58
- }
59
-
60
- value = value.toLowerCase();
61
-
62
- // eslint-disable-next-line unicorn/text-encoding-identifier-case
63
- return value === 'utf8' || value === 'utf-8';
64
- };
65
-
66
- function isUtf8Encoding(node, scope) {
67
- if (
68
- node.type === 'ObjectExpression'
69
- && node.properties.length === 1
70
- && node.properties[0].type === 'Property'
71
- && getPropertyName(node.properties[0], scope) === 'encoding'
72
- && isUtf8EncodingStringNode(node.properties[0].value, scope)
73
- ) {
74
- return true;
75
- }
76
-
77
- if (isUtf8EncodingStringNode(node, scope)) {
78
- return true;
79
- }
80
-
81
- const staticValue = getStaticValue(node, scope);
82
- if (!staticValue) {
83
- return false;
84
- }
85
-
86
- const {value} = staticValue;
87
- if (
88
- typeof value === 'object'
89
- && Object.keys(value).length === 1
90
- && isUtf8EncodingString(value.encoding)
91
- ) {
92
- return true;
93
- }
94
-
95
- return false;
96
- }
97
-
98
- /** @param {import('eslint').Rule.RuleContext} context */
99
- const create = context => ({
100
- CallExpression(callExpression) {
101
- if (!(isMethodCall(callExpression, {
102
- object: 'JSON',
103
- method: 'parse',
104
- argumentsLength: 1,
105
- optionalCall: false,
106
- optionalMember: false,
107
- }))) {
108
- return;
109
- }
110
-
111
- let [node] = callExpression.arguments;
112
- const {sourceCode} = context;
113
- const scope = sourceCode.getScope(node);
114
- node = getIdentifierDeclaration(node, scope);
115
- if (
116
- !(
117
- node
118
- && node.type === 'CallExpression'
119
- && !node.optional
120
- && node.arguments.length === 2
121
- && !node.arguments.some(node => node.type === 'SpreadElement')
122
- && node.callee.type === 'MemberExpression'
123
- && !node.callee.optional
124
- )
125
- ) {
126
- return;
127
- }
128
-
129
- const method = getPropertyName(node.callee, scope);
130
- if (method !== 'readFile' && method !== 'readFileSync') {
131
- return;
132
- }
133
-
134
- const [, charsetNode] = node.arguments;
135
- if (!isUtf8Encoding(charsetNode, scope)) {
136
- return;
137
- }
138
-
139
- return {
140
- node: charsetNode,
141
- messageId: MESSAGE_ID,
142
- fix: fixer => removeArgument(fixer, charsetNode, context),
143
- };
144
- },
145
- });
146
-
147
- /** @type {import('eslint').Rule.RuleModule} */
148
- const config = {
149
- create,
150
- meta: {
151
- type: 'suggestion',
152
- docs: {
153
- description: 'Prefer reading a JSON file as a buffer.',
154
- recommended: false,
155
- },
156
- fixable: 'code',
157
- messages,
158
- },
159
- };
160
-
161
- export default config;