oxlint-plugin-eslint 1.52.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 (305) hide show
  1. package/LICENSE +22 -0
  2. package/README.md +36 -0
  3. package/common/ast-utils.cjs +5843 -0
  4. package/common/chunk.cjs +9 -0
  5. package/common/eslint-utils.cjs +1633 -0
  6. package/common/fix-tracker.cjs +89 -0
  7. package/common/ignore.cjs +123 -0
  8. package/common/keywords.cjs +15 -0
  9. package/common/regexpp.cjs +1720 -0
  10. package/common/regular-expressions.cjs +40 -0
  11. package/common/string-utils.cjs +39 -0
  12. package/index.js +7477 -0
  13. package/package.json +34 -0
  14. package/rules/accessor-pairs.cjs +233 -0
  15. package/rules/array-bracket-newline.cjs +172 -0
  16. package/rules/array-bracket-spacing.cjs +184 -0
  17. package/rules/array-callback-return.cjs +262 -0
  18. package/rules/array-element-newline.cjs +178 -0
  19. package/rules/arrow-body-style.cjs +135 -0
  20. package/rules/arrow-parens.cjs +130 -0
  21. package/rules/arrow-spacing.cjs +129 -0
  22. package/rules/block-scoped-var.cjs +101 -0
  23. package/rules/block-spacing.cjs +125 -0
  24. package/rules/brace-style.cjs +141 -0
  25. package/rules/callback-return.cjs +117 -0
  26. package/rules/camelcase.cjs +194 -0
  27. package/rules/capitalized-comments.cjs +168 -0
  28. package/rules/class-methods-use-this.cjs +155 -0
  29. package/rules/comma-dangle.cjs +274 -0
  30. package/rules/comma-spacing.cjs +111 -0
  31. package/rules/comma-style.cjs +180 -0
  32. package/rules/complexity.cjs +100 -0
  33. package/rules/computed-property-spacing.cjs +155 -0
  34. package/rules/consistent-return.cjs +113 -0
  35. package/rules/consistent-this.cjs +109 -0
  36. package/rules/constructor-super.cjs +207 -0
  37. package/rules/curly.cjs +173 -0
  38. package/rules/default-case-last.cjs +36 -0
  39. package/rules/default-case.cjs +50 -0
  40. package/rules/default-param-last.cjs +61 -0
  41. package/rules/dot-location.cjs +87 -0
  42. package/rules/dot-notation.cjs +77 -0
  43. package/rules/eol-last.cjs +91 -0
  44. package/rules/eqeqeq.cjs +127 -0
  45. package/rules/for-direction.cjs +94 -0
  46. package/rules/func-call-spacing.cjs +127 -0
  47. package/rules/func-name-matching.cjs +138 -0
  48. package/rules/func-names.cjs +121 -0
  49. package/rules/func-style.cjs +103 -0
  50. package/rules/function-call-argument-newline.cjs +109 -0
  51. package/rules/function-paren-newline.cjs +173 -0
  52. package/rules/generator-star-spacing.cjs +174 -0
  53. package/rules/getter-return.cjs +129 -0
  54. package/rules/global-require.cjs +84 -0
  55. package/rules/grouped-accessor-pairs.cjs +146 -0
  56. package/rules/guard-for-in.cjs +39 -0
  57. package/rules/handle-callback-err.cjs +86 -0
  58. package/rules/id-blacklist.cjs +135 -0
  59. package/rules/id-denylist.cjs +126 -0
  60. package/rules/id-length.cjs +119 -0
  61. package/rules/id-match.cjs +139 -0
  62. package/rules/implicit-arrow-linebreak.cjs +76 -0
  63. package/rules/indent-legacy.cjs +520 -0
  64. package/rules/indent.cjs +842 -0
  65. package/rules/init-declarations.cjs +88 -0
  66. package/rules/jsx-quotes.cjs +84 -0
  67. package/rules/key-spacing.cjs +399 -0
  68. package/rules/keyword-spacing.cjs +464 -0
  69. package/rules/line-comment-position.cjs +75 -0
  70. package/rules/linebreak-style.cjs +89 -0
  71. package/rules/lines-around-comment.cjs +290 -0
  72. package/rules/lines-around-directive.cjs +129 -0
  73. package/rules/lines-between-class-members.cjs +212 -0
  74. package/rules/logical-assignment-operators.cjs +305 -0
  75. package/rules/max-classes-per-file.cjs +61 -0
  76. package/rules/max-depth.cjs +117 -0
  77. package/rules/max-len.cjs +256 -0
  78. package/rules/max-lines-per-function.cjs +116 -0
  79. package/rules/max-lines.cjs +109 -0
  80. package/rules/max-nested-callbacks.cjs +78 -0
  81. package/rules/max-params.cjs +78 -0
  82. package/rules/max-statements-per-line.cjs +147 -0
  83. package/rules/max-statements.cjs +119 -0
  84. package/rules/multiline-comment-style.cjs +319 -0
  85. package/rules/multiline-ternary.cjs +106 -0
  86. package/rules/new-cap.cjs +139 -0
  87. package/rules/new-parens.cjs +70 -0
  88. package/rules/newline-after-var.cjs +159 -0
  89. package/rules/newline-before-return.cjs +128 -0
  90. package/rules/newline-per-chained-call.cjs +100 -0
  91. package/rules/no-alert.cjs +84 -0
  92. package/rules/no-array-constructor.cjs +91 -0
  93. package/rules/no-async-promise-executor.cjs +33 -0
  94. package/rules/no-await-in-loop.cjs +75 -0
  95. package/rules/no-bitwise.cjs +106 -0
  96. package/rules/no-buffer-constructor.cjs +51 -0
  97. package/rules/no-caller.cjs +34 -0
  98. package/rules/no-case-declarations.cjs +56 -0
  99. package/rules/no-catch-shadow.cjs +57 -0
  100. package/rules/no-class-assign.cjs +55 -0
  101. package/rules/no-compare-neg-zero.cjs +52 -0
  102. package/rules/no-cond-assign.cjs +104 -0
  103. package/rules/no-confusing-arrow.cjs +87 -0
  104. package/rules/no-console.cjs +138 -0
  105. package/rules/no-const-assign.cjs +50 -0
  106. package/rules/no-constant-binary-expression.cjs +284 -0
  107. package/rules/no-constant-condition.cjs +119 -0
  108. package/rules/no-constructor-return.cjs +43 -0
  109. package/rules/no-continue.cjs +33 -0
  110. package/rules/no-control-regex.cjs +74 -0
  111. package/rules/no-debugger.cjs +33 -0
  112. package/rules/no-delete-var.cjs +32 -0
  113. package/rules/no-div-regex.cjs +39 -0
  114. package/rules/no-dupe-args.cjs +61 -0
  115. package/rules/no-dupe-class-members.cjs +77 -0
  116. package/rules/no-dupe-else-if.cjs +74 -0
  117. package/rules/no-dupe-keys.cjs +88 -0
  118. package/rules/no-duplicate-case.cjs +49 -0
  119. package/rules/no-duplicate-imports.cjs +166 -0
  120. package/rules/no-else-return.cjs +182 -0
  121. package/rules/no-empty-character-class.cjs +47 -0
  122. package/rules/no-empty-function.cjs +141 -0
  123. package/rules/no-empty-pattern.cjs +50 -0
  124. package/rules/no-empty-static-block.cjs +50 -0
  125. package/rules/no-empty.cjs +78 -0
  126. package/rules/no-eq-null.cjs +34 -0
  127. package/rules/no-eval.cjs +165 -0
  128. package/rules/no-ex-assign.cjs +45 -0
  129. package/rules/no-extend-native.cjs +103 -0
  130. package/rules/no-extra-bind.cjs +127 -0
  131. package/rules/no-extra-boolean-cast.cjs +159 -0
  132. package/rules/no-extra-label.cjs +116 -0
  133. package/rules/no-extra-parens.cjs +665 -0
  134. package/rules/no-extra-semi.cjs +103 -0
  135. package/rules/no-fallthrough.cjs +136 -0
  136. package/rules/no-floating-decimal.cjs +66 -0
  137. package/rules/no-func-assign.cjs +63 -0
  138. package/rules/no-global-assign.cjs +62 -0
  139. package/rules/no-implicit-coercion.cjs +219 -0
  140. package/rules/no-implicit-globals.cjs +77 -0
  141. package/rules/no-implied-eval.cjs +87 -0
  142. package/rules/no-import-assign.cjs +123 -0
  143. package/rules/no-inline-comments.cjs +57 -0
  144. package/rules/no-inner-declarations.cjs +82 -0
  145. package/rules/no-invalid-regexp.cjs +130 -0
  146. package/rules/no-invalid-this.cjs +90 -0
  147. package/rules/no-irregular-whitespace.cjs +157 -0
  148. package/rules/no-iterator.cjs +34 -0
  149. package/rules/no-label-var.cjs +46 -0
  150. package/rules/no-labels.cjs +106 -0
  151. package/rules/no-lone-blocks.cjs +75 -0
  152. package/rules/no-lonely-if.cjs +42 -0
  153. package/rules/no-loop-func.cjs +143 -0
  154. package/rules/no-loss-of-precision.cjs +160 -0
  155. package/rules/no-magic-numbers.cjs +222 -0
  156. package/rules/no-misleading-character-class.cjs +500 -0
  157. package/rules/no-mixed-operators.cjs +197 -0
  158. package/rules/no-mixed-requires.cjs +117 -0
  159. package/rules/no-mixed-spaces-and-tabs.cjs +87 -0
  160. package/rules/no-multi-assign.cjs +38 -0
  161. package/rules/no-multi-spaces.cjs +95 -0
  162. package/rules/no-multi-str.cjs +44 -0
  163. package/rules/no-multiple-empty-lines.cjs +112 -0
  164. package/rules/no-native-reassign.cjs +72 -0
  165. package/rules/no-negated-condition.cjs +77 -0
  166. package/rules/no-negated-in-lhs.cjs +43 -0
  167. package/rules/no-nested-ternary.cjs +33 -0
  168. package/rules/no-new-func.cjs +50 -0
  169. package/rules/no-new-native-nonconstructor.cjs +42 -0
  170. package/rules/no-new-object.cjs +47 -0
  171. package/rules/no-new-require.cjs +50 -0
  172. package/rules/no-new-symbol.cjs +48 -0
  173. package/rules/no-new-wrappers.cjs +44 -0
  174. package/rules/no-new.cjs +33 -0
  175. package/rules/no-nonoctal-decimal-escape.cjs +80 -0
  176. package/rules/no-obj-calls.cjs +64 -0
  177. package/rules/no-object-constructor.cjs +69 -0
  178. package/rules/no-octal-escape.cjs +35 -0
  179. package/rules/no-octal.cjs +32 -0
  180. package/rules/no-param-reassign.cjs +135 -0
  181. package/rules/no-path-concat.cjs +52 -0
  182. package/rules/no-plusplus.cjs +64 -0
  183. package/rules/no-process-env.cjs +51 -0
  184. package/rules/no-process-exit.cjs +50 -0
  185. package/rules/no-promise-executor-return.cjs +131 -0
  186. package/rules/no-proto.cjs +34 -0
  187. package/rules/no-prototype-builtins.cjs +85 -0
  188. package/rules/no-redeclare.cjs +103 -0
  189. package/rules/no-regex-spaces.cjs +115 -0
  190. package/rules/no-restricted-exports.cjs +117 -0
  191. package/rules/no-restricted-globals.cjs +147 -0
  192. package/rules/no-restricted-imports.cjs +421 -0
  193. package/rules/no-restricted-modules.cjs +144 -0
  194. package/rules/no-restricted-properties.cjs +123 -0
  195. package/rules/no-restricted-syntax.cjs +49 -0
  196. package/rules/no-return-assign.cjs +45 -0
  197. package/rules/no-return-await.cjs +88 -0
  198. package/rules/no-script-url.cjs +49 -0
  199. package/rules/no-self-assign.cjs +88 -0
  200. package/rules/no-self-compare.cjs +53 -0
  201. package/rules/no-sequences.cjs +81 -0
  202. package/rules/no-setter-return.cjs +110 -0
  203. package/rules/no-shadow-restricted-names.cjs +60 -0
  204. package/rules/no-shadow.cjs +302 -0
  205. package/rules/no-spaced-func.cjs +69 -0
  206. package/rules/no-sparse-arrays.cjs +40 -0
  207. package/rules/no-sync.cjs +58 -0
  208. package/rules/no-tabs.cjs +73 -0
  209. package/rules/no-template-curly-in-string.cjs +33 -0
  210. package/rules/no-ternary.cjs +33 -0
  211. package/rules/no-this-before-super.cjs +177 -0
  212. package/rules/no-throw-literal.cjs +40 -0
  213. package/rules/no-trailing-spaces.cjs +123 -0
  214. package/rules/no-unassigned-vars.cjs +54 -0
  215. package/rules/no-undef-init.cjs +46 -0
  216. package/rules/no-undef.cjs +51 -0
  217. package/rules/no-undefined.cjs +58 -0
  218. package/rules/no-underscore-dangle.cjs +211 -0
  219. package/rules/no-unexpected-multiline.cjs +76 -0
  220. package/rules/no-unmodified-loop-condition.cjs +849 -0
  221. package/rules/no-unneeded-ternary.cjs +112 -0
  222. package/rules/no-unreachable-loop.cjs +128 -0
  223. package/rules/no-unreachable.cjs +195 -0
  224. package/rules/no-unsafe-finally.cjs +67 -0
  225. package/rules/no-unsafe-negation.cjs +86 -0
  226. package/rules/no-unsafe-optional-chaining.cjs +164 -0
  227. package/rules/no-unused-expressions.cjs +163 -0
  228. package/rules/no-unused-labels.cjs +97 -0
  229. package/rules/no-unused-private-class-members.cjs +69 -0
  230. package/rules/no-unused-vars.cjs +639 -0
  231. package/rules/no-use-before-define.cjs +245 -0
  232. package/rules/no-useless-assignment.cjs +250 -0
  233. package/rules/no-useless-backreference.cjs +137 -0
  234. package/rules/no-useless-call.cjs +57 -0
  235. package/rules/no-useless-catch.cjs +38 -0
  236. package/rules/no-useless-computed-key.cjs +106 -0
  237. package/rules/no-useless-concat.cjs +78 -0
  238. package/rules/no-useless-constructor.cjs +152 -0
  239. package/rules/no-useless-escape.cjs +164 -0
  240. package/rules/no-useless-rename.cjs +94 -0
  241. package/rules/no-useless-return.cjs +229 -0
  242. package/rules/no-var.cjs +235 -0
  243. package/rules/no-void.cjs +39 -0
  244. package/rules/no-warning-comments.cjs +112 -0
  245. package/rules/no-whitespace-before-property.cjs +72 -0
  246. package/rules/no-with.cjs +32 -0
  247. package/rules/nonblock-statement-body-position.cjs +107 -0
  248. package/rules/object-curly-newline.cjs +194 -0
  249. package/rules/object-curly-spacing.cjs +225 -0
  250. package/rules/object-property-newline.cjs +81 -0
  251. package/rules/object-shorthand.cjs +284 -0
  252. package/rules/one-var-declaration-per-line.cjs +75 -0
  253. package/rules/one-var.cjs +378 -0
  254. package/rules/operator-assignment.cjs +146 -0
  255. package/rules/operator-linebreak.cjs +150 -0
  256. package/rules/padded-blocks.cjs +192 -0
  257. package/rules/padding-line-between-statements.cjs +377 -0
  258. package/rules/prefer-arrow-callback.cjs +185 -0
  259. package/rules/prefer-const.cjs +240 -0
  260. package/rules/prefer-destructuring.cjs +188 -0
  261. package/rules/prefer-exponentiation-operator.cjs +100 -0
  262. package/rules/prefer-named-capture-group.cjs +111 -0
  263. package/rules/prefer-numeric-literals.cjs +75 -0
  264. package/rules/prefer-object-has-own.cjs +54 -0
  265. package/rules/prefer-object-spread.cjs +170 -0
  266. package/rules/prefer-promise-reject-errors.cjs +62 -0
  267. package/rules/prefer-reflect.cjs +100 -0
  268. package/rules/prefer-regex-literals.cjs +256 -0
  269. package/rules/prefer-rest-params.cjs +80 -0
  270. package/rules/prefer-spread.cjs +57 -0
  271. package/rules/prefer-template.cjs +147 -0
  272. package/rules/preserve-caught-error.cjs +196 -0
  273. package/rules/quote-props.cjs +224 -0
  274. package/rules/quotes.cjs +187 -0
  275. package/rules/radix.cjs +124 -0
  276. package/rules/require-atomic-updates.cjs +197 -0
  277. package/rules/require-await.cjs +90 -0
  278. package/rules/require-unicode-regexp.cjs +101 -0
  279. package/rules/require-yield.cjs +56 -0
  280. package/rules/rest-spread-spacing.cjs +99 -0
  281. package/rules/semi-spacing.cjs +215 -0
  282. package/rules/semi-style.cjs +116 -0
  283. package/rules/semi.cjs +239 -0
  284. package/rules/sort-imports.cjs +140 -0
  285. package/rules/sort-keys.cjs +165 -0
  286. package/rules/sort-vars.cjs +50 -0
  287. package/rules/space-before-blocks.cjs +132 -0
  288. package/rules/space-before-function-paren.cjs +126 -0
  289. package/rules/space-in-parens.cjs +175 -0
  290. package/rules/space-infix-ops.cjs +133 -0
  291. package/rules/space-unary-ops.cjs +237 -0
  292. package/rules/spaced-comment.cjs +233 -0
  293. package/rules/strict.cjs +206 -0
  294. package/rules/switch-colon-spacing.cjs +114 -0
  295. package/rules/symbol-description.cjs +49 -0
  296. package/rules/template-curly-spacing.cjs +112 -0
  297. package/rules/template-tag-spacing.cjs +82 -0
  298. package/rules/unicode-bom.cjs +52 -0
  299. package/rules/use-isnan.cjs +144 -0
  300. package/rules/valid-typeof.cjs +104 -0
  301. package/rules/vars-on-top.cjs +94 -0
  302. package/rules/wrap-iife.cjs +131 -0
  303. package/rules/wrap-regex.cjs +57 -0
  304. package/rules/yield-star-spacing.cjs +115 -0
  305. package/rules/yoda.cjs +185 -0
