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,73 @@
1
+ //#region ../../node_modules/.pnpm/eslint@9.39.3_jiti@2.6.1/node_modules/eslint/lib/rules/no-tabs.js
2
+ /**
3
+ * @fileoverview Rule to check for tabs inside a file
4
+ * @author Gyandeep Singh
5
+ * @deprecated in ESLint v8.53.0
6
+ */
7
+ var require_no_tabs = /* @__PURE__ */ require("../common/chunk.cjs").t(((exports, module) => {
8
+ let tabRegex = /\t+/gu, anyNonWhitespaceRegex = /\S/u;
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-tabs",
26
+ url: "https://eslint.style/rules/no-tabs"
27
+ }
28
+ }]
29
+ },
30
+ type: "layout",
31
+ docs: {
32
+ description: "Disallow all tabs",
33
+ recommended: !1,
34
+ url: "https://eslint.org/docs/latest/rules/no-tabs"
35
+ },
36
+ schema: [{
37
+ type: "object",
38
+ properties: { allowIndentationTabs: {
39
+ type: "boolean",
40
+ default: !1
41
+ } },
42
+ additionalProperties: !1
43
+ }],
44
+ messages: { unexpectedTab: "Unexpected tab character." }
45
+ },
46
+ create(context) {
47
+ let sourceCode = context.sourceCode, allowIndentationTabs = context.options && context.options[0] && context.options[0].allowIndentationTabs;
48
+ return { Program(node) {
49
+ sourceCode.getLines().forEach((line, index) => {
50
+ let match;
51
+ for (; (match = tabRegex.exec(line)) !== null;) allowIndentationTabs && !anyNonWhitespaceRegex.test(line.slice(0, match.index)) || context.report({
52
+ node,
53
+ loc: {
54
+ start: {
55
+ line: index + 1,
56
+ column: match.index
57
+ },
58
+ end: {
59
+ line: index + 1,
60
+ column: match.index + match[0].length
61
+ }
62
+ },
63
+ messageId: "unexpectedTab"
64
+ });
65
+ });
66
+ } };
67
+ }
68
+ };
69
+ }));
70
+ //#endregion
71
+ //#region src-js/generated/plugin-eslint/rules/no-tabs.cjs
72
+ module.exports = require_no_tabs().create;
73
+ //#endregion
@@ -0,0 +1,33 @@
1
+ //#region ../../node_modules/.pnpm/eslint@9.39.3_jiti@2.6.1/node_modules/eslint/lib/rules/no-template-curly-in-string.js
2
+ /**
3
+ * @fileoverview Warn when using template string syntax in regular strings
4
+ * @author Jeroen Engels
5
+ */
6
+ var require_no_template_curly_in_string = /* @__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 template literal placeholder syntax in regular strings",
13
+ recommended: !1,
14
+ url: "https://eslint.org/docs/latest/rules/no-template-curly-in-string"
15
+ },
16
+ schema: [],
17
+ messages: { unexpectedTemplateExpression: "Unexpected template string expression." }
18
+ },
19
+ create(context) {
20
+ let regex = /\$\{[^}]+\}/u;
21
+ return { Literal(node) {
22
+ typeof node.value == "string" && regex.test(node.value) && context.report({
23
+ node,
24
+ messageId: "unexpectedTemplateExpression"
25
+ });
26
+ } };
27
+ }
28
+ };
29
+ }));
30
+ //#endregion
31
+ //#region src-js/generated/plugin-eslint/rules/no-template-curly-in-string.cjs
32
+ module.exports = require_no_template_curly_in_string().create;
33
+ //#endregion
@@ -0,0 +1,33 @@
1
+ //#region ../../node_modules/.pnpm/eslint@9.39.3_jiti@2.6.1/node_modules/eslint/lib/rules/no-ternary.js
2
+ /**
3
+ * @fileoverview Rule to flag use of ternary operators.
4
+ * @author Ian Christian Myers
5
+ */
6
+ var require_no_ternary = /* @__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 ternary operators",
13
+ recommended: !1,
14
+ frozen: !0,
15
+ url: "https://eslint.org/docs/latest/rules/no-ternary"
16
+ },
17
+ schema: [],
18
+ messages: { noTernaryOperator: "Ternary operator used." }
19
+ },
20
+ create(context) {
21
+ return { ConditionalExpression(node) {
22
+ context.report({
23
+ node,
24
+ messageId: "noTernaryOperator"
25
+ });
26
+ } };
27
+ }
28
+ };
29
+ }));
30
+ //#endregion
31
+ //#region src-js/generated/plugin-eslint/rules/no-ternary.cjs
32
+ module.exports = require_no_ternary().create;
33
+ //#endregion
@@ -0,0 +1,177 @@
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-this-before-super.js
3
+ /**
4
+ * @fileoverview A rule to disallow using `this`/`super` before `super()`.
5
+ * @author Toru Nagashima
6
+ */
7
+ var require_no_this_before_super = /* @__PURE__ */ require_chunk.t(((exports, module) => {
8
+ let astUtils = require_ast_utils$1.t();
9
+ /**
10
+ * Checks whether or not a given node is a constructor.
11
+ * @param {ASTNode} node A node to check. This node type is one of
12
+ * `Program`, `FunctionDeclaration`, `FunctionExpression`, and
13
+ * `ArrowFunctionExpression`.
14
+ * @returns {boolean} `true` if the node is a constructor.
15
+ */
16
+ function isConstructorFunction(node) {
17
+ return node.type === "FunctionExpression" && node.parent.type === "MethodDefinition" && node.parent.kind === "constructor";
18
+ }
19
+ /**
20
+ *
21
+ */
22
+ var SegmentInfo = class {
23
+ /**
24
+ * Indicates whether `super()` is called in all code paths.
25
+ * @type {boolean}
26
+ */
27
+ superCalled = !1;
28
+ /**
29
+ * The array of invalid ThisExpression and Super nodes.
30
+ * @type {ASTNode[]}
31
+ */
32
+ invalidNodes = [];
33
+ };
34
+ /** @type {import('../types').Rule.RuleModule} */
35
+ module.exports = {
36
+ meta: {
37
+ type: "problem",
38
+ docs: {
39
+ description: "Disallow `this`/`super` before calling `super()` in constructors",
40
+ recommended: !0,
41
+ url: "https://eslint.org/docs/latest/rules/no-this-before-super"
42
+ },
43
+ schema: [],
44
+ messages: { noBeforeSuper: "'{{kind}}' is not allowed before 'super()'." }
45
+ },
46
+ create(context) {
47
+ let funcInfo = null, segInfoMap = Object.create(null);
48
+ /**
49
+ * Gets whether or not `super()` is called in a given code path segment.
50
+ * @param {CodePathSegment} segment A code path segment to get.
51
+ * @returns {boolean} `true` if `super()` is called.
52
+ */
53
+ function isCalled(segment) {
54
+ return !segment.reachable || segInfoMap[segment.id]?.superCalled;
55
+ }
56
+ /**
57
+ * Checks whether or not this is in a constructor.
58
+ * @returns {boolean} `true` if this is in a constructor.
59
+ */
60
+ function isInConstructorOfDerivedClass() {
61
+ return !!(funcInfo && funcInfo.isConstructor && funcInfo.hasExtends);
62
+ }
63
+ /**
64
+ * Determines if every segment in a set has been called.
65
+ * @param {Set<CodePathSegment>} segments The segments to search.
66
+ * @returns {boolean} True if every segment has been called; false otherwise.
67
+ */
68
+ function isEverySegmentCalled(segments) {
69
+ for (let segment of segments) if (!isCalled(segment)) return !1;
70
+ return !0;
71
+ }
72
+ /**
73
+ * Checks whether or not this is before `super()` is called.
74
+ * @returns {boolean} `true` if this is before `super()` is called.
75
+ */
76
+ function isBeforeCallOfSuper() {
77
+ return isInConstructorOfDerivedClass() && !isEverySegmentCalled(funcInfo.currentSegments);
78
+ }
79
+ /**
80
+ * Sets a given node as invalid.
81
+ * @param {ASTNode} node A node to set as invalid. This is one of
82
+ * a ThisExpression and a Super.
83
+ * @returns {void}
84
+ */
85
+ function setInvalid(node) {
86
+ let segments = funcInfo.currentSegments;
87
+ for (let segment of segments) segment.reachable && segInfoMap[segment.id].invalidNodes.push(node);
88
+ }
89
+ /**
90
+ * Sets the current segment as `super` was called.
91
+ * @returns {void}
92
+ */
93
+ function setSuperCalled() {
94
+ let segments = funcInfo.currentSegments;
95
+ for (let segment of segments) segment.reachable && (segInfoMap[segment.id].superCalled = !0);
96
+ }
97
+ return {
98
+ onCodePathStart(codePath, node) {
99
+ if (isConstructorFunction(node)) {
100
+ let classNode = node.parent.parent.parent;
101
+ funcInfo = {
102
+ upper: funcInfo,
103
+ isConstructor: !0,
104
+ hasExtends: !!(classNode.superClass && !astUtils.isNullOrUndefined(classNode.superClass)),
105
+ codePath,
106
+ currentSegments: /* @__PURE__ */ new Set()
107
+ };
108
+ } else funcInfo = {
109
+ upper: funcInfo,
110
+ isConstructor: !1,
111
+ hasExtends: !1,
112
+ codePath,
113
+ currentSegments: /* @__PURE__ */ new Set()
114
+ };
115
+ },
116
+ onCodePathEnd(codePath) {
117
+ let isDerivedClass = funcInfo.hasExtends;
118
+ if (funcInfo = funcInfo.upper, !isDerivedClass) return;
119
+ /**
120
+ * A collection of nodes to avoid duplicate reports.
121
+ * @type {Set<ASTNode>}
122
+ */
123
+ let reported = /* @__PURE__ */ new Set();
124
+ codePath.traverseSegments((segment, controller) => {
125
+ let info = segInfoMap[segment.id], invalidNodes = info.invalidNodes.filter((node) => !reported.has(node));
126
+ for (let invalidNode of invalidNodes) reported.add(invalidNode), context.report({
127
+ messageId: "noBeforeSuper",
128
+ node: invalidNode,
129
+ data: { kind: invalidNode.type === "Super" ? "super" : "this" }
130
+ });
131
+ info.superCalled && controller.skip();
132
+ });
133
+ },
134
+ onCodePathSegmentStart(segment) {
135
+ funcInfo.currentSegments.add(segment), isInConstructorOfDerivedClass() && (segInfoMap[segment.id] = {
136
+ superCalled: segment.prevSegments.length > 0 && segment.prevSegments.every(isCalled),
137
+ invalidNodes: []
138
+ });
139
+ },
140
+ onUnreachableCodePathSegmentStart(segment) {
141
+ funcInfo.currentSegments.add(segment);
142
+ },
143
+ onUnreachableCodePathSegmentEnd(segment) {
144
+ funcInfo.currentSegments.delete(segment);
145
+ },
146
+ onCodePathSegmentEnd(segment) {
147
+ funcInfo.currentSegments.delete(segment);
148
+ },
149
+ onCodePathSegmentLoop(fromSegment, toSegment) {
150
+ isInConstructorOfDerivedClass() && funcInfo.codePath.traverseSegments({
151
+ first: toSegment,
152
+ last: fromSegment
153
+ }, (segment, controller) => {
154
+ let info = segInfoMap[segment.id] ?? new SegmentInfo();
155
+ info.superCalled ? controller.skip() : segment.prevSegments.length > 0 && segment.prevSegments.every(isCalled) && (info.superCalled = !0), segInfoMap[segment.id] = info;
156
+ });
157
+ },
158
+ ThisExpression(node) {
159
+ isBeforeCallOfSuper() && setInvalid(node);
160
+ },
161
+ Super(node) {
162
+ !astUtils.isCallee(node) && isBeforeCallOfSuper() && setInvalid(node);
163
+ },
164
+ "CallExpression:exit"(node) {
165
+ node.callee.type === "Super" && isBeforeCallOfSuper() && setSuperCalled();
166
+ },
167
+ "Program:exit"() {
168
+ segInfoMap = Object.create(null);
169
+ }
170
+ };
171
+ }
172
+ };
173
+ }));
174
+ //#endregion
175
+ //#region src-js/generated/plugin-eslint/rules/no-this-before-super.cjs
176
+ module.exports = require_no_this_before_super().create;
177
+ //#endregion
@@ -0,0 +1,40 @@
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-throw-literal.js
3
+ /**
4
+ * @fileoverview Rule to restrict what can be thrown as an exception.
5
+ * @author Dieter Oberkofler
6
+ */
7
+ var require_no_throw_literal = /* @__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 throwing literals as exceptions",
15
+ recommended: !1,
16
+ url: "https://eslint.org/docs/latest/rules/no-throw-literal"
17
+ },
18
+ schema: [],
19
+ messages: {
20
+ object: "Expected an error object to be thrown.",
21
+ undef: "Do not throw undefined."
22
+ }
23
+ },
24
+ create(context) {
25
+ return { ThrowStatement(node) {
26
+ astUtils.couldBeError(node.argument) ? node.argument.type === "Identifier" && node.argument.name === "undefined" && context.report({
27
+ node,
28
+ messageId: "undef"
29
+ }) : context.report({
30
+ node,
31
+ messageId: "object"
32
+ });
33
+ } };
34
+ }
35
+ };
36
+ }));
37
+ //#endregion
38
+ //#region src-js/generated/plugin-eslint/rules/no-throw-literal.cjs
39
+ module.exports = require_no_throw_literal().create;
40
+ //#endregion
@@ -0,0 +1,123 @@
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-trailing-spaces.js
3
+ /**
4
+ * @fileoverview Disallow trailing spaces at the end of lines.
5
+ * @author Nodeca Team <https://github.com/nodeca>
6
+ * @deprecated in ESLint v8.53.0
7
+ */
8
+ var require_no_trailing_spaces = /* @__PURE__ */ require_chunk.t(((exports, module) => {
9
+ /**
10
+ * @import { SourceLocation, SourceRange } from "@eslint/core";
11
+ */
12
+ let astUtils = require_ast_utils$1.t();
13
+ /** @type {import('../types').Rule.RuleModule} */
14
+ module.exports = {
15
+ meta: {
16
+ deprecated: {
17
+ message: "Formatting rules are being moved out of ESLint core.",
18
+ url: "https://eslint.org/blog/2023/10/deprecating-formatting-rules/",
19
+ deprecatedSince: "8.53.0",
20
+ availableUntil: "11.0.0",
21
+ replacedBy: [{
22
+ message: "ESLint Stylistic now maintains deprecated stylistic core rules.",
23
+ url: "https://eslint.style/guide/migration",
24
+ plugin: {
25
+ name: "@stylistic/eslint-plugin",
26
+ url: "https://eslint.style"
27
+ },
28
+ rule: {
29
+ name: "no-trailing-spaces",
30
+ url: "https://eslint.style/rules/no-trailing-spaces"
31
+ }
32
+ }]
33
+ },
34
+ type: "layout",
35
+ docs: {
36
+ description: "Disallow trailing whitespace at the end of lines",
37
+ recommended: !1,
38
+ url: "https://eslint.org/docs/latest/rules/no-trailing-spaces"
39
+ },
40
+ fixable: "whitespace",
41
+ schema: [{
42
+ type: "object",
43
+ properties: {
44
+ skipBlankLines: {
45
+ type: "boolean",
46
+ default: !1
47
+ },
48
+ ignoreComments: {
49
+ type: "boolean",
50
+ default: !1
51
+ }
52
+ },
53
+ additionalProperties: !1
54
+ }],
55
+ messages: { trailingSpace: "Trailing spaces not allowed." }
56
+ },
57
+ create(context) {
58
+ let sourceCode = context.sourceCode, BLANK_CLASS = "[ \xA0           ​ ]", SKIP_BLANK = `^${BLANK_CLASS}*$`, NONBLANK = `${BLANK_CLASS}+$`, options = context.options[0] || {}, skipBlankLines = options.skipBlankLines || !1, ignoreComments = options.ignoreComments || !1;
59
+ /**
60
+ * Report the error message
61
+ * @param {ASTNode} node node to report
62
+ * @param {SourceLocation} location range information
63
+ * @param {SourceRange} fixRange Range based on the whole program
64
+ * @returns {void}
65
+ */
66
+ function report(node, location, fixRange) {
67
+ context.report({
68
+ node,
69
+ loc: location,
70
+ messageId: "trailingSpace",
71
+ fix(fixer) {
72
+ return fixer.removeRange(fixRange);
73
+ }
74
+ });
75
+ }
76
+ /**
77
+ * Given a list of comment nodes, return the line numbers for those comments.
78
+ * @param {Array} comments An array of comment nodes.
79
+ * @returns {number[]} An array of line numbers containing comments.
80
+ */
81
+ function getCommentLineNumbers(comments) {
82
+ let lines = /* @__PURE__ */ new Set();
83
+ return comments.forEach((comment) => {
84
+ let endLine = comment.type === "Block" ? comment.loc.end.line - 1 : comment.loc.end.line;
85
+ for (let i = comment.loc.start.line; i <= endLine; i++) lines.add(i);
86
+ }), lines;
87
+ }
88
+ return { Program: function checkTrailingSpaces(node) {
89
+ let re = new RegExp(NONBLANK, "u"), skipMatch = new RegExp(SKIP_BLANK, "u"), lines = sourceCode.lines, linebreaks = sourceCode.getText().match(astUtils.createGlobalLinebreakMatcher()), commentLineNumbers = getCommentLineNumbers(sourceCode.getAllComments()), totalLength = 0;
90
+ for (let i = 0, ii = lines.length; i < ii; i++) {
91
+ let lineNumber = i + 1, linebreakLength = linebreaks && linebreaks[i] ? linebreaks[i].length : 1, lineLength = lines[i].length + linebreakLength, matches = re.exec(lines[i]);
92
+ if (matches) {
93
+ let location = {
94
+ start: {
95
+ line: lineNumber,
96
+ column: matches.index
97
+ },
98
+ end: {
99
+ line: lineNumber,
100
+ column: lineLength - linebreakLength
101
+ }
102
+ }, rangeStart = totalLength + location.start.column, rangeEnd = totalLength + location.end.column, containingNode = sourceCode.getNodeByRangeIndex(rangeStart);
103
+ if (containingNode && containingNode.type === "TemplateElement" && rangeStart > containingNode.parent.range[0] && rangeEnd < containingNode.parent.range[1]) {
104
+ totalLength += lineLength;
105
+ continue;
106
+ }
107
+ if (skipBlankLines && skipMatch.test(lines[i])) {
108
+ totalLength += lineLength;
109
+ continue;
110
+ }
111
+ let fixRange = [rangeStart, rangeEnd];
112
+ (!ignoreComments || !commentLineNumbers.has(lineNumber)) && report(node, location, fixRange);
113
+ }
114
+ totalLength += lineLength;
115
+ }
116
+ } };
117
+ }
118
+ };
119
+ }));
120
+ //#endregion
121
+ //#region src-js/generated/plugin-eslint/rules/no-trailing-spaces.cjs
122
+ module.exports = require_no_trailing_spaces().create;
123
+ //#endregion
@@ -0,0 +1,54 @@
1
+ //#region ../../node_modules/.pnpm/eslint@9.39.3_jiti@2.6.1/node_modules/eslint/lib/rules/no-unassigned-vars.js
2
+ /**
3
+ * @fileoverview Rule to flag variables that are never assigned
4
+ * @author Jacob Bandes-Storch <https://github.com/jtbandes>
5
+ */
6
+ var require_no_unassigned_vars = /* @__PURE__ */ require("../common/chunk.cjs").t(((exports, module) => {
7
+ /** @type {import('../types').Rule.RuleModule} */
8
+ module.exports = {
9
+ meta: {
10
+ type: "problem",
11
+ dialects: ["typescript", "javascript"],
12
+ language: "javascript",
13
+ docs: {
14
+ description: "Disallow `let` or `var` variables that are read but never assigned",
15
+ recommended: !1,
16
+ url: "https://eslint.org/docs/latest/rules/no-unassigned-vars"
17
+ },
18
+ schema: [],
19
+ messages: { unassigned: "'{{name}}' is always 'undefined' because it's never assigned." }
20
+ },
21
+ create(context) {
22
+ let sourceCode = context.sourceCode, insideDeclareModule = !1;
23
+ return {
24
+ "TSModuleDeclaration[declare=true]"() {
25
+ insideDeclareModule = !0;
26
+ },
27
+ "TSModuleDeclaration[declare=true]:exit"() {
28
+ insideDeclareModule = !1;
29
+ },
30
+ VariableDeclarator(node) {
31
+ /** @type {import('estree').VariableDeclaration} */
32
+ let declaration = node.parent;
33
+ if (node.init || node.id.type !== "Identifier" || declaration.kind === "const" || declaration.declare || insideDeclareModule) return;
34
+ let [variable] = sourceCode.getDeclaredVariables(node);
35
+ if (!variable) return;
36
+ let hasRead = !1;
37
+ for (let reference of variable.references) {
38
+ if (reference.isWrite()) return;
39
+ reference.isRead() && (hasRead = !0);
40
+ }
41
+ hasRead && context.report({
42
+ node,
43
+ messageId: "unassigned",
44
+ data: { name: node.id.name }
45
+ });
46
+ }
47
+ };
48
+ }
49
+ };
50
+ }));
51
+ //#endregion
52
+ //#region src-js/generated/plugin-eslint/rules/no-unassigned-vars.cjs
53
+ module.exports = require_no_unassigned_vars().create;
54
+ //#endregion
@@ -0,0 +1,46 @@
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-undef-init.js
3
+ /**
4
+ * @fileoverview Rule to flag when initializing to undefined
5
+ * @author Ilya Volodin
6
+ */
7
+ var require_no_undef_init = /* @__PURE__ */ require_chunk.t(((exports, module) => {
8
+ let astUtils = require_ast_utils$1.t(), CONSTANT_BINDINGS = new Set([
9
+ "const",
10
+ "using",
11
+ "await using"
12
+ ]);
13
+ /** @type {import('../types').Rule.RuleModule} */
14
+ module.exports = {
15
+ meta: {
16
+ type: "suggestion",
17
+ docs: {
18
+ description: "Disallow initializing variables to `undefined`",
19
+ recommended: !1,
20
+ frozen: !0,
21
+ url: "https://eslint.org/docs/latest/rules/no-undef-init"
22
+ },
23
+ schema: [],
24
+ fixable: "code",
25
+ messages: { unnecessaryUndefinedInit: "It's not necessary to initialize '{{name}}' to undefined." }
26
+ },
27
+ create(context) {
28
+ let sourceCode = context.sourceCode;
29
+ return { VariableDeclarator(node) {
30
+ let name = sourceCode.getText(node.id), init = node.init && node.init.name, scope = sourceCode.getScope(node), undefinedVar = astUtils.getVariableByName(scope, "undefined"), shadowed = undefinedVar && undefinedVar.defs.length > 0, lastToken = sourceCode.getLastToken(node);
31
+ init === "undefined" && !CONSTANT_BINDINGS.has(node.parent.kind) && !shadowed && context.report({
32
+ node,
33
+ messageId: "unnecessaryUndefinedInit",
34
+ data: { name },
35
+ fix(fixer) {
36
+ return node.parent.kind === "var" || node.id.type === "ArrayPattern" || node.id.type === "ObjectPattern" || sourceCode.commentsExistBetween(node.id, lastToken) ? null : fixer.removeRange([node.id.range[1], node.range[1]]);
37
+ }
38
+ });
39
+ } };
40
+ }
41
+ };
42
+ }));
43
+ //#endregion
44
+ //#region src-js/generated/plugin-eslint/rules/no-undef-init.cjs
45
+ module.exports = require_no_undef_init().create;
46
+ //#endregion
@@ -0,0 +1,51 @@
1
+ //#region ../../node_modules/.pnpm/eslint@9.39.3_jiti@2.6.1/node_modules/eslint/lib/rules/no-undef.js
2
+ /**
3
+ * @fileoverview Rule to flag references to undeclared variables.
4
+ * @author Mark Macdonald
5
+ */
6
+ var require_no_undef = /* @__PURE__ */ require("../common/chunk.cjs").t(((exports, module) => {
7
+ /**
8
+ * Checks if the given node is the argument of a typeof operator.
9
+ * @param {ASTNode} node The AST node being checked.
10
+ * @returns {boolean} Whether or not the node is the argument of a typeof operator.
11
+ */
12
+ function hasTypeOfOperator(node) {
13
+ let parent = node.parent;
14
+ return parent.type === "UnaryExpression" && parent.operator === "typeof";
15
+ }
16
+ /** @type {import('../types').Rule.RuleModule} */
17
+ module.exports = {
18
+ meta: {
19
+ type: "problem",
20
+ defaultOptions: [{ typeof: !1 }],
21
+ docs: {
22
+ description: "Disallow the use of undeclared variables unless mentioned in `/*global */` comments",
23
+ recommended: !0,
24
+ url: "https://eslint.org/docs/latest/rules/no-undef"
25
+ },
26
+ schema: [{
27
+ type: "object",
28
+ properties: { typeof: { type: "boolean" } },
29
+ additionalProperties: !1
30
+ }],
31
+ messages: { undef: "'{{name}}' is not defined." }
32
+ },
33
+ create(context) {
34
+ let [{ typeof: considerTypeOf }] = context.options, sourceCode = context.sourceCode;
35
+ return { "Program:exit"(node) {
36
+ sourceCode.getScope(node).through.forEach((ref) => {
37
+ let identifier = ref.identifier;
38
+ !considerTypeOf && hasTypeOfOperator(identifier) || context.report({
39
+ node: identifier,
40
+ messageId: "undef",
41
+ data: identifier
42
+ });
43
+ });
44
+ } };
45
+ }
46
+ };
47
+ }));
48
+ //#endregion
49
+ //#region src-js/generated/plugin-eslint/rules/no-undef.cjs
50
+ module.exports = require_no_undef().create;
51
+ //#endregion