@alexlit/lint-kit 176.0.0 → 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 (295) hide show
  1. package/package.json +1 -1
  2. package/packages/config-eslint/package.json +1 -1
  3. package/packages/config-eslint/plugins/vue.js +6 -0
  4. package/packages/config-stylelint/package.json +5 -5
  5. package/packages/config-stylelint/plugins/color-format.js +1 -5
  6. package/packages/config-stylelint/plugins/logical-css.js +1 -4
  7. package/packages/config-eslint/node_modules/@eslint/core/LICENSE +0 -201
  8. package/packages/config-eslint/node_modules/@eslint/core/README.md +0 -29
  9. package/packages/config-eslint/node_modules/@eslint/core/dist/cjs/types.d.cts +0 -1179
  10. package/packages/config-eslint/node_modules/@eslint/core/dist/esm/types.d.ts +0 -1179
  11. package/packages/config-eslint/node_modules/@eslint/core/package.json +0 -49
  12. package/packages/config-eslint/node_modules/@eslint/plugin-kit/LICENSE +0 -201
  13. package/packages/config-eslint/node_modules/@eslint/plugin-kit/README.md +0 -273
  14. package/packages/config-eslint/node_modules/@eslint/plugin-kit/dist/cjs/index.cjs +0 -884
  15. package/packages/config-eslint/node_modules/@eslint/plugin-kit/dist/cjs/index.d.cts +0 -328
  16. package/packages/config-eslint/node_modules/@eslint/plugin-kit/dist/cjs/types.cts +0 -7
  17. package/packages/config-eslint/node_modules/@eslint/plugin-kit/dist/esm/index.d.ts +0 -328
  18. package/packages/config-eslint/node_modules/@eslint/plugin-kit/dist/esm/index.js +0 -879
  19. package/packages/config-eslint/node_modules/@eslint/plugin-kit/dist/esm/types.d.ts +0 -6
  20. package/packages/config-eslint/node_modules/@eslint/plugin-kit/dist/esm/types.ts +0 -7
  21. package/packages/config-eslint/node_modules/@eslint/plugin-kit/package.json +0 -61
  22. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/configs/flat-config-base.js +0 -9
  23. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/index.d.ts +0 -17
  24. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/index.js +0 -91
  25. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/license +0 -9
  26. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/node_modules/globals/globals.json +0 -3345
  27. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/node_modules/globals/index.d.ts +0 -3452
  28. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/node_modules/globals/index.js +0 -2
  29. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/node_modules/globals/license +0 -9
  30. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/node_modules/globals/package.json +0 -117
  31. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/node_modules/globals/readme.md +0 -42
  32. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/package.json +0 -128
  33. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/readme.md +0 -261
  34. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/ast/call-or-new-expression.js +0 -120
  35. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/ast/function-types.js +0 -7
  36. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/ast/index.js +0 -30
  37. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/ast/is-arrow-function-body.js +0 -3
  38. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/ast/is-directive.js +0 -4
  39. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/ast/is-empty-array-expression.js +0 -5
  40. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/ast/is-empty-node.js +0 -17
  41. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/ast/is-expression-statement.js +0 -7
  42. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/ast/is-function.js +0 -5
  43. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/ast/is-member-expression.js +0 -98
  44. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/ast/is-method-call.js +0 -62
  45. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/ast/is-negative-one.js +0 -8
  46. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/ast/is-reference-identifier.js +0 -159
  47. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/ast/is-static-require.js +0 -10
  48. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/ast/is-tagged-template-literal.js +0 -24
  49. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/ast/is-undefined.js +0 -3
  50. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/ast/literal.js +0 -24
  51. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/better-regex.js +0 -146
  52. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/catch-error-name.js +0 -138
  53. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/consistent-assert.js +0 -98
  54. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/consistent-date-clone.js +0 -54
  55. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/consistent-destructuring.js +0 -168
  56. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/consistent-empty-array-spread.js +0 -127
  57. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/consistent-existence-index-check.js +0 -137
  58. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/consistent-function-scoping.js +0 -265
  59. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/custom-error-definition.js +0 -218
  60. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/empty-brace-spaces.js +0 -62
  61. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/error-message.js +0 -98
  62. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/escape-case.js +0 -86
  63. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/expiring-todo-comments.js +0 -584
  64. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/explicit-length-check.js +0 -236
  65. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/filename-case.js +0 -276
  66. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/fix/add-parenthesizes-to-return-or-throw-expression.js +0 -29
  67. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/fix/append-argument.js +0 -30
  68. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/fix/extend-fix-range.js +0 -11
  69. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/fix/fix-space-around-keywords.js +0 -43
  70. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/fix/index.js +0 -23
  71. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/fix/remove-argument.js +0 -40
  72. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/fix/remove-expression-statement.js +0 -34
  73. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/fix/remove-method-call.js +0 -28
  74. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/fix/remove-object-property.js +0 -21
  75. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/fix/remove-parentheses.js +0 -19
  76. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/fix/remove-spaces-after.js +0 -22
  77. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/fix/remove-specifier.js +0 -59
  78. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/fix/rename-variable.js +0 -8
  79. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/fix/replace-argument.js +0 -17
  80. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/fix/replace-member-expression-property.js +0 -25
  81. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/fix/replace-node-or-token-and-spaces-before.js +0 -31
  82. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/fix/replace-reference-identifier.js +0 -32
  83. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/fix/replace-string-raw.js +0 -12
  84. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/fix/replace-template-element.js +0 -10
  85. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/fix/switch-call-expression-to-new-expression.js +0 -29
  86. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/fix/switch-new-expression-to-call-expression.js +0 -42
  87. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/import-style.js +0 -375
  88. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/index.js +0 -143
  89. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/new-for-builtins.js +0 -112
  90. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/no-abusive-eslint-disable.js +0 -63
  91. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/no-accessor-recursion.js +0 -160
  92. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/no-anonymous-default-export.js +0 -210
  93. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/no-array-callback-reference.js +0 -285
  94. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/no-array-for-each.js +0 -496
  95. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/no-array-method-this-argument.js +0 -223
  96. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/no-array-reduce.js +0 -128
  97. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/no-array-reverse.js +0 -6
  98. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/no-array-sort.js +0 -6
  99. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/no-await-expression-member.js +0 -85
  100. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/no-await-in-promise-methods.js +0 -69
  101. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/no-console-spaces.js +0 -89
  102. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/no-document-cookie.js +0 -27
  103. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/no-empty-file.js +0 -58
  104. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/no-for-loop.js +0 -419
  105. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/no-hex-escape.js +0 -54
  106. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/no-immediate-mutation.js +0 -778
  107. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/no-instanceof-builtins.js +0 -216
  108. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/no-invalid-fetch-options.js +0 -112
  109. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/no-invalid-remove-event-listener.js +0 -61
  110. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/no-keyword-prefix.js +0 -202
  111. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/no-lonely-if.js +0 -155
  112. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/no-magic-array-flat-depth.js +0 -55
  113. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/no-named-default.js +0 -101
  114. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/no-negated-condition.js +0 -145
  115. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/no-negation-in-equality-check.js +0 -99
  116. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/no-nested-ternary.js +0 -60
  117. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/no-new-array.js +0 -106
  118. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/no-new-buffer.js +0 -100
  119. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/no-null.js +0 -153
  120. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/no-object-as-default-parameter.js +0 -52
  121. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/no-process-exit.js +0 -106
  122. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/no-single-promise-in-promise-methods.js +0 -179
  123. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/no-static-only-class.js +0 -226
  124. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/no-thenable.js +0 -194
  125. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/no-this-assignment.js +0 -40
  126. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/no-typeof-undefined.js +0 -146
  127. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/no-unnecessary-array-flat-depth.js +0 -49
  128. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/no-unnecessary-array-splice-count.js +0 -23
  129. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/no-unnecessary-await.js +0 -110
  130. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/no-unnecessary-polyfills.js +0 -174
  131. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/no-unnecessary-slice-end.js +0 -22
  132. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/no-unreadable-array-destructuring.js +0 -85
  133. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/no-unreadable-iife.js +0 -43
  134. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/no-unused-properties.js +0 -240
  135. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/no-useless-collection-argument.js +0 -101
  136. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/no-useless-error-capture-stack-trace.js +0 -146
  137. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/no-useless-fallback-in-spread.js +0 -66
  138. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/no-useless-length-check.js +0 -150
  139. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/no-useless-promise-resolve-reject.js +0 -210
  140. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/no-useless-spread.js +0 -389
  141. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/no-useless-switch-case.js +0 -59
  142. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/no-useless-undefined.js +0 -275
  143. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/no-zero-fractions.js +0 -81
  144. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/number-literal-case.js +0 -82
  145. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/numeric-separators-style.js +0 -189
  146. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prefer-add-event-listener.js +0 -191
  147. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prefer-array-find.js +0 -458
  148. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prefer-array-flat-map.js +0 -86
  149. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prefer-array-flat.js +0 -279
  150. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prefer-array-index-of.js +0 -34
  151. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prefer-array-some.js +0 -219
  152. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prefer-at.js +0 -380
  153. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prefer-bigint-literals.js +0 -129
  154. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prefer-blob-reading-methods.js +0 -47
  155. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prefer-class-fields.js +0 -158
  156. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prefer-classlist-toggle.js +0 -255
  157. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prefer-code-point.js +0 -56
  158. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prefer-date-now.js +0 -133
  159. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prefer-default-parameters.js +0 -218
  160. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prefer-dom-node-append.js +0 -50
  161. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prefer-dom-node-dataset.js +0 -135
  162. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prefer-dom-node-remove.js +0 -124
  163. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prefer-dom-node-text-content.js +0 -77
  164. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prefer-event-target.js +0 -119
  165. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prefer-export-from.js +0 -367
  166. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prefer-global-this.js +0 -222
  167. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prefer-import-meta-properties.js +0 -320
  168. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prefer-includes.js +0 -111
  169. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prefer-json-parse-buffer.js +0 -161
  170. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prefer-keyboard-event-key.js +0 -188
  171. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prefer-logical-operator-over-ternary.js +0 -162
  172. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prefer-math-min-max.js +0 -205
  173. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prefer-math-trunc.js +0 -111
  174. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prefer-modern-dom-apis.js +0 -145
  175. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prefer-modern-math-apis.js +0 -210
  176. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prefer-module.js +0 -377
  177. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prefer-native-coercion-functions.js +0 -187
  178. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prefer-negative-index.js +0 -211
  179. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prefer-node-protocol.js +0 -86
  180. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prefer-number-properties.js +0 -142
  181. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prefer-object-from-entries.js +0 -256
  182. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prefer-optional-catch-binding.js +0 -77
  183. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prefer-prototype-methods.js +0 -162
  184. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prefer-query-selector.js +0 -170
  185. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prefer-reflect-apply.js +0 -99
  186. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prefer-regexp-test.js +0 -155
  187. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prefer-response-static-json.js +0 -85
  188. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prefer-set-has.js +0 -181
  189. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prefer-set-size.js +0 -106
  190. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prefer-single-call.js +0 -188
  191. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prefer-spread.js +0 -521
  192. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prefer-string-raw.js +0 -149
  193. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prefer-string-replace-all.js +0 -180
  194. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prefer-string-slice.js +0 -180
  195. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prefer-string-starts-ends-with.js +0 -201
  196. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prefer-string-trim-start-end.js +0 -46
  197. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prefer-structured-clone.js +0 -149
  198. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prefer-switch.js +0 -357
  199. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prefer-ternary.js +0 -288
  200. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prefer-top-level-await.js +0 -154
  201. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prefer-type-error.js +0 -169
  202. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prevent-abbreviations.js +0 -655
  203. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/relative-url-style.js +0 -171
  204. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/require-array-join-separator.js +0 -65
  205. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/require-module-attributes.js +0 -120
  206. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/require-module-specifiers.js +0 -158
  207. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/require-number-to-fixed-digits-argument.js +0 -55
  208. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/require-post-message-target-origin.js +0 -74
  209. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/rule/get-documentation-url.js +0 -9
  210. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/rule/index.js +0 -9
  211. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/rule/to-eslint-create.js +0 -51
  212. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/rule/to-eslint-listener.js +0 -40
  213. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/rule/to-eslint-problem.js +0 -38
  214. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/rule/to-eslint-rule-fixer.js +0 -49
  215. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/rule/to-eslint-rule.js +0 -38
  216. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/rule/to-eslint-rules.js +0 -13
  217. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/rule/unicorn-context.js +0 -36
  218. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/rule/unicorn-listeners.js +0 -65
  219. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/rule/utilities.js +0 -27
  220. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/shared/abbreviations.js +0 -270
  221. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/shared/builtin-errors.js +0 -14
  222. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/shared/dom-events.js +0 -275
  223. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/shared/event-keys.js +0 -54
  224. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/shared/negative-index.js +0 -52
  225. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/shared/no-array-mutate-rule.js +0 -139
  226. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/shared/no-unnecessary-length-or-infinity-rule.js +0 -80
  227. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/shared/package-json.js +0 -42
  228. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/shared/simple-array-search-rule.js +0 -126
  229. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/shared/typed-array.js +0 -17
  230. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/string-content.js +0 -192
  231. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/switch-case-braces.js +0 -114
  232. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/template-indent.js +0 -219
  233. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/text-encoding-identifier-case.js +0 -130
  234. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/throw-new-error.js +0 -60
  235. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/array-or-object-prototype-property.js +0 -57
  236. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/assert-token.js +0 -29
  237. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/boolean.js +0 -88
  238. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/builtins.js +0 -30
  239. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/cartesian-product-samples.js +0 -22
  240. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/create-deprecated-rules.js +0 -29
  241. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/escape-string.js +0 -24
  242. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/escape-template-element-raw.js +0 -6
  243. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/get-ancestor.js +0 -15
  244. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/get-available-variable-name.js +0 -147
  245. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/get-builtin-rule.js +0 -5
  246. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/get-call-expression-arguments-text.js +0 -36
  247. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/get-call-or-new-expression-tokens.js +0 -67
  248. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/get-class-head-location.js +0 -22
  249. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/get-documentation-url.js +0 -9
  250. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/get-indent-string.js +0 -18
  251. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/get-references.js +0 -5
  252. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/get-scopes.js +0 -12
  253. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/get-sibling-node.js +0 -38
  254. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/get-switch-case-head-location.js +0 -22
  255. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/get-token-store.js +0 -24
  256. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/get-variable-identifiers.js +0 -7
  257. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/global-reference-tracker.js +0 -68
  258. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/has-optional-chain-element.js +0 -17
  259. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/has-same-range.js +0 -7
  260. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/index.js +0 -59
  261. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/is-function-self-used-inside.js +0 -39
  262. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/is-left-hand-side.js +0 -20
  263. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/is-logical-expression.js +0 -14
  264. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/is-method-named.js +0 -7
  265. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/is-new-expression-with-parentheses.js +0 -28
  266. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/is-node-matches.js +0 -58
  267. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/is-node-value-not-dom-node.js +0 -20
  268. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/is-node-value-not-function.js +0 -40
  269. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/is-number.js +0 -224
  270. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/is-object-method.js +0 -10
  271. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/is-on-same-line.js +0 -7
  272. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/is-same-identifier.js +0 -5
  273. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/is-same-reference.js +0 -170
  274. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/is-shorthand-export-local.js +0 -8
  275. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/is-shorthand-import-local.js +0 -8
  276. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/is-shorthand-property-assignment-pattern-left.js +0 -8
  277. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/is-shorthand-property-value.js +0 -6
  278. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/is-unresolved-variable.js +0 -14
  279. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/is-value-not-usable.js +0 -5
  280. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/needs-semicolon.js +0 -118
  281. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/numeric.js +0 -49
  282. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/parentheses.js +0 -71
  283. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/resolve-variable-name.js +0 -18
  284. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/rule.js +0 -27
  285. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/should-add-parentheses-to-await-expression-argument.js +0 -17
  286. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/should-add-parentheses-to-call-expression-callee.js +0 -18
  287. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/should-add-parentheses-to-conditional-expression-child.js +0 -13
  288. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/should-add-parentheses-to-expression-statement-expression.js +0 -22
  289. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/should-add-parentheses-to-logical-expression-child.js +0 -43
  290. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/should-add-parentheses-to-member-expression-object.js +0 -47
  291. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/should-add-parentheses-to-new-expression-callee.js +0 -28
  292. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/should-add-parentheses-to-unary-expression.js +0 -24
  293. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/singular.js +0 -16
  294. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/string-cases.js +0 -2
  295. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/to-location.js +0 -25
