@depup/typescript-eslint__eslint-plugin 8.57.1-depup.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 (461) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +25 -0
  3. package/changes.json +5 -0
  4. package/dist/configs/eslint-recommended-raw.d.ts +10 -0
  5. package/dist/configs/eslint-recommended-raw.js +46 -0
  6. package/dist/configs/eslintrc/all.d.ts +159 -0
  7. package/dist/configs/eslintrc/all.js +165 -0
  8. package/dist/configs/eslintrc/base.d.ts +8 -0
  9. package/dist/configs/eslintrc/base.js +6 -0
  10. package/dist/configs/eslintrc/disable-type-checked.d.ts +71 -0
  11. package/dist/configs/eslintrc/disable-type-checked.js +73 -0
  12. package/dist/configs/eslintrc/eslint-recommended.d.ts +12 -0
  13. package/dist/configs/eslintrc/eslint-recommended.js +13 -0
  14. package/dist/configs/eslintrc/recommended-type-checked-only.d.ts +33 -0
  15. package/dist/configs/eslintrc/recommended-type-checked-only.js +39 -0
  16. package/dist/configs/eslintrc/recommended-type-checked.d.ts +56 -0
  17. package/dist/configs/eslintrc/recommended-type-checked.js +62 -0
  18. package/dist/configs/eslintrc/recommended.d.ts +29 -0
  19. package/dist/configs/eslintrc/recommended.js +35 -0
  20. package/dist/configs/eslintrc/strict-type-checked-only.d.ts +64 -0
  21. package/dist/configs/eslintrc/strict-type-checked-only.js +79 -0
  22. package/dist/configs/eslintrc/strict-type-checked.d.ts +98 -0
  23. package/dist/configs/eslintrc/strict-type-checked.js +114 -0
  24. package/dist/configs/eslintrc/strict.d.ts +40 -0
  25. package/dist/configs/eslintrc/strict.js +47 -0
  26. package/dist/configs/eslintrc/stylistic-type-checked-only.d.ts +15 -0
  27. package/dist/configs/eslintrc/stylistic-type-checked-only.js +21 -0
  28. package/dist/configs/eslintrc/stylistic-type-checked.d.ts +29 -0
  29. package/dist/configs/eslintrc/stylistic-type-checked.js +35 -0
  30. package/dist/configs/eslintrc/stylistic.d.ts +20 -0
  31. package/dist/configs/eslintrc/stylistic.js +26 -0
  32. package/dist/configs/flat/all.d.ts +7 -0
  33. package/dist/configs/flat/all.js +179 -0
  34. package/dist/configs/flat/base.d.ts +8 -0
  35. package/dist/configs/flat/base.js +17 -0
  36. package/dist/configs/flat/disable-type-checked.d.ts +7 -0
  37. package/dist/configs/flat/disable-type-checked.js +81 -0
  38. package/dist/configs/flat/eslint-recommended.d.ts +9 -0
  39. package/dist/configs/flat/eslint-recommended.js +16 -0
  40. package/dist/configs/flat/recommended-type-checked-only.d.ts +7 -0
  41. package/dist/configs/flat/recommended-type-checked-only.js +53 -0
  42. package/dist/configs/flat/recommended-type-checked.d.ts +7 -0
  43. package/dist/configs/flat/recommended-type-checked.js +76 -0
  44. package/dist/configs/flat/recommended.d.ts +7 -0
  45. package/dist/configs/flat/recommended.js +49 -0
  46. package/dist/configs/flat/strict-type-checked-only.d.ts +7 -0
  47. package/dist/configs/flat/strict-type-checked-only.js +93 -0
  48. package/dist/configs/flat/strict-type-checked.d.ts +7 -0
  49. package/dist/configs/flat/strict-type-checked.js +128 -0
  50. package/dist/configs/flat/strict.d.ts +7 -0
  51. package/dist/configs/flat/strict.js +61 -0
  52. package/dist/configs/flat/stylistic-type-checked-only.d.ts +7 -0
  53. package/dist/configs/flat/stylistic-type-checked-only.js +35 -0
  54. package/dist/configs/flat/stylistic-type-checked.d.ts +7 -0
  55. package/dist/configs/flat/stylistic-type-checked.js +49 -0
  56. package/dist/configs/flat/stylistic.d.ts +7 -0
  57. package/dist/configs/flat/stylistic.js +40 -0
  58. package/dist/index.d.ts +1128 -0
  59. package/dist/index.js +6 -0
  60. package/dist/raw-plugin.d.ts +1152 -0
  61. package/dist/raw-plugin.js +122 -0
  62. package/dist/rules/adjacent-overload-signatures.d.ts +4 -0
  63. package/dist/rules/adjacent-overload-signatures.js +124 -0
  64. package/dist/rules/array-type.d.ts +12 -0
  65. package/dist/rules/array-type.js +232 -0
  66. package/dist/rules/await-thenable.d.ts +6 -0
  67. package/dist/rules/await-thenable.js +228 -0
  68. package/dist/rules/ban-ts-comment.d.ts +17 -0
  69. package/dist/rules/ban-ts-comment.js +195 -0
  70. package/dist/rules/ban-tslint-comment.d.ts +4 -0
  71. package/dist/rules/ban-tslint-comment.js +53 -0
  72. package/dist/rules/class-literal-property-style.d.ts +7 -0
  73. package/dist/rules/class-literal-property-style.js +160 -0
  74. package/dist/rules/class-methods-use-this.d.ts +13 -0
  75. package/dist/rules/class-methods-use-this.js +219 -0
  76. package/dist/rules/consistent-generic-constructors.d.ts +6 -0
  77. package/dist/rules/consistent-generic-constructors.js +126 -0
  78. package/dist/rules/consistent-indexed-object-style.d.ts +7 -0
  79. package/dist/rules/consistent-indexed-object-style.js +256 -0
  80. package/dist/rules/consistent-return.d.ts +18 -0
  81. package/dist/rules/consistent-return.js +135 -0
  82. package/dist/rules/consistent-type-assertions.d.ts +14 -0
  83. package/dist/rules/consistent-type-assertions.js +256 -0
  84. package/dist/rules/consistent-type-definitions.d.ts +5 -0
  85. package/dist/rules/consistent-type-definitions.js +100 -0
  86. package/dist/rules/consistent-type-exports.d.ts +11 -0
  87. package/dist/rules/consistent-type-exports.js +335 -0
  88. package/dist/rules/consistent-type-imports.d.ts +15 -0
  89. package/dist/rules/consistent-type-imports.js +608 -0
  90. package/dist/rules/default-param-last.d.ts +4 -0
  91. package/dist/rules/default-param-last.js +68 -0
  92. package/dist/rules/dot-notation.d.ts +23 -0
  93. package/dist/rules/dot-notation.js +139 -0
  94. package/dist/rules/enum-utils/shared.d.ts +36 -0
  95. package/dist/rules/enum-utils/shared.js +121 -0
  96. package/dist/rules/explicit-function-return-type.d.ts +17 -0
  97. package/dist/rules/explicit-function-return-type.js +179 -0
  98. package/dist/rules/explicit-member-accessibility.d.ts +19 -0
  99. package/dist/rules/explicit-member-accessibility.js +299 -0
  100. package/dist/rules/explicit-module-boundary-types.d.ts +15 -0
  101. package/dist/rules/explicit-module-boundary-types.js +386 -0
  102. package/dist/rules/index.d.ts +448 -0
  103. package/dist/rules/index.js +275 -0
  104. package/dist/rules/init-declarations.d.ts +15 -0
  105. package/dist/rules/init-declarations.js +105 -0
  106. package/dist/rules/max-params.d.ts +25 -0
  107. package/dist/rules/max-params.js +72 -0
  108. package/dist/rules/member-ordering.d.ts +33 -0
  109. package/dist/rules/member-ordering.js +833 -0
  110. package/dist/rules/method-signature-style.d.ts +6 -0
  111. package/dist/rules/method-signature-style.js +186 -0
  112. package/dist/rules/naming-convention-utils/enums.d.ts +79 -0
  113. package/dist/rules/naming-convention-utils/enums.js +102 -0
  114. package/dist/rules/naming-convention-utils/format.d.ts +2 -0
  115. package/dist/rules/naming-convention-utils/format.js +89 -0
  116. package/dist/rules/naming-convention-utils/index.d.ts +6 -0
  117. package/dist/rules/naming-convention-utils/index.js +11 -0
  118. package/dist/rules/naming-convention-utils/parse-options.d.ts +2 -0
  119. package/dist/rules/naming-convention-utils/parse-options.js +69 -0
  120. package/dist/rules/naming-convention-utils/schema.d.ts +2 -0
  121. package/dist/rules/naming-convention-utils/schema.js +305 -0
  122. package/dist/rules/naming-convention-utils/shared.d.ts +5 -0
  123. package/dist/rules/naming-convention-utils/shared.js +16 -0
  124. package/dist/rules/naming-convention-utils/types.d.ts +39 -0
  125. package/dist/rules/naming-convention-utils/types.js +2 -0
  126. package/dist/rules/naming-convention-utils/validator.d.ts +3 -0
  127. package/dist/rules/naming-convention-utils/validator.js +349 -0
  128. package/dist/rules/naming-convention.d.ts +8 -0
  129. package/dist/rules/naming-convention.js +505 -0
  130. package/dist/rules/no-array-constructor.d.ts +4 -0
  131. package/dist/rules/no-array-constructor.js +62 -0
  132. package/dist/rules/no-array-delete.d.ts +6 -0
  133. package/dist/rules/no-array-delete.js +80 -0
  134. package/dist/rules/no-base-to-string.d.ts +11 -0
  135. package/dist/rules/no-base-to-string.js +324 -0
  136. package/dist/rules/no-confusing-non-null-assertion.d.ts +6 -0
  137. package/dist/rules/no-confusing-non-null-assertion.js +142 -0
  138. package/dist/rules/no-confusing-void-expression.d.ts +13 -0
  139. package/dist/rules/no-confusing-void-expression.js +357 -0
  140. package/dist/rules/no-deprecated.d.ts +11 -0
  141. package/dist/rules/no-deprecated.js +402 -0
  142. package/dist/rules/no-dupe-class-members.d.ts +14 -0
  143. package/dist/rules/no-dupe-class-members.js +39 -0
  144. package/dist/rules/no-duplicate-enum-values.d.ts +4 -0
  145. package/dist/rules/no-duplicate-enum-values.js +83 -0
  146. package/dist/rules/no-duplicate-type-constituents.d.ts +11 -0
  147. package/dist/rules/no-duplicate-type-constituents.js +219 -0
  148. package/dist/rules/no-dynamic-delete.d.ts +4 -0
  149. package/dist/rules/no-dynamic-delete.js +42 -0
  150. package/dist/rules/no-empty-function.d.ts +16 -0
  151. package/dist/rules/no-empty-function.js +134 -0
  152. package/dist/rules/no-empty-interface.d.ts +11 -0
  153. package/dist/rules/no-empty-interface.js +102 -0
  154. package/dist/rules/no-empty-object-type.d.ts +15 -0
  155. package/dist/rules/no-empty-object-type.js +143 -0
  156. package/dist/rules/no-explicit-any.d.ts +12 -0
  157. package/dist/rules/no-explicit-any.js +197 -0
  158. package/dist/rules/no-extra-non-null-assertion.d.ts +4 -0
  159. package/dist/rules/no-extra-non-null-assertion.js +35 -0
  160. package/dist/rules/no-extraneous-class.d.ts +13 -0
  161. package/dist/rules/no-extraneous-class.js +120 -0
  162. package/dist/rules/no-floating-promises.d.ts +16 -0
  163. package/dist/rules/no-floating-promises.js +365 -0
  164. package/dist/rules/no-for-in-array.d.ts +4 -0
  165. package/dist/rules/no-for-in-array.js +86 -0
  166. package/dist/rules/no-implied-eval.d.ts +4 -0
  167. package/dist/rules/no-implied-eval.js +152 -0
  168. package/dist/rules/no-import-type-side-effects.d.ts +7 -0
  169. package/dist/rules/no-import-type-side-effects.js +53 -0
  170. package/dist/rules/no-inferrable-types.d.ts +11 -0
  171. package/dist/rules/no-inferrable-types.js +182 -0
  172. package/dist/rules/no-invalid-this.d.ts +15 -0
  173. package/dist/rules/no-invalid-this.js +75 -0
  174. package/dist/rules/no-invalid-void-type.d.ts +9 -0
  175. package/dist/rules/no-invalid-void-type.js +210 -0
  176. package/dist/rules/no-loop-func.d.ts +13 -0
  177. package/dist/rules/no-loop-func.js +187 -0
  178. package/dist/rules/no-loss-of-precision.d.ts +9 -0
  179. package/dist/rules/no-loss-of-precision.js +35 -0
  180. package/dist/rules/no-magic-numbers.d.ts +29 -0
  181. package/dist/rules/no-magic-numbers.js +248 -0
  182. package/dist/rules/no-meaningless-void-operator.d.ts +10 -0
  183. package/dist/rules/no-meaningless-void-operator.js +102 -0
  184. package/dist/rules/no-misused-new.d.ts +4 -0
  185. package/dist/rules/no-misused-new.js +81 -0
  186. package/dist/rules/no-misused-promises.d.ts +21 -0
  187. package/dist/rules/no-misused-promises.js +765 -0
  188. package/dist/rules/no-misused-spread.d.ts +12 -0
  189. package/dist/rules/no-misused-spread.js +260 -0
  190. package/dist/rules/no-mixed-enums.d.ts +4 -0
  191. package/dist/rules/no-mixed-enums.js +200 -0
  192. package/dist/rules/no-namespace.d.ts +11 -0
  193. package/dist/rules/no-namespace.js +60 -0
  194. package/dist/rules/no-non-null-asserted-nullish-coalescing.d.ts +5 -0
  195. package/dist/rules/no-non-null-asserted-nullish-coalescing.js +73 -0
  196. package/dist/rules/no-non-null-asserted-optional-chain.d.ts +5 -0
  197. package/dist/rules/no-non-null-asserted-optional-chain.js +65 -0
  198. package/dist/rules/no-non-null-assertion.d.ts +6 -0
  199. package/dist/rules/no-non-null-assertion.js +93 -0
  200. package/dist/rules/no-redeclare.d.ts +12 -0
  201. package/dist/rules/no-redeclare.js +199 -0
  202. package/dist/rules/no-redundant-type-constituents.d.ts +4 -0
  203. package/dist/rules/no-redundant-type-constituents.js +431 -0
  204. package/dist/rules/no-require-imports.d.ts +11 -0
  205. package/dist/rules/no-require-imports.js +115 -0
  206. package/dist/rules/no-restricted-imports.d.ts +9 -0
  207. package/dist/rules/no-restricted-imports.js +243 -0
  208. package/dist/rules/no-restricted-types.d.ts +16 -0
  209. package/dist/rules/no-restricted-types.js +165 -0
  210. package/dist/rules/no-shadow.d.ts +16 -0
  211. package/dist/rules/no-shadow.js +521 -0
  212. package/dist/rules/no-this-alias.d.ts +11 -0
  213. package/dist/rules/no-this-alias.js +66 -0
  214. package/dist/rules/no-type-alias.d.ts +18 -0
  215. package/dist/rules/no-type-alias.js +268 -0
  216. package/dist/rules/no-unnecessary-boolean-literal-compare.d.ts +12 -0
  217. package/dist/rules/no-unnecessary-boolean-literal-compare.js +263 -0
  218. package/dist/rules/no-unnecessary-condition.d.ts +14 -0
  219. package/dist/rules/no-unnecessary-condition.js +675 -0
  220. package/dist/rules/no-unnecessary-parameter-property-assignment.d.ts +4 -0
  221. package/dist/rules/no-unnecessary-parameter-property-assignment.js +148 -0
  222. package/dist/rules/no-unnecessary-qualifier.d.ts +4 -0
  223. package/dist/rules/no-unnecessary-qualifier.js +156 -0
  224. package/dist/rules/no-unnecessary-template-expression.d.ts +6 -0
  225. package/dist/rules/no-unnecessary-template-expression.js +361 -0
  226. package/dist/rules/no-unnecessary-type-arguments.d.ts +5 -0
  227. package/dist/rules/no-unnecessary-type-arguments.js +197 -0
  228. package/dist/rules/no-unnecessary-type-assertion.d.ts +11 -0
  229. package/dist/rules/no-unnecessary-type-assertion.js +353 -0
  230. package/dist/rules/no-unnecessary-type-constraint.d.ts +5 -0
  231. package/dist/rules/no-unnecessary-type-constraint.js +119 -0
  232. package/dist/rules/no-unnecessary-type-conversion.d.ts +5 -0
  233. package/dist/rules/no-unnecessary-type-conversion.js +356 -0
  234. package/dist/rules/no-unnecessary-type-parameters.d.ts +5 -0
  235. package/dist/rules/no-unnecessary-type-parameters.js +422 -0
  236. package/dist/rules/no-unsafe-argument.d.ts +5 -0
  237. package/dist/rules/no-unsafe-argument.js +272 -0
  238. package/dist/rules/no-unsafe-assignment.d.ts +4 -0
  239. package/dist/rules/no-unsafe-assignment.js +322 -0
  240. package/dist/rules/no-unsafe-call.d.ts +5 -0
  241. package/dist/rules/no-unsafe-call.js +136 -0
  242. package/dist/rules/no-unsafe-declaration-merging.d.ts +4 -0
  243. package/dist/rules/no-unsafe-declaration-merging.js +54 -0
  244. package/dist/rules/no-unsafe-enum-comparison.d.ts +5 -0
  245. package/dist/rules/no-unsafe-enum-comparison.js +192 -0
  246. package/dist/rules/no-unsafe-function-type.d.ts +4 -0
  247. package/dist/rules/no-unsafe-function-type.js +45 -0
  248. package/dist/rules/no-unsafe-member-access.d.ts +10 -0
  249. package/dist/rules/no-unsafe-member-access.js +183 -0
  250. package/dist/rules/no-unsafe-return.d.ts +4 -0
  251. package/dist/rules/no-unsafe-return.js +183 -0
  252. package/dist/rules/no-unsafe-type-assertion.d.ts +4 -0
  253. package/dist/rules/no-unsafe-type-assertion.js +158 -0
  254. package/dist/rules/no-unsafe-unary-minus.d.ts +6 -0
  255. package/dist/rules/no-unsafe-unary-minus.js +78 -0
  256. package/dist/rules/no-unused-expressions.d.ts +19 -0
  257. package/dist/rules/no-unused-expressions.js +64 -0
  258. package/dist/rules/no-unused-private-class-members.d.ts +6 -0
  259. package/dist/rules/no-unused-private-class-members.js +44 -0
  260. package/dist/rules/no-unused-vars.d.ts +24 -0
  261. package/dist/rules/no-unused-vars.js +1033 -0
  262. package/dist/rules/no-use-before-define.d.ts +16 -0
  263. package/dist/rules/no-use-before-define.js +303 -0
  264. package/dist/rules/no-useless-constructor.d.ts +11 -0
  265. package/dist/rules/no-useless-constructor.js +57 -0
  266. package/dist/rules/no-useless-default-assignment.d.ts +11 -0
  267. package/dist/rules/no-useless-default-assignment.js +318 -0
  268. package/dist/rules/no-useless-empty-export.d.ts +4 -0
  269. package/dist/rules/no-useless-empty-export.js +70 -0
  270. package/dist/rules/no-var-requires.d.ts +10 -0
  271. package/dist/rules/no-var-requires.js +83 -0
  272. package/dist/rules/no-wrapper-object-types.d.ts +5 -0
  273. package/dist/rules/no-wrapper-object-types.js +60 -0
  274. package/dist/rules/non-nullable-type-assertion-style.d.ts +4 -0
  275. package/dist/rules/non-nullable-type-assertion-style.js +132 -0
  276. package/dist/rules/only-throw-error.d.ts +14 -0
  277. package/dist/rules/only-throw-error.js +158 -0
  278. package/dist/rules/parameter-properties.d.ts +13 -0
  279. package/dist/rules/parameter-properties.js +164 -0
  280. package/dist/rules/prefer-as-const.d.ts +5 -0
  281. package/dist/rules/prefer-as-const.js +72 -0
  282. package/dist/rules/prefer-destructuring.d.ts +19 -0
  283. package/dist/rules/prefer-destructuring.js +216 -0
  284. package/dist/rules/prefer-enum-initializers.d.ts +6 -0
  285. package/dist/rules/prefer-enum-initializers.js +62 -0
  286. package/dist/rules/prefer-find.d.ts +5 -0
  287. package/dist/rules/prefer-find.js +247 -0
  288. package/dist/rules/prefer-for-of.d.ts +5 -0
  289. package/dist/rules/prefer-for-of.js +115 -0
  290. package/dist/rules/prefer-function-type.d.ts +9 -0
  291. package/dist/rules/prefer-function-type.js +186 -0
  292. package/dist/rules/prefer-includes.d.ts +5 -0
  293. package/dist/rules/prefer-includes.js +242 -0
  294. package/dist/rules/prefer-literal-enum-member.d.ts +6 -0
  295. package/dist/rules/prefer-literal-enum-member.js +116 -0
  296. package/dist/rules/prefer-namespace-keyword.d.ts +4 -0
  297. package/dist/rules/prefer-namespace-keyword.js +42 -0
  298. package/dist/rules/prefer-nullish-coalescing.d.ts +22 -0
  299. package/dist/rules/prefer-nullish-coalescing.js +647 -0
  300. package/dist/rules/prefer-optional-chain-utils/PreferOptionalChainOptions.d.ts +11 -0
  301. package/dist/rules/prefer-optional-chain-utils/PreferOptionalChainOptions.js +2 -0
  302. package/dist/rules/prefer-optional-chain-utils/analyzeChain.d.ts +7 -0
  303. package/dist/rules/prefer-optional-chain-utils/analyzeChain.js +569 -0
  304. package/dist/rules/prefer-optional-chain-utils/checkNullishAndReport.d.ts +6 -0
  305. package/dist/rules/prefer-optional-chain-utils/checkNullishAndReport.js +45 -0
  306. package/dist/rules/prefer-optional-chain-utils/compareNodes.d.ts +15 -0
  307. package/dist/rules/prefer-optional-chain-utils/compareNodes.js +326 -0
  308. package/dist/rules/prefer-optional-chain-utils/gatherLogicalOperands.d.ts +61 -0
  309. package/dist/rules/prefer-optional-chain-utils/gatherLogicalOperands.js +411 -0
  310. package/dist/rules/prefer-optional-chain.d.ts +5 -0
  311. package/dist/rules/prefer-optional-chain.js +150 -0
  312. package/dist/rules/prefer-promise-reject-errors.d.ts +14 -0
  313. package/dist/rules/prefer-promise-reject-errors.js +124 -0
  314. package/dist/rules/prefer-readonly-parameter-types.d.ts +14 -0
  315. package/dist/rules/prefer-readonly-parameter-types.js +89 -0
  316. package/dist/rules/prefer-readonly.d.ts +10 -0
  317. package/dist/rules/prefer-readonly.js +439 -0
  318. package/dist/rules/prefer-reduce-type-parameter.d.ts +4 -0
  319. package/dist/rules/prefer-reduce-type-parameter.js +114 -0
  320. package/dist/rules/prefer-regexp-exec.d.ts +4 -0
  321. package/dist/rules/prefer-regexp-exec.js +178 -0
  322. package/dist/rules/prefer-return-this-type.d.ts +4 -0
  323. package/dist/rules/prefer-return-this-type.js +154 -0
  324. package/dist/rules/prefer-string-starts-ends-with.d.ts +12 -0
  325. package/dist/rules/prefer-string-starts-ends-with.js +512 -0
  326. package/dist/rules/prefer-ts-expect-error.d.ts +5 -0
  327. package/dist/rules/prefer-ts-expect-error.js +71 -0
  328. package/dist/rules/promise-function-async.d.ts +15 -0
  329. package/dist/rules/promise-function-async.js +204 -0
  330. package/dist/rules/related-getter-setter-pairs.d.ts +4 -0
  331. package/dist/rules/related-getter-setter-pairs.js +71 -0
  332. package/dist/rules/require-array-sort-compare.d.ts +10 -0
  333. package/dist/rules/require-array-sort-compare.js +63 -0
  334. package/dist/rules/require-await.d.ts +4 -0
  335. package/dist/rules/require-await.js +263 -0
  336. package/dist/rules/restrict-plus-operands.d.ts +15 -0
  337. package/dist/rules/restrict-plus-operands.js +231 -0
  338. package/dist/rules/restrict-template-expressions.d.ts +19 -0
  339. package/dist/rules/restrict-template-expressions.js +119 -0
  340. package/dist/rules/return-await.d.ts +5 -0
  341. package/dist/rules/return-await.js +363 -0
  342. package/dist/rules/sort-type-constituents.d.ts +14 -0
  343. package/dist/rules/sort-type-constituents.js +272 -0
  344. package/dist/rules/strict-boolean-expressions.d.ts +19 -0
  345. package/dist/rules/strict-boolean-expressions.js +882 -0
  346. package/dist/rules/strict-void-return.d.ts +10 -0
  347. package/dist/rules/strict-void-return.js +374 -0
  348. package/dist/rules/switch-exhaustiveness-check.d.ts +33 -0
  349. package/dist/rules/switch-exhaustiveness-check.js +291 -0
  350. package/dist/rules/triple-slash-reference.d.ts +12 -0
  351. package/dist/rules/triple-slash-reference.js +110 -0
  352. package/dist/rules/typedef.d.ts +16 -0
  353. package/dist/rules/typedef.js +239 -0
  354. package/dist/rules/unbound-method.d.ts +9 -0
  355. package/dist/rules/unbound-method.js +334 -0
  356. package/dist/rules/unified-signatures.d.ts +11 -0
  357. package/dist/rules/unified-signatures.js +465 -0
  358. package/dist/rules/use-unknown-in-catch-callback-variable.d.ts +6 -0
  359. package/dist/rules/use-unknown-in-catch-callback-variable.js +261 -0
  360. package/dist/util/assertionFunctionUtils.d.ts +16 -0
  361. package/dist/util/assertionFunctionUtils.js +116 -0
  362. package/dist/util/astUtils.d.ts +17 -0
  363. package/dist/util/astUtils.js +143 -0
  364. package/dist/util/baseTypeUtils.d.ts +13 -0
  365. package/dist/util/baseTypeUtils.js +75 -0
  366. package/dist/util/class-scope-analyzer/classScopeAnalyzer.d.ts +52 -0
  367. package/dist/util/class-scope-analyzer/classScopeAnalyzer.js +566 -0
  368. package/dist/util/class-scope-analyzer/extractComputedName.d.ts +17 -0
  369. package/dist/util/class-scope-analyzer/extractComputedName.js +70 -0
  370. package/dist/util/class-scope-analyzer/types.d.ts +12 -0
  371. package/dist/util/class-scope-analyzer/types.js +10 -0
  372. package/dist/util/collectUnusedVariables.d.ts +15 -0
  373. package/dist/util/collectUnusedVariables.js +598 -0
  374. package/dist/util/createRule.d.ts +5 -0
  375. package/dist/util/createRule.js +5 -0
  376. package/dist/util/escapeRegExp.d.ts +1 -0
  377. package/dist/util/escapeRegExp.js +14 -0
  378. package/dist/util/explicitReturnTypeUtils.d.ts +47 -0
  379. package/dist/util/explicitReturnTypeUtils.js +238 -0
  380. package/dist/util/getBaseTypesOfClassMember.d.ts +11 -0
  381. package/dist/util/getBaseTypesOfClassMember.js +31 -0
  382. package/dist/util/getConstraintInfo.d.ts +35 -0
  383. package/dist/util/getConstraintInfo.js +70 -0
  384. package/dist/util/getESLintCoreRule.d.ts +27 -0
  385. package/dist/util/getESLintCoreRule.js +16 -0
  386. package/dist/util/getFixOrSuggest.d.ts +9 -0
  387. package/dist/util/getFixOrSuggest.js +13 -0
  388. package/dist/util/getForStatementHeadLoc.d.ts +17 -0
  389. package/dist/util/getForStatementHeadLoc.js +26 -0
  390. package/dist/util/getFunctionHeadLoc.d.ts +101 -0
  391. package/dist/util/getFunctionHeadLoc.js +161 -0
  392. package/dist/util/getMemberHeadLoc.d.ts +36 -0
  393. package/dist/util/getMemberHeadLoc.js +79 -0
  394. package/dist/util/getOperatorPrecedence.d.ts +39 -0
  395. package/dist/util/getOperatorPrecedence.js +421 -0
  396. package/dist/util/getParentFunctionNode.d.ts +2 -0
  397. package/dist/util/getParentFunctionNode.js +18 -0
  398. package/dist/util/getStaticStringValue.d.ts +11 -0
  399. package/dist/util/getStaticStringValue.js +44 -0
  400. package/dist/util/getStringLength.d.ts +1 -0
  401. package/dist/util/getStringLength.js +14 -0
  402. package/dist/util/getTextWithParentheses.d.ts +3 -0
  403. package/dist/util/getTextWithParentheses.js +16 -0
  404. package/dist/util/getThisExpression.d.ts +2 -0
  405. package/dist/util/getThisExpression.js +24 -0
  406. package/dist/util/getValueOfLiteralType.d.ts +2 -0
  407. package/dist/util/getValueOfLiteralType.js +16 -0
  408. package/dist/util/getWrappedCode.d.ts +2 -0
  409. package/dist/util/getWrappedCode.js +6 -0
  410. package/dist/util/getWrappingFixer.d.ts +42 -0
  411. package/dist/util/getWrappingFixer.js +184 -0
  412. package/dist/util/hasOverloadSignatures.d.ts +6 -0
  413. package/dist/util/hasOverloadSignatures.js +47 -0
  414. package/dist/util/index.d.ts +40 -0
  415. package/dist/util/index.js +53 -0
  416. package/dist/util/isArrayMethodCallWithPredicate.d.ts +3 -0
  417. package/dist/util/isArrayMethodCallWithPredicate.js +64 -0
  418. package/dist/util/isAssignee.d.ts +2 -0
  419. package/dist/util/isAssignee.js +50 -0
  420. package/dist/util/isHigherPrecedenceThanAwait.d.ts +2 -0
  421. package/dist/util/isHigherPrecedenceThanAwait.js +46 -0
  422. package/dist/util/isNodeEqual.d.ts +2 -0
  423. package/dist/util/isNodeEqual.js +25 -0
  424. package/dist/util/isNullLiteral.d.ts +2 -0
  425. package/dist/util/isNullLiteral.js +7 -0
  426. package/dist/util/isPromiseAggregatorMethod.d.ts +3 -0
  427. package/dist/util/isPromiseAggregatorMethod.js +22 -0
  428. package/dist/util/isStartOfExpressionStatement.d.ts +7 -0
  429. package/dist/util/isStartOfExpressionStatement.js +22 -0
  430. package/dist/util/isTypeImport.d.ts +12 -0
  431. package/dist/util/isTypeImport.js +21 -0
  432. package/dist/util/isUndefinedIdentifier.d.ts +2 -0
  433. package/dist/util/isUndefinedIdentifier.js +7 -0
  434. package/dist/util/misc.d.ts +115 -0
  435. package/dist/util/misc.js +270 -0
  436. package/dist/util/needsPrecedingSemiColon.d.ts +11 -0
  437. package/dist/util/needsPrecedingSemiColon.js +97 -0
  438. package/dist/util/needsToBeAwaited.d.ts +7 -0
  439. package/dist/util/needsToBeAwaited.js +63 -0
  440. package/dist/util/objectIterators.d.ts +3 -0
  441. package/dist/util/objectIterators.js +25 -0
  442. package/dist/util/promiseUtils.d.ts +27 -0
  443. package/dist/util/promiseUtils.js +98 -0
  444. package/dist/util/rangeToLoc.d.ts +2 -0
  445. package/dist/util/rangeToLoc.js +9 -0
  446. package/dist/util/referenceContainsTypeQuery.d.ts +5 -0
  447. package/dist/util/referenceContainsTypeQuery.js +19 -0
  448. package/dist/util/scopeUtils.d.ts +3 -0
  449. package/dist/util/scopeUtils.js +10 -0
  450. package/dist/util/skipChainExpression.d.ts +2 -0
  451. package/dist/util/skipChainExpression.js +7 -0
  452. package/dist/util/truthinessUtils.d.ts +3 -0
  453. package/dist/util/truthinessUtils.js +60 -0
  454. package/dist/util/types.d.ts +2 -0
  455. package/dist/util/types.js +2 -0
  456. package/dist/util/walkStatements.d.ts +7 -0
  457. package/dist/util/walkStatements.js +56 -0
  458. package/index.d.ts +13 -0
  459. package/package.json +137 -0
  460. package/raw-plugin.d.ts +25 -0
  461. package/rules.d.ts +87 -0
