@flint.fyi/ts 0.14.6 → 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} +22 -14
  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 +1 -0
  27. package/lib/plugin.d.ts +79 -50
  28. package/lib/plugin.js +15 -0
  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 +3 -2
  107. package/lib/rules/forDirections.test.d.ts +1 -0
  108. package/lib/rules/forDirections.test.js +1 -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 -91
  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 -25
  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 -125
  350. package/src/rules/forDirections.ts +0 -174
  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
@@ -22,29 +22,30 @@ export default typescriptLanguage.createRule({
22
22
  },
23
23
  },
24
24
  setup(context) {
25
- function checkForAssignment(node) {
25
+ function checkForAssignment(node, sourceFile) {
26
26
  const unwrapped = unwrapParenthesizedExpression(node);
27
27
  if (ts.isBinaryExpression(unwrapped) &&
28
28
  tsutils.isAssignmentKind(unwrapped.operatorToken.kind)) {
29
29
  context.report({
30
30
  message: "noReturnAssign",
31
- range: getTSNodeRange(unwrapped.operatorToken, context.sourceFile),
31
+ range: getTSNodeRange(unwrapped.operatorToken, sourceFile),
32
32
  });
33
33
  }
34
34
  }
35
35
  return {
36
36
  visitors: {
37
- ArrowFunction: (node) => {
37
+ ArrowFunction: (node, { sourceFile }) => {
38
38
  if (!ts.isBlock(node.body)) {
39
- checkForAssignment(node.body);
39
+ checkForAssignment(node.body, sourceFile);
40
40
  }
41
41
  },
42
- ReturnStatement: (node) => {
42
+ ReturnStatement: (node, { sourceFile }) => {
43
43
  if (node.expression) {
44
- checkForAssignment(node.expression);
44
+ checkForAssignment(node.expression, sourceFile);
45
45
  }
46
46
  },
47
47
  },
48
48
  };
49
49
  },
50
50
  });
51
+ //# sourceMappingURL=returnAssignments.js.map
@@ -1 +1,2 @@
1
1
  export {};
2
+ //# sourceMappingURL=returnAssignments.test.d.ts.map
@@ -183,3 +183,4 @@ function arrowReturn() {
183
183
  `,
184
184
  ],
185
185
  });
186
+ //# sourceMappingURL=returnAssignments.test.js.map
@@ -1,2 +1,3 @@
1
1
  import { RuleTester } from "@flint.fyi/rule-tester";
2
2
  export declare const ruleTester: RuleTester;
3
+ //# sourceMappingURL=ruleTester.d.ts.map
@@ -1,3 +1,8 @@
1
1
  import { RuleTester } from "@flint.fyi/rule-tester";
2
2
  import { describe, it } from "vitest";
3
- export const ruleTester = new RuleTester({ describe, it });
3
+ export const ruleTester = new RuleTester({
4
+ defaults: { fileName: "file.ts" },
5
+ describe,
6
+ it,
7
+ });
8
+ //# sourceMappingURL=ruleTester.js.map
@@ -2,5 +2,6 @@ declare const _default: import("@flint.fyi/core").Rule<{
2
2
  readonly description: "Reports self-assignments which have no effect and are likely errors.";
3
3
  readonly id: "selfAssignments";
4
4
  readonly preset: "logical";
5
- }, import("../nodes.js").TSNodesByName, import("../language.js").TypeScriptServices, "selfAssignment", undefined>;
5
+ }, import("../nodes.js").TSNodesByName, import("../language.js").TypeScriptFileServices, "selfAssignment", undefined>;
6
6
  export default _default;
7
+ //# sourceMappingURL=selfAssignments.d.ts.map
@@ -22,7 +22,7 @@ export default typescriptLanguage.createRule({
22
22
  setup(context) {
23
23
  return {
24
24
  visitors: {
25
- BinaryExpression: (node) => {
25
+ BinaryExpression: (node, { sourceFile }) => {
26
26
  if (node.operatorToken.kind !== ts.SyntaxKind.EqualsToken &&
27
27
  node.operatorToken.kind !==
28
28
  ts.SyntaxKind.AmpersandAmpersandEqualsToken &&
@@ -31,10 +31,10 @@ export default typescriptLanguage.createRule({
31
31
  ts.SyntaxKind.QuestionQuestionEqualsToken) {
32
32
  return;
33
33
  }
34
- if (hasSameTokens(node.left, node.right, context.sourceFile)) {
34
+ if (hasSameTokens(node.left, node.right, sourceFile)) {
35
35
  context.report({
36
36
  message: "selfAssignment",
37
- range: getTSNodeRange(node, context.sourceFile),
37
+ range: getTSNodeRange(node, sourceFile),
38
38
  });
39
39
  }
40
40
  },
@@ -42,3 +42,4 @@ export default typescriptLanguage.createRule({
42
42
  };
43
43
  },
44
44
  });
45
+ //# sourceMappingURL=selfAssignments.js.map
@@ -1 +1,2 @@
1
1
  export {};
2
+ //# sourceMappingURL=selfAssignments.test.d.ts.map
@@ -64,3 +64,4 @@ This value is being assigned to itself, which does nothing.
64
64
  `a.b ||= a.c;`,
65
65
  ],
66
66
  });
67
+ //# sourceMappingURL=selfAssignments.test.js.map
@@ -2,5 +2,6 @@ declare const _default: import("@flint.fyi/core").Rule<{
2
2
  readonly description: "Reports comparing a value to itself.";
3
3
  readonly id: "selfComparisons";
4
4
  readonly preset: "logical";
5
- }, import("../nodes.js").TSNodesByName, import("../language.js").TypeScriptServices, "noSelfComparison", undefined>;
5
+ }, import("../nodes.js").TSNodesByName, import("../language.js").TypeScriptFileServices, "noSelfComparison", undefined>;
6
6
  export default _default;
7
+ //# sourceMappingURL=selfComparisons.d.ts.map
@@ -23,13 +23,13 @@ export default typescriptLanguage.createRule({
23
23
  setup(context) {
24
24
  return {
25
25
  visitors: {
26
- BinaryExpression: (node) => {
26
+ BinaryExpression: (node, { sourceFile }) => {
27
27
  if (isComparisonOperator(node.operatorToken) &&
28
- hasSameTokens(node.left, node.right, context.sourceFile)) {
28
+ hasSameTokens(node.left, node.right, sourceFile)) {
29
29
  context.report({
30
30
  message: "noSelfComparison",
31
31
  range: {
32
- begin: node.getStart(context.sourceFile),
32
+ begin: node.getStart(sourceFile),
33
33
  end: node.getEnd(),
34
34
  },
35
35
  });
@@ -39,3 +39,4 @@ export default typescriptLanguage.createRule({
39
39
  };
40
40
  },
41
41
  });
42
+ //# sourceMappingURL=selfComparisons.js.map
@@ -1 +1,2 @@
1
1
  export {};
2
+ //# sourceMappingURL=selfComparisons.test.d.ts.map
@@ -295,3 +295,4 @@ const result = value /* a */ /* b */ === value /* c */ /* d */;
295
295
  `const result = value1 /* a */ /* b */ === value2 /* c */ /* d */;`,
296
296
  ],
297
297
  });
298
+ //# sourceMappingURL=selfComparisons.test.js.map
@@ -2,5 +2,6 @@ declare const _default: import("@flint.fyi/core").Rule<{
2
2
  readonly description: "Reports using the comma operator in expressions.";
3
3
  readonly id: "sequences";
4
4
  readonly preset: "untyped";
5
- }, import("../nodes.js").TSNodesByName, import("../language.js").TypeScriptServices, "noSequences", undefined>;
5
+ }, import("../nodes.js").TSNodesByName, import("../language.js").TypeScriptFileServices, "noSequences", undefined>;
6
6
  export default _default;
7
+ //# sourceMappingURL=sequences.d.ts.map
@@ -20,11 +20,11 @@ export default typescriptLanguage.createRule({
20
20
  setup(context) {
21
21
  return {
22
22
  visitors: {
23
- BinaryExpression: (node) => {
23
+ BinaryExpression: (node, { sourceFile }) => {
24
24
  if (node.operatorToken.kind === ts.SyntaxKind.CommaToken) {
25
25
  context.report({
26
26
  message: "noSequences",
27
- range: getTSNodeRange(node.operatorToken, context.sourceFile),
27
+ range: getTSNodeRange(node.operatorToken, sourceFile),
28
28
  });
29
29
  }
30
30
  },
@@ -32,3 +32,4 @@ export default typescriptLanguage.createRule({
32
32
  };
33
33
  },
34
34
  });
35
+ //# sourceMappingURL=sequences.js.map
@@ -1 +1,2 @@
1
1
  export {};
2
+ //# sourceMappingURL=sequences.test.d.ts.map
@@ -46,3 +46,4 @@ for ((a = 1, b = 2); ; ) {
46
46
  `for (let i = 0; i < 10; i += 1) {}`,
47
47
  ],
48
48
  });
49
+ //# sourceMappingURL=sequences.test.js.map
@@ -2,5 +2,6 @@ declare const _default: import("@flint.fyi/core").Rule<{
2
2
  readonly description: "Reports variable declarations that shadow JavaScript's restricted names.";
3
3
  readonly id: "shadowedRestrictedNames";
4
4
  readonly preset: "untyped";
5
- }, import("../nodes.js").TSNodesByName, import("../language.js").TypeScriptServices, "shadowedRestrictedName", undefined>;
5
+ }, import("../nodes.js").TSNodesByName, import("../language.js").TypeScriptFileServices, "shadowedRestrictedName", undefined>;
6
6
  export default _default;
7
+ //# sourceMappingURL=shadowedRestrictedNames.d.ts.map
@@ -27,69 +27,70 @@ export default typescriptLanguage.createRule({
27
27
  },
28
28
  },
29
29
  setup(context) {
30
- function checkIdentifier(node) {
30
+ function checkIdentifier(node, sourceFile) {
31
31
  if (restrictedNames.has(node.text)) {
32
32
  context.report({
33
33
  data: {
34
34
  name: node.text,
35
35
  },
36
36
  message: "shadowedRestrictedName",
37
- range: getTSNodeRange(node, context.sourceFile),
37
+ range: getTSNodeRange(node, sourceFile),
38
38
  });
39
39
  }
40
40
  }
41
- function checkBindingName(name) {
41
+ function checkBindingName(name, sourceFile) {
42
42
  if (ts.isIdentifier(name)) {
43
- checkIdentifier(name);
43
+ checkIdentifier(name, sourceFile);
44
44
  }
45
45
  else if (ts.isObjectBindingPattern(name) ||
46
46
  ts.isArrayBindingPattern(name)) {
47
47
  for (const element of name.elements) {
48
48
  if (ts.isBindingElement(element)) {
49
- checkBindingName(element.name);
49
+ checkBindingName(element.name, sourceFile);
50
50
  }
51
51
  }
52
52
  }
53
53
  }
54
- function checkParameters(parameters) {
54
+ function checkParameters(parameters, sourceFile) {
55
55
  for (const parameter of parameters) {
56
- checkBindingName(parameter.name);
56
+ checkBindingName(parameter.name, sourceFile);
57
57
  }
58
58
  }
59
59
  return {
60
60
  visitors: {
61
- ArrowFunction: (node) => {
62
- checkParameters(node.parameters);
61
+ ArrowFunction: (node, { sourceFile }) => {
62
+ checkParameters(node.parameters, sourceFile);
63
63
  },
64
- ClassDeclaration: (node) => {
64
+ ClassDeclaration: (node, { sourceFile }) => {
65
65
  if (node.name) {
66
- checkIdentifier(node.name);
66
+ checkIdentifier(node.name, sourceFile);
67
67
  }
68
68
  },
69
- ClassExpression: (node) => {
69
+ ClassExpression: (node, { sourceFile }) => {
70
70
  if (node.name) {
71
- checkIdentifier(node.name);
71
+ checkIdentifier(node.name, sourceFile);
72
72
  }
73
73
  },
74
- FunctionDeclaration: (node) => {
74
+ FunctionDeclaration: (node, { sourceFile }) => {
75
75
  if (node.name) {
76
- checkIdentifier(node.name);
76
+ checkIdentifier(node.name, sourceFile);
77
77
  }
78
- checkParameters(node.parameters);
78
+ checkParameters(node.parameters, sourceFile);
79
79
  },
80
- FunctionExpression: (node) => {
80
+ FunctionExpression: (node, { sourceFile }) => {
81
81
  if (node.name) {
82
- checkIdentifier(node.name);
82
+ checkIdentifier(node.name, sourceFile);
83
83
  }
84
- checkParameters(node.parameters);
84
+ checkParameters(node.parameters, sourceFile);
85
85
  },
86
- MethodDeclaration: (node) => {
87
- checkParameters(node.parameters);
86
+ MethodDeclaration: (node, { sourceFile }) => {
87
+ checkParameters(node.parameters, sourceFile);
88
88
  },
89
- VariableDeclaration: (node) => {
90
- checkBindingName(node.name);
89
+ VariableDeclaration: (node, { sourceFile }) => {
90
+ checkBindingName(node.name, sourceFile);
91
91
  },
92
92
  },
93
93
  };
94
94
  },
95
95
  });
96
+ //# sourceMappingURL=shadowedRestrictedNames.js.map
@@ -1 +1,2 @@
1
1
  export {};
2
+ //# sourceMappingURL=shadowedRestrictedNames.test.d.ts.map
@@ -145,3 +145,4 @@ function test() {
145
145
  `obj.undefined = 5;`,
146
146
  ],
147
147
  });
148
+ //# sourceMappingURL=shadowedRestrictedNames.test.js.map
@@ -2,5 +2,6 @@ declare const _default: import("@flint.fyi/core").Rule<{
2
2
  readonly description: "Reports array literals with holes (sparse arrays).";
3
3
  readonly id: "sparseArrays";
4
4
  readonly preset: "logical";
5
- }, import("../nodes.js").TSNodesByName, import("../language.js").TypeScriptServices, "noSparseArray", undefined>;
5
+ }, import("../nodes.js").TSNodesByName, import("../language.js").TypeScriptFileServices, "noSparseArray", undefined>;
6
6
  export default _default;
7
+ //# sourceMappingURL=sparseArrays.d.ts.map
@@ -22,25 +22,25 @@ export default typescriptLanguage.createRule({
22
22
  setup(context) {
23
23
  return {
24
24
  visitors: {
25
- OmittedExpression: (node) => {
25
+ OmittedExpression: (node, { sourceFile }) => {
26
26
  const parent = node.parent;
27
27
  if (!ts.isArrayLiteralExpression(parent)) {
28
28
  return;
29
29
  }
30
30
  const syntaxList = parent
31
- .getChildren(context.sourceFile)
31
+ .getChildren(sourceFile)
32
32
  .find((child) => child.kind === ts.SyntaxKind.SyntaxList);
33
33
  if (!syntaxList) {
34
34
  return;
35
35
  }
36
- const children = syntaxList.getChildren(context.sourceFile);
36
+ const children = syntaxList.getChildren(sourceFile);
37
37
  const omittedIndex = children.indexOf(node);
38
38
  for (let i = omittedIndex + 1; i < children.length; i++) {
39
39
  if (children[i].kind === ts.SyntaxKind.CommaToken) {
40
40
  context.report({
41
41
  message: "noSparseArray",
42
42
  range: {
43
- begin: children[i].getStart(context.sourceFile),
43
+ begin: children[i].getStart(sourceFile),
44
44
  end: children[i].getEnd(),
45
45
  },
46
46
  });
@@ -52,3 +52,4 @@ export default typescriptLanguage.createRule({
52
52
  };
53
53
  },
54
54
  });
55
+ //# sourceMappingURL=sparseArrays.js.map
@@ -1 +1,2 @@
1
1
  export {};
2
+ //# sourceMappingURL=sparseArrays.test.d.ts.map
@@ -108,3 +108,4 @@ function getArray() {
108
108
  `const values = [null, undefined, 0, false, ""];`,
109
109
  ],
110
110
  });
111
+ //# sourceMappingURL=sparseArrays.test.js.map
@@ -2,5 +2,6 @@ declare const _default: import("@flint.fyi/core").Rule<{
2
2
  readonly description: "Reports Symbol() calls without description arguments.";
3
3
  readonly id: "symbolDescriptions";
4
4
  readonly preset: "stylistic";
5
- }, import("../nodes.js").TSNodesByName, import("../language.js").TypeScriptServices, "missingDescription", undefined>;
5
+ }, import("../nodes.js").TSNodesByName, import("../language.js").TypeScriptFileServices, "missingDescription", undefined>;
6
6
  export default _default;
7
+ //# sourceMappingURL=symbolDescriptions.d.ts.map
@@ -21,7 +21,7 @@ export default typescriptLanguage.createRule({
21
21
  setup(context) {
22
22
  return {
23
23
  visitors: {
24
- CallExpression: (node) => {
24
+ CallExpression: (node, { sourceFile }) => {
25
25
  if (!ts.isIdentifier(node.expression) ||
26
26
  node.expression.text !== "Symbol" ||
27
27
  node.arguments.length) {
@@ -30,7 +30,7 @@ export default typescriptLanguage.createRule({
30
30
  context.report({
31
31
  message: "missingDescription",
32
32
  range: {
33
- begin: node.getStart(context.sourceFile),
33
+ begin: node.getStart(sourceFile),
34
34
  end: node.getEnd(),
35
35
  },
36
36
  });
@@ -39,3 +39,4 @@ export default typescriptLanguage.createRule({
39
39
  };
40
40
  },
41
41
  });
42
+ //# sourceMappingURL=symbolDescriptions.js.map
@@ -1 +1,2 @@
1
1
  export {};
2
+ //# sourceMappingURL=symbolDescriptions.test.d.ts.map
@@ -87,3 +87,4 @@ const value = condition ? Symbol() : null;
87
87
  `Symbol("valid")`,
88
88
  ],
89
89
  });
90
+ //# sourceMappingURL=symbolDescriptions.test.js.map
@@ -2,5 +2,6 @@ declare const _default: import("@flint.fyi/core").Rule<{
2
2
  readonly description: "Reports typeof expressions that compare impossible string literals.";
3
3
  readonly id: "typeofComparisons";
4
4
  readonly preset: "untyped";
5
- }, import("../nodes.js").TSNodesByName, import("../language.js").TypeScriptServices, "invalidValue", undefined>;
5
+ }, import("../nodes.js").TSNodesByName, import("../language.js").TypeScriptFileServices, "invalidValue", undefined>;
6
6
  export default _default;
7
+ //# sourceMappingURL=typeofComparisons.d.ts.map
@@ -40,7 +40,7 @@ export default typescriptLanguage.createRule({
40
40
  },
41
41
  },
42
42
  setup(context) {
43
- function checkComparison(node) {
43
+ function checkComparison(node, sourceFile) {
44
44
  const leftTypeofOperand = getTypeofOperand(node.left);
45
45
  const rightTypeofOperand = getTypeofOperand(node.right);
46
46
  let comparisonValue;
@@ -57,22 +57,23 @@ export default typescriptLanguage.createRule({
57
57
  if (stringValue != null && !validTypeofValues.has(stringValue)) {
58
58
  context.report({
59
59
  message: "invalidValue",
60
- range: getTSNodeRange(comparisonValue, context.sourceFile),
60
+ range: getTSNodeRange(comparisonValue, sourceFile),
61
61
  });
62
62
  }
63
63
  }
64
64
  return {
65
65
  visitors: {
66
- BinaryExpression: (node) => {
66
+ BinaryExpression: (node, { sourceFile }) => {
67
67
  if (node.operatorToken.kind === ts.SyntaxKind.EqualsEqualsToken ||
68
68
  node.operatorToken.kind === ts.SyntaxKind.EqualsEqualsEqualsToken ||
69
69
  node.operatorToken.kind === ts.SyntaxKind.ExclamationEqualsToken ||
70
70
  node.operatorToken.kind ===
71
71
  ts.SyntaxKind.ExclamationEqualsEqualsToken) {
72
- checkComparison(node);
72
+ checkComparison(node, sourceFile);
73
73
  }
74
74
  },
75
75
  },
76
76
  };
77
77
  },
78
78
  });
79
+ //# sourceMappingURL=typeofComparisons.js.map
@@ -1 +1,2 @@
1
1
  export {};
2
+ //# sourceMappingURL=typeofComparisons.test.d.ts.map
@@ -83,3 +83,4 @@ const isValid = typeof input !== "array";
83
83
  `const type = typeof value;`,
84
84
  ],
85
85
  });
86
+ //# sourceMappingURL=typeofComparisons.test.js.map
@@ -2,5 +2,6 @@ declare const _default: import("@flint.fyi/core").Rule<{
2
2
  readonly description: "Reports variables that are declared but never assigned a value.";
3
3
  readonly id: "unassignedVariables";
4
4
  readonly preset: "untyped";
5
- }, import("../nodes.js").TSNodesByName, import("../language.js").TypeScriptServices, "noUnassigned", undefined>;
5
+ }, import("../nodes.js").TSNodesByName, import("../language.js").TypeScriptFileServices, "noUnassigned", undefined>;
6
6
  export default _default;
7
+ //# sourceMappingURL=unassignedVariables.d.ts.map
@@ -28,7 +28,7 @@ export default typescriptLanguage.createRule({
28
28
  }
29
29
  return {
30
30
  visitors: {
31
- VariableDeclaration: (node) => {
31
+ VariableDeclaration: (node, { sourceFile, typeChecker }) => {
32
32
  if (node.initializer || !ts.isIdentifier(node.name)) {
33
33
  return;
34
34
  }
@@ -36,14 +36,14 @@ export default typescriptLanguage.createRule({
36
36
  !!(node.parent.flags & ts.NodeFlags.Const)) {
37
37
  return;
38
38
  }
39
- if (!hasAssignments(node.name, context.sourceFile, context.typeChecker)) {
39
+ if (!hasAssignments(node.name, sourceFile, typeChecker)) {
40
40
  context.report({
41
41
  data: {
42
42
  name: node.name.text,
43
43
  },
44
44
  message: "noUnassigned",
45
45
  range: {
46
- begin: node.name.getStart(context.sourceFile),
46
+ begin: node.name.getStart(sourceFile),
47
47
  end: node.name.getEnd(),
48
48
  },
49
49
  });
@@ -53,3 +53,4 @@ export default typescriptLanguage.createRule({
53
53
  };
54
54
  },
55
55
  });
56
+ //# sourceMappingURL=unassignedVariables.js.map
@@ -1 +1,2 @@
1
1
  export {};
2
+ //# sourceMappingURL=unassignedVariables.test.d.ts.map
@@ -70,3 +70,4 @@ function example() {
70
70
  `let nullish; nullish ??= "fallback";`,
71
71
  ],
72
72
  });
73
+ //# sourceMappingURL=unassignedVariables.test.js.map
@@ -2,5 +2,6 @@ declare const _default: import("@flint.fyi/core").Rule<{
2
2
  readonly description: "Reports using variables that are not defined.";
3
3
  readonly id: "undefinedVariables";
4
4
  readonly preset: "untyped";
5
- }, import("../nodes.js").TSNodesByName, import("../language.js").TypeScriptServices, "undefinedVariable", undefined>;
5
+ }, import("../nodes.js").TSNodesByName, import("../language.js").TypeScriptFileServices, "undefinedVariable", undefined>;
6
6
  export default _default;
7
+ //# sourceMappingURL=undefinedVariables.d.ts.map
@@ -21,7 +21,7 @@ export default typescriptLanguage.createRule({
21
21
  setup(context) {
22
22
  return {
23
23
  visitors: {
24
- Identifier: (node) => {
24
+ Identifier: (node, { sourceFile, typeChecker }) => {
25
25
  if (ts.isVariableDeclaration(node.parent) &&
26
26
  node.parent.name === node) {
27
27
  return;
@@ -56,15 +56,15 @@ export default typescriptLanguage.createRule({
56
56
  return;
57
57
  }
58
58
  // TODO: This rule is untyped, so it should use scope analysis
59
- // https://github.com/JoshuaKGoldberg/flint/issues/400
60
- if (!context.typeChecker.getSymbolAtLocation(node)) {
59
+ // https://github.com/flint-fyi/flint/issues/400
60
+ if (!typeChecker.getSymbolAtLocation(node)) {
61
61
  context.report({
62
62
  data: {
63
63
  name: node.text,
64
64
  },
65
65
  message: "undefinedVariable",
66
66
  range: {
67
- begin: node.getStart(context.sourceFile),
67
+ begin: node.getStart(sourceFile),
68
68
  end: node.getEnd(),
69
69
  },
70
70
  });
@@ -74,3 +74,4 @@ export default typescriptLanguage.createRule({
74
74
  };
75
75
  },
76
76
  });
77
+ //# sourceMappingURL=undefinedVariables.js.map
@@ -1 +1,2 @@
1
1
  export {};
2
+ //# sourceMappingURL=undefinedVariables.test.d.ts.map
@@ -78,3 +78,4 @@ const result = first + second;
78
78
  `const array = [1, 2, 3]; array.forEach(item => console.log(item));`,
79
79
  ],
80
80
  });
81
+ //# sourceMappingURL=undefinedVariables.test.js.map
@@ -2,5 +2,6 @@ declare const _default: import("@flint.fyi/core").Rule<{
2
2
  readonly description: "Reports files with Unicode Byte Order Marks (BOMs).";
3
3
  readonly id: "unicodeBOMs";
4
4
  readonly preset: "stylistic";
5
- }, import("../nodes.js").TSNodesByName, import("../language.js").TypeScriptServices, "noBOM", undefined>;
5
+ }, import("../nodes.js").TSNodesByName, import("../language.js").TypeScriptFileServices, "noBOM", undefined>;
6
6
  export default _default;
7
+ //# sourceMappingURL=unicodeBOMs.d.ts.map
@@ -16,26 +16,33 @@ export default typescriptLanguage.createRule({
16
16
  },
17
17
  },
18
18
  setup(context) {
19
- const text = context.sourceFile.getFullText();
20
- if (text.charCodeAt(0) !== 0xfeff) {
21
- return {};
22
- }
23
- context.report({
24
- message: "noBOM",
25
- range: {
26
- begin: 0,
27
- end: 1,
28
- },
29
- suggestions: [
30
- {
31
- id: "removeBOM",
32
- range: {
33
- begin: 0,
34
- end: 1,
35
- },
36
- text: "",
19
+ return {
20
+ visitors: {
21
+ SourceFile: (node) => {
22
+ const text = node.getFullText();
23
+ if (text.charCodeAt(0) !== 0xfeff) {
24
+ return {};
25
+ }
26
+ context.report({
27
+ message: "noBOM",
28
+ range: {
29
+ begin: 0,
30
+ end: 1,
31
+ },
32
+ suggestions: [
33
+ {
34
+ id: "removeBOM",
35
+ range: {
36
+ begin: 0,
37
+ end: 1,
38
+ },
39
+ text: "",
40
+ },
41
+ ],
42
+ });
37
43
  },
38
- ],
39
- });
44
+ },
45
+ };
40
46
  },
41
47
  });
48
+ //# sourceMappingURL=unicodeBOMs.js.map
@@ -1 +1,2 @@
1
1
  export {};
2
+ //# sourceMappingURL=unicodeBOMs.test.d.ts.map