@flint.fyi/ts 0.14.5 → 0.15.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 (433) hide show
  1. package/lib/collectReferencedFilePaths.d.ts +1 -0
  2. package/lib/collectReferencedFilePaths.js +3 -2
  3. package/lib/convertTypeScriptDiagnosticToLanguageFileDiagnostic.d.ts +14 -0
  4. package/lib/{formatDiagnostic.js → convertTypeScriptDiagnosticToLanguageFileDiagnostic.js} +23 -15
  5. package/lib/createTypeScriptFileFromProgram.d.ts +4 -1
  6. package/lib/createTypeScriptFileFromProgram.js +25 -30
  7. package/lib/createTypeScriptFileFromProjectService.d.ts +3 -6
  8. package/lib/createTypeScriptFileFromProjectService.js +5 -11
  9. package/lib/directives/parseDirectivesFromTypeScriptFile.d.ts +8 -0
  10. package/lib/directives/parseDirectivesFromTypeScriptFile.js +12 -4
  11. package/lib/directives/parseDirectivesFromTypeScriptFile.test.d.ts +1 -0
  12. package/lib/directives/parseDirectivesFromTypeScriptFile.test.js +1 -0
  13. package/lib/getFirstEnumValues.d.ts +1 -0
  14. package/lib/getFirstEnumValues.js +1 -0
  15. package/lib/getFirstEnumValues.test.d.ts +1 -0
  16. package/lib/getFirstEnumValues.test.js +1 -0
  17. package/lib/getTSNodeRange.d.ts +1 -0
  18. package/lib/getTSNodeRange.js +1 -0
  19. package/lib/index.d.ts +6 -0
  20. package/lib/index.js +5 -0
  21. package/lib/language.d.ts +3 -2
  22. package/lib/language.js +7 -52
  23. package/lib/nodes.d.ts +1 -0
  24. package/lib/nodes.js +1 -0
  25. package/lib/normalizeRange.d.ts +1 -0
  26. package/lib/normalizeRange.js +4 -6
  27. package/lib/plugin.d.ts +79 -50
  28. package/lib/plugin.js +16 -1
  29. package/lib/prepareTypeScriptBasedLanguage.d.ts +11 -0
  30. package/lib/prepareTypeScriptBasedLanguage.js +59 -0
  31. package/lib/prepareTypeScriptFile.d.ts +9 -4
  32. package/lib/prepareTypeScriptFile.js +8 -2
  33. package/lib/rules/anyReturns.d.ts +2 -1
  34. package/lib/rules/anyReturns.js +22 -22
  35. package/lib/rules/anyReturns.test.d.ts +1 -0
  36. package/lib/rules/anyReturns.test.js +1 -0
  37. package/lib/rules/asyncPromiseExecutors.d.ts +2 -1
  38. package/lib/rules/asyncPromiseExecutors.js +4 -3
  39. package/lib/rules/asyncPromiseExecutors.test.d.ts +1 -0
  40. package/lib/rules/asyncPromiseExecutors.test.js +1 -0
  41. package/lib/rules/caseDeclarations.d.ts +3 -1
  42. package/lib/rules/caseDeclarations.js +7 -6
  43. package/lib/rules/caseDeclarations.test.d.ts +1 -0
  44. package/lib/rules/caseDeclarations.test.js +1 -0
  45. package/lib/rules/caseDuplicates.d.ts +2 -1
  46. package/lib/rules/caseDuplicates.js +4 -3
  47. package/lib/rules/caseDuplicates.test.d.ts +1 -0
  48. package/lib/rules/caseDuplicates.test.js +1 -0
  49. package/lib/rules/chainedAssignments.d.ts +2 -1
  50. package/lib/rules/chainedAssignments.js +3 -2
  51. package/lib/rules/chainedAssignments.test.d.ts +1 -0
  52. package/lib/rules/chainedAssignments.test.js +1 -0
  53. package/lib/rules/classAssignments.d.ts +2 -1
  54. package/lib/rules/classAssignments.js +4 -3
  55. package/lib/rules/classAssignments.test.d.ts +1 -0
  56. package/lib/rules/classAssignments.test.js +1 -0
  57. package/lib/rules/consecutiveNonNullAssertions.d.ts +2 -1
  58. package/lib/rules/consecutiveNonNullAssertions.js +1 -0
  59. package/lib/rules/consecutiveNonNullAssertions.test.d.ts +1 -0
  60. package/lib/rules/consecutiveNonNullAssertions.test.js +1 -0
  61. package/lib/rules/constantAssignments.d.ts +2 -1
  62. package/lib/rules/constantAssignments.js +4 -3
  63. package/lib/rules/constantAssignments.test.d.ts +1 -0
  64. package/lib/rules/constantAssignments.test.js +1 -0
  65. package/lib/rules/constructorReturns.d.ts +2 -1
  66. package/lib/rules/constructorReturns.js +3 -2
  67. package/lib/rules/constructorReturns.test.d.ts +1 -0
  68. package/lib/rules/constructorReturns.test.js +1 -0
  69. package/lib/rules/debuggerStatements.d.ts +2 -1
  70. package/lib/rules/debuggerStatements.js +1 -0
  71. package/lib/rules/debuggerStatements.test.d.ts +1 -0
  72. package/lib/rules/debuggerStatements.test.js +1 -0
  73. package/lib/rules/defaultCaseLast.d.ts +2 -1
  74. package/lib/rules/defaultCaseLast.js +4 -3
  75. package/lib/rules/defaultCaseLast.test.d.ts +1 -0
  76. package/lib/rules/defaultCaseLast.test.js +1 -0
  77. package/lib/rules/duplicateArguments.d.ts +3 -1
  78. package/lib/rules/duplicateArguments.js +3 -2
  79. package/lib/rules/duplicateArguments.test.d.ts +1 -0
  80. package/lib/rules/duplicateArguments.test.js +1 -0
  81. package/lib/rules/elseIfDuplicates.d.ts +2 -1
  82. package/lib/rules/elseIfDuplicates.js +6 -5
  83. package/lib/rules/elseIfDuplicates.test.d.ts +1 -0
  84. package/lib/rules/elseIfDuplicates.test.js +1 -0
  85. package/lib/rules/emptyBlocks.d.ts +2 -1
  86. package/lib/rules/emptyBlocks.js +12 -10
  87. package/lib/rules/emptyBlocks.test.d.ts +1 -0
  88. package/lib/rules/emptyBlocks.test.js +1 -0
  89. package/lib/rules/emptyDestructures.d.ts +3 -1
  90. package/lib/rules/emptyDestructures.js +3 -2
  91. package/lib/rules/emptyDestructures.test.d.ts +1 -0
  92. package/lib/rules/emptyDestructures.test.js +1 -0
  93. package/lib/rules/emptyStaticBlocks.d.ts +2 -1
  94. package/lib/rules/emptyStaticBlocks.js +5 -4
  95. package/lib/rules/emptyStaticBlocks.test.d.ts +1 -0
  96. package/lib/rules/emptyStaticBlocks.test.js +1 -0
  97. package/lib/rules/exceptionAssignments.d.ts +2 -1
  98. package/lib/rules/exceptionAssignments.js +4 -3
  99. package/lib/rules/exceptionAssignments.test.d.ts +1 -0
  100. package/lib/rules/exceptionAssignments.test.js +1 -0
  101. package/lib/rules/finallyStatementSafety.d.ts +7 -0
  102. package/lib/rules/finallyStatementSafety.js +71 -0
  103. package/lib/rules/finallyStatementSafety.test.d.ts +2 -0
  104. package/lib/rules/finallyStatementSafety.test.js +307 -0
  105. package/lib/rules/forDirections.d.ts +2 -1
  106. package/lib/rules/forDirections.js +18 -10
  107. package/lib/rules/forDirections.test.d.ts +1 -0
  108. package/lib/rules/forDirections.test.js +26 -0
  109. package/lib/rules/forInArrays.d.ts +2 -1
  110. package/lib/rules/forInArrays.js +8 -7
  111. package/lib/rules/forInArrays.test.d.ts +1 -0
  112. package/lib/rules/forInArrays.test.js +1 -0
  113. package/lib/rules/functionAssignments.d.ts +2 -1
  114. package/lib/rules/functionAssignments.js +4 -3
  115. package/lib/rules/functionAssignments.test.d.ts +1 -0
  116. package/lib/rules/functionAssignments.test.js +1 -0
  117. package/lib/rules/functionCurryingRedundancy.d.ts +7 -0
  118. package/lib/rules/functionCurryingRedundancy.js +77 -0
  119. package/lib/rules/functionCurryingRedundancy.test.d.ts +2 -0
  120. package/lib/rules/functionCurryingRedundancy.test.js +172 -0
  121. package/lib/rules/functionNewCalls.d.ts +3 -1
  122. package/lib/rules/functionNewCalls.js +7 -6
  123. package/lib/rules/functionNewCalls.test.d.ts +1 -0
  124. package/lib/rules/functionNewCalls.test.js +1 -0
  125. package/lib/rules/generatorFunctionYields.d.ts +3 -1
  126. package/lib/rules/generatorFunctionYields.js +3 -2
  127. package/lib/rules/generatorFunctionYields.test.d.ts +1 -0
  128. package/lib/rules/generatorFunctionYields.test.js +1 -0
  129. package/lib/rules/globalAssignments.d.ts +2 -1
  130. package/lib/rules/globalAssignments.js +10 -9
  131. package/lib/rules/globalAssignments.test.d.ts +1 -0
  132. package/lib/rules/globalAssignments.test.js +1 -0
  133. package/lib/rules/globalObjectCalls.d.ts +3 -1
  134. package/lib/rules/globalObjectCalls.js +5 -4
  135. package/lib/rules/globalObjectCalls.test.d.ts +1 -0
  136. package/lib/rules/globalObjectCalls.test.js +1 -0
  137. package/lib/rules/namespaceDeclarations.d.ts +2 -1
  138. package/lib/rules/namespaceDeclarations.js +7 -6
  139. package/lib/rules/namespaceDeclarations.test.d.ts +1 -0
  140. package/lib/rules/namespaceDeclarations.test.js +1 -0
  141. package/lib/rules/negativeZeroComparisons.d.ts +2 -1
  142. package/lib/rules/negativeZeroComparisons.js +8 -7
  143. package/lib/rules/negativeZeroComparisons.test.d.ts +1 -0
  144. package/lib/rules/negativeZeroComparisons.test.js +1 -0
  145. package/lib/rules/newExpressions.d.ts +2 -1
  146. package/lib/rules/newExpressions.js +3 -2
  147. package/lib/rules/newExpressions.test.d.ts +1 -0
  148. package/lib/rules/newExpressions.test.js +1 -0
  149. package/lib/rules/newNativeNonConstructors.d.ts +2 -1
  150. package/lib/rules/newNativeNonConstructors.js +6 -5
  151. package/lib/rules/newNativeNonConstructors.test.d.ts +1 -0
  152. package/lib/rules/newNativeNonConstructors.test.js +1 -0
  153. package/lib/rules/nonOctalDecimalEscapes.d.ts +3 -1
  154. package/lib/rules/nonOctalDecimalEscapes.js +4 -3
  155. package/lib/rules/nonOctalDecimalEscapes.test.d.ts +1 -0
  156. package/lib/rules/nonOctalDecimalEscapes.test.js +1 -0
  157. package/lib/rules/numericLiteralParsing.d.ts +2 -1
  158. package/lib/rules/numericLiteralParsing.js +8 -7
  159. package/lib/rules/numericLiteralParsing.test.d.ts +1 -0
  160. package/lib/rules/numericLiteralParsing.test.js +1 -0
  161. package/lib/rules/objectCalls.d.ts +7 -0
  162. package/lib/rules/objectCalls.js +47 -0
  163. package/lib/rules/objectCalls.test.d.ts +2 -0
  164. package/lib/rules/objectCalls.test.js +172 -0
  165. package/lib/rules/objectHasOwns.d.ts +7 -0
  166. package/lib/rules/objectHasOwns.js +74 -0
  167. package/lib/rules/objectHasOwns.test.d.ts +2 -0
  168. package/lib/rules/objectHasOwns.test.js +112 -0
  169. package/lib/rules/objectKeyDuplicates.d.ts +7 -0
  170. package/lib/rules/objectKeyDuplicates.js +91 -0
  171. package/lib/rules/objectKeyDuplicates.test.d.ts +2 -0
  172. package/lib/rules/objectKeyDuplicates.test.js +180 -0
  173. package/lib/rules/objectProto.d.ts +2 -1
  174. package/lib/rules/objectProto.js +5 -4
  175. package/lib/rules/objectProto.test.d.ts +1 -0
  176. package/lib/rules/objectProto.test.js +1 -0
  177. package/lib/rules/objectPrototypeBuiltIns.d.ts +7 -0
  178. package/lib/rules/objectPrototypeBuiltIns.js +65 -0
  179. package/lib/rules/objectPrototypeBuiltIns.test.d.ts +2 -0
  180. package/lib/rules/objectPrototypeBuiltIns.test.js +146 -0
  181. package/lib/rules/octalEscapes.d.ts +2 -1
  182. package/lib/rules/octalEscapes.js +13 -8
  183. package/lib/rules/octalEscapes.test.d.ts +1 -0
  184. package/lib/rules/octalEscapes.test.js +1 -0
  185. package/lib/rules/octalNumbers.d.ts +2 -1
  186. package/lib/rules/octalNumbers.js +4 -3
  187. package/lib/rules/octalNumbers.test.d.ts +1 -0
  188. package/lib/rules/octalNumbers.test.js +1 -0
  189. package/lib/rules/returnAssignments.d.ts +2 -1
  190. package/lib/rules/returnAssignments.js +7 -6
  191. package/lib/rules/returnAssignments.test.d.ts +1 -0
  192. package/lib/rules/returnAssignments.test.js +1 -0
  193. package/lib/rules/ruleTester.d.ts +1 -0
  194. package/lib/rules/ruleTester.js +6 -1
  195. package/lib/rules/selfAssignments.d.ts +2 -1
  196. package/lib/rules/selfAssignments.js +4 -3
  197. package/lib/rules/selfAssignments.test.d.ts +1 -0
  198. package/lib/rules/selfAssignments.test.js +1 -0
  199. package/lib/rules/selfComparisons.d.ts +2 -1
  200. package/lib/rules/selfComparisons.js +4 -3
  201. package/lib/rules/selfComparisons.test.d.ts +1 -0
  202. package/lib/rules/selfComparisons.test.js +1 -0
  203. package/lib/rules/sequences.d.ts +2 -1
  204. package/lib/rules/sequences.js +3 -2
  205. package/lib/rules/sequences.test.d.ts +1 -0
  206. package/lib/rules/sequences.test.js +1 -0
  207. package/lib/rules/shadowedRestrictedNames.d.ts +2 -1
  208. package/lib/rules/shadowedRestrictedNames.js +24 -23
  209. package/lib/rules/shadowedRestrictedNames.test.d.ts +1 -0
  210. package/lib/rules/shadowedRestrictedNames.test.js +1 -0
  211. package/lib/rules/sparseArrays.d.ts +2 -1
  212. package/lib/rules/sparseArrays.js +5 -4
  213. package/lib/rules/sparseArrays.test.d.ts +1 -0
  214. package/lib/rules/sparseArrays.test.js +1 -0
  215. package/lib/rules/symbolDescriptions.d.ts +2 -1
  216. package/lib/rules/symbolDescriptions.js +3 -2
  217. package/lib/rules/symbolDescriptions.test.d.ts +1 -0
  218. package/lib/rules/symbolDescriptions.test.js +1 -0
  219. package/lib/rules/typeofComparisons.d.ts +2 -1
  220. package/lib/rules/typeofComparisons.js +5 -4
  221. package/lib/rules/typeofComparisons.test.d.ts +1 -0
  222. package/lib/rules/typeofComparisons.test.js +1 -0
  223. package/lib/rules/unassignedVariables.d.ts +2 -1
  224. package/lib/rules/unassignedVariables.js +4 -3
  225. package/lib/rules/unassignedVariables.test.d.ts +1 -0
  226. package/lib/rules/unassignedVariables.test.js +1 -0
  227. package/lib/rules/undefinedVariables.d.ts +2 -1
  228. package/lib/rules/undefinedVariables.js +5 -4
  229. package/lib/rules/undefinedVariables.test.d.ts +1 -0
  230. package/lib/rules/undefinedVariables.test.js +1 -0
  231. package/lib/rules/unicodeBOMs.d.ts +2 -1
  232. package/lib/rules/unicodeBOMs.js +27 -20
  233. package/lib/rules/unicodeBOMs.test.d.ts +1 -0
  234. package/lib/rules/unicodeBOMs.test.js +1 -0
  235. package/lib/rules/unnecessaryBlocks.d.ts +2 -1
  236. package/lib/rules/unnecessaryBlocks.js +4 -3
  237. package/lib/rules/unnecessaryBlocks.test.d.ts +1 -0
  238. package/lib/rules/unnecessaryBlocks.test.js +1 -0
  239. package/lib/rules/unnecessaryCatches.d.ts +2 -1
  240. package/lib/rules/unnecessaryCatches.js +4 -3
  241. package/lib/rules/unnecessaryCatches.test.d.ts +1 -0
  242. package/lib/rules/unnecessaryCatches.test.js +1 -0
  243. package/lib/rules/unnecessaryConcatenation.d.ts +2 -1
  244. package/lib/rules/unnecessaryConcatenation.js +3 -2
  245. package/lib/rules/unnecessaryConcatenation.test.d.ts +1 -0
  246. package/lib/rules/unnecessaryConcatenation.test.js +1 -0
  247. package/lib/rules/unsafeNegations.d.ts +2 -1
  248. package/lib/rules/unsafeNegations.js +3 -2
  249. package/lib/rules/unsafeNegations.test.d.ts +1 -0
  250. package/lib/rules/unsafeNegations.test.js +1 -0
  251. package/lib/rules/utils/discriminateAnyType.d.ts +1 -0
  252. package/lib/rules/utils/discriminateAnyType.js +1 -0
  253. package/lib/rules/utils/getConstrainedType.d.ts +1 -0
  254. package/lib/rules/utils/getConstrainedType.js +1 -0
  255. package/lib/rules/utils/getThisExpression.d.ts +1 -0
  256. package/lib/rules/utils/getThisExpression.js +1 -0
  257. package/lib/rules/utils/isTypeRecursive.d.ts +1 -0
  258. package/lib/rules/utils/isTypeRecursive.js +1 -0
  259. package/lib/rules/utils/isUnsafeAssignment.d.ts +1 -0
  260. package/lib/rules/utils/isUnsafeAssignment.js +1 -0
  261. package/lib/rules/utils/operators.d.ts +1 -0
  262. package/lib/rules/utils/operators.js +1 -0
  263. package/lib/rules/variableDeletions.d.ts +2 -1
  264. package/lib/rules/variableDeletions.js +3 -2
  265. package/lib/rules/variableDeletions.test.d.ts +1 -0
  266. package/lib/rules/variableDeletions.test.js +1 -0
  267. package/lib/rules/voidOperator.d.ts +2 -1
  268. package/lib/rules/voidOperator.js +3 -2
  269. package/lib/rules/voidOperator.test.d.ts +1 -0
  270. package/lib/rules/voidOperator.test.js +1 -0
  271. package/lib/rules/withStatements.d.ts +7 -0
  272. package/lib/rules/withStatements.js +37 -0
  273. package/lib/rules/withStatements.test.d.ts +2 -0
  274. package/lib/rules/withStatements.test.js +27 -0
  275. package/lib/utils/declarationIncludesGlobal.d.ts +1 -0
  276. package/lib/utils/declarationIncludesGlobal.js +1 -0
  277. package/lib/utils/declarationsIncludeGlobal.d.ts +1 -0
  278. package/lib/utils/declarationsIncludeGlobal.js +1 -0
  279. package/lib/utils/getDeclarationsIfGlobal.d.ts +1 -0
  280. package/lib/utils/getDeclarationsIfGlobal.js +1 -0
  281. package/lib/utils/getModifyingReferences.d.ts +1 -0
  282. package/lib/utils/getModifyingReferences.js +1 -0
  283. package/lib/utils/hasSameTokens.d.ts +1 -0
  284. package/lib/utils/hasSameTokens.js +1 -0
  285. package/lib/utils/isFunction.d.ts +3 -0
  286. package/lib/utils/isFunction.js +6 -0
  287. package/lib/utils/isGlobalDeclaration.d.ts +1 -0
  288. package/lib/utils/isGlobalDeclaration.js +1 -0
  289. package/lib/utils/isGlobalDeclarationOfName.d.ts +1 -0
  290. package/lib/utils/isGlobalDeclarationOfName.js +1 -0
  291. package/lib/utils/isGlobalVariable.d.ts +1 -0
  292. package/lib/utils/isGlobalVariable.js +1 -0
  293. package/lib/utils/unwrapParentParenthesizedExpressions.d.ts +1 -0
  294. package/lib/utils/unwrapParentParenthesizedExpressions.js +1 -0
  295. package/lib/utils/unwrapParenthesizedExpression.d.ts +1 -0
  296. package/lib/utils/unwrapParenthesizedExpression.js +1 -0
  297. package/package.json +17 -7
  298. package/CHANGELOG.md +0 -82
  299. package/lib/formatDiagnostic.d.ts +0 -10
  300. package/src/collectReferencedFilePaths.ts +0 -37
  301. package/src/createTypeScriptFileFromProgram.ts +0 -86
  302. package/src/createTypeScriptFileFromProjectService.ts +0 -31
  303. package/src/directives/parseDirectivesFromTypeScriptFile.test.ts +0 -108
  304. package/src/directives/parseDirectivesFromTypeScriptFile.ts +0 -31
  305. package/src/formatDiagnostic.ts +0 -166
  306. package/src/getFirstEnumValues.test.ts +0 -51
  307. package/src/getFirstEnumValues.ts +0 -59
  308. package/src/getTSNodeRange.ts +0 -13
  309. package/src/index.ts +0 -7
  310. package/src/language.ts +0 -122
  311. package/src/nodes.ts +0 -146
  312. package/src/normalizeRange.ts +0 -30
  313. package/src/plugin.ts +0 -111
  314. package/src/prepareTypeScriptFile.ts +0 -14
  315. package/src/rules/anyReturns.test.ts +0 -649
  316. package/src/rules/anyReturns.ts +0 -263
  317. package/src/rules/asyncPromiseExecutors.test.ts +0 -72
  318. package/src/rules/asyncPromiseExecutors.ts +0 -61
  319. package/src/rules/caseDeclarations.test.ts +0 -228
  320. package/src/rules/caseDeclarations.ts +0 -70
  321. package/src/rules/caseDuplicates.test.ts +0 -308
  322. package/src/rules/caseDuplicates.ts +0 -57
  323. package/src/rules/chainedAssignments.test.ts +0 -263
  324. package/src/rules/chainedAssignments.ts +0 -58
  325. package/src/rules/classAssignments.test.ts +0 -157
  326. package/src/rules/classAssignments.ts +0 -50
  327. package/src/rules/consecutiveNonNullAssertions.test.ts +0 -33
  328. package/src/rules/consecutiveNonNullAssertions.ts +0 -46
  329. package/src/rules/constantAssignments.test.ts +0 -222
  330. package/src/rules/constantAssignments.ts +0 -78
  331. package/src/rules/constructorReturns.test.ts +0 -97
  332. package/src/rules/constructorReturns.ts +0 -59
  333. package/src/rules/debuggerStatements.test.ts +0 -81
  334. package/src/rules/debuggerStatements.ts +0 -45
  335. package/src/rules/defaultCaseLast.test.ts +0 -196
  336. package/src/rules/defaultCaseLast.ts +0 -54
  337. package/src/rules/duplicateArguments.test.ts +0 -140
  338. package/src/rules/duplicateArguments.ts +0 -58
  339. package/src/rules/elseIfDuplicates.test.ts +0 -177
  340. package/src/rules/elseIfDuplicates.ts +0 -69
  341. package/src/rules/emptyBlocks.test.ts +0 -136
  342. package/src/rules/emptyBlocks.ts +0 -73
  343. package/src/rules/emptyDestructures.test.ts +0 -187
  344. package/src/rules/emptyDestructures.ts +0 -48
  345. package/src/rules/emptyStaticBlocks.test.ts +0 -168
  346. package/src/rules/emptyStaticBlocks.ts +0 -60
  347. package/src/rules/exceptionAssignments.test.ts +0 -265
  348. package/src/rules/exceptionAssignments.ts +0 -77
  349. package/src/rules/forDirections.test.ts +0 -100
  350. package/src/rules/forDirections.ts +0 -163
  351. package/src/rules/forInArrays.test.ts +0 -25
  352. package/src/rules/forInArrays.ts +0 -70
  353. package/src/rules/functionAssignments.test.ts +0 -210
  354. package/src/rules/functionAssignments.ts +0 -51
  355. package/src/rules/functionNewCalls.test.ts +0 -116
  356. package/src/rules/functionNewCalls.ts +0 -75
  357. package/src/rules/generatorFunctionYields.test.ts +0 -152
  358. package/src/rules/generatorFunctionYields.ts +0 -71
  359. package/src/rules/globalAssignments.test.ts +0 -216
  360. package/src/rules/globalAssignments.ts +0 -67
  361. package/src/rules/globalObjectCalls.test.ts +0 -94
  362. package/src/rules/globalObjectCalls.ts +0 -52
  363. package/src/rules/namespaceDeclarations.test.ts +0 -41
  364. package/src/rules/namespaceDeclarations.ts +0 -74
  365. package/src/rules/negativeZeroComparisons.test.ts +0 -210
  366. package/src/rules/negativeZeroComparisons.ts +0 -87
  367. package/src/rules/newExpressions.test.ts +0 -80
  368. package/src/rules/newExpressions.ts +0 -67
  369. package/src/rules/newNativeNonConstructors.test.ts +0 -95
  370. package/src/rules/newNativeNonConstructors.ts +0 -59
  371. package/src/rules/nonOctalDecimalEscapes.test.ts +0 -70
  372. package/src/rules/nonOctalDecimalEscapes.ts +0 -70
  373. package/src/rules/numericLiteralParsing.test.ts +0 -100
  374. package/src/rules/numericLiteralParsing.ts +0 -116
  375. package/src/rules/objectProto.test.ts +0 -97
  376. package/src/rules/objectProto.ts +0 -62
  377. package/src/rules/octalEscapes.test.ts +0 -214
  378. package/src/rules/octalEscapes.ts +0 -85
  379. package/src/rules/octalNumbers.test.ts +0 -246
  380. package/src/rules/octalNumbers.ts +0 -75
  381. package/src/rules/returnAssignments.test.ts +0 -186
  382. package/src/rules/returnAssignments.ts +0 -57
  383. package/src/rules/ruleTester.ts +0 -4
  384. package/src/rules/selfAssignments.test.ts +0 -67
  385. package/src/rules/selfAssignments.ts +0 -50
  386. package/src/rules/selfComparisons.test.ts +0 -298
  387. package/src/rules/selfComparisons.ts +0 -45
  388. package/src/rules/sequences.test.ts +0 -49
  389. package/src/rules/sequences.ts +0 -37
  390. package/src/rules/shadowedRestrictedNames.test.ts +0 -148
  391. package/src/rules/shadowedRestrictedNames.ts +0 -105
  392. package/src/rules/sparseArrays.test.ts +0 -111
  393. package/src/rules/sparseArrays.ts +0 -61
  394. package/src/rules/symbolDescriptions.test.ts +0 -90
  395. package/src/rules/symbolDescriptions.ts +0 -47
  396. package/src/rules/typeofComparisons.test.ts +0 -86
  397. package/src/rules/typeofComparisons.ts +0 -88
  398. package/src/rules/unassignedVariables.test.ts +0 -73
  399. package/src/rules/unassignedVariables.ts +0 -69
  400. package/src/rules/undefinedVariables.test.ts +0 -81
  401. package/src/rules/undefinedVariables.ts +0 -97
  402. package/src/rules/unicodeBOMs.test.ts +0 -67
  403. package/src/rules/unicodeBOMs.ts +0 -44
  404. package/src/rules/unnecessaryBlocks.test.ts +0 -148
  405. package/src/rules/unnecessaryBlocks.ts +0 -89
  406. package/src/rules/unnecessaryCatches.test.ts +0 -211
  407. package/src/rules/unnecessaryCatches.ts +0 -84
  408. package/src/rules/unnecessaryConcatenation.test.ts +0 -88
  409. package/src/rules/unnecessaryConcatenation.ts +0 -44
  410. package/src/rules/unsafeNegations.test.ts +0 -64
  411. package/src/rules/unsafeNegations.ts +0 -59
  412. package/src/rules/utils/discriminateAnyType.ts +0 -66
  413. package/src/rules/utils/getConstrainedType.ts +0 -9
  414. package/src/rules/utils/getThisExpression.ts +0 -24
  415. package/src/rules/utils/isTypeRecursive.ts +0 -10
  416. package/src/rules/utils/isUnsafeAssignment.ts +0 -113
  417. package/src/rules/utils/operators.ts +0 -39
  418. package/src/rules/variableDeletions.test.ts +0 -76
  419. package/src/rules/variableDeletions.ts +0 -43
  420. package/src/rules/voidOperator.test.ts +0 -99
  421. package/src/rules/voidOperator.ts +0 -38
  422. package/src/utils/declarationIncludesGlobal.ts +0 -9
  423. package/src/utils/declarationsIncludeGlobal.ts +0 -7
  424. package/src/utils/getDeclarationsIfGlobal.ts +0 -14
  425. package/src/utils/getModifyingReferences.ts +0 -58
  426. package/src/utils/hasSameTokens.ts +0 -45
  427. package/src/utils/isGlobalDeclaration.ts +0 -10
  428. package/src/utils/isGlobalDeclarationOfName.ts +0 -56
  429. package/src/utils/isGlobalVariable.ts +0 -30
  430. package/src/utils/unwrapParentParenthesizedExpressions.ts +0 -7
  431. package/src/utils/unwrapParenthesizedExpression.ts +0 -9
  432. package/tsconfig.json +0 -9
  433. package/tsconfig.tsbuildinfo +0 -1
