@flint.fyi/ts 0.20.0 → 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 (663) hide show
  1. package/lib/plugin.d.ts +359 -364
  2. package/lib/plugin.js +0 -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 +0 -1
  74. package/lib/rules/asyncFunctionAwaits.js +0 -2
  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 +0 -2
  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 +0 -2
  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 +0 -2
  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 +0 -2
  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 +7 -9
  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 +0 -2
  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 +0 -1
  506. package/lib/rules/restrictedImports.js +5 -7
  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 +3 -5
  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 +0 -2
  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 +0 -1
  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 +0 -1
  604. package/lib/rules/utils/discriminateAnyType.js +0 -2
  605. package/lib/rules/utils/equalityOperators.d.ts +0 -1
  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 +0 -1
  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 +0 -1
  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 +0 -1
  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 +0 -1
  652. package/lib/type-utils/getSpecifierNames.js +0 -2
  653. package/lib/type-utils/isDeclaredInModuleBlock.d.ts +0 -1
  654. package/lib/type-utils/isDeclaredInModuleBlock.js +0 -2
  655. package/lib/type-utils/isFromFile.d.ts +0 -1
  656. package/lib/type-utils/isFromFile.js +0 -2
  657. package/lib/type-utils/isFromPackage.d.ts +2 -3
  658. package/lib/type-utils/isFromPackage.js +0 -3
  659. package/lib/type-utils/matchesSpecifier.d.ts +2 -3
  660. package/lib/type-utils/matchesSpecifier.js +1 -3
  661. package/lib/type-utils/schemas.d.ts +0 -1
  662. package/lib/type-utils/schemas.js +13 -15
  663. package/package.json +6 -7
@@ -1,15 +1,15 @@
1
1
  import { ruleCreator } from "./ruleCreator.js";
2
2
  import { isBuiltinSymbolLike } from "./utils/isBuiltinSymbolLike.js";
3
3
  import { getTSNodeRange, typescriptLanguage } from "@flint.fyi/typescript-language";
4
- import * as ts$1 from "typescript";
4
+ import { SignatureKind, SymbolFlags, SyntaxKind, TypeFlags, isElementAccessExpression, isIdentifier, isPropertyAccessExpression, isStringLiteral } from "typescript";
5
5
  import * as tsutils from "ts-api-utils";
6
6
  //#region src/rules/impliedEvals.ts