@@ -0,0 +1,421 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.OperatorPrecedence = void 0;
4
+ exports.getOperatorPrecedenceForNode = getOperatorPrecedenceForNode;
5
+ exports.getOperatorPrecedence = getOperatorPrecedence;
6
+ exports.getBinaryOperatorPrecedence = getBinaryOperatorPrecedence;
7
+ const utils_1 = require("@typescript-eslint/utils");
8
+ const typescript_1 = require("typescript");
9
+ var OperatorPrecedence;
10
+ (function (OperatorPrecedence) {
11
+ // Expression:
12
+ // AssignmentExpression
13
+ // Expression `,` AssignmentExpression
14
+ OperatorPrecedence[OperatorPrecedence["Comma"] = 0] = "Comma";
15
+ // NOTE: `Spread` is higher than `Comma` due to how it is parsed in |ElementList|
16
+ // SpreadElement:
17
+ // `...` AssignmentExpression
18
+ OperatorPrecedence[OperatorPrecedence["Spread"] = 1] = "Spread";
19
+ // AssignmentExpression:
20
+ // ConditionalExpression
21
+ // YieldExpression
22
+ // ArrowFunction
23
+ // AsyncArrowFunction
24
+ // LeftHandSideExpression `=` AssignmentExpression
25
+ // LeftHandSideExpression AssignmentOperator AssignmentExpression
26
+ //
27
+ // NOTE: AssignmentExpression is broken down into several precedences due to the requirements
28
+ // of the parenthesize rules.
29
+ // AssignmentExpression: YieldExpression
30
+ // YieldExpression:
31
+ // `yield`
32
+ // `yield` AssignmentExpression
33
+ // `yield` `*` AssignmentExpression
34
+ OperatorPrecedence[OperatorPrecedence["Yield"] = 2] = "Yield";
35
+ // AssignmentExpression: LeftHandSideExpression `=` AssignmentExpression
36
+ // AssignmentExpression: LeftHandSideExpression AssignmentOperator AssignmentExpression
37
+ // AssignmentOperator: one of
38
+ // `*=` `/=` `%=` `+=` `-=` `<<=` `>>=` `>>>=` `&=` `^=` `|=` `**=`
39
+ OperatorPrecedence[OperatorPrecedence["Assignment"] = 3] = "Assignment";
40
+ // NOTE: `Conditional` is considered higher than `Assignment` here, but in reality they have
41
+ // the same precedence.
42
+ // AssignmentExpression: ConditionalExpression
43
+ // ConditionalExpression:
44
+ // ShortCircuitExpression
45
+ // ShortCircuitExpression `?` AssignmentExpression `:` AssignmentExpression
46
+ // ShortCircuitExpression:
47
+ // LogicalORExpression
48
+ // CoalesceExpression
49
+ OperatorPrecedence[OperatorPrecedence["Conditional"] = 4] = "Conditional";
50
+ // CoalesceExpression:
51
+ // CoalesceExpressionHead `??` BitwiseORExpression
52
+ // CoalesceExpressionHead:
53
+ // CoalesceExpression
54
+ // BitwiseORExpression
55
+ OperatorPrecedence[OperatorPrecedence["Coalesce"] = 4] = "Coalesce";
56
+ // LogicalORExpression:
57
+ // LogicalANDExpression
58
+ // LogicalORExpression `||` LogicalANDExpression
59
+ OperatorPrecedence[OperatorPrecedence["LogicalOR"] = 5] = "LogicalOR";
60
+ // LogicalANDExpression:
61
+ // BitwiseORExpression
62
+ // LogicalANDExpression `&&` BitwiseORExpression
63
+ OperatorPrecedence[OperatorPrecedence["LogicalAND"] = 6] = "LogicalAND";
64
+ // BitwiseORExpression:
65
+ // BitwiseXORExpression
66
+ // BitwiseORExpression `^` BitwiseXORExpression
67
+ OperatorPrecedence[OperatorPrecedence["BitwiseOR"] = 7] = "BitwiseOR";
68
+ // BitwiseXORExpression:
69
+ // BitwiseANDExpression
70
+ // BitwiseXORExpression `^` BitwiseANDExpression
71
+ OperatorPrecedence[OperatorPrecedence["BitwiseXOR"] = 8] = "BitwiseXOR";
72
+ // BitwiseANDExpression:
73
+ // EqualityExpression
74
+ // BitwiseANDExpression `^` EqualityExpression
75
+ OperatorPrecedence[OperatorPrecedence["BitwiseAND"] = 9] = "BitwiseAND";
76
+ // EqualityExpression:
77
+ // RelationalExpression
78
+ // EqualityExpression `==` RelationalExpression
79
+ // EqualityExpression `!=` RelationalExpression
80
+ // EqualityExpression `===` RelationalExpression
81
+ // EqualityExpression `!==` RelationalExpression
82
+ OperatorPrecedence[OperatorPrecedence["Equality"] = 10] = "Equality";
83
+ // RelationalExpression:
84
+ // ShiftExpression
85
+ // RelationalExpression `<` ShiftExpression
86
+ // RelationalExpression `>` ShiftExpression
87
+ // RelationalExpression `<=` ShiftExpression
88
+ // RelationalExpression `>=` ShiftExpression
89
+ // RelationalExpression `instanceof` ShiftExpression
90
+ // RelationalExpression `in` ShiftExpression
91
+ // [+TypeScript] RelationalExpression `as` Type
92
+ OperatorPrecedence[OperatorPrecedence["Relational"] = 11] = "Relational";
93
+ // ShiftExpression:
94
+ // AdditiveExpression
95
+ // ShiftExpression `<<` AdditiveExpression
96
+ // ShiftExpression `>>` AdditiveExpression
97
+ // ShiftExpression `>>>` AdditiveExpression
98
+ OperatorPrecedence[OperatorPrecedence["Shift"] = 12] = "Shift";
99
+ // AdditiveExpression:
100
+ // MultiplicativeExpression
101
+ // AdditiveExpression `+` MultiplicativeExpression
102
+ // AdditiveExpression `-` MultiplicativeExpression
103
+ OperatorPrecedence[OperatorPrecedence["Additive"] = 13] = "Additive";
104
+ // MultiplicativeExpression:
105
+ // ExponentiationExpression
106
+ // MultiplicativeExpression MultiplicativeOperator ExponentiationExpression
107
+ // MultiplicativeOperator: one of `*`, `/`, `%`
108
+ OperatorPrecedence[OperatorPrecedence["Multiplicative"] = 14] = "Multiplicative";
109
+ // ExponentiationExpression:
110
+ // UnaryExpression
111
+ // UpdateExpression `**` ExponentiationExpression
112
+ OperatorPrecedence[OperatorPrecedence["Exponentiation"] = 15] = "Exponentiation";
113
+ // UnaryExpression:
114
+ // UpdateExpression
115
+ // `delete` UnaryExpression
116
+ // `void` UnaryExpression
117
+ // `typeof` UnaryExpression
118
+ // `+` UnaryExpression
119
+ // `-` UnaryExpression
120
+ // `~` UnaryExpression
121
+ // `!` UnaryExpression
122
+ // AwaitExpression
123
+ // UpdateExpression: // TODO: Do we need to investigate the precedence here?
124
+ // `++` UnaryExpression
125
+ // `--` UnaryExpression
126
+ OperatorPrecedence[OperatorPrecedence["Unary"] = 16] = "Unary";
127
+ // UpdateExpression:
128
+ // LeftHandSideExpression
129
+ // LeftHandSideExpression `++`
130
+ // LeftHandSideExpression `--`
131
+ OperatorPrecedence[OperatorPrecedence["Update"] = 17] = "Update";
132
+ // LeftHandSideExpression:
133
+ // NewExpression
134
+ // CallExpression
135
+ // NewExpression:
136
+ // MemberExpression
137
+ // `new` NewExpression
138
+ OperatorPrecedence[OperatorPrecedence["LeftHandSide"] = 18] = "LeftHandSide";
139
+ // CallExpression:
140
+ // CoverCallExpressionAndAsyncArrowHead
141
+ // SuperCall
142
+ // ImportCall
143
+ // CallExpression Arguments
144
+ // CallExpression `[` Expression `]`
145
+ // CallExpression `.` IdentifierName
146
+ // CallExpression TemplateLiteral
147
+ // MemberExpression:
148
+ // PrimaryExpression
149
+ // MemberExpression `[` Expression `]`
150
+ // MemberExpression `.` IdentifierName
151
+ // MemberExpression TemplateLiteral
152
+ // SuperProperty
153
+ // MetaProperty
154
+ // `new` MemberExpression Arguments
155
+ OperatorPrecedence[OperatorPrecedence["Member"] = 19] = "Member";
156
+ // TODO: JSXElement?
157
+ // PrimaryExpression:
158
+ // `this`
159
+ // IdentifierReference
160
+ // Literal
161
+ // ArrayLiteral
162
+ // ObjectLiteral
163
+ // FunctionExpression
164
+ // ClassExpression
165
+ // GeneratorExpression
166
+ // AsyncFunctionExpression
167
+ // AsyncGeneratorExpression
168
+ // RegularExpressionLiteral
169
+ // TemplateLiteral
170
+ // CoverParenthesizedExpressionAndArrowParameterList
171
+ OperatorPrecedence[OperatorPrecedence["Primary"] = 20] = "Primary";
172
+ OperatorPrecedence[OperatorPrecedence["Highest"] = 20] = "Highest";
173
+ OperatorPrecedence[OperatorPrecedence["Lowest"] = 0] = "Lowest";
174
+ // -1 is lower than all other precedences. Returning it will cause binary expression
175
+ // parsing to stop.
176
+ OperatorPrecedence[OperatorPrecedence["Invalid"] = -1] = "Invalid";
177
+ })(OperatorPrecedence || (exports.OperatorPrecedence = OperatorPrecedence = {}));
178
+ /**
179
+ * Note that this does not take into account parenthesization. You should check
180
+ * for parenthesization separately if it's relevant to your usage.
181
+ */
182
+ function getOperatorPrecedenceForNode(node) {
183
+ switch (node.type) {
184
+ case utils_1.AST_NODE_TYPES.SpreadElement:
185
+ case utils_1.AST_NODE_TYPES.RestElement:
186
+ return OperatorPrecedence.Spread;
187
+ case utils_1.AST_NODE_TYPES.YieldExpression:
188
+ case utils_1.AST_NODE_TYPES.ArrowFunctionExpression:
189
+ return OperatorPrecedence.Yield;
190
+ case utils_1.AST_NODE_TYPES.ConditionalExpression:
191
+ return OperatorPrecedence.Conditional;
192
+ case utils_1.AST_NODE_TYPES.SequenceExpression:
193
+ return OperatorPrecedence.Comma;
194
+ case utils_1.AST_NODE_TYPES.AssignmentExpression:
195
+ case utils_1.AST_NODE_TYPES.BinaryExpression:
196
+ case utils_1.AST_NODE_TYPES.LogicalExpression:
197
+ switch (node.operator) {
198
+ case '==':
199
+ case '+=':
200
+ case '-=':
201
+ case '**=':
202
+ case '*=':
203
+ case '/=':
204
+ case '%=':
205
+ case '<<=':
206
+ case '>>=':
207
+ case '>>>=':
208
+ case '&=':
209
+ case '^=':
210
+ case '|=':
211
+ case '||=':
212
+ case '&&=':
213
+ case '??=':
214
+ return OperatorPrecedence.Assignment;
215
+ default:
216
+ return getBinaryOperatorPrecedence(node.operator);
217
+ }
218
+ case utils_1.AST_NODE_TYPES.TSTypeAssertion:
219
+ case utils_1.AST_NODE_TYPES.TSNonNullExpression:
220
+ case utils_1.AST_NODE_TYPES.UnaryExpression:
221
+ case utils_1.AST_NODE_TYPES.AwaitExpression:
222
+ return OperatorPrecedence.Unary;
223
+ case utils_1.AST_NODE_TYPES.UpdateExpression:
224
+ // TODO: Should prefix `++` and `--` be moved to the `Update` precedence?
225
+ if (node.prefix) {
226
+ return OperatorPrecedence.Unary;
227
+ }
228
+ return OperatorPrecedence.Update;
229
+ case utils_1.AST_NODE_TYPES.ChainExpression:
230
+ return getOperatorPrecedenceForNode(node.expression);
231
+ case utils_1.AST_NODE_TYPES.CallExpression:
232
+ return OperatorPrecedence.LeftHandSide;
233
+ case utils_1.AST_NODE_TYPES.NewExpression:
234
+ return node.arguments.length > 0
235
+ ? OperatorPrecedence.Member
236
+ : OperatorPrecedence.LeftHandSide;
237
+ case utils_1.AST_NODE_TYPES.TaggedTemplateExpression:
238
+ case utils_1.AST_NODE_TYPES.MemberExpression:
239
+ case utils_1.AST_NODE_TYPES.MetaProperty:
240
+ return OperatorPrecedence.Member;
241
+ case utils_1.AST_NODE_TYPES.TSAsExpression:
242
+ return OperatorPrecedence.Relational;
243
+ case utils_1.AST_NODE_TYPES.ThisExpression:
244
+ case utils_1.AST_NODE_TYPES.Super:
245
+ case utils_1.AST_NODE_TYPES.Identifier:
246
+ case utils_1.AST_NODE_TYPES.PrivateIdentifier:
247
+ case utils_1.AST_NODE_TYPES.Literal:
248
+ case utils_1.AST_NODE_TYPES.ArrayExpression:
249
+ case utils_1.AST_NODE_TYPES.ObjectExpression:
250
+ case utils_1.AST_NODE_TYPES.FunctionExpression:
251
+ case utils_1.AST_NODE_TYPES.ClassExpression:
252
+ case utils_1.AST_NODE_TYPES.TemplateLiteral:
253
+ case utils_1.AST_NODE_TYPES.JSXElement:
254
+ case utils_1.AST_NODE_TYPES.JSXFragment:
255
+ // we don't have nodes for these cases
256
+ // case SyntaxKind.ParenthesizedExpression:
257
+ // case SyntaxKind.OmittedExpression:
258
+ return OperatorPrecedence.Primary;
259
+ default:
260
+ return OperatorPrecedence.Invalid;
261
+ }
262
+ }
263
+ function getOperatorPrecedence(nodeKind, operatorKind, hasArguments) {
264
+ switch (nodeKind) {
265
+ // A list of comma-separated expressions. This node is only created by transformations.
266
+ case typescript_1.SyntaxKind.CommaListExpression:
267
+ return OperatorPrecedence.Comma;
268
+ case typescript_1.SyntaxKind.SpreadElement:
269
+ return OperatorPrecedence.Spread;
270
+ case typescript_1.SyntaxKind.YieldExpression:
271
+ return OperatorPrecedence.Yield;
272
+ case typescript_1.SyntaxKind.ConditionalExpression:
273
+ return OperatorPrecedence.Conditional;
274
+ case typescript_1.SyntaxKind.BinaryExpression:
275
+ switch (operatorKind) {
276
+ case typescript_1.SyntaxKind.AmpersandAmpersandEqualsToken:
277
+ case typescript_1.SyntaxKind.AmpersandEqualsToken:
278
+ case typescript_1.SyntaxKind.AsteriskAsteriskEqualsToken:
279
+ case typescript_1.SyntaxKind.AsteriskEqualsToken:
280
+ case typescript_1.SyntaxKind.BarBarEqualsToken:
281
+ case typescript_1.SyntaxKind.BarEqualsToken:
282
+ case typescript_1.SyntaxKind.CaretEqualsToken:
283
+ case typescript_1.SyntaxKind.EqualsToken:
284
+ case typescript_1.SyntaxKind.GreaterThanGreaterThanEqualsToken:
285
+ case typescript_1.SyntaxKind.GreaterThanGreaterThanGreaterThanEqualsToken:
286
+ case typescript_1.SyntaxKind.LessThanLessThanEqualsToken:
287
+ case typescript_1.SyntaxKind.MinusEqualsToken:
288
+ case typescript_1.SyntaxKind.PercentEqualsToken:
289
+ case typescript_1.SyntaxKind.PlusEqualsToken:
290
+ case typescript_1.SyntaxKind.QuestionQuestionEqualsToken:
291
+ case typescript_1.SyntaxKind.SlashEqualsToken:
292
+ return OperatorPrecedence.Assignment;
293
+ case typescript_1.SyntaxKind.CommaToken:
294
+ return OperatorPrecedence.Comma;
295
+ default:
296
+ return getBinaryOperatorPrecedence(operatorKind);
297
+ }
298
+ // TODO: Should prefix `++` and `--` be moved to the `Update` precedence?
299
+ case typescript_1.SyntaxKind.TypeAssertionExpression:
300
+ case typescript_1.SyntaxKind.NonNullExpression:
301
+ case typescript_1.SyntaxKind.PrefixUnaryExpression:
302
+ case typescript_1.SyntaxKind.TypeOfExpression:
303
+ case typescript_1.SyntaxKind.VoidExpression:
304
+ case typescript_1.SyntaxKind.DeleteExpression:
305
+ case typescript_1.SyntaxKind.AwaitExpression:
306
+ return OperatorPrecedence.Unary;
307
+ case typescript_1.SyntaxKind.PostfixUnaryExpression:
308
+ return OperatorPrecedence.Update;
309
+ case typescript_1.SyntaxKind.CallExpression:
310
+ return OperatorPrecedence.LeftHandSide;
311
+ case typescript_1.SyntaxKind.NewExpression:
312
+ return hasArguments
313
+ ? OperatorPrecedence.Member
314
+ : OperatorPrecedence.LeftHandSide;
315
+ case typescript_1.SyntaxKind.TaggedTemplateExpression:
316
+ case typescript_1.SyntaxKind.PropertyAccessExpression:
317
+ case typescript_1.SyntaxKind.ElementAccessExpression:
318
+ case typescript_1.SyntaxKind.MetaProperty:
319
+ return OperatorPrecedence.Member;
320
+ case typescript_1.SyntaxKind.AsExpression:
321
+ case typescript_1.SyntaxKind.SatisfiesExpression:
322
+ return OperatorPrecedence.Relational;
323
+ case typescript_1.SyntaxKind.ThisKeyword:
324
+ case typescript_1.SyntaxKind.SuperKeyword:
325
+ case typescript_1.SyntaxKind.Identifier:
326
+ case typescript_1.SyntaxKind.PrivateIdentifier:
327
+ case typescript_1.SyntaxKind.NullKeyword:
328
+ case typescript_1.SyntaxKind.TrueKeyword:
329
+ case typescript_1.SyntaxKind.FalseKeyword:
330
+ case typescript_1.SyntaxKind.NumericLiteral:
331
+ case typescript_1.SyntaxKind.BigIntLiteral:
332
+ case typescript_1.SyntaxKind.StringLiteral:
333
+ case typescript_1.SyntaxKind.ArrayLiteralExpression:
334
+ case typescript_1.SyntaxKind.ObjectLiteralExpression:
335
+ case typescript_1.SyntaxKind.FunctionExpression:
336
+ case typescript_1.SyntaxKind.ArrowFunction:
337
+ case typescript_1.SyntaxKind.ClassExpression:
338
+ case typescript_1.SyntaxKind.RegularExpressionLiteral:
339
+ case typescript_1.SyntaxKind.NoSubstitutionTemplateLiteral:
340
+ case typescript_1.SyntaxKind.TemplateExpression:
341
+ case typescript_1.SyntaxKind.ParenthesizedExpression:
342
+ case typescript_1.SyntaxKind.OmittedExpression:
343
+ case typescript_1.SyntaxKind.JsxElement:
344
+ case typescript_1.SyntaxKind.JsxSelfClosingElement:
345
+ case typescript_1.SyntaxKind.JsxFragment:
346
+ return OperatorPrecedence.Primary;
347
+ default:
348
+ return OperatorPrecedence.Invalid;
349
+ }
350
+ }
351
+ function getBinaryOperatorPrecedence(kind) {
352
+ switch (kind) {
353
+ case '-':
354
+ case '+':
355
+ case typescript_1.SyntaxKind.MinusToken:
356
+ case typescript_1.SyntaxKind.PlusToken:
357
+ return OperatorPrecedence.Additive;
358
+ case '!=':
359
+ case '!==':
360
+ case '==':
361
+ case '===':
362
+ case typescript_1.SyntaxKind.EqualsEqualsEqualsToken:
363
+ case typescript_1.SyntaxKind.EqualsEqualsToken:
364
+ case typescript_1.SyntaxKind.ExclamationEqualsEqualsToken:
365
+ case typescript_1.SyntaxKind.ExclamationEqualsToken:
366
+ return OperatorPrecedence.Equality;
367
+ case '??':
368
+ case typescript_1.SyntaxKind.QuestionQuestionToken:
369
+ return OperatorPrecedence.Coalesce;
370
+ case '*':
371
+ case '/':
372
+ case '%':
373
+ case typescript_1.SyntaxKind.AsteriskToken:
374
+ case typescript_1.SyntaxKind.PercentToken:
375
+ case typescript_1.SyntaxKind.SlashToken:
376
+ return OperatorPrecedence.Multiplicative;
377
+ case '**':
378
+ case typescript_1.SyntaxKind.AsteriskAsteriskToken:
379
+ return OperatorPrecedence.Exponentiation;
380
+ case '&':
381
+ case typescript_1.SyntaxKind.AmpersandToken:
382
+ return OperatorPrecedence.BitwiseAND;
383
+ case '&&':
384
+ case typescript_1.SyntaxKind.AmpersandAmpersandToken:
385
+ return OperatorPrecedence.LogicalAND;
386
+ case '^':
387
+ case typescript_1.SyntaxKind.CaretToken:
388
+ return OperatorPrecedence.BitwiseXOR;
389
+ case '<':
390
+ case '<=':
391
+ case '>':
392
+ case '>=':
393
+ case 'in':
394
+ case 'instanceof':
395
+ case typescript_1.SyntaxKind.AsKeyword:
396
+ case typescript_1.SyntaxKind.GreaterThanEqualsToken:
397
+ case typescript_1.SyntaxKind.GreaterThanToken:
398
+ case typescript_1.SyntaxKind.InKeyword:
399
+ case typescript_1.SyntaxKind.InstanceOfKeyword:
400
+ case typescript_1.SyntaxKind.LessThanEqualsToken:
401
+ case typescript_1.SyntaxKind.LessThanToken:
402
+ // case 'as': -- we don't have a token for this
403
+ return OperatorPrecedence.Relational;
404
+ case '<<':
405
+ case '>>':
406
+ case '>>>':
407
+ case typescript_1.SyntaxKind.GreaterThanGreaterThanGreaterThanToken:
408
+ case typescript_1.SyntaxKind.GreaterThanGreaterThanToken:
409
+ case typescript_1.SyntaxKind.LessThanLessThanToken:
410
+ return OperatorPrecedence.Shift;
411
+ case '|':
412
+ case typescript_1.SyntaxKind.BarToken:
413
+ return OperatorPrecedence.BitwiseOR;
414
+ case '||':
415
+ case typescript_1.SyntaxKind.BarBarToken:
416
+ return OperatorPrecedence.LogicalOR;
417
+ }
418
+ // -1 is lower than all other precedences. Returning it will cause binary expression
419
+ // parsing to stop.
420
+ return -1;
421
+ }
@@ -0,0 +1,2 @@
1
+ import type { TSESTree } from '@typescript-eslint/utils';
2
+ export declare function getParentFunctionNode(node: TSESTree.Node): TSESTree.ArrowFunctionExpression | TSESTree.FunctionDeclaration | TSESTree.FunctionExpression | null;
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getParentFunctionNode = getParentFunctionNode;
4
+ const utils_1 = require("@typescript-eslint/utils");
5
+ function getParentFunctionNode(node) {
6
+ let current = node.parent;
7
+ while (current) {
8
+ if (current.type === utils_1.AST_NODE_TYPES.ArrowFunctionExpression ||
9
+ current.type === utils_1.AST_NODE_TYPES.FunctionDeclaration ||
10
+ current.type === utils_1.AST_NODE_TYPES.FunctionExpression) {
11
+ return current;
12
+ }
13
+ current = current.parent;
14
+ }
15
+ // this shouldn't happen in correct code, but someone may attempt to parse bad code
16
+ // the parser won't error, so we shouldn't throw here
17
+ /* istanbul ignore next */ return null;
18
+ }
@@ -0,0 +1,11 @@
1
+ import type { TSESTree } from '@typescript-eslint/utils';
2
+ /**
3
+ * Returns the result of the string conversion applied to the evaluated value of the given expression node,
4
+ * if it can be determined statically.
5
+ *
6
+ * This function returns a `string` value for all `Literal` nodes and simple `TemplateLiteral` nodes only.
7
+ * In all other cases, this function returns `null`.
8
+ * @param node Expression node.
9
+ * @returns String value if it can be determined. Otherwise, `null`.
10
+ */
11
+ export declare function getStaticStringValue(node: TSESTree.Node): string | null;
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ // adapted from https://github.com/eslint/eslint/blob/5bdaae205c3a0089ea338b382df59e21d5b06436/lib/rules/utils/ast-utils.js#L191-L230
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.getStaticStringValue = getStaticStringValue;
5
+ const utils_1 = require("@typescript-eslint/utils");
6
+ const isNullLiteral_1 = require("./isNullLiteral");
7
+ /**
8
+ * Returns the result of the string conversion applied to the evaluated value of the given expression node,
9
+ * if it can be determined statically.
10
+ *
11
+ * This function returns a `string` value for all `Literal` nodes and simple `TemplateLiteral` nodes only.
12
+ * In all other cases, this function returns `null`.
13
+ * @param node Expression node.
14
+ * @returns String value if it can be determined. Otherwise, `null`.
15
+ */
16
+ function getStaticStringValue(node) {
17
+ switch (node.type) {
18
+ case utils_1.AST_NODE_TYPES.Literal:
19
+ // eslint-disable-next-line eqeqeq, @typescript-eslint/internal/eqeq-nullish -- intentional strict comparison for literal value
20
+ if (node.value === null) {
21
+ if ((0, isNullLiteral_1.isNullLiteral)(node)) {
22
+ return String(node.value); // "null"
23
+ }
24
+ if ('regex' in node) {
25
+ return `/${node.regex.pattern}/${node.regex.flags}`;
26
+ }
27
+ if ('bigint' in node) {
28
+ return node.bigint;
29
+ }
30
+ // Otherwise, this is an unknown literal. The function will return null.
31
+ }
32
+ else {
33
+ return String(node.value);
34
+ }
35
+ break;
36
+ case utils_1.AST_NODE_TYPES.TemplateLiteral:
37
+ if (node.expressions.length === 0 && node.quasis.length === 1) {
38
+ return node.quasis[0].value.cooked;
39
+ }
40
+ break;
41
+ // no default
42
+ }
43
+ return null;
44
+ }
@@ -0,0 +1 @@
1
+ export declare function getStringLength(value: string): number;
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getStringLength = getStringLength;
4
+ let segmenter;
5
+ function isASCII(value) {
6
+ return /^[\u0020-\u007f]*$/u.test(value);
7
+ }
8
+ function getStringLength(value) {
9
+ if (isASCII(value)) {
10
+ return value.length;
11
+ }
12
+ segmenter ??= new Intl.Segmenter();
13
+ return [...segmenter.segment(value)].length;
14
+ }
@@ -0,0 +1,3 @@
1
+ import type { TSESTree } from '@typescript-eslint/utils';
2
+ import type { SourceCode } from '@typescript-eslint/utils/ts-eslint';
3
+ export declare function getTextWithParentheses(sourceCode: Readonly<SourceCode>, node: TSESTree.Node): string;
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getTextWithParentheses = getTextWithParentheses;
4
+ const _1 = require(".");
5
+ function getTextWithParentheses(sourceCode, node) {
6
+ // Capture parentheses before and after the node
7
+ let beforeCount = 0;
8
+ let afterCount = 0;
9
+ if ((0, _1.isParenthesized)(node, sourceCode)) {
10
+ const bodyOpeningParen = (0, _1.nullThrows)(sourceCode.getTokenBefore(node, _1.isOpeningParenToken), _1.NullThrowsReasons.MissingToken('(', 'node'));
11
+ const bodyClosingParen = (0, _1.nullThrows)(sourceCode.getTokenAfter(node, _1.isClosingParenToken), _1.NullThrowsReasons.MissingToken(')', 'node'));
12
+ beforeCount = node.range[0] - bodyOpeningParen.range[0];
13
+ afterCount = bodyClosingParen.range[1] - node.range[1];
14
+ }
15
+ return sourceCode.getText(node, beforeCount, afterCount);
16
+ }
@@ -0,0 +1,2 @@
1
+ import type { TSESTree } from '@typescript-eslint/utils';
2
+ export declare function getThisExpression(node: TSESTree.Node): TSESTree.ThisExpression | undefined;
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getThisExpression = getThisExpression;
4
+ const utils_1 = require("@typescript-eslint/utils");
5
+ function getThisExpression(node) {
6
+ while (true) {
7
+ if (node.type === utils_1.AST_NODE_TYPES.CallExpression) {
8
+ node = node.callee;
9
+ }
10
+ else if (node.type === utils_1.AST_NODE_TYPES.ThisExpression) {
11
+ return node;
12
+ }
13
+ else if (node.type === utils_1.AST_NODE_TYPES.MemberExpression) {
14
+ node = node.object;
15
+ }
16
+ else if (node.type === utils_1.AST_NODE_TYPES.ChainExpression) {
17
+ node = node.expression;
18
+ }
19
+ else {
20
+ break;
21
+ }
22
+ }
23
+ return;
24
+ }
@@ -0,0 +1,2 @@
1
+ import type * as ts from 'typescript';
2
+ export declare const getValueOfLiteralType: (type: ts.LiteralType) => bigint | number | string;
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getValueOfLiteralType = void 0;
4
+ const valueIsPseudoBigInt = (value) => {
5
+ return typeof value === 'object';
6
+ };
7
+ const pseudoBigIntToBigInt = (value) => {
8
+ return BigInt((value.negative ? '-' : '') + value.base10Value);
9
+ };
10
+ const getValueOfLiteralType = (type) => {
11
+ if (valueIsPseudoBigInt(type.value)) {
12
+ return pseudoBigIntToBigInt(type.value);
13
+ }
14
+ return type.value;
15
+ };
16
+ exports.getValueOfLiteralType = getValueOfLiteralType;
@@ -0,0 +1,2 @@
1
+ import type { OperatorPrecedence } from './getOperatorPrecedence';
2
+ export declare function getWrappedCode(text: string, nodePrecedence: OperatorPrecedence, parentPrecedence: OperatorPrecedence): string;
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getWrappedCode = getWrappedCode;
4
+ function getWrappedCode(text, nodePrecedence, parentPrecedence) {
5
+ return nodePrecedence > parentPrecedence ? text : `(${text})`;
6
+ }
@@ -0,0 +1,42 @@
1
+ import type { TSESLint, TSESTree } from '@typescript-eslint/utils';
2
+ interface WrappingFixerParams {
3
+ /**
4
+ * Descendant of `node` we want to preserve.
5
+ * Use this to replace some code with another.
6
+ * By default it's the node we are modifying (so nothing is removed).
7
+ * You can pass multiple nodes as an array.
8
+ */
9
+ innerNode?: TSESTree.Node | TSESTree.Node[];
10
+ /** The node we want to modify. */
11
+ node: TSESTree.Node;
12
+ /** Source code. */
13
+ sourceCode: Readonly<TSESLint.SourceCode>;
14
+ /**
15
+ * The function which gets the code of the `innerNode` and returns some code around it.
16
+ * Receives multiple arguments if there are multiple innerNodes.
17
+ * E.g. ``code => `${code} != null` ``
18
+ */
19
+ wrap?: (...code: string[]) => string;
20
+ }
21
+ /**
22
+ * Wraps node with some code. Adds parentheses as necessary.
23
+ * @returns Fixer which adds the specified code and parens if necessary.
24
+ */
25
+ export declare function getWrappingFixer(params: WrappingFixerParams): (fixer: TSESLint.RuleFixer) => TSESLint.RuleFix;
26
+ /**
27
+ * If the node to be moved and the destination node require parentheses, include parentheses in the node to be moved.
28
+ * @param sourceCode Source code of current file
29
+ * @param nodeToMove Nodes that need to be moved
30
+ * @param destinationNode Final destination node with nodeToMove
31
+ * @returns If parentheses are required, code for the nodeToMove node is returned with parentheses at both ends of the code.
32
+ */
33
+ export declare function getMovedNodeCode(params: {
34
+ destinationNode: TSESTree.Node;
35
+ nodeToMove: TSESTree.Node;
36
+ sourceCode: Readonly<TSESLint.SourceCode>;
37
+ }): string;
38
+ /**
39
+ * Check if a node will always have the same precedence if its parent changes.
40
+ */
41
+ export declare function isStrongPrecedenceNode(innerNode: TSESTree.Node): boolean;
42
+ export {};