@@ -2,5 +2,6 @@ declare const _default: import("@flint.fyi/core").Rule<{
2
2
  readonly description: "Reports using async functions as Promise executor functions.";
3
3
  readonly id: "asyncPromiseExecutors";
4
4
  readonly preset: "logical";
5
- }, import("../nodes.js").TSNodesByName, import("../language.js").TypeScriptServices, "asyncPromiseExecutor", undefined>;
5
+ }, import("../nodes.js").TSNodesByName, import("../language.js").TypeScriptFileServices, "asyncPromiseExecutor", undefined>;
6
6
  export default _default;
7
+ //# sourceMappingURL=asyncPromiseExecutors.d.ts.map
@@ -24,8 +24,8 @@ export default typescriptLanguage.createRule({
24
24
  setup(context) {
25
25
  return {
26
26
  visitors: {
27
- NewExpression: (node) => {
28
- if (!isGlobalDeclaration(node.expression, context.typeChecker) ||
27
+ NewExpression: (node, { sourceFile, typeChecker }) => {
28
+ if (!isGlobalDeclaration(node.expression, typeChecker) ||
29
29
  !node.arguments?.length) {
30
30
  return;
31
31
  }
@@ -40,7 +40,7 @@ export default typescriptLanguage.createRule({
40
40
  context.report({
41
41
  message: "asyncPromiseExecutor",
42
42
  range: {
43
- begin: asyncModifier.getStart(context.sourceFile),
43
+ begin: asyncModifier.getStart(sourceFile),
44
44
  end: asyncModifier.getEnd(),
45
45
  },
46
46
  });
@@ -49,3 +49,4 @@ export default typescriptLanguage.createRule({
49
49
  };
50
50
  },
51
51
  });
52
+ //# sourceMappingURL=asyncPromiseExecutors.js.map
@@ -1 +1,2 @@
1
1
  export {};
2
+ //# sourceMappingURL=asyncPromiseExecutors.test.d.ts.map
@@ -69,3 +69,4 @@ new SomethingElse(async (resolve) => {
69
69
  `,
70
70
  ],
71
71
  });
72
+ //# sourceMappingURL=asyncPromiseExecutors.test.js.map
@@ -1,6 +1,8 @@
1
+ import { TypeScriptFileServices } from "../language.js";
1
2
  declare const _default: import("@flint.fyi/core").Rule<{
2
3
  readonly description: "Reports lexical declarations in case clauses without wrapping them in blocks.";
3
4
  readonly id: "caseDeclarations";
4
5
  readonly preset: "untyped";
5
- }, import("../nodes.js").TSNodesByName, import("../language.js").TypeScriptServices, "unexpectedLexicalDeclaration", undefined>;
6
+ }, import("../nodes.js").TSNodesByName, TypeScriptFileServices, "unexpectedLexicalDeclaration", undefined>;
6
7
  export default _default;
8
+ //# sourceMappingURL=caseDeclarations.d.ts.map
@@ -21,25 +21,25 @@ export default typescriptLanguage.createRule({
21
21
  },
22
22
  },
23
23
  setup(context) {
24
- function getLexicalDeclaration(statements) {
24
+ function getLexicalDeclaration(statements, sourceFile) {
25
25
  for (const statement of statements) {
26
26
  if (ts.isVariableStatement(statement) &&
27
27
  tsutils.isNodeFlagSet(statement.declarationList, ts.NodeFlags.Let | ts.NodeFlags.Const)) {
28
- return statement.declarationList.getChildAt(0, context.sourceFile);
28
+ return statement.declarationList.getChildAt(0, sourceFile);
29
29
  }
30
30
  if (ts.isClassDeclaration(statement) ||
31
31
  ts.isFunctionDeclaration(statement)) {
32
- return statement.getChildAt(0, context.sourceFile);
32
+ return statement.getChildAt(0, sourceFile);
33
33
  }
34
34
  }
35
35
  return undefined;
36
36
  }
37
- function checkClause(node) {
38
- const declarationNode = getLexicalDeclaration(node.statements);
37
+ function checkClause(node, { sourceFile }) {
38
+ const declarationNode = getLexicalDeclaration(node.statements, sourceFile);
39
39
  if (declarationNode) {
40
40
  context.report({
41
41
  message: "unexpectedLexicalDeclaration",
42
- range: getTSNodeRange(declarationNode, context.sourceFile),
42
+ range: getTSNodeRange(declarationNode, sourceFile),
43
43
  });
44
44
  }
45
45
  }
@@ -51,3 +51,4 @@ export default typescriptLanguage.createRule({
51
51
  };
52
52
  },
53
53
  });
54
+ //# sourceMappingURL=caseDeclarations.js.map
@@ -1 +1,2 @@
1
1
  export {};
2
+ //# sourceMappingURL=caseDeclarations.test.d.ts.map
@@ -225,3 +225,4 @@ switch (value) {
225
225
  `,
226
226
  ],
227
227
  });
228
+ //# sourceMappingURL=caseDeclarations.test.js.map
@@ -2,5 +2,6 @@ declare const _default: import("@flint.fyi/core").Rule<{
2
2
  readonly description: "Reports switch statements with duplicate case clause test expressions.";
3
3
  readonly id: "caseDuplicates";
4
4
  readonly preset: "logical";
5
- }, import("../nodes.js").TSNodesByName, import("../language.js").TypeScriptServices, "duplicateCase", undefined>;
5
+ }, import("../nodes.js").TSNodesByName, import("../language.js").TypeScriptFileServices, "duplicateCase", undefined>;
6
6
  export default _default;
7
+ //# sourceMappingURL=caseDuplicates.d.ts.map
@@ -22,18 +22,18 @@ export default typescriptLanguage.createRule({
22
22
  setup(context) {
23
23
  return {
24
24
  visitors: {
25
- SwitchStatement: (node) => {
25
+ SwitchStatement: (node, { sourceFile }) => {
26
26
  const seenCases = [];
27
27
  for (const clause of node.caseBlock.clauses) {
28
28
  if (!ts.isCaseClause(clause)) {
29
29
  continue;
30
30
  }
31
- const isDuplicate = seenCases.some((seenCase) => hasSameTokens(seenCase, clause.expression, context.sourceFile));
31
+ const isDuplicate = seenCases.some((seenCase) => hasSameTokens(seenCase, clause.expression, sourceFile));
32
32
  if (isDuplicate) {
33
33
  context.report({
34
34
  message: "duplicateCase",
35
35
  range: {
36
- begin: clause.getStart(context.sourceFile),
36
+ begin: clause.getStart(sourceFile),
37
37
  end: clause.expression.getEnd(),
38
38
  },
39
39
  });
@@ -47,3 +47,4 @@ export default typescriptLanguage.createRule({
47
47
  };
48
48
  },
49
49
  });
50
+ //# sourceMappingURL=caseDuplicates.js.map
@@ -1 +1,2 @@
1
1
  export {};
2
+ //# sourceMappingURL=caseDuplicates.test.d.ts.map
@@ -305,3 +305,4 @@ const result = (input: number) => {
305
305
  `,
306
306
  ],
307
307
  });
308
+ //# sourceMappingURL=caseDuplicates.test.js.map
@@ -2,5 +2,6 @@ declare const _default: import("@flint.fyi/core").Rule<{
2
2
  readonly description: "Reports using chained assignment expressions (e.g., a = b = c).";
3
3
  readonly id: "chainedAssignments";
4
4
  readonly preset: "stylistic";
5
- }, import("../nodes.js").TSNodesByName, import("../language.js").TypeScriptServices, "noChainedAssignment", undefined>;
5
+ }, import("../nodes.js").TSNodesByName, import("../language.js").TypeScriptFileServices, "noChainedAssignment", undefined>;
6
6
  export default _default;
7
+ //# sourceMappingURL=chainedAssignments.d.ts.map
@@ -25,7 +25,7 @@ export default typescriptLanguage.createRule({
25
25
  setup(context) {
26
26
  return {
27
27
  visitors: {
28
- BinaryExpression: (node) => {
28
+ BinaryExpression: (node, { sourceFile }) => {
29
29
  if (!tsutils.isAssignmentKind(node.operatorToken.kind)) {
30
30
  return;
31
31
  }
@@ -40,10 +40,11 @@ export default typescriptLanguage.createRule({
40
40
  }
41
41
  context.report({
42
42
  message: "noChainedAssignment",
43
- range: getTSNodeRange(node.operatorToken, context.sourceFile),
43
+ range: getTSNodeRange(node.operatorToken, sourceFile),
44
44
  });
45
45
  },
46
46
  },
47
47
  };
48
48
  },
49
49
  });
50
+ //# sourceMappingURL=chainedAssignments.js.map
@@ -1 +1,2 @@
1
1
  export {};
2
+ //# sourceMappingURL=chainedAssignments.test.d.ts.map
@@ -260,3 +260,4 @@ result += 1 ** 2;
260
260
  `,
261
261
  ],
262
262
  });
263
+ //# sourceMappingURL=chainedAssignments.test.js.map
@@ -2,5 +2,6 @@ declare const _default: import("@flint.fyi/core").Rule<{
2
2
  readonly description: "Reports reassigning class declarations.";
3
3
  readonly id: "classAssignments";
4
4
  readonly preset: "untyped";
5
- }, import("../nodes.js").TSNodesByName, import("../language.js").TypeScriptServices, "noClassAssign", undefined>;
5
+ }, import("../nodes.js").TSNodesByName, import("../language.js").TypeScriptFileServices, "noClassAssign", undefined>;
6
6
  export default _default;
7
+ //# sourceMappingURL=classAssignments.d.ts.map
@@ -21,16 +21,16 @@ export default typescriptLanguage.createRule({
21
21
  setup(context) {
22
22
  return {
23
23
  visitors: {
24
- ClassDeclaration: (node) => {
24
+ ClassDeclaration: (node, { sourceFile, typeChecker }) => {
25
25
  if (!node.name) {
26
26
  return;
27
27
  }
28
- const modifyingReferences = getModifyingReferences(node.name, context.sourceFile, context.typeChecker);
28
+ const modifyingReferences = getModifyingReferences(node.name, sourceFile, typeChecker);
29
29
  for (const reference of modifyingReferences) {
30
30
  context.report({
31
31
  message: "noClassAssign",
32
32
  range: {
33
- begin: reference.getStart(context.sourceFile),
33
+ begin: reference.getStart(sourceFile),
34
34
  end: reference.getEnd(),
35
35
  },
36
36
  });
@@ -40,3 +40,4 @@ export default typescriptLanguage.createRule({
40
40
  };
41
41
  },
42
42
  });
43
+ //# sourceMappingURL=classAssignments.js.map
@@ -1 +1,2 @@
1
1
  export {};
2
+ //# sourceMappingURL=classAssignments.test.d.ts.map
@@ -154,3 +154,4 @@ instance.property = "value";
154
154
  `,
155
155
  ],
156
156
  });
157
+ //# sourceMappingURL=classAssignments.test.js.map
@@ -2,5 +2,6 @@ declare const _default: import("@flint.fyi/core").Rule<{
2
2
  readonly description: "Reports unnecessary extra non-null assertions.";
3
3
  readonly id: "consecutiveNonNullAssertions";
4
4
  readonly preset: "logical";
5
- }, import("../nodes.js").TSNodesByName, import("../language.js").TypeScriptServices, "consecutiveNonNullAssertion", undefined>;
5
+ }, import("../nodes.js").TSNodesByName, import("../language.js").TypeScriptFileServices, "consecutiveNonNullAssertion", undefined>;
6
6
  export default _default;
7
+ //# sourceMappingURL=consecutiveNonNullAssertions.d.ts.map
@@ -40,3 +40,4 @@ export default typescriptLanguage.createRule({
40
40
  };
41
41
  },
42
42
  });
43
+ //# sourceMappingURL=consecutiveNonNullAssertions.js.map
@@ -1 +1,2 @@
1
1
  export {};
2
+ //# sourceMappingURL=consecutiveNonNullAssertions.test.d.ts.map
@@ -30,3 +30,4 @@ outer?.inner!;
30
30
  `,
31
31
  ],
32
32
  });
33
+ //# sourceMappingURL=consecutiveNonNullAssertions.test.js.map
@@ -2,5 +2,6 @@ declare const _default: import("@flint.fyi/core").Rule<{
2
2
  readonly description: "Reports attempting to reassign variables declared with const.";
3
3
  readonly id: "constantAssignments";
4
4
  readonly preset: "untyped";
5
- }, import("../nodes.js").TSNodesByName, import("../language.js").TypeScriptServices, "noConstAssign", undefined>;
5
+ }, import("../nodes.js").TSNodesByName, import("../language.js").TypeScriptFileServices, "noConstAssign", undefined>;
6
6
  export default _default;
7
+ //# sourceMappingURL=constantAssignments.d.ts.map
@@ -34,7 +34,7 @@ export default typescriptLanguage.createRule({
34
34
  }
35
35
  return {
36
36
  visitors: {
37
- VariableDeclarationList: (node) => {
37
+ VariableDeclarationList: (node, { sourceFile, typeChecker }) => {
38
38
  if (!(node.flags & ts.NodeFlags.Const) ||
39
39
  node.declarations.length === 0) {
40
40
  return;
@@ -42,12 +42,12 @@ export default typescriptLanguage.createRule({
42
42
  for (const declaration of node.declarations) {
43
43
  const identifiers = collectBindingElements(declaration.name);
44
44
  for (const identifier of identifiers) {
45
- const modifyingReferences = getModifyingReferences(identifier, context.sourceFile, context.typeChecker);
45
+ const modifyingReferences = getModifyingReferences(identifier, sourceFile, typeChecker);
46
46
  for (const reference of modifyingReferences) {
47
47
  context.report({
48
48
  message: "noConstAssign",
49
49
  range: {
50
- begin: reference.getStart(context.sourceFile),
50
+ begin: reference.getStart(sourceFile),
51
51
  end: reference.getEnd(),
52
52
  },
53
53
  });
@@ -59,3 +59,4 @@ export default typescriptLanguage.createRule({
59
59
  };
60
60
  },
61
61
  });
62
+ //# sourceMappingURL=constantAssignments.js.map
@@ -1 +1,2 @@
1
1
  export {};
2
+ //# sourceMappingURL=constantAssignments.test.d.ts.map
@@ -219,3 +219,4 @@ class MyClass {
219
219
  `,
220
220
  ],
221
221
  });
222
+ //# sourceMappingURL=constantAssignments.test.js.map
@@ -2,5 +2,6 @@ declare const _default: import("@flint.fyi/core").Rule<{
2
2
  readonly description: "Reports returning values from constructor functions.";
3
3
  readonly id: "constructorReturns";
4
4
  readonly preset: "untyped";
5
- }, import("../nodes.js").TSNodesByName, import("../language.js").TypeScriptServices, "noConstructorReturn", undefined>;
5
+ }, import("../nodes.js").TSNodesByName, import("../language.js").TypeScriptFileServices, "noConstructorReturn", undefined>;
6
6
  export default _default;
7
+ //# sourceMappingURL=constructorReturns.d.ts.map
@@ -22,7 +22,7 @@ export default typescriptLanguage.createRule({
22
22
  setup(context) {
23
23
  return {
24
24
  visitors: {
25
- Constructor: (node) => {
25
+ Constructor: (node, { sourceFile }) => {
26
26
  if (!node.body) {
27
27
  return;
28
28
  }
@@ -32,7 +32,7 @@ export default typescriptLanguage.createRule({
32
32
  context.report({
33
33
  message: "noConstructorReturn",
34
34
  range: {
35
- begin: node.getStart(context.sourceFile),
35
+ begin: node.getStart(sourceFile),
36
36
  end: node.getEnd(),
37
37
  },
38
38
  });
@@ -50,3 +50,4 @@ export default typescriptLanguage.createRule({
50
50
  };
51
51
  },
52
52
  });
53
+ //# sourceMappingURL=constructorReturns.js.map
@@ -1 +1,2 @@
1
1
  export {};
2
+ //# sourceMappingURL=constructorReturns.test.d.ts.map
@@ -94,3 +94,4 @@ class Example {
94
94
  `class Example { constructor() { function helper() { return 1; } } }`,
95
95
  ],
96
96
  });
97
+ //# sourceMappingURL=constructorReturns.test.js.map
@@ -2,5 +2,6 @@ declare const _default: import("@flint.fyi/core").Rule<{
2
2
  readonly description: "Reports using debugger statements.";
3
3
  readonly id: "debuggerStatements";
4
4
  readonly preset: "logical";
5
- }, import("../nodes.js").TSNodesByName, import("../language.js").TypeScriptServices, "noDebugger", undefined>;
5
+ }, import("../nodes.js").TSNodesByName, import("../language.js").TypeScriptFileServices, "noDebugger", undefined>;
6
6
  export default _default;
7
+ //# sourceMappingURL=debuggerStatements.d.ts.map
@@ -41,3 +41,4 @@ export default typescriptLanguage.createRule({
41
41
  };
42
42
  },
43
43
  });
44
+ //# sourceMappingURL=debuggerStatements.js.map
@@ -1 +1,2 @@
1
1
  export {};
2
+ //# sourceMappingURL=debuggerStatements.test.d.ts.map
@@ -78,3 +78,4 @@ if (condition) {
78
78
  `throw new Error("test");`,
79
79
  ],
80
80
  });
81
+ //# sourceMappingURL=debuggerStatements.test.js.map
@@ -2,5 +2,6 @@ declare const _default: import("@flint.fyi/core").Rule<{
2
2
  readonly description: "Reports switch statements where the default clause is not last.";
3
3
  readonly id: "defaultCaseLast";
4
4
  readonly preset: "logical";
5
- }, import("../nodes.js").TSNodesByName, import("../language.js").TypeScriptServices, "defaultCaseShouldBeLast", undefined>;
5
+ }, import("../nodes.js").TSNodesByName, import("../language.js").TypeScriptFileServices, "defaultCaseShouldBeLast", undefined>;
6
6
  export default _default;
7
+ //# sourceMappingURL=defaultCaseLast.d.ts.map
@@ -21,7 +21,7 @@ export default typescriptLanguage.createRule({
21
21
  setup(context) {
22
22
  return {
23
23
  visitors: {
24
- SwitchStatement: (node) => {
24
+ SwitchStatement: (node, { sourceFile }) => {
25
25
  const clauses = node.caseBlock.clauses;
26
26
  const defaultClauseIndex = clauses.findIndex((clause) => clause.kind === ts.SyntaxKind.DefaultClause);
27
27
  if (defaultClauseIndex === -1 ||
@@ -32,8 +32,8 @@ export default typescriptLanguage.createRule({
32
32
  context.report({
33
33
  message: "defaultCaseShouldBeLast",
34
34
  range: {
35
- begin: defaultClause.getStart(context.sourceFile),
36
- end: defaultClause.getStart(context.sourceFile) + "default".length,
35
+ begin: defaultClause.getStart(sourceFile),
36
+ end: defaultClause.getStart(sourceFile) + "default".length,
37
37
  },
38
38
  });
39
39
  },
@@ -41,3 +41,4 @@ export default typescriptLanguage.createRule({
41
41
  };
42
42
  },
43
43
  });
44
+ //# sourceMappingURL=defaultCaseLast.js.map
@@ -1 +1,2 @@
1
1
  export {};
2
+ //# sourceMappingURL=defaultCaseLast.test.d.ts.map
@@ -193,3 +193,4 @@ switch (value) {
193
193
  `,
194
194
  ],
195
195
  });
196
+ //# sourceMappingURL=defaultCaseLast.test.js.map
@@ -1,6 +1,8 @@
1
+ import { TypeScriptFileServices } from "../language.js";
1
2
  declare const _default: import("@flint.fyi/core").Rule<{
2
3
  readonly description: "Reports functions with duplicate parameter names in their signatures.";
3
4
  readonly id: "duplicateArguments";
4
5
  readonly preset: "untyped";
5
- }, import("../nodes.js").TSNodesByName, import("../language.js").TypeScriptServices, "duplicateParam", undefined>;
6
+ }, import("../nodes.js").TSNodesByName, TypeScriptFileServices, "duplicateParam", undefined>;
6
7
  export default _default;
8
+ //# sourceMappingURL=duplicateArguments.d.ts.map
@@ -19,7 +19,7 @@ export default typescriptLanguage.createRule({
19
19
  },
20
20
  },
21
21
  setup(context) {
22
- function checkNode({ parameters }) {
22
+ function checkNode({ parameters }, { sourceFile }) {
23
23
  const seenNames = new Set();
24
24
  for (const parameter of parameters) {
25
25
  if (!ts.isIdentifier(parameter.name)) {
@@ -30,7 +30,7 @@ export default typescriptLanguage.createRule({
30
30
  if (existingParameter) {
31
31
  context.report({
32
32
  message: "duplicateParam",
33
- range: getTSNodeRange(parameter.name, context.sourceFile),
33
+ range: getTSNodeRange(parameter.name, sourceFile),
34
34
  });
35
35
  }
36
36
  else {
@@ -49,3 +49,4 @@ export default typescriptLanguage.createRule({
49
49
  };
50
50
  },
51
51
  });
52
+ //# sourceMappingURL=duplicateArguments.js.map
@@ -1 +1,2 @@
1
1
  export {};
2
+ //# sourceMappingURL=duplicateArguments.test.d.ts.map
@@ -137,3 +137,4 @@ function test(value, value, value) {
137
137
  `function test([first, second]) { return first + second; }`,
138
138
  ],
139
139
  });
140
+ //# sourceMappingURL=duplicateArguments.test.js.map
@@ -2,5 +2,6 @@ declare const _default: import("@flint.fyi/core").Rule<{
2
2
  readonly description: "Reports duplicate conditions in if-else-if chains that make code unreachable.";
3
3
  readonly id: "elseIfDuplicates";
4
4
  readonly preset: "logical";
5
- }, import("../nodes.js").TSNodesByName, import("../language.js").TypeScriptServices, "duplicateCondition", undefined>;
5
+ }, import("../nodes.js").TSNodesByName, import("../language.js").TypeScriptFileServices, "duplicateCondition", undefined>;
6
6
  export default _default;
7
+ //# sourceMappingURL=elseIfDuplicates.d.ts.map
@@ -21,14 +21,14 @@ export default typescriptLanguage.createRule({
21
21
  },
22
22
  },
23
23
  setup(context) {
24
- function checkIfStatement(node) {
24
+ function checkIfStatement(node, sourceFile) {
25
25
  const seen = [];
26
26
  let current = node;
27
27
  while (true) {
28
- if (seen.some((previous) => hasSameTokens(previous, current.expression, context.sourceFile))) {
28
+ if (seen.some((previous) => hasSameTokens(previous, current.expression, sourceFile))) {
29
29
  context.report({
30
30
  message: "duplicateCondition",
31
- range: getTSNodeRange(current.expression, context.sourceFile),
31
+ range: getTSNodeRange(current.expression, sourceFile),
32
32
  });
33
33
  }
34
34
  if (!current.elseStatement ||
@@ -41,13 +41,14 @@ export default typescriptLanguage.createRule({
41
41
  }
42
42
  return {
43
43
  visitors: {
44
- IfStatement: (node) => {
44
+ IfStatement: (node, { sourceFile }) => {
45
45
  if (!ts.isIfStatement(node.parent) ||
46
46
  node.parent.elseStatement !== node) {
47
- checkIfStatement(node);
47
+ checkIfStatement(node, sourceFile);
48
48
  }
49
49
  },
50
50
  },
51
51
  };
52
52
  },
53
53
  });
54
+ //# sourceMappingURL=elseIfDuplicates.js.map
@@ -1 +1,2 @@
1
1
  export {};
2
+ //# sourceMappingURL=elseIfDuplicates.test.d.ts.map
@@ -174,3 +174,4 @@ if (value) {
174
174
  `if (first) { doFirst(); } else if (second) { doSecond(); } else { doDefault(); }`,
175
175
  ],
176
176
  });
177
+ //# sourceMappingURL=elseIfDuplicates.test.js.map
@@ -2,5 +2,6 @@ declare const _default: import("@flint.fyi/core").Rule<{
2
2
  readonly description: "Reports empty block statements that should contain code.";
3
3
  readonly id: "emptyBlocks";
4
4
  readonly preset: "stylistic";
5
- }, import("../nodes.js").TSNodesByName, import("../language.js").TypeScriptServices, "emptyBlock", undefined>;
5
+ }, import("../nodes.js").TSNodesByName, import("../language.js").TypeScriptFileServices, "emptyBlock", undefined>;
6
6
  export default _default;
7
+ //# sourceMappingURL=emptyBlocks.d.ts.map
@@ -30,33 +30,34 @@ export default typescriptLanguage.createRule({
30
30
  },
31
31
  },
32
32
  setup(context) {
33
- function hasComments(block) {
34
- const fullText = context.sourceFile.getFullText();
35
- const openBrace = block.getStart(context.sourceFile);
33
+ function hasComments(block, sourceFile) {
34
+ const fullText = sourceFile.getFullText();
35
+ const openBrace = block.getStart(sourceFile);
36
36
  const closeBrace = block.getEnd();
37
37
  const innerText = fullText.substring(openBrace + 1, closeBrace - 1);
38
38
  // Check if there are any non-whitespace characters (which would be comments)
39
39
  // since we already know there are no statements
40
40
  return /\S+/.test(innerText.trim());
41
41
  }
42
- function isEmptyBlock(block) {
43
- return block.statements.length === 0 && !hasComments(block);
42
+ function isEmptyBlock(block, sourceFile) {
43
+ return block.statements.length === 0 && !hasComments(block, sourceFile);
44
44
  }
45
45
  return {
46
46
  visitors: {
47
- Block: (node) => {
48
- if (!allowedParents.has(node.parent.kind) && isEmptyBlock(node)) {
47
+ Block: (node, { sourceFile }) => {
48
+ if (!allowedParents.has(node.parent.kind) &&
49
+ isEmptyBlock(node, sourceFile)) {
49
50
  context.report({
50
51
  message: "emptyBlock",
51
- range: getTSNodeRange(node, context.sourceFile),
52
+ range: getTSNodeRange(node, sourceFile),
52
53
  });
53
54
  }
54
55
  },
55
- CaseBlock: (node) => {
56
+ CaseBlock: (node, { sourceFile }) => {
56
57
  if (node.clauses.length === 0) {
57
58
  context.report({
58
59
  message: "emptyBlock",
59
- range: getTSNodeRange(node, context.sourceFile),
60
+ range: getTSNodeRange(node, sourceFile),
60
61
  });
61
62
  }
62
63
  },
@@ -64,3 +65,4 @@ export default typescriptLanguage.createRule({
64
65
  };
65
66
  },
66
67
  });
68
+ //# sourceMappingURL=emptyBlocks.js.map
@@ -1 +1,2 @@
1
1
  export {};
2
+ //# sourceMappingURL=emptyBlocks.test.d.ts.map
@@ -133,3 +133,4 @@ try {
133
133
  `,
134
134
  ],
135
135
  });
136
+ //# sourceMappingURL=emptyBlocks.test.js.map
@@ -1,6 +1,8 @@
1
+ import { TypeScriptFileServices } from "../language.js";
1
2
  declare const _default: import("@flint.fyi/core").Rule<{
2
3
  readonly description: "Reports using empty destructuring patterns that destructure no values.";
3
4
  readonly id: "emptyDestructures";
4
5
  readonly preset: "logical";
5
- }, import("../nodes.js").TSNodesByName, import("../language.js").TypeScriptServices, "emptyPattern", undefined>;
6
+ }, import("../nodes.js").TSNodesByName, TypeScriptFileServices, "emptyPattern", undefined>;
6
7
  export default _default;
8
+ //# sourceMappingURL=emptyDestructures.d.ts.map