@@ -0,0 +1,57 @@
1
+ const require_chunk = require("../common/chunk.cjs"), require_ast_utils$1 = require("../common/ast-utils.cjs");
2
+ //#region ../../node_modules/.pnpm/eslint@9.39.3_jiti@2.6.1/node_modules/eslint/lib/rules/no-catch-shadow.js
3
+ /**
4
+ * @fileoverview Rule to flag variable leak in CatchClauses in IE 8 and earlier
5
+ * @author Ian Christian Myers
6
+ * @deprecated in ESLint v5.1.0
7
+ */
8
+ var require_no_catch_shadow = /* @__PURE__ */ require_chunk.t(((exports, module) => {
9
+ let astUtils = require_ast_utils$1.t();
10
+ /** @type {import('../types').Rule.RuleModule} */
11
+ module.exports = {
12
+ meta: {
13
+ type: "suggestion",
14
+ docs: {
15
+ description: "Disallow `catch` clause parameters from shadowing variables in the outer scope",
16
+ recommended: !1,
17
+ url: "https://eslint.org/docs/latest/rules/no-catch-shadow"
18
+ },
19
+ deprecated: {
20
+ message: "This rule was renamed.",
21
+ url: "https://eslint.org/blog/2018/07/eslint-v5.1.0-released/",
22
+ deprecatedSince: "5.1.0",
23
+ availableUntil: "11.0.0",
24
+ replacedBy: [{ rule: {
25
+ name: "no-shadow",
26
+ url: "https://eslint.org/docs/rules/no-shadow"
27
+ } }]
28
+ },
29
+ schema: [],
30
+ messages: { mutable: "Value of '{{name}}' may be overwritten in IE 8 and earlier." }
31
+ },
32
+ create(context) {
33
+ let sourceCode = context.sourceCode;
34
+ /**
35
+ * Check if the parameters are been shadowed
36
+ * @param {Object} scope current scope
37
+ * @param {string} name parameter name
38
+ * @returns {boolean} True is its been shadowed
39
+ */
40
+ function paramIsShadowing(scope, name) {
41
+ return astUtils.getVariableByName(scope, name) !== null;
42
+ }
43
+ return { "CatchClause[param!=null]"(node) {
44
+ let scope = sourceCode.getScope(node);
45
+ scope.block === node && (scope = scope.upper), paramIsShadowing(scope, node.param.name) && context.report({
46
+ node,
47
+ messageId: "mutable",
48
+ data: { name: node.param.name }
49
+ });
50
+ } };
51
+ }
52
+ };
53
+ }));
54
+ //#endregion
55
+ //#region src-js/generated/plugin-eslint/rules/no-catch-shadow.cjs
56
+ module.exports = require_no_catch_shadow().create;
57
+ //#endregion
@@ -0,0 +1,55 @@
1
+ const require_chunk = require("../common/chunk.cjs"), require_ast_utils$1 = require("../common/ast-utils.cjs");
2
+ //#region ../../node_modules/.pnpm/eslint@9.39.3_jiti@2.6.1/node_modules/eslint/lib/rules/no-class-assign.js
3
+ /**
4
+ * @fileoverview A rule to disallow modifying variables of class declarations
5
+ * @author Toru Nagashima
6
+ */
7
+ var require_no_class_assign = /* @__PURE__ */ require_chunk.t(((exports, module) => {
8
+ let astUtils = require_ast_utils$1.t();
9
+ /** @type {import('../types').Rule.RuleModule} */
10
+ module.exports = {
11
+ meta: {
12
+ type: "problem",
13
+ docs: {
14
+ description: "Disallow reassigning class members",
15
+ recommended: !0,
16
+ url: "https://eslint.org/docs/latest/rules/no-class-assign"
17
+ },
18
+ schema: [],
19
+ messages: { class: "'{{name}}' is a class." }
20
+ },
21
+ create(context) {
22
+ let sourceCode = context.sourceCode;
23
+ /**
24
+ * Finds and reports references that are non initializer and writable.
25
+ * @param {Variable} variable A variable to check.
26
+ * @returns {void}
27
+ */
28
+ function checkVariable(variable) {
29
+ astUtils.getModifyingReferences(variable.references).forEach((reference) => {
30
+ context.report({
31
+ node: reference.identifier,
32
+ messageId: "class",
33
+ data: { name: reference.identifier.name }
34
+ });
35
+ });
36
+ }
37
+ /**
38
+ * Finds and reports references that are non initializer and writable.
39
+ * @param {ASTNode} node A ClassDeclaration/ClassExpression node to check.
40
+ * @returns {void}
41
+ */
42
+ function checkForClass(node) {
43
+ sourceCode.getDeclaredVariables(node).forEach(checkVariable);
44
+ }
45
+ return {
46
+ ClassDeclaration: checkForClass,
47
+ ClassExpression: checkForClass
48
+ };
49
+ }
50
+ };
51
+ }));
52
+ //#endregion
53
+ //#region src-js/generated/plugin-eslint/rules/no-class-assign.cjs
54
+ module.exports = require_no_class_assign().create;
55
+ //#endregion
@@ -0,0 +1,52 @@
1
+ //#region ../../node_modules/.pnpm/eslint@9.39.3_jiti@2.6.1/node_modules/eslint/lib/rules/no-compare-neg-zero.js
2
+ /**
3
+ * @fileoverview The rule should warn against code that tries to compare against -0.
4
+ * @author Aladdin-ADD <hh_2013@foxmail.com>
5
+ */
6
+ var require_no_compare_neg_zero = /* @__PURE__ */ require("../common/chunk.cjs").t(((exports, module) => {
7
+ /** @type {import('../types').Rule.RuleModule} */
8
+ module.exports = {
9
+ meta: {
10
+ type: "problem",
11
+ docs: {
12
+ description: "Disallow comparing against `-0`",
13
+ recommended: !0,
14
+ url: "https://eslint.org/docs/latest/rules/no-compare-neg-zero"
15
+ },
16
+ fixable: null,
17
+ schema: [],
18
+ messages: { unexpected: "Do not use the '{{operator}}' operator to compare against -0." }
19
+ },
20
+ create(context) {
21
+ /**
22
+ * Checks a given node is -0
23
+ * @param {ASTNode} node A node to check.
24
+ * @returns {boolean} `true` if the node is -0.
25
+ */
26
+ function isNegZero(node) {
27
+ return node.type === "UnaryExpression" && node.operator === "-" && node.argument.type === "Literal" && node.argument.value === 0;
28
+ }
29
+ let OPERATORS_TO_CHECK = new Set([
30
+ ">",
31
+ ">=",
32
+ "<",
33
+ "<=",
34
+ "==",
35
+ "===",
36
+ "!=",
37
+ "!=="
38
+ ]);
39
+ return { BinaryExpression(node) {
40
+ OPERATORS_TO_CHECK.has(node.operator) && (isNegZero(node.left) || isNegZero(node.right)) && context.report({
41
+ node,
42
+ messageId: "unexpected",
43
+ data: { operator: node.operator }
44
+ });
45
+ } };
46
+ }
47
+ };
48
+ }));
49
+ //#endregion
50
+ //#region src-js/generated/plugin-eslint/rules/no-compare-neg-zero.cjs
51
+ module.exports = require_no_compare_neg_zero().create;
52
+ //#endregion
@@ -0,0 +1,104 @@
1
+ const require_chunk = require("../common/chunk.cjs"), require_ast_utils$1 = require("../common/ast-utils.cjs");
2
+ //#region ../../node_modules/.pnpm/eslint@9.39.3_jiti@2.6.1/node_modules/eslint/lib/rules/no-cond-assign.js
3
+ /**
4
+ * @fileoverview Rule to flag assignment in a conditional statement's test expression
5
+ * @author Stephen Murray <spmurrayzzz>
6
+ */
7
+ var require_no_cond_assign = /* @__PURE__ */ require_chunk.t(((exports, module) => {
8
+ let astUtils = require_ast_utils$1.t(), TEST_CONDITION_PARENT_TYPES = new Set([
9
+ "IfStatement",
10
+ "WhileStatement",
11
+ "DoWhileStatement",
12
+ "ForStatement",
13
+ "ConditionalExpression"
14
+ ]), NODE_DESCRIPTIONS = {
15
+ DoWhileStatement: "a 'do...while' statement",
16
+ ForStatement: "a 'for' statement",
17
+ IfStatement: "an 'if' statement",
18
+ WhileStatement: "a 'while' statement"
19
+ };
20
+ /** @type {import('../types').Rule.RuleModule} */
21
+ module.exports = {
22
+ meta: {
23
+ type: "problem",
24
+ defaultOptions: ["except-parens"],
25
+ docs: {
26
+ description: "Disallow assignment operators in conditional expressions",
27
+ recommended: !0,
28
+ url: "https://eslint.org/docs/latest/rules/no-cond-assign"
29
+ },
30
+ schema: [{ enum: ["except-parens", "always"] }],
31
+ messages: {
32
+ unexpected: "Unexpected assignment within {{type}}.",
33
+ missing: "Expected a conditional expression and instead saw an assignment."
34
+ }
35
+ },
36
+ create(context) {
37
+ let [prohibitAssign] = context.options, sourceCode = context.sourceCode;
38
+ /**
39
+ * Check whether an AST node is the test expression for a conditional statement.
40
+ * @param {!Object} node The node to test.
41
+ * @returns {boolean} `true` if the node is the text expression for a conditional statement; otherwise, `false`.
42
+ */
43
+ function isConditionalTestExpression(node) {
44
+ return node.parent && TEST_CONDITION_PARENT_TYPES.has(node.parent.type) && node === node.parent.test;
45
+ }
46
+ /**
47
+ * Given an AST node, perform a bottom-up search for the first ancestor that represents a conditional statement.
48
+ * @param {!Object} node The node to use at the start of the search.
49
+ * @returns {?Object} The closest ancestor node that represents a conditional statement.
50
+ */
51
+ function findConditionalAncestor(node) {
52
+ let currentAncestor = node;
53
+ do
54
+ if (isConditionalTestExpression(currentAncestor)) return currentAncestor.parent;
55
+ while ((currentAncestor = currentAncestor.parent) && !astUtils.isFunction(currentAncestor));
56
+ return null;
57
+ }
58
+ /**
59
+ * Check whether the code represented by an AST node is enclosed in two sets of parentheses.
60
+ * @param {!Object} node The node to test.
61
+ * @returns {boolean} `true` if the code is enclosed in two sets of parentheses; otherwise, `false`.
62
+ */
63
+ function isParenthesisedTwice(node) {
64
+ let previousToken = sourceCode.getTokenBefore(node, 1), nextToken = sourceCode.getTokenAfter(node, 1);
65
+ return astUtils.isParenthesised(sourceCode, node) && previousToken && astUtils.isOpeningParenToken(previousToken) && previousToken.range[1] <= node.range[0] && astUtils.isClosingParenToken(nextToken) && nextToken.range[0] >= node.range[1];
66
+ }
67
+ /**
68
+ * Check a conditional statement's test expression for top-level assignments that are not enclosed in parentheses.
69
+ * @param {!Object} node The node for the conditional statement.
70
+ * @returns {void}
71
+ */
72
+ function testForAssign(node) {
73
+ node.test && node.test.type === "AssignmentExpression" && (node.type === "ForStatement" ? !astUtils.isParenthesised(sourceCode, node.test) : !isParenthesisedTwice(node.test)) && context.report({
74
+ node: node.test,
75
+ messageId: "missing"
76
+ });
77
+ }
78
+ /**
79
+ * Check whether an assignment expression is descended from a conditional statement's test expression.
80
+ * @param {!Object} node The node for the assignment expression.
81
+ * @returns {void}
82
+ */
83
+ function testForConditionalAncestor(node) {
84
+ let ancestor = findConditionalAncestor(node);
85
+ ancestor && context.report({
86
+ node,
87
+ messageId: "unexpected",
88
+ data: { type: NODE_DESCRIPTIONS[ancestor.type] || ancestor.type }
89
+ });
90
+ }
91
+ return prohibitAssign === "always" ? { AssignmentExpression: testForConditionalAncestor } : {
92
+ DoWhileStatement: testForAssign,
93
+ ForStatement: testForAssign,
94
+ IfStatement: testForAssign,
95
+ WhileStatement: testForAssign,
96
+ ConditionalExpression: testForAssign
97
+ };
98
+ }
99
+ };
100
+ }));
101
+ //#endregion
102
+ //#region src-js/generated/plugin-eslint/rules/no-cond-assign.cjs
103
+ module.exports = require_no_cond_assign().create;
104
+ //#endregion
@@ -0,0 +1,87 @@
1
+ const require_chunk = require("../common/chunk.cjs"), require_ast_utils$1 = require("../common/ast-utils.cjs");
2
+ //#region ../../node_modules/.pnpm/eslint@9.39.3_jiti@2.6.1/node_modules/eslint/lib/rules/no-confusing-arrow.js
3
+ /**
4
+ * @fileoverview A rule to warn against using arrow functions when they could be
5
+ * confused with comparisons
6
+ * @author Jxck <https://github.com/Jxck>
7
+ * @deprecated in ESLint v8.53.0
8
+ */
9
+ var require_no_confusing_arrow = /* @__PURE__ */ require_chunk.t(((exports, module) => {
10
+ let astUtils = require_ast_utils$1.t();
11
+ /**
12
+ * Checks whether or not a node is a conditional expression.
13
+ * @param {ASTNode} node node to test
14
+ * @returns {boolean} `true` if the node is a conditional expression.
15
+ */
16
+ function isConditional(node) {
17
+ return node && node.type === "ConditionalExpression";
18
+ }
19
+ /** @type {import('../types').Rule.RuleModule} */
20
+ module.exports = {
21
+ meta: {
22
+ deprecated: {
23
+ message: "Formatting rules are being moved out of ESLint core.",
24
+ url: "https://eslint.org/blog/2023/10/deprecating-formatting-rules/",
25
+ deprecatedSince: "8.53.0",
26
+ availableUntil: "11.0.0",
27
+ replacedBy: [{
28
+ message: "ESLint Stylistic now maintains deprecated stylistic core rules.",
29
+ url: "https://eslint.style/guide/migration",
30
+ plugin: {
31
+ name: "@stylistic/eslint-plugin",
32
+ url: "https://eslint.style"
33
+ },
34
+ rule: {
35
+ name: "no-confusing-arrow",
36
+ url: "https://eslint.style/rules/no-confusing-arrow"
37
+ }
38
+ }]
39
+ },
40
+ type: "suggestion",
41
+ docs: {
42
+ description: "Disallow arrow functions where they could be confused with comparisons",
43
+ recommended: !1,
44
+ url: "https://eslint.org/docs/latest/rules/no-confusing-arrow"
45
+ },
46
+ fixable: "code",
47
+ schema: [{
48
+ type: "object",
49
+ properties: {
50
+ allowParens: {
51
+ type: "boolean",
52
+ default: !0
53
+ },
54
+ onlyOneSimpleParam: {
55
+ type: "boolean",
56
+ default: !1
57
+ }
58
+ },
59
+ additionalProperties: !1
60
+ }],
61
+ messages: { confusing: "Arrow function used ambiguously with a conditional expression." }
62
+ },
63
+ create(context) {
64
+ let config = context.options[0] || {}, allowParens = config.allowParens || config.allowParens === void 0, onlyOneSimpleParam = config.onlyOneSimpleParam, sourceCode = context.sourceCode;
65
+ /**
66
+ * Reports if an arrow function contains an ambiguous conditional.
67
+ * @param {ASTNode} node A node to check and report.
68
+ * @returns {void}
69
+ */
70
+ function checkArrowFunc(node) {
71
+ let body = node.body;
72
+ isConditional(body) && !(allowParens && astUtils.isParenthesised(sourceCode, body)) && !(onlyOneSimpleParam && !(node.params.length === 1 && node.params[0].type === "Identifier")) && context.report({
73
+ node,
74
+ messageId: "confusing",
75
+ fix(fixer) {
76
+ return allowParens && fixer.replaceText(node.body, `(${sourceCode.getText(node.body)})`);
77
+ }
78
+ });
79
+ }
80
+ return { ArrowFunctionExpression: checkArrowFunc };
81
+ }
82
+ };
83
+ }));
84
+ //#endregion
85
+ //#region src-js/generated/plugin-eslint/rules/no-confusing-arrow.cjs
86
+ module.exports = require_no_confusing_arrow().create;
87
+ //#endregion
@@ -0,0 +1,138 @@
1
+ const require_chunk = require("../common/chunk.cjs"), require_ast_utils$1 = require("../common/ast-utils.cjs");
2
+ //#region ../../node_modules/.pnpm/eslint@9.39.3_jiti@2.6.1/node_modules/eslint/lib/rules/no-console.js
3
+ /**
4
+ * @fileoverview Rule to flag use of console object
5
+ * @author Nicholas C. Zakas
6
+ */
7
+ var require_no_console = /* @__PURE__ */ require_chunk.t(((exports, module) => {
8
+ let astUtils = require_ast_utils$1.t();
9
+ /** @type {import('../types').Rule.RuleModule} */
10
+ module.exports = {
11
+ meta: {
12
+ type: "suggestion",
13
+ defaultOptions: [{}],
14
+ docs: {
15
+ description: "Disallow the use of `console`",
16
+ recommended: !1,
17
+ url: "https://eslint.org/docs/latest/rules/no-console"
18
+ },
19
+ schema: [{
20
+ type: "object",
21
+ properties: { allow: {
22
+ type: "array",
23
+ items: { type: "string" },
24
+ minItems: 1,
25
+ uniqueItems: !0
26
+ } },
27
+ additionalProperties: !1
28
+ }],
29
+ hasSuggestions: !0,
30
+ messages: {
31
+ unexpected: "Unexpected console statement.",
32
+ limited: "Unexpected console statement. Only these console methods are allowed: {{ allowed }}.",
33
+ removeConsole: "Remove the console.{{ propertyName }}().",
34
+ removeMethodCall: "Remove the console method call."
35
+ }
36
+ },
37
+ create(context) {
38
+ let [{ allow: allowed = [] }] = context.options, sourceCode = context.sourceCode;
39
+ /**
40
+ * Checks whether the given reference is 'console' or not.
41
+ * @param {eslint-scope.Reference} reference The reference to check.
42
+ * @returns {boolean} `true` if the reference is 'console'.
43
+ */
44
+ function isConsole(reference) {
45
+ let id = reference.identifier;
46
+ return id && id.name === "console";
47
+ }
48
+ /**
49
+ * Checks whether the property name of the given MemberExpression node
50
+ * is allowed by options or not.
51
+ * @param {ASTNode} node The MemberExpression node to check.
52
+ * @returns {boolean} `true` if the property name of the node is allowed.
53
+ */
54
+ function isAllowed(node) {
55
+ let propertyName = astUtils.getStaticPropertyName(node);
56
+ return propertyName && allowed.includes(propertyName);
57
+ }
58
+ /**
59
+ * Checks whether the given reference is a member access which is not
60
+ * allowed by options or not.
61
+ * @param {eslint-scope.Reference} reference The reference to check.
62
+ * @returns {boolean} `true` if the reference is a member access which
63
+ * is not allowed by options.
64
+ */
65
+ function isMemberAccessExceptAllowed(reference) {
66
+ let node = reference.identifier, parent = node.parent;
67
+ return parent.type === "MemberExpression" && parent.object === node && !isAllowed(parent);
68
+ }
69
+ /**
70
+ * Checks if removing the ExpressionStatement node will cause ASI to
71
+ * break.
72
+ * eg.
73
+ * foo()
74
+ * console.log();
75
+ * [1, 2, 3].forEach(a => doSomething(a))
76
+ *
77
+ * Removing the console.log(); statement should leave two statements, but
78
+ * here the two statements will become one because [ causes continuation after
79
+ * foo().
80
+ * @param {ASTNode} node The ExpressionStatement node to check.
81
+ * @returns {boolean} `true` if ASI will break after removing the ExpressionStatement
82
+ * node.
83
+ */
84
+ function maybeAsiHazard(node) {
85
+ let SAFE_TOKENS_BEFORE = /^[:;{]$/u, UNSAFE_CHARS_AFTER = /^[-[(/+`]/u, tokenBefore = sourceCode.getTokenBefore(node), tokenAfter = sourceCode.getTokenAfter(node);
86
+ return !!tokenAfter && UNSAFE_CHARS_AFTER.test(tokenAfter.value) && tokenAfter.value !== "++" && tokenAfter.value !== "--" && !!tokenBefore && !SAFE_TOKENS_BEFORE.test(tokenBefore.value);
87
+ }
88
+ /**
89
+ * Checks if the MemberExpression node's parent.parent.parent is a
90
+ * Program, BlockStatement, StaticBlock, or SwitchCase node. This check
91
+ * is necessary to avoid providing a suggestion that might cause a syntax error.
92
+ *
93
+ * eg. if (a) console.log(b), removing console.log() here will lead to a
94
+ * syntax error.
95
+ * if (a) { console.log(b) }, removing console.log() here is acceptable.
96
+ *
97
+ * Additionally, it checks if the callee of the CallExpression node is
98
+ * the node itself.
99
+ *
100
+ * eg. foo(console.log), cannot provide a suggestion here.
101
+ * @param {ASTNode} node The MemberExpression node to check.
102
+ * @returns {boolean} `true` if a suggestion can be provided for a node.
103
+ */
104
+ function canProvideSuggestions(node) {
105
+ return node.parent.type === "CallExpression" && node.parent.callee === node && node.parent.parent.type === "ExpressionStatement" && astUtils.STATEMENT_LIST_PARENTS.has(node.parent.parent.parent.type) && !maybeAsiHazard(node.parent.parent);
106
+ }
107
+ /**
108
+ * Reports the given reference as a violation.
109
+ * @param {eslint-scope.Reference} reference The reference to report.
110
+ * @returns {void}
111
+ */
112
+ function report(reference) {
113
+ let node = reference.identifier.parent, suggest = [];
114
+ if (canProvideSuggestions(node)) {
115
+ let suggestion = { fix(fixer) {
116
+ return fixer.remove(node.parent.parent);
117
+ } };
118
+ node.computed ? suggestion.messageId = "removeMethodCall" : (suggestion.messageId = "removeConsole", suggestion.data = { propertyName: node.property.name }), suggest.push(suggestion);
119
+ }
120
+ context.report({
121
+ node,
122
+ loc: node.loc,
123
+ messageId: allowed.length ? "limited" : "unexpected",
124
+ data: { allowed: allowed.join(", ") },
125
+ suggest
126
+ });
127
+ }
128
+ return { "Program:exit"(node) {
129
+ let scope = sourceCode.getScope(node), consoleVar = astUtils.getVariableByName(scope, "console"), shadowed = consoleVar && consoleVar.defs.length > 0, references = consoleVar ? consoleVar.references : scope.through.filter(isConsole);
130
+ shadowed || references.filter(isMemberAccessExceptAllowed).forEach(report);
131
+ } };
132
+ }
133
+ };
134
+ }));
135
+ //#endregion
136
+ //#region src-js/generated/plugin-eslint/rules/no-console.cjs
137
+ module.exports = require_no_console().create;
138
+ //#endregion
@@ -0,0 +1,50 @@
1
+ const require_chunk = require("../common/chunk.cjs"), require_ast_utils$1 = require("../common/ast-utils.cjs");
2
+ //#region ../../node_modules/.pnpm/eslint@9.39.3_jiti@2.6.1/node_modules/eslint/lib/rules/no-const-assign.js
3
+ /**
4
+ * @fileoverview A rule to disallow modifying variables that are declared using `const`
5
+ * @author Toru Nagashima
6
+ */
7
+ var require_no_const_assign = /* @__PURE__ */ require_chunk.t(((exports, module) => {
8
+ let astUtils = require_ast_utils$1.t(), CONSTANT_BINDINGS = new Set([
9
+ "const",
10
+ "using",
11
+ "await using"
12
+ ]);
13
+ /** @type {import('../types').Rule.RuleModule} */
14
+ module.exports = {
15
+ meta: {
16
+ type: "problem",
17
+ docs: {
18
+ description: "Disallow reassigning `const`, `using`, and `await using` variables",
19
+ recommended: !0,
20
+ url: "https://eslint.org/docs/latest/rules/no-const-assign"
21
+ },
22
+ schema: [],
23
+ messages: { const: "'{{name}}' is constant." }
24
+ },
25
+ create(context) {
26
+ let sourceCode = context.sourceCode;
27
+ /**
28
+ * Finds and reports references that are non initializer and writable.
29
+ * @param {Variable} variable A variable to check.
30
+ * @returns {void}
31
+ */
32
+ function checkVariable(variable) {
33
+ astUtils.getModifyingReferences(variable.references).forEach((reference) => {
34
+ context.report({
35
+ node: reference.identifier,
36
+ messageId: "const",
37
+ data: { name: reference.identifier.name }
38
+ });
39
+ });
40
+ }
41
+ return { VariableDeclaration(node) {
42
+ CONSTANT_BINDINGS.has(node.kind) && sourceCode.getDeclaredVariables(node).forEach(checkVariable);
43
+ } };
44
+ }
45
+ };
46
+ }));
47
+ //#endregion
48
+ //#region src-js/generated/plugin-eslint/rules/no-const-assign.cjs
49
+ module.exports = require_no_const_assign().create;
50
+ //#endregion