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,421 @@
1
+ const require_chunk = require("../common/chunk.cjs"), require_ast_utils$1 = require("../common/ast-utils.cjs"), require_ignore$1 = require("../common/ignore.cjs");
2
+ //#region ../../node_modules/.pnpm/eslint@9.39.3_jiti@2.6.1/node_modules/eslint/lib/rules/no-restricted-imports.js
3
+ /**
4
+ * @fileoverview Restrict usage of specified node imports.
5
+ * @author Guy Ellis
6
+ */
7
+ var require_no_restricted_imports = /* @__PURE__ */ require_chunk.t(((exports, module) => {
8
+ let astUtils = require_ast_utils$1.t(), ignore = require_ignore$1.t(), arrayOfStringsOrObjects = {
9
+ type: "array",
10
+ items: { anyOf: [{ type: "string" }, {
11
+ type: "object",
12
+ properties: {
13
+ name: { type: "string" },
14
+ message: {
15
+ type: "string",
16
+ minLength: 1
17
+ },
18
+ importNames: {
19
+ type: "array",
20
+ items: { type: "string" }
21
+ },
22
+ allowImportNames: {
23
+ type: "array",
24
+ items: { type: "string" }
25
+ },
26
+ allowTypeImports: {
27
+ type: "boolean",
28
+ description: "Whether to allow type-only imports for a path."
29
+ }
30
+ },
31
+ additionalProperties: !1,
32
+ required: ["name"],
33
+ not: { required: ["importNames", "allowImportNames"] }
34
+ }] },
35
+ uniqueItems: !0
36
+ };
37
+ /** @type {import('../types').Rule.RuleModule} */
38
+ module.exports = {
39
+ meta: {
40
+ type: "suggestion",
41
+ dialects: ["typescript", "javascript"],
42
+ language: "javascript",
43
+ docs: {
44
+ description: "Disallow specified modules when loaded by `import`",
45
+ recommended: !1,
46
+ url: "https://eslint.org/docs/latest/rules/no-restricted-imports"
47
+ },
48
+ messages: {
49
+ path: "'{{importSource}}' import is restricted from being used.",
50
+ pathWithCustomMessage: "'{{importSource}}' import is restricted from being used. {{customMessage}}",
51
+ patterns: "'{{importSource}}' import is restricted from being used by a pattern.",
52
+ patternWithCustomMessage: "'{{importSource}}' import is restricted from being used by a pattern. {{customMessage}}",
53
+ patternAndImportName: "'{{importName}}' import from '{{importSource}}' is restricted from being used by a pattern.",
54
+ patternAndImportNameWithCustomMessage: "'{{importName}}' import from '{{importSource}}' is restricted from being used by a pattern. {{customMessage}}",
55
+ patternAndEverything: "* import is invalid because '{{importNames}}' from '{{importSource}}' is restricted from being used by a pattern.",
56
+ patternAndEverythingWithRegexImportName: "* import is invalid because import name matching '{{importNames}}' pattern from '{{importSource}}' is restricted from being used.",
57
+ patternAndEverythingWithCustomMessage: "* import is invalid because '{{importNames}}' from '{{importSource}}' is restricted from being used by a pattern. {{customMessage}}",
58
+ patternAndEverythingWithRegexImportNameAndCustomMessage: "* import is invalid because import name matching '{{importNames}}' pattern from '{{importSource}}' is restricted from being used. {{customMessage}}",
59
+ everything: "* import is invalid because '{{importNames}}' from '{{importSource}}' is restricted.",
60
+ everythingWithCustomMessage: "* import is invalid because '{{importNames}}' from '{{importSource}}' is restricted. {{customMessage}}",
61
+ importName: "'{{importName}}' import from '{{importSource}}' is restricted.",
62
+ importNameWithCustomMessage: "'{{importName}}' import from '{{importSource}}' is restricted. {{customMessage}}",
63
+ allowedImportName: "'{{importName}}' import from '{{importSource}}' is restricted because only '{{allowedImportNames}}' import(s) is/are allowed.",
64
+ allowedImportNameWithCustomMessage: "'{{importName}}' import from '{{importSource}}' is restricted because only '{{allowedImportNames}}' import(s) is/are allowed. {{customMessage}}",
65
+ everythingWithAllowImportNames: "* import is invalid because only '{{allowedImportNames}}' from '{{importSource}}' is/are allowed.",
66
+ everythingWithAllowImportNamesAndCustomMessage: "* import is invalid because only '{{allowedImportNames}}' from '{{importSource}}' is/are allowed. {{customMessage}}",
67
+ allowedImportNamePattern: "'{{importName}}' import from '{{importSource}}' is restricted because only imports that match the pattern '{{allowedImportNamePattern}}' are allowed from '{{importSource}}'.",
68
+ allowedImportNamePatternWithCustomMessage: "'{{importName}}' import from '{{importSource}}' is restricted because only imports that match the pattern '{{allowedImportNamePattern}}' are allowed from '{{importSource}}'. {{customMessage}}",
69
+ everythingWithAllowedImportNamePattern: "* import is invalid because only imports that match the pattern '{{allowedImportNamePattern}}' from '{{importSource}}' are allowed.",
70
+ everythingWithAllowedImportNamePatternWithCustomMessage: "* import is invalid because only imports that match the pattern '{{allowedImportNamePattern}}' from '{{importSource}}' are allowed. {{customMessage}}"
71
+ },
72
+ schema: { anyOf: [arrayOfStringsOrObjects, {
73
+ type: "array",
74
+ items: [{
75
+ type: "object",
76
+ properties: {
77
+ paths: arrayOfStringsOrObjects,
78
+ patterns: { anyOf: [{
79
+ type: "array",
80
+ items: { type: "string" },
81
+ uniqueItems: !0
82
+ }, {
83
+ type: "array",
84
+ items: {
85
+ type: "object",
86
+ properties: {
87
+ importNames: {
88
+ type: "array",
89
+ items: { type: "string" },
90
+ minItems: 1,
91
+ uniqueItems: !0
92
+ },
93
+ allowImportNames: {
94
+ type: "array",
95
+ items: { type: "string" },
96
+ minItems: 1,
97
+ uniqueItems: !0
98
+ },
99
+ group: {
100
+ type: "array",
101
+ items: { type: "string" },
102
+ minItems: 1,
103
+ uniqueItems: !0
104
+ },
105
+ regex: { type: "string" },
106
+ importNamePattern: { type: "string" },
107
+ allowImportNamePattern: { type: "string" },
108
+ message: {
109
+ type: "string",
110
+ minLength: 1
111
+ },
112
+ caseSensitive: { type: "boolean" },
113
+ allowTypeImports: {
114
+ type: "boolean",
115
+ description: "Whether to allow type-only imports for a pattern."
116
+ }
117
+ },
118
+ additionalProperties: !1,
119
+ not: { anyOf: [
120
+ { required: ["importNames", "allowImportNames"] },
121
+ { required: ["importNamePattern", "allowImportNamePattern"] },
122
+ { required: ["importNames", "allowImportNamePattern"] },
123
+ { required: ["importNamePattern", "allowImportNames"] },
124
+ { required: ["allowImportNames", "allowImportNamePattern"] }
125
+ ] },
126
+ oneOf: [{ required: ["group"] }, { required: ["regex"] }]
127
+ },
128
+ uniqueItems: !0
129
+ }] }
130
+ },
131
+ additionalProperties: !1
132
+ }],
133
+ additionalItems: !1
134
+ }] }
135
+ },
136
+ create(context) {
137
+ let sourceCode = context.sourceCode, options = Array.isArray(context.options) ? context.options : [], isPathAndPatternsObject = typeof options[0] == "object" && (Object.hasOwn(options[0], "paths") || Object.hasOwn(options[0], "patterns")), restrictedPaths = (isPathAndPatternsObject ? options[0].paths : context.options) || [], groupedRestrictedPaths = restrictedPaths.reduce((memo, importSource) => {
138
+ let path = typeof importSource == "string" ? importSource : importSource.name;
139
+ return memo[path] || (memo[path] = []), typeof importSource == "string" ? memo[path].push({}) : memo[path].push({
140
+ message: importSource.message,
141
+ importNames: importSource.importNames,
142
+ allowImportNames: importSource.allowImportNames,
143
+ allowTypeImports: importSource.allowTypeImports
144
+ }), memo;
145
+ }, Object.create(null)), restrictedPatterns = (isPathAndPatternsObject ? options[0].patterns : []) || [];
146
+ restrictedPatterns.length > 0 && typeof restrictedPatterns[0] == "string" && (restrictedPatterns = [{ group: restrictedPatterns }]);
147
+ let restrictedPatternGroups = restrictedPatterns.map(({ group, regex, message, caseSensitive, importNames, importNamePattern, allowImportNames, allowImportNamePattern, allowTypeImports }) => ({
148
+ ...group ? { matcher: ignore({
149
+ allowRelativePaths: !0,
150
+ ignorecase: !caseSensitive
151
+ }).add(group) } : {},
152
+ ...typeof regex == "string" ? { regexMatcher: new RegExp(regex, caseSensitive ? "u" : "iu") } : {},
153
+ customMessage: message,
154
+ importNames,
155
+ importNamePattern,
156
+ allowImportNames,
157
+ allowImportNamePattern,
158
+ allowTypeImports
159
+ }));
160
+ if (Object.keys(restrictedPaths).length === 0 && restrictedPatternGroups.length === 0) return {};
161
+ /**
162
+ * Check if the node is a type-only import
163
+ * @param {ASTNode} node The node to check
164
+ * @returns {boolean} Whether the node is a type-only import
165
+ */
166
+ function isTypeOnlyImport(node) {
167
+ return node.importKind === "type" || node.specifiers?.length > 0 && node.specifiers.every((specifier) => specifier.importKind === "type");
168
+ }
169
+ /**
170
+ * Check if a specifier is type-only
171
+ * @param {ASTNode} specifier The specifier to check
172
+ * @returns {boolean} Whether the specifier is type-only
173
+ */
174
+ function isTypeOnlySpecifier(specifier) {
175
+ return specifier.importKind === "type" || specifier.exportKind === "type";
176
+ }
177
+ /**
178
+ * Check if the node is a type-only export
179
+ * @param {ASTNode} node The node to check
180
+ * @returns {boolean} Whether the node is a type-only export
181
+ */
182
+ function isTypeOnlyExport(node) {
183
+ return node.exportKind === "type" || node.specifiers?.length > 0 && node.specifiers.every((specifier) => specifier.exportKind === "type");
184
+ }
185
+ /**
186
+ * Report a restricted path.
187
+ * @param {string} importSource path of the import
188
+ * @param {Map<string,Object[]>} importNames Map of import names that are being imported
189
+ * @param {node} node representing the restricted path reference
190
+ * @returns {void}
191
+ * @private
192
+ */
193
+ function checkRestrictedPathAndReport(importSource, importNames, node) {
194
+ Object.hasOwn(groupedRestrictedPaths, importSource) && groupedRestrictedPaths[importSource].forEach((restrictedPathEntry) => {
195
+ let customMessage = restrictedPathEntry.message, restrictedImportNames = restrictedPathEntry.importNames, allowedImportNames = restrictedPathEntry.allowImportNames, allowTypeImports = restrictedPathEntry.allowTypeImports;
196
+ if (!(allowTypeImports && (node.type === "ImportDeclaration" || node.type === "TSImportEqualsDeclaration") && isTypeOnlyImport(node)) && !(allowTypeImports && (node.type === "ExportNamedDeclaration" || node.type === "ExportAllDeclaration") && isTypeOnlyExport(node))) {
197
+ if (!restrictedImportNames && !allowedImportNames) {
198
+ context.report({
199
+ node,
200
+ messageId: customMessage ? "pathWithCustomMessage" : "path",
201
+ data: {
202
+ importSource,
203
+ customMessage
204
+ }
205
+ });
206
+ return;
207
+ }
208
+ importNames.forEach((specifiers, importName) => {
209
+ if (importName === "*") {
210
+ let [specifier] = specifiers;
211
+ restrictedImportNames ? context.report({
212
+ node,
213
+ messageId: customMessage ? "everythingWithCustomMessage" : "everything",
214
+ loc: specifier.loc,
215
+ data: {
216
+ importSource,
217
+ importNames: restrictedImportNames,
218
+ customMessage
219
+ }
220
+ }) : allowedImportNames && context.report({
221
+ node,
222
+ messageId: customMessage ? "everythingWithAllowImportNamesAndCustomMessage" : "everythingWithAllowImportNames",
223
+ loc: specifier.loc,
224
+ data: {
225
+ importSource,
226
+ allowedImportNames,
227
+ customMessage
228
+ }
229
+ });
230
+ return;
231
+ }
232
+ restrictedImportNames && restrictedImportNames.includes(importName) && specifiers.forEach((specifier) => {
233
+ allowTypeImports && isTypeOnlySpecifier(specifier.specifier) || context.report({
234
+ node,
235
+ messageId: customMessage ? "importNameWithCustomMessage" : "importName",
236
+ loc: specifier.loc,
237
+ data: {
238
+ importSource,
239
+ customMessage,
240
+ importName
241
+ }
242
+ });
243
+ }), allowedImportNames && !allowedImportNames.includes(importName) && specifiers.forEach((specifier) => {
244
+ allowTypeImports && isTypeOnlySpecifier(specifier.specifier) || context.report({
245
+ node,
246
+ loc: specifier.loc,
247
+ messageId: customMessage ? "allowedImportNameWithCustomMessage" : "allowedImportName",
248
+ data: {
249
+ importSource,
250
+ customMessage,
251
+ importName,
252
+ allowedImportNames
253
+ }
254
+ });
255
+ });
256
+ });
257
+ }
258
+ });
259
+ }
260
+ /**
261
+ * Report a restricted path specifically for patterns.
262
+ * @param {node} node representing the restricted path reference
263
+ * @param {Object} group contains an Ignore instance for paths, the customMessage to show on failure,
264
+ * and any restricted import names that have been specified in the config
265
+ * @param {Map<string,Object[]>} importNames Map of import names that are being imported
266
+ * @param {string} importSource the import source string
267
+ * @returns {void}
268
+ * @private
269
+ */
270
+ function reportPathForPatterns(node, group, importNames, importSource) {
271
+ if (group.allowTypeImports && (node.type === "ImportDeclaration" || node.type === "TSImportEqualsDeclaration") && isTypeOnlyImport(node) || group.allowTypeImports && (node.type === "ExportNamedDeclaration" || node.type === "ExportAllDeclaration") && isTypeOnlyExport(node)) return;
272
+ let customMessage = group.customMessage, restrictedImportNames = group.importNames, restrictedImportNamePattern = group.importNamePattern ? new RegExp(group.importNamePattern, "u") : null, allowedImportNames = group.allowImportNames, allowedImportNamePattern = group.allowImportNamePattern ? new RegExp(group.allowImportNamePattern, "u") : null;
273
+ /**
274
+ * If we are not restricting to any specific import names and just the pattern itself,
275
+ * report the error and move on
276
+ */
277
+ if (!restrictedImportNames && !allowedImportNames && !restrictedImportNamePattern && !allowedImportNamePattern) {
278
+ context.report({
279
+ node,
280
+ messageId: customMessage ? "patternWithCustomMessage" : "patterns",
281
+ data: {
282
+ importSource,
283
+ customMessage
284
+ }
285
+ });
286
+ return;
287
+ }
288
+ importNames.forEach((specifiers, importName) => {
289
+ if (importName === "*") {
290
+ let [specifier] = specifiers;
291
+ restrictedImportNames ? context.report({
292
+ node,
293
+ messageId: customMessage ? "patternAndEverythingWithCustomMessage" : "patternAndEverything",
294
+ loc: specifier.loc,
295
+ data: {
296
+ importSource,
297
+ importNames: restrictedImportNames,
298
+ customMessage
299
+ }
300
+ }) : allowedImportNames ? context.report({
301
+ node,
302
+ messageId: customMessage ? "everythingWithAllowImportNamesAndCustomMessage" : "everythingWithAllowImportNames",
303
+ loc: specifier.loc,
304
+ data: {
305
+ importSource,
306
+ allowedImportNames,
307
+ customMessage
308
+ }
309
+ }) : allowedImportNamePattern ? context.report({
310
+ node,
311
+ messageId: customMessage ? "everythingWithAllowedImportNamePatternWithCustomMessage" : "everythingWithAllowedImportNamePattern",
312
+ loc: specifier.loc,
313
+ data: {
314
+ importSource,
315
+ allowedImportNamePattern,
316
+ customMessage
317
+ }
318
+ }) : context.report({
319
+ node,
320
+ messageId: customMessage ? "patternAndEverythingWithRegexImportNameAndCustomMessage" : "patternAndEverythingWithRegexImportName",
321
+ loc: specifier.loc,
322
+ data: {
323
+ importSource,
324
+ importNames: restrictedImportNamePattern,
325
+ customMessage
326
+ }
327
+ });
328
+ return;
329
+ }
330
+ (restrictedImportNames && restrictedImportNames.includes(importName) || restrictedImportNamePattern && restrictedImportNamePattern.test(importName)) && specifiers.forEach((specifier) => {
331
+ group.allowTypeImports && isTypeOnlySpecifier(specifier.specifier) || context.report({
332
+ node,
333
+ messageId: customMessage ? "patternAndImportNameWithCustomMessage" : "patternAndImportName",
334
+ loc: specifier.loc,
335
+ data: {
336
+ importSource,
337
+ customMessage,
338
+ importName
339
+ }
340
+ });
341
+ }), allowedImportNames && !allowedImportNames.includes(importName) ? specifiers.forEach((specifier) => {
342
+ group.allowTypeImports && isTypeOnlySpecifier(specifier.specifier) || context.report({
343
+ node,
344
+ messageId: customMessage ? "allowedImportNameWithCustomMessage" : "allowedImportName",
345
+ loc: specifier.loc,
346
+ data: {
347
+ importSource,
348
+ customMessage,
349
+ importName,
350
+ allowedImportNames
351
+ }
352
+ });
353
+ }) : allowedImportNamePattern && !allowedImportNamePattern.test(importName) && specifiers.forEach((specifier) => {
354
+ group.allowTypeImports && isTypeOnlySpecifier(specifier.specifier) || context.report({
355
+ node,
356
+ messageId: customMessage ? "allowedImportNamePatternWithCustomMessage" : "allowedImportNamePattern",
357
+ loc: specifier.loc,
358
+ data: {
359
+ importSource,
360
+ customMessage,
361
+ importName,
362
+ allowedImportNamePattern
363
+ }
364
+ });
365
+ });
366
+ });
367
+ }
368
+ /**
369
+ * Check if the given importSource is restricted by a pattern.
370
+ * @param {string} importSource path of the import
371
+ * @param {Object} group contains a Ignore instance for paths, and the customMessage to show if it fails
372
+ * @returns {boolean} whether the variable is a restricted pattern or not
373
+ * @private
374
+ */
375
+ function isRestrictedPattern(importSource, group) {
376
+ return group.regexMatcher ? group.regexMatcher.test(importSource) : group.matcher.ignores(importSource);
377
+ }
378
+ /**
379
+ * Checks a node to see if any problems should be reported.
380
+ * @param {ASTNode} node The node to check.
381
+ * @returns {void}
382
+ * @private
383
+ */
384
+ function checkNode(node) {
385
+ let importSource = node.source.value.trim(), importNames = /* @__PURE__ */ new Map();
386
+ if (node.type === "ExportAllDeclaration") {
387
+ let starToken = sourceCode.getFirstToken(node, 1);
388
+ importNames.set("*", [{ loc: starToken.loc }]);
389
+ } else if (node.specifiers) for (let specifier of node.specifiers) {
390
+ let name, specifierData = {
391
+ loc: specifier.loc,
392
+ specifier
393
+ };
394
+ specifier.type === "ImportDefaultSpecifier" ? name = "default" : specifier.type === "ImportNamespaceSpecifier" ? name = "*" : specifier.imported ? name = astUtils.getModuleExportName(specifier.imported) : specifier.local && (name = astUtils.getModuleExportName(specifier.local)), typeof name == "string" && (importNames.has(name) ? importNames.get(name).push(specifierData) : importNames.set(name, [specifierData]));
395
+ }
396
+ checkRestrictedPathAndReport(importSource, importNames, node), restrictedPatternGroups.forEach((group) => {
397
+ isRestrictedPattern(importSource, group) && reportPathForPatterns(node, group, importNames, importSource);
398
+ });
399
+ }
400
+ return {
401
+ ImportDeclaration: checkNode,
402
+ ExportNamedDeclaration(node) {
403
+ node.source && checkNode(node);
404
+ },
405
+ ExportAllDeclaration: checkNode,
406
+ TSImportEqualsDeclaration(node) {
407
+ if (node.moduleReference.type === "TSExternalModuleReference") {
408
+ let importSource = node.moduleReference.expression.value, importNames = /* @__PURE__ */ new Map();
409
+ checkRestrictedPathAndReport(importSource, importNames, node), restrictedPatternGroups.forEach((group) => {
410
+ isRestrictedPattern(importSource, group) && reportPathForPatterns(node, group, importNames, importSource);
411
+ });
412
+ }
413
+ }
414
+ };
415
+ }
416
+ };
417
+ }));
418
+ //#endregion
419
+ //#region src-js/generated/plugin-eslint/rules/no-restricted-imports.cjs
420
+ module.exports = require_no_restricted_imports().create;
421
+ //#endregion
@@ -0,0 +1,144 @@
1
+ const require_chunk = require("../common/chunk.cjs"), require_ast_utils$1 = require("../common/ast-utils.cjs"), require_ignore$1 = require("../common/ignore.cjs");
2
+ //#region ../../node_modules/.pnpm/eslint@9.39.3_jiti@2.6.1/node_modules/eslint/lib/rules/no-restricted-modules.js
3
+ /**
4
+ * @fileoverview Restrict usage of specified node modules.
5
+ * @author Christian Schulz
6
+ * @deprecated in ESLint v7.0.0
7
+ */
8
+ var require_no_restricted_modules = /* @__PURE__ */ require_chunk.t(((exports, module) => {
9
+ let astUtils = require_ast_utils$1.t(), ignore = require_ignore$1.t(), arrayOfStrings = {
10
+ type: "array",
11
+ items: { type: "string" },
12
+ uniqueItems: !0
13
+ }, arrayOfStringsOrObjects = {
14
+ type: "array",
15
+ items: { anyOf: [{ type: "string" }, {
16
+ type: "object",
17
+ properties: {
18
+ name: { type: "string" },
19
+ message: {
20
+ type: "string",
21
+ minLength: 1
22
+ }
23
+ },
24
+ additionalProperties: !1,
25
+ required: ["name"]
26
+ }] },
27
+ uniqueItems: !0
28
+ };
29
+ /** @type {import('../types').Rule.RuleModule} */
30
+ module.exports = {
31
+ meta: {
32
+ deprecated: {
33
+ message: "Node.js rules were moved out of ESLint core.",
34
+ url: "https://eslint.org/docs/latest/use/migrating-to-7.0.0#deprecate-node-rules",
35
+ deprecatedSince: "7.0.0",
36
+ availableUntil: "11.0.0",
37
+ replacedBy: [{
38
+ message: "eslint-plugin-n now maintains deprecated Node.js-related rules.",
39
+ plugin: {
40
+ name: "eslint-plugin-n",
41
+ url: "https://github.com/eslint-community/eslint-plugin-n"
42
+ },
43
+ rule: {
44
+ name: "no-restricted-require",
45
+ url: "https://github.com/eslint-community/eslint-plugin-n/tree/master/docs/rules/no-restricted-require.md"
46
+ }
47
+ }]
48
+ },
49
+ type: "suggestion",
50
+ docs: {
51
+ description: "Disallow specified modules when loaded by `require`",
52
+ recommended: !1,
53
+ url: "https://eslint.org/docs/latest/rules/no-restricted-modules"
54
+ },
55
+ schema: { anyOf: [arrayOfStringsOrObjects, {
56
+ type: "array",
57
+ items: {
58
+ type: "object",
59
+ properties: {
60
+ paths: arrayOfStringsOrObjects,
61
+ patterns: arrayOfStrings
62
+ },
63
+ additionalProperties: !1
64
+ },
65
+ additionalItems: !1
66
+ }] },
67
+ messages: {
68
+ defaultMessage: "'{{name}}' module is restricted from being used.",
69
+ customMessage: "'{{name}}' module is restricted from being used. {{customMessage}}",
70
+ patternMessage: "'{{name}}' module is restricted from being used by a pattern."
71
+ }
72
+ },
73
+ create(context) {
74
+ let options = Array.isArray(context.options) ? context.options : [], isPathAndPatternsObject = typeof options[0] == "object" && (Object.hasOwn(options[0], "paths") || Object.hasOwn(options[0], "patterns")), restrictedPaths = (isPathAndPatternsObject ? options[0].paths : context.options) || [], restrictedPatterns = (isPathAndPatternsObject ? options[0].patterns : []) || [], restrictedPathMessages = restrictedPaths.reduce((memo, importName) => (typeof importName == "string" ? memo[importName] = null : memo[importName.name] = importName.message, memo), {});
75
+ if (Object.keys(restrictedPaths).length === 0 && restrictedPatterns.length === 0) return {};
76
+ let ig = ignore({ allowRelativePaths: !0 }).add(restrictedPatterns);
77
+ /**
78
+ * Function to check if a node is a string literal.
79
+ * @param {ASTNode} node The node to check.
80
+ * @returns {boolean} If the node is a string literal.
81
+ */
82
+ function isStringLiteral(node) {
83
+ return node && node.type === "Literal" && typeof node.value == "string";
84
+ }
85
+ /**
86
+ * Function to check if a node is a require call.
87
+ * @param {ASTNode} node The node to check.
88
+ * @returns {boolean} If the node is a require call.
89
+ */
90
+ function isRequireCall(node) {
91
+ return node.callee.type === "Identifier" && node.callee.name === "require";
92
+ }
93
+ /**
94
+ * Extract string from Literal or TemplateLiteral node
95
+ * @param {ASTNode} node The node to extract from
96
+ * @returns {string|null} Extracted string or null if node doesn't represent a string
97
+ */
98
+ function getFirstArgumentString(node) {
99
+ return isStringLiteral(node) ? node.value.trim() : astUtils.isStaticTemplateLiteral(node) ? node.quasis[0].value.cooked.trim() : null;
100
+ }
101
+ /**
102
+ * Report a restricted path.
103
+ * @param {node} node representing the restricted path reference
104
+ * @param {string} name restricted path
105
+ * @returns {void}
106
+ * @private
107
+ */
108
+ function reportPath(node, name) {
109
+ let customMessage = restrictedPathMessages[name], messageId = customMessage ? "customMessage" : "defaultMessage";
110
+ context.report({
111
+ node,
112
+ messageId,
113
+ data: {
114
+ name,
115
+ customMessage
116
+ }
117
+ });
118
+ }
119
+ /**
120
+ * Check if the given name is a restricted path name
121
+ * @param {string} name name of a variable
122
+ * @returns {boolean} whether the variable is a restricted path or not
123
+ * @private
124
+ */
125
+ function isRestrictedPath(name) {
126
+ return Object.hasOwn(restrictedPathMessages, name);
127
+ }
128
+ return { CallExpression(node) {
129
+ if (isRequireCall(node) && node.arguments.length) {
130
+ let name = getFirstArgumentString(node.arguments[0]);
131
+ name && (isRestrictedPath(name) && reportPath(node, name), restrictedPatterns.length > 0 && ig.ignores(name) && context.report({
132
+ node,
133
+ messageId: "patternMessage",
134
+ data: { name }
135
+ }));
136
+ }
137
+ } };
138
+ }
139
+ };
140
+ }));
141
+ //#endregion
142
+ //#region src-js/generated/plugin-eslint/rules/no-restricted-modules.cjs
143
+ module.exports = require_no_restricted_modules().create;
144
+ //#endregion