7
- const globalCandidates = new Set([
7
+ const globalCandidates = /* @__PURE__ */ new Set([
8
8
  "global",
9
9
  "globalThis",
10
10
  "window"
11
11
  ]);
12
- const evalLikeFunctions = new Set([
12
+ const evalLikeFunctions = /* @__PURE__ */ new Set([
13
13
  "execScript",
14
14
  "setImmediate",
15
15
  "setInterval",
@@ -17,55 +17,55 @@ const evalLikeFunctions = new Set([
17
17
  ]);
18
18
  function getCalleeName(node) {
19
19
  switch (node.kind) {
20
- case ts$1.SyntaxKind.ElementAccessExpression:
21
- if (ts$1.isIdentifier(node.expression) && globalCandidates.has(node.expression.text) && ts$1.isStringLiteral(node.argumentExpression)) return node.argumentExpression.text;
20
+ case SyntaxKind.ElementAccessExpression:
21
+ if (isIdentifier(node.expression) && globalCandidates.has(node.expression.text) && isStringLiteral(node.argumentExpression)) return node.argumentExpression.text;
22
22
  break;
23
- case ts$1.SyntaxKind.Identifier: return node.text;
24
- case ts$1.SyntaxKind.PropertyAccessExpression:
25
- if (ts$1.isIdentifier(node.expression) && globalCandidates.has(node.expression.text)) return node.name.text;
23
+ case SyntaxKind.Identifier: return node.text;
24
+ case SyntaxKind.PropertyAccessExpression:
25
+ if (isIdentifier(node.expression) && globalCandidates.has(node.expression.text)) return node.name.text;
26
26
  break;
27
27
  }
28
28
  }
29
29
  function isBind(node) {
30
30
  switch (node.kind) {
31
- case ts$1.SyntaxKind.Identifier: return node.text === "bind";
32
- case ts$1.SyntaxKind.PropertyAccessExpression: return isBind(node.name);
31
+ case SyntaxKind.Identifier: return node.text === "bind";
32
+ case SyntaxKind.PropertyAccessExpression: return isBind(node.name);
33
33
  default: return false;
34
34
  }
35
35
  }
36
36
  function isDefinitelyString(type) {
37
- if (tsutils.isTypeFlagSet(type, ts$1.TypeFlags.Any | ts$1.TypeFlags.Unknown | ts$1.TypeFlags.Never)) return false;
37
+ if (tsutils.isTypeFlagSet(type, TypeFlags.Any | TypeFlags.Unknown | TypeFlags.Never)) return false;
38
38
  if (type.isUnion()) return type.types.every(isDefinitelyString);
39
- return tsutils.isTypeFlagSet(type, ts$1.TypeFlags.StringLike);
39
+ return tsutils.isTypeFlagSet(type, TypeFlags.StringLike);
40
40
  }
41
41
  function isFunction$1(node, typeChecker, program) {
42
42
  switch (node.kind) {
43
- case ts$1.SyntaxKind.ArrowFunction:
44
- case ts$1.SyntaxKind.FunctionDeclaration:
45
- case ts$1.SyntaxKind.FunctionExpression: return true;
46
- case ts$1.SyntaxKind.CallExpression:
43
+ case SyntaxKind.ArrowFunction:
44
+ case SyntaxKind.FunctionDeclaration:
45
+ case SyntaxKind.FunctionExpression: return true;
46
+ case SyntaxKind.CallExpression:
47
47
  if (isBind(node.expression)) return true;
48
48
  return !isDefinitelyString(typeChecker.getTypeAtLocation(node)) && isFunctionType(node, typeChecker, program);
49
- case ts$1.SyntaxKind.NoSubstitutionTemplateLiteral:
50
- case ts$1.SyntaxKind.StringLiteral:
51
- case ts$1.SyntaxKind.TemplateExpression: return false;
49
+ case SyntaxKind.NoSubstitutionTemplateLiteral:
50
+ case SyntaxKind.StringLiteral:
51
+ case SyntaxKind.TemplateExpression: return false;
52
52
  default: return !isDefinitelyString(typeChecker.getTypeAtLocation(node)) && isFunctionType(node, typeChecker, program);
53
53
  }
54
54
  }
55
55
  function isFunctionType(node, typeChecker, program) {
56
56
  const type = typeChecker.getTypeAtLocation(node);
57
- if (tsutils.isTypeFlagSet(type, ts$1.TypeFlags.Any | ts$1.TypeFlags.Unknown) || isBuiltinSymbolLike(program, type, "Function")) return true;
57
+ if (tsutils.isTypeFlagSet(type, TypeFlags.Any | TypeFlags.Unknown) || isBuiltinSymbolLike(program, type, "Function")) return true;
58
58
  const symbol = type.getSymbol();
59
- if (symbol && tsutils.isSymbolFlagSet(symbol, ts$1.SymbolFlags.Function | ts$1.SymbolFlags.Method)) return true;
60
- return !!typeChecker.getSignaturesOfType(type, ts$1.SignatureKind.Call).length;
59
+ if (symbol && tsutils.isSymbolFlagSet(symbol, SymbolFlags.Function | SymbolFlags.Method)) return true;
60
+ return !!typeChecker.getSignaturesOfType(type, SignatureKind.Call).length;
61
61
  }
62
- function isReferenceToGlobalFunction(node, typeChecker) {
63
- if (ts$1.isPropertyAccessExpression(node.expression) || ts$1.isElementAccessExpression(node.expression)) return true;
62
+ function isReferenceToGlobalFunction(node, typeChecker, program) {
63
+ if (isPropertyAccessExpression(node.expression) || isElementAccessExpression(node.expression)) return true;
64
64
  const symbol = typeChecker.getSymbolAtLocation(node.expression);
65
65
  if (!symbol) return true;
66
66
  return !!symbol.getDeclarations()?.some((declaration) => {
67
67
  const sourceFile = declaration.getSourceFile();
68
- return sourceFile.hasNoDefaultLib || sourceFile.fileName.includes("node_modules/@types/node/") || /\/lib\.[^/]*\.d\.ts$/.test(sourceFile.fileName);
68
+ return program.isSourceFileDefaultLibrary(sourceFile) || sourceFile.fileName.includes("node_modules/@types/node/") || /\/lib\.[^/]*\.d\.ts$/.test(sourceFile.fileName);
69
69
  });
70
70
  }
71
71
  var impliedEvals_default = ruleCreator.createRule(typescriptLanguage, {
@@ -99,7 +99,7 @@ var impliedEvals_default = ruleCreator.createRule(typescriptLanguage, {
99
99
  const args = node.arguments;
100
100
  if (!args?.length) return;
101
101
  const handler = args[0];
102
- if (!evalLikeFunctions.has(calleeName) || isFunction$1(handler, typeChecker, program) || !isReferenceToGlobalFunction(node, typeChecker)) return;
102
+ if (!evalLikeFunctions.has(calleeName) || isFunction$1(handler, typeChecker, program) || !isReferenceToGlobalFunction(node, typeChecker, program)) return;
103
103
  context.report({
104
104
  data: { name: calleeName },
105
105
  message: "impliedEval",
@@ -126,5 +126,3 @@ var impliedEvals_default = ruleCreator.createRule(typescriptLanguage, {
126
126
  });
127
127
  //#endregion
128
128
  export { impliedEvals_default as default };
129
-
130
- //# sourceMappingURL=impliedEvals.js.map
@@ -7,4 +7,3 @@ declare const _default: import("@flint.fyi/core").Rule<{
7
7
  readonly url: string;
8
8
  }, "noEmptyNamedBlocksOnly" | "noEmptyNamedBlocksWithOther", undefined>;
9
9
  export default _default;
10
- //# sourceMappingURL=importEmptyBlocks.d.ts.map
@@ -49,5 +49,3 @@ var importEmptyBlocks_default = ruleCreator.createRule(typescriptLanguage, {
49
49
  });
50
50
  //#endregion
51
51
  export { importEmptyBlocks_default as default };
52
-
53
- //# sourceMappingURL=importEmptyBlocks.js.map
@@ -7,4 +7,3 @@ declare const _default: import("@flint.fyi/core").Rule<{
7
7
  readonly url: string;
8
8
  }, "useTopLevelQualifier", undefined>;
9
9
  export default _default;
10
- //# sourceMappingURL=importTypeSideEffects.d.ts.map
@@ -27,5 +27,3 @@ var importTypeSideEffects_default = ruleCreator.createRule(typescriptLanguage, {
27
27
  });
28
28
  //#endregion
29
29
  export { importTypeSideEffects_default as default };
30
-
31
- //# sourceMappingURL=importTypeSideEffects.js.map
@@ -13,4 +13,3 @@ declare const _default: import("@flint.fyi/core").Rule<{
13
13
  }>>;
14
14
  }>;
15
15
  export default _default;
16
- //# sourceMappingURL=indexedObjectTypes.d.ts.map
@@ -1,7 +1,7 @@
1
1
  import { ruleCreator } from "./ruleCreator.js";
2
2
  import { getTSNodeRange, isGlobalDeclaration, typescriptLanguage } from "@flint.fyi/typescript-language";
3
3
  import * as ts$1 from "typescript";
4
- import { z } from "zod/v4";
4
+ import { z as z$1 } from "zod/v4";
5
5
  //#region src/rules/indexedObjectTypes.ts
6
6
  function getSingleIndexSignature(members) {
7
7
  if (members.length !== 1) return;
@@ -49,7 +49,7 @@ var indexedObjectTypes_default = ruleCreator.createRule(typescriptLanguage, {
49
49
  suggestions: ["Replace the index signature with `Record<K, V>`."]
50
50
  }
51
51
  },
52
- options: { style: z.enum(["index-signature", "record"]).default("record").describe("Which indexed object type syntax to enforce: 'record' for `Record<K, V>`, or 'index-signature' for `{ [key: K]: V }`.") },
52
+ options: { style: z$1.enum(["index-signature", "record"]).default("record").describe("Which indexed object type syntax to enforce: 'record' for `Record<K, V>`, or 'index-signature' for `{ [key: K]: V }`.") },
53
53
  setup(context) {
54
54
  function checkForRecord(node, members, sourceFile) {
55
55
  const member = getSingleIndexSignature(members);
@@ -68,8 +68,8 @@ var indexedObjectTypes_default = ruleCreator.createRule(typescriptLanguage, {
68
68
  TypeLiteral: (node, { options, sourceFile }) => {
69
69
  if (options.style === "record") checkForRecord(node, node.members, sourceFile);
70
70
  },
71
- TypeReference: (node, { options, sourceFile, typeChecker }) => {
72
- if (options.style === "index-signature" && node.typeName.kind === ts$1.SyntaxKind.Identifier && node.typeName.text === "Record" && isGlobalDeclaration(node.typeName, typeChecker) && node.typeArguments?.length === 2) context.report({
71
+ TypeReference: (node, { options, program, sourceFile, typeChecker }) => {
72
+ if (options.style === "index-signature" && node.typeName.kind === ts$1.SyntaxKind.Identifier && node.typeName.text === "Record" && isGlobalDeclaration(node.typeName, typeChecker, program) && node.typeArguments?.length === 2) context.report({
73
73
  message: "preferIndexSignature",
74
74
  range: getTSNodeRange(node, sourceFile)
75
75
  });
@@ -79,5 +79,3 @@ var indexedObjectTypes_default = ruleCreator.createRule(typescriptLanguage, {
79
79
  });
80
80
  //#endregion
81
81
  export { indexedObjectTypes_default as default };
82
-
83
- //# sourceMappingURL=indexedObjectTypes.js.map
@@ -7,4 +7,3 @@ declare const _default: import("@flint.fyi/core").Rule<{
7
7
  readonly url: string;
8
8
  }, "useArrayIsArray", undefined>;
9
9
  export default _default;
10
- //# sourceMappingURL=instanceOfArrays.d.ts.map
@@ -14,10 +14,10 @@ var instanceOfArrays_default = ruleCreator.createRule(typescriptLanguage, {
14
14
  suggestions: ["Use `Array.isArray(value)` for reliable array detection."]
15
15
  } },
16
16
  setup(context) {
17
- return { visitors: { BinaryExpression: (node, { sourceFile, typeChecker }) => {
17
+ return { visitors: { BinaryExpression: (node, { program, sourceFile, typeChecker }) => {
18
18
  if (node.operatorToken.kind !== SyntaxKind.InstanceOfKeyword) return;
19
19
  const right = unwrapParenthesizedNode(node.right);
20
- if (right.kind !== SyntaxKind.Identifier || right.text !== "Array" || !isGlobalDeclarationOfName(right, "Array", typeChecker)) return;
20
+ if (right.kind !== SyntaxKind.Identifier || right.text !== "Array" || !isGlobalDeclarationOfName(right, "Array", typeChecker, program)) return;
21
21
  context.report({
22
22
  message: "useArrayIsArray",
23
23
  range: getTSNodeRange(node, sourceFile)
@@ -27,5 +27,3 @@ var instanceOfArrays_default = ruleCreator.createRule(typescriptLanguage, {
27
27
  });
28
28
  //#endregion
29
29
  export { instanceOfArrays_default as default };
30
-
31
- //# sourceMappingURL=instanceOfArrays.js.map
@@ -13,4 +13,3 @@ declare const _default: import("@flint.fyi/core").Rule<{
13
13
  skipTemplates: z.ZodDefault<z.ZodBoolean>;
14
14
  }>;
15
15
  export default _default;
16
- //# sourceMappingURL=irregularWhitespaces.d.ts.map
@@ -1,7 +1,7 @@
1
1
  import { ruleCreator } from "./ruleCreator.js";
2
2
  import { typescriptLanguage } from "@flint.fyi/typescript-language";
3
3
  import * as ts$1 from "typescript";
4
- import { z } from "zod/v4";
4
+ import { z as z$1 } from "zod/v4";
5
5
  //#region src/rules/irregularWhitespaces.ts
6
6
  function findIrregularWhitespaces(text) {
7
7
  const irregularWhitespacePattern = /[\f\v\x85\ufeff\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u200b\u202f\u205f\u3000\u2028\u2029]/gu;
@@ -32,10 +32,10 @@ var irregularWhitespaces_default = ruleCreator.createRule(typescriptLanguage, {
32
32
  suggestions: ["Replace irregular whitespace with regular spaces or tabs.", "Remove the whitespace if it is unnecessary."]
33
33
  } },
34
34
  options: {
35
- skipComments: z.boolean().default(false).describe("Whether to allow irregular whitespace in comments."),
36
- skipJSXText: z.boolean().default(false).describe("Whether to allow irregular whitespace in JSX text content."),
37
- skipRegularExpressions: z.boolean().default(false).describe("Whether to allow irregular whitespace in regular expression literals."),
38
- skipTemplates: z.boolean().default(false).describe("Whether to allow irregular whitespace in template literals.")
35
+ skipComments: z$1.boolean().default(false).describe("Whether to allow irregular whitespace in comments."),
36
+ skipJSXText: z$1.boolean().default(false).describe("Whether to allow irregular whitespace in JSX text content."),
37
+ skipRegularExpressions: z$1.boolean().default(false).describe("Whether to allow irregular whitespace in regular expression literals."),
38
+ skipTemplates: z$1.boolean().default(false).describe("Whether to allow irregular whitespace in template literals.")
39
39
  },
40
40
  setup(context) {
41
41
  return { visitors: { SourceFile: (node, { options, sourceFile }) => {
@@ -93,5 +93,3 @@ var irregularWhitespaces_default = ruleCreator.createRule(typescriptLanguage, {
93
93
  });
94
94
  //#endregion
95
95
  export { irregularWhitespaces_default as default };
96
-
97
- //# sourceMappingURL=irregularWhitespaces.js.map
@@ -7,4 +7,3 @@ declare const _default: import("@flint.fyi/core").Rule<{
7
7
  readonly url: string;
8
8
  }, "useIsNaN", undefined>;
9
9
  export default _default;
10
- //# sourceMappingURL=isNaNComparisons.d.ts.map
@@ -2,7 +2,7 @@ import { ruleCreator } from "./ruleCreator.js";
2
2
  import { getTSNodeRange, isGlobalDeclarationOfName, typescriptLanguage, unwrapParenthesizedNode } from "@flint.fyi/typescript-language";
3
3
  import { SyntaxKind } from "typescript";
4
4
  //#region src/rules/isNaNComparisons.ts
5
- const comparisonOperators = new Set([
5
+ const comparisonOperators = /* @__PURE__ */ new Set([
6
6
  SyntaxKind.EqualsEqualsEqualsToken,
7
7
  SyntaxKind.EqualsEqualsToken,
8
8
  SyntaxKind.ExclamationEqualsEqualsToken,
@@ -24,20 +24,18 @@ var isNaNComparisons_default = ruleCreator.createRule(typescriptLanguage, {
24
24
  suggestions: ["Use `Number.isNaN(value)` for reliable NaN detection."]
25
25
  } },
26
26
  setup(context) {
27
- return { visitors: { BinaryExpression: (node, { sourceFile, typeChecker }) => {
27
+ return { visitors: { BinaryExpression: (node, { program, sourceFile, typeChecker }) => {
28
28
  if (!comparisonOperators.has(node.operatorToken.kind)) return;
29
- if (isNaNIdentifier(node.left, typeChecker) || isNaNIdentifier(node.right, typeChecker)) context.report({
29
+ if (isNaNIdentifier(node.left, typeChecker, program) || isNaNIdentifier(node.right, typeChecker, program)) context.report({
30
30
  message: "useIsNaN",
31
31
  range: getTSNodeRange(node, sourceFile)
32
32
  });
33
33
  } } };
34
- function isNaNIdentifier(node, typeChecker) {
34
+ function isNaNIdentifier(node, typeChecker, program) {
35
35
  const unwrapped = unwrapParenthesizedNode(node);
36
- return unwrapped.kind === SyntaxKind.Identifier && unwrapped.text === "NaN" && isGlobalDeclarationOfName(unwrapped, "NaN", typeChecker);
36
+ return unwrapped.kind === SyntaxKind.Identifier && unwrapped.text === "NaN" && isGlobalDeclarationOfName(unwrapped, "NaN", typeChecker, program);
37
37
  }
38
38
  }
39
39
  });
40
40
  //#endregion
41
41
  export { isNaNComparisons_default as default };
42
-
43
- //# sourceMappingURL=isNaNComparisons.js.map
@@ -7,4 +7,3 @@ declare const _default: import("@flint.fyi/core").Rule<{
7
7
  readonly url: string;
8
8
  }, "preferLiteral", undefined>;
9
9
  export default _default;
10
- //# sourceMappingURL=literalConstructorWrappers.d.ts.map
@@ -1,27 +1,27 @@
1
1
  import { ruleCreator } from "./ruleCreator.js";
2
2
  import { isGlobalDeclarationOfName, typescriptLanguage } from "@flint.fyi/typescript-language";
3
- import * as ts$1 from "typescript";
3
+ import { SyntaxKind, isBigIntLiteral, isIdentifier, isLiteralExpression, isNumericLiteral, isStringLiteral } from "typescript";
4
4
  //#region src/rules/literalConstructorWrappers.ts
5
- const literalConstructors = new Set([
5
+ const literalConstructors = /* @__PURE__ */ new Set([
6
6
  "BigInt",
7
7
  "Boolean",
8
8
  "Number",
9
9
  "String"
10
10
  ]);
11
11
  function isBooleanLiteral(node) {
12
- return node.kind === ts$1.SyntaxKind.TrueKeyword || node.kind === ts$1.SyntaxKind.FalseKeyword;
12
+ return node.kind === SyntaxKind.TrueKeyword || node.kind === SyntaxKind.FalseKeyword;
13
13
  }
14
14
  function isLiteralArgument(node, constructorName) {
15
15
  switch (constructorName) {
16
16
  case "BigInt": return isNumericLiteralForBigInt(node);
17
- case "Boolean": return ts$1.isLiteralExpression(node) || isBooleanLiteral(node);
18
- case "Number": return ts$1.isStringLiteral(node) && isValidNumericString(node.text);
19
- case "String": return ts$1.isNumericLiteral(node) || isBooleanLiteral(node) || ts$1.isBigIntLiteral(node);
17
+ case "Boolean": return isLiteralExpression(node) || isBooleanLiteral(node);
18
+ case "Number": return isStringLiteral(node) && isValidNumericString(node.text);
19
+ case "String": return isNumericLiteral(node) || isBooleanLiteral(node) || isBigIntLiteral(node);
20
20
  default: return false;
21
21
  }
22
22
  }
23
23
  function isNumericLiteralForBigInt(node) {
24
- return node.kind === ts$1.SyntaxKind.NumericLiteral && /^-?\d+$/.test(node.text);
24
+ return node.kind === SyntaxKind.NumericLiteral && /^-?\d+$/.test(node.text);
25
25
  }
26
26
  function isValidNumericString(value) {
27
27
  const trimmed = value.trim();
@@ -41,10 +41,10 @@ var literalConstructorWrappers_default = ruleCreator.createRule(typescriptLangua
41
41
  suggestions: ["Use literal syntax instead of `{{ name }}()`."]
42
42
  } },
43
43
  setup(context) {
44
- return { visitors: { CallExpression: (node, { sourceFile, typeChecker }) => {
45
- if (!ts$1.isIdentifier(node.expression)) return;
44
+ return { visitors: { CallExpression: (node, { program, sourceFile, typeChecker }) => {
45
+ if (!isIdentifier(node.expression)) return;
46
46
  const name = node.expression.text;
47
- if (!literalConstructors.has(name) || node.arguments.length !== 1 || !isGlobalDeclarationOfName(node.expression, name, typeChecker)) return;
47
+ if (!literalConstructors.has(name) || node.arguments.length !== 1 || !isGlobalDeclarationOfName(node.expression, name, typeChecker, program)) return;
48
48
  const argument = node.arguments[0];
49
49
  if (!isLiteralArgument(argument, name)) return;
50
50
  context.report({
@@ -60,5 +60,3 @@ var literalConstructorWrappers_default = ruleCreator.createRule(typescriptLangua
60
60
  });
61
61
  //#endregion
62
62
  export { literalConstructorWrappers_default as default };
63
-
64
- //# sourceMappingURL=literalConstructorWrappers.js.map
@@ -7,4 +7,3 @@ declare const _default: import("@flint.fyi/core").Rule<{
7
7
  readonly url: string;
8
8
  }, "preferModernMath", undefined>;
9
9
  export default _default;
10
- //# sourceMappingURL=mathMethods.d.ts.map
@@ -3,24 +3,24 @@ import { skipParentheses } from "./utils/skipParentheses.js";
3
3
  import { getTSNodeRange, hasSameTokens, isGlobalDeclarationOfName, typescriptLanguage } from "@flint.fyi/typescript-language";
4
4
  import { SyntaxKind } from "typescript";
5
5
  //#region src/rules/mathMethods.ts
6
- function checkLogDivideConstant(node, typeChecker, constantName, replacementMethod) {
6
+ function checkLogDivideConstant(node, typeChecker, program, constantName, replacementMethod) {
7
7
  if (node.operatorToken.kind !== SyntaxKind.SlashToken) return;
8
8
  const left = skipParentheses(node.left);
9
9
  const right = skipParentheses(node.right);
10
- if (getMathMethodArgument(left, "log", typeChecker) && isMathProperty(right, constantName, typeChecker)) return {
10
+ if (getMathMethodArgument(left, "log", typeChecker, program) && isMathProperty(right, constantName, typeChecker, program)) return {
11
11
  description: `Math.log(…) / Math.${constantName}`,
12
12
  replacement: `Math.${replacementMethod}(…)`
13
13
  };
14
14
  }
15
- function checkLogTimesConstant(node, typeChecker, constantName, replacementMethod) {
15
+ function checkLogTimesConstant(node, typeChecker, program, constantName, replacementMethod) {
16
16
  if (node.operatorToken.kind !== SyntaxKind.AsteriskToken) return;
17
17
  const left = skipParentheses(node.left);
18
18
  const right = skipParentheses(node.right);
19
- if (getMathMethodArgument(left, "log", typeChecker) && isMathProperty(right, constantName, typeChecker)) return {
19
+ if (getMathMethodArgument(left, "log", typeChecker, program) && isMathProperty(right, constantName, typeChecker, program)) return {
20
20
  description: `Math.log(…) * Math.${constantName}`,
21
21
  replacement: `Math.${replacementMethod}(…)`
22
22
  };
23
- if (isMathProperty(left, constantName, typeChecker) && getMathMethodArgument(right, "log", typeChecker)) return {
23
+ if (isMathProperty(left, constantName, typeChecker, program) && getMathMethodArgument(right, "log", typeChecker, program)) return {
24
24
  description: `Math.${constantName} * Math.log(…)`,
25
25
  replacement: `Math.${replacementMethod}(…)`
26
26
  };
@@ -30,14 +30,14 @@ function flattenPlusExpression(node) {
30
30
  if (unwrapped.kind === SyntaxKind.BinaryExpression && unwrapped.operatorToken.kind === SyntaxKind.PlusToken) return [...flattenPlusExpression(unwrapped.left), ...flattenPlusExpression(unwrapped.right)];
31
31
  return [unwrapped];
32
32
  }
33
- function getMathMethodArgument(node, methodName, typeChecker) {
33
+ function getMathMethodArgument(node, methodName, typeChecker, program) {
34
34
  if (node.kind !== SyntaxKind.CallExpression || node.questionDotToken || node.arguments.length !== 1) return false;
35
35
  const argument = node.arguments[0];
36
- if (argument.kind === SyntaxKind.SpreadElement || !isMathProperty(node.expression, methodName, typeChecker)) return;
36
+ if (argument.kind === SyntaxKind.SpreadElement || !isMathProperty(node.expression, methodName, typeChecker, program)) return;
37
37
  return argument;
38
38
  }
39
- function isMathProperty(node, propertyName, typeChecker) {
40
- return node.kind === SyntaxKind.PropertyAccessExpression && !node.questionDotToken && node.name.kind === SyntaxKind.Identifier && node.name.text === propertyName && node.expression.kind === SyntaxKind.Identifier && isGlobalDeclarationOfName(node.expression, "Math", typeChecker);
39
+ function isMathProperty(node, propertyName, typeChecker, program) {
40
+ return node.kind === SyntaxKind.PropertyAccessExpression && !node.questionDotToken && node.name.kind === SyntaxKind.Identifier && node.name.text === propertyName && node.expression.kind === SyntaxKind.Identifier && isGlobalDeclarationOfName(node.expression, "Math", typeChecker, program);
41
41
  }
42
42
  function isPowerTwoExpression(node, sourceFile) {
43
43
  const unwrapped = skipParentheses(node);
@@ -62,7 +62,7 @@ var mathMethods_default = ruleCreator.createRule(typescriptLanguage, {
62
62
  } },
63
63
  setup(context) {
64
64
  return { visitors: {
65
- BinaryExpression: (node, { sourceFile, typeChecker }) => {
65
+ BinaryExpression: (node, { program, sourceFile, typeChecker }) => {
66
66
  for (const { constantName, replacementMethod } of [{
67
67
  constantName: "LOG10E",
68
68
  replacementMethod: "log10"
@@ -70,7 +70,7 @@ var mathMethods_default = ruleCreator.createRule(typescriptLanguage, {
70
70
  constantName: "LOG2E",
71
71
  replacementMethod: "log2"
72
72
  }]) {
73
- const match = checkLogTimesConstant(node, typeChecker, constantName, replacementMethod);
73
+ const match = checkLogTimesConstant(node, typeChecker, program, constantName, replacementMethod);
74
74
  if (match) {
75
75
  context.report({
76
76
  data: {
@@ -90,7 +90,7 @@ var mathMethods_default = ruleCreator.createRule(typescriptLanguage, {
90
90
  constantName: "LN2",
91
91
  replacementMethod: "log2"
92
92
  }]) {
93
- const match = checkLogDivideConstant(node, typeChecker, constantName, replacementMethod);
93
+ const match = checkLogDivideConstant(node, typeChecker, program, constantName, replacementMethod);
94
94
  if (match) {
95
95
  context.report({
96
96
  data: {
@@ -104,8 +104,8 @@ var mathMethods_default = ruleCreator.createRule(typescriptLanguage, {
104
104
  }
105
105
  }
106
106
  },
107
- CallExpression: (node, { sourceFile, typeChecker }) => {
108
- const argument = getMathMethodArgument(node, "sqrt", typeChecker);
107
+ CallExpression: (node, { program, sourceFile, typeChecker }) => {
108
+ const argument = getMathMethodArgument(node, "sqrt", typeChecker, program);
109
109
  if (!argument) return;
110
110
  const expressions = flattenPlusExpression(argument);
111
111
  if (!expressions.every((expr) => isPowerTwoExpression(expr, sourceFile))) return;
@@ -124,5 +124,3 @@ var mathMethods_default = ruleCreator.createRule(typescriptLanguage, {
124
124
  });
125
125
  //#endregion
126
126
  export { mathMethods_default as default };
127
-
128
- //# sourceMappingURL=mathMethods.js.map
@@ -7,4 +7,3 @@ declare const _default: import("@flint.fyi/core").Rule<{
7
7
  readonly url: string;
8
8
  }, "meaninglessVoid", undefined>;
9
9
  export default _default;
10
- //# sourceMappingURL=meaninglessVoidOperators.d.ts.map
@@ -35,5 +35,3 @@ var meaninglessVoidOperators_default = ruleCreator.createRule(typescriptLanguage
35
35
  });
36
36
  //#endregion
37
37
  export { meaninglessVoidOperators_default as default };
38
-
39
- //# sourceMappingURL=meaninglessVoidOperators.js.map
@@ -7,4 +7,3 @@ declare const _default: import("@flint.fyi/core").Rule<{
7
7
  readonly url: string;
8
8
  }, "voidExpressionArrow" | "voidExpressionReturn" | "voidExpressionValue", undefined>;
9
9
  export default _default;
10
- //# sourceMappingURL=misleadingVoidExpressions.d.ts.map
@@ -124,5 +124,3 @@ var misleadingVoidExpressions_default = ruleCreator.createRule(typescriptLanguag
124
124
  });
125
125
  //#endregion
126
126
  export { misleadingVoidExpressions_default as default };
127
-
128
- //# sourceMappingURL=misleadingVoidExpressions.js.map
@@ -7,4 +7,3 @@ declare const _default: import("@flint.fyi/core").Rule<{
7
7
  readonly url: string;
8
8
  }, "emptyExportSpecifiers" | "emptyImportSpecifiers", undefined>;
9
9
  export default _default;
10
- //# sourceMappingURL=moduleSpecifierLists.d.ts.map
@@ -88,5 +88,3 @@ var moduleSpecifierLists_default = ruleCreator.createRule(typescriptLanguage, {
88
88
  });
89
89
  //#endregion
90
90
  export { moduleSpecifierLists_default as default };
91
-
92
- //# sourceMappingURL=moduleSpecifierLists.js.map
@@ -7,4 +7,3 @@ declare const _default: import("@flint.fyi/core").Rule<{
7
7
  readonly url: string;
8
8
  }, "ambiguity", undefined>;
9
9
  export default _default;
10
- //# sourceMappingURL=multilineAmbiguities.d.ts.map
@@ -60,5 +60,3 @@ function getLineEndPosition(lineNumber, sourceFile) {
60
60
  }
61
61
  //#endregion
62
62
  export { multilineAmbiguities_default as default };
63
-
64
- //# sourceMappingURL=multilineAmbiguities.js.map
@@ -7,4 +7,3 @@ declare const _default: import("@flint.fyi/core").Rule<{
7
7
  readonly url: string;
8
8
  }, "anonymousClass" | "anonymousFunction", undefined>;
9
9
  export default _default;
10
- //# sourceMappingURL=namedDefaultExports.d.ts.map
@@ -56,5 +56,3 @@ var namedDefaultExports_default = ruleCreator.createRule(typescriptLanguage, {
56
56
  });
57
57
  //#endregion
58
58
  export { namedDefaultExports_default as default };
59
-
60
- //# sourceMappingURL=namedDefaultExports.js.map
@@ -11,4 +11,3 @@ declare const _default: import("@flint.fyi/core").Rule<{
11
11
  allowDefinitionFiles: z.ZodDefault<z.ZodBoolean>;
12
12
  }>;
13
13
  export default _default;
14
- //# sourceMappingURL=namespaceDeclarations.d.ts.map
@@ -2,7 +2,7 @@ import { ruleCreator } from "./ruleCreator.js";
2
2
  import { getTSNodeRange, typescriptLanguage } from "@flint.fyi/typescript-language";
3
3
  import { SyntaxKind } from "typescript";
4
4
  import * as tsutils from "ts-api-utils";
5
- import { z } from "zod/v4";
5
+ import { z as z$1 } from "zod/v4";
6
6
  //#region src/rules/namespaceDeclarations.ts
7
7
  var namespaceDeclarations_default = ruleCreator.createRule(typescriptLanguage, {
8
8
  about: {
@@ -16,8 +16,8 @@ var namespaceDeclarations_default = ruleCreator.createRule(typescriptLanguage, {
16
16
  suggestions: ["Modern codebases generally use `export` and `import` statements to define and use ECMAScript modules instead."]
17
17
  } },
18
18
  options: {
19
- allowDeclarations: z.boolean().default(false).describe("Whether to allow namespaces declared with the `declare` keyword."),
20
- allowDefinitionFiles: z.boolean().default(false).describe("Whether to allow namespaces in `.d.ts` and other definition files.")
19
+ allowDeclarations: z$1.boolean().default(false).describe("Whether to allow namespaces declared with the `declare` keyword."),
20
+ allowDefinitionFiles: z$1.boolean().default(false).describe("Whether to allow namespaces in `.d.ts` and other definition files.")
21
21
  },
22
22
  setup(context) {
23
23
  return { visitors: { ModuleDeclaration: (node, { options: { allowDeclarations, allowDefinitionFiles }, sourceFile }) => {
@@ -33,5 +33,3 @@ var namespaceDeclarations_default = ruleCreator.createRule(typescriptLanguage, {
33
33
  });
34
34
  //#endregion
35
35
  export { namespaceDeclarations_default as default };
36
-
37
- //# sourceMappingURL=namespaceDeclarations.js.map
@@ -7,4 +7,3 @@ declare const _default: import("@flint.fyi/core").Rule<{
7
7
  readonly url: string;
8
8
  }, "implicitExports", undefined>;
9
9
  export default _default;
10
- //# sourceMappingURL=namespaceImplicitAmbientImports.d.ts.map
@@ -36,5 +36,3 @@ var namespaceImplicitAmbientImports_default = ruleCreator.createRule(typescriptL
36
36
  });
37
37
  //#endregion
38
38
  export { namespaceImplicitAmbientImports_default as default };
39
-
40
- //# sourceMappingURL=namespaceImplicitAmbientImports.js.map
@@ -7,4 +7,3 @@ declare const _default: import("@flint.fyi/core").Rule<{
7
7
  readonly url: string;
8
8
  }, "preferNamespace", undefined>;
9
9
  export default _default;
10
- //# sourceMappingURL=namespaceKeywords.d.ts.map
@@ -36,5 +36,3 @@ var namespaceKeywords_default = ruleCreator.createRule(typescriptLanguage, {
36
36
  });
37
37
  //#endregion
38
38
  export { namespaceKeywords_default as default };
39
-
40
- //# sourceMappingURL=namespaceKeywords.js.map
@@ -7,4 +7,3 @@ declare const _default: import("@flint.fyi/core").Rule<{
7
7
  readonly url: string;
8
8
  }, "noExtendNative", undefined>;
9
9
  export default _default;
10
- //# sourceMappingURL=nativeObjectExtensions.d.ts.map
@@ -2,7 +2,7 @@ import { ruleCreator } from "./ruleCreator.js";
2
2
  import { getTSNodeRange, isGlobalDeclarationOfName, typescriptLanguage } from "@flint.fyi/typescript-language";
3
3
  import * as ts$1 from "typescript";
4
4
  //#region src/rules/nativeObjectExtensions.ts
5
- const nativeConstructors = new Set([
5
+ const nativeConstructors = /* @__PURE__ */ new Set([
6
6
  "AggregateError",
7
7
  "Array",
8
8
  "ArrayBuffer",
@@ -70,17 +70,17 @@ var nativeObjectExtensions_default = ruleCreator.createRule(typescriptLanguage,
70
70
  suggestions: ["Create a wrapper class or utility function instead of extending the prototype.", "Use composition rather than modifying the prototype chain."]
71
71
  } },
72
72
  setup(context) {
73
- function checkNode(node, { sourceFile, typeChecker }) {
73
+ function checkNode(node, { program, sourceFile, typeChecker }) {
74
74
  if (!isPrototypeAccess(node)) return;
75
75
  const objectIdentifier = getPrototypeObject(node);
76
76
  if (!objectIdentifier) return;
77
77
  const name = objectIdentifier.text;
78
- if (!nativeConstructors.has(name) || !isGlobalDeclarationOfName(objectIdentifier, name, typeChecker)) return;
78
+ if (!nativeConstructors.has(name) || !isGlobalDeclarationOfName(objectIdentifier, name, typeChecker, program)) return;
79
79
  switch (node.parent.kind) {
80
80
  case ts$1.SyntaxKind.CallExpression: {
81
81
  if (node.parent.arguments[0] !== node) break;
82
82
  const callee = node.parent.expression;
83
- if (!ts$1.isPropertyAccessExpression(callee) || !ts$1.isIdentifier(callee.expression) || callee.expression.text !== "Object" || callee.name.text !== "defineProperty" && callee.name.text !== "defineProperties" || !isGlobalDeclarationOfName(callee.expression, "Object", typeChecker)) break;
83
+ if (!ts$1.isPropertyAccessExpression(callee) || !ts$1.isIdentifier(callee.expression) || callee.expression.text !== "Object" || callee.name.text !== "defineProperty" && callee.name.text !== "defineProperties" || !isGlobalDeclarationOfName(callee.expression, "Object", typeChecker, program)) break;
84
84
  context.report({
85
85
  data: { name },
86
86
  message: "noExtendNative",
@@ -110,5 +110,3 @@ var nativeObjectExtensions_default = ruleCreator.createRule(typescriptLanguage,
110
110
  });
111
111
  //#endregion
112
112
  export { nativeObjectExtensions_default as default };
113
-
114
- //# sourceMappingURL=nativeObjectExtensions.js.map
@@ -7,4 +7,3 @@ declare const _default: import("@flint.fyi/core").Rule<{
7
7
  readonly url: string;
8
8
  }, "preferNegativeIndex", undefined>;
9
9
  export default _default;
10
- //# sourceMappingURL=negativeIndexLengthMethods.d.ts.map