@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
  }, "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
@@ -4,7 +4,7 @@ import { isTypeRecursive } from "./utils/isTypeRecursive.js";
4
4
  import { getTSNodeRange, hasSameTokens, typescriptLanguage, unwrapParenthesizedNode } from "@flint.fyi/typescript-language";
5
5
  import * as ts$1 from "typescript";
6
6
  //#region src/rules/negativeIndexLengthMethods.ts
7
- const typedArrayNames = new Set([
7
+ const typedArrayNames = /* @__PURE__ */ new Set([
8
8
  "BigInt64Array",
9
9
  "BigUint64Array",
10
10
  "Float32Array",
@@ -17,10 +17,10 @@ const typedArrayNames = new Set([
17
17
  "Uint16Array",
18
18
  "Uint32Array"
19
19
  ]);
20
- const methodConfigurations = new Map([
20
+ const methodConfigurations = /* @__PURE__ */ new Map([
21
21
  ["at", {
22
22
  argumentIndexes: [0],
23
- supportedTypes: new Set([
23
+ supportedTypes: /* @__PURE__ */ new Set([
24
24
  "Array",
25
25
  "String",
26
26
  ...typedArrayNames
@@ -28,7 +28,7 @@ const methodConfigurations = new Map([
28
28
  }],
29
29
  ["slice", {
30
30
  argumentIndexes: [0, 1],
31
- supportedTypes: new Set([
31
+ supportedTypes: /* @__PURE__ */ new Set([
32
32
  "Array",
33
33
  "String",
34
34
  ...typedArrayNames
@@ -36,7 +36,7 @@ const methodConfigurations = new Map([
36
36
  }],
37
37
  ["splice", {
38
38
  argumentIndexes: [0],
39
- supportedTypes: new Set(["Array"])
39
+ supportedTypes: /* @__PURE__ */ new Set(["Array"])
40
40
  }],
41
41
  ["subarray", {
42
42
  argumentIndexes: [0, 1],
@@ -44,11 +44,11 @@ const methodConfigurations = new Map([
44
44
  }],
45
45
  ["toSpliced", {
46
46
  argumentIndexes: [0],
47
- supportedTypes: new Set(["Array"])
47
+ supportedTypes: /* @__PURE__ */ new Set(["Array"])
48
48
  }],
49
49
  ["with", {
50
50
  argumentIndexes: [0],
51
- supportedTypes: new Set(["Array", ...typedArrayNames])
51
+ supportedTypes: /* @__PURE__ */ new Set(["Array", ...typedArrayNames])
52
52
  }]
53
53
  ]);
54
54
  function getNegativeIndexLengthNode(node, target, sourceFile) {
@@ -176,5 +176,3 @@ var negativeIndexLengthMethods_default = ruleCreator.createRule(typescriptLangua
176
176
  });
177
177
  //#endregion
178
178
  export { negativeIndexLengthMethods_default as default };
179
-
180
- //# sourceMappingURL=negativeIndexLengthMethods.js.map
@@ -7,4 +7,3 @@ declare const _default: import("@flint.fyi/core").Rule<{
7
7
  readonly url: string;
8
8
  }, "unexpectedNegativeZeroComparison", undefined>;
9
9
  export default _default;
10
- //# sourceMappingURL=negativeZeroComparisons.d.ts.map
@@ -44,5 +44,3 @@ var negativeZeroComparisons_default = ruleCreator.createRule(typescriptLanguage,
44
44
  });
45
45
  //#endregion
46
46
  export { negativeZeroComparisons_default as default };
47
-
48
- //# sourceMappingURL=negativeZeroComparisons.js.map
@@ -7,4 +7,3 @@ declare const _default: import("@flint.fyi/core").Rule<{
7
7
  readonly url: string;
8
8
  }, "lonelyIfInElse" | "lonelyIfInIf", undefined>;
9
9
  export default _default;
10
- //# sourceMappingURL=nestedStandaloneIfs.d.ts.map
@@ -9,7 +9,7 @@ function hasCommentsInRange(sourceFile, start, end) {
9
9
  function isIfWithoutElse(node) {
10
10
  return ts.isIfStatement(node) && node.elseStatement === void 0;
11
11
  }
12
- const lowerPrecedenceThanLogicalAnd = new Set([
12
+ const lowerPrecedenceThanLogicalAnd = /* @__PURE__ */ new Set([
13
13
  SyntaxKind.BinaryExpression,
14
14
  SyntaxKind.ConditionalExpression,
15
15
  SyntaxKind.YieldExpression
@@ -101,5 +101,3 @@ var nestedStandaloneIfs_default = ruleCreator.createRule(typescriptLanguage, {
101
101
  });
102
102
  //#endregion
103
103
  export { nestedStandaloneIfs_default as default };
104
-
105
- //# sourceMappingURL=nestedStandaloneIfs.js.map
@@ -7,4 +7,3 @@ declare const _default: import("@flint.fyi/core").Rule<{
7
7
  readonly url: string;
8
8
  }, "classMethodNamedNew" | "interfaceConstructSignature" | "interfaceMethodNamedConstructor", undefined>;
9
9
  export default _default;
10
- //# sourceMappingURL=newDefinitions.d.ts.map
@@ -80,5 +80,3 @@ var newDefinitions_default = ruleCreator.createRule(typescriptLanguage, {
80
80
  });
81
81
  //#endregion
82
82
  export { newDefinitions_default as default };
83
-
84
- //# sourceMappingURL=newDefinitions.js.map
@@ -7,4 +7,3 @@ declare const _default: import("@flint.fyi/core").Rule<{
7
7
  readonly url: string;
8
8
  }, "noStandaloneNew", undefined>;
9
9
  export default _default;
10
- //# sourceMappingURL=newExpressions.d.ts.map
@@ -34,5 +34,3 @@ var newExpressions_default = ruleCreator.createRule(typescriptLanguage, {
34
34
  });
35
35
  //#endregion
36
36
  export { newExpressions_default as default };
37
-
38
- //# sourceMappingURL=newExpressions.js.map
@@ -7,4 +7,3 @@ declare const _default: import("@flint.fyi/core").Rule<{
7
7
  readonly url: string;
8
8
  }, "noNewNonConstructor", undefined>;
9
9
  export default _default;
10
- //# sourceMappingURL=newNativeNonConstructors.d.ts.map
@@ -14,10 +14,10 @@ var newNativeNonConstructors_default = ruleCreator.createRule(typescriptLanguage
14
14
  suggestions: ["Remove the `new` keyword and call the function directly."]
15
15
  } },
16
16
  setup(context) {
17
- return { visitors: { NewExpression: (node, { sourceFile, typeChecker }) => {
17
+ return { visitors: { NewExpression: (node, { program, sourceFile, typeChecker }) => {
18
18
  if (node.expression.kind !== SyntaxKind.Identifier) return;
19
19
  const name = node.expression.text;
20
- if (!["BigInt", "Symbol"].includes(name) || !isGlobalDeclaration(node.expression, typeChecker)) return;
20
+ if (!["BigInt", "Symbol"].includes(name) || !isGlobalDeclaration(node.expression, typeChecker, program)) return;
21
21
  context.report({
22
22
  data: { name },
23
23
  fix: {
@@ -35,5 +35,3 @@ var newNativeNonConstructors_default = ruleCreator.createRule(typescriptLanguage
35
35
  });
36
36
  //#endregion
37
37
  export { newNativeNonConstructors_default as default };
38
-
39
- //# sourceMappingURL=newNativeNonConstructors.js.map
@@ -7,4 +7,3 @@ declare const _default: import("@flint.fyi/core").Rule<{
7
7
  readonly url: string;
8
8
  }, "unnecessaryNonNullAssertion", undefined>;
9
9
  export default _default;
10
- //# sourceMappingURL=nonNullAssertedNullishCoalesces.d.ts.map
@@ -59,5 +59,3 @@ var nonNullAssertedNullishCoalesces_default = ruleCreator.createRule(typescriptL
59
59
  });
60
60
  //#endregion
61
61
  export { nonNullAssertedNullishCoalesces_default as default };
62
-
63
- //# sourceMappingURL=nonNullAssertedNullishCoalesces.js.map
@@ -7,4 +7,3 @@ declare const _default: import("@flint.fyi/core").Rule<{
7
7
  readonly url: string;
8
8
  }, "nonNullOptionalChain", undefined>;
9
9
  export default _default;
10
- //# sourceMappingURL=nonNullAssertedOptionalChains.d.ts.map
@@ -65,5 +65,3 @@ var nonNullAssertedOptionalChains_default = ruleCreator.createRule(typescriptLan
65
65
  });
66
66
  //#endregion
67
67
  export { nonNullAssertedOptionalChains_default as default };
68
-
69
- //# sourceMappingURL=nonNullAssertedOptionalChains.js.map
@@ -7,4 +7,3 @@ declare const _default: import("@flint.fyi/core").Rule<{
7
7
  readonly url: string;
8
8
  }, "confusingAssign" | "confusingEqual" | "confusingOperator", undefined>;
9
9
  export default _default;
10
- //# sourceMappingURL=nonNullAssertionPlacement.d.ts.map
@@ -5,7 +5,7 @@ import { SyntaxKind } from "typescript";
5
5
  function endsWithNonNullAssertion(node, sourceFile) {
6
6
  return node.getLastToken(sourceFile)?.kind === SyntaxKind.ExclamationToken;
7
7
  }
8
- const confusingOperatorTexts = new Map([
8
+ const confusingOperatorTexts = /* @__PURE__ */ new Map([
9
9
  [SyntaxKind.EqualsEqualsEqualsToken, "==="],
10
10
  [SyntaxKind.EqualsEqualsToken, "=="],
11
11
  [SyntaxKind.EqualsToken, "="],
@@ -90,5 +90,3 @@ var nonNullAssertionPlacement_default = ruleCreator.createRule(typescriptLanguag
90
90
  });
91
91
  //#endregion
92
92
  export { nonNullAssertionPlacement_default as default };
93
-
94
- //# sourceMappingURL=nonNullAssertionPlacement.js.map
@@ -7,4 +7,3 @@ declare const _default: import("@flint.fyi/core").Rule<{
7
7
  readonly url: string;
8
8
  }, "preferNonNullAssertion", undefined>;
9
9
  export default _default;
10
- //# sourceMappingURL=nonNullableTypeAssertions.d.ts.map
@@ -74,5 +74,3 @@ var nonNullableTypeAssertions_default = ruleCreator.createRule(typescriptLanguag
74
74
  });
75
75
  //#endregion
76
76
  export { nonNullableTypeAssertions_default as default };
77
-
78
- //# sourceMappingURL=nonNullableTypeAssertions.js.map
@@ -7,4 +7,3 @@ declare const _default: import("@flint.fyi/core").Rule<{
7
7
  readonly url: string;
8
8
  }, "unexpectedEscape", undefined>;
9
9
  export default _default;
10
- //# sourceMappingURL=nonOctalDecimalEscapes.d.ts.map
@@ -44,5 +44,3 @@ var nonOctalDecimalEscapes_default = ruleCreator.createRule(typescriptLanguage,
44
44
  });
45
45
  //#endregion
46
46
  export { nonOctalDecimalEscapes_default as default };
47
-
48
- //# sourceMappingURL=nonOctalDecimalEscapes.js.map
@@ -18,4 +18,3 @@ declare const _default: import("@flint.fyi/core").Rule<{
18
18
  }>>;
19
19
  }>;
20
20
  export default _default;
21
- //# sourceMappingURL=nullishCheckStyle.d.ts.map
@@ -2,7 +2,7 @@ import { ruleCreator } from "./ruleCreator.js";
2
2
  import { isNullishLiteral, isUndefinedIdentifier, toEqualityOperator, toLooseOperator, toStrictOperator } from "./utils/equalityOperators.js";
3
3
  import { getTSNodeRange, typescriptLanguage } from "@flint.fyi/typescript-language";
4
4
  import { isNullKeyword } from "ts-api-utils";
5
- import { z } from "zod/v4";
5
+ import { z as z$1 } from "zod/v4";
6
6
  //#region src/rules/nullishCheckStyle.ts
7
7
  var nullishCheckStyle_default = ruleCreator.createRule(typescriptLanguage, {
8
8
  about: {
@@ -32,12 +32,12 @@ var nullishCheckStyle_default = ruleCreator.createRule(typescriptLanguage, {
32
32
  }
33
33
  },
34
34
  options: {
35
- looseNullishComparisonStyle: z.enum([
35
+ looseNullishComparisonStyle: z$1.enum([
36
36
  "prefer-null",
37
37
  "prefer-undefined",
38
38
  "ignore"
39
39
  ]).default("prefer-null"),
40
- nullishComparisonStrictness: z.enum([
40
+ nullishComparisonStrictness: z$1.enum([
41
41
  "double-equals",
42
42
  "triple-equals",
43
43
  "ignore"
@@ -140,5 +140,3 @@ var nullishCheckStyle_default = ruleCreator.createRule(typescriptLanguage, {
140
140
  });
141
141
  //#endregion
142
142
  export { nullishCheckStyle_default as default };
143
-
144
- //# sourceMappingURL=nullishCheckStyle.js.map
@@ -19,4 +19,3 @@ declare const _default: import("@flint.fyi/core").Rule<{
19
19
  ignoreTernaryTests: z.ZodDefault<z.ZodBoolean>;
20
20
  }>;
21
21
  export default _default;
22
- //# sourceMappingURL=nullishCoalescingOperators.d.ts.map
@@ -2,7 +2,7 @@ import { ruleCreator } from "./ruleCreator.js";
2
2
  import { getTSNodeRange, hasSameTokens, typescriptLanguage } from "@flint.fyi/typescript-language";
3
3
  import ts 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/nullishCoalescingOperators.ts
7
7
  function analyzeConditionalForNullish(node, sourceFile) {
8
8
  const { condition, whenFalse, whenTrue } = node;
@@ -111,6 +111,17 @@ function getComparisonOperator(node) {
111
111
  default: return "";
112
112
  }
113
113
  }
114
+ function getIfStatementNullishCheckValue(node) {
115
+ switch (node.expression.kind) {
116
+ case ts.SyntaxKind.BinaryExpression:
117
+ if (isNullLikeComparison(node.expression)) return extractValueFromComparison(node.expression).value ?? void 0;
118
+ return;
119
+ case ts.SyntaxKind.PrefixUnaryExpression:
120
+ if (node.expression.operator === ts.SyntaxKind.ExclamationToken) return node.expression.operand;
121
+ return;
122
+ default: return;
123
+ }
124
+ }
114
125
  function getTypeFlags(type) {
115
126
  let flags = 0;
116
127
  for (const constituent of tsutils.unionConstituents(type)) for (const subConstituent of tsutils.intersectionConstituents(constituent)) flags |= subConstituent.getFlags();
@@ -143,13 +154,6 @@ function isFalsyLiteralType(part) {
143
154
  }
144
155
  return false;
145
156
  }
146
- function isIfStatementNullishCheck(node) {
147
- switch (node.expression.kind) {
148
- case ts.SyntaxKind.BinaryExpression: return isNullLikeComparison(node.expression);
149
- case ts.SyntaxKind.PrefixUnaryExpression: return node.expression.operator === ts.SyntaxKind.ExclamationToken;
150
- default: return false;
151
- }
152
- }
153
157
  function isMixedLogicalExpression(node) {
154
158
  const seen = /* @__PURE__ */ new Set();
155
159
  const queue = [
@@ -224,21 +228,21 @@ var nullishCoalescingOperators_default = ruleCreator.createRule(typescriptLangua
224
228
  }
225
229
  },
226
230
  options: {
227
- ignoreConditionalTests: z.boolean().default(true).describe("Whether to skip cases where the expression is in a conditional context."),
228
- ignoreIfStatements: z.boolean().default(false).describe("Whether to skip if statement patterns with nullish checks."),
229
- ignoreMixedLogicalExpressions: z.boolean().default(false).describe("Whether to skip expressions that mix && and || operators."),
230
- ignorePrimitives: z.union([z.boolean(), z.record(z.enum([
231
+ ignoreConditionalTests: z$1.boolean().default(true).describe("Whether to skip cases where the expression is in a conditional context."),
232
+ ignoreIfStatements: z$1.boolean().default(false).describe("Whether to skip if statement patterns with nullish checks."),
233
+ ignoreMixedLogicalExpressions: z$1.boolean().default(false).describe("Whether to skip expressions that mix && and || operators."),
234
+ ignorePrimitives: z$1.union([z$1.boolean(), z$1.record(z$1.enum([
231
235
  "bigint",
232
236
  "boolean",
233
237
  "number",
234
238
  "string"
235
- ]), z.boolean())]).default({
239
+ ]), z$1.boolean())]).default({
236
240
  bigint: false,
237
241
  boolean: false,
238
242
  number: false,
239
243
  string: false
240
244
  }).describe("Whether to skip primitive types. Can be a boolean or an object with per-type configuration."),
241
- ignoreTernaryTests: z.boolean().default(false).describe("Whether to skip ternary expressions.")
245
+ ignoreTernaryTests: z$1.boolean().default(false).describe("Whether to skip ternary expressions.")
242
246
  },
243
247
  setup(context) {
244
248
  function getOptionalChainInsertPosition(node, test, sourceFile) {
@@ -266,6 +270,13 @@ var nullishCoalescingOperators_default = ruleCreator.createRule(typescriptLangua
266
270
  text: `${leftText} ?? ${getText(alternate)}`
267
271
  };
268
272
  }
273
+ function createNullishAssignmentFix(left, right, sourceFile, range) {
274
+ const getText = (node) => sourceFile.text.substring(node.getStart(sourceFile), node.getEnd());
275
+ return {
276
+ range,
277
+ text: `${getText(left)} ??= ${getText(right)};`
278
+ };
279
+ }
269
280
  return { visitors: {
270
281
  BinaryExpression: (node, { options, sourceFile, typeChecker }) => {
271
282
  if (options.ignoreConditionalTests && isConditionalTest(node) || options.ignoreMixedLogicalExpressions && isMixedLogicalExpression(node) || ![ts.SyntaxKind.BarBarEqualsToken, ts.SyntaxKind.BarBarToken].includes(node.operatorToken.kind) || shouldIgnoreNode(node.left, options.ignorePrimitives, typeChecker)) return;
@@ -292,12 +303,13 @@ var nullishCoalescingOperators_default = ruleCreator.createRule(typescriptLangua
292
303
  });
293
304
  },
294
305
  IfStatement: (node, { options, sourceFile, typeChecker }) => {
295
- if (options.ignoreIfStatements || node.elseStatement || !isIfStatementNullishCheck(node)) return;
306
+ const checkedValue = getIfStatementNullishCheckValue(node);
307
+ if (options.ignoreIfStatements || node.elseStatement || !checkedValue) return;
296
308
  const assignmentExpression = extractAssignmentFromIfStatement(node);
297
- if (!assignmentExpression || shouldIgnoreNode(assignmentExpression.left, options.ignorePrimitives, typeChecker)) return;
309
+ if (!assignmentExpression || !hasSameTokens(assignmentExpression.left, checkedValue, sourceFile) || shouldIgnoreNode(assignmentExpression.left, options.ignorePrimitives, typeChecker)) return;
298
310
  const range = getTSNodeRange(node, sourceFile);
299
311
  context.report({
300
- fix: createNullishNodesFix(assignmentExpression.left, assignmentExpression.right, sourceFile, range),
312
+ fix: createNullishAssignmentFix(assignmentExpression.left, assignmentExpression.right, sourceFile, range),
301
313
  message: "preferNullishAssignment",
302
314
  range
303
315
  });
@@ -307,5 +319,3 @@ var nullishCoalescingOperators_default = ruleCreator.createRule(typescriptLangua
307
319
  });
308
320
  //#endregion
309
321
  export { nullishCoalescingOperators_default as default };
310
-
311
- //# sourceMappingURL=nullishCoalescingOperators.js.map
@@ -7,4 +7,3 @@ declare const _default: import("@flint.fyi/core").Rule<{
7
7
  readonly url: string;
8
8
  }, "outOfRange", undefined>;
9
9
  export default _default;
10
- //# sourceMappingURL=numberMethodRanges.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
  //#region src/rules/numberMethodRanges.ts
5
- const methodSpecs = new Map([
5
+ const methodSpecs = /* @__PURE__ */ new Map([
6
6
  ["toExponential", {
7
7
  max: 100,
8
8
  min: 0,
@@ -70,5 +70,3 @@ var numberMethodRanges_default = ruleCreator.createRule(typescriptLanguage, {
70
70
  });
71
71
  //#endregion
72
72
  export { numberMethodRanges_default as default };
73
-
74
- //# sourceMappingURL=numberMethodRanges.js.map
@@ -7,4 +7,3 @@ declare const _default: import("@flint.fyi/core").Rule<{
7
7
  readonly url: string;
8
8
  }, "preferNumberMethod", undefined>;
9
9
  export default _default;
10
- //# sourceMappingURL=numberStaticMethods.d.ts.map
@@ -2,7 +2,7 @@ import { ruleCreator } from "./ruleCreator.js";
2
2
  import { getTSNodeRange, isGlobalVariable, typescriptLanguage } from "@flint.fyi/typescript-language";
3
3
  import ts from "typescript";
4
4
  //#region src/rules/numberStaticMethods.ts
5
- const globalReplacements = new Map([["isFinite", "Number.isFinite"], ["isNaN", "Number.isNaN"]]);
5
+ const globalReplacements = /* @__PURE__ */ new Map([["isFinite", "Number.isFinite"], ["isNaN", "Number.isNaN"]]);
6
6
  function isDeclarationName(node) {
7
7
  return ts.isFunctionDeclaration(node.parent) && node.parent.name === node || ts.isVariableDeclaration(node.parent) && node.parent.name === node || ts.isParameter(node.parent) && node.parent.name === node;
8
8
  }
@@ -27,9 +27,9 @@ var numberStaticMethods_default = ruleCreator.createRule(typescriptLanguage, {
27
27
  suggestions: ["Replace `{{ name }}` with `{{ replacement }}`."]
28
28
  } },
29
29
  setup(context) {
30
- return { visitors: { Identifier: (node, { sourceFile, typeChecker }) => {
30
+ return { visitors: { Identifier: (node, { program, sourceFile, typeChecker }) => {
31
31
  const replacement = globalReplacements.get(node.text);
32
- if (!replacement || isPropertyAccessOfNode(node) || isPropertyShorthandOfNode(node) || isDeclarationName(node) || !isGlobalVariable(node, typeChecker) || isLeftHandSide(node)) return;
32
+ if (!replacement || isPropertyAccessOfNode(node) || isPropertyShorthandOfNode(node) || isDeclarationName(node) || !isGlobalVariable(node, typeChecker, program) || isLeftHandSide(node)) return;
33
33
  const range = getTSNodeRange(node, sourceFile);
34
34
  context.report({
35
35
  data: {
@@ -49,5 +49,3 @@ var numberStaticMethods_default = ruleCreator.createRule(typescriptLanguage, {
49
49
  });
50
50
  //#endregion
51
51
  export { numberStaticMethods_default as default };
52
-
53
- //# sourceMappingURL=numberStaticMethods.js.map
@@ -7,4 +7,3 @@ declare const _default: import("@flint.fyi/core").Rule<{
7
7
  readonly url: string;
8
8
  }, "erasingOperation", undefined>;
9
9
  export default _default;
10
- //# sourceMappingURL=numericErasingOperations.d.ts.map
@@ -1,9 +1,9 @@
1
1
  import { ruleCreator } from "./ruleCreator.js";
2
- import { getTSNodeRange, typescriptLanguage } from "@flint.fyi/typescript-language";
2
+ import { getStaticNumberValue, getTSNodeRange, typescriptLanguage } from "@flint.fyi/typescript-language";
3
3
  import ts from "typescript";
4
4
  //#region src/rules/numericErasingOperations.ts
5
5
  function isZeroLiteral(node) {
6
- return node.kind === ts.SyntaxKind.NumericLiteral && node.text === "0";
6
+ return Object.is(getStaticNumberValue(node), 0);
7
7
  }
8
8
  var numericErasingOperations_default = ruleCreator.createRule(typescriptLanguage, {
9
9
  about: {
@@ -42,5 +42,3 @@ var numericErasingOperations_default = ruleCreator.createRule(typescriptLanguage
42
42
  });
43
43
  //#endregion
44
44
  export { numericErasingOperations_default as default };
45
-
46
- //# sourceMappingURL=numericErasingOperations.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=numericLiteralParsing.d.ts.map