@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
@@ -1,22 +1,7 @@
1
1
  import { ruleCreator } from "./ruleCreator.js";
2
- import { getTSNodeRange, typescriptLanguage } from "@flint.fyi/typescript-language";
2
+ import { getStaticValue, getTSNodeRange, typescriptLanguage } from "@flint.fyi/typescript-language";
3
3
  import { SyntaxKind } from "typescript";
4
4
  //#region src/rules/enumValueDuplicates.ts
5
- function getLiteralValue(initializer) {
6
- switch (initializer.kind) {
7
- case SyntaxKind.NoSubstitutionTemplateLiteral:
8
- case SyntaxKind.StringLiteral: return initializer.text;
9
- case SyntaxKind.NumericLiteral: return Number(initializer.text);
10
- case SyntaxKind.PrefixUnaryExpression: {
11
- if (initializer.operand.kind !== SyntaxKind.NumericLiteral) return;
12
- const value = Number(initializer.operand.text);
13
- if (initializer.operator === SyntaxKind.MinusToken) return -value;
14
- if (initializer.operator === SyntaxKind.PlusToken) return value;
15
- return;
16
- }
17
- default: return;
18
- }
19
- }
20
5
  var enumValueDuplicates_default = ruleCreator.createRule(typescriptLanguage, {
21
6
  about: {
22
7
  description: "Reports enum members with duplicate values.",
@@ -33,8 +18,8 @@ var enumValueDuplicates_default = ruleCreator.createRule(typescriptLanguage, {
33
18
  const seenValues = /* @__PURE__ */ new Map();
34
19
  for (const member of node.members) {
35
20
  if (!member.initializer) continue;
36
- const value = getLiteralValue(member.initializer);
37
- if (value === void 0) continue;
21
+ const value = getStaticValue(member.initializer)?.value;
22
+ if (typeof value !== "number" && typeof value !== "string") continue;
38
23
  const memberName = member.name.kind === SyntaxKind.Identifier ? member.name.text : member.name.getText(sourceFile);
39
24
  const firstMember = seenValues.get(value);
40
25
  if (firstMember === void 0) {
@@ -56,5 +41,3 @@ var enumValueDuplicates_default = ruleCreator.createRule(typescriptLanguage, {
56
41
  });
57
42
  //#endregion
58
43
  export { enumValueDuplicates_default as default };
59
-
60
- //# sourceMappingURL=enumValueDuplicates.js.map
@@ -6,4 +6,3 @@ declare const _default: import("@flint.fyi/core").Rule<{
6
6
  readonly url: string;
7
7
  }, "negatedEquality", undefined>;
8
8
  export default _default;
9
- //# sourceMappingURL=equalityOperatorNegations.d.ts.map
@@ -2,19 +2,19 @@ import { ruleCreator } from "./ruleCreator.js";
2
2
  import { typescriptLanguage, unwrapParenthesizedNode } from "@flint.fyi/typescript-language";
3
3
  import { SyntaxKind } from "typescript";
4
4
  //#region src/rules/equalityOperatorNegations.ts
5
- const equalityOperators = new Set([
5
+ const equalityOperators = /* @__PURE__ */ new Set([
6
6
  SyntaxKind.EqualsEqualsEqualsToken,
7
7
  SyntaxKind.EqualsEqualsToken,
8
8
  SyntaxKind.ExclamationEqualsEqualsToken,
9
9
  SyntaxKind.ExclamationEqualsToken
10
10
  ]);
11
- const operatorStrings = new Map([
11
+ const operatorStrings = /* @__PURE__ */ new Map([
12
12
  [SyntaxKind.EqualsEqualsEqualsToken, "==="],
13
13
  [SyntaxKind.EqualsEqualsToken, "=="],
14
14
  [SyntaxKind.ExclamationEqualsEqualsToken, "!=="],
15
15
  [SyntaxKind.ExclamationEqualsToken, "!="]
16
16
  ]);
17
- const negatedOperators = new Map([
17
+ const negatedOperators = /* @__PURE__ */ new Map([
18
18
  [SyntaxKind.EqualsEqualsEqualsToken, "!=="],
19
19
  [SyntaxKind.EqualsEqualsToken, "!="],
20
20
  [SyntaxKind.ExclamationEqualsEqualsToken, "==="],
@@ -56,5 +56,3 @@ var equalityOperatorNegations_default = ruleCreator.createRule(typescriptLanguag
56
56
  });
57
57
  //#endregion
58
58
  export { equalityOperatorNegations_default as default };
59
-
60
- //# sourceMappingURL=equalityOperatorNegations.js.map
@@ -7,4 +7,3 @@ declare const _default: import("@flint.fyi/core").Rule<{
7
7
  readonly url: string;
8
8
  }, "preferStrictEquality", undefined>;
9
9
  export default _default;
10
- //# sourceMappingURL=equalityOperators.d.ts.map
@@ -40,5 +40,3 @@ var equalityOperators_default = ruleCreator.createRule(typescriptLanguage, {
40
40
  });
41
41
  //#endregion
42
42
  export { equalityOperators_default as default };
43
-
44
- //# sourceMappingURL=equalityOperators.js.map
@@ -7,4 +7,3 @@ declare const _default: import("@flint.fyi/core").Rule<{
7
7
  readonly url: string;
8
8
  }, "missingMessage", undefined>;
9
9
  export default _default;
10
- //# sourceMappingURL=errorMessages.d.ts.map
@@ -1,5 +1,5 @@
1
1
  import { ruleCreator } from "./ruleCreator.js";
2
- import { getTSNodeRange, isGlobalDeclarationOfName, typescriptLanguage } from "@flint.fyi/typescript-language";
2
+ import { getStaticStringValue, getTSNodeRange, isGlobalDeclarationOfName, typescriptLanguage } from "@flint.fyi/typescript-language";
3
3
  import { SyntaxKind } from "typescript";
4
4
  //#region src/rules/errorMessages.ts
5
5
  const errorConstructors = [
@@ -12,18 +12,14 @@ const errorConstructors = [
12
12
  "TypeError",
13
13
  "URIError"
14
14
  ];
15
- function getErrorConstructorWithoutMessage(node, typeChecker) {
15
+ function getErrorConstructorWithoutMessage(node, typeChecker, program) {
16
16
  if (node.expression.kind !== SyntaxKind.Identifier || hasValidMessageArgument(node.arguments)) return false;
17
- return errorConstructors.find((errorConstructor) => isGlobalDeclarationOfName(node.expression, errorConstructor, typeChecker));
17
+ return errorConstructors.find((errorConstructor) => isGlobalDeclarationOfName(node.expression, errorConstructor, typeChecker, program));
18
18
  }
19
19
  function hasValidMessageArgument(args) {
20
20
  if (!args?.length) return false;
21
21
  const firstArgument = args[0];
22
- return !!firstArgument && !isEmptyString(firstArgument) && !isUndefinedLiteral(firstArgument);
23
- }
24
- function isEmptyString(node) {
25
- if (node.kind === SyntaxKind.StringLiteral || node.kind === SyntaxKind.NoSubstitutionTemplateLiteral) return node.text === "";
26
- return false;
22
+ return !!firstArgument && getStaticStringValue(firstArgument) !== "" && !isUndefinedLiteral(firstArgument);
27
23
  }
28
24
  function isUndefinedLiteral(node) {
29
25
  return node.kind === SyntaxKind.Identifier && node.text === "undefined";
@@ -40,8 +36,8 @@ var errorMessages_default = ruleCreator.createRule(typescriptLanguage, {
40
36
  suggestions: ["Provide a string message describing what caused the error."]
41
37
  } },
42
38
  setup(context) {
43
- function checkNode(node, { sourceFile, typeChecker }) {
44
- const errorConstructor = getErrorConstructorWithoutMessage(node, typeChecker);
39
+ function checkNode(node, { program, sourceFile, typeChecker }) {
40
+ const errorConstructor = getErrorConstructorWithoutMessage(node, typeChecker, program);
45
41
  if (errorConstructor) context.report({
46
42
  data: { errorConstructor },
47
43
  message: "missingMessage",
@@ -56,5 +52,3 @@ var errorMessages_default = ruleCreator.createRule(typescriptLanguage, {
56
52
  });
57
53
  //#endregion
58
54
  export { errorMessages_default as default };
59
-
60
- //# sourceMappingURL=errorMessages.js.map
@@ -7,4 +7,3 @@ declare const _default: import("@flint.fyi/core").Rule<{
7
7
  readonly url: string;
8
8
  }, "invalidClassName" | "missingName" | "redundantMessage" | "useConstructorName" | "wrongName", undefined>;
9
9
  export default _default;
10
- //# sourceMappingURL=errorSubclassProperties.d.ts.map
@@ -90,8 +90,8 @@ var errorSubclassProperties_default = ruleCreator.createRule(typescriptLanguage,
90
90
  }
91
91
  },
92
92
  setup(context) {
93
- return { visitors: { ClassDeclaration: (node, { sourceFile, typeChecker }) => {
94
- if (!isErrorSubclass(node, typeChecker)) return;
93
+ return { visitors: { ClassDeclaration: (node, { program, sourceFile, typeChecker }) => {
94
+ if (!isErrorSubclass(node, typeChecker, program)) return;
95
95
  const className = node.name?.text;
96
96
  if (!isValidErrorClassName(className)) {
97
97
  const baseName = className ?? "Custom";
@@ -140,5 +140,3 @@ var errorSubclassProperties_default = ruleCreator.createRule(typescriptLanguage,
140
140
  });
141
141
  //#endregion
142
142
  export { errorSubclassProperties_default as default };
143
-
144
- //# sourceMappingURL=errorSubclassProperties.js.map
@@ -7,4 +7,3 @@ declare const _default: import("@flint.fyi/core").Rule<{
7
7
  readonly url: string;
8
8
  }, "unnecessaryCaptureStackTrace", undefined>;
9
9
  export default _default;
10
- //# sourceMappingURL=errorUnnecessaryCaptureStackTraces.d.ts.map
@@ -27,8 +27,8 @@ var errorUnnecessaryCaptureStackTraces_default = ruleCreator.createRule(typescri
27
27
  suggestions: ["Remove the `Error.captureStackTrace()` call."]
28
28
  } },
29
29
  setup(context) {
30
- return { visitors: { ClassDeclaration: (node, { sourceFile, typeChecker }) => {
31
- if (!isErrorSubclass(node, typeChecker)) return;
30
+ return { visitors: { ClassDeclaration: (node, { program, sourceFile, typeChecker }) => {
31
+ if (!isErrorSubclass(node, typeChecker, program)) return;
32
32
  for (const member of node.members) {
33
33
  if (!ts.isConstructorDeclaration(member) || !member.body) continue;
34
34
  for (const statement of member.body.statements) {
@@ -51,5 +51,3 @@ var errorUnnecessaryCaptureStackTraces_default = ruleCreator.createRule(typescri
51
51
  });
52
52
  //#endregion
53
53
  export { errorUnnecessaryCaptureStackTraces_default as default };
54
-
55
- //# sourceMappingURL=errorUnnecessaryCaptureStackTraces.js.map
@@ -7,4 +7,3 @@ declare const _default: import("@flint.fyi/core").Rule<{
7
7
  readonly url: string;
8
8
  }, "useUppercase", undefined>;
9
9
  export default _default;
10
- //# sourceMappingURL=escapeSequenceCasing.d.ts.map
@@ -71,5 +71,3 @@ var escapeSequenceCasing_default = ruleCreator.createRule(typescriptLanguage, {
71
71
  });
72
72
  //#endregion
73
73
  export { escapeSequenceCasing_default as default };
74
-
75
- //# sourceMappingURL=escapeSequenceCasing.js.map
@@ -7,4 +7,3 @@ declare const _default: import("@flint.fyi/core").Rule<{
7
7
  readonly url: string;
8
8
  }, "noEval", undefined>;
9
9
  export default _default;
10
- //# sourceMappingURL=evals.d.ts.map
@@ -17,8 +17,8 @@ var evals_default = ruleCreator.createRule(typescriptLanguage, {
17
17
  suggestions: ["Use safer alternatives like `JSON.parse()` for parsing JSON data.", "Use `Function` constructor if dynamic code execution is truly necessary (though still risky)."]
18
18
  } },
19
19
  setup(context) {
20
- return { visitors: { CallExpression: (node, { sourceFile, typeChecker }) => {
21
- if (isGlobalDeclarationOfName(node.expression, "eval", typeChecker)) context.report({
20
+ return { visitors: { CallExpression: (node, { program, sourceFile, typeChecker }) => {
21
+ if (isGlobalDeclarationOfName(node.expression, "eval", typeChecker, program)) context.report({
22
22
  message: "noEval",
23
23
  range: getTSNodeRange(node.expression, sourceFile)
24
24
  });
@@ -27,5 +27,3 @@ var evals_default = ruleCreator.createRule(typescriptLanguage, {
27
27
  });
28
28
  //#endregion
29
29
  export { evals_default as default };
30
-
31
- //# sourceMappingURL=evals.js.map
@@ -7,4 +7,3 @@ declare const _default: import("@flint.fyi/core").Rule<{
7
7
  readonly url: string;
8
8
  }, "implicitAny", undefined>;
9
9
  export default _default;
10
- //# sourceMappingURL=evolvingVariableTypes.d.ts.map
@@ -29,5 +29,3 @@ var evolvingVariableTypes_default = ruleCreator.createRule(typescriptLanguage, {
29
29
  });
30
30
  //#endregion
31
31
  export { evolvingVariableTypes_default as default };
32
-
33
- //# sourceMappingURL=evolvingVariableTypes.js.map
@@ -7,4 +7,3 @@ declare const _default: import("@flint.fyi/core").Rule<{
7
7
  readonly url: string;
8
8
  }, "noExAssign", undefined>;
9
9
  export default _default;
10
- //# sourceMappingURL=exceptionAssignments.d.ts.map
@@ -1,5 +1,5 @@
1
1
  import { ruleCreator } from "./ruleCreator.js";
2
- import { getModifyingReferences, typescriptLanguage } from "@flint.fyi/typescript-language";
2
+ import { getModifyingReferences, getTSNodeRange, typescriptLanguage } from "@flint.fyi/typescript-language";
3
3
  import { SyntaxKind } from "typescript";
4
4
  //#region src/rules/exceptionAssignments.ts
5
5
  var exceptionAssignments_default = ruleCreator.createRule(typescriptLanguage, {
@@ -20,17 +20,14 @@ var exceptionAssignments_default = ruleCreator.createRule(typescriptLanguage, {
20
20
  else for (const element of name.elements) if (element.kind === SyntaxKind.BindingElement) identifiers.push(...collectBindingElements(element.name));
21
21
  return identifiers;
22
22
  }
23
- return { visitors: { CatchClause: (node, { sourceFile, typeChecker }) => {
23
+ return { visitors: { CatchClause: (node, { sourceFile }) => {
24
24
  if (!node.variableDeclaration?.name) return;
25
25
  const identifiers = collectBindingElements(node.variableDeclaration.name);
26
26
  for (const identifier of identifiers) {
27
- const modifyingReferences = getModifyingReferences(identifier, sourceFile, typeChecker);
27
+ const modifyingReferences = getModifyingReferences(identifier, sourceFile);
28
28
  for (const reference of modifyingReferences) context.report({
29
29
  message: "noExAssign",
30
- range: {
31
- begin: reference.getStart(sourceFile),
32
- end: reference.getEnd()
33
- }
30
+ range: getTSNodeRange(reference, sourceFile)
34
31
  });
35
32
  }
36
33
  } } };
@@ -38,5 +35,3 @@ var exceptionAssignments_default = ruleCreator.createRule(typescriptLanguage, {
38
35
  });
39
36
  //#endregion
40
37
  export { exceptionAssignments_default as default };
41
-
42
- //# sourceMappingURL=exceptionAssignments.js.map
@@ -7,4 +7,3 @@ declare const _default: import("@flint.fyi/core").Rule<{
7
7
  readonly url: string;
8
8
  }, "noExplicitAny", undefined>;
9
9
  export default _default;
10
- //# sourceMappingURL=explicitAnys.d.ts.map
@@ -51,5 +51,3 @@ var explicitAnys_default = ruleCreator.createRule(typescriptLanguage, {
51
51
  });
52
52
  //#endregion
53
53
  export { explicitAnys_default as default };
54
-
55
- //# sourceMappingURL=explicitAnys.js.map
@@ -7,4 +7,3 @@ declare const _default: import("@flint.fyi/core").Rule<{
7
7
  readonly url: string;
8
8
  }, "preferOperator", undefined>;
9
9
  export default _default;
10
- //# sourceMappingURL=exponentiationOperators.d.ts.map
@@ -14,8 +14,8 @@ var exponentiationOperators_default = ruleCreator.createRule(typescriptLanguage,
14
14
  suggestions: ["`Replace Math.pow(base, exponent)` with `**`."]
15
15
  } },
16
16
  setup(context) {
17
- return { visitors: { CallExpression: (node, { sourceFile, typeChecker }) => {
18
- if (!ts.isPropertyAccessExpression(node.expression) || node.expression.name.text !== "pow" || node.expression.expression.kind !== SyntaxKind.Identifier || node.expression.expression.text !== "Math" || node.arguments.length !== 2 || !isGlobalDeclarationOfName(node.expression.expression, "Math", typeChecker)) return;
17
+ return { visitors: { CallExpression: (node, { program, sourceFile, typeChecker }) => {
18
+ if (!ts.isPropertyAccessExpression(node.expression) || node.expression.name.text !== "pow" || node.expression.expression.kind !== SyntaxKind.Identifier || node.expression.expression.text !== "Math" || node.arguments.length !== 2 || !isGlobalDeclarationOfName(node.expression.expression, "Math", typeChecker, program)) return;
19
19
  const range = getTSNodeRange(node, sourceFile);
20
20
  context.report({
21
21
  fix: {
@@ -30,5 +30,3 @@ var exponentiationOperators_default = ruleCreator.createRule(typescriptLanguage,
30
30
  });
31
31
  //#endregion
32
32
  export { exponentiationOperators_default as default };
33
-
34
- //# sourceMappingURL=exponentiationOperators.js.map
@@ -7,4 +7,3 @@ declare const _default: import("@flint.fyi/core").Rule<{
7
7
  readonly url: string;
8
8
  }, "preferExportDefaultFrom" | "preferExportFrom" | "preferExportNamespaceFrom", undefined>;
9
9
  export default _default;
10
- //# sourceMappingURL=exportFromImports.d.ts.map
@@ -1,12 +1,12 @@
1
1
  import { ruleCreator } from "./ruleCreator.js";
2
- import { getTSNodeRange, typescriptLanguage } from "@flint.fyi/typescript-language";
2
+ import { getStaticStringValue, getTSNodeRange, typescriptLanguage } from "@flint.fyi/typescript-language";
3
3
  import ts from "typescript";
4
4
  //#region src/rules/exportFromImports.ts
5
5
  function getImportInfo(node, sourceFile) {
6
6
  if (!node.importClause) return;
7
7
  const info = {
8
8
  declaration: node,
9
- moduleSpecifier: ts.isStringLiteral(node.moduleSpecifier) ? node.moduleSpecifier.text : node.moduleSpecifier.getText(sourceFile),
9
+ moduleSpecifier: getStaticStringValue(node.moduleSpecifier) ?? node.moduleSpecifier.getText(sourceFile),
10
10
  namedImports: /* @__PURE__ */ new Map()
11
11
  };
12
12
  const clause = node.importClause;
@@ -115,5 +115,3 @@ var exportFromImports_default = ruleCreator.createRule(typescriptLanguage, {
115
115
  });
116
116
  //#endregion
117
117
  export { exportFromImports_default as default };
118
-
119
- //# sourceMappingURL=exportFromImports.js.map
@@ -7,4 +7,3 @@ declare const _default: import("@flint.fyi/core").Rule<{
7
7
  readonly url: string;
8
8
  }, "noMutableExport", undefined>;
9
9
  export default _default;
10
- //# sourceMappingURL=exportMutables.d.ts.map
@@ -29,5 +29,3 @@ var exportMutables_default = ruleCreator.createRule(typescriptLanguage, {
29
29
  });
30
30
  //#endregion
31
31
  export { exportMutables_default as default };
32
-
33
- //# sourceMappingURL=exportMutables.js.map
@@ -7,4 +7,3 @@ declare const _default: import("@flint.fyi/core").Rule<{
7
7
  readonly url: string;
8
8
  }, "duplicateExport", undefined>;
9
9
  export default _default;
10
- //# sourceMappingURL=exportUniqueNames.d.ts.map
@@ -61,5 +61,3 @@ var exportUniqueNames_default = ruleCreator.createRule(typescriptLanguage, {
61
61
  });
62
62
  //#endregion
63
63
  export { exportUniqueNames_default as default };
64
-
65
- //# sourceMappingURL=exportUniqueNames.js.map
@@ -13,4 +13,3 @@ declare const _default: import("@flint.fyi/core").Rule<{
13
13
  allowWithDecorator: z.ZodDefault<z.ZodBoolean>;
14
14
  }>;
15
15
  export default _default;
16
- //# sourceMappingURL=extraneousClasses.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 ts from "typescript";
4
- import { z } from "zod/v4";
4
+ import { z as z$1 } from "zod/v4";
5
5
  //#region src/rules/extraneousClasses.ts
6
6
  function hasDecorators(node) {
7
7
  return node.modifiers?.some(ts.isDecorator) ?? false;
@@ -19,10 +19,10 @@ function isRealMember(member) {
19
19
  return !ts.isConstructorDeclaration(member) && !ts.isClassStaticBlockDeclaration(member) && !ts.isSemicolonClassElement(member);
20
20
  }
21
21
  const options = {
22
- allowConstructorOnly: z.boolean().default(false).describe("Whether to allow extraneous classes that contain only a constructor."),
23
- allowEmpty: z.boolean().default(false).describe("Whether to allow extraneous classes that have no body (are empty)."),
24
- allowStaticOnly: z.boolean().default(false).describe("Whether to allow extraneous classes that only contain static members."),
25
- allowWithDecorator: z.boolean().default(false).describe("Whether to allow extraneous classes that include a decorator.")
22
+ allowConstructorOnly: z$1.boolean().default(false).describe("Whether to allow extraneous classes that contain only a constructor."),
23
+ allowEmpty: z$1.boolean().default(false).describe("Whether to allow extraneous classes that have no body (are empty)."),
24
+ allowStaticOnly: z$1.boolean().default(false).describe("Whether to allow extraneous classes that only contain static members."),
25
+ allowWithDecorator: z$1.boolean().default(false).describe("Whether to allow extraneous classes that include a decorator.")
26
26
  };
27
27
  var extraneousClasses_default = ruleCreator.createRule(typescriptLanguage, {
28
28
  about: {
@@ -107,5 +107,3 @@ var extraneousClasses_default = ruleCreator.createRule(typescriptLanguage, {
107
107
  });
108
108
  //#endregion
109
109
  export { extraneousClasses_default as default };
110
-
111
- //# sourceMappingURL=extraneousClasses.js.map
@@ -7,4 +7,3 @@ declare const _default: import("@flint.fyi/core").Rule<{
7
7
  readonly url: string;
8
8
  }, "noBody", undefined>;
9
9
  export default _default;
10
- //# sourceMappingURL=fetchMethodBodies.d.ts.map
@@ -68,5 +68,3 @@ var fetchMethodBodies_default = ruleCreator.createRule(typescriptLanguage, {
68
68
  });
69
69
  //#endregion
70
70
  export { fetchMethodBodies_default as default };
71
-
72
- //# sourceMappingURL=fetchMethodBodies.js.map
@@ -7,4 +7,3 @@ declare const _default: import("@flint.fyi/core").Rule<{
7
7
  readonly url: string;
8
8
  }, "unsafeFinally", undefined>;
9
9
  export default _default;
10
- //# sourceMappingURL=finallyStatementSafety.d.ts.map
@@ -43,5 +43,3 @@ var finallyStatementSafety_default = ruleCreator.createRule(typescriptLanguage,
43
43
  });
44
44
  //#endregion
45
45
  export { finallyStatementSafety_default as default };
46
-
47
- //# sourceMappingURL=finallyStatementSafety.js.map
@@ -7,4 +7,3 @@ declare const _default: import("@flint.fyi/core").Rule<{
7
7
  readonly url: string;
8
8
  }, "wrongDirection", undefined>;
9
9
  export default _default;
10
- //# sourceMappingURL=forDirections.d.ts.map
@@ -71,5 +71,3 @@ var forDirections_default = ruleCreator.createRule(typescriptLanguage, {
71
71
  });
72
72
  //#endregion
73
73
  export { forDirections_default as default };
74
-
75
- //# sourceMappingURL=forDirections.js.map
@@ -7,4 +7,3 @@ declare const _default: import("@flint.fyi/core").Rule<{
7
7
  readonly url: string;
8
8
  }, "forIn", undefined>;
9
9
  export default _default;
10
- //# sourceMappingURL=forInArrays.d.ts.map
@@ -42,5 +42,3 @@ var forInArrays_default = ruleCreator.createRule(typescriptLanguage, {
42
42
  });
43
43
  //#endregion
44
44
  export { forInArrays_default as default };
45
-
46
- //# sourceMappingURL=forInArrays.js.map
@@ -6,4 +6,3 @@ declare const _default: import("@flint.fyi/core").Rule<{
6
6
  readonly url: string;
7
7
  }, "missingGuard", undefined>;
8
8
  export default _default;
9
- //# sourceMappingURL=forInGuards.d.ts.map
@@ -40,5 +40,3 @@ var forInGuards_default = ruleCreator.createRule(typescriptLanguage, {
40
40
  });
41
41
  //#endregion
42
42
  export { forInGuards_default as default };
43
-
44
- //# sourceMappingURL=forInGuards.js.map
@@ -7,4 +7,3 @@ declare const _default: import("@flint.fyi/core").Rule<{
7
7
  readonly url: string;
8
8
  }, "preferSpread", undefined>;
9
9
  export default _default;
10
- //# sourceMappingURL=functionApplySpreads.d.ts.map
@@ -59,5 +59,3 @@ var functionApplySpreads_default = ruleCreator.createRule(typescriptLanguage, {
59
59
  });
60
60
  //#endregion
61
61
  export { functionApplySpreads_default as default };
62
-
63
- //# sourceMappingURL=functionApplySpreads.js.map
@@ -7,4 +7,3 @@ declare const _default: import("@flint.fyi/core").Rule<{
7
7
  readonly url: string;
8
8
  }, "noFunctionAssignment", undefined>;
9
9
  export default _default;
10
- //# sourceMappingURL=functionAssignments.d.ts.map
@@ -1,5 +1,5 @@
1
1
  import { ruleCreator } from "./ruleCreator.js";
2
- import { getModifyingReferences, typescriptLanguage } from "@flint.fyi/typescript-language";
2
+ import { getModifyingReferences, getTSNodeRange, typescriptLanguage } from "@flint.fyi/typescript-language";
3
3
  //#region src/rules/functionAssignments.ts
4
4
  var functionAssignments_default = ruleCreator.createRule(typescriptLanguage, {
5
5
  about: {
@@ -13,20 +13,15 @@ var functionAssignments_default = ruleCreator.createRule(typescriptLanguage, {
13
13
  suggestions: ["Use a function expression or const variable instead if you need to reassign the function."]
14
14
  } },
15
15
  setup(context) {
16
- return { visitors: { FunctionDeclaration: (node, { sourceFile, typeChecker }) => {
16
+ return { visitors: { FunctionDeclaration: (node, { sourceFile }) => {
17
17
  if (!node.name) return;
18
- const modifyingReferences = getModifyingReferences(node.name, sourceFile, typeChecker);
18
+ const modifyingReferences = getModifyingReferences(node.name, sourceFile);
19
19
  for (const reference of modifyingReferences) context.report({
20
20
  message: "noFunctionAssignment",
21
- range: {
22
- begin: reference.getStart(sourceFile),
23
- end: reference.getEnd()
24
- }
21
+ range: getTSNodeRange(reference, sourceFile)
25
22
  });
26
23
  } } };
27
24
  }
28
25
  });
29
26
  //#endregion
30
27
  export { functionAssignments_default as default };
31
-
32
- //# sourceMappingURL=functionAssignments.js.map
@@ -7,4 +7,3 @@ declare const _default: import("@flint.fyi/core").Rule<{
7
7
  readonly url: string;
8
8
  }, "unnecessaryCall", undefined>;
9
9
  export default _default;
10
- //# sourceMappingURL=functionCurryingRedundancy.d.ts.map
@@ -49,5 +49,3 @@ function createCallFixText(functionExpression, methodArguments, sourceFile) {
49
49
  }
50
50
  //#endregion
51
51
  export { functionCurryingRedundancy_default as default };
52
-
53
- //# sourceMappingURL=functionCurryingRedundancy.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=functionDeclarationStyles.d.ts.map
@@ -1,7 +1,7 @@
1
1
  import { ruleCreator } from "./ruleCreator.js";
2
2
  import { getTSNodeRange, typescriptLanguage } from "@flint.fyi/typescript-language";
3
3
  import ts from "typescript";
4
- import { z } from "zod/v4";
4
+ import { z as z$1 } from "zod/v4";
5
5
  //#region src/rules/functionDeclarationStyles.ts
6
6
  function isOverloadedDeclaration(node, sourceFile) {
7
7
  if (!node.name) return false;
@@ -31,8 +31,8 @@ var functionDeclarationStyles_default = ruleCreator.createRule(typescriptLanguag
31
31
  }
32
32
  },
33
33
  options: {
34
- allowArrowFunctions: z.boolean().default(false).describe("Whether to allow arrow functions when style is 'declaration'."),
35
- style: z.enum(["declaration", "expression"]).default("expression").describe("Which function style to enforce: 'declaration' for function declarations or 'expression' for function expressions.")
34
+ allowArrowFunctions: z$1.boolean().default(false).describe("Whether to allow arrow functions when style is 'declaration'."),
35
+ style: z$1.enum(["declaration", "expression"]).default("expression").describe("Which function style to enforce: 'declaration' for function declarations or 'expression' for function expressions.")
36
36
  },
37
37
  setup(context) {
38
38
  return { visitors: {
@@ -63,5 +63,3 @@ var functionDeclarationStyles_default = ruleCreator.createRule(typescriptLanguag
63
63
  });
64
64
  //#endregion
65
65
  export { functionDeclarationStyles_default as default };
66
-
67
- //# sourceMappingURL=functionDeclarationStyles.js.map
@@ -7,4 +7,3 @@ declare const _default: import("@flint.fyi/core").Rule<{
7
7
  readonly url: string;
8
8
  }, "mismatch", undefined>;
9
9
  export default _default;
10
- //# sourceMappingURL=functionNameMatches.d.ts.map
@@ -70,5 +70,3 @@ var functionNameMatches_default = ruleCreator.createRule(typescriptLanguage, {
70
70
  });
71
71
  //#endregion
72
72
  export { functionNameMatches_default as default };
73
-
74
- //# sourceMappingURL=functionNameMatches.js.map
@@ -7,4 +7,3 @@ declare const _default: import("@flint.fyi/core").Rule<{
7
7
  readonly url: string;
8
8
  }, "noFunctionConstructor", undefined>;
9
9
  export default _default;
10
- //# sourceMappingURL=functionNewCalls.d.ts.map
@@ -14,16 +14,16 @@ var functionNewCalls_default = ruleCreator.createRule(typescriptLanguage, {
14
14
  suggestions: ["Define functions using function declarations (`function name() {}`) or arrow functions (`() => {}`) instead.", "If dynamic code generation is truly necessary, consider safer alternatives like passing functions as parameters or using a more constrained domain-specific approach."]
15
15
  } },
16
16
  setup(context) {
17
- function checkNode(node, { sourceFile, typeChecker }) {
18
- if (isFunctionConstructor(node, typeChecker)) context.report({
17
+ function checkNode(node, { program, sourceFile, typeChecker }) {
18
+ if (isFunctionConstructor(node, typeChecker, program)) context.report({
19
19
  message: "noFunctionConstructor",
20
20
  range: getTSNodeRange(node.expression, sourceFile)
21
21
  });
22
22
  }
23
- function isFunctionConstructor(node, typeChecker) {
23
+ function isFunctionConstructor(node, typeChecker, program) {
24
24
  if (node.expression.kind === SyntaxKind.Identifier) {
25
- if (isGlobalDeclarationOfName(node.expression, "Function", typeChecker)) return true;
26
- } else if (node.expression.kind === SyntaxKind.PropertyAccessExpression && isGlobalDeclaration(node.expression, typeChecker)) {
25
+ if (isGlobalDeclarationOfName(node.expression, "Function", typeChecker, program)) return true;
26
+ } else if (node.expression.kind === SyntaxKind.PropertyAccessExpression && isGlobalDeclaration(node.expression, typeChecker, program)) {
27
27
  if (node.expression.name.text !== "Function") return false;
28
28
  const object = node.expression.expression;
29
29
  if (object.kind === SyntaxKind.Identifier) return object.text === "globalThis" || object.text === "window";
@@ -38,5 +38,3 @@ var functionNewCalls_default = ruleCreator.createRule(typescriptLanguage, {
38
38
  });
39
39
  //#endregion
40
40
  export { functionNewCalls_default as default };
41
-
42
- //# sourceMappingURL=functionNewCalls.js.map