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,130 @@
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/arrow-parens.js
3
+ /**
4
+ * @fileoverview Rule to require parens in arrow function arguments.
5
+ * @author Jxck
6
+ * @deprecated in ESLint v8.53.0
7
+ */
8
+ var require_arrow_parens = /* @__PURE__ */ require_chunk.t(((exports, module) => {
9
+ let astUtils = require_ast_utils$1.t();
10
+ /**
11
+ * Determines if the given arrow function has block body.
12
+ * @param {ASTNode} node `ArrowFunctionExpression` node.
13
+ * @returns {boolean} `true` if the function has block body.
14
+ */
15
+ function hasBlockBody(node) {
16
+ return node.body.type === "BlockStatement";
17
+ }
18
+ /** @type {import('../types').Rule.RuleModule} */
19
+ module.exports = {
20
+ meta: {
21
+ deprecated: {
22
+ message: "Formatting rules are being moved out of ESLint core.",
23
+ url: "https://eslint.org/blog/2023/10/deprecating-formatting-rules/",
24
+ deprecatedSince: "8.53.0",
25
+ availableUntil: "11.0.0",
26
+ replacedBy: [{
27
+ message: "ESLint Stylistic now maintains deprecated stylistic core rules.",
28
+ url: "https://eslint.style/guide/migration",
29
+ plugin: {
30
+ name: "@stylistic/eslint-plugin",
31
+ url: "https://eslint.style"
32
+ },
33
+ rule: {
34
+ name: "arrow-parens",
35
+ url: "https://eslint.style/rules/arrow-parens"
36
+ }
37
+ }]
38
+ },
39
+ type: "layout",
40
+ docs: {
41
+ description: "Require parentheses around arrow function arguments",
42
+ recommended: !1,
43
+ url: "https://eslint.org/docs/latest/rules/arrow-parens"
44
+ },
45
+ fixable: "code",
46
+ schema: [{ enum: ["always", "as-needed"] }, {
47
+ type: "object",
48
+ properties: { requireForBlockBody: {
49
+ type: "boolean",
50
+ default: !1
51
+ } },
52
+ additionalProperties: !1
53
+ }],
54
+ messages: {
55
+ unexpectedParens: "Unexpected parentheses around single function argument.",
56
+ expectedParens: "Expected parentheses around arrow function argument.",
57
+ unexpectedParensInline: "Unexpected parentheses around single function argument having a body with no curly braces.",
58
+ expectedParensBlock: "Expected parentheses around arrow function argument having a body with curly braces."
59
+ }
60
+ },
61
+ create(context) {
62
+ let asNeeded = context.options[0] === "as-needed", requireForBlockBody = asNeeded && context.options[1] && context.options[1].requireForBlockBody === !0, sourceCode = context.sourceCode;
63
+ /**
64
+ * Finds opening paren of parameters for the given arrow function, if it exists.
65
+ * It is assumed that the given arrow function has exactly one parameter.
66
+ * @param {ASTNode} node `ArrowFunctionExpression` node.
67
+ * @returns {Token|null} the opening paren, or `null` if the given arrow function doesn't have parens of parameters.
68
+ */
69
+ function findOpeningParenOfParams(node) {
70
+ let tokenBeforeParams = sourceCode.getTokenBefore(node.params[0]);
71
+ return tokenBeforeParams && astUtils.isOpeningParenToken(tokenBeforeParams) && node.range[0] <= tokenBeforeParams.range[0] ? tokenBeforeParams : null;
72
+ }
73
+ /**
74
+ * Finds closing paren of parameters for the given arrow function.
75
+ * It is assumed that the given arrow function has parens of parameters and that it has exactly one parameter.
76
+ * @param {ASTNode} node `ArrowFunctionExpression` node.
77
+ * @returns {Token} the closing paren of parameters.
78
+ */
79
+ function getClosingParenOfParams(node) {
80
+ return sourceCode.getTokenAfter(node.params[0], astUtils.isClosingParenToken);
81
+ }
82
+ /**
83
+ * Determines whether the given arrow function has comments inside parens of parameters.
84
+ * It is assumed that the given arrow function has parens of parameters.
85
+ * @param {ASTNode} node `ArrowFunctionExpression` node.
86
+ * @param {Token} openingParen Opening paren of parameters.
87
+ * @returns {boolean} `true` if the function has at least one comment inside of parens of parameters.
88
+ */
89
+ function hasCommentsInParensOfParams(node, openingParen) {
90
+ return sourceCode.commentsExistBetween(openingParen, getClosingParenOfParams(node));
91
+ }
92
+ /**
93
+ * Determines whether the given arrow function has unexpected tokens before opening paren of parameters,
94
+ * in which case it will be assumed that the existing parens of parameters are necessary.
95
+ * Only tokens within the range of the arrow function (tokens that are part of the arrow function) are taken into account.
96
+ * Example: <T>(a) => b
97
+ * @param {ASTNode} node `ArrowFunctionExpression` node.
98
+ * @param {Token} openingParen Opening paren of parameters.
99
+ * @returns {boolean} `true` if the function has at least one unexpected token.
100
+ */
101
+ function hasUnexpectedTokensBeforeOpeningParen(node, openingParen) {
102
+ let expectedCount = node.async ? 1 : 0;
103
+ return sourceCode.getFirstToken(node, { skip: expectedCount }) !== openingParen;
104
+ }
105
+ return { "ArrowFunctionExpression[params.length=1]"(node) {
106
+ let shouldHaveParens = !asNeeded || requireForBlockBody && hasBlockBody(node), openingParen = findOpeningParenOfParams(node), hasParens = openingParen !== null, [param] = node.params;
107
+ shouldHaveParens && !hasParens && context.report({
108
+ node,
109
+ messageId: requireForBlockBody ? "expectedParensBlock" : "expectedParens",
110
+ loc: param.loc,
111
+ *fix(fixer) {
112
+ yield fixer.insertTextBefore(param, "("), yield fixer.insertTextAfter(param, ")");
113
+ }
114
+ }), !shouldHaveParens && hasParens && param.type === "Identifier" && !param.typeAnnotation && !node.returnType && !hasCommentsInParensOfParams(node, openingParen) && !hasUnexpectedTokensBeforeOpeningParen(node, openingParen) && context.report({
115
+ node,
116
+ messageId: requireForBlockBody ? "unexpectedParensInline" : "unexpectedParens",
117
+ loc: param.loc,
118
+ *fix(fixer) {
119
+ let tokenBeforeOpeningParen = sourceCode.getTokenBefore(openingParen), closingParen = getClosingParenOfParams(node);
120
+ tokenBeforeOpeningParen && tokenBeforeOpeningParen.range[1] === openingParen.range[0] && !astUtils.canTokensBeAdjacent(tokenBeforeOpeningParen, sourceCode.getFirstToken(param)) && (yield fixer.insertTextBefore(openingParen, " ")), yield fixer.removeRange([openingParen.range[0], param.range[0]]), yield fixer.removeRange([param.range[1], closingParen.range[1]]);
121
+ }
122
+ });
123
+ } };
124
+ }
125
+ };
126
+ }));
127
+ //#endregion
128
+ //#region src-js/generated/plugin-eslint/rules/arrow-parens.cjs
129
+ module.exports = require_arrow_parens().create;
130
+ //#endregion
@@ -0,0 +1,129 @@
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/arrow-spacing.js
3
+ /**
4
+ * @fileoverview Rule to define spacing before/after arrow function's arrow.
5
+ * @author Jxck
6
+ * @deprecated in ESLint v8.53.0
7
+ */
8
+ var require_arrow_spacing = /* @__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
+ deprecated: {
14
+ message: "Formatting rules are being moved out of ESLint core.",
15
+ url: "https://eslint.org/blog/2023/10/deprecating-formatting-rules/",
16
+ deprecatedSince: "8.53.0",
17
+ availableUntil: "11.0.0",
18
+ replacedBy: [{
19
+ message: "ESLint Stylistic now maintains deprecated stylistic core rules.",
20
+ url: "https://eslint.style/guide/migration",
21
+ plugin: {
22
+ name: "@stylistic/eslint-plugin",
23
+ url: "https://eslint.style"
24
+ },
25
+ rule: {
26
+ name: "arrow-spacing",
27
+ url: "https://eslint.style/rules/arrow-spacing"
28
+ }
29
+ }]
30
+ },
31
+ type: "layout",
32
+ docs: {
33
+ description: "Enforce consistent spacing before and after the arrow in arrow functions",
34
+ recommended: !1,
35
+ url: "https://eslint.org/docs/latest/rules/arrow-spacing"
36
+ },
37
+ fixable: "whitespace",
38
+ schema: [{
39
+ type: "object",
40
+ properties: {
41
+ before: {
42
+ type: "boolean",
43
+ default: !0
44
+ },
45
+ after: {
46
+ type: "boolean",
47
+ default: !0
48
+ }
49
+ },
50
+ additionalProperties: !1
51
+ }],
52
+ messages: {
53
+ expectedBefore: "Missing space before =>.",
54
+ unexpectedBefore: "Unexpected space before =>.",
55
+ expectedAfter: "Missing space after =>.",
56
+ unexpectedAfter: "Unexpected space after =>."
57
+ }
58
+ },
59
+ create(context) {
60
+ let rule = Object.assign({}, context.options[0]);
61
+ rule.before = rule.before !== !1, rule.after = rule.after !== !1;
62
+ let sourceCode = context.sourceCode;
63
+ /**
64
+ * Get tokens of arrow(`=>`) and before/after arrow.
65
+ * @param {ASTNode} node The arrow function node.
66
+ * @returns {Object} Tokens of arrow and before/after arrow.
67
+ */
68
+ function getTokens(node) {
69
+ let arrow = sourceCode.getTokenBefore(node.body, astUtils.isArrowToken);
70
+ return {
71
+ before: sourceCode.getTokenBefore(arrow),
72
+ arrow,
73
+ after: sourceCode.getTokenAfter(arrow)
74
+ };
75
+ }
76
+ /**
77
+ * Count spaces before/after arrow(`=>`) token.
78
+ * @param {Object} tokens Tokens before/after arrow.
79
+ * @returns {Object} count of space before/after arrow.
80
+ */
81
+ function countSpaces(tokens) {
82
+ return {
83
+ before: tokens.arrow.range[0] - tokens.before.range[1],
84
+ after: tokens.after.range[0] - tokens.arrow.range[1]
85
+ };
86
+ }
87
+ /**
88
+ * Determines whether space(s) before after arrow(`=>`) is satisfy rule.
89
+ * if before/after value is `true`, there should be space(s).
90
+ * if before/after value is `false`, there should be no space.
91
+ * @param {ASTNode} node The arrow function node.
92
+ * @returns {void}
93
+ */
94
+ function spaces(node) {
95
+ let tokens = getTokens(node), countSpace = countSpaces(tokens);
96
+ rule.before ? countSpace.before === 0 && context.report({
97
+ node: tokens.before,
98
+ messageId: "expectedBefore",
99
+ fix(fixer) {
100
+ return fixer.insertTextBefore(tokens.arrow, " ");
101
+ }
102
+ }) : countSpace.before > 0 && context.report({
103
+ node: tokens.before,
104
+ messageId: "unexpectedBefore",
105
+ fix(fixer) {
106
+ return fixer.removeRange([tokens.before.range[1], tokens.arrow.range[0]]);
107
+ }
108
+ }), rule.after ? countSpace.after === 0 && context.report({
109
+ node: tokens.after,
110
+ messageId: "expectedAfter",
111
+ fix(fixer) {
112
+ return fixer.insertTextAfter(tokens.arrow, " ");
113
+ }
114
+ }) : countSpace.after > 0 && context.report({
115
+ node: tokens.after,
116
+ messageId: "unexpectedAfter",
117
+ fix(fixer) {
118
+ return fixer.removeRange([tokens.arrow.range[1], tokens.after.range[0]]);
119
+ }
120
+ });
121
+ }
122
+ return { ArrowFunctionExpression: spaces };
123
+ }
124
+ };
125
+ }));
126
+ //#endregion
127
+ //#region src-js/generated/plugin-eslint/rules/arrow-spacing.cjs
128
+ module.exports = require_arrow_spacing().create;
129
+ //#endregion
@@ -0,0 +1,101 @@
1
+ //#region ../../node_modules/.pnpm/eslint@9.39.3_jiti@2.6.1/node_modules/eslint/lib/rules/block-scoped-var.js
2
+ /**
3
+ * @fileoverview Rule to check for "block scoped" variables by binding context
4
+ * @author Matt DuVall <http://www.mattduvall.com>
5
+ */
6
+ var require_block_scoped_var = /* @__PURE__ */ require("../common/chunk.cjs").t(((exports, module) => {
7
+ /** @type {import('../types').Rule.RuleModule} */
8
+ module.exports = {
9
+ meta: {
10
+ type: "suggestion",
11
+ docs: {
12
+ description: "Enforce the use of variables within the scope they are defined",
13
+ recommended: !1,
14
+ url: "https://eslint.org/docs/latest/rules/block-scoped-var"
15
+ },
16
+ schema: [],
17
+ messages: { outOfScope: "'{{name}}' declared on line {{definitionLine}} column {{definitionColumn}} is used outside of binding context." }
18
+ },
19
+ create(context) {
20
+ let stack = [], sourceCode = context.sourceCode;
21
+ /**
22
+ * Makes a block scope.
23
+ * @param {ASTNode} node A node of a scope.
24
+ * @returns {void}
25
+ */
26
+ function enterScope(node) {
27
+ stack.push(node.range);
28
+ }
29
+ /**
30
+ * Pops the last block scope.
31
+ * @returns {void}
32
+ */
33
+ function exitScope() {
34
+ stack.pop();
35
+ }
36
+ /**
37
+ * Reports a given reference.
38
+ * @param {eslint-scope.Reference} reference A reference to report.
39
+ * @param {eslint-scope.Definition} definition A definition for which to report reference.
40
+ * @returns {void}
41
+ */
42
+ function report(reference, definition) {
43
+ let identifier = reference.identifier, definitionPosition = definition.name.loc.start;
44
+ context.report({
45
+ node: identifier,
46
+ messageId: "outOfScope",
47
+ data: {
48
+ name: identifier.name,
49
+ definitionLine: definitionPosition.line,
50
+ definitionColumn: definitionPosition.column + 1
51
+ }
52
+ });
53
+ }
54
+ /**
55
+ * Finds and reports references which are outside of valid scopes.
56
+ * @param {ASTNode} node A node to get variables.
57
+ * @returns {void}
58
+ */
59
+ function checkForVariables(node) {
60
+ if (node.kind !== "var") return;
61
+ let scopeRange = stack.at(-1);
62
+ /**
63
+ * Check if a reference is out of scope
64
+ * @param {ASTNode} reference node to examine
65
+ * @returns {boolean} True is its outside the scope
66
+ * @private
67
+ */
68
+ function isOutsideOfScope(reference) {
69
+ let idRange = reference.identifier.range;
70
+ return idRange[0] < scopeRange[0] || idRange[1] > scopeRange[1];
71
+ }
72
+ let variables = sourceCode.getDeclaredVariables(node);
73
+ for (let i = 0; i < variables.length; ++i) variables[i].references.filter(isOutsideOfScope).forEach((ref) => report(ref, variables[i].defs.find((def) => def.parent === node)));
74
+ }
75
+ return {
76
+ Program(node) {
77
+ stack = [node.range];
78
+ },
79
+ BlockStatement: enterScope,
80
+ "BlockStatement:exit": exitScope,
81
+ ForStatement: enterScope,
82
+ "ForStatement:exit": exitScope,
83
+ ForInStatement: enterScope,
84
+ "ForInStatement:exit": exitScope,
85
+ ForOfStatement: enterScope,
86
+ "ForOfStatement:exit": exitScope,
87
+ SwitchStatement: enterScope,
88
+ "SwitchStatement:exit": exitScope,
89
+ CatchClause: enterScope,
90
+ "CatchClause:exit": exitScope,
91
+ StaticBlock: enterScope,
92
+ "StaticBlock:exit": exitScope,
93
+ VariableDeclaration: checkForVariables
94
+ };
95
+ }
96
+ };
97
+ }));
98
+ //#endregion
99
+ //#region src-js/generated/plugin-eslint/rules/block-scoped-var.cjs
100
+ module.exports = require_block_scoped_var().create;
101
+ //#endregion
@@ -0,0 +1,125 @@
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/block-spacing.js
3
+ /**
4
+ * @fileoverview A rule to disallow or enforce spaces inside of single line blocks.
5
+ * @author Toru Nagashima
6
+ * @deprecated in ESLint v8.53.0
7
+ */
8
+ var require_block_spacing = /* @__PURE__ */ require_chunk.t(((exports, module) => {
9
+ let util = require_ast_utils$1.t();
10
+ /** @type {import('../types').Rule.RuleModule} */
11
+ module.exports = {
12
+ meta: {
13
+ deprecated: {
14
+ message: "Formatting rules are being moved out of ESLint core.",
15
+ url: "https://eslint.org/blog/2023/10/deprecating-formatting-rules/",
16
+ deprecatedSince: "8.53.0",
17
+ availableUntil: "11.0.0",
18
+ replacedBy: [{
19
+ message: "ESLint Stylistic now maintains deprecated stylistic core rules.",
20
+ url: "https://eslint.style/guide/migration",
21
+ plugin: {
22
+ name: "@stylistic/eslint-plugin",
23
+ url: "https://eslint.style"
24
+ },
25
+ rule: {
26
+ name: "block-spacing",
27
+ url: "https://eslint.style/rules/block-spacing"
28
+ }
29
+ }]
30
+ },
31
+ type: "layout",
32
+ docs: {
33
+ description: "Disallow or enforce spaces inside of blocks after opening block and before closing block",
34
+ recommended: !1,
35
+ url: "https://eslint.org/docs/latest/rules/block-spacing"
36
+ },
37
+ fixable: "whitespace",
38
+ schema: [{ enum: ["always", "never"] }],
39
+ messages: {
40
+ missing: "Requires a space {{location}} '{{token}}'.",
41
+ extra: "Unexpected space(s) {{location}} '{{token}}'."
42
+ }
43
+ },
44
+ create(context) {
45
+ let always = context.options[0] !== "never", messageId = always ? "missing" : "extra", sourceCode = context.sourceCode;
46
+ /**
47
+ * Gets the open brace token from a given node.
48
+ * @param {ASTNode} node A BlockStatement/StaticBlock/SwitchStatement node to get.
49
+ * @returns {Token} The token of the open brace.
50
+ */
51
+ function getOpenBrace(node) {
52
+ return node.type === "SwitchStatement" ? node.cases.length > 0 ? sourceCode.getTokenBefore(node.cases[0]) : sourceCode.getLastToken(node, 1) : node.type === "StaticBlock" ? sourceCode.getFirstToken(node, { skip: 1 }) : sourceCode.getFirstToken(node);
53
+ }
54
+ /**
55
+ * Checks whether or not:
56
+ * - given tokens are on same line.
57
+ * - there is/isn't a space between given tokens.
58
+ * @param {Token} left A token to check.
59
+ * @param {Token} right The token which is next to `left`.
60
+ * @returns {boolean}
61
+ * When the option is `"always"`, `true` if there are one or more spaces between given tokens.
62
+ * When the option is `"never"`, `true` if there are not any spaces between given tokens.
63
+ * If given tokens are not on same line, it's always `true`.
64
+ */
65
+ function isValid(left, right) {
66
+ return !util.isTokenOnSameLine(left, right) || sourceCode.isSpaceBetweenTokens(left, right) === always;
67
+ }
68
+ /**
69
+ * Checks and reports invalid spacing style inside braces.
70
+ * @param {ASTNode} node A BlockStatement/StaticBlock/SwitchStatement node to check.
71
+ * @returns {void}
72
+ */
73
+ function checkSpacingInsideBraces(node) {
74
+ let openBrace = getOpenBrace(node), closeBrace = sourceCode.getLastToken(node), firstToken = sourceCode.getTokenAfter(openBrace, { includeComments: !0 }), lastToken = sourceCode.getTokenBefore(closeBrace, { includeComments: !0 });
75
+ if (!(openBrace.type !== "Punctuator" || openBrace.value !== "{" || closeBrace.type !== "Punctuator" || closeBrace.value !== "}" || firstToken === closeBrace) && !(!always && firstToken.type === "Line")) {
76
+ if (!isValid(openBrace, firstToken)) {
77
+ let loc = openBrace.loc;
78
+ messageId === "extra" && (loc = {
79
+ start: openBrace.loc.end,
80
+ end: firstToken.loc.start
81
+ }), context.report({
82
+ node,
83
+ loc,
84
+ messageId,
85
+ data: {
86
+ location: "after",
87
+ token: openBrace.value
88
+ },
89
+ fix(fixer) {
90
+ return always ? fixer.insertTextBefore(firstToken, " ") : fixer.removeRange([openBrace.range[1], firstToken.range[0]]);
91
+ }
92
+ });
93
+ }
94
+ if (!isValid(lastToken, closeBrace)) {
95
+ let loc = closeBrace.loc;
96
+ messageId === "extra" && (loc = {
97
+ start: lastToken.loc.end,
98
+ end: closeBrace.loc.start
99
+ }), context.report({
100
+ node,
101
+ loc,
102
+ messageId,
103
+ data: {
104
+ location: "before",
105
+ token: closeBrace.value
106
+ },
107
+ fix(fixer) {
108
+ return always ? fixer.insertTextAfter(lastToken, " ") : fixer.removeRange([lastToken.range[1], closeBrace.range[0]]);
109
+ }
110
+ });
111
+ }
112
+ }
113
+ }
114
+ return {
115
+ BlockStatement: checkSpacingInsideBraces,
116
+ StaticBlock: checkSpacingInsideBraces,
117
+ SwitchStatement: checkSpacingInsideBraces
118
+ };
119
+ }
120
+ };
121
+ }));
122
+ //#endregion
123
+ //#region src-js/generated/plugin-eslint/rules/block-spacing.cjs
124
+ module.exports = require_block_spacing().create;
125
+ //#endregion
@@ -0,0 +1,141 @@
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/brace-style.js
3
+ /**
4
+ * @fileoverview Rule to flag block statements that do not use the one true brace style
5
+ * @author Ian Christian Myers
6
+ * @deprecated in ESLint v8.53.0
7
+ */
8
+ var require_brace_style = /* @__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
+ deprecated: {
14
+ message: "Formatting rules are being moved out of ESLint core.",
15
+ url: "https://eslint.org/blog/2023/10/deprecating-formatting-rules/",
16
+ deprecatedSince: "8.53.0",
17
+ availableUntil: "11.0.0",
18
+ replacedBy: [{
19
+ message: "ESLint Stylistic now maintains deprecated stylistic core rules.",
20
+ url: "https://eslint.style/guide/migration",
21
+ plugin: {
22
+ name: "@stylistic/eslint-plugin",
23
+ url: "https://eslint.style"
24
+ },
25
+ rule: {
26
+ name: "brace-style",
27
+ url: "https://eslint.style/rules/brace-style"
28
+ }
29
+ }]
30
+ },
31
+ type: "layout",
32
+ docs: {
33
+ description: "Enforce consistent brace style for blocks",
34
+ recommended: !1,
35
+ url: "https://eslint.org/docs/latest/rules/brace-style"
36
+ },
37
+ schema: [{ enum: [
38
+ "1tbs",
39
+ "stroustrup",
40
+ "allman"
41
+ ] }, {
42
+ type: "object",
43
+ properties: { allowSingleLine: {
44
+ type: "boolean",
45
+ default: !1
46
+ } },
47
+ additionalProperties: !1
48
+ }],
49
+ fixable: "whitespace",
50
+ messages: {
51
+ nextLineOpen: "Opening curly brace does not appear on the same line as controlling statement.",
52
+ sameLineOpen: "Opening curly brace appears on the same line as controlling statement.",
53
+ blockSameLine: "Statement inside of curly braces should be on next line.",
54
+ nextLineClose: "Closing curly brace does not appear on the same line as the subsequent block.",
55
+ singleLineClose: "Closing curly brace should be on the same line as opening curly brace or on the line after the previous block.",
56
+ sameLineClose: "Closing curly brace appears on the same line as the subsequent block."
57
+ }
58
+ },
59
+ create(context) {
60
+ let style = context.options[0] || "1tbs", params = context.options[1] || {}, sourceCode = context.sourceCode;
61
+ /**
62
+ * Fixes a place where a newline unexpectedly appears
63
+ * @param {Token} firstToken The token before the unexpected newline
64
+ * @param {Token} secondToken The token after the unexpected newline
65
+ * @returns {Function} A fixer function to remove the newlines between the tokens
66
+ */
67
+ function removeNewlineBetween(firstToken, secondToken) {
68
+ let textRange = [firstToken.range[1], secondToken.range[0]];
69
+ return sourceCode.text.slice(textRange[0], textRange[1]).trim() ? null : (fixer) => fixer.replaceTextRange(textRange, " ");
70
+ }
71
+ /**
72
+ * Validates a pair of curly brackets based on the user's config
73
+ * @param {Token} openingCurly The opening curly bracket
74
+ * @param {Token} closingCurly The closing curly bracket
75
+ * @returns {void}
76
+ */
77
+ function validateCurlyPair(openingCurly, closingCurly) {
78
+ let tokenBeforeOpeningCurly = sourceCode.getTokenBefore(openingCurly), tokenAfterOpeningCurly = sourceCode.getTokenAfter(openingCurly), tokenBeforeClosingCurly = sourceCode.getTokenBefore(closingCurly), singleLineException = params.allowSingleLine && astUtils.isTokenOnSameLine(openingCurly, closingCurly);
79
+ style !== "allman" && !astUtils.isTokenOnSameLine(tokenBeforeOpeningCurly, openingCurly) && context.report({
80
+ node: openingCurly,
81
+ messageId: "nextLineOpen",
82
+ fix: removeNewlineBetween(tokenBeforeOpeningCurly, openingCurly)
83
+ }), style === "allman" && astUtils.isTokenOnSameLine(tokenBeforeOpeningCurly, openingCurly) && !singleLineException && context.report({
84
+ node: openingCurly,
85
+ messageId: "sameLineOpen",
86
+ fix: (fixer) => fixer.insertTextBefore(openingCurly, "\n")
87
+ }), astUtils.isTokenOnSameLine(openingCurly, tokenAfterOpeningCurly) && tokenAfterOpeningCurly !== closingCurly && !singleLineException && context.report({
88
+ node: openingCurly,
89
+ messageId: "blockSameLine",
90
+ fix: (fixer) => fixer.insertTextAfter(openingCurly, "\n")
91
+ }), tokenBeforeClosingCurly !== openingCurly && !singleLineException && astUtils.isTokenOnSameLine(tokenBeforeClosingCurly, closingCurly) && context.report({
92
+ node: closingCurly,
93
+ messageId: "singleLineClose",
94
+ fix: (fixer) => fixer.insertTextBefore(closingCurly, "\n")
95
+ });
96
+ }
97
+ /**
98
+ * Validates the location of a token that appears before a keyword (e.g. a newline before `else`)
99
+ * @param {Token} curlyToken The closing curly token. This is assumed to precede a keyword token (such as `else` or `finally`).
100
+ * @returns {void}
101
+ */
102
+ function validateCurlyBeforeKeyword(curlyToken) {
103
+ let keywordToken = sourceCode.getTokenAfter(curlyToken);
104
+ style === "1tbs" && !astUtils.isTokenOnSameLine(curlyToken, keywordToken) && context.report({
105
+ node: curlyToken,
106
+ messageId: "nextLineClose",
107
+ fix: removeNewlineBetween(curlyToken, keywordToken)
108
+ }), style !== "1tbs" && astUtils.isTokenOnSameLine(curlyToken, keywordToken) && context.report({
109
+ node: curlyToken,
110
+ messageId: "sameLineClose",
111
+ fix: (fixer) => fixer.insertTextAfter(curlyToken, "\n")
112
+ });
113
+ }
114
+ return {
115
+ BlockStatement(node) {
116
+ astUtils.STATEMENT_LIST_PARENTS.has(node.parent.type) || validateCurlyPair(sourceCode.getFirstToken(node), sourceCode.getLastToken(node));
117
+ },
118
+ StaticBlock(node) {
119
+ validateCurlyPair(sourceCode.getFirstToken(node, { skip: 1 }), sourceCode.getLastToken(node));
120
+ },
121
+ ClassBody(node) {
122
+ validateCurlyPair(sourceCode.getFirstToken(node), sourceCode.getLastToken(node));
123
+ },
124
+ SwitchStatement(node) {
125
+ let closingCurly = sourceCode.getLastToken(node);
126
+ validateCurlyPair(sourceCode.getTokenBefore(node.cases.length ? node.cases[0] : closingCurly), closingCurly);
127
+ },
128
+ IfStatement(node) {
129
+ node.consequent.type === "BlockStatement" && node.alternate && validateCurlyBeforeKeyword(sourceCode.getLastToken(node.consequent));
130
+ },
131
+ TryStatement(node) {
132
+ validateCurlyBeforeKeyword(sourceCode.getLastToken(node.block)), node.handler && node.finalizer && validateCurlyBeforeKeyword(sourceCode.getLastToken(node.handler.body));
133
+ }
134
+ };
135
+ }
136
+ };
137
+ }));
138
+ //#endregion
139
+ //#region src-js/generated/plugin-eslint/rules/brace-style.cjs
140
+ module.exports = require_brace_style().create;
141
+ //#endregion