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,464 @@
1
+ const require_chunk = require("../common/chunk.cjs"), require_ast_utils$1 = require("../common/ast-utils.cjs"), require_keywords$1 = require("../common/keywords.cjs");
2
+ //#region ../../node_modules/.pnpm/eslint@9.39.3_jiti@2.6.1/node_modules/eslint/lib/rules/keyword-spacing.js
3
+ /**
4
+ * @fileoverview Rule to enforce spacing before and after keywords.
5
+ * @author Toru Nagashima
6
+ * @deprecated in ESLint v8.53.0
7
+ */
8
+ var require_keyword_spacing = /* @__PURE__ */ require_chunk.t(((exports, module) => {
9
+ let astUtils = require_ast_utils$1.t(), keywords = require_keywords$1.t(), PREV_TOKEN = /^[)\]}>]$/u, NEXT_TOKEN = /^(?:[([{<~!]|\+\+?|--?)$/u, PREV_TOKEN_M = /^[)\]}>*]$/u, NEXT_TOKEN_M = /^[{*]$/u, TEMPLATE_OPEN_PAREN = /\$\{$/u, TEMPLATE_CLOSE_PAREN = /^\}/u, CHECK_TYPE = /^(?:JSXElement|RegularExpression|String|Template|PrivateIdentifier)$/u, KEYS = keywords.concat([
10
+ "as",
11
+ "async",
12
+ "await",
13
+ "from",
14
+ "get",
15
+ "let",
16
+ "of",
17
+ "set",
18
+ "yield"
19
+ ]);
20
+ (function() {
21
+ KEYS.sort();
22
+ for (let i = 1; i < KEYS.length; ++i) if (KEYS[i] === KEYS[i - 1]) throw Error(`Duplication was found in the keyword list: ${KEYS[i]}`);
23
+ })();
24
+ /**
25
+ * Checks whether or not a given token is a "Template" token ends with "${".
26
+ * @param {Token} token A token to check.
27
+ * @returns {boolean} `true` if the token is a "Template" token ends with "${".
28
+ */
29
+ function isOpenParenOfTemplate(token) {
30
+ return token.type === "Template" && TEMPLATE_OPEN_PAREN.test(token.value);
31
+ }
32
+ /**
33
+ * Checks whether or not a given token is a "Template" token starts with "}".
34
+ * @param {Token} token A token to check.
35
+ * @returns {boolean} `true` if the token is a "Template" token starts with "}".
36
+ */
37
+ function isCloseParenOfTemplate(token) {
38
+ return token.type === "Template" && TEMPLATE_CLOSE_PAREN.test(token.value);
39
+ }
40
+ /** @type {import('../types').Rule.RuleModule} */
41
+ module.exports = {
42
+ meta: {
43
+ deprecated: {
44
+ message: "Formatting rules are being moved out of ESLint core.",
45
+ url: "https://eslint.org/blog/2023/10/deprecating-formatting-rules/",
46
+ deprecatedSince: "8.53.0",
47
+ availableUntil: "11.0.0",
48
+ replacedBy: [{
49
+ message: "ESLint Stylistic now maintains deprecated stylistic core rules.",
50
+ url: "https://eslint.style/guide/migration",
51
+ plugin: {
52
+ name: "@stylistic/eslint-plugin",
53
+ url: "https://eslint.style"
54
+ },
55
+ rule: {
56
+ name: "keyword-spacing",
57
+ url: "https://eslint.style/rules/keyword-spacing"
58
+ }
59
+ }]
60
+ },
61
+ type: "layout",
62
+ docs: {
63
+ description: "Enforce consistent spacing before and after keywords",
64
+ recommended: !1,
65
+ url: "https://eslint.org/docs/latest/rules/keyword-spacing"
66
+ },
67
+ fixable: "whitespace",
68
+ schema: [{
69
+ type: "object",
70
+ properties: {
71
+ before: {
72
+ type: "boolean",
73
+ default: !0
74
+ },
75
+ after: {
76
+ type: "boolean",
77
+ default: !0
78
+ },
79
+ overrides: {
80
+ type: "object",
81
+ properties: KEYS.reduce((retv, key) => (retv[key] = {
82
+ type: "object",
83
+ properties: {
84
+ before: { type: "boolean" },
85
+ after: { type: "boolean" }
86
+ },
87
+ additionalProperties: !1
88
+ }, retv), {}),
89
+ additionalProperties: !1
90
+ }
91
+ },
92
+ additionalProperties: !1
93
+ }],
94
+ messages: {
95
+ expectedBefore: "Expected space(s) before \"{{value}}\".",
96
+ expectedAfter: "Expected space(s) after \"{{value}}\".",
97
+ unexpectedBefore: "Unexpected space(s) before \"{{value}}\".",
98
+ unexpectedAfter: "Unexpected space(s) after \"{{value}}\"."
99
+ }
100
+ },
101
+ create(context) {
102
+ let sourceCode = context.sourceCode, tokensToIgnore = /* @__PURE__ */ new WeakSet();
103
+ /**
104
+ * Reports a given token if there are not space(s) before the token.
105
+ * @param {Token} token A token to report.
106
+ * @param {RegExp} pattern A pattern of the previous token to check.
107
+ * @returns {void}
108
+ */
109
+ function expectSpaceBefore(token, pattern) {
110
+ let prevToken = sourceCode.getTokenBefore(token);
111
+ prevToken && (CHECK_TYPE.test(prevToken.type) || pattern.test(prevToken.value)) && !isOpenParenOfTemplate(prevToken) && !tokensToIgnore.has(prevToken) && astUtils.isTokenOnSameLine(prevToken, token) && !sourceCode.isSpaceBetweenTokens(prevToken, token) && context.report({
112
+ loc: token.loc,
113
+ messageId: "expectedBefore",
114
+ data: token,
115
+ fix(fixer) {
116
+ return fixer.insertTextBefore(token, " ");
117
+ }
118
+ });
119
+ }
120
+ /**
121
+ * Reports a given token if there are space(s) before the token.
122
+ * @param {Token} token A token to report.
123
+ * @param {RegExp} pattern A pattern of the previous token to check.
124
+ * @returns {void}
125
+ */
126
+ function unexpectSpaceBefore(token, pattern) {
127
+ let prevToken = sourceCode.getTokenBefore(token);
128
+ prevToken && (CHECK_TYPE.test(prevToken.type) || pattern.test(prevToken.value)) && !isOpenParenOfTemplate(prevToken) && !tokensToIgnore.has(prevToken) && astUtils.isTokenOnSameLine(prevToken, token) && sourceCode.isSpaceBetweenTokens(prevToken, token) && context.report({
129
+ loc: {
130
+ start: prevToken.loc.end,
131
+ end: token.loc.start
132
+ },
133
+ messageId: "unexpectedBefore",
134
+ data: token,
135
+ fix(fixer) {
136
+ return fixer.removeRange([prevToken.range[1], token.range[0]]);
137
+ }
138
+ });
139
+ }
140
+ /**
141
+ * Reports a given token if there are not space(s) after the token.
142
+ * @param {Token} token A token to report.
143
+ * @param {RegExp} pattern A pattern of the next token to check.
144
+ * @returns {void}
145
+ */
146
+ function expectSpaceAfter(token, pattern) {
147
+ let nextToken = sourceCode.getTokenAfter(token);
148
+ nextToken && (CHECK_TYPE.test(nextToken.type) || pattern.test(nextToken.value)) && !isCloseParenOfTemplate(nextToken) && !tokensToIgnore.has(nextToken) && astUtils.isTokenOnSameLine(token, nextToken) && !sourceCode.isSpaceBetweenTokens(token, nextToken) && context.report({
149
+ loc: token.loc,
150
+ messageId: "expectedAfter",
151
+ data: token,
152
+ fix(fixer) {
153
+ return fixer.insertTextAfter(token, " ");
154
+ }
155
+ });
156
+ }
157
+ /**
158
+ * Reports a given token if there are space(s) after the token.
159
+ * @param {Token} token A token to report.
160
+ * @param {RegExp} pattern A pattern of the next token to check.
161
+ * @returns {void}
162
+ */
163
+ function unexpectSpaceAfter(token, pattern) {
164
+ let nextToken = sourceCode.getTokenAfter(token);
165
+ nextToken && (CHECK_TYPE.test(nextToken.type) || pattern.test(nextToken.value)) && !isCloseParenOfTemplate(nextToken) && !tokensToIgnore.has(nextToken) && astUtils.isTokenOnSameLine(token, nextToken) && sourceCode.isSpaceBetweenTokens(token, nextToken) && context.report({
166
+ loc: {
167
+ start: token.loc.end,
168
+ end: nextToken.loc.start
169
+ },
170
+ messageId: "unexpectedAfter",
171
+ data: token,
172
+ fix(fixer) {
173
+ return fixer.removeRange([token.range[1], nextToken.range[0]]);
174
+ }
175
+ });
176
+ }
177
+ /**
178
+ * Parses the option object and determines check methods for each keyword.
179
+ * @param {Object|undefined} options The option object to parse.
180
+ * @returns {Object} - Normalized option object.
181
+ * Keys are keywords (there are for every keyword).
182
+ * Values are instances of `{"before": function, "after": function}`.
183
+ */
184
+ function parseOptions(options = {}) {
185
+ let before = options.before !== !1, after = options.after !== !1, defaultValue = {
186
+ before: before ? expectSpaceBefore : unexpectSpaceBefore,
187
+ after: after ? expectSpaceAfter : unexpectSpaceAfter
188
+ }, overrides = options && options.overrides || {}, retv = Object.create(null);
189
+ for (let i = 0; i < KEYS.length; ++i) {
190
+ let key = KEYS[i], override = overrides[key];
191
+ if (override) {
192
+ let thisBefore = "before" in override ? override.before : before, thisAfter = "after" in override ? override.after : after;
193
+ retv[key] = {
194
+ before: thisBefore ? expectSpaceBefore : unexpectSpaceBefore,
195
+ after: thisAfter ? expectSpaceAfter : unexpectSpaceAfter
196
+ };
197
+ } else retv[key] = defaultValue;
198
+ }
199
+ return retv;
200
+ }
201
+ let checkMethodMap = parseOptions(context.options[0]);
202
+ /**
203
+ * Reports a given token if usage of spacing followed by the token is
204
+ * invalid.
205
+ * @param {Token} token A token to report.
206
+ * @param {RegExp} [pattern] Optional. A pattern of the previous
207
+ * token to check.
208
+ * @returns {void}
209
+ */
210
+ function checkSpacingBefore(token, pattern) {
211
+ checkMethodMap[token.value].before(token, pattern || PREV_TOKEN);
212
+ }
213
+ /**
214
+ * Reports a given token if usage of spacing preceded by the token is
215
+ * invalid.
216
+ * @param {Token} token A token to report.
217
+ * @param {RegExp} [pattern] Optional. A pattern of the next
218
+ * token to check.
219
+ * @returns {void}
220
+ */
221
+ function checkSpacingAfter(token, pattern) {
222
+ checkMethodMap[token.value].after(token, pattern || NEXT_TOKEN);
223
+ }
224
+ /**
225
+ * Reports a given token if usage of spacing around the token is invalid.
226
+ * @param {Token} token A token to report.
227
+ * @returns {void}
228
+ */
229
+ function checkSpacingAround(token) {
230
+ checkSpacingBefore(token), checkSpacingAfter(token);
231
+ }
232
+ /**
233
+ * Reports the first token of a given node if the first token is a keyword
234
+ * and usage of spacing around the token is invalid.
235
+ * @param {ASTNode|null} node A node to report.
236
+ * @returns {void}
237
+ */
238
+ function checkSpacingAroundFirstToken(node) {
239
+ let firstToken = node && sourceCode.getFirstToken(node);
240
+ firstToken && firstToken.type === "Keyword" && checkSpacingAround(firstToken);
241
+ }
242
+ /**
243
+ * Reports the first token of a given node if the first token is a keyword
244
+ * and usage of spacing followed by the token is invalid.
245
+ *
246
+ * This is used for unary operators (e.g. `typeof`), `function`, and `super`.
247
+ * Other rules are handling usage of spacing preceded by those keywords.
248
+ * @param {ASTNode|null} node A node to report.
249
+ * @returns {void}
250
+ */
251
+ function checkSpacingBeforeFirstToken(node) {
252
+ let firstToken = node && sourceCode.getFirstToken(node);
253
+ firstToken && firstToken.type === "Keyword" && checkSpacingBefore(firstToken);
254
+ }
255
+ /**
256
+ * Reports the previous token of a given node if the token is a keyword and
257
+ * usage of spacing around the token is invalid.
258
+ * @param {ASTNode|null} node A node to report.
259
+ * @returns {void}
260
+ */
261
+ function checkSpacingAroundTokenBefore(node) {
262
+ node && checkSpacingAround(sourceCode.getTokenBefore(node, astUtils.isKeywordToken));
263
+ }
264
+ /**
265
+ * Reports `async` or `function` keywords of a given node if usage of
266
+ * spacing around those keywords is invalid.
267
+ * @param {ASTNode} node A node to report.
268
+ * @returns {void}
269
+ */
270
+ function checkSpacingForFunction(node) {
271
+ let firstToken = node && sourceCode.getFirstToken(node);
272
+ firstToken && (firstToken.type === "Keyword" && firstToken.value === "function" || firstToken.value === "async") && checkSpacingBefore(firstToken);
273
+ }
274
+ /**
275
+ * Reports `class` and `extends` keywords of a given node if usage of
276
+ * spacing around those keywords is invalid.
277
+ * @param {ASTNode} node A node to report.
278
+ * @returns {void}
279
+ */
280
+ function checkSpacingForClass(node) {
281
+ checkSpacingAroundFirstToken(node), checkSpacingAroundTokenBefore(node.superClass);
282
+ }
283
+ /**
284
+ * Reports `if` and `else` keywords of a given node if usage of spacing
285
+ * around those keywords is invalid.
286
+ * @param {ASTNode} node A node to report.
287
+ * @returns {void}
288
+ */
289
+ function checkSpacingForIfStatement(node) {
290
+ checkSpacingAroundFirstToken(node), checkSpacingAroundTokenBefore(node.alternate);
291
+ }
292
+ /**
293
+ * Reports `try`, `catch`, and `finally` keywords of a given node if usage
294
+ * of spacing around those keywords is invalid.
295
+ * @param {ASTNode} node A node to report.
296
+ * @returns {void}
297
+ */
298
+ function checkSpacingForTryStatement(node) {
299
+ checkSpacingAroundFirstToken(node), checkSpacingAroundFirstToken(node.handler), checkSpacingAroundTokenBefore(node.finalizer);
300
+ }
301
+ /**
302
+ * Reports `do` and `while` keywords of a given node if usage of spacing
303
+ * around those keywords is invalid.
304
+ * @param {ASTNode} node A node to report.
305
+ * @returns {void}
306
+ */
307
+ function checkSpacingForDoWhileStatement(node) {
308
+ checkSpacingAroundFirstToken(node), checkSpacingAroundTokenBefore(node.test);
309
+ }
310
+ /**
311
+ * Reports `for` and `in` keywords of a given node if usage of spacing
312
+ * around those keywords is invalid.
313
+ * @param {ASTNode} node A node to report.
314
+ * @returns {void}
315
+ */
316
+ function checkSpacingForForInStatement(node) {
317
+ checkSpacingAroundFirstToken(node);
318
+ let inToken = sourceCode.getTokenBefore(node.right, astUtils.isNotOpeningParenToken);
319
+ sourceCode.getTokenBefore(inToken).type !== "PrivateIdentifier" && checkSpacingBefore(inToken), checkSpacingAfter(inToken);
320
+ }
321
+ /**
322
+ * Reports `for` and `of` keywords of a given node if usage of spacing
323
+ * around those keywords is invalid.
324
+ * @param {ASTNode} node A node to report.
325
+ * @returns {void}
326
+ */
327
+ function checkSpacingForForOfStatement(node) {
328
+ node.await ? (checkSpacingBefore(sourceCode.getFirstToken(node, 0)), checkSpacingAfter(sourceCode.getFirstToken(node, 1))) : checkSpacingAroundFirstToken(node);
329
+ let ofToken = sourceCode.getTokenBefore(node.right, astUtils.isNotOpeningParenToken);
330
+ sourceCode.getTokenBefore(ofToken).type !== "PrivateIdentifier" && checkSpacingBefore(ofToken), checkSpacingAfter(ofToken);
331
+ }
332
+ /**
333
+ * Reports `import`, `export`, `as`, and `from` keywords of a given node if
334
+ * usage of spacing around those keywords is invalid.
335
+ *
336
+ * This rule handles the `*` token in module declarations.
337
+ *
338
+ * import*as A from "./a"; /*error Expected space(s) after "import".
339
+ * error Expected space(s) before "as".
340
+ * @param {ASTNode} node A node to report.
341
+ * @returns {void}
342
+ */
343
+ function checkSpacingForModuleDeclaration(node) {
344
+ let firstToken = sourceCode.getFirstToken(node);
345
+ if (checkSpacingBefore(firstToken, PREV_TOKEN_M), checkSpacingAfter(firstToken, NEXT_TOKEN_M), node.type === "ExportDefaultDeclaration" && checkSpacingAround(sourceCode.getTokenAfter(firstToken)), node.type === "ExportAllDeclaration" && node.exported) {
346
+ let asToken = sourceCode.getTokenBefore(node.exported);
347
+ checkSpacingBefore(asToken, PREV_TOKEN_M), checkSpacingAfter(asToken, NEXT_TOKEN_M);
348
+ }
349
+ if (node.source) {
350
+ let fromToken = sourceCode.getTokenBefore(node.source);
351
+ checkSpacingBefore(fromToken, PREV_TOKEN_M), checkSpacingAfter(fromToken, NEXT_TOKEN_M);
352
+ }
353
+ }
354
+ /**
355
+ * Reports `as` keyword of a given node if usage of spacing around this
356
+ * keyword is invalid.
357
+ * @param {ASTNode} node An `ImportSpecifier` node to check.
358
+ * @returns {void}
359
+ */
360
+ function checkSpacingForImportSpecifier(node) {
361
+ node.imported.range[0] !== node.local.range[0] && checkSpacingBefore(sourceCode.getTokenBefore(node.local), PREV_TOKEN_M);
362
+ }
363
+ /**
364
+ * Reports `as` keyword of a given node if usage of spacing around this
365
+ * keyword is invalid.
366
+ * @param {ASTNode} node An `ExportSpecifier` node to check.
367
+ * @returns {void}
368
+ */
369
+ function checkSpacingForExportSpecifier(node) {
370
+ if (node.local.range[0] !== node.exported.range[0]) {
371
+ let asToken = sourceCode.getTokenBefore(node.exported);
372
+ checkSpacingBefore(asToken, PREV_TOKEN_M), checkSpacingAfter(asToken, NEXT_TOKEN_M);
373
+ }
374
+ }
375
+ /**
376
+ * Reports `as` keyword of a given node if usage of spacing around this
377
+ * keyword is invalid.
378
+ * @param {ASTNode} node A node to report.
379
+ * @returns {void}
380
+ */
381
+ function checkSpacingForImportNamespaceSpecifier(node) {
382
+ checkSpacingBefore(sourceCode.getFirstToken(node, 1), PREV_TOKEN_M);
383
+ }
384
+ /**
385
+ * Reports `static`, `get`, and `set` keywords of a given node if usage of
386
+ * spacing around those keywords is invalid.
387
+ * @param {ASTNode} node A node to report.
388
+ * @throws {Error} If unable to find token get, set, or async beside method name.
389
+ * @returns {void}
390
+ */
391
+ function checkSpacingForProperty(node) {
392
+ if (node.static && checkSpacingAroundFirstToken(node), node.kind === "get" || node.kind === "set" || (node.method || node.type === "MethodDefinition") && node.value.async) {
393
+ let token = sourceCode.getTokenBefore(node.key, (tok) => {
394
+ switch (tok.value) {
395
+ case "get":
396
+ case "set":
397
+ case "async": return !0;
398
+ default: return !1;
399
+ }
400
+ });
401
+ if (!token) throw Error("Failed to find token get, set, or async beside method name");
402
+ checkSpacingAround(token);
403
+ }
404
+ }
405
+ /**
406
+ * Reports `await` keyword of a given node if usage of spacing before
407
+ * this keyword is invalid.
408
+ * @param {ASTNode} node A node to report.
409
+ * @returns {void}
410
+ */
411
+ function checkSpacingForAwaitExpression(node) {
412
+ checkSpacingBefore(sourceCode.getFirstToken(node));
413
+ }
414
+ return {
415
+ DebuggerStatement: checkSpacingAroundFirstToken,
416
+ WithStatement: checkSpacingAroundFirstToken,
417
+ BreakStatement: checkSpacingAroundFirstToken,
418
+ ContinueStatement: checkSpacingAroundFirstToken,
419
+ ReturnStatement: checkSpacingAroundFirstToken,
420
+ ThrowStatement: checkSpacingAroundFirstToken,
421
+ TryStatement: checkSpacingForTryStatement,
422
+ IfStatement: checkSpacingForIfStatement,
423
+ SwitchStatement: checkSpacingAroundFirstToken,
424
+ SwitchCase: checkSpacingAroundFirstToken,
425
+ DoWhileStatement: checkSpacingForDoWhileStatement,
426
+ ForInStatement: checkSpacingForForInStatement,
427
+ ForOfStatement: checkSpacingForForOfStatement,
428
+ ForStatement: checkSpacingAroundFirstToken,
429
+ WhileStatement: checkSpacingAroundFirstToken,
430
+ ClassDeclaration: checkSpacingForClass,
431
+ ExportNamedDeclaration: checkSpacingForModuleDeclaration,
432
+ ExportDefaultDeclaration: checkSpacingForModuleDeclaration,
433
+ ExportAllDeclaration: checkSpacingForModuleDeclaration,
434
+ FunctionDeclaration: checkSpacingForFunction,
435
+ ImportDeclaration: checkSpacingForModuleDeclaration,
436
+ VariableDeclaration: checkSpacingAroundFirstToken,
437
+ ArrowFunctionExpression: checkSpacingForFunction,
438
+ AwaitExpression: checkSpacingForAwaitExpression,
439
+ ClassExpression: checkSpacingForClass,
440
+ FunctionExpression: checkSpacingForFunction,
441
+ NewExpression: checkSpacingBeforeFirstToken,
442
+ Super: checkSpacingBeforeFirstToken,
443
+ ThisExpression: checkSpacingBeforeFirstToken,
444
+ UnaryExpression: checkSpacingBeforeFirstToken,
445
+ YieldExpression: checkSpacingBeforeFirstToken,
446
+ ImportSpecifier: checkSpacingForImportSpecifier,
447
+ ExportSpecifier: checkSpacingForExportSpecifier,
448
+ ImportNamespaceSpecifier: checkSpacingForImportNamespaceSpecifier,
449
+ MethodDefinition: checkSpacingForProperty,
450
+ PropertyDefinition: checkSpacingForProperty,
451
+ StaticBlock: checkSpacingAroundFirstToken,
452
+ Property: checkSpacingForProperty,
453
+ "BinaryExpression[operator='>']"(node) {
454
+ let operatorToken = sourceCode.getTokenBefore(node.right, astUtils.isNotOpeningParenToken);
455
+ tokensToIgnore.add(operatorToken);
456
+ }
457
+ };
458
+ }
459
+ };
460
+ }));
461
+ //#endregion
462
+ //#region src-js/generated/plugin-eslint/rules/keyword-spacing.cjs
463
+ module.exports = require_keyword_spacing().create;
464
+ //#endregion
@@ -0,0 +1,75 @@
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/line-comment-position.js
3
+ /**
4
+ * @fileoverview Rule to enforce the position of line comments
5
+ * @author Alberto Rodríguez
6
+ * @deprecated in ESLint v9.3.0
7
+ */
8
+ var require_line_comment_position = /* @__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: "9.3.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: "line-comment-position",
27
+ url: "https://eslint.style/rules/line-comment-position"
28
+ }
29
+ }]
30
+ },
31
+ type: "layout",
32
+ docs: {
33
+ description: "Enforce position of line comments",
34
+ recommended: !1,
35
+ url: "https://eslint.org/docs/latest/rules/line-comment-position"
36
+ },
37
+ schema: [{ oneOf: [{ enum: ["above", "beside"] }, {
38
+ type: "object",
39
+ properties: {
40
+ position: { enum: ["above", "beside"] },
41
+ ignorePattern: { type: "string" },
42
+ applyDefaultPatterns: { type: "boolean" },
43
+ applyDefaultIgnorePatterns: { type: "boolean" }
44
+ },
45
+ additionalProperties: !1
46
+ }] }],
47
+ messages: {
48
+ above: "Expected comment to be above code.",
49
+ beside: "Expected comment to be beside code."
50
+ }
51
+ },
52
+ create(context) {
53
+ let options = context.options[0], above, ignorePattern, applyDefaultIgnorePatterns = !0;
54
+ !options || typeof options == "string" ? above = !options || options === "above" : (above = !options.position || options.position === "above", ignorePattern = options.ignorePattern, applyDefaultIgnorePatterns = Object.hasOwn(options, "applyDefaultIgnorePatterns") ? options.applyDefaultIgnorePatterns : options.applyDefaultPatterns !== !1);
55
+ let defaultIgnoreRegExp = astUtils.COMMENTS_IGNORE_PATTERN, fallThroughRegExp = /^\s*falls?\s?through/u, customIgnoreRegExp = new RegExp(ignorePattern, "u"), sourceCode = context.sourceCode;
56
+ return { Program() {
57
+ sourceCode.getAllComments().filter((token) => token.type === "Line").forEach((node) => {
58
+ if (applyDefaultIgnorePatterns && (defaultIgnoreRegExp.test(node.value) || fallThroughRegExp.test(node.value)) || ignorePattern && customIgnoreRegExp.test(node.value)) return;
59
+ let previous = sourceCode.getTokenBefore(node, { includeComments: !0 }), isOnSameLine = previous && previous.loc.end.line === node.loc.start.line;
60
+ above ? isOnSameLine && context.report({
61
+ node,
62
+ messageId: "above"
63
+ }) : isOnSameLine || context.report({
64
+ node,
65
+ messageId: "beside"
66
+ });
67
+ });
68
+ } };
69
+ }
70
+ };
71
+ }));
72
+ //#endregion
73
+ //#region src-js/generated/plugin-eslint/rules/line-comment-position.cjs
74
+ module.exports = require_line_comment_position().create;
75
+ //#endregion
@@ -0,0 +1,89 @@
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/linebreak-style.js
3
+ /**
4
+ * @fileoverview Rule to enforce a single linebreak style.
5
+ * @author Erik Mueller
6
+ * @deprecated in ESLint v8.53.0
7
+ */
8
+ var require_linebreak_style = /* @__PURE__ */ require_chunk.t(((exports, module) => {
9
+ /**
10
+ * @import { SourceRange } from "@eslint/core";
11
+ */
12
+ let astUtils = require_ast_utils$1.t();
13
+ /** @type {import('../types').Rule.RuleModule} */
14
+ module.exports = {
15
+ meta: {
16
+ deprecated: {
17
+ message: "Formatting rules are being moved out of ESLint core.",
18
+ url: "https://eslint.org/blog/2023/10/deprecating-formatting-rules/",
19
+ deprecatedSince: "8.53.0",
20
+ availableUntil: "11.0.0",
21
+ replacedBy: [{
22
+ message: "ESLint Stylistic now maintains deprecated stylistic core rules.",
23
+ url: "https://eslint.style/guide/migration",
24
+ plugin: {
25
+ name: "@stylistic/eslint-plugin",
26
+ url: "https://eslint.style"
27
+ },
28
+ rule: {
29
+ name: "linebreak-style",
30
+ url: "https://eslint.style/rules/linebreak-style"
31
+ }
32
+ }]
33
+ },
34
+ type: "layout",
35
+ docs: {
36
+ description: "Enforce consistent linebreak style",
37
+ recommended: !1,
38
+ url: "https://eslint.org/docs/latest/rules/linebreak-style"
39
+ },
40
+ fixable: "whitespace",
41
+ schema: [{ enum: ["unix", "windows"] }],
42
+ messages: {
43
+ expectedLF: "Expected linebreaks to be 'LF' but found 'CRLF'.",
44
+ expectedCRLF: "Expected linebreaks to be 'CRLF' but found 'LF'."
45
+ }
46
+ },
47
+ create(context) {
48
+ let sourceCode = context.sourceCode;
49
+ /**
50
+ * Builds a fix function that replaces text at the specified range in the source text.
51
+ * @param {SourceRange} range The range to replace
52
+ * @param {string} text The text to insert.
53
+ * @returns {Function} Fixer function
54
+ * @private
55
+ */
56
+ function createFix(range, text) {
57
+ return function(fixer) {
58
+ return fixer.replaceTextRange(range, text);
59
+ };
60
+ }
61
+ return { Program: function checkForLinebreakStyle(node) {
62
+ let expectedLF = (context.options[0] || "unix") === "unix", expectedLFChars = expectedLF ? "\n" : "\r\n", source = sourceCode.getText(), pattern = astUtils.createGlobalLinebreakMatcher(), match, i = 0;
63
+ for (; (match = pattern.exec(source)) !== null;) {
64
+ if (i++, match[0] === expectedLFChars) continue;
65
+ let index = match.index, range = [index, index + match[0].length];
66
+ context.report({
67
+ node,
68
+ loc: {
69
+ start: {
70
+ line: i,
71
+ column: sourceCode.lines[i - 1].length
72
+ },
73
+ end: {
74
+ line: i + 1,
75
+ column: 0
76
+ }
77
+ },
78
+ messageId: expectedLF ? "expectedLF" : "expectedCRLF",
79
+ fix: createFix(range, expectedLFChars)
80
+ });
81
+ }
82
+ } };
83
+ }
84
+ };
85
+ }));
86
+ //#endregion
87
+ //#region src-js/generated/plugin-eslint/rules/linebreak-style.cjs
88
+ module.exports = require_linebreak_style().create;
89
+ //#endregion