@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,275 +0,0 @@
1
- const getVendorPrefixedName = eventName => [
2
- `webkit${eventName}`,
3
- `o${eventName.toLowerCase()}`,
4
- eventName.toLowerCase(),
5
- ];
6
-
7
- // https://github.com/google/closure-library/blob/8782d8ba16ef2dd4a508d2081a6938f054fc60e8/closure/goog/events/eventtype.js#L44
8
- const domEvents = new Set([
9
- // Mouse events
10
- 'click',
11
- 'rightclick',
12
- 'dblclick',
13
- 'auxclick',
14
- 'mousedown',
15
- 'mouseup',
16
- 'mouseover',
17
- 'mouseout',
18
- 'mousemove',
19
- 'mouseenter',
20
- 'mouseleave',
21
-
22
- // Non-existent event; will never fire. This exists as a mouse counterpart to
23
- // POINTERCANCEL.
24
- 'mousecancel',
25
-
26
- // Selection events.
27
- // https://www.w3.org/TR/selection-api/
28
- 'selectionchange',
29
- 'selectstart', // IE, Safari, Chrome
30
-
31
- // Wheel events
32
- // http://www.w3.org/TR/DOM-Level-3-Events/#events-wheelevents
33
- 'wheel',
34
-
35
- // Key events
36
- 'keypress',
37
- 'keydown',
38
- 'keyup',
39
-
40
- // Focus
41
- 'blur',
42
- 'focus',
43
- 'deactivate', // IE only
44
- 'focusin',
45
- 'focusout',
46
-
47
- // Forms
48
- 'change',
49
- 'reset',
50
- 'select',
51
- 'submit',
52
- 'input',
53
- 'propertychange', // IE only
54
-
55
- // Drag and drop
56
- 'dragstart',
57
- 'drag',
58
- 'dragenter',
59
- 'dragover',
60
- 'dragleave',
61
- 'drop',
62
- 'dragend',
63
-
64
- // Touch events
65
- // Note that other touch events exist, but we should follow the W3C list here.
66
- // http://www.w3.org/TR/touch-events/#list-of-touchevent-types
67
- 'touchstart',
68
- 'touchmove',
69
- 'touchend',
70
- 'touchcancel',
71
-
72
- // Misc
73
- 'beforeunload',
74
- 'consolemessage',
75
- 'contextmenu',
76
- 'devicechange',
77
- 'devicemotion',
78
- 'deviceorientation',
79
- 'DOMContentLoaded',
80
- 'error',
81
- 'help',
82
- 'load',
83
- 'losecapture',
84
- 'orientationchange',
85
- 'readystatechange',
86
- 'resize',
87
- 'scroll',
88
- 'unload',
89
-
90
- // Media events
91
- 'canplay',
92
- 'canplaythrough',
93
- 'durationchange',
94
- 'emptied',
95
- 'ended',
96
- 'loadeddata',
97
- 'loadedmetadata',
98
- 'pause',
99
- 'play',
100
- 'playing',
101
- 'progress',
102
- 'ratechange',
103
- 'seeked',
104
- 'seeking',
105
- 'stalled',
106
- 'suspend',
107
- 'timeupdate',
108
- 'volumechange',
109
- 'waiting',
110
-
111
- // Media Source Extensions events
112
- // https://www.w3.org/TR/media-source/#mediasource-events
113
- 'sourceopen',
114
- 'sourceended',
115
- 'sourceclosed',
116
- // https://www.w3.org/TR/media-source/#sourcebuffer-events
117
- 'abort',
118
- 'update',
119
- 'updatestart',
120
- 'updateend',
121
-
122
- // HTML 5 History events
123
- // See http://www.w3.org/TR/html5/browsers.html#event-definitions-0
124
- 'hashchange',
125
- 'pagehide',
126
- 'pageshow',
127
- 'popstate',
128
-
129
- // Copy and Paste
130
- // Support is limited. Make sure it works on your favorite browser
131
- // before using.
132
- // http://www.quirksmode.org/dom/events/cutcopypaste.html
133
- 'copy',
134
- 'paste',
135
- 'cut',
136
- 'beforecopy',
137
- 'beforecut',
138
- 'beforepaste',
139
-
140
- // HTML5 online/offline events.
141
- // http://www.w3.org/TR/offline-webapps/#related
142
- 'online',
143
- 'offline',
144
-
145
- // HTML 5 worker events
146
- 'message',
147
- 'connect',
148
-
149
- // Service Worker Events - ServiceWorkerGlobalScope context
150
- // See https://w3c.github.io/ServiceWorker/#execution-context-events
151
- // message event defined in worker events section
152
- 'install',
153
- 'activate',
154
- 'fetch',
155
- 'foreignfetch',
156
- 'messageerror',
157
-
158
- // Service Worker Events - Document context
159
- // See https://w3c.github.io/ServiceWorker/#document-context-events
160
- 'statechange',
161
- 'updatefound',
162
- 'controllerchange',
163
-
164
- // CSS animation events.
165
- ...getVendorPrefixedName('AnimationStart'),
166
- ...getVendorPrefixedName('AnimationEnd'),
167
- ...getVendorPrefixedName('AnimationIteration'),
168
-
169
- // CSS transition events. Based on the browser support described at:
170
- // https://developer.mozilla.org/en/css/css_transitions#Browser_compatibility
171
- ...getVendorPrefixedName('TransitionEnd'),
172
-
173
- // W3C Pointer Events
174
- // http://www.w3.org/TR/pointerevents/
175
- 'pointerdown',
176
- 'pointerup',
177
- 'pointercancel',
178
- 'pointermove',
179
- 'pointerover',
180
- 'pointerout',
181
- 'pointerenter',
182
- 'pointerleave',
183
- 'gotpointercapture',
184
- 'lostpointercapture',
185
-
186
- // IE specific events.
187
- // See http://msdn.microsoft.com/en-us/library/ie/hh772103(v=vs.85).aspx
188
- // these events will be supplanted in IE11.
189
- 'MSGestureChange',
190
- 'MSGestureEnd',
191
- 'MSGestureHold',
192
- 'MSGestureStart',
193
- 'MSGestureTap',
194
- 'MSGotPointerCapture',
195
- 'MSInertiaStart',
196
- 'MSLostPointerCapture',
197
- 'MSPointerCancel',
198
- 'MSPointerDown',
199
- 'MSPointerEnter',
200
- 'MSPointerHover',
201
- 'MSPointerLeave',
202
- 'MSPointerMove',
203
- 'MSPointerOut',
204
- 'MSPointerOver',
205
- 'MSPointerUp',
206
-
207
- // Native IMEs/input tools events.
208
- 'text',
209
- // The textInput event is supported in IE9+, but only in lower case. All other
210
- // browsers use the camel-case event name.
211
- 'textinput',
212
- 'textInput',
213
- 'compositionstart',
214
- 'compositionupdate',
215
- 'compositionend',
216
-
217
- // The beforeinput event is initially only supported in Safari. See
218
- // https://bugs.chromium.org/p/chromium/issues/detail?id=342670 for Chrome
219
- // implementation tracking.
220
- 'beforeinput',
221
-
222
- // Webview tag events
223
- // See https://developer.chrome.com/apps/tags/webview
224
- 'exit',
225
- 'loadabort',
226
- 'loadcommit',
227
- 'loadredirect',
228
- 'loadstart',
229
- 'loadstop',
230
- 'responsive',
231
- 'sizechanged',
232
- 'unresponsive',
233
-
234
- // HTML5 Page Visibility API. See details at
235
- // `goog.labs.dom.PageVisibilityMonitor`.
236
- 'visibilitychange',
237
-
238
- // LocalStorage event.
239
- 'storage',
240
-
241
- // DOM Level 2 mutation events (deprecated).
242
- 'DOMSubtreeModified',
243
- 'DOMNodeInserted',
244
- 'DOMNodeRemoved',
245
- 'DOMNodeRemovedFromDocument',
246
- 'DOMNodeInsertedIntoDocument',
247
- 'DOMAttrModified',
248
- 'DOMCharacterDataModified',
249
-
250
- // Print events.
251
- 'beforeprint',
252
- 'afterprint',
253
-
254
- // Web app manifest events.
255
- 'beforeinstallprompt',
256
- 'appinstalled',
257
-
258
- // https://github.com/facebook/react/blob/cae635054e17a6f107a39d328649137b83f25972/packages/react-dom/src/events/DOMEventNames.js#L12
259
- 'afterblur',
260
- 'beforeblur',
261
- 'cancel',
262
- 'close',
263
- 'dragexit',
264
- 'encrypted',
265
- 'fullscreenchange',
266
- 'invalid',
267
- 'toggle',
268
-
269
- // https://github.com/sindresorhus/eslint-plugin-unicorn/pull/147
270
- 'search',
271
- 'open',
272
- 'show',
273
- ]);
274
-
275
- export default domEvents;
@@ -1,54 +0,0 @@
1
- /* eslint sort-keys: ["error", "asc", {natural: true}] */
2
-
3
- // https://github.com/facebook/react/blob/b87aabd/packages/react-dom/src/events/getEventKey.js#L36
4
- // Only meta characters which can't be deciphered from `String.fromCharCode()`
5
- const eventKeys = {
6
- 8: 'Backspace',
7
- 9: 'Tab',
8
- 12: 'Clear',
9
- 13: 'Enter',
10
- 16: 'Shift',
11
- 17: 'Control',
12
- 18: 'Alt',
13
- 19: 'Pause',
14
- 20: 'CapsLock',
15
- 27: 'Escape',
16
- 32: ' ',
17
- 33: 'PageUp',
18
- 34: 'PageDown',
19
- 35: 'End',
20
- 36: 'Home',
21
- 37: 'ArrowLeft',
22
- 38: 'ArrowUp',
23
- 39: 'ArrowRight',
24
- 40: 'ArrowDown',
25
- 45: 'Insert',
26
- 46: 'Delete',
27
- 112: 'F1',
28
- 113: 'F2',
29
- 114: 'F3',
30
- 115: 'F4',
31
- 116: 'F5',
32
- 117: 'F6',
33
- 118: 'F7',
34
- 119: 'F8',
35
- 120: 'F9',
36
- 121: 'F10',
37
- 122: 'F11',
38
- 123: 'F12',
39
- 144: 'NumLock',
40
- 145: 'ScrollLock',
41
- 186: ';',
42
- 187: '=',
43
- 188: ',',
44
- 189: '-',
45
- 190: '.',
46
- 191: '/',
47
- 219: '[',
48
- 220: '\\',
49
- 221: ']',
50
- 222: '\'',
51
- 224: 'Meta',
52
- };
53
-
54
- export default eventKeys;
@@ -1,52 +0,0 @@
1
- import isSameReference from '../utils/is-same-reference.js';
2
- import {getParenthesizedRange} from '../utils/parentheses.js';
3
- import {isNumericLiteral} from '../ast/index.js';
4
-
5
- /**
6
- @import {TSESTree as ESTree} from '@typescript-eslint/types';
7
- @import * as ESLint from 'eslint';
8
- */
9
-
10
- const isLengthMemberExpression = node =>
11
- node.type === 'MemberExpression'
12
- && !node.computed
13
- && !node.optional
14
- && node.property.type === 'Identifier'
15
- && node.property.name === 'length';
16
-
17
- const isLiteralPositiveNumber = node =>
18
- isNumericLiteral(node)
19
- && node.value > 0;
20
-
21
- export function getNegativeIndexLengthNode(node, objectNode) {
22
- if (!node) {
23
- return;
24
- }
25
-
26
- const {type, operator, left, right} = node;
27
-
28
- if (type !== 'BinaryExpression' || operator !== '-' || !isLiteralPositiveNumber(right)) {
29
- return;
30
- }
31
-
32
- if (isLengthMemberExpression(left) && isSameReference(left.object, objectNode)) {
33
- return left;
34
- }
35
-
36
- // Nested BinaryExpression
37
- return getNegativeIndexLengthNode(left, objectNode);
38
- }
39
-
40
- /**
41
- @param {ESTree.Node} node
42
- @param {ESLint.Rule.RuleContext} context - The ESLint rule context object.
43
- @returns {ESLint.Rule.ReportFixer}
44
- */
45
- export function removeLengthNode(node, fixer, context) {
46
- const [start, end] = getParenthesizedRange(node, context);
47
- return fixer.removeRange([
48
- start,
49
- end + context.sourceCode.text.slice(end).match(/\S|$/).index,
50
- ]);
51
- }
52
-
@@ -1,139 +0,0 @@
1
- import {isMethodCall} from '../ast/index.js';
2
- import {getParenthesizedText} from '../utils/index.js';
3
-
4
- const MESSAGE_ID_ERROR = 'error';
5
- const MESSAGE_ID_SUGGESTION_APPLY_REPLACEMENT = 'suggestion-apply-replacement';
6
- const MESSAGE_ID_SUGGESTION_SPREADING_ARRAY = 'suggestion-spreading-array';
7
- const MESSAGE_ID_SUGGESTION_NOT_SPREADING_ARRAY = 'suggestion-not-spreading-array';
8
-
9
- const methods = new Map([
10
- [
11
- 'reverse',
12
- {
13
- replacement: 'toReversed',
14
- predicate: callExpression => isMethodCall(callExpression, {
15
- method: 'reverse',
16
- argumentsLength: 0,
17
- optionalCall: false,
18
- }),
19
- },
20
- ],
21
- [
22
- 'sort',
23
- {
24
- replacement: 'toSorted',
25
- predicate: callExpression => isMethodCall(callExpression, {
26
- method: 'sort',
27
- maximumArguments: 1,
28
- optionalCall: false,
29
- }),
30
- },
31
- ],
32
- ]);
33
-
34
- const schema = [
35
- {
36
- type: 'object',
37
- additionalProperties: false,
38
- properties: {
39
- allowExpressionStatement: {
40
- type: 'boolean',
41
- },
42
- },
43
- },
44
- ];
45
-
46
- function noArrayMutateRule(methodName) {
47
- const {
48
- replacement,
49
- predicate,
50
- } = methods.get(methodName);
51
-
52
- const messages = {
53
- [MESSAGE_ID_ERROR]: `Use \`Array#${replacement}()\` instead of \`Array#${methodName}()\`.`,
54
- [MESSAGE_ID_SUGGESTION_APPLY_REPLACEMENT]: `Switch to \`.${replacement}()\`.`,
55
- [MESSAGE_ID_SUGGESTION_SPREADING_ARRAY]: 'The spreading object is an array.',
56
- [MESSAGE_ID_SUGGESTION_NOT_SPREADING_ARRAY]: 'The spreading object is NOT an array.',
57
- };
58
-
59
- /** @param {import('eslint').Rule.RuleContext} context */
60
- const create = context => {
61
- const {allowExpressionStatement} = context.options[0];
62
-
63
- return {
64
- CallExpression(callExpression) {
65
- if (!predicate(callExpression)) {
66
- return;
67
- }
68
-
69
- const array = callExpression.callee.object;
70
-
71
- // `[...array].reverse()`
72
- const isSpreadAndMutate = array.type === 'ArrayExpression'
73
- && array.elements.length === 1
74
- && array.elements[0].type === 'SpreadElement';
75
-
76
- if (allowExpressionStatement && !isSpreadAndMutate) {
77
- const maybeExpressionStatement = callExpression.parent.type === 'ChainExpression'
78
- ? callExpression.parent.parent
79
- : callExpression.parent;
80
- if (maybeExpressionStatement.type === 'ExpressionStatement') {
81
- return;
82
- }
83
- }
84
-
85
- const methodProperty = callExpression.callee.property;
86
- const suggestions = [];
87
- const fixMethodName = fixer => fixer.replaceText(methodProperty, replacement);
88
-
89
- /*
90
- For `[...array].reverse()`, provide two suggestions, let user choose if the object can be unwrapped,
91
- otherwise only change `.reverse()` to `.toReversed()`
92
- */
93
- if (isSpreadAndMutate) {
94
- suggestions.push({
95
- messageId: MESSAGE_ID_SUGGESTION_SPREADING_ARRAY,
96
- * fix(fixer) {
97
- const text = getParenthesizedText(array.elements[0].argument, context);
98
- yield fixer.replaceText(array, text);
99
- yield fixMethodName(fixer);
100
- },
101
- });
102
- }
103
-
104
- suggestions.push({
105
- messageId: isSpreadAndMutate
106
- ? MESSAGE_ID_SUGGESTION_NOT_SPREADING_ARRAY
107
- : MESSAGE_ID_SUGGESTION_APPLY_REPLACEMENT,
108
- fix: fixMethodName,
109
- });
110
-
111
- return {
112
- node: methodProperty,
113
- messageId: MESSAGE_ID_ERROR,
114
- suggest: suggestions,
115
- };
116
- },
117
- };
118
- };
119
-
120
- /** @type {import('eslint').Rule.RuleModule} */
121
- const config = {
122
- create,
123
- meta: {
124
- type: 'suggestion',
125
- docs: {
126
- description: `Prefer \`Array#${replacement}()\` over \`Array#${methodName}()\`.`,
127
- recommended: 'unopinionated',
128
- },
129
- hasSuggestions: true,
130
- schema,
131
- defaultOptions: [{allowExpressionStatement: true}],
132
- messages,
133
- },
134
- };
135
-
136
- return config;
137
- }
138
-
139
- export default noArrayMutateRule;
@@ -1,80 +0,0 @@
1
- import {isMethodCall, isMemberExpression} from '../ast/index.js';
2
- import {isSameReference} from '../utils/index.js';
3
- import {removeArgument} from '../fix/index.js';
4
-
5
- function getObjectLengthOrInfinityDescription(node, object) {
6
- // `Infinity`
7
- if (node.type === 'Identifier' && node.name === 'Infinity') {
8
- return 'Infinity';
9
- }
10
-
11
- // `Number.POSITIVE_INFINITY`
12
- if (isMemberExpression(node, {
13
- object: 'Number',
14
- property: 'POSITIVE_INFINITY',
15
- computed: false,
16
- optional: false,
17
- })) {
18
- return 'Number.POSITIVE_INFINITY';
19
- }
20
-
21
- // `object?.length`
22
- const isOptional = node.type === 'ChainExpression';
23
- if (isOptional) {
24
- node = node.expression;
25
- }
26
-
27
- // `object.length`
28
- if (!(
29
- isMemberExpression(node, {property: 'length', computed: false})
30
- && isSameReference(object, node.object)
31
- )) {
32
- return;
33
- }
34
-
35
- return `${object.type === 'Identifier' ? object.name : '…'}${isOptional ? '?.' : '.'}length`;
36
- }
37
-
38
- /** @param {import('eslint').Rule.RuleContext} context */
39
- function listen(context, {methods, messageId}) {
40
- context.on('CallExpression', callExpression => {
41
- if (!isMethodCall(callExpression, {
42
- methods,
43
- argumentsLength: 2,
44
- optionalCall: false,
45
- })) {
46
- return;
47
- }
48
-
49
- const secondArgument = callExpression.arguments[1];
50
- const description = getObjectLengthOrInfinityDescription(
51
- secondArgument,
52
- callExpression.callee.object,
53
- );
54
-
55
- if (!description) {
56
- return;
57
- }
58
-
59
- const methodName = callExpression.callee.property.name;
60
- const messageData = {
61
- description,
62
- };
63
-
64
- if (methodName === 'splice') {
65
- messageData.argumentName = 'deleteCount';
66
- } else if (methodName === 'toSpliced') {
67
- messageData.argumentName = 'skipCount';
68
- }
69
-
70
- return {
71
- node: secondArgument,
72
- messageId,
73
- data: messageData,
74
- /** @param {import('eslint').Rule.RuleFixer} fixer */
75
- fix: fixer => removeArgument(fixer, secondArgument, context),
76
- };
77
- });
78
- }
79
-
80
- export {listen};
@@ -1,42 +0,0 @@
1
- import fs from 'node:fs';
2
- import {findUpSync} from 'find-up-simple';
3
-
4
- const directoryCache = new Map();
5
- const dataCache = new Map();
6
-
7
- /**
8
- Finds the closest package.json file to the given directory and returns its path and contents.
9
-
10
- Caches the result for future lookups.
11
-
12
- @param dirname {string}
13
- @return {{ path: string, packageJson: Record<string, unknown> } | undefined}
14
- */
15
- export function readPackageJson(dirname) {
16
- let packageJsonPath;
17
- if (directoryCache.has(dirname)) {
18
- packageJsonPath = directoryCache.get(dirname);
19
- } else {
20
- packageJsonPath = findUpSync('package.json', {cwd: dirname, type: 'file'});
21
- directoryCache.set(dirname, packageJsonPath);
22
- }
23
-
24
- if (!packageJsonPath) {
25
- return;
26
- }
27
-
28
- let packageJson;
29
- if (dataCache.has(packageJsonPath)) {
30
- packageJson = dataCache.get(packageJsonPath);
31
- } else {
32
- try {
33
- packageJson = JSON.parse(fs.readFileSync(packageJsonPath));
34
- dataCache.set(packageJsonPath, packageJson);
35
- } catch {
36
- // This can happen if package.json files have comments in them etc.
37
- return;
38
- }
39
- }
40
-
41
- return {path: packageJsonPath, packageJson};
42
- }