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,112 @@
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-warning-comments.js
3
+ /**
4
+ * @fileoverview Rule that warns about used warning comments
5
+ * @author Alexander Schmidt <https://github.com/lxanders>
6
+ */
7
+ var require_no_warning_comments = /* @__PURE__ */ require_chunk.t(((exports, module) => {
8
+ let escapeRegExp = require_ast_utils$1.n(), astUtils = require_ast_utils$1.t();
9
+ /** @type {import('../types').Rule.RuleModule} */
10
+ module.exports = {
11
+ meta: {
12
+ type: "suggestion",
13
+ defaultOptions: [{
14
+ location: "start",
15
+ terms: [
16
+ "todo",
17
+ "fixme",
18
+ "xxx"
19
+ ]
20
+ }],
21
+ docs: {
22
+ description: "Disallow specified warning terms in comments",
23
+ recommended: !1,
24
+ frozen: !0,
25
+ url: "https://eslint.org/docs/latest/rules/no-warning-comments"
26
+ },
27
+ schema: [{
28
+ type: "object",
29
+ properties: {
30
+ terms: {
31
+ type: "array",
32
+ items: { type: "string" }
33
+ },
34
+ location: { enum: ["start", "anywhere"] },
35
+ decoration: {
36
+ type: "array",
37
+ items: {
38
+ type: "string",
39
+ pattern: "^\\S$"
40
+ },
41
+ minItems: 1,
42
+ uniqueItems: !0
43
+ }
44
+ },
45
+ additionalProperties: !1
46
+ }],
47
+ messages: { unexpectedComment: "Unexpected '{{matchedTerm}}' comment: '{{comment}}'." }
48
+ },
49
+ create(context) {
50
+ let sourceCode = context.sourceCode, [{ decoration, location, terms: warningTerms }] = context.options, escapedDecoration = escapeRegExp(decoration ? decoration.join("") : ""), selfConfigRegEx = /\bno-warning-comments\b/u;
51
+ /**
52
+ * Convert a warning term into a RegExp which will match a comment containing that whole word in the specified
53
+ * location ("start" or "anywhere"). If the term starts or ends with non word characters, then the match will not
54
+ * require word boundaries on that side.
55
+ * @param {string} term A term to convert to a RegExp
56
+ * @returns {RegExp} The term converted to a RegExp
57
+ */
58
+ function convertToRegExp(term) {
59
+ let escaped = escapeRegExp(term), prefix = "";
60
+ location === "start" ? prefix = `^[\\s${escapedDecoration}]*` : /^\w/u.test(term) && (prefix = "\\b");
61
+ let suffix = /\w$/u.test(term) ? "\\b" : "";
62
+ return RegExp(`${prefix}${escaped}${suffix}`, "iu");
63
+ }
64
+ let warningRegExps = warningTerms.map(convertToRegExp);
65
+ /**
66
+ * Checks the specified comment for matches of the configured warning terms and returns the matches.
67
+ * @param {string} comment The comment which is checked.
68
+ * @returns {Array} All matched warning terms for this comment.
69
+ */
70
+ function commentContainsWarningTerm(comment) {
71
+ let matches = [];
72
+ return warningRegExps.forEach((regex, index) => {
73
+ regex.test(comment) && matches.push(warningTerms[index]);
74
+ }), matches;
75
+ }
76
+ /**
77
+ * Checks the specified node for matching warning comments and reports them.
78
+ * @param {ASTNode} node The AST node being checked.
79
+ * @returns {void} undefined.
80
+ */
81
+ function checkComment(node) {
82
+ let comment = node.value;
83
+ astUtils.isDirectiveComment(node) && selfConfigRegEx.test(comment) || commentContainsWarningTerm(comment).forEach((matchedTerm) => {
84
+ let commentToDisplay = "", truncated = !1;
85
+ for (let c of comment.trim().split(/\s+/u)) {
86
+ let tmp = commentToDisplay ? `${commentToDisplay} ${c}` : c;
87
+ if (tmp.length <= 40) commentToDisplay = tmp;
88
+ else {
89
+ truncated = !0;
90
+ break;
91
+ }
92
+ }
93
+ context.report({
94
+ node,
95
+ messageId: "unexpectedComment",
96
+ data: {
97
+ matchedTerm,
98
+ comment: `${commentToDisplay}${truncated ? "..." : ""}`
99
+ }
100
+ });
101
+ });
102
+ }
103
+ return { Program() {
104
+ sourceCode.getAllComments().filter((token) => token.type !== "Shebang").forEach(checkComment);
105
+ } };
106
+ }
107
+ };
108
+ }));
109
+ //#endregion
110
+ //#region src-js/generated/plugin-eslint/rules/no-warning-comments.cjs
111
+ module.exports = require_no_warning_comments().create;
112
+ //#endregion
@@ -0,0 +1,72 @@
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-whitespace-before-property.js
3
+ /**
4
+ * @fileoverview Rule to disallow whitespace before properties
5
+ * @author Kai Cataldo
6
+ * @deprecated in ESLint v8.53.0
7
+ */
8
+ var require_no_whitespace_before_property = /* @__PURE__ */ require_chunk.t(((exports, module) => {
9
+ let astUtils = require_ast_utils$1.t();
10
+ /** @type {import('../types').Rule.RuleModule} */
11
+ module.exports = {
12
+ meta: {
13
+ deprecated: {
14
+ message: "Formatting rules are being moved out of ESLint core.",
15
+ url: "https://eslint.org/blog/2023/10/deprecating-formatting-rules/",
16
+ deprecatedSince: "8.53.0",
17
+ availableUntil: "11.0.0",
18
+ replacedBy: [{
19
+ message: "ESLint Stylistic now maintains deprecated stylistic core rules.",
20
+ url: "https://eslint.style/guide/migration",
21
+ plugin: {
22
+ name: "@stylistic/eslint-plugin",
23
+ url: "https://eslint.style"
24
+ },
25
+ rule: {
26
+ name: "no-whitespace-before-property",
27
+ url: "https://eslint.style/rules/no-whitespace-before-property"
28
+ }
29
+ }]
30
+ },
31
+ type: "layout",
32
+ docs: {
33
+ description: "Disallow whitespace before properties",
34
+ recommended: !1,
35
+ url: "https://eslint.org/docs/latest/rules/no-whitespace-before-property"
36
+ },
37
+ fixable: "whitespace",
38
+ schema: [],
39
+ messages: { unexpectedWhitespace: "Unexpected whitespace before property {{propName}}." }
40
+ },
41
+ create(context) {
42
+ let sourceCode = context.sourceCode;
43
+ /**
44
+ * Reports whitespace before property token
45
+ * @param {ASTNode} node the node to report in the event of an error
46
+ * @param {Token} leftToken the left token
47
+ * @param {Token} rightToken the right token
48
+ * @returns {void}
49
+ * @private
50
+ */
51
+ function reportError(node, leftToken, rightToken) {
52
+ context.report({
53
+ node,
54
+ messageId: "unexpectedWhitespace",
55
+ data: { propName: sourceCode.getText(node.property) },
56
+ fix(fixer) {
57
+ let replacementText = "";
58
+ return !node.computed && !node.optional && astUtils.isDecimalInteger(node.object) || sourceCode.commentsExistBetween(leftToken, rightToken) ? null : (node.optional ? replacementText = "?." : node.computed || (replacementText = "."), fixer.replaceTextRange([leftToken.range[1], rightToken.range[0]], replacementText));
59
+ }
60
+ });
61
+ }
62
+ return { MemberExpression(node) {
63
+ let rightToken, leftToken;
64
+ astUtils.isTokenOnSameLine(node.object, node.property) && (node.computed ? (rightToken = sourceCode.getTokenBefore(node.property, astUtils.isOpeningBracketToken), leftToken = sourceCode.getTokenBefore(rightToken, node.optional ? 1 : 0)) : (rightToken = sourceCode.getFirstToken(node.property), leftToken = sourceCode.getTokenBefore(rightToken, 1)), sourceCode.isSpaceBetweenTokens(leftToken, rightToken) && reportError(node, leftToken, rightToken));
65
+ } };
66
+ }
67
+ };
68
+ }));
69
+ //#endregion
70
+ //#region src-js/generated/plugin-eslint/rules/no-whitespace-before-property.cjs
71
+ module.exports = require_no_whitespace_before_property().create;
72
+ //#endregion
@@ -0,0 +1,32 @@
1
+ //#region ../../node_modules/.pnpm/eslint@9.39.3_jiti@2.6.1/node_modules/eslint/lib/rules/no-with.js
2
+ /**
3
+ * @fileoverview Rule to flag use of with statement
4
+ * @author Nicholas C. Zakas
5
+ */
6
+ var require_no_with = /* @__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 `with` statements",
13
+ recommended: !0,
14
+ url: "https://eslint.org/docs/latest/rules/no-with"
15
+ },
16
+ schema: [],
17
+ messages: { unexpectedWith: "Unexpected use of 'with' statement." }
18
+ },
19
+ create(context) {
20
+ return { WithStatement(node) {
21
+ context.report({
22
+ node,
23
+ messageId: "unexpectedWith"
24
+ });
25
+ } };
26
+ }
27
+ };
28
+ }));
29
+ //#endregion
30
+ //#region src-js/generated/plugin-eslint/rules/no-with.cjs
31
+ module.exports = require_no_with().create;
32
+ //#endregion
@@ -0,0 +1,107 @@
1
+ //#region ../../node_modules/.pnpm/eslint@9.39.3_jiti@2.6.1/node_modules/eslint/lib/rules/nonblock-statement-body-position.js
2
+ /**
3
+ * @fileoverview enforce the location of single-line statements
4
+ * @author Teddy Katz
5
+ * @deprecated in ESLint v8.53.0
6
+ */
7
+ var require_nonblock_statement_body_position = /* @__PURE__ */ require("../common/chunk.cjs").t(((exports, module) => {
8
+ let POSITION_SCHEMA = { enum: [
9
+ "beside",
10
+ "below",
11
+ "any"
12
+ ] };
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: "nonblock-statement-body-position",
30
+ url: "https://eslint.style/rules/nonblock-statement-body-position"
31
+ }
32
+ }]
33
+ },
34
+ type: "layout",
35
+ docs: {
36
+ description: "Enforce the location of single-line statements",
37
+ recommended: !1,
38
+ url: "https://eslint.org/docs/latest/rules/nonblock-statement-body-position"
39
+ },
40
+ fixable: "whitespace",
41
+ schema: [POSITION_SCHEMA, {
42
+ properties: { overrides: {
43
+ properties: {
44
+ if: POSITION_SCHEMA,
45
+ else: POSITION_SCHEMA,
46
+ while: POSITION_SCHEMA,
47
+ do: POSITION_SCHEMA,
48
+ for: POSITION_SCHEMA
49
+ },
50
+ additionalProperties: !1
51
+ } },
52
+ additionalProperties: !1
53
+ }],
54
+ messages: {
55
+ expectNoLinebreak: "Expected no linebreak before this statement.",
56
+ expectLinebreak: "Expected a linebreak before this statement."
57
+ }
58
+ },
59
+ create(context) {
60
+ let sourceCode = context.sourceCode;
61
+ /**
62
+ * Gets the applicable preference for a particular keyword
63
+ * @param {string} keywordName The name of a keyword, e.g. 'if'
64
+ * @returns {string} The applicable option for the keyword, e.g. 'beside'
65
+ */
66
+ function getOption(keywordName) {
67
+ return context.options[1] && context.options[1].overrides && context.options[1].overrides[keywordName] || context.options[0] || "beside";
68
+ }
69
+ /**
70
+ * Validates the location of a single-line statement
71
+ * @param {ASTNode} node The single-line statement
72
+ * @param {string} keywordName The applicable keyword name for the single-line statement
73
+ * @returns {void}
74
+ */
75
+ function validateStatement(node, keywordName) {
76
+ let option = getOption(keywordName);
77
+ if (node.type === "BlockStatement" || option === "any") return;
78
+ let tokenBefore = sourceCode.getTokenBefore(node);
79
+ tokenBefore.loc.end.line === node.loc.start.line && option === "below" ? context.report({
80
+ node,
81
+ messageId: "expectLinebreak",
82
+ fix: (fixer) => fixer.insertTextBefore(node, "\n")
83
+ }) : tokenBefore.loc.end.line !== node.loc.start.line && option === "beside" && context.report({
84
+ node,
85
+ messageId: "expectNoLinebreak",
86
+ fix(fixer) {
87
+ return sourceCode.getText().slice(tokenBefore.range[1], node.range[0]).trim() ? null : fixer.replaceTextRange([tokenBefore.range[1], node.range[0]], " ");
88
+ }
89
+ });
90
+ }
91
+ return {
92
+ IfStatement(node) {
93
+ validateStatement(node.consequent, "if"), node.alternate && node.alternate.type !== "IfStatement" && validateStatement(node.alternate, "else");
94
+ },
95
+ WhileStatement: (node) => validateStatement(node.body, "while"),
96
+ DoWhileStatement: (node) => validateStatement(node.body, "do"),
97
+ ForStatement: (node) => validateStatement(node.body, "for"),
98
+ ForInStatement: (node) => validateStatement(node.body, "for"),
99
+ ForOfStatement: (node) => validateStatement(node.body, "for")
100
+ };
101
+ }
102
+ };
103
+ }));
104
+ //#endregion
105
+ //#region src-js/generated/plugin-eslint/rules/nonblock-statement-body-position.cjs
106
+ module.exports = require_nonblock_statement_body_position().create;
107
+ //#endregion
@@ -0,0 +1,194 @@
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/object-curly-newline.js
3
+ /**
4
+ * @fileoverview Rule to require or disallow line breaks inside braces.
5
+ * @author Toru Nagashima
6
+ * @deprecated in ESLint v8.53.0
7
+ */
8
+ var require_object_curly_newline = /* @__PURE__ */ require_chunk.t(((exports, module) => {
9
+ let astUtils = require_ast_utils$1.t(), OPTION_VALUE = { oneOf: [{ enum: ["always", "never"] }, {
10
+ type: "object",
11
+ properties: {
12
+ multiline: { type: "boolean" },
13
+ minProperties: {
14
+ type: "integer",
15
+ minimum: 0
16
+ },
17
+ consistent: { type: "boolean" }
18
+ },
19
+ additionalProperties: !1,
20
+ minProperties: 1
21
+ }] };
22
+ /**
23
+ * Normalizes a given option value.
24
+ * @param {string|Object|undefined} value An option value to parse.
25
+ * @returns {{multiline: boolean, minProperties: number, consistent: boolean}} Normalized option object.
26
+ */
27
+ function normalizeOptionValue(value) {
28
+ let multiline = !1, minProperties = Infinity, consistent = !1;
29
+ return value ? value === "always" ? minProperties = 0 : value === "never" ? minProperties = Infinity : (multiline = !!value.multiline, minProperties = value.minProperties || Infinity, consistent = !!value.consistent) : consistent = !0, {
30
+ multiline,
31
+ minProperties,
32
+ consistent
33
+ };
34
+ }
35
+ /**
36
+ * Checks if a value is an object.
37
+ * @param {any} value The value to check
38
+ * @returns {boolean} `true` if the value is an object, otherwise `false`
39
+ */
40
+ function isObject(value) {
41
+ return typeof value == "object" && !!value;
42
+ }
43
+ /**
44
+ * Checks if an option is a node-specific option
45
+ * @param {any} option The option to check
46
+ * @returns {boolean} `true` if the option is node-specific, otherwise `false`
47
+ */
48
+ function isNodeSpecificOption(option) {
49
+ return isObject(option) || typeof option == "string";
50
+ }
51
+ /**
52
+ * Normalizes a given option value.
53
+ * @param {string|Object|undefined} options An option value to parse.
54
+ * @returns {{
55
+ * ObjectExpression: {multiline: boolean, minProperties: number, consistent: boolean},
56
+ * ObjectPattern: {multiline: boolean, minProperties: number, consistent: boolean},
57
+ * ImportDeclaration: {multiline: boolean, minProperties: number, consistent: boolean},
58
+ * ExportNamedDeclaration : {multiline: boolean, minProperties: number, consistent: boolean}
59
+ * }} Normalized option object.
60
+ */
61
+ function normalizeOptions(options) {
62
+ if (isObject(options) && Object.values(options).some(isNodeSpecificOption)) return {
63
+ ObjectExpression: normalizeOptionValue(options.ObjectExpression),
64
+ ObjectPattern: normalizeOptionValue(options.ObjectPattern),
65
+ ImportDeclaration: normalizeOptionValue(options.ImportDeclaration),
66
+ ExportNamedDeclaration: normalizeOptionValue(options.ExportDeclaration)
67
+ };
68
+ let value = normalizeOptionValue(options);
69
+ return {
70
+ ObjectExpression: value,
71
+ ObjectPattern: value,
72
+ ImportDeclaration: value,
73
+ ExportNamedDeclaration: value
74
+ };
75
+ }
76
+ /**
77
+ * Determines if ObjectExpression, ObjectPattern, ImportDeclaration or ExportNamedDeclaration
78
+ * node needs to be checked for missing line breaks
79
+ * @param {ASTNode} node Node under inspection
80
+ * @param {Object} options option specific to node type
81
+ * @param {Token} first First object property
82
+ * @param {Token} last Last object property
83
+ * @returns {boolean} `true` if node needs to be checked for missing line breaks
84
+ */
85
+ function areLineBreaksRequired(node, options, first, last) {
86
+ let objectProperties;
87
+ return objectProperties = node.type === "ObjectExpression" || node.type === "ObjectPattern" ? node.properties : node.specifiers.filter((s) => s.type === "ImportSpecifier" || s.type === "ExportSpecifier"), objectProperties.length >= options.minProperties || options.multiline && objectProperties.length > 0 && first.loc.start.line !== last.loc.end.line;
88
+ }
89
+ /** @type {import('../types').Rule.RuleModule} */
90
+ module.exports = {
91
+ meta: {
92
+ deprecated: {
93
+ message: "Formatting rules are being moved out of ESLint core.",
94
+ url: "https://eslint.org/blog/2023/10/deprecating-formatting-rules/",
95
+ deprecatedSince: "8.53.0",
96
+ availableUntil: "11.0.0",
97
+ replacedBy: [{
98
+ message: "ESLint Stylistic now maintains deprecated stylistic core rules.",
99
+ url: "https://eslint.style/guide/migration",
100
+ plugin: {
101
+ name: "@stylistic/eslint-plugin",
102
+ url: "https://eslint.style"
103
+ },
104
+ rule: {
105
+ name: "object-curly-newline",
106
+ url: "https://eslint.style/rules/object-curly-newline"
107
+ }
108
+ }]
109
+ },
110
+ type: "layout",
111
+ docs: {
112
+ description: "Enforce consistent line breaks after opening and before closing braces",
113
+ recommended: !1,
114
+ url: "https://eslint.org/docs/latest/rules/object-curly-newline"
115
+ },
116
+ fixable: "whitespace",
117
+ schema: [{ oneOf: [OPTION_VALUE, {
118
+ type: "object",
119
+ properties: {
120
+ ObjectExpression: OPTION_VALUE,
121
+ ObjectPattern: OPTION_VALUE,
122
+ ImportDeclaration: OPTION_VALUE,
123
+ ExportDeclaration: OPTION_VALUE
124
+ },
125
+ additionalProperties: !1,
126
+ minProperties: 1
127
+ }] }],
128
+ messages: {
129
+ unexpectedLinebreakBeforeClosingBrace: "Unexpected line break before this closing brace.",
130
+ unexpectedLinebreakAfterOpeningBrace: "Unexpected line break after this opening brace.",
131
+ expectedLinebreakBeforeClosingBrace: "Expected a line break before this closing brace.",
132
+ expectedLinebreakAfterOpeningBrace: "Expected a line break after this opening brace."
133
+ }
134
+ },
135
+ create(context) {
136
+ let sourceCode = context.sourceCode, normalizedOptions = normalizeOptions(context.options[0]);
137
+ /**
138
+ * Reports a given node if it violated this rule.
139
+ * @param {ASTNode} node A node to check. This is an ObjectExpression, ObjectPattern, ImportDeclaration or ExportNamedDeclaration node.
140
+ * @returns {void}
141
+ */
142
+ function check(node) {
143
+ let options = normalizedOptions[node.type];
144
+ if (node.type === "ImportDeclaration" && !node.specifiers.some((specifier) => specifier.type === "ImportSpecifier") || node.type === "ExportNamedDeclaration" && !node.specifiers.some((specifier) => specifier.type === "ExportSpecifier")) return;
145
+ let openBrace = sourceCode.getFirstToken(node, (token) => token.value === "{"), closeBrace;
146
+ closeBrace = node.typeAnnotation ? sourceCode.getTokenBefore(node.typeAnnotation) : sourceCode.getLastToken(node, (token) => token.value === "}");
147
+ let first = sourceCode.getTokenAfter(openBrace, { includeComments: !0 }), last = sourceCode.getTokenBefore(closeBrace, { includeComments: !0 }), needsLineBreaks = areLineBreaksRequired(node, options, first, last), hasCommentsFirstToken = astUtils.isCommentToken(first), hasCommentsLastToken = astUtils.isCommentToken(last);
148
+ if (first = sourceCode.getTokenAfter(openBrace), last = sourceCode.getTokenBefore(closeBrace), needsLineBreaks) astUtils.isTokenOnSameLine(openBrace, first) && context.report({
149
+ messageId: "expectedLinebreakAfterOpeningBrace",
150
+ node,
151
+ loc: openBrace.loc,
152
+ fix(fixer) {
153
+ return hasCommentsFirstToken ? null : fixer.insertTextAfter(openBrace, "\n");
154
+ }
155
+ }), astUtils.isTokenOnSameLine(last, closeBrace) && context.report({
156
+ messageId: "expectedLinebreakBeforeClosingBrace",
157
+ node,
158
+ loc: closeBrace.loc,
159
+ fix(fixer) {
160
+ return hasCommentsLastToken ? null : fixer.insertTextBefore(closeBrace, "\n");
161
+ }
162
+ });
163
+ else {
164
+ let consistent = options.consistent, hasLineBreakBetweenOpenBraceAndFirst = !astUtils.isTokenOnSameLine(openBrace, first), hasLineBreakBetweenCloseBraceAndLast = !astUtils.isTokenOnSameLine(last, closeBrace);
165
+ (!consistent && hasLineBreakBetweenOpenBraceAndFirst || consistent && hasLineBreakBetweenOpenBraceAndFirst && !hasLineBreakBetweenCloseBraceAndLast) && context.report({
166
+ messageId: "unexpectedLinebreakAfterOpeningBrace",
167
+ node,
168
+ loc: openBrace.loc,
169
+ fix(fixer) {
170
+ return hasCommentsFirstToken ? null : fixer.removeRange([openBrace.range[1], first.range[0]]);
171
+ }
172
+ }), (!consistent && hasLineBreakBetweenCloseBraceAndLast || consistent && !hasLineBreakBetweenOpenBraceAndFirst && hasLineBreakBetweenCloseBraceAndLast) && context.report({
173
+ messageId: "unexpectedLinebreakBeforeClosingBrace",
174
+ node,
175
+ loc: closeBrace.loc,
176
+ fix(fixer) {
177
+ return hasCommentsLastToken ? null : fixer.removeRange([last.range[1], closeBrace.range[0]]);
178
+ }
179
+ });
180
+ }
181
+ }
182
+ return {
183
+ ObjectExpression: check,
184
+ ObjectPattern: check,
185
+ ImportDeclaration: check,
186
+ ExportNamedDeclaration: check
187
+ };
188
+ }
189
+ };
190
+ }));
191
+ //#endregion
192
+ //#region src-js/generated/plugin-eslint/rules/object-curly-newline.cjs
193
+ module.exports = require_object_curly_newline().create;
194
+ //#endregion