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,100 @@
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/newline-per-chained-call.js
3
+ /**
4
+ * @fileoverview Rule to ensure newline per method call when chaining calls
5
+ * @author Rajendra Patil
6
+ * @author Burak Yigit Kaya
7
+ * @deprecated in ESLint v8.53.0
8
+ */
9
+ var require_newline_per_chained_call = /* @__PURE__ */ require_chunk.t(((exports, module) => {
10
+ let astUtils = require_ast_utils$1.t();
11
+ /** @type {import('../types').Rule.RuleModule} */
12
+ module.exports = {
13
+ meta: {
14
+ deprecated: {
15
+ message: "Formatting rules are being moved out of ESLint core.",
16
+ url: "https://eslint.org/blog/2023/10/deprecating-formatting-rules/",
17
+ deprecatedSince: "8.53.0",
18
+ availableUntil: "11.0.0",
19
+ replacedBy: [{
20
+ message: "ESLint Stylistic now maintains deprecated stylistic core rules.",
21
+ url: "https://eslint.style/guide/migration",
22
+ plugin: {
23
+ name: "@stylistic/eslint-plugin",
24
+ url: "https://eslint.style"
25
+ },
26
+ rule: {
27
+ name: "newline-per-chained-call",
28
+ url: "https://eslint.style/rules/newline-per-chained-call"
29
+ }
30
+ }]
31
+ },
32
+ type: "layout",
33
+ docs: {
34
+ description: "Require a newline after each call in a method chain",
35
+ recommended: !1,
36
+ url: "https://eslint.org/docs/latest/rules/newline-per-chained-call"
37
+ },
38
+ fixable: "whitespace",
39
+ schema: [{
40
+ type: "object",
41
+ properties: { ignoreChainWithDepth: {
42
+ type: "integer",
43
+ minimum: 1,
44
+ maximum: 10,
45
+ default: 2
46
+ } },
47
+ additionalProperties: !1
48
+ }],
49
+ messages: { expected: "Expected line break before `{{callee}}`." }
50
+ },
51
+ create(context) {
52
+ let ignoreChainWithDepth = (context.options[0] || {}).ignoreChainWithDepth || 2, sourceCode = context.sourceCode;
53
+ /**
54
+ * Get the prefix of a given MemberExpression node.
55
+ * If the MemberExpression node is a computed value it returns a
56
+ * left bracket. If not it returns a period.
57
+ * @param {ASTNode} node A MemberExpression node to get
58
+ * @returns {string} The prefix of the node.
59
+ */
60
+ function getPrefix(node) {
61
+ return node.computed ? node.optional ? "?.[" : "[" : node.optional ? "?." : ".";
62
+ }
63
+ /**
64
+ * Gets the property text of a given MemberExpression node.
65
+ * If the text is multiline, this returns only the first line.
66
+ * @param {ASTNode} node A MemberExpression node to get.
67
+ * @returns {string} The property text of the node.
68
+ */
69
+ function getPropertyText(node) {
70
+ let prefix = getPrefix(node), lines = sourceCode.getText(node.property).split(astUtils.LINEBREAK_MATCHER), suffix = node.computed && lines.length === 1 ? "]" : "";
71
+ return prefix + lines[0] + suffix;
72
+ }
73
+ return { "CallExpression:exit"(node) {
74
+ let callee = astUtils.skipChainExpression(node.callee);
75
+ if (callee.type !== "MemberExpression") return;
76
+ let parent = astUtils.skipChainExpression(callee.object), depth = 1;
77
+ for (; parent && parent.callee;) depth += 1, parent = astUtils.skipChainExpression(astUtils.skipChainExpression(parent.callee).object);
78
+ if (depth > ignoreChainWithDepth && astUtils.isTokenOnSameLine(callee.object, callee.property)) {
79
+ let firstTokenAfterObject = sourceCode.getTokenAfter(callee.object, astUtils.isNotClosingParenToken);
80
+ context.report({
81
+ node: callee.property,
82
+ loc: {
83
+ start: firstTokenAfterObject.loc.start,
84
+ end: callee.loc.end
85
+ },
86
+ messageId: "expected",
87
+ data: { callee: getPropertyText(callee) },
88
+ fix(fixer) {
89
+ return fixer.insertTextBefore(firstTokenAfterObject, "\n");
90
+ }
91
+ });
92
+ }
93
+ } };
94
+ }
95
+ };
96
+ }));
97
+ //#endregion
98
+ //#region src-js/generated/plugin-eslint/rules/newline-per-chained-call.cjs
99
+ module.exports = require_newline_per_chained_call().create;
100
+ //#endregion
@@ -0,0 +1,84 @@
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-alert.js
3
+ /**
4
+ * @fileoverview Rule to flag use of alert, confirm, prompt
5
+ * @author Nicholas C. Zakas
6
+ */
7
+ var require_no_alert = /* @__PURE__ */ require_chunk.t(((exports, module) => {
8
+ let { getStaticPropertyName: getPropertyName, getVariableByName, skipChainExpression } = require_ast_utils$1.t();
9
+ /**
10
+ * Checks if the given name is a prohibited identifier.
11
+ * @param {string} name The name to check
12
+ * @returns {boolean} Whether or not the name is prohibited.
13
+ */
14
+ function isProhibitedIdentifier(name) {
15
+ return /^(?:alert|confirm|prompt)$/u.test(name);
16
+ }
17
+ /**
18
+ * Finds the eslint-scope reference in the given scope.
19
+ * @param {Object} scope The scope to search.
20
+ * @param {ASTNode} node The identifier node.
21
+ * @returns {Reference|null} Returns the found reference or null if none were found.
22
+ */
23
+ function findReference(scope, node) {
24
+ let references = scope.references.filter((reference) => reference.identifier.range[0] === node.range[0] && reference.identifier.range[1] === node.range[1]);
25
+ return references.length === 1 ? references[0] : null;
26
+ }
27
+ /**
28
+ * Checks if the given identifier node is shadowed in the given scope.
29
+ * @param {Object} scope The current scope.
30
+ * @param {string} node The identifier node to check
31
+ * @returns {boolean} Whether or not the name is shadowed.
32
+ */
33
+ function isShadowed(scope, node) {
34
+ let reference = findReference(scope, node);
35
+ return reference && reference.resolved && reference.resolved.defs.length > 0;
36
+ }
37
+ /**
38
+ * Checks if the given identifier node is a ThisExpression in the global scope or the global window property.
39
+ * @param {Object} scope The current scope.
40
+ * @param {string} node The identifier node to check
41
+ * @returns {boolean} Whether or not the node is a reference to the global object.
42
+ */
43
+ function isGlobalThisReferenceOrGlobalWindow(scope, node) {
44
+ return scope.type === "global" && node.type === "ThisExpression" ? !0 : node.type === "Identifier" && (node.name === "window" || node.name === "globalThis" && getVariableByName(scope, "globalThis")) ? !isShadowed(scope, node) : !1;
45
+ }
46
+ /** @type {import('../types').Rule.RuleModule} */
47
+ module.exports = {
48
+ meta: {
49
+ type: "suggestion",
50
+ docs: {
51
+ description: "Disallow the use of `alert`, `confirm`, and `prompt`",
52
+ recommended: !1,
53
+ url: "https://eslint.org/docs/latest/rules/no-alert"
54
+ },
55
+ schema: [],
56
+ messages: { unexpected: "Unexpected {{name}}." }
57
+ },
58
+ create(context) {
59
+ let sourceCode = context.sourceCode;
60
+ return { CallExpression(node) {
61
+ let callee = skipChainExpression(node.callee), currentScope = sourceCode.getScope(node);
62
+ if (callee.type === "Identifier") {
63
+ let name = callee.name;
64
+ !isShadowed(currentScope, callee) && isProhibitedIdentifier(callee.name) && context.report({
65
+ node,
66
+ messageId: "unexpected",
67
+ data: { name }
68
+ });
69
+ } else if (callee.type === "MemberExpression" && isGlobalThisReferenceOrGlobalWindow(currentScope, callee.object)) {
70
+ let name = getPropertyName(callee);
71
+ isProhibitedIdentifier(name) && context.report({
72
+ node,
73
+ messageId: "unexpected",
74
+ data: { name }
75
+ });
76
+ }
77
+ } };
78
+ }
79
+ };
80
+ }));
81
+ //#endregion
82
+ //#region src-js/generated/plugin-eslint/rules/no-alert.cjs
83
+ module.exports = require_no_alert().create;
84
+ //#endregion
@@ -0,0 +1,91 @@
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-array-constructor.js
3
+ /**
4
+ * @fileoverview Disallow construction of dense arrays using the Array constructor
5
+ * @author Matt DuVall <http://www.mattduvall.com/>
6
+ */
7
+ var require_no_array_constructor = /* @__PURE__ */ require_chunk.t(((exports, module) => {
8
+ let { getVariableByName, isClosingParenToken, isOpeningParenToken, isStartOfExpressionStatement, needsPrecedingSemicolon } = require_ast_utils$1.t();
9
+ /** @type {import('../types').Rule.RuleModule} */
10
+ module.exports = {
11
+ meta: {
12
+ dialects: ["javascript", "typescript"],
13
+ language: "javascript",
14
+ type: "suggestion",
15
+ docs: {
16
+ description: "Disallow `Array` constructors",
17
+ recommended: !1,
18
+ url: "https://eslint.org/docs/latest/rules/no-array-constructor"
19
+ },
20
+ fixable: "code",
21
+ hasSuggestions: !0,
22
+ schema: [],
23
+ messages: {
24
+ preferLiteral: "The array literal notation [] is preferable.",
25
+ useLiteral: "Replace with an array literal.",
26
+ useLiteralAfterSemicolon: "Replace with an array literal, add preceding semicolon."
27
+ }
28
+ },
29
+ create(context) {
30
+ let sourceCode = context.sourceCode;
31
+ /**
32
+ * Checks if there are comments in Array constructor expressions.
33
+ * @param {ASTNode} node A CallExpression or NewExpression node.
34
+ * @returns {boolean} True if there are comments, false otherwise.
35
+ */
36
+ function hasCommentsInArrayConstructor(node) {
37
+ let firstToken = sourceCode.getFirstToken(node), lastToken = sourceCode.getLastToken(node), lastRelevantToken = sourceCode.getLastToken(node.callee);
38
+ for (; lastRelevantToken !== lastToken && !isOpeningParenToken(lastRelevantToken);) lastRelevantToken = sourceCode.getTokenAfter(lastRelevantToken);
39
+ return sourceCode.commentsExistBetween(firstToken, lastRelevantToken);
40
+ }
41
+ /**
42
+ * Gets the text between the calling parentheses of a CallExpression or NewExpression.
43
+ * @param {ASTNode} node A CallExpression or NewExpression node.
44
+ * @returns {string} The text between the calling parentheses, or an empty string if there are none.
45
+ */
46
+ function getArgumentsText(node) {
47
+ let lastToken = sourceCode.getLastToken(node);
48
+ if (!isClosingParenToken(lastToken)) return "";
49
+ let firstToken = node.callee;
50
+ do
51
+ if (firstToken = sourceCode.getTokenAfter(firstToken), !firstToken || firstToken === lastToken) return "";
52
+ while (!isOpeningParenToken(firstToken));
53
+ return sourceCode.text.slice(firstToken.range[1], lastToken.range[0]);
54
+ }
55
+ /**
56
+ * Disallow construction of dense arrays using the Array constructor
57
+ * @param {ASTNode} node node to evaluate
58
+ * @returns {void}
59
+ * @private
60
+ */
61
+ function check(node) {
62
+ if (node.callee.type !== "Identifier" || node.callee.name !== "Array" || node.typeArguments || node.arguments.length === 1 && node.arguments[0].type !== "SpreadElement") return;
63
+ let variable = getVariableByName(sourceCode.getScope(node), "Array");
64
+ if (variable && variable.identifiers.length === 0) {
65
+ let argsText = getArgumentsText(node), fixText, messageId, nonSpreadCount = node.arguments.reduce((count, arg) => arg.type === "SpreadElement" ? count : count + 1, 0), shouldSuggest = node.optional || node.arguments.length > 0 && nonSpreadCount < 2 || hasCommentsInArrayConstructor(node);
66
+ isStartOfExpressionStatement(node) && needsPrecedingSemicolon(sourceCode, node) ? (fixText = `;[${argsText}]`, messageId = "useLiteralAfterSemicolon") : (fixText = `[${argsText}]`, messageId = "useLiteral"), context.report({
67
+ node,
68
+ messageId: "preferLiteral",
69
+ fix(fixer) {
70
+ return shouldSuggest ? null : fixer.replaceText(node, fixText);
71
+ },
72
+ suggest: [{
73
+ messageId,
74
+ fix(fixer) {
75
+ return shouldSuggest ? fixer.replaceText(node, fixText) : null;
76
+ }
77
+ }]
78
+ });
79
+ }
80
+ }
81
+ return {
82
+ CallExpression: check,
83
+ NewExpression: check
84
+ };
85
+ }
86
+ };
87
+ }));
88
+ //#endregion
89
+ //#region src-js/generated/plugin-eslint/rules/no-array-constructor.cjs
90
+ module.exports = require_no_array_constructor().create;
91
+ //#endregion
@@ -0,0 +1,33 @@
1
+ //#region ../../node_modules/.pnpm/eslint@9.39.3_jiti@2.6.1/node_modules/eslint/lib/rules/no-async-promise-executor.js
2
+ /**
3
+ * @fileoverview disallow using an async function as a Promise executor
4
+ * @author Teddy Katz
5
+ */
6
+ var require_no_async_promise_executor = /* @__PURE__ */ require("../common/chunk.cjs").t(((exports, module) => {
7
+ /** @type {import('../types').Rule.RuleModule} */
8
+ module.exports = {
9
+ meta: {
10
+ type: "problem",
11
+ docs: {
12
+ description: "Disallow using an async function as a Promise executor",
13
+ recommended: !0,
14
+ url: "https://eslint.org/docs/latest/rules/no-async-promise-executor"
15
+ },
16
+ fixable: null,
17
+ schema: [],
18
+ messages: { async: "Promise executor functions should not be async." }
19
+ },
20
+ create(context) {
21
+ return { "NewExpression[callee.name='Promise'][arguments.0.async=true]"(node) {
22
+ context.report({
23
+ node: context.sourceCode.getFirstToken(node.arguments[0], (token) => token.value === "async"),
24
+ messageId: "async"
25
+ });
26
+ } };
27
+ }
28
+ };
29
+ }));
30
+ //#endregion
31
+ //#region src-js/generated/plugin-eslint/rules/no-async-promise-executor.cjs
32
+ module.exports = require_no_async_promise_executor().create;
33
+ //#endregion
@@ -0,0 +1,75 @@
1
+ //#region ../../node_modules/.pnpm/eslint@9.39.3_jiti@2.6.1/node_modules/eslint/lib/rules/no-await-in-loop.js
2
+ /**
3
+ * @fileoverview Rule to disallow uses of await inside of loops.
4
+ * @author Nat Mote (nmote)
5
+ */
6
+ var require_no_await_in_loop = /* @__PURE__ */ require("../common/chunk.cjs").t(((exports, module) => {
7
+ /**
8
+ * Check whether it should stop traversing ancestors at the given node.
9
+ * @param {ASTNode} node A node to check.
10
+ * @returns {boolean} `true` if it should stop traversing.
11
+ */
12
+ function isBoundary(node) {
13
+ let t = node.type;
14
+ return t === "FunctionDeclaration" || t === "FunctionExpression" || t === "ArrowFunctionExpression" || t === "ForOfStatement" && node.await === !0;
15
+ }
16
+ /**
17
+ * Check whether the given node is in loop.
18
+ * @param {ASTNode} node A node to check.
19
+ * @param {ASTNode} parent A parent node to check.
20
+ * @returns {boolean} `true` if the node is in loop.
21
+ */
22
+ function isLooped(node, parent) {
23
+ switch (parent.type) {
24
+ case "ForStatement": return node === parent.test || node === parent.update || node === parent.body;
25
+ case "ForOfStatement":
26
+ case "ForInStatement": return node === parent.body || node === parent.left && node.kind === "await using";
27
+ case "WhileStatement":
28
+ case "DoWhileStatement": return node === parent.test || node === parent.body;
29
+ default: return !1;
30
+ }
31
+ }
32
+ /** @type {import('../types').Rule.RuleModule} */
33
+ module.exports = {
34
+ meta: {
35
+ type: "problem",
36
+ docs: {
37
+ description: "Disallow `await` inside of loops",
38
+ recommended: !1,
39
+ url: "https://eslint.org/docs/latest/rules/no-await-in-loop"
40
+ },
41
+ schema: [],
42
+ messages: { unexpectedAwait: "Unexpected `await` inside a loop." }
43
+ },
44
+ create(context) {
45
+ /**
46
+ * Validate an await expression.
47
+ * @param {ASTNode} awaitNode An AwaitExpression or ForOfStatement node to validate.
48
+ * @returns {void}
49
+ */
50
+ function validate(awaitNode) {
51
+ if (awaitNode.type === "VariableDeclaration" && awaitNode.kind !== "await using" || awaitNode.type === "ForOfStatement" && !awaitNode.await) return;
52
+ let node = awaitNode, parent = node.parent;
53
+ for (; parent && !isBoundary(parent);) {
54
+ if (isLooped(node, parent)) {
55
+ context.report({
56
+ node: awaitNode,
57
+ messageId: "unexpectedAwait"
58
+ });
59
+ return;
60
+ }
61
+ node = parent, parent = parent.parent;
62
+ }
63
+ }
64
+ return {
65
+ AwaitExpression: validate,
66
+ ForOfStatement: validate,
67
+ VariableDeclaration: validate
68
+ };
69
+ }
70
+ };
71
+ }));
72
+ //#endregion
73
+ //#region src-js/generated/plugin-eslint/rules/no-await-in-loop.cjs
74
+ module.exports = require_no_await_in_loop().create;
75
+ //#endregion
@@ -0,0 +1,106 @@
1
+ //#region ../../node_modules/.pnpm/eslint@9.39.3_jiti@2.6.1/node_modules/eslint/lib/rules/no-bitwise.js
2
+ /**
3
+ * @fileoverview Rule to flag bitwise identifiers
4
+ * @author Nicholas C. Zakas
5
+ */
6
+ var require_no_bitwise = /* @__PURE__ */ require("../common/chunk.cjs").t(((exports, module) => {
7
+ let BITWISE_OPERATORS = [
8
+ "^",
9
+ "|",
10
+ "&",
11
+ "<<",
12
+ ">>",
13
+ ">>>",
14
+ "^=",
15
+ "|=",
16
+ "&=",
17
+ "<<=",
18
+ ">>=",
19
+ ">>>=",
20
+ "~"
21
+ ];
22
+ /** @type {import('../types').Rule.RuleModule} */
23
+ module.exports = {
24
+ meta: {
25
+ type: "suggestion",
26
+ defaultOptions: [{
27
+ allow: [],
28
+ int32Hint: !1
29
+ }],
30
+ docs: {
31
+ description: "Disallow bitwise operators",
32
+ recommended: !1,
33
+ url: "https://eslint.org/docs/latest/rules/no-bitwise"
34
+ },
35
+ schema: [{
36
+ type: "object",
37
+ properties: {
38
+ allow: {
39
+ type: "array",
40
+ items: { enum: BITWISE_OPERATORS },
41
+ uniqueItems: !0
42
+ },
43
+ int32Hint: { type: "boolean" }
44
+ },
45
+ additionalProperties: !1
46
+ }],
47
+ messages: { unexpected: "Unexpected use of '{{operator}}'." }
48
+ },
49
+ create(context) {
50
+ let [{ allow: allowed, int32Hint }] = context.options;
51
+ /**
52
+ * Reports an unexpected use of a bitwise operator.
53
+ * @param {ASTNode} node Node which contains the bitwise operator.
54
+ * @returns {void}
55
+ */
56
+ function report(node) {
57
+ context.report({
58
+ node,
59
+ messageId: "unexpected",
60
+ data: { operator: node.operator }
61
+ });
62
+ }
63
+ /**
64
+ * Checks if the given node has a bitwise operator.
65
+ * @param {ASTNode} node The node to check.
66
+ * @returns {boolean} Whether or not the node has a bitwise operator.
67
+ */
68
+ function hasBitwiseOperator(node) {
69
+ return BITWISE_OPERATORS.includes(node.operator);
70
+ }
71
+ /**
72
+ * Checks if exceptions were provided, e.g. `{ allow: ['~', '|'] }`.
73
+ * @param {ASTNode} node The node to check.
74
+ * @returns {boolean} Whether or not the node has a bitwise operator.
75
+ */
76
+ function allowedOperator(node) {
77
+ return allowed.includes(node.operator);
78
+ }
79
+ /**
80
+ * Checks if the given bitwise operator is used for integer typecasting, i.e. "|0"
81
+ * @param {ASTNode} node The node to check.
82
+ * @returns {boolean} whether the node is used in integer typecasting.
83
+ */
84
+ function isInt32Hint(node) {
85
+ return int32Hint && node.operator === "|" && node.right && node.right.type === "Literal" && node.right.value === 0;
86
+ }
87
+ /**
88
+ * Report if the given node contains a bitwise operator.
89
+ * @param {ASTNode} node The node to check.
90
+ * @returns {void}
91
+ */
92
+ function checkNodeForBitwiseOperator(node) {
93
+ hasBitwiseOperator(node) && !allowedOperator(node) && !isInt32Hint(node) && report(node);
94
+ }
95
+ return {
96
+ AssignmentExpression: checkNodeForBitwiseOperator,
97
+ BinaryExpression: checkNodeForBitwiseOperator,
98
+ UnaryExpression: checkNodeForBitwiseOperator
99
+ };
100
+ }
101
+ };
102
+ }));
103
+ //#endregion
104
+ //#region src-js/generated/plugin-eslint/rules/no-bitwise.cjs
105
+ module.exports = require_no_bitwise().create;
106
+ //#endregion
@@ -0,0 +1,51 @@
1
+ //#region ../../node_modules/.pnpm/eslint@9.39.3_jiti@2.6.1/node_modules/eslint/lib/rules/no-buffer-constructor.js
2
+ /**
3
+ * @fileoverview disallow use of the Buffer() constructor
4
+ * @author Teddy Katz
5
+ * @deprecated in ESLint v7.0.0
6
+ */
7
+ var require_no_buffer_constructor = /* @__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-deprecated-api",
24
+ url: "https://github.com/eslint-community/eslint-plugin-n/tree/master/docs/rules/no-deprecated-api.md"
25
+ }
26
+ }]
27
+ },
28
+ type: "problem",
29
+ docs: {
30
+ description: "Disallow use of the `Buffer()` constructor",
31
+ recommended: !1,
32
+ url: "https://eslint.org/docs/latest/rules/no-buffer-constructor"
33
+ },
34
+ schema: [],
35
+ messages: { deprecated: "{{expr}} is deprecated. Use Buffer.from(), Buffer.alloc(), or Buffer.allocUnsafe() instead." }
36
+ },
37
+ create(context) {
38
+ return { "CallExpression[callee.name='Buffer'], NewExpression[callee.name='Buffer']"(node) {
39
+ context.report({
40
+ node,
41
+ messageId: "deprecated",
42
+ data: { expr: node.type === "CallExpression" ? "Buffer()" : "new Buffer()" }
43
+ });
44
+ } };
45
+ }
46
+ };
47
+ }));
48
+ //#endregion
49
+ //#region src-js/generated/plugin-eslint/rules/no-buffer-constructor.cjs
50
+ module.exports = require_no_buffer_constructor().create;
51
+ //#endregion
@@ -0,0 +1,34 @@
1
+ //#region ../../node_modules/.pnpm/eslint@9.39.3_jiti@2.6.1/node_modules/eslint/lib/rules/no-caller.js
2
+ /**
3
+ * @fileoverview Rule to flag use of arguments.callee and arguments.caller.
4
+ * @author Nicholas C. Zakas
5
+ */
6
+ var require_no_caller = /* @__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 the use of `arguments.caller` or `arguments.callee`",
13
+ recommended: !1,
14
+ url: "https://eslint.org/docs/latest/rules/no-caller"
15
+ },
16
+ schema: [],
17
+ messages: { unexpected: "Avoid arguments.{{prop}}." }
18
+ },
19
+ create(context) {
20
+ return { MemberExpression(node) {
21
+ let objectName = node.object.name, propertyName = node.property.name;
22
+ objectName === "arguments" && !node.computed && propertyName && propertyName.match(/^calle[er]$/u) && context.report({
23
+ node,
24
+ messageId: "unexpected",
25
+ data: { prop: propertyName }
26
+ });
27
+ } };
28
+ }
29
+ };
30
+ }));
31
+ //#endregion
32
+ //#region src-js/generated/plugin-eslint/rules/no-caller.cjs
33
+ module.exports = require_no_caller().create;
34
+ //#endregion
@@ -0,0 +1,56 @@
1
+ //#region ../../node_modules/.pnpm/eslint@9.39.3_jiti@2.6.1/node_modules/eslint/lib/rules/no-case-declarations.js
2
+ /**
3
+ * @fileoverview Rule to flag use of an lexical declarations inside a case clause
4
+ * @author Erik Arvidsson
5
+ */
6
+ var require_no_case_declarations = /* @__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 lexical declarations in case clauses",
13
+ recommended: !0,
14
+ url: "https://eslint.org/docs/latest/rules/no-case-declarations"
15
+ },
16
+ hasSuggestions: !0,
17
+ schema: [],
18
+ messages: {
19
+ addBrackets: "Add {} brackets around the case block.",
20
+ unexpected: "Unexpected lexical declaration in case block."
21
+ }
22
+ },
23
+ create(context) {
24
+ /**
25
+ * Checks whether or not a node is a lexical declaration.
26
+ * @param {ASTNode} node A direct child statement of a switch case.
27
+ * @returns {boolean} Whether or not the node is a lexical declaration.
28
+ */
29
+ function isLexicalDeclaration(node) {
30
+ switch (node.type) {
31
+ case "FunctionDeclaration":
32
+ case "ClassDeclaration": return !0;
33
+ case "VariableDeclaration": return node.kind !== "var";
34
+ default: return !1;
35
+ }
36
+ }
37
+ return { SwitchCase(node) {
38
+ for (let i = 0; i < node.consequent.length; i++) {
39
+ let statement = node.consequent[i];
40
+ isLexicalDeclaration(statement) && context.report({
41
+ node: statement,
42
+ messageId: "unexpected",
43
+ suggest: [{
44
+ messageId: "addBrackets",
45
+ fix: (fixer) => [fixer.insertTextBefore(node.consequent[0], "{ "), fixer.insertTextAfter(node.consequent.at(-1), " }")]
46
+ }]
47
+ });
48
+ }
49
+ } };
50
+ }
51
+ };
52
+ }));
53
+ //#endregion
54
+ //#region src-js/generated/plugin-eslint/rules/no-case-declarations.cjs
55
+ module.exports = require_no_case_declarations().create;
56
+ //#endregion