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,131 @@
1
+ const require_chunk = require("../common/chunk.cjs"), require_ast_utils$1 = require("../common/ast-utils.cjs"), require_eslint_utils$1 = require("../common/eslint-utils.cjs");
2
+ //#region ../../node_modules/.pnpm/eslint@9.39.3_jiti@2.6.1/node_modules/eslint/lib/rules/wrap-iife.js
3
+ /**
4
+ * @fileoverview Rule to flag when IIFE is not wrapped in parens
5
+ * @author Ilya Volodin
6
+ * @deprecated in ESLint v8.53.0
7
+ */
8
+ var require_wrap_iife = /* @__PURE__ */ require_chunk.t(((exports, module) => {
9
+ let astUtils = require_ast_utils$1.t(), eslintUtils = require_eslint_utils$1.t();
10
+ /**
11
+ * Check if the given node is callee of a `NewExpression` node
12
+ * @param {ASTNode} node node to check
13
+ * @returns {boolean} True if the node is callee of a `NewExpression` node
14
+ * @private
15
+ */
16
+ function isCalleeOfNewExpression(node) {
17
+ let maybeCallee = node.parent.type === "ChainExpression" ? node.parent : node;
18
+ return maybeCallee.parent.type === "NewExpression" && maybeCallee.parent.callee === maybeCallee;
19
+ }
20
+ /** @type {import('../types').Rule.RuleModule} */
21
+ module.exports = {
22
+ meta: {
23
+ deprecated: {
24
+ message: "Formatting rules are being moved out of ESLint core.",
25
+ url: "https://eslint.org/blog/2023/10/deprecating-formatting-rules/",
26
+ deprecatedSince: "8.53.0",
27
+ availableUntil: "11.0.0",
28
+ replacedBy: [{
29
+ message: "ESLint Stylistic now maintains deprecated stylistic core rules.",
30
+ url: "https://eslint.style/guide/migration",
31
+ plugin: {
32
+ name: "@stylistic/eslint-plugin",
33
+ url: "https://eslint.style"
34
+ },
35
+ rule: {
36
+ name: "wrap-iife",
37
+ url: "https://eslint.style/rules/wrap-iife"
38
+ }
39
+ }]
40
+ },
41
+ type: "layout",
42
+ docs: {
43
+ description: "Require parentheses around immediate `function` invocations",
44
+ recommended: !1,
45
+ url: "https://eslint.org/docs/latest/rules/wrap-iife"
46
+ },
47
+ schema: [{ enum: [
48
+ "outside",
49
+ "inside",
50
+ "any"
51
+ ] }, {
52
+ type: "object",
53
+ properties: { functionPrototypeMethods: {
54
+ type: "boolean",
55
+ default: !1
56
+ } },
57
+ additionalProperties: !1
58
+ }],
59
+ fixable: "code",
60
+ messages: {
61
+ wrapInvocation: "Wrap an immediate function invocation in parentheses.",
62
+ wrapExpression: "Wrap only the function expression in parens.",
63
+ moveInvocation: "Move the invocation into the parens that contain the function."
64
+ }
65
+ },
66
+ create(context) {
67
+ let style = context.options[0] || "outside", includeFunctionPrototypeMethods = context.options[1] && context.options[1].functionPrototypeMethods, sourceCode = context.sourceCode;
68
+ /**
69
+ * Check if the node is wrapped in any (). All parens count: grouping parens and parens for constructs such as if()
70
+ * @param {ASTNode} node node to evaluate
71
+ * @returns {boolean} True if it is wrapped in any parens
72
+ * @private
73
+ */
74
+ function isWrappedInAnyParens(node) {
75
+ return astUtils.isParenthesised(sourceCode, node);
76
+ }
77
+ /**
78
+ * Check if the node is wrapped in grouping (). Parens for constructs such as if() don't count
79
+ * @param {ASTNode} node node to evaluate
80
+ * @returns {boolean} True if it is wrapped in grouping parens
81
+ * @private
82
+ */
83
+ function isWrappedInGroupingParens(node) {
84
+ return eslintUtils.isParenthesized(1, node, sourceCode);
85
+ }
86
+ /**
87
+ * Get the function node from an IIFE
88
+ * @param {ASTNode} node node to evaluate
89
+ * @returns {ASTNode} node that is the function expression of the given IIFE, or null if none exist
90
+ */
91
+ function getFunctionNodeFromIIFE(node) {
92
+ let callee = astUtils.skipChainExpression(node.callee);
93
+ return callee.type === "FunctionExpression" ? callee : includeFunctionPrototypeMethods && callee.type === "MemberExpression" && callee.object.type === "FunctionExpression" && (astUtils.getStaticPropertyName(callee) === "call" || astUtils.getStaticPropertyName(callee) === "apply") ? callee.object : null;
94
+ }
95
+ return { CallExpression(node) {
96
+ let innerNode = getFunctionNodeFromIIFE(node);
97
+ if (!innerNode) return;
98
+ let isCallExpressionWrapped = isWrappedInAnyParens(node), isFunctionExpressionWrapped = isWrappedInAnyParens(innerNode);
99
+ !isCallExpressionWrapped && !isFunctionExpressionWrapped ? context.report({
100
+ node,
101
+ messageId: "wrapInvocation",
102
+ fix(fixer) {
103
+ let nodeToSurround = style === "inside" ? innerNode : node;
104
+ return fixer.replaceText(nodeToSurround, `(${sourceCode.getText(nodeToSurround)})`);
105
+ }
106
+ }) : style === "inside" && !isFunctionExpressionWrapped ? context.report({
107
+ node,
108
+ messageId: "wrapExpression",
109
+ fix(fixer) {
110
+ if (isWrappedInGroupingParens(node) && !isCalleeOfNewExpression(node)) {
111
+ let parenAfter = sourceCode.getTokenAfter(node);
112
+ return fixer.replaceTextRange([innerNode.range[1], parenAfter.range[1]], `)${sourceCode.getText().slice(innerNode.range[1], parenAfter.range[0])}`);
113
+ }
114
+ return fixer.replaceText(innerNode, `(${sourceCode.getText(innerNode)})`);
115
+ }
116
+ }) : style === "outside" && !isCallExpressionWrapped && context.report({
117
+ node,
118
+ messageId: "moveInvocation",
119
+ fix(fixer) {
120
+ let parenAfter = sourceCode.getTokenAfter(innerNode);
121
+ return fixer.replaceTextRange([parenAfter.range[0], node.range[1]], `${sourceCode.getText().slice(parenAfter.range[1], node.range[1])})`);
122
+ }
123
+ });
124
+ } };
125
+ }
126
+ };
127
+ }));
128
+ //#endregion
129
+ //#region src-js/generated/plugin-eslint/rules/wrap-iife.cjs
130
+ module.exports = require_wrap_iife().create;
131
+ //#endregion
@@ -0,0 +1,57 @@
1
+ //#region ../../node_modules/.pnpm/eslint@9.39.3_jiti@2.6.1/node_modules/eslint/lib/rules/wrap-regex.js
2
+ /**
3
+ * @fileoverview Rule to flag when regex literals are not wrapped in parens
4
+ * @author Matt DuVall <http://www.mattduvall.com>
5
+ * @deprecated in ESLint v8.53.0
6
+ */
7
+ var require_wrap_regex = /* @__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: "wrap-regex",
25
+ url: "https://eslint.style/rules/wrap-regex"
26
+ }
27
+ }]
28
+ },
29
+ type: "layout",
30
+ docs: {
31
+ description: "Require parenthesis around regex literals",
32
+ recommended: !1,
33
+ url: "https://eslint.org/docs/latest/rules/wrap-regex"
34
+ },
35
+ schema: [],
36
+ fixable: "code",
37
+ messages: { requireParens: "Wrap the regexp literal in parens to disambiguate the slash." }
38
+ },
39
+ create(context) {
40
+ let sourceCode = context.sourceCode;
41
+ return { Literal(node) {
42
+ if (sourceCode.getFirstToken(node).type === "RegularExpression") {
43
+ let beforeToken = sourceCode.getTokenBefore(node), afterToken = sourceCode.getTokenAfter(node), { parent } = node;
44
+ parent.type === "MemberExpression" && parent.object === node && !(beforeToken && beforeToken.value === "(" && afterToken && afterToken.value === ")") && context.report({
45
+ node,
46
+ messageId: "requireParens",
47
+ fix: (fixer) => fixer.replaceText(node, `(${sourceCode.getText(node)})`)
48
+ });
49
+ }
50
+ } };
51
+ }
52
+ };
53
+ }));
54
+ //#endregion
55
+ //#region src-js/generated/plugin-eslint/rules/wrap-regex.cjs
56
+ module.exports = require_wrap_regex().create;
57
+ //#endregion
@@ -0,0 +1,115 @@
1
+ //#region ../../node_modules/.pnpm/eslint@9.39.3_jiti@2.6.1/node_modules/eslint/lib/rules/yield-star-spacing.js
2
+ /**
3
+ * @fileoverview Rule to check the spacing around the * in yield* expressions.
4
+ * @author Bryan Smith
5
+ * @deprecated in ESLint v8.53.0
6
+ */
7
+ var require_yield_star_spacing = /* @__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: "yield-star-spacing",
25
+ url: "https://eslint.style/rules/yield-star-spacing"
26
+ }
27
+ }]
28
+ },
29
+ type: "layout",
30
+ docs: {
31
+ description: "Require or disallow spacing around the `*` in `yield*` expressions",
32
+ recommended: !1,
33
+ url: "https://eslint.org/docs/latest/rules/yield-star-spacing"
34
+ },
35
+ fixable: "whitespace",
36
+ schema: [{ oneOf: [{ enum: [
37
+ "before",
38
+ "after",
39
+ "both",
40
+ "neither"
41
+ ] }, {
42
+ type: "object",
43
+ properties: {
44
+ before: { type: "boolean" },
45
+ after: { type: "boolean" }
46
+ },
47
+ additionalProperties: !1
48
+ }] }],
49
+ messages: {
50
+ missingBefore: "Missing space before *.",
51
+ missingAfter: "Missing space after *.",
52
+ unexpectedBefore: "Unexpected space before *.",
53
+ unexpectedAfter: "Unexpected space after *."
54
+ }
55
+ },
56
+ create(context) {
57
+ let sourceCode = context.sourceCode, mode = (function(option) {
58
+ return !option || typeof option == "string" ? {
59
+ before: {
60
+ before: !0,
61
+ after: !1
62
+ },
63
+ after: {
64
+ before: !1,
65
+ after: !0
66
+ },
67
+ both: {
68
+ before: !0,
69
+ after: !0
70
+ },
71
+ neither: {
72
+ before: !1,
73
+ after: !1
74
+ }
75
+ }[option || "after"] : option;
76
+ })(context.options[0]);
77
+ /**
78
+ * Checks the spacing between two tokens before or after the star token.
79
+ * @param {string} side Either "before" or "after".
80
+ * @param {Token} leftToken `function` keyword token if side is "before", or
81
+ * star token if side is "after".
82
+ * @param {Token} rightToken Star token if side is "before", or identifier
83
+ * token if side is "after".
84
+ * @returns {void}
85
+ */
86
+ function checkSpacing(side, leftToken, rightToken) {
87
+ if (sourceCode.isSpaceBetweenTokens(leftToken, rightToken) !== mode[side]) {
88
+ let after = leftToken.value === "*", spaceRequired = mode[side], node = after ? leftToken : rightToken, messageId;
89
+ messageId = spaceRequired ? side === "before" ? "missingBefore" : "missingAfter" : side === "before" ? "unexpectedBefore" : "unexpectedAfter", context.report({
90
+ node,
91
+ messageId,
92
+ fix(fixer) {
93
+ return spaceRequired ? after ? fixer.insertTextAfter(node, " ") : fixer.insertTextBefore(node, " ") : fixer.removeRange([leftToken.range[1], rightToken.range[0]]);
94
+ }
95
+ });
96
+ }
97
+ }
98
+ /**
99
+ * Enforces the spacing around the star if node is a yield* expression.
100
+ * @param {ASTNode} node A yield expression node.
101
+ * @returns {void}
102
+ */
103
+ function checkExpression(node) {
104
+ if (!node.delegate) return;
105
+ let tokens = sourceCode.getFirstTokens(node, 3), yieldToken = tokens[0], starToken = tokens[1], nextToken = tokens[2];
106
+ checkSpacing("before", yieldToken, starToken), checkSpacing("after", starToken, nextToken);
107
+ }
108
+ return { YieldExpression: checkExpression };
109
+ }
110
+ };
111
+ }));
112
+ //#endregion
113
+ //#region src-js/generated/plugin-eslint/rules/yield-star-spacing.cjs
114
+ module.exports = require_yield_star_spacing().create;
115
+ //#endregion
package/rules/yoda.cjs ADDED
@@ -0,0 +1,185 @@
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/yoda.js
3
+ /**
4
+ * @fileoverview Rule to require or disallow yoda comparisons
5
+ * @author Nicholas C. Zakas
6
+ */
7
+ var require_yoda = /* @__PURE__ */ require_chunk.t(((exports, module) => {
8
+ let astUtils = require_ast_utils$1.t();
9
+ /**
10
+ * Determines whether an operator is a comparison operator.
11
+ * @param {string} operator The operator to check.
12
+ * @returns {boolean} Whether or not it is a comparison operator.
13
+ */
14
+ function isComparisonOperator(operator) {
15
+ return /^(?:==|===|!=|!==|<|>|<=|>=)$/u.test(operator);
16
+ }
17
+ /**
18
+ * Determines whether an operator is an equality operator.
19
+ * @param {string} operator The operator to check.
20
+ * @returns {boolean} Whether or not it is an equality operator.
21
+ */
22
+ function isEqualityOperator(operator) {
23
+ return /^(?:==|===)$/u.test(operator);
24
+ }
25
+ /**
26
+ * Determines whether an operator is one used in a range test.
27
+ * Allowed operators are `<` and `<=`.
28
+ * @param {string} operator The operator to check.
29
+ * @returns {boolean} Whether the operator is used in range tests.
30
+ */
31
+ function isRangeTestOperator(operator) {
32
+ return ["<", "<="].includes(operator);
33
+ }
34
+ /**
35
+ * Determines whether a non-Literal node is a negative number that should be
36
+ * treated as if it were a single Literal node.
37
+ * @param {ASTNode} node Node to test.
38
+ * @returns {boolean} True if the node is a negative number that looks like a
39
+ * real literal and should be treated as such.
40
+ */
41
+ function isNegativeNumericLiteral(node) {
42
+ return node.type === "UnaryExpression" && node.operator === "-" && node.prefix && astUtils.isNumericLiteral(node.argument);
43
+ }
44
+ /**
45
+ * Determines whether a non-Literal node should be treated as a single Literal node.
46
+ * @param {ASTNode} node Node to test
47
+ * @returns {boolean} True if the node should be treated as a single Literal node.
48
+ */
49
+ function looksLikeLiteral(node) {
50
+ return isNegativeNumericLiteral(node) || astUtils.isStaticTemplateLiteral(node);
51
+ }
52
+ /**
53
+ * Attempts to derive a Literal node from nodes that are treated like literals.
54
+ * @param {ASTNode} node Node to normalize.
55
+ * @returns {ASTNode} One of the following options.
56
+ * 1. The original node if the node is already a Literal
57
+ * 2. A normalized Literal node with the negative number as the value if the
58
+ * node represents a negative number literal.
59
+ * 3. A normalized Literal node with the string as the value if the node is
60
+ * a Template Literal without expression.
61
+ * 4. Otherwise `null`.
62
+ */
63
+ function getNormalizedLiteral(node) {
64
+ return node.type === "Literal" ? node : isNegativeNumericLiteral(node) ? {
65
+ type: "Literal",
66
+ value: -node.argument.value,
67
+ raw: `-${node.argument.value}`
68
+ } : astUtils.isStaticTemplateLiteral(node) ? {
69
+ type: "Literal",
70
+ value: node.quasis[0].value.cooked,
71
+ raw: node.quasis[0].value.raw
72
+ } : null;
73
+ }
74
+ /** @type {import('../types').Rule.RuleModule} */
75
+ module.exports = {
76
+ meta: {
77
+ type: "suggestion",
78
+ defaultOptions: ["never", {
79
+ exceptRange: !1,
80
+ onlyEquality: !1
81
+ }],
82
+ docs: {
83
+ description: "Require or disallow \"Yoda\" conditions",
84
+ recommended: !1,
85
+ frozen: !0,
86
+ url: "https://eslint.org/docs/latest/rules/yoda"
87
+ },
88
+ schema: [{ enum: ["always", "never"] }, {
89
+ type: "object",
90
+ properties: {
91
+ exceptRange: { type: "boolean" },
92
+ onlyEquality: { type: "boolean" }
93
+ },
94
+ additionalProperties: !1
95
+ }],
96
+ fixable: "code",
97
+ messages: { expected: "Expected literal to be on the {{expectedSide}} side of {{operator}}." }
98
+ },
99
+ create(context) {
100
+ let [when, { exceptRange, onlyEquality }] = context.options, always = when === "always", sourceCode = context.sourceCode;
101
+ /**
102
+ * Determines whether node represents a range test.
103
+ * A range test is a "between" test like `(0 <= x && x < 1)` or an "outside"
104
+ * test like `(x < 0 || 1 <= x)`. It must be wrapped in parentheses, and
105
+ * both operators must be `<` or `<=`. Finally, the literal on the left side
106
+ * must be less than or equal to the literal on the right side so that the
107
+ * test makes any sense.
108
+ * @param {ASTNode} node LogicalExpression node to test.
109
+ * @returns {boolean} Whether node is a range test.
110
+ */
111
+ function isRangeTest(node) {
112
+ let left = node.left, right = node.right;
113
+ /**
114
+ * Determines whether node is of the form `0 <= x && x < 1`.
115
+ * @returns {boolean} Whether node is a "between" range test.
116
+ */
117
+ function isBetweenTest() {
118
+ if (node.operator === "&&" && astUtils.isSameReference(left.right, right.left)) {
119
+ let leftLiteral = getNormalizedLiteral(left.left), rightLiteral = getNormalizedLiteral(right.right);
120
+ if (leftLiteral === null && rightLiteral === null) return !1;
121
+ if (rightLiteral === null || leftLiteral === null || leftLiteral.value <= rightLiteral.value) return !0;
122
+ }
123
+ return !1;
124
+ }
125
+ /**
126
+ * Determines whether node is of the form `x < 0 || 1 <= x`.
127
+ * @returns {boolean} Whether node is an "outside" range test.
128
+ */
129
+ function isOutsideTest() {
130
+ if (node.operator === "||" && astUtils.isSameReference(left.left, right.right)) {
131
+ let leftLiteral = getNormalizedLiteral(left.right), rightLiteral = getNormalizedLiteral(right.left);
132
+ if (leftLiteral === null && rightLiteral === null) return !1;
133
+ if (rightLiteral === null || leftLiteral === null || leftLiteral.value <= rightLiteral.value) return !0;
134
+ }
135
+ return !1;
136
+ }
137
+ /**
138
+ * Determines whether node is wrapped in parentheses.
139
+ * @returns {boolean} Whether node is preceded immediately by an open
140
+ * paren token and followed immediately by a close
141
+ * paren token.
142
+ */
143
+ function isParenWrapped() {
144
+ return astUtils.isParenthesised(sourceCode, node);
145
+ }
146
+ return node.type === "LogicalExpression" && left.type === "BinaryExpression" && right.type === "BinaryExpression" && isRangeTestOperator(left.operator) && isRangeTestOperator(right.operator) && (isBetweenTest() || isOutsideTest()) && isParenWrapped();
147
+ }
148
+ let OPERATOR_FLIP_MAP = {
149
+ "===": "===",
150
+ "!==": "!==",
151
+ "==": "==",
152
+ "!=": "!=",
153
+ "<": ">",
154
+ ">": "<",
155
+ "<=": ">=",
156
+ ">=": "<="
157
+ };
158
+ /**
159
+ * Returns a string representation of a BinaryExpression node with its sides/operator flipped around.
160
+ * @param {ASTNode} node The BinaryExpression node
161
+ * @returns {string} A string representation of the node with the sides and operator flipped
162
+ */
163
+ function getFlippedString(node) {
164
+ let operatorToken = sourceCode.getFirstTokenBetween(node.left, node.right, (token) => token.value === node.operator), lastLeftToken = sourceCode.getTokenBefore(operatorToken), firstRightToken = sourceCode.getTokenAfter(operatorToken), source = sourceCode.getText(), leftText = source.slice(node.range[0], lastLeftToken.range[1]), textBeforeOperator = source.slice(lastLeftToken.range[1], operatorToken.range[0]), textAfterOperator = source.slice(operatorToken.range[1], firstRightToken.range[0]), rightText = source.slice(firstRightToken.range[0], node.range[1]), tokenBefore = sourceCode.getTokenBefore(node), tokenAfter = sourceCode.getTokenAfter(node), prefix = "", suffix = "";
165
+ return tokenBefore && tokenBefore.range[1] === node.range[0] && !astUtils.canTokensBeAdjacent(tokenBefore, firstRightToken) && (prefix = " "), tokenAfter && node.range[1] === tokenAfter.range[0] && !astUtils.canTokensBeAdjacent(lastLeftToken, tokenAfter) && (suffix = " "), prefix + rightText + textBeforeOperator + OPERATOR_FLIP_MAP[operatorToken.value] + textAfterOperator + leftText + suffix;
166
+ }
167
+ return { BinaryExpression(node) {
168
+ let expectedLiteral = always ? node.left : node.right, expectedNonLiteral = always ? node.right : node.left;
169
+ (expectedNonLiteral.type === "Literal" || looksLikeLiteral(expectedNonLiteral)) && !(expectedLiteral.type === "Literal" || looksLikeLiteral(expectedLiteral)) && !(!isEqualityOperator(node.operator) && onlyEquality) && isComparisonOperator(node.operator) && !(exceptRange && isRangeTest(node.parent)) && context.report({
170
+ node,
171
+ messageId: "expected",
172
+ data: {
173
+ operator: node.operator,
174
+ expectedSide: always ? "left" : "right"
175
+ },
176
+ fix: (fixer) => fixer.replaceText(node, getFlippedString(node))
177
+ });
178
+ } };
179
+ }
180
+ };
181
+ }));
182
+ //#endregion
183
+ //#region src-js/generated/plugin-eslint/rules/yoda.cjs
184
+ module.exports = require_yoda().create;
185
+ //#endregion