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,103 @@
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-redeclare.js
3
+ /**
4
+ * @fileoverview Rule to flag when the same variable is declared more then once.
5
+ * @author Ilya Volodin
6
+ */
7
+ var require_no_redeclare = /* @__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
+ defaultOptions: [{ builtinGlobals: !0 }],
14
+ docs: {
15
+ description: "Disallow variable redeclaration",
16
+ recommended: !0,
17
+ url: "https://eslint.org/docs/latest/rules/no-redeclare"
18
+ },
19
+ messages: {
20
+ redeclared: "'{{id}}' is already defined.",
21
+ redeclaredAsBuiltin: "'{{id}}' is already defined as a built-in global variable.",
22
+ redeclaredBySyntax: "'{{id}}' is already defined by a variable declaration."
23
+ },
24
+ schema: [{
25
+ type: "object",
26
+ properties: { builtinGlobals: { type: "boolean" } },
27
+ additionalProperties: !1
28
+ }]
29
+ },
30
+ create(context) {
31
+ let [{ builtinGlobals }] = context.options, sourceCode = context.sourceCode;
32
+ /**
33
+ * Iterate declarations of a given variable.
34
+ * @param {escope.variable} variable The variable object to iterate declarations.
35
+ * @returns {IterableIterator<{type:string,node:ASTNode,loc:SourceLocation}>} The declarations.
36
+ */
37
+ function* iterateDeclarations(variable) {
38
+ builtinGlobals && (variable.eslintImplicitGlobalSetting === "readonly" || variable.eslintImplicitGlobalSetting === "writable") && (yield { type: "builtin" });
39
+ for (let id of variable.identifiers) yield {
40
+ type: "syntax",
41
+ node: id,
42
+ loc: id.loc
43
+ };
44
+ if (variable.eslintExplicitGlobalComments) for (let comment of variable.eslintExplicitGlobalComments) yield {
45
+ type: "comment",
46
+ node: comment,
47
+ loc: astUtils.getNameLocationInGlobalDirectiveComment(sourceCode, comment, variable.name)
48
+ };
49
+ }
50
+ /**
51
+ * Find variables in a given scope and flag redeclared ones.
52
+ * @param {Scope} scope An eslint-scope scope object.
53
+ * @returns {void}
54
+ * @private
55
+ */
56
+ function findVariablesInScope(scope) {
57
+ for (let variable of scope.variables) {
58
+ let [declaration, ...extraDeclarations] = iterateDeclarations(variable);
59
+ if (extraDeclarations.length === 0) continue;
60
+ let detailMessageId = declaration.type === "builtin" ? "redeclaredAsBuiltin" : "redeclaredBySyntax", data = { id: variable.name };
61
+ for (let { type, node, loc } of extraDeclarations) {
62
+ let messageId = type === declaration.type ? "redeclared" : detailMessageId;
63
+ context.report({
64
+ node,
65
+ loc,
66
+ messageId,
67
+ data
68
+ });
69
+ }
70
+ }
71
+ }
72
+ /**
73
+ * Find variables in the current scope.
74
+ * @param {ASTNode} node The node of the current scope.
75
+ * @returns {void}
76
+ * @private
77
+ */
78
+ function checkForBlock(node) {
79
+ let scope = sourceCode.getScope(node);
80
+ scope.block === node && findVariablesInScope(scope);
81
+ }
82
+ return {
83
+ Program(node) {
84
+ let scope = sourceCode.getScope(node);
85
+ findVariablesInScope(scope), scope.type === "global" && scope.childScopes[0] && scope.block === scope.childScopes[0].block && findVariablesInScope(scope.childScopes[0]);
86
+ },
87
+ FunctionDeclaration: checkForBlock,
88
+ FunctionExpression: checkForBlock,
89
+ ArrowFunctionExpression: checkForBlock,
90
+ StaticBlock: checkForBlock,
91
+ BlockStatement: checkForBlock,
92
+ ForStatement: checkForBlock,
93
+ ForInStatement: checkForBlock,
94
+ ForOfStatement: checkForBlock,
95
+ SwitchStatement: checkForBlock
96
+ };
97
+ }
98
+ };
99
+ }));
100
+ //#endregion
101
+ //#region src-js/generated/plugin-eslint/rules/no-redeclare.cjs
102
+ module.exports = require_no_redeclare().create;
103
+ //#endregion
@@ -0,0 +1,115 @@
1
+ const require_chunk = require("../common/chunk.cjs"), require_ast_utils$1 = require("../common/ast-utils.cjs"), require_regexpp$1 = require("../common/regexpp.cjs");
2
+ //#region ../../node_modules/.pnpm/eslint@9.39.3_jiti@2.6.1/node_modules/eslint/lib/rules/no-regex-spaces.js
3
+ /**
4
+ * @fileoverview Rule to count multiple spaces in regular expressions
5
+ * @author Matt DuVall <http://www.mattduvall.com/>
6
+ */
7
+ var require_no_regex_spaces = /* @__PURE__ */ require_chunk.t(((exports, module) => {
8
+ let astUtils = require_ast_utils$1.t(), regexpp = require_regexpp$1.t(), regExpParser = new regexpp.RegExpParser(), DOUBLE_SPACE = / {2}/u;
9
+ /**
10
+ * Check if node is a string
11
+ * @param {ASTNode} node node to evaluate
12
+ * @returns {boolean} True if its a string
13
+ * @private
14
+ */
15
+ function isString(node) {
16
+ return node && node.type === "Literal" && typeof node.value == "string";
17
+ }
18
+ /** @type {import('../types').Rule.RuleModule} */
19
+ module.exports = {
20
+ meta: {
21
+ type: "suggestion",
22
+ docs: {
23
+ description: "Disallow multiple spaces in regular expressions",
24
+ recommended: !0,
25
+ url: "https://eslint.org/docs/latest/rules/no-regex-spaces"
26
+ },
27
+ schema: [],
28
+ fixable: "code",
29
+ messages: { multipleSpaces: "Spaces are hard to count. Use {{{length}}}." }
30
+ },
31
+ create(context) {
32
+ let sourceCode = context.sourceCode;
33
+ /**
34
+ * Validate regular expression
35
+ * @param {ASTNode} nodeToReport Node to report.
36
+ * @param {string} pattern Regular expression pattern to validate.
37
+ * @param {string} rawPattern Raw representation of the pattern in the source code.
38
+ * @param {number} rawPatternStartRange Start range of the pattern in the source code.
39
+ * @param {string} flags Regular expression flags.
40
+ * @returns {void}
41
+ * @private
42
+ */
43
+ function checkRegex(nodeToReport, pattern, rawPattern, rawPatternStartRange, flags) {
44
+ if (!DOUBLE_SPACE.test(rawPattern)) return;
45
+ let characterClassNodes = [], regExpAST;
46
+ try {
47
+ regExpAST = regExpParser.parsePattern(pattern, 0, pattern.length, {
48
+ unicode: flags.includes("u"),
49
+ unicodeSets: flags.includes("v")
50
+ });
51
+ } catch {
52
+ return;
53
+ }
54
+ regexpp.visitRegExpAST(regExpAST, { onCharacterClassEnter(ccNode) {
55
+ characterClassNodes.push(ccNode);
56
+ } });
57
+ let spacesPattern = /( {2,})(?: [+*{?]|[^+*{?]|$)/gu, match;
58
+ for (; match = spacesPattern.exec(pattern);) {
59
+ let { 1: { length }, index } = match;
60
+ if (characterClassNodes.every(({ start, end }) => index < start || end <= index)) {
61
+ context.report({
62
+ node: nodeToReport,
63
+ messageId: "multipleSpaces",
64
+ data: { length },
65
+ fix(fixer) {
66
+ return pattern === rawPattern ? fixer.replaceTextRange([rawPatternStartRange + index, rawPatternStartRange + index + length], ` {${length}}`) : null;
67
+ }
68
+ });
69
+ return;
70
+ }
71
+ }
72
+ }
73
+ /**
74
+ * Validate regular expression literals
75
+ * @param {ASTNode} node node to validate
76
+ * @returns {void}
77
+ * @private
78
+ */
79
+ function checkLiteral(node) {
80
+ if (node.regex) {
81
+ let pattern = node.regex.pattern, rawPattern = node.raw.slice(1, node.raw.lastIndexOf("/")), rawPatternStartRange = node.range[0] + 1, flags = node.regex.flags;
82
+ checkRegex(node, pattern, rawPattern, rawPatternStartRange, flags);
83
+ }
84
+ }
85
+ /**
86
+ * Validate strings passed to the RegExp constructor
87
+ * @param {ASTNode} node node to validate
88
+ * @returns {void}
89
+ * @private
90
+ */
91
+ function checkFunction(node) {
92
+ let scope = sourceCode.getScope(node), regExpVar = astUtils.getVariableByName(scope, "RegExp"), shadowed = regExpVar && regExpVar.defs.length > 0, patternNode = node.arguments[0];
93
+ if (node.callee.type === "Identifier" && node.callee.name === "RegExp" && isString(patternNode) && !shadowed) {
94
+ let pattern = patternNode.value, rawPattern = patternNode.raw.slice(1, -1), rawPatternStartRange = patternNode.range[0] + 1, flags;
95
+ if (node.arguments.length < 2) flags = "";
96
+ else {
97
+ let flagsNode = node.arguments[1];
98
+ if (isString(flagsNode)) flags = flagsNode.value;
99
+ else return;
100
+ }
101
+ checkRegex(node, pattern, rawPattern, rawPatternStartRange, flags);
102
+ }
103
+ }
104
+ return {
105
+ Literal: checkLiteral,
106
+ CallExpression: checkFunction,
107
+ NewExpression: checkFunction
108
+ };
109
+ }
110
+ };
111
+ }));
112
+ //#endregion
113
+ //#region src-js/generated/plugin-eslint/rules/no-regex-spaces.cjs
114
+ module.exports = require_no_regex_spaces().create;
115
+ //#endregion
@@ -0,0 +1,117 @@
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-restricted-exports.js
3
+ /**
4
+ * @fileoverview Rule to disallow specified names in exports
5
+ * @author Milos Djermanovic
6
+ */
7
+ var require_no_restricted_exports = /* @__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 specified names in exports",
15
+ recommended: !1,
16
+ url: "https://eslint.org/docs/latest/rules/no-restricted-exports"
17
+ },
18
+ schema: [{ anyOf: [{
19
+ type: "object",
20
+ properties: {
21
+ restrictedNamedExports: {
22
+ type: "array",
23
+ items: { type: "string" },
24
+ uniqueItems: !0
25
+ },
26
+ restrictedNamedExportsPattern: { type: "string" }
27
+ },
28
+ additionalProperties: !1
29
+ }, {
30
+ type: "object",
31
+ properties: {
32
+ restrictedNamedExports: {
33
+ type: "array",
34
+ items: {
35
+ type: "string",
36
+ pattern: "^(?!default$)"
37
+ },
38
+ uniqueItems: !0
39
+ },
40
+ restrictedNamedExportsPattern: { type: "string" },
41
+ restrictDefaultExports: {
42
+ type: "object",
43
+ properties: {
44
+ direct: { type: "boolean" },
45
+ named: { type: "boolean" },
46
+ defaultFrom: { type: "boolean" },
47
+ namedFrom: { type: "boolean" },
48
+ namespaceFrom: { type: "boolean" }
49
+ },
50
+ additionalProperties: !1
51
+ }
52
+ },
53
+ additionalProperties: !1
54
+ }] }],
55
+ messages: {
56
+ restrictedNamed: "'{{name}}' is restricted from being used as an exported name.",
57
+ restrictedDefault: "Exporting 'default' is restricted."
58
+ }
59
+ },
60
+ create(context) {
61
+ let restrictedNames = new Set(context.options[0] && context.options[0].restrictedNamedExports), restrictedNamePattern = context.options[0] && context.options[0].restrictedNamedExportsPattern, restrictDefaultExports = context.options[0] && context.options[0].restrictDefaultExports, sourceCode = context.sourceCode;
62
+ /**
63
+ * Checks and reports given exported name.
64
+ * @param {ASTNode} node exported `Identifier` or string `Literal` node to check.
65
+ * @returns {void}
66
+ */
67
+ function checkExportedName(node) {
68
+ let name = astUtils.getModuleExportName(node), matchesRestrictedNamePattern = !1;
69
+ if (restrictedNamePattern && name !== "default" && (matchesRestrictedNamePattern = new RegExp(restrictedNamePattern, "u").test(name)), matchesRestrictedNamePattern || restrictedNames.has(name)) {
70
+ context.report({
71
+ node,
72
+ messageId: "restrictedNamed",
73
+ data: { name }
74
+ });
75
+ return;
76
+ }
77
+ if (name === "default") if (node.parent.type === "ExportAllDeclaration") restrictDefaultExports && restrictDefaultExports.namespaceFrom && context.report({
78
+ node,
79
+ messageId: "restrictedDefault"
80
+ });
81
+ else {
82
+ let isSourceSpecified = !!node.parent.parent.source, specifierLocalName = astUtils.getModuleExportName(node.parent.local);
83
+ if (!isSourceSpecified && restrictDefaultExports && restrictDefaultExports.named) {
84
+ context.report({
85
+ node,
86
+ messageId: "restrictedDefault"
87
+ });
88
+ return;
89
+ }
90
+ isSourceSpecified && restrictDefaultExports && (specifierLocalName === "default" && restrictDefaultExports.defaultFrom || specifierLocalName !== "default" && restrictDefaultExports.namedFrom) && context.report({
91
+ node,
92
+ messageId: "restrictedDefault"
93
+ });
94
+ }
95
+ }
96
+ return {
97
+ ExportAllDeclaration(node) {
98
+ node.exported && checkExportedName(node.exported);
99
+ },
100
+ ExportDefaultDeclaration(node) {
101
+ restrictDefaultExports && restrictDefaultExports.direct && context.report({
102
+ node,
103
+ messageId: "restrictedDefault"
104
+ });
105
+ },
106
+ ExportNamedDeclaration(node) {
107
+ let declaration = node.declaration;
108
+ declaration ? declaration.type === "FunctionDeclaration" || declaration.type === "ClassDeclaration" ? checkExportedName(declaration.id) : declaration.type === "VariableDeclaration" && sourceCode.getDeclaredVariables(declaration).map((v) => v.defs.find((d) => d.parent === declaration)).map((d) => d.name).forEach(checkExportedName) : node.specifiers.map((s) => s.exported).forEach(checkExportedName);
109
+ }
110
+ };
111
+ }
112
+ };
113
+ }));
114
+ //#endregion
115
+ //#region src-js/generated/plugin-eslint/rules/no-restricted-exports.cjs
116
+ module.exports = require_no_restricted_exports().create;
117
+ //#endregion
@@ -0,0 +1,147 @@
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-restricted-globals.js
3
+ /**
4
+ * @fileoverview Restrict usage of specified globals.
5
+ * @author Benoît Zugmeyer
6
+ */
7
+ var require_no_restricted_globals = /* @__PURE__ */ require_chunk.t(((exports, module) => {
8
+ let astUtils = require_ast_utils$1.t(), TYPE_NODES = new Set([
9
+ "TSTypeReference",
10
+ "TSInterfaceHeritage",
11
+ "TSClassImplements",
12
+ "TSTypeQuery",
13
+ "TSQualifiedName"
14
+ ]), GLOBAL_OBJECTS = new Set([
15
+ "globalThis",
16
+ "self",
17
+ "window"
18
+ ]), arrayOfGlobals = {
19
+ type: "array",
20
+ items: { oneOf: [{ type: "string" }, {
21
+ type: "object",
22
+ properties: {
23
+ name: { type: "string" },
24
+ message: { type: "string" }
25
+ },
26
+ required: ["name"],
27
+ additionalProperties: !1
28
+ }] },
29
+ uniqueItems: !0,
30
+ minItems: 0
31
+ };
32
+ /** @type {import('../types').Rule.RuleModule} */
33
+ module.exports = {
34
+ meta: {
35
+ dialects: ["javascript", "typescript"],
36
+ language: "javascript",
37
+ type: "suggestion",
38
+ docs: {
39
+ description: "Disallow specified global variables",
40
+ recommended: !1,
41
+ url: "https://eslint.org/docs/latest/rules/no-restricted-globals"
42
+ },
43
+ schema: { anyOf: [arrayOfGlobals, {
44
+ type: "array",
45
+ items: [{
46
+ type: "object",
47
+ properties: {
48
+ globals: arrayOfGlobals,
49
+ checkGlobalObject: { type: "boolean" },
50
+ globalObjects: {
51
+ type: "array",
52
+ items: { type: "string" },
53
+ uniqueItems: !0
54
+ }
55
+ },
56
+ required: ["globals"],
57
+ additionalProperties: !1
58
+ }],
59
+ additionalItems: !1
60
+ }] },
61
+ messages: {
62
+ defaultMessage: "Unexpected use of '{{name}}'.",
63
+ customMessage: "Unexpected use of '{{name}}'. {{customMessage}}"
64
+ }
65
+ },
66
+ create(context) {
67
+ let { sourceCode, options } = context, isGlobalsObject = typeof options[0] == "object" && Object.hasOwn(options[0], "globals"), restrictedGlobals = isGlobalsObject ? options[0].globals : options, checkGlobalObject = isGlobalsObject ? options[0].checkGlobalObject : !1, userGlobalObjects = isGlobalsObject && options[0].globalObjects || [], globalObjects = new Set([...GLOBAL_OBJECTS, ...userGlobalObjects]);
68
+ if (restrictedGlobals.length === 0) return {};
69
+ let restrictedGlobalMessages = restrictedGlobals.reduce((memo, option) => (typeof option == "string" ? memo[option] = null : memo[option.name] = option.message, memo), {});
70
+ /**
71
+ * Report a variable to be used as a restricted global.
72
+ * @param {Reference} reference the variable reference
73
+ * @returns {void}
74
+ * @private
75
+ */
76
+ function reportReference(reference) {
77
+ let name = reference.identifier.name, customMessage = restrictedGlobalMessages[name], messageId = customMessage ? "customMessage" : "defaultMessage";
78
+ context.report({
79
+ node: reference.identifier,
80
+ messageId,
81
+ data: {
82
+ name,
83
+ customMessage
84
+ }
85
+ });
86
+ }
87
+ /**
88
+ * Check if the given name is a restricted global name.
89
+ * @param {string} name name of a variable
90
+ * @returns {boolean} whether the variable is a restricted global or not
91
+ * @private
92
+ */
93
+ function isRestricted(name) {
94
+ return Object.hasOwn(restrictedGlobalMessages, name);
95
+ }
96
+ /**
97
+ * Check if the given reference occurs within a TypeScript type context.
98
+ * @param {Reference} reference The variable reference to check.
99
+ * @returns {boolean} Whether the reference is in a type context.
100
+ * @private
101
+ */
102
+ function isInTypeContext(reference) {
103
+ let parent = reference.identifier.parent;
104
+ return TYPE_NODES.has(parent.type);
105
+ }
106
+ return {
107
+ Program(node) {
108
+ let scope = sourceCode.getScope(node);
109
+ scope.variables.forEach((variable) => {
110
+ !variable.defs.length && isRestricted(variable.name) && variable.references.forEach((reference) => {
111
+ isInTypeContext(reference) || reportReference(reference);
112
+ });
113
+ }), scope.through.forEach((reference) => {
114
+ isRestricted(reference.identifier.name) && !isInTypeContext(reference) && reportReference(reference);
115
+ });
116
+ },
117
+ "Program:exit"(node) {
118
+ if (!checkGlobalObject) return;
119
+ let globalScope = sourceCode.getScope(node);
120
+ globalObjects.forEach((globalObjectName) => {
121
+ let variable = astUtils.getVariableByName(globalScope, globalObjectName);
122
+ variable && variable.references.forEach((reference) => {
123
+ let parent = reference.identifier.parent;
124
+ for (; astUtils.isSpecificMemberAccess(parent, null, globalObjectName);) parent = parent.parent;
125
+ let propertyName = astUtils.getStaticPropertyName(parent);
126
+ if (propertyName && isRestricted(propertyName)) {
127
+ let customMessage = restrictedGlobalMessages[propertyName], messageId = customMessage ? "customMessage" : "defaultMessage";
128
+ context.report({
129
+ node: parent.property,
130
+ messageId,
131
+ data: {
132
+ name: propertyName,
133
+ customMessage
134
+ }
135
+ });
136
+ }
137
+ });
138
+ });
139
+ }
140
+ };
141
+ }
142
+ };
143
+ }));
144
+ //#endregion
145
+ //#region src-js/generated/plugin-eslint/rules/no-restricted-globals.cjs
146
+ module.exports = require_no_restricted_globals().create;
147
+ //#endregion