@@ -1,81 +0,0 @@
1
- import {isParenthesized} from '@eslint-community/eslint-utils';
2
- import needsSemicolon from './utils/needs-semicolon.js';
3
- import {isDecimalInteger} from './utils/numeric.js';
4
- import toLocation from './utils/to-location.js';
5
- import {fixSpaceAroundKeyword} from './fix/index.js';
6
- import {isNumericLiteral} from './ast/index.js';
7
-
8
- const MESSAGE_ZERO_FRACTION = 'zero-fraction';
9
- const MESSAGE_DANGLING_DOT = 'dangling-dot';
10
- const messages = {
11
- [MESSAGE_ZERO_FRACTION]: 'Don\'t use a zero fraction in the number.',
12
- [MESSAGE_DANGLING_DOT]: 'Don\'t use a dangling dot in the number.',
13
- };
14
-
15
- /** @param {import('eslint').Rule.RuleContext} context */
16
- const create = context => ({
17
- Literal(node) {
18
- if (!isNumericLiteral(node)) {
19
- return;
20
- }
21
-
22
- // Legacy octal number `0777` and prefixed number `0o1234` cannot have a dot.
23
- const {raw} = node;
24
- const match = raw.match(/^(?<before>[\d_]*)(?<dotAndFractions>\.[\d_]*)(?<after>.*)$/);
25
- if (!match) {
26
- return;
27
- }
28
-
29
- const {before, dotAndFractions, after} = match.groups;
30
- const fixedDotAndFractions = dotAndFractions.replaceAll(/[.0_]+$/g, '');
31
- const formatted = ((before + fixedDotAndFractions) || '0') + after;
32
-
33
- if (formatted === raw) {
34
- return;
35
- }
36
-
37
- const isDanglingDot = dotAndFractions === '.';
38
- const {sourceCode} = context;
39
- // End of fractions
40
- const end = sourceCode.getRange(node)[0] + before.length + dotAndFractions.length;
41
- const start = end - (raw.length - formatted.length);
42
- return {
43
- loc: toLocation([start, end], context),
44
- messageId: isDanglingDot ? MESSAGE_DANGLING_DOT : MESSAGE_ZERO_FRACTION,
45
- * fix(fixer) {
46
- let fixed = formatted;
47
- if (
48
- node.parent.type === 'MemberExpression'
49
- && node.parent.object === node
50
- && isDecimalInteger(formatted)
51
- && !isParenthesized(node, sourceCode)
52
- ) {
53
- fixed = `(${fixed})`;
54
-
55
- if (needsSemicolon(sourceCode.getTokenBefore(node), context, fixed)) {
56
- fixed = `;${fixed}`;
57
- }
58
- }
59
-
60
- yield fixer.replaceText(node, fixed);
61
- yield fixSpaceAroundKeyword(fixer, node, context);
62
- },
63
- };
64
- },
65
- });
66
-
67
- /** @type {import('eslint').Rule.RuleModule} */
68
- const config = {
69
- create,
70
- meta: {
71
- type: 'suggestion',
72
- docs: {
73
- description: 'Disallow number literals with zero fractions or dangling dots.',
74
- recommended: 'unopinionated',
75
- },
76
- fixable: 'code',
77
- messages,
78
- },
79
- };
80
-
81
- export default config;
@@ -1,82 +0,0 @@
1
- import {checkVueTemplate} from './utils/rule.js';
2
- import {isNumericLiteral, isBigIntLiteral} from './ast/index.js';
3
-
4
- const MESSAGE_ID = 'number-literal-case';
5
- const messages = {
6
- [MESSAGE_ID]: 'Invalid number literal casing.',
7
- };
8
-
9
- /**
10
- @param {string} raw
11
- @param {Options} options
12
- */
13
- const fix = (raw, {hexadecimalValue}) => {
14
- let fixed = raw.toLowerCase();
15
- if (fixed.startsWith('0x')) {
16
- fixed = '0x' + fixed.slice(2)[hexadecimalValue === 'lowercase' ? 'toLowerCase' : 'toUpperCase']();
17
- }
18
-
19
- return fixed;
20
- };
21
-
22
- /** @param {import('eslint').Rule.RuleContext} context */
23
- const create = context => ({
24
- Literal(node) {
25
- const {raw} = node;
26
-
27
- /** @type {Options} */
28
- const options = context.options[0] ?? {};
29
- options.hexadecimalValue ??= 'uppercase';
30
-
31
- let fixed = raw;
32
- if (isNumericLiteral(node)) {
33
- fixed = fix(raw, options);
34
- } else if (isBigIntLiteral(node)) {
35
- fixed = fix(raw.slice(0, -1), options) + 'n';
36
- }
37
-
38
- if (raw !== fixed) {
39
- return {
40
- node,
41
- messageId: MESSAGE_ID,
42
- fix: fixer => fixer.replaceText(node, fixed),
43
- };
44
- }
45
- },
46
- });
47
-
48
- /** @typedef {Record<keyof typeof schema[0]["properties"], typeof caseEnum["enum"][number]>} Options */
49
-
50
- const caseEnum = /** @type {const} */ ({
51
- enum: ['uppercase', 'lowercase'],
52
- });
53
-
54
- const schema = [
55
- {
56
- type: 'object',
57
- additionalProperties: false,
58
- properties: {
59
- hexadecimalValue: caseEnum,
60
- },
61
- },
62
- ];
63
-
64
- /** @type {import('eslint').Rule.RuleModule} */
65
- const config = {
66
- create: checkVueTemplate(create),
67
- meta: {
68
- type: 'suggestion',
69
- docs: {
70
- description: 'Enforce proper case for numeric literals.',
71
- recommended: 'unopinionated',
72
- },
73
- fixable: 'code',
74
- schema,
75
- defaultOptions: [{
76
- hexadecimalValue: 'uppercase',
77
- }],
78
- messages,
79
- },
80
- };
81
-
82
- export default config;
@@ -1,189 +0,0 @@
1
- import * as numeric from './utils/numeric.js';
2
- import {isBigIntLiteral} from './ast/index.js';
3
-
4
- const MESSAGE_ID = 'numeric-separators-style';
5
- const messages = {
6
- [MESSAGE_ID]: 'Invalid group length in numeric value.',
7
- };
8
-
9
- function addSeparator(value, {minimumDigits, groupLength}, fromLeft) {
10
- const {length} = value;
11
-
12
- if (length < minimumDigits) {
13
- return value;
14
- }
15
-
16
- const parts = [];
17
- if (fromLeft) {
18
- for (let start = 0; start < length; start += groupLength) {
19
- const end = Math.min(start + groupLength, length);
20
- parts.push(value.slice(start, end));
21
- }
22
- } else {
23
- for (let end = length; end > 0; end -= groupLength) {
24
- const start = Math.max(end - groupLength, 0);
25
- parts.unshift(value.slice(start, end));
26
- }
27
- }
28
-
29
- return parts.join('_');
30
- }
31
-
32
- function addSeparatorFromLeft(value, options) {
33
- return addSeparator(value, options, true);
34
- }
35
-
36
- function formatNumber(value, options) {
37
- const {integer, dot, fractional} = numeric.parseFloatNumber(value);
38
- return addSeparator(integer, options) + dot + addSeparatorFromLeft(fractional, options);
39
- }
40
-
41
- function format(value, {prefix, data}, options) {
42
- const formatOption = options[prefix.toLowerCase()];
43
-
44
- if (prefix) {
45
- return prefix + addSeparator(data, formatOption);
46
- }
47
-
48
- const {
49
- number,
50
- mark,
51
- sign,
52
- power,
53
- } = numeric.parseNumber(value);
54
-
55
- return formatNumber(number, formatOption) + mark + sign + addSeparator(power, options['']);
56
- }
57
-
58
- const defaultOptions = {
59
- binary: {minimumDigits: 0, groupLength: 4},
60
- octal: {minimumDigits: 0, groupLength: 4},
61
- hexadecimal: {minimumDigits: 0, groupLength: 2},
62
- number: {minimumDigits: 5, groupLength: 3},
63
- };
64
- const create = context => {
65
- const {
66
- onlyIfContainsSeparator,
67
- binary,
68
- octal,
69
- hexadecimal,
70
- number,
71
- } = {
72
- onlyIfContainsSeparator: false,
73
- ...context.options[0],
74
- };
75
-
76
- const options = {
77
- '0b': {
78
- onlyIfContainsSeparator,
79
- ...defaultOptions.binary,
80
- ...binary,
81
- },
82
- '0o': {
83
- onlyIfContainsSeparator,
84
- ...defaultOptions.octal,
85
- ...octal,
86
- },
87
- '0x': {
88
- onlyIfContainsSeparator,
89
- ...defaultOptions.hexadecimal,
90
- ...hexadecimal,
91
- },
92
- '': {
93
- onlyIfContainsSeparator,
94
- ...defaultOptions.number,
95
- ...number,
96
- },
97
- };
98
-
99
- return {
100
- Literal(node) {
101
- if (!numeric.isNumeric(node) || numeric.isLegacyOctal(node)) {
102
- return;
103
- }
104
-
105
- const {raw} = node;
106
- let number = raw;
107
- let suffix = '';
108
- if (isBigIntLiteral(node)) {
109
- number = raw.slice(0, -1);
110
- suffix = 'n';
111
- }
112
-
113
- const strippedNumber = number.replaceAll('_', '');
114
- const {prefix, data} = numeric.getPrefix(strippedNumber);
115
-
116
- const {onlyIfContainsSeparator} = options[prefix.toLowerCase()];
117
- if (onlyIfContainsSeparator && !raw.includes('_')) {
118
- return;
119
- }
120
-
121
- const formatted = format(strippedNumber, {prefix, data}, options) + suffix;
122
-
123
- if (raw !== formatted) {
124
- return {
125
- node,
126
- messageId: MESSAGE_ID,
127
- fix: fixer => fixer.replaceText(node, formatted),
128
- };
129
- }
130
- },
131
- };
132
- };
133
-
134
- const formatOptionsSchema = () => ({
135
- type: 'object',
136
- additionalProperties: false,
137
- properties: {
138
- onlyIfContainsSeparator: {
139
- type: 'boolean',
140
- },
141
- minimumDigits: {
142
- type: 'integer',
143
- minimum: 0,
144
- },
145
- groupLength: {
146
- type: 'integer',
147
- minimum: 1,
148
- },
149
- },
150
- });
151
-
152
- const schema = [{
153
- type: 'object',
154
- additionalProperties: false,
155
- properties: {
156
- ...Object.fromEntries(
157
- Object.entries(defaultOptions).map(([type]) => [type, formatOptionsSchema()]),
158
- ),
159
- onlyIfContainsSeparator: {
160
- type: 'boolean',
161
- },
162
- },
163
- }];
164
-
165
- /** @type {import('eslint').Rule.RuleModule} */
166
- const config = {
167
- create,
168
- meta: {
169
- type: 'suggestion',
170
- docs: {
171
- description: 'Enforce the style of numeric separators by correctly grouping digits.',
172
- recommended: 'unopinionated',
173
- },
174
- fixable: 'code',
175
- schema,
176
- defaultOptions: [
177
- {
178
- onlyIfContainsSeparator: false,
179
- binary: defaultOptions.binary,
180
- octal: defaultOptions.octal,
181
- hexadecimal: defaultOptions.hexadecimal,
182
- number: defaultOptions.number,
183
- },
184
- ],
185
- messages,
186
- },
187
- };
188
-
189
- export default config;
@@ -1,191 +0,0 @@
1
- import {isParenthesized} from '@eslint-community/eslint-utils';
2
- import eventTypes from './shared/dom-events.js';
3
- import {isUndefined, isNullLiteral, isStaticRequire} from './ast/index.js';
4
-
5
- const MESSAGE_ID = 'prefer-add-event-listener';
6
- const messages = {
7
- [MESSAGE_ID]: 'Prefer `{{replacement}}` over `{{method}}`.{{extra}}',
8
- };
9
- const extraMessages = {
10
- beforeunload: 'Use `event.preventDefault(); event.returnValue = \'foo\'` to trigger the prompt.',
11
- message: 'Note that there is difference between `SharedWorker#onmessage` and `SharedWorker#addEventListener(\'message\')`.',
12
- error: 'Note that there is difference between `{window,element}.onerror` and `{window,element}.addEventListener(\'error\')`.',
13
- };
14
-
15
- const getEventMethodName = memberExpression => memberExpression.property.name;
16
- const getEventTypeName = eventMethodName => eventMethodName.slice('on'.length);
17
-
18
- const fixCode = (fixer, sourceCode, assignmentNode, memberExpression) => {
19
- const eventTypeName = getEventTypeName(getEventMethodName(memberExpression));
20
- let eventObjectCode = sourceCode.getText(memberExpression.object);
21
- if (isParenthesized(memberExpression.object, sourceCode)) {
22
- eventObjectCode = `(${eventObjectCode})`;
23
- }
24
-
25
- let fncCode = sourceCode.getText(assignmentNode.right);
26
- if (isParenthesized(assignmentNode.right, sourceCode)) {
27
- fncCode = `(${fncCode})`;
28
- }
29
-
30
- const fixedCodeStatement = `${eventObjectCode}.addEventListener('${eventTypeName}', ${fncCode})`;
31
- return fixer.replaceText(assignmentNode, fixedCodeStatement);
32
- };
33
-
34
- const shouldFixBeforeUnload = (assignedExpression, nodeReturnsSomething) => {
35
- if (
36
- assignedExpression.type !== 'ArrowFunctionExpression'
37
- && assignedExpression.type !== 'FunctionExpression'
38
- ) {
39
- return false;
40
- }
41
-
42
- if (assignedExpression.body.type !== 'BlockStatement') {
43
- return false;
44
- }
45
-
46
- return !nodeReturnsSomething.get(assignedExpression);
47
- };
48
-
49
- const isClearing = node => isUndefined(node) || isNullLiteral(node);
50
-
51
- /** @param {import('eslint').Rule.RuleContext} context */
52
- const create = context => {
53
- const options = context.options[0] || {};
54
- const excludedPackages = new Set(options.excludedPackages || ['koa', 'sax']);
55
- let isDisabled;
56
-
57
- const nodeReturnsSomething = new WeakMap();
58
- let codePathInfo;
59
-
60
- return {
61
- onCodePathStart(codePath, node) {
62
- codePathInfo = {
63
- node,
64
- upper: codePathInfo,
65
- returnsSomething: false,
66
- };
67
- },
68
-
69
- onCodePathEnd() {
70
- nodeReturnsSomething.set(codePathInfo.node, codePathInfo.returnsSomething);
71
- codePathInfo = codePathInfo.upper;
72
- },
73
-
74
- CallExpression(node) {
75
- if (!isStaticRequire(node)) {
76
- return;
77
- }
78
-
79
- if (!isDisabled && excludedPackages.has(node.arguments[0].value)) {
80
- isDisabled = true;
81
- }
82
- },
83
-
84
- Literal(node) {
85
- if (node.parent.type === 'ImportDeclaration' && !isDisabled && excludedPackages.has(node.value)) {
86
- isDisabled = true;
87
- }
88
- },
89
-
90
- ReturnStatement(node) {
91
- codePathInfo.returnsSomething ||= Boolean(node.argument);
92
- },
93
-
94
- 'AssignmentExpression:exit'(node) {
95
- if (isDisabled) {
96
- return;
97
- }
98
-
99
- const {left: memberExpression, right: assignedExpression, operator} = node;
100
-
101
- if (
102
- memberExpression.type !== 'MemberExpression'
103
- || memberExpression.computed
104
- ) {
105
- return;
106
- }
107
-
108
- const eventMethodName = getEventMethodName(memberExpression);
109
-
110
- if (!eventMethodName || !eventMethodName.startsWith('on')) {
111
- return;
112
- }
113
-
114
- const eventTypeName = getEventTypeName(eventMethodName);
115
-
116
- if (!eventTypes.has(eventTypeName)) {
117
- return;
118
- }
119
-
120
- let replacement = 'addEventListener';
121
- let extra = '';
122
- let fix;
123
-
124
- if (isClearing(assignedExpression)) {
125
- replacement = 'removeEventListener';
126
- } else if (
127
- eventTypeName === 'beforeunload'
128
- && !shouldFixBeforeUnload(assignedExpression, nodeReturnsSomething)
129
- ) {
130
- extra = extraMessages.beforeunload;
131
- } else if (eventTypeName === 'message') {
132
- // Disable `onmessage` fix, see #537
133
- extra = extraMessages.message;
134
- } else if (eventTypeName === 'error') {
135
- // Disable `onerror` fix, see #1493
136
- extra = extraMessages.error;
137
- } else if (
138
- operator === '='
139
- && node.parent.type === 'ExpressionStatement'
140
- && node.parent.expression === node
141
- ) {
142
- fix = fixer => fixCode(fixer, context.sourceCode, node, memberExpression);
143
- }
144
-
145
- return {
146
- node: memberExpression.property,
147
- messageId: MESSAGE_ID,
148
- data: {
149
- replacement,
150
- method: eventMethodName,
151
- extra: extra ? ` ${extra}` : '',
152
- },
153
- fix,
154
- };
155
- },
156
- };
157
- };
158
-
159
- const schema = [
160
- {
161
- type: 'object',
162
- additionalProperties: false,
163
- properties: {
164
- excludedPackages: {
165
- type: 'array',
166
- items: {
167
- type: 'string',
168
- },
169
- uniqueItems: true,
170
- },
171
- },
172
- },
173
- ];
174
-
175
- /** @type {import('eslint').Rule.RuleModule} */
176
- const config = {
177
- create,
178
- meta: {
179
- type: 'suggestion',
180
- docs: {
181
- description: 'Prefer `.addEventListener()` and `.removeEventListener()` over `on`-functions.',
182
- recommended: 'unopinionated',
183
- },
184
- fixable: 'code',
185
- schema,
186
- defaultOptions: [{}],
187
- messages,
188
- },
189
- };
190
-
191
- export default config;