@flint.fyi/ts 0.19.1 → 0.21.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 (665) hide show
  1. package/lib/plugin.d.ts +371 -346
  2. package/lib/plugin.js +4 -2
  3. package/lib/rules/accessorPairGroups.d.ts +0 -1
  4. package/lib/rules/accessorPairGroups.js +0 -2
  5. package/lib/rules/accessorPairTypes.d.ts +0 -1
  6. package/lib/rules/accessorPairTypes.js +0 -2
  7. package/lib/rules/accessorThisRecursion.d.ts +0 -1
  8. package/lib/rules/accessorThisRecursion.js +0 -2
  9. package/lib/rules/anyArguments.d.ts +0 -1
  10. package/lib/rules/anyArguments.js +0 -2
  11. package/lib/rules/anyAssignments.d.ts +0 -1
  12. package/lib/rules/anyAssignments.js +0 -2
  13. package/lib/rules/anyCalls.d.ts +0 -1
  14. package/lib/rules/anyCalls.js +0 -2
  15. package/lib/rules/anyMemberAccess.d.ts +0 -1
  16. package/lib/rules/anyMemberAccess.js +0 -2
  17. package/lib/rules/anyReturns.d.ts +0 -1
  18. package/lib/rules/anyReturns.js +0 -2
  19. package/lib/rules/arguments.d.ts +0 -1
  20. package/lib/rules/arguments.js +0 -2
  21. package/lib/rules/arrayCallbackReturns.d.ts +0 -1
  22. package/lib/rules/arrayCallbackReturns.js +1 -3
  23. package/lib/rules/arrayConstructors.d.ts +0 -1
  24. package/lib/rules/arrayConstructors.js +2 -4
  25. package/lib/rules/arrayDeleteUnnecessaryCounts.d.ts +0 -1
  26. package/lib/rules/arrayDeleteUnnecessaryCounts.js +0 -2
  27. package/lib/rules/arrayElementDeletions.d.ts +0 -1
  28. package/lib/rules/arrayElementDeletions.js +0 -2
  29. package/lib/rules/arrayEmptyCallbackSlots.d.ts +0 -1
  30. package/lib/rules/arrayEmptyCallbackSlots.js +4 -11
  31. package/lib/rules/arrayExistenceChecksConsistency.d.ts +0 -1
  32. package/lib/rules/arrayExistenceChecksConsistency.js +1 -3
  33. package/lib/rules/arrayFilteredFinds.d.ts +0 -1
  34. package/lib/rules/arrayFilteredFinds.js +4 -12
  35. package/lib/rules/arrayFinds.d.ts +0 -1
  36. package/lib/rules/arrayFinds.js +0 -2
  37. package/lib/rules/arrayFlatMapMethods.d.ts +0 -1
  38. package/lib/rules/arrayFlatMapMethods.js +2 -4
  39. package/lib/rules/arrayFlatMethods.d.ts +0 -1
  40. package/lib/rules/arrayFlatMethods.js +0 -2
  41. package/lib/rules/arrayFlatUnnecessaryDepths.d.ts +0 -1
  42. package/lib/rules/arrayFlatUnnecessaryDepths.js +2 -4
  43. package/lib/rules/arrayIncludes.d.ts +0 -1
  44. package/lib/rules/arrayIncludes.js +3 -11
  45. package/lib/rules/arrayIncludesMethods.d.ts +0 -1
  46. package/lib/rules/arrayIncludesMethods.js +0 -2
  47. package/lib/rules/arrayIndexOfMethods.d.ts +0 -1
  48. package/lib/rules/arrayIndexOfMethods.js +0 -2
  49. package/lib/rules/arrayLoops.d.ts +0 -1
  50. package/lib/rules/arrayLoops.js +0 -2
  51. package/lib/rules/arrayMapIdentities.d.ts +0 -1
  52. package/lib/rules/arrayMapIdentities.js +0 -2
  53. package/lib/rules/arrayMutableReverses.d.ts +0 -1
  54. package/lib/rules/arrayMutableReverses.js +0 -2
  55. package/lib/rules/arrayMutableSorts.d.ts +0 -1
  56. package/lib/rules/arrayMutableSorts.js +2 -4
  57. package/lib/rules/arrayReduceTypeArguments.d.ts +0 -1
  58. package/lib/rules/arrayReduceTypeArguments.js +0 -2
  59. package/lib/rules/arraySliceUnnecessaryEnd.d.ts +0 -1
  60. package/lib/rules/arraySliceUnnecessaryEnd.js +0 -2
  61. package/lib/rules/arraySomeMethods.d.ts +0 -1
  62. package/lib/rules/arraySomeMethods.js +0 -2
  63. package/lib/rules/arrayTernarySpreadingConsistency.d.ts +0 -1
  64. package/lib/rules/arrayTernarySpreadingConsistency.js +0 -2
  65. package/lib/rules/arrayTypes.d.ts +0 -1
  66. package/lib/rules/arrayTypes.js +4 -6
  67. package/lib/rules/arrayUnnecessaryLengthChecks.d.ts +0 -1
  68. package/lib/rules/arrayUnnecessaryLengthChecks.js +0 -2
  69. package/lib/rules/asConstAssertions.d.ts +0 -1
  70. package/lib/rules/asConstAssertions.js +0 -2
  71. package/lib/rules/assignmentOperatorShorthands.d.ts +0 -1
  72. package/lib/rules/assignmentOperatorShorthands.js +0 -2
  73. package/lib/rules/asyncFunctionAwaits.d.ts +9 -0
  74. package/lib/rules/asyncFunctionAwaits.js +53 -0
  75. package/lib/rules/asyncPromiseExecutors.d.ts +0 -1
  76. package/lib/rules/asyncPromiseExecutors.js +2 -4
  77. package/lib/rules/asyncUnnecessaryPromiseWrappers.d.ts +0 -1
  78. package/lib/rules/asyncUnnecessaryPromiseWrappers.js +0 -2
  79. package/lib/rules/atAccesses.d.ts +0 -1
  80. package/lib/rules/atAccesses.js +0 -2
  81. package/lib/rules/builtinCoercions.d.ts +0 -1
  82. package/lib/rules/builtinCoercions.js +2 -4
  83. package/lib/rules/builtinConstructorNews.d.ts +0 -1
  84. package/lib/rules/builtinConstructorNews.js +4 -6
  85. package/lib/rules/caseDeclarations.d.ts +0 -1
  86. package/lib/rules/caseDeclarations.js +0 -2
  87. package/lib/rules/caseDuplicates.d.ts +0 -1
  88. package/lib/rules/caseDuplicates.js +0 -2
  89. package/lib/rules/caseFallthroughs.d.ts +0 -1
  90. package/lib/rules/caseFallthroughs.js +0 -2
  91. package/lib/rules/catchCallbackTypes.d.ts +0 -1
  92. package/lib/rules/catchCallbackTypes.js +10 -12
  93. package/lib/rules/caughtVariableNames.d.ts +0 -1
  94. package/lib/rules/caughtVariableNames.js +0 -2
  95. package/lib/rules/chainedAssignments.d.ts +0 -1
  96. package/lib/rules/chainedAssignments.js +0 -2
  97. package/lib/rules/charAtComparisons.d.ts +0 -1
  98. package/lib/rules/charAtComparisons.js +5 -10
  99. package/lib/rules/classAssignments.d.ts +0 -1
  100. package/lib/rules/classAssignments.js +4 -9
  101. package/lib/rules/classFieldDeclarations.d.ts +0 -1
  102. package/lib/rules/classFieldDeclarations.js +0 -2
  103. package/lib/rules/classLiteralProperties.d.ts +0 -1
  104. package/lib/rules/classLiteralProperties.js +0 -2
  105. package/lib/rules/classMemberDuplicates.d.ts +0 -1
  106. package/lib/rules/classMemberDuplicates.js +0 -2
  107. package/lib/rules/classMethodsThis.d.ts +0 -1
  108. package/lib/rules/classMethodsThis.js +3 -5
  109. package/lib/rules/combinedPushes.d.ts +0 -1
  110. package/lib/rules/combinedPushes.js +0 -2
  111. package/lib/rules/consecutiveNonNullAssertions.d.ts +0 -1
  112. package/lib/rules/consecutiveNonNullAssertions.js +0 -2
  113. package/lib/rules/consoleCalls.d.ts +0 -1
  114. package/lib/rules/consoleCalls.js +2 -4
  115. package/lib/rules/constantAssignments.d.ts +0 -1
  116. package/lib/rules/constantAssignments.js +4 -9
  117. package/lib/rules/constructorGenericCalls.d.ts +0 -1
  118. package/lib/rules/constructorGenericCalls.js +3 -5
  119. package/lib/rules/constructorReturns.d.ts +0 -1
  120. package/lib/rules/constructorReturns.js +0 -2
  121. package/lib/rules/constructorSupers.d.ts +0 -1
  122. package/lib/rules/constructorSupers.js +0 -2
  123. package/lib/rules/dateConstructorClones.d.ts +0 -1
  124. package/lib/rules/dateConstructorClones.js +2 -4
  125. package/lib/rules/dateNowTimestamps.d.ts +0 -1
  126. package/lib/rules/dateNowTimestamps.js +7 -9
  127. package/lib/rules/debuggerStatements.d.ts +0 -1
  128. package/lib/rules/debuggerStatements.js +0 -2
  129. package/lib/rules/defaultCaseLast.d.ts +0 -1
  130. package/lib/rules/defaultCaseLast.js +0 -2
  131. package/lib/rules/defaultParameterLast.d.ts +0 -1
  132. package/lib/rules/defaultParameterLast.js +0 -2
  133. package/lib/rules/deprecated.d.ts +0 -1
  134. package/lib/rules/deprecated.js +0 -2
  135. package/lib/rules/destructuringConsistency.d.ts +0 -1
  136. package/lib/rules/destructuringConsistency.js +27 -35
  137. package/lib/rules/duplicateArguments.d.ts +0 -1
  138. package/lib/rules/duplicateArguments.js +0 -2
  139. package/lib/rules/dynamicDeletes.d.ts +0 -1
  140. package/lib/rules/dynamicDeletes.js +0 -2
  141. package/lib/rules/elseIfDuplicates.d.ts +0 -1
  142. package/lib/rules/elseIfDuplicates.js +0 -2
  143. package/lib/rules/elseReturns.d.ts +0 -1
  144. package/lib/rules/elseReturns.js +0 -2
  145. package/lib/rules/emptyBlocks.d.ts +0 -1
  146. package/lib/rules/emptyBlocks.js +1 -3
  147. package/lib/rules/emptyDestructures.d.ts +0 -1
  148. package/lib/rules/emptyDestructures.js +0 -2
  149. package/lib/rules/emptyEnums.d.ts +0 -1
  150. package/lib/rules/emptyEnums.js +0 -2
  151. package/lib/rules/emptyExports.d.ts +0 -1
  152. package/lib/rules/emptyExports.js +1 -3
  153. package/lib/rules/emptyFiles.d.ts +0 -1
  154. package/lib/rules/emptyFiles.js +0 -2
  155. package/lib/rules/emptyFunctions.d.ts +0 -1
  156. package/lib/rules/emptyFunctions.js +0 -2
  157. package/lib/rules/emptyModuleAttributes.d.ts +0 -1
  158. package/lib/rules/emptyModuleAttributes.js +0 -2
  159. package/lib/rules/emptyObjectTypes.d.ts +0 -1
  160. package/lib/rules/emptyObjectTypes.js +0 -2
  161. package/lib/rules/emptyStaticBlocks.d.ts +0 -1
  162. package/lib/rules/emptyStaticBlocks.js +0 -2
  163. package/lib/rules/emptyTypeParameterLists.d.ts +0 -1
  164. package/lib/rules/emptyTypeParameterLists.js +0 -2
  165. package/lib/rules/enumInitializers.d.ts +0 -1
  166. package/lib/rules/enumInitializers.js +0 -2
  167. package/lib/rules/enumMemberLiterals.d.ts +0 -1
  168. package/lib/rules/enumMemberLiterals.js +2 -4
  169. package/lib/rules/enumValueConsistency.d.ts +0 -1
  170. package/lib/rules/enumValueConsistency.js +0 -2
  171. package/lib/rules/enumValueDuplicates.d.ts +0 -1
  172. package/lib/rules/enumValueDuplicates.js +3 -20
  173. package/lib/rules/equalityOperatorNegations.d.ts +0 -1
  174. package/lib/rules/equalityOperatorNegations.js +3 -5
  175. package/lib/rules/equalityOperators.d.ts +0 -1
  176. package/lib/rules/equalityOperators.js +0 -2
  177. package/lib/rules/errorMessages.d.ts +0 -1
  178. package/lib/rules/errorMessages.js +6 -12
  179. package/lib/rules/errorSubclassProperties.d.ts +0 -1
  180. package/lib/rules/errorSubclassProperties.js +2 -4
  181. package/lib/rules/errorUnnecessaryCaptureStackTraces.d.ts +0 -1
  182. package/lib/rules/errorUnnecessaryCaptureStackTraces.js +2 -4
  183. package/lib/rules/escapeSequenceCasing.d.ts +0 -1
  184. package/lib/rules/escapeSequenceCasing.js +0 -2
  185. package/lib/rules/evals.d.ts +0 -1
  186. package/lib/rules/evals.js +2 -4
  187. package/lib/rules/evolvingVariableTypes.d.ts +0 -1
  188. package/lib/rules/evolvingVariableTypes.js +0 -2
  189. package/lib/rules/exceptionAssignments.d.ts +0 -1
  190. package/lib/rules/exceptionAssignments.js +4 -9
  191. package/lib/rules/explicitAnys.d.ts +0 -1
  192. package/lib/rules/explicitAnys.js +0 -2
  193. package/lib/rules/exponentiationOperators.d.ts +0 -1
  194. package/lib/rules/exponentiationOperators.js +2 -4
  195. package/lib/rules/exportFromImports.d.ts +0 -1
  196. package/lib/rules/exportFromImports.js +2 -4
  197. package/lib/rules/exportMutables.d.ts +0 -1
  198. package/lib/rules/exportMutables.js +0 -2
  199. package/lib/rules/exportUniqueNames.d.ts +0 -1
  200. package/lib/rules/exportUniqueNames.js +0 -2
  201. package/lib/rules/extraneousClasses.d.ts +0 -1
  202. package/lib/rules/extraneousClasses.js +5 -7
  203. package/lib/rules/fetchMethodBodies.d.ts +0 -1
  204. package/lib/rules/fetchMethodBodies.js +0 -2
  205. package/lib/rules/finallyStatementSafety.d.ts +0 -1
  206. package/lib/rules/finallyStatementSafety.js +0 -2
  207. package/lib/rules/forDirections.d.ts +0 -1
  208. package/lib/rules/forDirections.js +0 -2
  209. package/lib/rules/forInArrays.d.ts +0 -1
  210. package/lib/rules/forInArrays.js +0 -2
  211. package/lib/rules/forInGuards.d.ts +0 -1
  212. package/lib/rules/forInGuards.js +0 -2
  213. package/lib/rules/functionApplySpreads.d.ts +0 -1
  214. package/lib/rules/functionApplySpreads.js +0 -2
  215. package/lib/rules/functionAssignments.d.ts +0 -1
  216. package/lib/rules/functionAssignments.js +4 -9
  217. package/lib/rules/functionCurryingRedundancy.d.ts +0 -1
  218. package/lib/rules/functionCurryingRedundancy.js +0 -2
  219. package/lib/rules/functionDeclarationStyles.d.ts +0 -1
  220. package/lib/rules/functionDeclarationStyles.js +3 -5
  221. package/lib/rules/functionNameMatches.d.ts +0 -1
  222. package/lib/rules/functionNameMatches.js +0 -2
  223. package/lib/rules/functionNewCalls.d.ts +0 -1
  224. package/lib/rules/functionNewCalls.js +5 -7
  225. package/lib/rules/generatorFunctionYields.d.ts +0 -1
  226. package/lib/rules/generatorFunctionYields.js +0 -2
  227. package/lib/rules/getterReturns.d.ts +0 -1
  228. package/lib/rules/getterReturns.js +0 -2
  229. package/lib/rules/globalAssignments.d.ts +0 -1
  230. package/lib/rules/globalAssignments.js +6 -8
  231. package/lib/rules/globalObjectCalls.d.ts +0 -1
  232. package/lib/rules/globalObjectCalls.js +1 -3
  233. package/lib/rules/globalThisAliases.d.ts +0 -1
  234. package/lib/rules/globalThisAliases.js +8 -10
  235. package/lib/rules/impliedEvals.d.ts +0 -1
  236. package/lib/rules/impliedEvals.js +26 -28
  237. package/lib/rules/importEmptyBlocks.d.ts +0 -1
  238. package/lib/rules/importEmptyBlocks.js +0 -2
  239. package/lib/rules/importTypeSideEffects.d.ts +0 -1
  240. package/lib/rules/importTypeSideEffects.js +0 -2
  241. package/lib/rules/indexedObjectTypes.d.ts +0 -1
  242. package/lib/rules/indexedObjectTypes.js +4 -6
  243. package/lib/rules/instanceOfArrays.d.ts +0 -1
  244. package/lib/rules/instanceOfArrays.js +2 -4
  245. package/lib/rules/irregularWhitespaces.d.ts +0 -1
  246. package/lib/rules/irregularWhitespaces.js +5 -7
  247. package/lib/rules/isNaNComparisons.d.ts +0 -1
  248. package/lib/rules/isNaNComparisons.js +5 -7
  249. package/lib/rules/literalConstructorWrappers.d.ts +0 -1
  250. package/lib/rules/literalConstructorWrappers.js +10 -12
  251. package/lib/rules/mathMethods.d.ts +0 -1
  252. package/lib/rules/mathMethods.js +14 -16
  253. package/lib/rules/meaninglessVoidOperators.d.ts +0 -1
  254. package/lib/rules/meaninglessVoidOperators.js +0 -2
  255. package/lib/rules/misleadingVoidExpressions.d.ts +0 -1
  256. package/lib/rules/misleadingVoidExpressions.js +0 -2
  257. package/lib/rules/moduleSpecifierLists.d.ts +0 -1
  258. package/lib/rules/moduleSpecifierLists.js +0 -2
  259. package/lib/rules/multilineAmbiguities.d.ts +0 -1
  260. package/lib/rules/multilineAmbiguities.js +0 -2
  261. package/lib/rules/namedDefaultExports.d.ts +0 -1
  262. package/lib/rules/namedDefaultExports.js +0 -2
  263. package/lib/rules/namespaceDeclarations.d.ts +0 -1
  264. package/lib/rules/namespaceDeclarations.js +3 -5
  265. package/lib/rules/namespaceImplicitAmbientImports.d.ts +0 -1
  266. package/lib/rules/namespaceImplicitAmbientImports.js +0 -2
  267. package/lib/rules/namespaceKeywords.d.ts +0 -1
  268. package/lib/rules/namespaceKeywords.js +0 -2
  269. package/lib/rules/nativeObjectExtensions.d.ts +0 -1
  270. package/lib/rules/nativeObjectExtensions.js +4 -6
  271. package/lib/rules/negativeIndexLengthMethods.d.ts +0 -1
  272. package/lib/rules/negativeIndexLengthMethods.js +7 -9
  273. package/lib/rules/negativeZeroComparisons.d.ts +0 -1
  274. package/lib/rules/negativeZeroComparisons.js +0 -2
  275. package/lib/rules/nestedStandaloneIfs.d.ts +0 -1
  276. package/lib/rules/nestedStandaloneIfs.js +1 -3
  277. package/lib/rules/newDefinitions.d.ts +0 -1
  278. package/lib/rules/newDefinitions.js +0 -2
  279. package/lib/rules/newExpressions.d.ts +0 -1
  280. package/lib/rules/newExpressions.js +0 -2
  281. package/lib/rules/newNativeNonConstructors.d.ts +0 -1
  282. package/lib/rules/newNativeNonConstructors.js +2 -4
  283. package/lib/rules/nonNullAssertedNullishCoalesces.d.ts +0 -1
  284. package/lib/rules/nonNullAssertedNullishCoalesces.js +0 -2
  285. package/lib/rules/nonNullAssertedOptionalChains.d.ts +0 -1
  286. package/lib/rules/nonNullAssertedOptionalChains.js +0 -2
  287. package/lib/rules/nonNullAssertionPlacement.d.ts +0 -1
  288. package/lib/rules/nonNullAssertionPlacement.js +1 -3
  289. package/lib/rules/nonNullableTypeAssertions.d.ts +0 -1
  290. package/lib/rules/nonNullableTypeAssertions.js +0 -2
  291. package/lib/rules/nonOctalDecimalEscapes.d.ts +0 -1
  292. package/lib/rules/nonOctalDecimalEscapes.js +0 -2
  293. package/lib/rules/nullishCheckStyle.d.ts +0 -1
  294. package/lib/rules/nullishCheckStyle.js +3 -5
  295. package/lib/rules/nullishCoalescingOperators.d.ts +0 -1
  296. package/lib/rules/nullishCoalescingOperators.js +29 -19
  297. package/lib/rules/numberMethodRanges.d.ts +0 -1
  298. package/lib/rules/numberMethodRanges.js +1 -3
  299. package/lib/rules/numberStaticMethods.d.ts +0 -1
  300. package/lib/rules/numberStaticMethods.js +3 -5
  301. package/lib/rules/numericErasingOperations.d.ts +0 -1
  302. package/lib/rules/numericErasingOperations.js +2 -4
  303. package/lib/rules/numericLiteralParsing.d.ts +0 -1
  304. package/lib/rules/numericLiteralParsing.js +11 -22
  305. package/lib/rules/numericPrecision.d.ts +0 -1
  306. package/lib/rules/numericPrecision.js +0 -2
  307. package/lib/rules/numericSeparatorGroups.d.ts +0 -1
  308. package/lib/rules/numericSeparatorGroups.js +0 -2
  309. package/lib/rules/objectAssignSpreads.d.ts +0 -1
  310. package/lib/rules/objectAssignSpreads.js +4 -6
  311. package/lib/rules/objectCalls.d.ts +0 -1
  312. package/lib/rules/objectCalls.js +2 -4
  313. package/lib/rules/objectEntriesMethods.d.ts +0 -1
  314. package/lib/rules/objectEntriesMethods.js +13 -15
  315. package/lib/rules/objectHasOwns.d.ts +0 -1
  316. package/lib/rules/objectHasOwns.js +7 -9
  317. package/lib/rules/objectKeyDuplicates.d.ts +0 -1
  318. package/lib/rules/objectKeyDuplicates.js +0 -2
  319. package/lib/rules/objectProto.d.ts +0 -1
  320. package/lib/rules/objectProto.js +0 -2
  321. package/lib/rules/objectPrototypeBuiltIns.d.ts +0 -1
  322. package/lib/rules/objectPrototypeBuiltIns.js +1 -3
  323. package/lib/rules/objectShorthand.d.ts +0 -1
  324. package/lib/rules/objectShorthand.js +0 -2
  325. package/lib/rules/objectSpreadUnnecessaryFallbacks.d.ts +0 -1
  326. package/lib/rules/objectSpreadUnnecessaryFallbacks.js +0 -2
  327. package/lib/rules/objectTypeDefinitions.d.ts +0 -1
  328. package/lib/rules/objectTypeDefinitions.js +0 -2
  329. package/lib/rules/octalEscapes.d.ts +0 -1
  330. package/lib/rules/octalEscapes.js +0 -2
  331. package/lib/rules/octalNumbers.d.ts +0 -1
  332. package/lib/rules/octalNumbers.js +0 -2
  333. package/lib/rules/operatorAssignmentShorthand.d.ts +0 -1
  334. package/lib/rules/operatorAssignmentShorthand.js +3 -5
  335. package/lib/rules/overloadSignaturesAdjacent.d.ts +0 -1
  336. package/lib/rules/overloadSignaturesAdjacent.js +0 -2
  337. package/lib/rules/parameterReassignments.d.ts +0 -1
  338. package/lib/rules/parameterReassignments.js +18 -51
  339. package/lib/rules/parseIntRadixes.d.ts +0 -1
  340. package/lib/rules/parseIntRadixes.js +10 -15
  341. package/lib/rules/propertyAccessNotation.d.ts +0 -1
  342. package/lib/rules/propertyAccessNotation.js +3 -5
  343. package/lib/rules/recursionOnlyArguments.d.ts +0 -1
  344. package/lib/rules/recursionOnlyArguments.js +8 -17
  345. package/lib/rules/redundantTypeConstituents.d.ts +0 -1
  346. package/lib/rules/redundantTypeConstituents.js +0 -2
  347. package/lib/rules/regexAllGlobalFlags.d.ts +0 -1
  348. package/lib/rules/regexAllGlobalFlags.js +0 -2
  349. package/lib/rules/regexAmbiguousInvalidity.d.ts +0 -1
  350. package/lib/rules/regexAmbiguousInvalidity.js +2 -4
  351. package/lib/rules/regexCharacterClassRanges.d.ts +0 -1
  352. package/lib/rules/regexCharacterClassRanges.js +0 -2
  353. package/lib/rules/regexCharacterClassSetOperations.d.ts +0 -1
  354. package/lib/rules/regexCharacterClassSetOperations.js +0 -2
  355. package/lib/rules/regexCharacterClasses.d.ts +0 -1
  356. package/lib/rules/regexCharacterClasses.js +1 -3
  357. package/lib/rules/regexConciseCharacterClassNegations.d.ts +0 -1
  358. package/lib/rules/regexConciseCharacterClassNegations.js +0 -2
  359. package/lib/rules/regexContradictoryAssertions.d.ts +0 -1
  360. package/lib/rules/regexContradictoryAssertions.js +0 -2
  361. package/lib/rules/regexControlCharacterEscapes.d.ts +0 -1
  362. package/lib/rules/regexControlCharacterEscapes.js +0 -2
  363. package/lib/rules/regexControlCharacters.d.ts +0 -1
  364. package/lib/rules/regexControlCharacters.js +0 -2
  365. package/lib/rules/regexDigitMatchers.d.ts +0 -1
  366. package/lib/rules/regexDigitMatchers.js +0 -2
  367. package/lib/rules/regexDollarEscapes.d.ts +0 -1
  368. package/lib/rules/regexDollarEscapes.js +0 -2
  369. package/lib/rules/regexDuplicateCharacterClassCharacters.d.ts +0 -1
  370. package/lib/rules/regexDuplicateCharacterClassCharacters.js +0 -2
  371. package/lib/rules/regexEmptyAlternatives.d.ts +0 -1
  372. package/lib/rules/regexEmptyAlternatives.js +0 -2
  373. package/lib/rules/regexEmptyCapturingGroups.d.ts +0 -1
  374. package/lib/rules/regexEmptyCapturingGroups.js +0 -2
  375. package/lib/rules/regexEmptyCharacterClasses.d.ts +0 -1
  376. package/lib/rules/regexEmptyCharacterClasses.js +0 -2
  377. package/lib/rules/regexEmptyGroups.d.ts +0 -1
  378. package/lib/rules/regexEmptyGroups.js +0 -2
  379. package/lib/rules/regexEmptyLazyQuantifiers.d.ts +0 -1
  380. package/lib/rules/regexEmptyLazyQuantifiers.js +0 -2
  381. package/lib/rules/regexEmptyLookaroundsAssertions.d.ts +0 -1
  382. package/lib/rules/regexEmptyLookaroundsAssertions.js +0 -2
  383. package/lib/rules/regexEmptyStringLiterals.d.ts +0 -1
  384. package/lib/rules/regexEmptyStringLiterals.js +0 -2
  385. package/lib/rules/regexEscapeBackspaces.d.ts +0 -1
  386. package/lib/rules/regexEscapeBackspaces.js +0 -2
  387. package/lib/rules/regexExecutors.d.ts +0 -1
  388. package/lib/rules/regexExecutors.js +2 -4
  389. package/lib/rules/regexGraphemeStringLiterals.d.ts +0 -1
  390. package/lib/rules/regexGraphemeStringLiterals.js +0 -2
  391. package/lib/rules/regexHexadecimalEscapes.d.ts +0 -1
  392. package/lib/rules/regexHexadecimalEscapes.js +0 -2
  393. package/lib/rules/regexIgnoreCaseFlags.d.ts +0 -1
  394. package/lib/rules/regexIgnoreCaseFlags.js +0 -2
  395. package/lib/rules/regexInvisibleCharacters.d.ts +0 -1
  396. package/lib/rules/regexInvisibleCharacters.js +0 -2
  397. package/lib/rules/regexLetterCasing.d.ts +0 -1
  398. package/lib/rules/regexLetterCasing.js +0 -2
  399. package/lib/rules/regexLiterals.d.ts +0 -1
  400. package/lib/rules/regexLiterals.js +4 -9
  401. package/lib/rules/regexLookaroundAssertions.d.ts +0 -1
  402. package/lib/rules/regexLookaroundAssertions.js +0 -2
  403. package/lib/rules/regexLookaroundQuantifierOptimizations.d.ts +0 -1
  404. package/lib/rules/regexLookaroundQuantifierOptimizations.js +0 -2
  405. package/lib/rules/regexMatchNotation.d.ts +0 -1
  406. package/lib/rules/regexMatchNotation.js +0 -2
  407. package/lib/rules/regexMisleadingCapturingGroups.d.ts +0 -1
  408. package/lib/rules/regexMisleadingCapturingGroups.js +0 -2
  409. package/lib/rules/regexMisleadingQuantifiers.d.ts +0 -1
  410. package/lib/rules/regexMisleadingQuantifiers.js +0 -2
  411. package/lib/rules/regexMisleadingUnicodeCharacters.d.ts +0 -1
  412. package/lib/rules/regexMisleadingUnicodeCharacters.js +0 -2
  413. package/lib/rules/regexNamedBackreferences.d.ts +0 -1
  414. package/lib/rules/regexNamedBackreferences.js +0 -2
  415. package/lib/rules/regexNamedCaptureGroups.d.ts +0 -1
  416. package/lib/rules/regexNamedCaptureGroups.js +0 -2
  417. package/lib/rules/regexNamedReplacements.d.ts +0 -1
  418. package/lib/rules/regexNamedReplacements.js +0 -2
  419. package/lib/rules/regexNonStandardFlags.d.ts +0 -1
  420. package/lib/rules/regexNonStandardFlags.js +1 -3
  421. package/lib/rules/regexObscureRanges.d.ts +0 -1
  422. package/lib/rules/regexObscureRanges.js +0 -2
  423. package/lib/rules/regexOctalEscapes.d.ts +0 -1
  424. package/lib/rules/regexOctalEscapes.js +0 -2
  425. package/lib/rules/regexPlusQuantifiers.d.ts +0 -1
  426. package/lib/rules/regexPlusQuantifiers.js +0 -2
  427. package/lib/rules/regexPredefinedAssertions.d.ts +0 -1
  428. package/lib/rules/regexPredefinedAssertions.js +0 -2
  429. package/lib/rules/regexQuestionQuantifiers.d.ts +0 -1
  430. package/lib/rules/regexQuestionQuantifiers.js +0 -2
  431. package/lib/rules/regexRepeatQuantifiers.d.ts +0 -1
  432. package/lib/rules/regexRepeatQuantifiers.js +0 -2
  433. package/lib/rules/regexResultArrayGroups.d.ts +0 -1
  434. package/lib/rules/regexResultArrayGroups.js +0 -2
  435. package/lib/rules/regexSetOperationOptimizations.d.ts +0 -1
  436. package/lib/rules/regexSetOperationOptimizations.js +0 -2
  437. package/lib/rules/regexStandaloneBackslashes.d.ts +0 -1
  438. package/lib/rules/regexStandaloneBackslashes.js +0 -2
  439. package/lib/rules/regexStarQuantifiers.d.ts +0 -1
  440. package/lib/rules/regexStarQuantifiers.js +0 -2
  441. package/lib/rules/regexSuperLinearBacktracking.d.ts +0 -1
  442. package/lib/rules/regexSuperLinearBacktracking.js +0 -2
  443. package/lib/rules/regexSuperLinearMoves.d.ts +0 -1
  444. package/lib/rules/regexSuperLinearMoves.js +0 -2
  445. package/lib/rules/regexTestMethods.d.ts +0 -1
  446. package/lib/rules/regexTestMethods.js +0 -2
  447. package/lib/rules/regexUnicodeCodepointEscapes.d.ts +0 -1
  448. package/lib/rules/regexUnicodeCodepointEscapes.js +0 -2
  449. package/lib/rules/regexUnicodeEscapes.d.ts +0 -1
  450. package/lib/rules/regexUnicodeEscapes.js +0 -2
  451. package/lib/rules/regexUnicodeFlag.d.ts +0 -1
  452. package/lib/rules/regexUnicodeFlag.js +0 -2
  453. package/lib/rules/regexUnicodeProperties.d.ts +0 -1
  454. package/lib/rules/regexUnicodeProperties.js +0 -2
  455. package/lib/rules/regexUnnecessaryAssertions.d.ts +0 -1
  456. package/lib/rules/regexUnnecessaryAssertions.js +0 -2
  457. package/lib/rules/regexUnnecessaryBackreferences.d.ts +0 -1
  458. package/lib/rules/regexUnnecessaryBackreferences.js +0 -2
  459. package/lib/rules/regexUnnecessaryCharacterClasses.d.ts +0 -1
  460. package/lib/rules/regexUnnecessaryCharacterClasses.js +0 -2
  461. package/lib/rules/regexUnnecessaryCharacterRanges.d.ts +0 -1
  462. package/lib/rules/regexUnnecessaryCharacterRanges.js +0 -2
  463. package/lib/rules/regexUnnecessaryDisjunctions.d.ts +0 -1
  464. package/lib/rules/regexUnnecessaryDisjunctions.js +0 -2
  465. package/lib/rules/regexUnnecessaryDollarReplacements.d.ts +0 -1
  466. package/lib/rules/regexUnnecessaryDollarReplacements.js +0 -2
  467. package/lib/rules/regexUnnecessaryEscapes.d.ts +0 -1
  468. package/lib/rules/regexUnnecessaryEscapes.js +2 -4
  469. package/lib/rules/regexUnnecessaryLookaroundAssertions.d.ts +0 -1
  470. package/lib/rules/regexUnnecessaryLookaroundAssertions.js +0 -2
  471. package/lib/rules/regexUnnecessaryNestedAssertions.d.ts +0 -1
  472. package/lib/rules/regexUnnecessaryNestedAssertions.js +0 -2
  473. package/lib/rules/regexUnnecessaryNestedQuantifiers.d.ts +0 -1
  474. package/lib/rules/regexUnnecessaryNestedQuantifiers.js +0 -2
  475. package/lib/rules/regexUnnecessaryNonCapturingGroups.d.ts +0 -1
  476. package/lib/rules/regexUnnecessaryNonCapturingGroups.js +0 -2
  477. package/lib/rules/regexUnnecessaryNumericQuantifiers.d.ts +0 -1
  478. package/lib/rules/regexUnnecessaryNumericQuantifiers.js +0 -2
  479. package/lib/rules/regexUnnecessaryOptionalAssertions.d.ts +0 -1
  480. package/lib/rules/regexUnnecessaryOptionalAssertions.js +0 -2
  481. package/lib/rules/regexUnnecessaryReferentialBackreferences.d.ts +0 -1
  482. package/lib/rules/regexUnnecessaryReferentialBackreferences.js +0 -2
  483. package/lib/rules/regexUnnecessarySetOperands.d.ts +0 -1
  484. package/lib/rules/regexUnnecessarySetOperands.js +0 -2
  485. package/lib/rules/regexUnusedCapturingGroups.d.ts +0 -1
  486. package/lib/rules/regexUnusedCapturingGroups.js +0 -2
  487. package/lib/rules/regexUnusedFlags.d.ts +0 -1
  488. package/lib/rules/regexUnusedFlags.js +0 -2
  489. package/lib/rules/regexUnusedLazyQuantifiers.d.ts +0 -1
  490. package/lib/rules/regexUnusedLazyQuantifiers.js +0 -2
  491. package/lib/rules/regexUnusedQuantifiers.d.ts +0 -1
  492. package/lib/rules/regexUnusedQuantifiers.js +0 -2
  493. package/lib/rules/regexValidity.d.ts +0 -1
  494. package/lib/rules/regexValidity.js +1 -3
  495. package/lib/rules/regexWordMatchers.d.ts +0 -1
  496. package/lib/rules/regexWordMatchers.js +0 -2
  497. package/lib/rules/regexZeroQuantifiers.d.ts +0 -1
  498. package/lib/rules/regexZeroQuantifiers.js +0 -2
  499. package/lib/rules/requireImports.d.ts +0 -1
  500. package/lib/rules/requireImports.js +0 -2
  501. package/lib/rules/responseJsonMethods.d.ts +0 -1
  502. package/lib/rules/responseJsonMethods.js +0 -2
  503. package/lib/rules/restrictedIdentifiers.d.ts +0 -1
  504. package/lib/rules/restrictedIdentifiers.js +2 -4
  505. package/lib/rules/restrictedImports.d.ts +26 -0
  506. package/lib/rules/restrictedImports.js +164 -0
  507. package/lib/rules/returnAssignments.d.ts +0 -1
  508. package/lib/rules/returnAssignments.js +0 -2
  509. package/lib/rules/returnThisTypes.d.ts +0 -1
  510. package/lib/rules/returnThisTypes.js +0 -2
  511. package/lib/rules/ruleCreator.d.ts +0 -1
  512. package/lib/rules/ruleCreator.js +0 -2
  513. package/lib/rules/selfAssignments.d.ts +0 -1
  514. package/lib/rules/selfAssignments.js +0 -2
  515. package/lib/rules/sequences.d.ts +0 -1
  516. package/lib/rules/sequences.js +0 -2
  517. package/lib/rules/setSizeLengthChecks.d.ts +0 -1
  518. package/lib/rules/setSizeLengthChecks.js +13 -15
  519. package/lib/rules/setterReturns.d.ts +0 -1
  520. package/lib/rules/setterReturns.js +0 -2
  521. package/lib/rules/shadowedRestrictedNames.d.ts +0 -1
  522. package/lib/rules/shadowedRestrictedNames.js +1 -3
  523. package/lib/rules/singleVariableDeclarations.d.ts +0 -1
  524. package/lib/rules/singleVariableDeclarations.js +0 -2
  525. package/lib/rules/sizeComparisonOperators.d.ts +0 -1
  526. package/lib/rules/sizeComparisonOperators.js +5 -7
  527. package/lib/rules/sparseArrays.d.ts +0 -1
  528. package/lib/rules/sparseArrays.js +0 -2
  529. package/lib/rules/staticMemberOnlyClasses.d.ts +0 -1
  530. package/lib/rules/staticMemberOnlyClasses.js +0 -2
  531. package/lib/rules/stringCaseMismatches.d.ts +0 -1
  532. package/lib/rules/stringCaseMismatches.js +3 -8
  533. package/lib/rules/stringCodePoints.d.ts +0 -1
  534. package/lib/rules/stringCodePoints.js +2 -4
  535. package/lib/rules/stringSliceMethods.d.ts +0 -1
  536. package/lib/rules/stringSliceMethods.js +0 -2
  537. package/lib/rules/stringStartsEndsWith.d.ts +0 -1
  538. package/lib/rules/stringStartsEndsWith.js +0 -2
  539. package/lib/rules/structuredCloneMethods.d.ts +0 -1
  540. package/lib/rules/structuredCloneMethods.js +7 -9
  541. package/lib/rules/symbolDescriptions.d.ts +0 -1
  542. package/lib/rules/symbolDescriptions.js +0 -2
  543. package/lib/rules/thisAliases.d.ts +0 -1
  544. package/lib/rules/thisAliases.js +0 -2
  545. package/lib/rules/thisBeforeSuper.d.ts +0 -1
  546. package/lib/rules/thisBeforeSuper.js +0 -2
  547. package/lib/rules/throwErrors.d.ts +0 -1
  548. package/lib/rules/throwErrors.js +11 -13
  549. package/lib/rules/topLevelAwaits.d.ts +0 -1
  550. package/lib/rules/topLevelAwaits.js +0 -2
  551. package/lib/rules/tripleSlashReferenceValidity.d.ts +0 -1
  552. package/lib/rules/tripleSlashReferenceValidity.js +1 -3
  553. package/lib/rules/tripleSlashReferences.d.ts +0 -1
  554. package/lib/rules/tripleSlashReferences.js +0 -2
  555. package/lib/rules/tsComments.d.ts +0 -1
  556. package/lib/rules/tsComments.js +8 -10
  557. package/lib/rules/tslintComments.d.ts +0 -1
  558. package/lib/rules/tslintComments.js +0 -2
  559. package/lib/rules/typeAssertionStyles.d.ts +0 -1
  560. package/lib/rules/typeAssertionStyles.js +0 -2
  561. package/lib/rules/typeImports.d.ts +0 -1
  562. package/lib/rules/typeImports.js +4 -7
  563. package/lib/rules/typeofComparisons.d.ts +0 -1
  564. package/lib/rules/typeofComparisons.js +4 -9
  565. package/lib/rules/unassignedVariables.d.ts +0 -1
  566. package/lib/rules/unassignedVariables.js +2 -7
  567. package/lib/rules/undefinedTypeofChecks.d.ts +0 -1
  568. package/lib/rules/undefinedTypeofChecks.js +0 -2
  569. package/lib/rules/undefinedVariables.d.ts +0 -1
  570. package/lib/rules/undefinedVariables.js +0 -2
  571. package/lib/rules/unicodeBOMs.d.ts +0 -1
  572. package/lib/rules/unicodeBOMs.js +0 -2
  573. package/lib/rules/unnecessaryBinds.d.ts +0 -1
  574. package/lib/rules/unnecessaryBinds.js +0 -2
  575. package/lib/rules/unnecessaryBlocks.d.ts +0 -1
  576. package/lib/rules/unnecessaryBlocks.js +0 -2
  577. package/lib/rules/unnecessaryBooleanCasts.d.ts +0 -1
  578. package/lib/rules/unnecessaryBooleanCasts.js +0 -2
  579. package/lib/rules/unnecessaryCatches.d.ts +0 -1
  580. package/lib/rules/unnecessaryCatches.js +0 -2
  581. package/lib/rules/unnecessaryComparisons.d.ts +0 -1
  582. package/lib/rules/unnecessaryComparisons.js +3 -12
  583. package/lib/rules/unnecessaryConcatenation.d.ts +0 -1
  584. package/lib/rules/unnecessaryConcatenation.js +0 -2
  585. package/lib/rules/unnecessaryEscapes.d.ts +0 -1
  586. package/lib/rules/unnecessaryEscapes.js +1 -3
  587. package/lib/rules/unnecessaryMathClamps.d.ts +0 -1
  588. package/lib/rules/unnecessaryMathClamps.js +13 -21
  589. package/lib/rules/unnecessaryNumericFractions.d.ts +0 -1
  590. package/lib/rules/unnecessaryNumericFractions.js +0 -2
  591. package/lib/rules/unnecessaryRenames.d.ts +0 -1
  592. package/lib/rules/unnecessaryRenames.js +0 -2
  593. package/lib/rules/unnecessaryTernaries.d.ts +0 -1
  594. package/lib/rules/unnecessaryTernaries.js +0 -2
  595. package/lib/rules/unnecessaryUseStricts.d.ts +0 -1
  596. package/lib/rules/unnecessaryUseStricts.js +0 -2
  597. package/lib/rules/unsafeNegations.d.ts +0 -1
  598. package/lib/rules/unsafeNegations.js +1 -3
  599. package/lib/rules/utils/collectAccessorPairs.d.ts +1 -2
  600. package/lib/rules/utils/collectAccessorPairs.js +0 -2
  601. package/lib/rules/utils/countCommentsInRange.d.ts +0 -1
  602. package/lib/rules/utils/countCommentsInRange.js +0 -2
  603. package/lib/rules/utils/discriminateAnyType.d.ts +1 -2
  604. package/lib/rules/utils/discriminateAnyType.js +0 -2
  605. package/lib/rules/utils/equalityOperators.d.ts +1 -2
  606. package/lib/rules/utils/equalityOperators.js +0 -2
  607. package/lib/rules/utils/forEachReturnStatement.d.ts +0 -1
  608. package/lib/rules/utils/forEachReturnStatement.js +0 -2
  609. package/lib/rules/utils/formatReportedType.d.ts +1 -2
  610. package/lib/rules/utils/formatReportedType.js +0 -2
  611. package/lib/rules/utils/getConstrainedType.d.ts +0 -1
  612. package/lib/rules/utils/getConstrainedType.js +0 -2
  613. package/lib/rules/utils/getFunctionName.d.ts +0 -1
  614. package/lib/rules/utils/getFunctionName.js +0 -2
  615. package/lib/rules/utils/getRegExpConstruction.d.ts +2 -4
  616. package/lib/rules/utils/getRegExpConstruction.js +7 -8
  617. package/lib/rules/utils/getRegExpLiteralDetails.d.ts +0 -1
  618. package/lib/rules/utils/getRegExpLiteralDetails.js +0 -2
  619. package/lib/rules/utils/getThisExpression.d.ts +0 -1
  620. package/lib/rules/utils/getThisExpression.js +0 -2
  621. package/lib/rules/utils/isArrayOrTupleTypeAtLocation.d.ts +0 -1
  622. package/lib/rules/utils/isArrayOrTupleTypeAtLocation.js +0 -2
  623. package/lib/rules/utils/isBuiltinSymbolLike.d.ts +0 -1
  624. package/lib/rules/utils/isBuiltinSymbolLike.js +1 -3
  625. package/lib/rules/utils/isDirectEqualityCheck.d.ts +1 -2
  626. package/lib/rules/utils/isDirectEqualityCheck.js +0 -2
  627. package/lib/rules/utils/isErrorSubclass.d.ts +2 -2
  628. package/lib/rules/utils/isErrorSubclass.js +5 -7
  629. package/lib/rules/utils/isInBooleanContext.d.ts +0 -1
  630. package/lib/rules/utils/isInBooleanContext.js +0 -2
  631. package/lib/rules/utils/isTypeRecursive.d.ts +0 -1
  632. package/lib/rules/utils/isTypeRecursive.js +0 -2
  633. package/lib/rules/utils/isUnsafeAssignment.d.ts +1 -2
  634. package/lib/rules/utils/isUnsafeAssignment.js +1 -3
  635. package/lib/rules/utils/operators.d.ts +0 -1
  636. package/lib/rules/utils/operators.js +0 -2
  637. package/lib/rules/utils/parseRegexpAst.d.ts +0 -1
  638. package/lib/rules/utils/parseRegexpAst.js +0 -2
  639. package/lib/rules/utils/parseRegexpAstFull.d.ts +0 -1
  640. package/lib/rules/utils/parseRegexpAstFull.js +0 -2
  641. package/lib/rules/utils/skipParentheses.d.ts +0 -1
  642. package/lib/rules/utils/skipParentheses.js +0 -2
  643. package/lib/rules/variableDeletions.d.ts +0 -1
  644. package/lib/rules/variableDeletions.js +0 -2
  645. package/lib/rules/voidOperator.d.ts +0 -1
  646. package/lib/rules/voidOperator.js +0 -2
  647. package/lib/rules/withStatements.d.ts +0 -1
  648. package/lib/rules/withStatements.js +0 -2
  649. package/lib/rules/wrapperObjects.d.ts +0 -1
  650. package/lib/rules/wrapperObjects.js +3 -5
  651. package/lib/type-utils/getSpecifierNames.d.ts +2 -0
  652. package/lib/type-utils/getSpecifierNames.js +7 -0
  653. package/lib/type-utils/isDeclaredInModuleBlock.d.ts +2 -0
  654. package/lib/type-utils/isDeclaredInModuleBlock.js +12 -0
  655. package/lib/type-utils/isFromFile.d.ts +2 -0
  656. package/lib/type-utils/isFromFile.js +11 -0
  657. package/lib/type-utils/isFromPackage.d.ts +2 -0
  658. package/lib/type-utils/isFromPackage.js +13 -0
  659. package/lib/type-utils/matchesSpecifier.d.ts +3 -0
  660. package/lib/type-utils/matchesSpecifier.js +18 -0
  661. package/lib/type-utils/schemas.d.ts +14 -0
  662. package/lib/type-utils/schemas.js +23 -0
  663. package/package.json +9 -10
  664. package/lib/rules/utils/forEachChild.d.ts +0 -4
  665. package/lib/rules/utils/forEachChild.js +0 -7
