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,215 @@
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/semi-spacing.js
3
+ /**
4
+ * @fileoverview Validates spacing before and after semicolon
5
+ * @author Mathias Schreck
6
+ * @deprecated in ESLint v8.53.0
7
+ */
8
+ var require_semi_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: "semi-spacing",
27
+ url: "https://eslint.style/rules/semi-spacing"
28
+ }
29
+ }]
30
+ },
31
+ type: "layout",
32
+ docs: {
33
+ description: "Enforce consistent spacing before and after semicolons",
34
+ recommended: !1,
35
+ url: "https://eslint.org/docs/latest/rules/semi-spacing"
36
+ },
37
+ fixable: "whitespace",
38
+ schema: [{
39
+ type: "object",
40
+ properties: {
41
+ before: {
42
+ type: "boolean",
43
+ default: !1
44
+ },
45
+ after: {
46
+ type: "boolean",
47
+ default: !0
48
+ }
49
+ },
50
+ additionalProperties: !1
51
+ }],
52
+ messages: {
53
+ unexpectedWhitespaceBefore: "Unexpected whitespace before semicolon.",
54
+ unexpectedWhitespaceAfter: "Unexpected whitespace after semicolon.",
55
+ missingWhitespaceBefore: "Missing whitespace before semicolon.",
56
+ missingWhitespaceAfter: "Missing whitespace after semicolon."
57
+ }
58
+ },
59
+ create(context) {
60
+ let config = context.options[0], sourceCode = context.sourceCode, requireSpaceBefore = !1, requireSpaceAfter = !0;
61
+ typeof config == "object" && (requireSpaceBefore = config.before, requireSpaceAfter = config.after);
62
+ /**
63
+ * Checks if a given token has leading whitespace.
64
+ * @param {Object} token The token to check.
65
+ * @returns {boolean} True if the given token has leading space, false if not.
66
+ */
67
+ function hasLeadingSpace(token) {
68
+ let tokenBefore = sourceCode.getTokenBefore(token);
69
+ return tokenBefore && astUtils.isTokenOnSameLine(tokenBefore, token) && sourceCode.isSpaceBetweenTokens(tokenBefore, token);
70
+ }
71
+ /**
72
+ * Checks if a given token has trailing whitespace.
73
+ * @param {Object} token The token to check.
74
+ * @returns {boolean} True if the given token has trailing space, false if not.
75
+ */
76
+ function hasTrailingSpace(token) {
77
+ let tokenAfter = sourceCode.getTokenAfter(token);
78
+ return tokenAfter && astUtils.isTokenOnSameLine(token, tokenAfter) && sourceCode.isSpaceBetweenTokens(token, tokenAfter);
79
+ }
80
+ /**
81
+ * Checks if the given token is the last token in its line.
82
+ * @param {Token} token The token to check.
83
+ * @returns {boolean} Whether or not the token is the last in its line.
84
+ */
85
+ function isLastTokenInCurrentLine(token) {
86
+ let tokenAfter = sourceCode.getTokenAfter(token);
87
+ return !(tokenAfter && astUtils.isTokenOnSameLine(token, tokenAfter));
88
+ }
89
+ /**
90
+ * Checks if the given token is the first token in its line
91
+ * @param {Token} token The token to check.
92
+ * @returns {boolean} Whether or not the token is the first in its line.
93
+ */
94
+ function isFirstTokenInCurrentLine(token) {
95
+ let tokenBefore = sourceCode.getTokenBefore(token);
96
+ return !(tokenBefore && astUtils.isTokenOnSameLine(token, tokenBefore));
97
+ }
98
+ /**
99
+ * Checks if the next token of a given token is a closing parenthesis.
100
+ * @param {Token} token The token to check.
101
+ * @returns {boolean} Whether or not the next token of a given token is a closing parenthesis.
102
+ */
103
+ function isBeforeClosingParen(token) {
104
+ let nextToken = sourceCode.getTokenAfter(token);
105
+ return nextToken && astUtils.isClosingBraceToken(nextToken) || astUtils.isClosingParenToken(nextToken);
106
+ }
107
+ /**
108
+ * Report location example :
109
+ *
110
+ * for unexpected space `before`
111
+ *
112
+ * var a = 'b' ;
113
+ * ^^^
114
+ *
115
+ * for unexpected space `after`
116
+ *
117
+ * var a = 'b'; c = 10;
118
+ * ^^
119
+ *
120
+ * Reports if the given token has invalid spacing.
121
+ * @param {Token} token The semicolon token to check.
122
+ * @param {ASTNode} node The corresponding node of the token.
123
+ * @returns {void}
124
+ */
125
+ function checkSemicolonSpacing(token, node) {
126
+ if (astUtils.isSemicolonToken(token)) {
127
+ if (hasLeadingSpace(token)) {
128
+ if (!requireSpaceBefore) {
129
+ let tokenBefore = sourceCode.getTokenBefore(token), loc = {
130
+ start: tokenBefore.loc.end,
131
+ end: token.loc.start
132
+ };
133
+ context.report({
134
+ node,
135
+ loc,
136
+ messageId: "unexpectedWhitespaceBefore",
137
+ fix(fixer) {
138
+ return fixer.removeRange([tokenBefore.range[1], token.range[0]]);
139
+ }
140
+ });
141
+ }
142
+ } else if (requireSpaceBefore) {
143
+ let loc = token.loc;
144
+ context.report({
145
+ node,
146
+ loc,
147
+ messageId: "missingWhitespaceBefore",
148
+ fix(fixer) {
149
+ return fixer.insertTextBefore(token, " ");
150
+ }
151
+ });
152
+ }
153
+ if (!isFirstTokenInCurrentLine(token) && !isLastTokenInCurrentLine(token) && !isBeforeClosingParen(token)) {
154
+ if (hasTrailingSpace(token)) {
155
+ if (!requireSpaceAfter) {
156
+ let tokenAfter = sourceCode.getTokenAfter(token), loc = {
157
+ start: token.loc.end,
158
+ end: tokenAfter.loc.start
159
+ };
160
+ context.report({
161
+ node,
162
+ loc,
163
+ messageId: "unexpectedWhitespaceAfter",
164
+ fix(fixer) {
165
+ return fixer.removeRange([token.range[1], tokenAfter.range[0]]);
166
+ }
167
+ });
168
+ }
169
+ } else if (requireSpaceAfter) {
170
+ let loc = token.loc;
171
+ context.report({
172
+ node,
173
+ loc,
174
+ messageId: "missingWhitespaceAfter",
175
+ fix(fixer) {
176
+ return fixer.insertTextAfter(token, " ");
177
+ }
178
+ });
179
+ }
180
+ }
181
+ }
182
+ }
183
+ /**
184
+ * Checks the spacing of the semicolon with the assumption that the last token is the semicolon.
185
+ * @param {ASTNode} node The node to check.
186
+ * @returns {void}
187
+ */
188
+ function checkNode(node) {
189
+ checkSemicolonSpacing(sourceCode.getLastToken(node), node);
190
+ }
191
+ return {
192
+ VariableDeclaration: checkNode,
193
+ ExpressionStatement: checkNode,
194
+ BreakStatement: checkNode,
195
+ ContinueStatement: checkNode,
196
+ DebuggerStatement: checkNode,
197
+ DoWhileStatement: checkNode,
198
+ ReturnStatement: checkNode,
199
+ ThrowStatement: checkNode,
200
+ ImportDeclaration: checkNode,
201
+ ExportNamedDeclaration: checkNode,
202
+ ExportAllDeclaration: checkNode,
203
+ ExportDefaultDeclaration: checkNode,
204
+ ForStatement(node) {
205
+ node.init && checkSemicolonSpacing(sourceCode.getTokenAfter(node.init), node), node.test && checkSemicolonSpacing(sourceCode.getTokenAfter(node.test), node);
206
+ },
207
+ PropertyDefinition: checkNode
208
+ };
209
+ }
210
+ };
211
+ }));
212
+ //#endregion
213
+ //#region src-js/generated/plugin-eslint/rules/semi-spacing.cjs
214
+ module.exports = require_semi_spacing().create;
215
+ //#endregion
@@ -0,0 +1,116 @@
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/semi-style.js
3
+ /**
4
+ * @fileoverview Rule to enforce location of semicolons.
5
+ * @author Toru Nagashima
6
+ * @deprecated in ESLint v8.53.0
7
+ */
8
+ var require_semi_style = /* @__PURE__ */ require_chunk.t(((exports, module) => {
9
+ let astUtils = require_ast_utils$1.t(), SELECTOR = [
10
+ "BreakStatement",
11
+ "ContinueStatement",
12
+ "DebuggerStatement",
13
+ "DoWhileStatement",
14
+ "ExportAllDeclaration",
15
+ "ExportDefaultDeclaration",
16
+ "ExportNamedDeclaration",
17
+ "ExpressionStatement",
18
+ "ImportDeclaration",
19
+ "ReturnStatement",
20
+ "ThrowStatement",
21
+ "VariableDeclaration",
22
+ "PropertyDefinition"
23
+ ].join(",");
24
+ /**
25
+ * Get the child node list of a given node.
26
+ * This returns `BlockStatement#body`, `StaticBlock#body`, `Program#body`,
27
+ * `ClassBody#body`, or `SwitchCase#consequent`.
28
+ * This is used to check whether a node is the first/last child.
29
+ * @param {Node} node A node to get child node list.
30
+ * @returns {Node[]|null} The child node list.
31
+ */
32
+ function getChildren(node) {
33
+ let t = node.type;
34
+ return t === "BlockStatement" || t === "StaticBlock" || t === "Program" || t === "ClassBody" ? node.body : t === "SwitchCase" ? node.consequent : null;
35
+ }
36
+ /**
37
+ * Check whether a given node is the last statement in the parent block.
38
+ * @param {Node} node A node to check.
39
+ * @returns {boolean} `true` if the node is the last statement in the parent block.
40
+ */
41
+ function isLastChild(node) {
42
+ let t = node.parent.type;
43
+ if (t === "IfStatement" && node.parent.consequent === node && node.parent.alternate || t === "DoWhileStatement") return !0;
44
+ let nodeList = getChildren(node.parent);
45
+ return nodeList !== null && nodeList.at(-1) === node;
46
+ }
47
+ /** @type {import('../types').Rule.RuleModule} */
48
+ module.exports = {
49
+ meta: {
50
+ deprecated: {
51
+ message: "Formatting rules are being moved out of ESLint core.",
52
+ url: "https://eslint.org/blog/2023/10/deprecating-formatting-rules/",
53
+ deprecatedSince: "8.53.0",
54
+ availableUntil: "11.0.0",
55
+ replacedBy: [{
56
+ message: "ESLint Stylistic now maintains deprecated stylistic core rules.",
57
+ url: "https://eslint.style/guide/migration",
58
+ plugin: {
59
+ name: "@stylistic/eslint-plugin",
60
+ url: "https://eslint.style"
61
+ },
62
+ rule: {
63
+ name: "semi-style",
64
+ url: "https://eslint.style/rules/semi-style"
65
+ }
66
+ }]
67
+ },
68
+ type: "layout",
69
+ docs: {
70
+ description: "Enforce location of semicolons",
71
+ recommended: !1,
72
+ url: "https://eslint.org/docs/latest/rules/semi-style"
73
+ },
74
+ schema: [{ enum: ["last", "first"] }],
75
+ fixable: "whitespace",
76
+ messages: { expectedSemiColon: "Expected this semicolon to be at {{pos}}." }
77
+ },
78
+ create(context) {
79
+ let sourceCode = context.sourceCode, option = context.options[0] || "last";
80
+ /**
81
+ * Check the given semicolon token.
82
+ * @param {Token} semiToken The semicolon token to check.
83
+ * @param {"first"|"last"} expected The expected location to check.
84
+ * @returns {void}
85
+ */
86
+ function check(semiToken, expected) {
87
+ let prevToken = sourceCode.getTokenBefore(semiToken), nextToken = sourceCode.getTokenAfter(semiToken), prevIsSameLine = !prevToken || astUtils.isTokenOnSameLine(prevToken, semiToken), nextIsSameLine = !nextToken || astUtils.isTokenOnSameLine(semiToken, nextToken);
88
+ (expected === "last" && !prevIsSameLine || expected === "first" && !nextIsSameLine) && context.report({
89
+ loc: semiToken.loc,
90
+ messageId: "expectedSemiColon",
91
+ data: { pos: expected === "last" ? "the end of the previous line" : "the beginning of the next line" },
92
+ fix(fixer) {
93
+ if (prevToken && nextToken && sourceCode.commentsExistBetween(prevToken, nextToken)) return null;
94
+ let start = prevToken ? prevToken.range[1] : semiToken.range[0], end = nextToken ? nextToken.range[0] : semiToken.range[1], text = expected === "last" ? ";\n" : "\n;";
95
+ return fixer.replaceTextRange([start, end], text);
96
+ }
97
+ });
98
+ }
99
+ return {
100
+ [SELECTOR](node) {
101
+ if (option === "first" && isLastChild(node)) return;
102
+ let lastToken = sourceCode.getLastToken(node);
103
+ astUtils.isSemicolonToken(lastToken) && check(lastToken, option);
104
+ },
105
+ ForStatement(node) {
106
+ let firstSemi = node.init && sourceCode.getTokenAfter(node.init, astUtils.isSemicolonToken), secondSemi = node.test && sourceCode.getTokenAfter(node.test, astUtils.isSemicolonToken);
107
+ firstSemi && check(firstSemi, "last"), secondSemi && check(secondSemi, "last");
108
+ }
109
+ };
110
+ }
111
+ };
112
+ }));
113
+ //#endregion
114
+ //#region src-js/generated/plugin-eslint/rules/semi-style.cjs
115
+ module.exports = require_semi_style().create;
116
+ //#endregion
package/rules/semi.cjs ADDED
@@ -0,0 +1,239 @@
1
+ const require_chunk = require("../common/chunk.cjs"), require_ast_utils$1 = require("../common/ast-utils.cjs"), require_fix_tracker$1 = require("../common/fix-tracker.cjs");
2
+ //#region ../../node_modules/.pnpm/eslint@9.39.3_jiti@2.6.1/node_modules/eslint/lib/rules/semi.js
3
+ /**
4
+ * @fileoverview Rule to flag missing semicolons.
5
+ * @author Nicholas C. Zakas
6
+ * @deprecated in ESLint v8.53.0
7
+ */
8
+ var require_semi = /* @__PURE__ */ require_chunk.t(((exports, module) => {
9
+ let FixTracker = require_fix_tracker$1.t(), 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: "semi",
27
+ url: "https://eslint.style/rules/semi"
28
+ }
29
+ }]
30
+ },
31
+ type: "layout",
32
+ docs: {
33
+ description: "Require or disallow semicolons instead of ASI",
34
+ recommended: !1,
35
+ url: "https://eslint.org/docs/latest/rules/semi"
36
+ },
37
+ fixable: "code",
38
+ schema: { anyOf: [{
39
+ type: "array",
40
+ items: [{ enum: ["never"] }, {
41
+ type: "object",
42
+ properties: { beforeStatementContinuationChars: { enum: [
43
+ "always",
44
+ "any",
45
+ "never"
46
+ ] } },
47
+ additionalProperties: !1
48
+ }],
49
+ minItems: 0,
50
+ maxItems: 2
51
+ }, {
52
+ type: "array",
53
+ items: [{ enum: ["always"] }, {
54
+ type: "object",
55
+ properties: {
56
+ omitLastInOneLineBlock: { type: "boolean" },
57
+ omitLastInOneLineClassBody: { type: "boolean" }
58
+ },
59
+ additionalProperties: !1
60
+ }],
61
+ minItems: 0,
62
+ maxItems: 2
63
+ }] },
64
+ messages: {
65
+ missingSemi: "Missing semicolon.",
66
+ extraSemi: "Extra semicolon."
67
+ }
68
+ },
69
+ create(context) {
70
+ let OPT_OUT_PATTERN = /^[-[(/+`]/u, unsafeClassFieldNames = new Set([
71
+ "get",
72
+ "set",
73
+ "static"
74
+ ]), unsafeClassFieldFollowers = new Set([
75
+ "*",
76
+ "in",
77
+ "instanceof"
78
+ ]), options = context.options[1], never = context.options[0] === "never", exceptOneLine = !!(options && options.omitLastInOneLineBlock), exceptOneLineClassBody = !!(options && options.omitLastInOneLineClassBody), beforeStatementContinuationChars = options && options.beforeStatementContinuationChars || "any", sourceCode = context.sourceCode;
79
+ /**
80
+ * Reports a semicolon error with appropriate location and message.
81
+ * @param {ASTNode} node The node with an extra or missing semicolon.
82
+ * @param {boolean} missing True if the semicolon is missing.
83
+ * @returns {void}
84
+ */
85
+ function report(node, missing) {
86
+ let lastToken = sourceCode.getLastToken(node), messageId, fix, loc;
87
+ missing ? (messageId = "extraSemi", loc = lastToken.loc, fix = function(fixer) {
88
+ return new FixTracker(fixer, sourceCode).retainSurroundingTokens(lastToken).remove(lastToken);
89
+ }) : (messageId = "missingSemi", loc = {
90
+ start: lastToken.loc.end,
91
+ end: astUtils.getNextLocation(sourceCode, lastToken.loc.end)
92
+ }, fix = function(fixer) {
93
+ return fixer.insertTextAfter(lastToken, ";");
94
+ }), context.report({
95
+ node,
96
+ loc,
97
+ messageId,
98
+ fix
99
+ });
100
+ }
101
+ /**
102
+ * Check whether a given semicolon token is redundant.
103
+ * @param {Token} semiToken A semicolon token to check.
104
+ * @returns {boolean} `true` if the next token is `;` or `}`.
105
+ */
106
+ function isRedundantSemi(semiToken) {
107
+ let nextToken = sourceCode.getTokenAfter(semiToken);
108
+ return !nextToken || astUtils.isClosingBraceToken(nextToken) || astUtils.isSemicolonToken(nextToken);
109
+ }
110
+ /**
111
+ * Check whether a given token is the closing brace of an arrow function.
112
+ * @param {Token} lastToken A token to check.
113
+ * @returns {boolean} `true` if the token is the closing brace of an arrow function.
114
+ */
115
+ function isEndOfArrowBlock(lastToken) {
116
+ if (!astUtils.isClosingBraceToken(lastToken)) return !1;
117
+ let node = sourceCode.getNodeByRangeIndex(lastToken.range[0]);
118
+ return node.type === "BlockStatement" && node.parent.type === "ArrowFunctionExpression";
119
+ }
120
+ /**
121
+ * Checks if a given PropertyDefinition node followed by a semicolon
122
+ * can safely remove that semicolon. It is not to safe to remove if
123
+ * the class field name is "get", "set", or "static", or if
124
+ * followed by a generator method.
125
+ * @param {ASTNode} node The node to check.
126
+ * @returns {boolean} `true` if the node cannot have the semicolon
127
+ * removed.
128
+ */
129
+ function maybeClassFieldAsiHazard(node) {
130
+ if (node.type !== "PropertyDefinition") return !1;
131
+ if (!node.computed && node.key.type === "Identifier" && unsafeClassFieldNames.has(node.key.name) && !(node.static && node.key.name === "static") && !node.value) return !0;
132
+ let followingToken = sourceCode.getTokenAfter(node);
133
+ return unsafeClassFieldFollowers.has(followingToken.value);
134
+ }
135
+ /**
136
+ * Check whether a given node is on the same line with the next token.
137
+ * @param {Node} node A statement node to check.
138
+ * @returns {boolean} `true` if the node is on the same line with the next token.
139
+ */
140
+ function isOnSameLineWithNextToken(node) {
141
+ let prevToken = sourceCode.getLastToken(node, 1), nextToken = sourceCode.getTokenAfter(node);
142
+ return !!nextToken && astUtils.isTokenOnSameLine(prevToken, nextToken);
143
+ }
144
+ /**
145
+ * Check whether a given node can connect the next line if the next line is unreliable.
146
+ * @param {Node} node A statement node to check.
147
+ * @returns {boolean} `true` if the node can connect the next line.
148
+ */
149
+ function maybeAsiHazardAfter(node) {
150
+ let t = node.type;
151
+ return t === "DoWhileStatement" || t === "BreakStatement" || t === "ContinueStatement" || t === "DebuggerStatement" || t === "ImportDeclaration" || t === "ExportAllDeclaration" ? !1 : t === "ReturnStatement" ? !!node.argument : t === "ExportNamedDeclaration" ? !!node.declaration : !isEndOfArrowBlock(sourceCode.getLastToken(node, 1));
152
+ }
153
+ /**
154
+ * Check whether a given token can connect the previous statement.
155
+ * @param {Token} token A token to check.
156
+ * @returns {boolean} `true` if the token is one of `[`, `(`, `/`, `+`, `-`, ```, `++`, and `--`.
157
+ */
158
+ function maybeAsiHazardBefore(token) {
159
+ return !!token && OPT_OUT_PATTERN.test(token.value) && token.value !== "++" && token.value !== "--";
160
+ }
161
+ /**
162
+ * Check if the semicolon of a given node is unnecessary, only true if:
163
+ * - next token is a valid statement divider (`;` or `}`).
164
+ * - next token is on a new line and the node is not connectable to the new line.
165
+ * @param {Node} node A statement node to check.
166
+ * @returns {boolean} whether the semicolon is unnecessary.
167
+ */
168
+ function canRemoveSemicolon(node) {
169
+ return isRedundantSemi(sourceCode.getLastToken(node)) ? !0 : maybeClassFieldAsiHazard(node) || isOnSameLineWithNextToken(node) ? !1 : node.type !== "PropertyDefinition" && beforeStatementContinuationChars === "never" && !maybeAsiHazardAfter(node) || !maybeAsiHazardBefore(sourceCode.getTokenAfter(node));
170
+ }
171
+ /**
172
+ * Checks a node to see if it's the last item in a one-liner block.
173
+ * Block is any `BlockStatement` or `StaticBlock` node. Block is a one-liner if its
174
+ * braces (and consequently everything between them) are on the same line.
175
+ * @param {ASTNode} node The node to check.
176
+ * @returns {boolean} whether the node is the last item in a one-liner block.
177
+ */
178
+ function isLastInOneLinerBlock(node) {
179
+ let parent = node.parent, nextToken = sourceCode.getTokenAfter(node);
180
+ return !nextToken || nextToken.value !== "}" ? !1 : parent.type === "BlockStatement" ? parent.loc.start.line === parent.loc.end.line : parent.type === "StaticBlock" ? sourceCode.getFirstToken(parent, { skip: 1 }).loc.start.line === parent.loc.end.line : !1;
181
+ }
182
+ /**
183
+ * Checks a node to see if it's the last item in a one-liner `ClassBody` node.
184
+ * ClassBody is a one-liner if its braces (and consequently everything between them) are on the same line.
185
+ * @param {ASTNode} node The node to check.
186
+ * @returns {boolean} whether the node is the last item in a one-liner ClassBody.
187
+ */
188
+ function isLastInOneLinerClassBody(node) {
189
+ let parent = node.parent, nextToken = sourceCode.getTokenAfter(node);
190
+ return !nextToken || nextToken.value !== "}" ? !1 : parent.type === "ClassBody" ? parent.loc.start.line === parent.loc.end.line : !1;
191
+ }
192
+ /**
193
+ * Checks a node to see if it's followed by a semicolon.
194
+ * @param {ASTNode} node The node to check.
195
+ * @returns {void}
196
+ */
197
+ function checkForSemicolon(node) {
198
+ let isSemi = astUtils.isSemicolonToken(sourceCode.getLastToken(node));
199
+ if (never) isSemi && canRemoveSemicolon(node) ? report(node, !0) : !isSemi && beforeStatementContinuationChars === "always" && node.type !== "PropertyDefinition" && maybeAsiHazardBefore(sourceCode.getTokenAfter(node)) && report(node);
200
+ else {
201
+ let oneLinerBlock = exceptOneLine && isLastInOneLinerBlock(node), oneLinerClassBody = exceptOneLineClassBody && isLastInOneLinerClassBody(node), oneLinerBlockOrClassBody = oneLinerBlock || oneLinerClassBody;
202
+ isSemi && oneLinerBlockOrClassBody ? report(node, !0) : !isSemi && !oneLinerBlockOrClassBody && report(node);
203
+ }
204
+ }
205
+ /**
206
+ * Checks to see if there's a semicolon after a variable declaration.
207
+ * @param {ASTNode} node The node to check.
208
+ * @returns {void}
209
+ */
210
+ function checkForSemicolonForVariableDeclaration(node) {
211
+ let parent = node.parent;
212
+ (parent.type !== "ForStatement" || parent.init !== node) && (!/^For(?:In|Of)Statement/u.test(parent.type) || parent.left !== node) && checkForSemicolon(node);
213
+ }
214
+ return {
215
+ VariableDeclaration: checkForSemicolonForVariableDeclaration,
216
+ ExpressionStatement: checkForSemicolon,
217
+ ReturnStatement: checkForSemicolon,
218
+ ThrowStatement: checkForSemicolon,
219
+ DoWhileStatement: checkForSemicolon,
220
+ DebuggerStatement: checkForSemicolon,
221
+ BreakStatement: checkForSemicolon,
222
+ ContinueStatement: checkForSemicolon,
223
+ ImportDeclaration: checkForSemicolon,
224
+ ExportAllDeclaration: checkForSemicolon,
225
+ ExportNamedDeclaration(node) {
226
+ node.declaration || checkForSemicolon(node);
227
+ },
228
+ ExportDefaultDeclaration(node) {
229
+ /(?:Class|Function)Declaration/u.test(node.declaration.type) || checkForSemicolon(node);
230
+ },
231
+ PropertyDefinition: checkForSemicolon
232
+ };
233
+ }
234
+ };
235
+ }));
236
+ //#endregion
237
+ //#region src-js/generated/plugin-eslint/rules/semi.cjs
238
+ module.exports = require_semi().create;
239
+ //#endregion