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,117 @@
1
+ //#region ../../node_modules/.pnpm/eslint@9.39.3_jiti@2.6.1/node_modules/eslint/lib/rules/no-mixed-requires.js
2
+ /**
3
+ * @fileoverview Rule to enforce grouped require statements for Node.JS
4
+ * @author Raphael Pigulla
5
+ * @deprecated in ESLint v7.0.0
6
+ */
7
+ var require_no_mixed_requires = /* @__PURE__ */ require("../common/chunk.cjs").t(((exports, module) => {
8
+ /** @type {import('../types').Rule.RuleModule} */
9
+ module.exports = {
10
+ meta: {
11
+ deprecated: {
12
+ message: "Node.js rules were moved out of ESLint core.",
13
+ url: "https://eslint.org/docs/latest/use/migrating-to-7.0.0#deprecate-node-rules",
14
+ deprecatedSince: "7.0.0",
15
+ availableUntil: "11.0.0",
16
+ replacedBy: [{
17
+ message: "eslint-plugin-n now maintains deprecated Node.js-related rules.",
18
+ plugin: {
19
+ name: "eslint-plugin-n",
20
+ url: "https://github.com/eslint-community/eslint-plugin-n"
21
+ },
22
+ rule: {
23
+ name: "no-mixed-requires",
24
+ url: "https://github.com/eslint-community/eslint-plugin-n/tree/master/docs/rules/no-mixed-requires.md"
25
+ }
26
+ }]
27
+ },
28
+ type: "suggestion",
29
+ docs: {
30
+ description: "Disallow `require` calls to be mixed with regular variable declarations",
31
+ recommended: !1,
32
+ url: "https://eslint.org/docs/latest/rules/no-mixed-requires"
33
+ },
34
+ schema: [{ oneOf: [{ type: "boolean" }, {
35
+ type: "object",
36
+ properties: {
37
+ grouping: { type: "boolean" },
38
+ allowCall: { type: "boolean" }
39
+ },
40
+ additionalProperties: !1
41
+ }] }],
42
+ messages: {
43
+ noMixRequire: "Do not mix 'require' and other declarations.",
44
+ noMixCoreModuleFileComputed: "Do not mix core, module, file and computed requires."
45
+ }
46
+ },
47
+ create(context) {
48
+ let options = context.options[0], grouping = !1, allowCall = !1;
49
+ typeof options == "object" ? (grouping = options.grouping, allowCall = options.allowCall) : grouping = !!options;
50
+ /**
51
+ * Returns the list of built-in modules.
52
+ * @returns {string[]} An array of built-in Node.js modules.
53
+ */
54
+ function getBuiltinModules() {
55
+ return /* @__PURE__ */ "assert.buffer.child_process.cluster.crypto.dgram.dns.domain.events.fs.http.https.net.os.path.punycode.querystring.readline.repl.smalloc.stream.string_decoder.tls.tty.url.util.v8.vm.zlib".split(".");
56
+ }
57
+ let BUILTIN_MODULES = getBuiltinModules(), DECL_REQUIRE = "require", DECL_UNINITIALIZED = "uninitialized", DECL_OTHER = "other", REQ_COMPUTED = "computed";
58
+ /**
59
+ * Determines the type of a declaration statement.
60
+ * @param {ASTNode} initExpression The init node of the VariableDeclarator.
61
+ * @returns {string} The type of declaration represented by the expression.
62
+ */
63
+ function getDeclarationType(initExpression) {
64
+ return initExpression ? initExpression.type === "CallExpression" && initExpression.callee.type === "Identifier" && initExpression.callee.name === "require" ? DECL_REQUIRE : allowCall && initExpression.type === "CallExpression" && initExpression.callee.type === "CallExpression" ? getDeclarationType(initExpression.callee) : initExpression.type === "MemberExpression" ? getDeclarationType(initExpression.object) : DECL_OTHER : DECL_UNINITIALIZED;
65
+ }
66
+ /**
67
+ * Determines the type of module that is loaded via require.
68
+ * @param {ASTNode} initExpression The init node of the VariableDeclarator.
69
+ * @returns {string} The module type.
70
+ */
71
+ function inferModuleType(initExpression) {
72
+ if (initExpression.type === "MemberExpression") return inferModuleType(initExpression.object);
73
+ if (initExpression.arguments.length === 0) return REQ_COMPUTED;
74
+ let arg = initExpression.arguments[0];
75
+ return arg.type !== "Literal" || typeof arg.value != "string" ? REQ_COMPUTED : BUILTIN_MODULES.includes(arg.value) ? "core" : /^\.{0,2}\//u.test(arg.value) ? "file" : "module";
76
+ }
77
+ /**
78
+ * Check if the list of variable declarations is mixed, i.e. whether it
79
+ * contains both require and other declarations.
80
+ * @param {ASTNode} declarations The list of VariableDeclarators.
81
+ * @returns {boolean} True if the declarations are mixed, false if not.
82
+ */
83
+ function isMixed(declarations) {
84
+ let contains = {};
85
+ return declarations.forEach((declaration) => {
86
+ let type = getDeclarationType(declaration.init);
87
+ contains[type] = !0;
88
+ }), !!(contains[DECL_REQUIRE] && (contains[DECL_UNINITIALIZED] || contains[DECL_OTHER]));
89
+ }
90
+ /**
91
+ * Check if all require declarations in the given list are of the same
92
+ * type.
93
+ * @param {ASTNode} declarations The list of VariableDeclarators.
94
+ * @returns {boolean} True if the declarations are grouped, false if not.
95
+ */
96
+ function isGrouped(declarations) {
97
+ let found = {};
98
+ return declarations.forEach((declaration) => {
99
+ getDeclarationType(declaration.init) === DECL_REQUIRE && (found[inferModuleType(declaration.init)] = !0);
100
+ }), Object.keys(found).length <= 1;
101
+ }
102
+ return { VariableDeclaration(node) {
103
+ isMixed(node.declarations) ? context.report({
104
+ node,
105
+ messageId: "noMixRequire"
106
+ }) : grouping && !isGrouped(node.declarations) && context.report({
107
+ node,
108
+ messageId: "noMixCoreModuleFileComputed"
109
+ });
110
+ } };
111
+ }
112
+ };
113
+ }));
114
+ //#endregion
115
+ //#region src-js/generated/plugin-eslint/rules/no-mixed-requires.cjs
116
+ module.exports = require_no_mixed_requires().create;
117
+ //#endregion
@@ -0,0 +1,87 @@
1
+ //#region ../../node_modules/.pnpm/eslint@9.39.3_jiti@2.6.1/node_modules/eslint/lib/rules/no-mixed-spaces-and-tabs.js
2
+ /**
3
+ * @fileoverview Disallow mixed spaces and tabs for indentation
4
+ * @author Jary Niebur
5
+ * @deprecated in ESLint v8.53.0
6
+ */
7
+ var require_no_mixed_spaces_and_tabs = /* @__PURE__ */ require("../common/chunk.cjs").t(((exports, module) => {
8
+ /** @type {import('../types').Rule.RuleModule} */
9
+ module.exports = {
10
+ meta: {
11
+ deprecated: {
12
+ message: "Formatting rules are being moved out of ESLint core.",
13
+ url: "https://eslint.org/blog/2023/10/deprecating-formatting-rules/",
14
+ deprecatedSince: "8.53.0",
15
+ availableUntil: "11.0.0",
16
+ replacedBy: [{
17
+ message: "ESLint Stylistic now maintains deprecated stylistic core rules.",
18
+ url: "https://eslint.style/guide/migration",
19
+ plugin: {
20
+ name: "@stylistic/eslint-plugin",
21
+ url: "https://eslint.style"
22
+ },
23
+ rule: {
24
+ name: "no-mixed-spaces-and-tabs",
25
+ url: "https://eslint.style/rules/no-mixed-spaces-and-tabs"
26
+ }
27
+ }]
28
+ },
29
+ type: "layout",
30
+ docs: {
31
+ description: "Disallow mixed spaces and tabs for indentation",
32
+ recommended: !1,
33
+ url: "https://eslint.org/docs/latest/rules/no-mixed-spaces-and-tabs"
34
+ },
35
+ schema: [{ enum: [
36
+ "smart-tabs",
37
+ !0,
38
+ !1
39
+ ] }],
40
+ messages: { mixedSpacesAndTabs: "Mixed spaces and tabs." }
41
+ },
42
+ create(context) {
43
+ let sourceCode = context.sourceCode, smartTabs;
44
+ switch (context.options[0]) {
45
+ case !0:
46
+ case "smart-tabs":
47
+ smartTabs = !0;
48
+ break;
49
+ default: smartTabs = !1;
50
+ }
51
+ return { "Program:exit"(node) {
52
+ let lines = sourceCode.lines, comments = sourceCode.getAllComments(), ignoredCommentLines = /* @__PURE__ */ new Set();
53
+ comments.forEach((comment) => {
54
+ for (let i = comment.loc.start.line + 1; i <= comment.loc.end.line; i++) ignoredCommentLines.add(i);
55
+ });
56
+ let regex = /^(?=( +|\t+))\1(?:\t| )/u;
57
+ smartTabs && (regex = /^(?=(\t*))\1(?=( +))\2\t/u), lines.forEach((line, i) => {
58
+ let match = regex.exec(line);
59
+ if (match) {
60
+ let lineNumber = i + 1, loc = {
61
+ start: {
62
+ line: lineNumber,
63
+ column: match[0].length - 2
64
+ },
65
+ end: {
66
+ line: lineNumber,
67
+ column: match[0].length
68
+ }
69
+ };
70
+ if (!ignoredCommentLines.has(lineNumber)) {
71
+ let containingNode = sourceCode.getNodeByRangeIndex(sourceCode.getIndexFromLoc(loc.start));
72
+ containingNode && ["Literal", "TemplateElement"].includes(containingNode.type) || context.report({
73
+ node,
74
+ loc,
75
+ messageId: "mixedSpacesAndTabs"
76
+ });
77
+ }
78
+ }
79
+ });
80
+ } };
81
+ }
82
+ };
83
+ }));
84
+ //#endregion
85
+ //#region src-js/generated/plugin-eslint/rules/no-mixed-spaces-and-tabs.cjs
86
+ module.exports = require_no_mixed_spaces_and_tabs().create;
87
+ //#endregion
@@ -0,0 +1,38 @@
1
+ //#region ../../node_modules/.pnpm/eslint@9.39.3_jiti@2.6.1/node_modules/eslint/lib/rules/no-multi-assign.js
2
+ /**
3
+ * @fileoverview Rule to check use of chained assignment expressions
4
+ * @author Stewart Rand
5
+ */
6
+ var require_no_multi_assign = /* @__PURE__ */ require("../common/chunk.cjs").t(((exports, module) => {
7
+ /** @type {import('../types').Rule.RuleModule} */
8
+ module.exports = {
9
+ meta: {
10
+ type: "suggestion",
11
+ defaultOptions: [{ ignoreNonDeclaration: !1 }],
12
+ docs: {
13
+ description: "Disallow use of chained assignment expressions",
14
+ recommended: !1,
15
+ url: "https://eslint.org/docs/latest/rules/no-multi-assign"
16
+ },
17
+ schema: [{
18
+ type: "object",
19
+ properties: { ignoreNonDeclaration: { type: "boolean" } },
20
+ additionalProperties: !1
21
+ }],
22
+ messages: { unexpectedChain: "Unexpected chained assignment." }
23
+ },
24
+ create(context) {
25
+ let [{ ignoreNonDeclaration }] = context.options, selectors = ["VariableDeclarator > AssignmentExpression.init", "PropertyDefinition > AssignmentExpression.value"];
26
+ return ignoreNonDeclaration || selectors.push("AssignmentExpression > AssignmentExpression.right"), { [selectors](node) {
27
+ context.report({
28
+ node,
29
+ messageId: "unexpectedChain"
30
+ });
31
+ } };
32
+ }
33
+ };
34
+ }));
35
+ //#endregion
36
+ //#region src-js/generated/plugin-eslint/rules/no-multi-assign.cjs
37
+ module.exports = require_no_multi_assign().create;
38
+ //#endregion
@@ -0,0 +1,95 @@
1
+ const require_chunk = require("../common/chunk.cjs"), require_ast_utils$1 = require("../common/ast-utils.cjs");
2
+ //#region ../../node_modules/.pnpm/eslint@9.39.3_jiti@2.6.1/node_modules/eslint/lib/rules/no-multi-spaces.js
3
+ /**
4
+ * @fileoverview Disallow use of multiple spaces.
5
+ * @author Nicholas C. Zakas
6
+ * @deprecated in ESLint v8.53.0
7
+ */
8
+ var require_no_multi_spaces = /* @__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: "no-multi-spaces",
27
+ url: "https://eslint.style/rules/no-multi-spaces"
28
+ }
29
+ }]
30
+ },
31
+ type: "layout",
32
+ docs: {
33
+ description: "Disallow multiple spaces",
34
+ recommended: !1,
35
+ url: "https://eslint.org/docs/latest/rules/no-multi-spaces"
36
+ },
37
+ fixable: "whitespace",
38
+ schema: [{
39
+ type: "object",
40
+ properties: {
41
+ exceptions: {
42
+ type: "object",
43
+ patternProperties: { "^([A-Z][a-z]*)+$": { type: "boolean" } },
44
+ additionalProperties: !1
45
+ },
46
+ ignoreEOLComments: {
47
+ type: "boolean",
48
+ default: !1
49
+ }
50
+ },
51
+ additionalProperties: !1
52
+ }],
53
+ messages: { multipleSpaces: "Multiple spaces found before '{{displayValue}}'." }
54
+ },
55
+ create(context) {
56
+ let sourceCode = context.sourceCode, options = context.options[0] || {}, ignoreEOLComments = options.ignoreEOLComments, exceptions = Object.assign({ Property: !0 }, options.exceptions), hasExceptions = Object.keys(exceptions).some((key) => exceptions[key]);
57
+ /**
58
+ * Formats value of given comment token for error message by truncating its length.
59
+ * @param {Token} token comment token
60
+ * @returns {string} formatted value
61
+ * @private
62
+ */
63
+ function formatReportedCommentValue(token) {
64
+ let valueLines = token.value.split("\n"), value = valueLines[0], formattedValue = `${value.slice(0, 12)}...`;
65
+ return valueLines.length === 1 && value.length <= 12 ? value : formattedValue;
66
+ }
67
+ return { Program() {
68
+ sourceCode.tokensAndComments.forEach((leftToken, leftIndex, tokensAndComments) => {
69
+ if (leftIndex === tokensAndComments.length - 1) return;
70
+ let rightToken = tokensAndComments[leftIndex + 1];
71
+ if (!sourceCode.text.slice(leftToken.range[1], rightToken.range[0]).includes(" ") || leftToken.loc.end.line < rightToken.loc.start.line || ignoreEOLComments && astUtils.isCommentToken(rightToken) && (leftIndex === tokensAndComments.length - 2 || rightToken.loc.end.line < tokensAndComments[leftIndex + 2].loc.start.line)) return;
72
+ if (hasExceptions) {
73
+ let parentNode = sourceCode.getNodeByRangeIndex(rightToken.range[0] - 1);
74
+ if (parentNode && exceptions[parentNode.type]) return;
75
+ }
76
+ let displayValue;
77
+ displayValue = rightToken.type === "Block" ? `/*${formatReportedCommentValue(rightToken)}*/` : rightToken.type === "Line" ? `//${formatReportedCommentValue(rightToken)}` : rightToken.value, context.report({
78
+ node: rightToken,
79
+ loc: {
80
+ start: leftToken.loc.end,
81
+ end: rightToken.loc.start
82
+ },
83
+ messageId: "multipleSpaces",
84
+ data: { displayValue },
85
+ fix: (fixer) => fixer.replaceTextRange([leftToken.range[1], rightToken.range[0]], " ")
86
+ });
87
+ });
88
+ } };
89
+ }
90
+ };
91
+ }));
92
+ //#endregion
93
+ //#region src-js/generated/plugin-eslint/rules/no-multi-spaces.cjs
94
+ module.exports = require_no_multi_spaces().create;
95
+ //#endregion
@@ -0,0 +1,44 @@
1
+ const require_chunk = require("../common/chunk.cjs"), require_ast_utils$1 = require("../common/ast-utils.cjs");
2
+ //#region ../../node_modules/.pnpm/eslint@9.39.3_jiti@2.6.1/node_modules/eslint/lib/rules/no-multi-str.js
3
+ /**
4
+ * @fileoverview Rule to flag when using multiline strings
5
+ * @author Ilya Volodin
6
+ */
7
+ var require_no_multi_str = /* @__PURE__ */ require_chunk.t(((exports, module) => {
8
+ let astUtils = require_ast_utils$1.t();
9
+ /** @type {import('../types').Rule.RuleModule} */
10
+ module.exports = {
11
+ meta: {
12
+ type: "suggestion",
13
+ docs: {
14
+ description: "Disallow multiline strings",
15
+ recommended: !1,
16
+ frozen: !0,
17
+ url: "https://eslint.org/docs/latest/rules/no-multi-str"
18
+ },
19
+ schema: [],
20
+ messages: { multilineString: "Multiline support is limited to browsers supporting ES5 only." }
21
+ },
22
+ create(context) {
23
+ /**
24
+ * Determines if a given node is part of JSX syntax.
25
+ * @param {ASTNode} node The node to check.
26
+ * @returns {boolean} True if the node is a JSX node, false if not.
27
+ * @private
28
+ */
29
+ function isJSXElement(node) {
30
+ return node.type.indexOf("JSX") === 0;
31
+ }
32
+ return { Literal(node) {
33
+ astUtils.LINEBREAK_MATCHER.test(node.raw) && !isJSXElement(node.parent) && context.report({
34
+ node,
35
+ messageId: "multilineString"
36
+ });
37
+ } };
38
+ }
39
+ };
40
+ }));
41
+ //#endregion
42
+ //#region src-js/generated/plugin-eslint/rules/no-multi-str.cjs
43
+ module.exports = require_no_multi_str().create;
44
+ //#endregion
@@ -0,0 +1,112 @@
1
+ //#region ../../node_modules/.pnpm/eslint@9.39.3_jiti@2.6.1/node_modules/eslint/lib/rules/no-multiple-empty-lines.js
2
+ /**
3
+ * @fileoverview Disallows multiple blank lines.
4
+ * implementation adapted from the no-trailing-spaces rule.
5
+ * @author Greg Cochard
6
+ * @deprecated in ESLint v8.53.0
7
+ */
8
+ var require_no_multiple_empty_lines = /* @__PURE__ */ require("../common/chunk.cjs").t(((exports, module) => {
9
+ /** @type {import('../types').Rule.RuleModule} */
10
+ module.exports = {
11
+ meta: {
12
+ deprecated: {
13
+ message: "Formatting rules are being moved out of ESLint core.",
14
+ url: "https://eslint.org/blog/2023/10/deprecating-formatting-rules/",
15
+ deprecatedSince: "8.53.0",
16
+ availableUntil: "11.0.0",
17
+ replacedBy: [{
18
+ message: "ESLint Stylistic now maintains deprecated stylistic core rules.",
19
+ url: "https://eslint.style/guide/migration",
20
+ plugin: {
21
+ name: "@stylistic/eslint-plugin",
22
+ url: "https://eslint.style"
23
+ },
24
+ rule: {
25
+ name: "no-multiple-empty-lines",
26
+ url: "https://eslint.style/rules/no-multiple-empty-lines"
27
+ }
28
+ }]
29
+ },
30
+ type: "layout",
31
+ docs: {
32
+ description: "Disallow multiple empty lines",
33
+ recommended: !1,
34
+ url: "https://eslint.org/docs/latest/rules/no-multiple-empty-lines"
35
+ },
36
+ fixable: "whitespace",
37
+ schema: [{
38
+ type: "object",
39
+ properties: {
40
+ max: {
41
+ type: "integer",
42
+ minimum: 0
43
+ },
44
+ maxEOF: {
45
+ type: "integer",
46
+ minimum: 0
47
+ },
48
+ maxBOF: {
49
+ type: "integer",
50
+ minimum: 0
51
+ }
52
+ },
53
+ required: ["max"],
54
+ additionalProperties: !1
55
+ }],
56
+ messages: {
57
+ blankBeginningOfFile: "Too many blank lines at the beginning of file. Max of {{max}} allowed.",
58
+ blankEndOfFile: "Too many blank lines at the end of file. Max of {{max}} allowed.",
59
+ consecutiveBlank: "More than {{max}} blank {{pluralizedLines}} not allowed."
60
+ }
61
+ },
62
+ create(context) {
63
+ let max = 2, maxEOF = max, maxBOF = max;
64
+ context.options.length && (max = context.options[0].max, maxEOF = context.options[0].maxEOF === void 0 ? max : context.options[0].maxEOF, maxBOF = context.options[0].maxBOF === void 0 ? max : context.options[0].maxBOF);
65
+ let sourceCode = context.sourceCode, allLines = sourceCode.lines.at(-1) === "" ? sourceCode.lines.slice(0, -1) : sourceCode.lines, templateLiteralLines = /* @__PURE__ */ new Set();
66
+ return {
67
+ TemplateLiteral(node) {
68
+ node.quasis.forEach((literalPart) => {
69
+ for (let ignoredLine = literalPart.loc.start.line; ignoredLine < literalPart.loc.end.line; ignoredLine++) templateLiteralLines.add(ignoredLine);
70
+ });
71
+ },
72
+ "Program:exit"(node) {
73
+ return allLines.reduce((nonEmptyLineNumbers, line, index) => ((line.trim() || templateLiteralLines.has(index + 1)) && nonEmptyLineNumbers.push(index + 1), nonEmptyLineNumbers), []).concat(allLines.length + 1).reduce((lastLineNumber, lineNumber) => {
74
+ let messageId, maxAllowed;
75
+ return lastLineNumber === 0 ? (messageId = "blankBeginningOfFile", maxAllowed = maxBOF) : lineNumber === allLines.length + 1 ? (messageId = "blankEndOfFile", maxAllowed = maxEOF) : (messageId = "consecutiveBlank", maxAllowed = max), lineNumber - lastLineNumber - 1 > maxAllowed && context.report({
76
+ node,
77
+ loc: {
78
+ start: {
79
+ line: lastLineNumber + maxAllowed + 1,
80
+ column: 0
81
+ },
82
+ end: {
83
+ line: lineNumber,
84
+ column: 0
85
+ }
86
+ },
87
+ messageId,
88
+ data: {
89
+ max: maxAllowed,
90
+ pluralizedLines: maxAllowed === 1 ? "line" : "lines"
91
+ },
92
+ fix(fixer) {
93
+ let rangeStart = sourceCode.getIndexFromLoc({
94
+ line: lastLineNumber + 1,
95
+ column: 0
96
+ }), lineNumberAfterRemovedLines = lineNumber - maxAllowed, rangeEnd = lineNumberAfterRemovedLines <= allLines.length ? sourceCode.getIndexFromLoc({
97
+ line: lineNumberAfterRemovedLines,
98
+ column: 0
99
+ }) : sourceCode.text.length;
100
+ return fixer.removeRange([rangeStart, rangeEnd]);
101
+ }
102
+ }), lineNumber;
103
+ }, 0);
104
+ }
105
+ };
106
+ }
107
+ };
108
+ }));
109
+ //#endregion
110
+ //#region src-js/generated/plugin-eslint/rules/no-multiple-empty-lines.cjs
111
+ module.exports = require_no_multiple_empty_lines().create;
112
+ //#endregion
@@ -0,0 +1,72 @@
1
+ //#region ../../node_modules/.pnpm/eslint@9.39.3_jiti@2.6.1/node_modules/eslint/lib/rules/no-native-reassign.js
2
+ /**
3
+ * @fileoverview Rule to disallow assignments to native objects or read-only global variables
4
+ * @author Ilya Volodin
5
+ * @deprecated in ESLint v3.3.0
6
+ */
7
+ var require_no_native_reassign = /* @__PURE__ */ require("../common/chunk.cjs").t(((exports, module) => {
8
+ /** @type {import('../types').Rule.RuleModule} */
9
+ module.exports = {
10
+ meta: {
11
+ type: "suggestion",
12
+ docs: {
13
+ description: "Disallow assignments to native objects or read-only global variables",
14
+ recommended: !1,
15
+ url: "https://eslint.org/docs/latest/rules/no-native-reassign"
16
+ },
17
+ deprecated: {
18
+ message: "Renamed rule.",
19
+ url: "https://eslint.org/blog/2016/08/eslint-v3.3.0-released/#deprecated-rules",
20
+ deprecatedSince: "3.3.0",
21
+ availableUntil: "11.0.0",
22
+ replacedBy: [{ rule: {
23
+ name: "no-global-assign",
24
+ url: "https://eslint.org/docs/rules/no-global-assign"
25
+ } }]
26
+ },
27
+ schema: [{
28
+ type: "object",
29
+ properties: { exceptions: {
30
+ type: "array",
31
+ items: { type: "string" },
32
+ uniqueItems: !0
33
+ } },
34
+ additionalProperties: !1
35
+ }],
36
+ messages: { nativeReassign: "Read-only global '{{name}}' should not be modified." }
37
+ },
38
+ create(context) {
39
+ let config = context.options[0], exceptions = config && config.exceptions || [], sourceCode = context.sourceCode;
40
+ /**
41
+ * Reports write references.
42
+ * @param {Reference} reference A reference to check.
43
+ * @param {number} index The index of the reference in the references.
44
+ * @param {Reference[]} references The array that the reference belongs to.
45
+ * @returns {void}
46
+ */
47
+ function checkReference(reference, index, references) {
48
+ let identifier = reference.identifier;
49
+ reference.init === !1 && reference.isWrite() && (index === 0 || references[index - 1].identifier !== identifier) && context.report({
50
+ node: identifier,
51
+ messageId: "nativeReassign",
52
+ data: identifier
53
+ });
54
+ }
55
+ /**
56
+ * Reports write references if a given variable is read-only builtin.
57
+ * @param {Variable} variable A variable to check.
58
+ * @returns {void}
59
+ */
60
+ function checkVariable(variable) {
61
+ variable.writeable === !1 && !exceptions.includes(variable.name) && variable.references.forEach(checkReference);
62
+ }
63
+ return { Program(node) {
64
+ sourceCode.getScope(node).variables.forEach(checkVariable);
65
+ } };
66
+ }
67
+ };
68
+ }));
69
+ //#endregion
70
+ //#region src-js/generated/plugin-eslint/rules/no-native-reassign.cjs
71
+ module.exports = require_no_native_reassign().create;
72
+ //#endregion
@@ -0,0 +1,77 @@
1
+ //#region ../../node_modules/.pnpm/eslint@9.39.3_jiti@2.6.1/node_modules/eslint/lib/rules/no-negated-condition.js
2
+ /**
3
+ * @fileoverview Rule to disallow a negated condition
4
+ * @author Alberto Rodríguez
5
+ */
6
+ var require_no_negated_condition = /* @__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: "Disallow negated conditions",
13
+ recommended: !1,
14
+ frozen: !0,
15
+ url: "https://eslint.org/docs/latest/rules/no-negated-condition"
16
+ },
17
+ schema: [],
18
+ messages: { unexpectedNegated: "Unexpected negated condition." }
19
+ },
20
+ create(context) {
21
+ /**
22
+ * Determines if a given node is an if-else without a condition on the else
23
+ * @param {ASTNode} node The node to check.
24
+ * @returns {boolean} True if the node has an else without an if.
25
+ * @private
26
+ */
27
+ function hasElseWithoutCondition(node) {
28
+ return node.alternate && node.alternate.type !== "IfStatement";
29
+ }
30
+ /**
31
+ * Determines if a given node is a negated unary expression
32
+ * @param {Object} test The test object to check.
33
+ * @returns {boolean} True if the node is a negated unary expression.
34
+ * @private
35
+ */
36
+ function isNegatedUnaryExpression(test) {
37
+ return test.type === "UnaryExpression" && test.operator === "!";
38
+ }
39
+ /**
40
+ * Determines if a given node is a negated binary expression
41
+ * @param {Test} test The test to check.
42
+ * @returns {boolean} True if the node is a negated binary expression.
43
+ * @private
44
+ */
45
+ function isNegatedBinaryExpression(test) {
46
+ return test.type === "BinaryExpression" && (test.operator === "!=" || test.operator === "!==");
47
+ }
48
+ /**
49
+ * Determines if a given node has a negated if expression
50
+ * @param {ASTNode} node The node to check.
51
+ * @returns {boolean} True if the node has a negated if expression.
52
+ * @private
53
+ */
54
+ function isNegatedIf(node) {
55
+ return isNegatedUnaryExpression(node.test) || isNegatedBinaryExpression(node.test);
56
+ }
57
+ return {
58
+ IfStatement(node) {
59
+ hasElseWithoutCondition(node) && isNegatedIf(node) && context.report({
60
+ node,
61
+ messageId: "unexpectedNegated"
62
+ });
63
+ },
64
+ ConditionalExpression(node) {
65
+ isNegatedIf(node) && context.report({
66
+ node,
67
+ messageId: "unexpectedNegated"
68
+ });
69
+ }
70
+ };
71
+ }
72
+ };
73
+ }));
74
+ //#endregion
75
+ //#region src-js/generated/plugin-eslint/rules/no-negated-condition.cjs
76
+ module.exports = require_no_negated_condition().create;
77
+ //#endregion