@@ -7,4 +7,3 @@ declare const _default: import("@flint.fyi/core").Rule<{
7
7
  readonly url: string;
8
8
  }, "throwError" | "throwUndefined", undefined>;
9
9
  export default _default;
10
- //# sourceMappingURL=throwErrors.d.ts.map
@@ -1,21 +1,21 @@
1
1
  import { ruleCreator } from "./ruleCreator.js";
2
2
  import { getConstrainedTypeAtLocation } from "./utils/getConstrainedType.js";
3
3
  import { declarationIncludesGlobal, getTSNodeRange, typescriptLanguage } from "@flint.fyi/typescript-language";
4
- import * as ts$1 from "typescript";
4
+ import { TypeFlags } from "typescript";
5
5
  import * as tsutils from "ts-api-utils";
6
6
  //#region src/rules/throwErrors.ts
7
- function isBuiltinErrorType(type) {
7
+ function isBuiltinErrorType(type, program) {
8
8
  const symbol = type.getSymbol();
9
9
  if (symbol?.getName() !== "Error") return false;
10
- return !!symbol.getDeclarations()?.some(declarationIncludesGlobal);
10
+ return !!symbol.getDeclarations()?.some((declaration) => declarationIncludesGlobal(declaration, program));
11
11
  }
12
- function isErrorType(type) {
13
- if (isBuiltinErrorType(type)) return true;
14
- if (type.isUnion()) return type.types.every((t) => isErrorType(t));
15
- if (type.isIntersection()) return type.types.some((t) => isErrorType(t));
12
+ function isErrorType(type, program) {
13
+ if (isBuiltinErrorType(type, program)) return true;
14
+ if (type.isUnion()) return type.types.every((t) => isErrorType(t, program));
15
+ if (type.isIntersection()) return type.types.some((t) => isErrorType(t, program));
16
16
  const baseTypes = type.getBaseTypes();
17
17
  if (baseTypes) {
18
- for (const baseType of baseTypes) if (isErrorType(baseType)) return true;
18
+ for (const baseType of baseTypes) if (isErrorType(baseType, program)) return true;
19
19
  }
20
20
  return false;
21
21
  }
@@ -38,10 +38,10 @@ var throwErrors_default = ruleCreator.createRule(typescriptLanguage, {
38
38
  }
39
39
  },
40
40
  setup(context) {
41
- return { visitors: { ThrowStatement(node, { sourceFile, typeChecker }) {
41
+ return { visitors: { ThrowStatement(node, { program, sourceFile, typeChecker }) {
42
42
  const type = getConstrainedTypeAtLocation(node.expression, typeChecker);
43
- if (tsutils.isTypeFlagSet(type, ts$1.TypeFlags.Any | ts$1.TypeFlags.Unknown) || isErrorType(type)) return;
44
- if (type.isUnion() ? type.types.every((t) => tsutils.isTypeFlagSet(t, ts$1.TypeFlags.Undefined)) : tsutils.isTypeFlagSet(type, ts$1.TypeFlags.Undefined)) {
43
+ if (tsutils.isTypeFlagSet(type, TypeFlags.Any | TypeFlags.Unknown) || isErrorType(type, program)) return;
44
+ if (type.isUnion() ? type.types.every((t) => tsutils.isTypeFlagSet(t, TypeFlags.Undefined)) : tsutils.isTypeFlagSet(type, TypeFlags.Undefined)) {
45
45
  context.report({
46
46
  message: "throwUndefined",
47
47
  range: getTSNodeRange(node.expression, sourceFile)
@@ -57,5 +57,3 @@ var throwErrors_default = ruleCreator.createRule(typescriptLanguage, {
57
57
  });
58
58
  //#endregion
59
59
  export { throwErrors_default as default };
60
-
61
- //# sourceMappingURL=throwErrors.js.map
@@ -7,4 +7,3 @@ declare const _default: import("@flint.fyi/core").Rule<{
7
7
  readonly url: string;
8
8
  }, "topLevelAwait", undefined>;
9
9
  export default _default;
10
- //# sourceMappingURL=topLevelAwaits.d.ts.map
@@ -45,5 +45,3 @@ var topLevelAwaits_default = ruleCreator.createRule(typescriptLanguage, {
45
45
  });
46
46
  //#endregion
47
47
  export { topLevelAwaits_default as default };
48
-
49
- //# sourceMappingURL=topLevelAwaits.js.map
@@ -7,4 +7,3 @@ declare const _default: import("@flint.fyi/core").Rule<{
7
7
  readonly url: string;
8
8
  }, "invalidDirective", undefined>;
9
9
  export default _default;
10
- //# sourceMappingURL=tripleSlashReferenceValidity.d.ts.map
@@ -2,7 +2,7 @@ import { ruleCreator } from "./ruleCreator.js";
2
2
  import { typescriptLanguage } from "@flint.fyi/typescript-language";
3
3
  //#region src/rules/tripleSlashReferenceValidity.ts
4
4
  const referenceMatcher = /^\/\/\/\s*<\s*reference(?:\s+([\w-]+\s*=\s*"[^"]*"|[\w-]+\s*=\s*'[^']*'|[^\s/>]+))?\s*\/>/i;
5
- const validDirectives = new Set([
5
+ const validDirectives = /* @__PURE__ */ new Set([
6
6
  "lib",
7
7
  "no-default-lib",
8
8
  "path",
@@ -50,5 +50,3 @@ var tripleSlashReferenceValidity_default = ruleCreator.createRule(typescriptLang
50
50
  });
51
51
  //#endregion
52
52
  export { tripleSlashReferenceValidity_default as default };
53
-
54
- //# sourceMappingURL=tripleSlashReferenceValidity.js.map
@@ -7,4 +7,3 @@ declare const _default: import("@flint.fyi/core").Rule<{
7
7
  readonly url: string;
8
8
  }, "noTripleSlashReference", undefined>;
9
9
  export default _default;
10
- //# sourceMappingURL=tripleSlashReferences.d.ts.map
@@ -30,5 +30,3 @@ var tripleSlashReferences_default = ruleCreator.createRule(typescriptLanguage, {
30
30
  });
31
31
  //#endregion
32
32
  export { tripleSlashReferences_default as default };
33
-
34
- //# sourceMappingURL=tripleSlashReferences.js.map
@@ -19,4 +19,3 @@ declare const _default: import("@flint.fyi/core").Rule<{
19
19
  minimumDescriptionLength: z.ZodDefault<z.ZodNumber>;
20
20
  }>;
21
21
  export default _default;
22
- //# sourceMappingURL=tsComments.d.ts.map
@@ -1,25 +1,25 @@
1
1
  import { ruleCreator } from "./ruleCreator.js";
2
2
  import { typescriptLanguage } from "@flint.fyi/typescript-language";
3
3
  import * as tsutils from "ts-api-utils";
4
- import { z } from "zod/v4";
4
+ import { z as z$1 } from "zod/v4";
5
5
  //#region src/rules/tsComments.ts
6
- const directiveConfigSchema = z.union([
7
- z.literal(true),
8
- z.literal(false),
9
- z.literal("allow-with-description"),
10
- z.object({ descriptionFormat: z.string().describe("A regular expression that the description must match for it to be considered valid.") })
6
+ const directiveConfigSchema = z$1.union([
7
+ z$1.literal(true),
8
+ z$1.literal(false),
9
+ z$1.literal("allow-with-description"),
10
+ z$1.object({ descriptionFormat: z$1.string().describe("A regular expression that the description must match for it to be considered valid.") })
11
11
  ]);
12
12
  const options = {
13
13
  allowTsExpectError: directiveConfigSchema.default(false).describe("Whether to allow `@ts-expect-error` directives, and with which restrictions."),
14
14
  allowTsIgnore: directiveConfigSchema.default(false).describe("Whether to allow `@ts-ignore` directives."),
15
15
  allowTsNocheck: directiveConfigSchema.default(false).describe("Whether to allow `@ts-nocheck` directives."),
16
- minimumDescriptionLength: z.number().int().min(0).default(10).describe("The minimum length required for a description when using 'allow-with-description'.")
16
+ minimumDescriptionLength: z$1.number().int().min(0).default(10).describe("The minimum length required for a description when using 'allow-with-description'.")
17
17
  };
18
18
  const tsDirectiveRegex = /^(?:\/\/\/?|\/\*)\s*@ts-(ignore|expect-error|nocheck|check)(?<description>[\s:*].*)?/i;
19
19
  function createFixedComment(text, fromDirective, toDirective) {
20
20
  return text.replace(new RegExp(`@ts-${fromDirective}`, "i"), `@ts-${toDirective}`);
21
21
  }
22
- const directiveConfigKeys = new Map([
22
+ const directiveConfigKeys = /* @__PURE__ */ new Map([
23
23
  ["ts-expect-error", "allowTsExpectError"],
24
24
  ["ts-ignore", "allowTsIgnore"],
25
25
  ["ts-nocheck", "allowTsNocheck"]
@@ -126,5 +126,3 @@ var tsComments_default = ruleCreator.createRule(typescriptLanguage, {
126
126
  });
127
127
  //#endregion
128
128
  export { tsComments_default as default };
129
-
130
- //# sourceMappingURL=tsComments.js.map
@@ -7,4 +7,3 @@ declare const _default: import("@flint.fyi/core").Rule<{
7
7
  readonly url: string;
8
8
  }, "tslintComment", undefined>;
9
9
  export default _default;
10
- //# sourceMappingURL=tslintComments.d.ts.map
@@ -32,5 +32,3 @@ var tslintComments_default = ruleCreator.createRule(typescriptLanguage, {
32
32
  });
33
33
  //#endregion
34
34
  export { tslintComments_default as default };
35
-
36
- //# sourceMappingURL=tslintComments.js.map
@@ -7,4 +7,3 @@ declare const _default: import("@flint.fyi/core").Rule<{
7
7
  readonly url: string;
8
8
  }, "preferAs", undefined>;
9
9
  export default _default;
10
- //# sourceMappingURL=typeAssertionStyles.d.ts.map
@@ -28,5 +28,3 @@ var typeAssertionStyles_default = ruleCreator.createRule(typescriptLanguage, {
28
28
  });
29
29
  //#endregion
30
30
  export { typeAssertionStyles_default as default };
31
-
32
- //# sourceMappingURL=typeAssertionStyles.js.map
@@ -17,4 +17,3 @@ declare const _default: import("@flint.fyi/core").Rule<{
17
17
  }>>;
18
18
  }>;
19
19
  export default _default;
20
- //# sourceMappingURL=typeImports.d.ts.map
@@ -1,8 +1,7 @@
1
1
  import { ruleCreator } from "./ruleCreator.js";
2
- import { forEachChild } from "./utils/forEachChild.js";
3
- import { getTSNodeRange, typescriptLanguage } from "@flint.fyi/typescript-language";
2
+ import { forEachChild, getTSNodeRange, typescriptLanguage } from "@flint.fyi/typescript-language";
4
3
  import ts, { SyntaxKind } from "typescript";
5
- import { z } from "zod/v4";
4
+ import { z as z$1 } from "zod/v4";
6
5
  //#region src/rules/typeImports.ts
7
6
  function containsDecorator(node) {
8
7
  if (node.kind === SyntaxKind.Decorator) return true;
@@ -166,8 +165,8 @@ var typeImports_default = ruleCreator.createRule(typescriptLanguage, {
166
165
  }
167
166
  },
168
167
  options: {
169
- fixStyle: z.enum(["inline-type-imports", "separate-type-imports"]).default("inline-type-imports"),
170
- prefer: z.enum(["no-type-imports", "type-imports"]).default("type-imports")
168
+ fixStyle: z$1.enum(["inline-type-imports", "separate-type-imports"]).default("inline-type-imports"),
169
+ prefer: z$1.enum(["no-type-imports", "type-imports"]).default("type-imports")
171
170
  },
172
171
  setup(context) {
173
172
  return { visitors: { SourceFile(node, { options, program, sourceFile, typeChecker }) {
@@ -280,5 +279,3 @@ var typeImports_default = ruleCreator.createRule(typescriptLanguage, {
280
279
  });
281
280
  //#endregion
282
281
  export { typeImports_default as default };
283
-
284
- //# sourceMappingURL=typeImports.js.map
@@ -7,4 +7,3 @@ declare const _default: import("@flint.fyi/core").Rule<{
7
7
  readonly url: string;
8
8
  }, "invalidValue", undefined>;
9
9
  export default _default;
10
- //# sourceMappingURL=typeofComparisons.d.ts.map
@@ -1,8 +1,8 @@
1
1
  import { ruleCreator } from "./ruleCreator.js";
2
- import { getTSNodeRange, typescriptLanguage } from "@flint.fyi/typescript-language";
2
+ import { getStaticStringValue, getTSNodeRange, typescriptLanguage } from "@flint.fyi/typescript-language";
3
3
  import { SyntaxKind } from "typescript";
4
4
  //#region src/rules/typeofComparisons.ts
5
- const validTypeofValues = new Set([
5
+ const validTypeofValues = /* @__PURE__ */ new Set([
6
6
  "bigint",
7
7
  "boolean",
8
8
  "function",
@@ -12,9 +12,6 @@ const validTypeofValues = new Set([
12
12
  "symbol",
13
13
  "undefined"
14
14
  ]);
15
- function getStringValue(node) {
16
- return node.kind === SyntaxKind.StringLiteral || node.kind === SyntaxKind.NoSubstitutionTemplateLiteral ? node.text : void 0;
17
- }
18
15
  function getTypeofOperand(node) {
19
16
  return node.kind === SyntaxKind.TypeOfExpression && node.expression;
20
17
  }
@@ -41,8 +38,8 @@ var typeofComparisons_default = ruleCreator.createRule(typescriptLanguage, {
41
38
  if (leftTypeofOperand) comparisonValue = node.right;
42
39
  else if (rightTypeofOperand) comparisonValue = node.left;
43
40
  else return;
44
- const stringValue = getStringValue(comparisonValue);
45
- if (stringValue != null && !validTypeofValues.has(stringValue)) context.report({
41
+ const stringValue = getStaticStringValue(comparisonValue);
42
+ if (stringValue !== void 0 && !validTypeofValues.has(stringValue)) context.report({
46
43
  message: "invalidValue",
47
44
  range: getTSNodeRange(comparisonValue, sourceFile)
48
45
  });
@@ -54,5 +51,3 @@ var typeofComparisons_default = ruleCreator.createRule(typescriptLanguage, {
54
51
  });
55
52
  //#endregion
56
53
  export { typeofComparisons_default as default };
57
-
58
- //# sourceMappingURL=typeofComparisons.js.map
@@ -7,4 +7,3 @@ declare const _default: import("@flint.fyi/core").Rule<{
7
7
  readonly url: string;
8
8
  }, "noUnassigned", undefined>;
9
9
  export default _default;
10
- //# sourceMappingURL=unassignedVariables.d.ts.map
@@ -14,13 +14,10 @@ var unassignedVariables_default = ruleCreator.createRule(typescriptLanguage, {
14
14
  suggestions: ["Assign a value to the variable, either at declaration or before it is used.", "If the variable is meant to be `undefined`, consider making that explicit for clarity."]
15
15
  } },
16
16
  setup(context) {
17
- function hasAssignments(identifier, sourceFile, typeChecker) {
18
- return !!getModifyingReferences(identifier, sourceFile, typeChecker).length;
19
- }
20
- return { visitors: { VariableDeclaration: (node, { sourceFile, typeChecker }) => {
17
+ return { visitors: { VariableDeclaration: (node, { sourceFile }) => {
21
18
  if (node.initializer || node.name.kind !== SyntaxKind.Identifier) return;
22
19
  if (node.parent.kind === SyntaxKind.VariableDeclarationList && !!(node.parent.flags & ts.NodeFlags.Const)) return;
23
- if (!hasAssignments(node.name, sourceFile, typeChecker)) context.report({
20
+ if (!getModifyingReferences(node.name, sourceFile).length) context.report({
24
21
  data: { name: node.name.text },
25
22
  message: "noUnassigned",
26
23
  range: {
@@ -33,5 +30,3 @@ var unassignedVariables_default = ruleCreator.createRule(typescriptLanguage, {
33
30
  });
34
31
  //#endregion
35
32
  export { unassignedVariables_default as default };
36
-
37
- //# sourceMappingURL=unassignedVariables.js.map
@@ -7,4 +7,3 @@ declare const _default: import("@flint.fyi/core").Rule<{
7
7
  readonly url: string;
8
8
  }, "directComparison", undefined>;
9
9
  export default _default;
10
- //# sourceMappingURL=undefinedTypeofChecks.d.ts.map
@@ -37,5 +37,3 @@ var undefinedTypeofChecks_default = ruleCreator.createRule(typescriptLanguage, {
37
37
  });
38
38
  //#endregion
39
39
  export { undefinedTypeofChecks_default as default };
40
-
41
- //# sourceMappingURL=undefinedTypeofChecks.js.map
@@ -7,4 +7,3 @@ declare const _default: import("@flint.fyi/core").Rule<{
7
7
  readonly url: string;
8
8
  }, "undefinedVariable", undefined>;
9
9
  export default _default;
10
- //# sourceMappingURL=undefinedVariables.d.ts.map
@@ -35,5 +35,3 @@ var undefinedVariables_default = ruleCreator.createRule(typescriptLanguage, {
35
35
  });
36
36
  //#endregion
37
37
  export { undefinedVariables_default as default };
38
-
39
- //# sourceMappingURL=undefinedVariables.js.map
@@ -7,4 +7,3 @@ declare const _default: import("@flint.fyi/core").Rule<{
7
7
  readonly url: string;
8
8
  }, "noBOM", undefined>;
9
9
  export default _default;
10
- //# sourceMappingURL=unicodeBOMs.d.ts.map
@@ -35,5 +35,3 @@ var unicodeBOMs_default = ruleCreator.createRule(typescriptLanguage, {
35
35
  });
36
36
  //#endregion
37
37
  export { unicodeBOMs_default as default };
38
-
39
- //# sourceMappingURL=unicodeBOMs.js.map
@@ -7,4 +7,3 @@ declare const _default: import("@flint.fyi/core").Rule<{
7
7
  readonly url: string;
8
8
  }, "unnecessaryBinds" | "arrowBind", undefined>;
9
9
  export default _default;
10
- //# sourceMappingURL=unnecessaryBinds.d.ts.map
@@ -74,5 +74,3 @@ var unnecessaryBinds_default = ruleCreator.createRule(typescriptLanguage, {
74
74
  });
75
75
  //#endregion
76
76
  export { unnecessaryBinds_default as default };
77
-
78
- //# sourceMappingURL=unnecessaryBinds.js.map
@@ -7,4 +7,3 @@ declare const _default: import("@flint.fyi/core").Rule<{
7
7
  readonly url: string;
8
8
  }, "unnecessaryBlock", undefined>;
9
9
  export default _default;
10
- //# sourceMappingURL=unnecessaryBlocks.d.ts.map
@@ -56,5 +56,3 @@ var unnecessaryBlocks_default = ruleCreator.createRule(typescriptLanguage, {
56
56
  });
57
57
  //#endregion
58
58
  export { unnecessaryBlocks_default as default };
59
-
60
- //# sourceMappingURL=unnecessaryBlocks.js.map
@@ -7,4 +7,3 @@ declare const _default: import("@flint.fyi/core").Rule<{
7
7
  readonly url: string;
8
8
  }, "unnecessary", undefined>;
9
9
  export default _default;
10
- //# sourceMappingURL=unnecessaryBooleanCasts.d.ts.map
@@ -54,5 +54,3 @@ var unnecessaryBooleanCasts_default = ruleCreator.createRule(typescriptLanguage,
54
54
  });
55
55
  //#endregion
56
56
  export { unnecessaryBooleanCasts_default as default };
57
-
58
- //# sourceMappingURL=unnecessaryBooleanCasts.js.map
@@ -7,4 +7,3 @@ declare const _default: import("@flint.fyi/core").Rule<{
7
7
  readonly url: string;
8
8
  }, "unnecessaryCatch", undefined>;
9
9
  export default _default;
10
- //# sourceMappingURL=unnecessaryCatches.d.ts.map
@@ -44,5 +44,3 @@ var unnecessaryCatches_default = ruleCreator.createRule(typescriptLanguage, {
44
44
  });
45
45
  //#endregion
46
46
  export { unnecessaryCatches_default as default };
47
-
48
- //# sourceMappingURL=unnecessaryCatches.js.map
@@ -7,4 +7,3 @@ declare const _default: import("@flint.fyi/core").Rule<{
7
7
  readonly url: string;
8
8
  }, "impossibleRange" | "ineffectiveCheck" | "redundantComparison" | "selfComparison", undefined>;
9
9
  export default _default;
10
- //# sourceMappingURL=unnecessaryComparisons.d.ts.map
@@ -1,6 +1,6 @@
1
1
  import { ruleCreator } from "./ruleCreator.js";
2
2
  import { isComparisonOperator } from "./utils/operators.js";
3
- import { getTSNodeRange, hasSameTokens, typescriptLanguage, unwrapParenthesizedNode } from "@flint.fyi/typescript-language";
3
+ import { getStaticNumberValue, getTSNodeRange, hasSameTokens, typescriptLanguage, unwrapParenthesizedNode } from "@flint.fyi/typescript-language";
4
4
  import { SyntaxKind } from "typescript";
5
5
  //#region src/rules/unnecessaryComparisons.ts
6
6
  function checkImpossibleRange(comparisons, sourceFile) {
@@ -113,8 +113,8 @@ function collectComparisonsFromChain(node, operatorKind) {
113
113
  }
114
114
  function extractComparisonInfo(node) {
115
115
  if (!isComparisonOperator(node.operatorToken)) return null;
116
- const leftNumeric = extractNumericLiteral(node.left);
117
- const rightNumeric = extractNumericLiteral(node.right);
116
+ const leftNumeric = getStaticNumberValue(node.left) ?? null;
117
+ const rightNumeric = getStaticNumberValue(node.right) ?? null;
118
118
  if (leftNumeric !== null && rightNumeric !== null || leftNumeric === null && rightNumeric === null) {
119
119
  if (leftNumeric === null && rightNumeric === null) return {
120
120
  direction: getComparisonDirection(node.operatorToken.kind),
@@ -143,13 +143,6 @@ function extractComparisonInfo(node) {
143
143
  variable: node.left
144
144
  };
145
145
  }
146
- function extractNumericLiteral(node) {
147
- const unwrapped = unwrapParenthesizedNode(node);
148
- if (unwrapped.kind === SyntaxKind.NumericLiteral) return Number(unwrapped.text);
149
- if (unwrapped.kind === SyntaxKind.PrefixUnaryExpression && unwrapped.operator === SyntaxKind.MinusToken && unwrapped.operand.kind === SyntaxKind.NumericLiteral) return -Number(unwrapped.operand.text);
150
- if (unwrapped.kind === SyntaxKind.PrefixUnaryExpression && unwrapped.operator === SyntaxKind.PlusToken && unwrapped.operand.kind === SyntaxKind.NumericLiteral) return Number(unwrapped.operand.text);
151
- return null;
152
- }
153
146
  function flipDirection(direction) {
154
147
  switch (direction) {
155
148
  case "lower": return "upper";
@@ -296,5 +289,3 @@ var unnecessaryComparisons_default = ruleCreator.createRule(typescriptLanguage,
296
289
  });
297
290
  //#endregion
298
291
  export { unnecessaryComparisons_default as default };
299
-
300
- //# sourceMappingURL=unnecessaryComparisons.js.map
@@ -7,4 +7,3 @@ declare const _default: import("@flint.fyi/core").Rule<{
7
7
  readonly url: string;
8
8
  }, "unnecessaryConcatenation", undefined>;
9
9
  export default _default;
10
- //# sourceMappingURL=unnecessaryConcatenation.d.ts.map
@@ -24,5 +24,3 @@ var unnecessaryConcatenation_default = ruleCreator.createRule(typescriptLanguage
24
24
  });
25
25
  //#endregion
26
26
  export { unnecessaryConcatenation_default as default };
27
-
28
- //# sourceMappingURL=unnecessaryConcatenation.js.map
@@ -7,4 +7,3 @@ declare const _default: import("@flint.fyi/core").Rule<{
7
7
  readonly url: string;
8
8
  }, "unnecessary", undefined>;
9
9
  export default _default;
10
- //# sourceMappingURL=unnecessaryEscapes.d.ts.map
@@ -2,7 +2,7 @@ import { ruleCreator } from "./ruleCreator.js";
2
2
  import { typescriptLanguage } from "@flint.fyi/typescript-language";
3
3
  import ts from "typescript";
4
4
  //#region src/rules/unnecessaryEscapes.ts
5
- const validEscapes = new Set([
5
+ const validEscapes = /* @__PURE__ */ new Set([
6
6
  "0",
7
7
  "\"",
8
8
  "'",
@@ -130,5 +130,3 @@ var unnecessaryEscapes_default = ruleCreator.createRule(typescriptLanguage, {
130
130
  });
131
131
  //#endregion
132
132
  export { unnecessaryEscapes_default as default };
133
-
134
- //# sourceMappingURL=unnecessaryEscapes.js.map
@@ -7,4 +7,3 @@ declare const _default: import("@flint.fyi/core").Rule<{
7
7
  readonly url: string;
8
8
  }, "constantArguments" | "incorrectClampOrder", undefined>;
9
9
  export default _default;
10
- //# sourceMappingURL=unnecessaryMathClamps.d.ts.map
@@ -1,29 +1,23 @@
1
1
  import { ruleCreator } from "./ruleCreator.js";
2
- import { getTSNodeRange, isGlobalDeclarationOfName, typescriptLanguage, unwrapParenthesizedNode } from "@flint.fyi/typescript-language";
2
+ import { getStaticNumberValue, getTSNodeRange, isGlobalDeclarationOfName, typescriptLanguage, unwrapParenthesizedNode } from "@flint.fyi/typescript-language";
3
3
  import { SyntaxKind } from "typescript";
4
4
  //#region src/rules/unnecessaryMathClamps.ts
5
- function extractNumericLiteral(node) {
6
- const unwrapped = unwrapParenthesizedNode(node);
7
- if (unwrapped.kind === SyntaxKind.NumericLiteral) return Number(unwrapped.text);
8
- if (unwrapped.kind === SyntaxKind.PrefixUnaryExpression && unwrapped.operator === SyntaxKind.MinusToken && unwrapped.operand.kind === SyntaxKind.NumericLiteral) return -Number(unwrapped.operand.text);
9
- if (unwrapped.kind === SyntaxKind.PrefixUnaryExpression && unwrapped.operator === SyntaxKind.PlusToken && unwrapped.operand.kind === SyntaxKind.NumericLiteral) return Number(unwrapped.operand.text);
10
- }
11
- function getMathMethodInfo(node, typeChecker) {
5
+ function getMathMethodInfo(node, typeChecker, program) {
12
6
  const unwrapped = unwrapParenthesizedNode(node);
13
7
  if (unwrapped.kind !== SyntaxKind.CallExpression || unwrapped.questionDotToken || unwrapped.arguments.length < 1 || unwrapped.arguments.some((arg) => arg.kind === SyntaxKind.SpreadElement)) return;
14
- if (isMathMethod(unwrapped.expression, "min", typeChecker)) return {
8
+ if (isMathMethod(unwrapped.expression, "min", typeChecker, program)) return {
15
9
  arguments: Array.from(unwrapped.arguments),
16
10
  method: "min",
17
11
  node: unwrapped
18
12
  };
19
- if (isMathMethod(unwrapped.expression, "max", typeChecker)) return {
13
+ if (isMathMethod(unwrapped.expression, "max", typeChecker, program)) return {
20
14
  arguments: Array.from(unwrapped.arguments),
21
15
  method: "max",
22
16
  node: unwrapped
23
17
  };
24
18
  }
25
- function isMathMethod(node, methodName, typeChecker) {
26
- return node.kind === SyntaxKind.PropertyAccessExpression && !node.questionDotToken && node.name.kind === SyntaxKind.Identifier && node.name.text === methodName && node.expression.kind === SyntaxKind.Identifier && isGlobalDeclarationOfName(node.expression, "Math", typeChecker);
19
+ function isMathMethod(node, methodName, typeChecker, program) {
20
+ return node.kind === SyntaxKind.PropertyAccessExpression && !node.questionDotToken && node.name.kind === SyntaxKind.Identifier && node.name.text === methodName && node.expression.kind === SyntaxKind.Identifier && isGlobalDeclarationOfName(node.expression, "Math", typeChecker, program);
27
21
  }
28
22
  var unnecessaryMathClamps_default = ruleCreator.createRule(typescriptLanguage, {
29
23
  about: {
@@ -44,13 +38,13 @@ var unnecessaryMathClamps_default = ruleCreator.createRule(typescriptLanguage, {
44
38
  }
45
39
  },
46
40
  setup(context) {
47
- return { visitors: { CallExpression: (node, { sourceFile, typeChecker }) => {
48
- const outerInfo = getMathMethodInfo(node, typeChecker);
41
+ return { visitors: { CallExpression: (node, { program, sourceFile, typeChecker }) => {
42
+ const outerInfo = getMathMethodInfo(node, typeChecker, program);
49
43
  if (!outerInfo) return;
50
44
  const numericValues = [];
51
45
  let allNumeric = true;
52
46
  for (const arg of outerInfo.arguments) {
53
- const value = extractNumericLiteral(arg);
47
+ const value = getStaticNumberValue(arg);
54
48
  if (value === void 0) {
55
49
  allNumeric = false;
56
50
  break;
@@ -72,14 +66,14 @@ var unnecessaryMathClamps_default = ruleCreator.createRule(typescriptLanguage, {
72
66
  if (outerInfo.arguments.length === 2) {
73
67
  const firstArgument = outerInfo.arguments[0];
74
68
  const secondArgument = outerInfo.arguments[1];
75
- const innerInfo = getMathMethodInfo(secondArgument, typeChecker);
69
+ const innerInfo = getMathMethodInfo(secondArgument, typeChecker, program);
76
70
  if (innerInfo && innerInfo.method !== outerInfo.method && innerInfo.arguments.length === 2) {
77
71
  const innerFirstArg = innerInfo.arguments[0];
78
72
  const innerSecondArg = innerInfo.arguments[1];
79
73
  if (!innerFirstArg || !innerSecondArg) return;
80
- const outerConstant = extractNumericLiteral(firstArgument);
81
- const innerConstantFirst = extractNumericLiteral(innerFirstArg);
82
- const innerConstantSecond = extractNumericLiteral(innerSecondArg);
74
+ const outerConstant = getStaticNumberValue(firstArgument);
75
+ const innerConstantFirst = getStaticNumberValue(innerFirstArg);
76
+ const innerConstantSecond = getStaticNumberValue(innerSecondArg);
83
77
  if (outerInfo.method === "max" && innerInfo.method === "min" && outerConstant !== void 0 && innerConstantFirst !== void 0 && outerConstant < innerConstantFirst) {
84
78
  context.report({
85
79
  data: {
@@ -110,5 +104,3 @@ var unnecessaryMathClamps_default = ruleCreator.createRule(typescriptLanguage, {
110
104
  });
111
105
  //#endregion
112
106
  export { unnecessaryMathClamps_default as default };
113
-
114
- //# sourceMappingURL=unnecessaryMathClamps.js.map
@@ -7,4 +7,3 @@ declare const _default: import("@flint.fyi/core").Rule<{
7
7
  readonly url: string;
8
8
  }, "danglingDot" | "zeroFraction", undefined>;
9
9
  export default _default;
10
- //# sourceMappingURL=unnecessaryNumericFractions.d.ts.map
@@ -46,5 +46,3 @@ var unnecessaryNumericFractions_default = ruleCreator.createRule(typescriptLangu
46
46
  });
47
47
  //#endregion
48
48
  export { unnecessaryNumericFractions_default as default };
49
-
50
- //# sourceMappingURL=unnecessaryNumericFractions.js.map
@@ -7,4 +7,3 @@ declare const _default: import("@flint.fyi/core").Rule<{
7
7
  readonly url: string;
8
8
  }, "unnecessaryRename", undefined>;
9
9
  export default _default;
10
- //# sourceMappingURL=unnecessaryRenames.d.ts.map
@@ -88,5 +88,3 @@ var unnecessaryRenames_default = ruleCreator.createRule(typescriptLanguage, {
88
88
  });
89
89
  //#endregion
90
90
  export { unnecessaryRenames_default as default };
91
-
92
- //# sourceMappingURL=unnecessaryRenames.js.map
@@ -7,4 +7,3 @@ declare const _default: import("@flint.fyi/core").Rule<{
7
7
  readonly url: string;
8
8
  }, "unnecessaryBooleanTernary" | "unnecessaryLogicalTernary", undefined>;
9
9
  export default _default;
10
- //# sourceMappingURL=unnecessaryTernaries.d.ts.map
@@ -84,5 +84,3 @@ var unnecessaryTernaries_default = ruleCreator.createRule(typescriptLanguage, {
84
84
  });
85
85
  //#endregion
86
86
  export { unnecessaryTernaries_default as default };
87
-
88
- //# sourceMappingURL=unnecessaryTernaries.js.map
@@ -7,4 +7,3 @@ declare const _default: import("@flint.fyi/core").Rule<{
7
7
  readonly url: string;
8
8
  }, "unnecessaryUseStrict", undefined>;
9
9
  export default _default;
10
- //# sourceMappingURL=unnecessaryUseStricts.d.ts.map
@@ -36,5 +36,3 @@ var unnecessaryUseStricts_default = ruleCreator.createRule(typescriptLanguage, {
36
36
  });
37
37
  //#endregion
38
38
  export { unnecessaryUseStricts_default as default };
39
-
40
- //# sourceMappingURL=unnecessaryUseStricts.js.map
@@ -7,4 +7,3 @@ declare const _default: import("@flint.fyi/core").Rule<{
7
7
  readonly url: string;
8
8
  }, "preferNegatingRelation", undefined>;
9
9
  export default _default;
10
- //# sourceMappingURL=unsafeNegations.d.ts.map
@@ -2,7 +2,7 @@ import { ruleCreator } from "./ruleCreator.js";
2
2
  import { typescriptLanguage, unwrapParenthesizedNode } from "@flint.fyi/typescript-language";
3
3
  import { SyntaxKind } from "typescript";
4
4
  //#region src/rules/unsafeNegations.ts
5
- const operatorStrings = new Map([[SyntaxKind.InKeyword, "in"], [SyntaxKind.InstanceOfKeyword, "instanceof"]]);
5
+ const operatorStrings = /* @__PURE__ */ new Map([[SyntaxKind.InKeyword, "in"], [SyntaxKind.InstanceOfKeyword, "instanceof"]]);
6
6
  var unsafeNegations_default = ruleCreator.createRule(typescriptLanguage, {
7
7
  about: {
8
8
  description: "Reports negating the left operand of `in` or `instanceof` relations.",
@@ -34,5 +34,3 @@ var unsafeNegations_default = ruleCreator.createRule(typescriptLanguage, {
34
34
  });
35
35
  //#endregion
36
36
  export { unsafeNegations_default as default };
37
-
38
- //# sourceMappingURL=unsafeNegations.js.map