@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
@@ -1,59 +0,0 @@
1
- import * as tsutils from "ts-api-utils";
2
- import * as ts from "typescript";
3
-
4
- import { typescriptLanguage } from "../language.js";
5
-
6
- export default typescriptLanguage.createRule({
7
- about: {
8
- description: "Reports returning values from constructor functions.",
9
- id: "constructorReturns",
10
- preset: "untyped",
11
- },
12
- messages: {
13
- noConstructorReturn: {
14
- primary:
15
- "Returning a value from a constructor function overrides the newly created instance.",
16
- secondary: [
17
- "This behavior is often unintentional and can lead to unexpected results.",
18
- "If you need to return a different object, consider using a factory function instead.",
19
- ],
20
- suggestions: [
21
- "Remove the return statement, or return without a value to exit early.",
22
- ],
23
- },
24
- },
25
- setup(context) {
26
- return {
27
- visitors: {
28
- Constructor: (node) => {
29
- if (!node.body) {
30
- return;
31
- }
32
-
33
- function checkForReturnStatements(node: ts.Node): void {
34
- if (ts.isReturnStatement(node)) {
35
- if (node.expression) {
36
- context.report({
37
- message: "noConstructorReturn",
38
- range: {
39
- begin: node.getStart(context.sourceFile),
40
- end: node.getEnd(),
41
- },
42
- });
43
- }
44
- return;
45
- }
46
-
47
- if (tsutils.isFunctionScopeBoundary(node)) {
48
- return;
49
- }
50
-
51
- ts.forEachChild(node, checkForReturnStatements);
52
- }
53
-
54
- ts.forEachChild(node.body, checkForReturnStatements);
55
- },
56
- },
57
- };
58
- },
59
- });
@@ -1,81 +0,0 @@
1
- import rule from "./debuggerStatements.js";
2
- import { ruleTester } from "./ruleTester.js";
3
-
4
- ruleTester.describe(rule, {
5
- invalid: [
6
- {
7
- code: `
8
- debugger;
9
- `,
10
- snapshot: `
11
- debugger;
12
- ~~~~~~~~~
13
- Debugger statements should not be used in production code.
14
- `,
15
- suggestions: [
16
- {
17
- id: "removeDebugger",
18
- updated: `
19
-
20
- `,
21
- },
22
- ],
23
- },
24
- {
25
- code: `
26
- function test() {
27
- debugger;
28
- }
29
- `,
30
- snapshot: `
31
- function test() {
32
- debugger;
33
- ~~~~~~~~~
34
- Debugger statements should not be used in production code.
35
- }
36
- `,
37
- suggestions: [
38
- {
39
- id: "removeDebugger",
40
- updated: `
41
- function test() {
42
-
43
- }
44
- `,
45
- },
46
- ],
47
- },
48
- {
49
- code: `
50
- if (condition) {
51
- debugger;
52
- }
53
- `,
54
- snapshot: `
55
- if (condition) {
56
- debugger;
57
- ~~~~~~~~~
58
- Debugger statements should not be used in production code.
59
- }
60
- `,
61
- suggestions: [
62
- {
63
- id: "removeDebugger",
64
- updated: `
65
- if (condition) {
66
-
67
- }
68
- `,
69
- },
70
- ],
71
- },
72
- ],
73
- valid: [
74
- `console.log("debugging");`,
75
- `function test() { console.log("test"); }`,
76
- `for (let i = 0; i < 10; i++) { break; }`,
77
- `for (let i = 0; i < 10; i++) { continue; }`,
78
- `function test() { return; }`,
79
- `throw new Error("test");`,
80
- ],
81
- });
@@ -1,45 +0,0 @@
1
- import { typescriptLanguage } from "../language.js";
2
-
3
- export default typescriptLanguage.createRule({
4
- about: {
5
- description: "Reports using debugger statements.",
6
- id: "debuggerStatements",
7
- preset: "logical",
8
- },
9
- messages: {
10
- noDebugger: {
11
- primary: "Debugger statements should not be used in production code.",
12
- secondary: [
13
- "The `debugger` statement causes the JavaScript runtime to pause execution and start a debugger if one is available, such as when browser developer tools are open.",
14
- "This can be useful during development, but should not be left in production code.",
15
- ],
16
- suggestions: [
17
- "Remove the `debugger` statement before shipping this code to users.",
18
- ],
19
- },
20
- },
21
- setup(context) {
22
- return {
23
- visitors: {
24
- DebuggerStatement: (node) => {
25
- const range = {
26
- begin: node.getStart(),
27
- end: node.getEnd(),
28
- };
29
-
30
- context.report({
31
- message: "noDebugger",
32
- range,
33
- suggestions: [
34
- {
35
- id: "removeDebugger",
36
- range,
37
- text: "",
38
- },
39
- ],
40
- });
41
- },
42
- },
43
- };
44
- },
45
- });
@@ -1,196 +0,0 @@
1
- import rule from "./defaultCaseLast.js";
2
- import { ruleTester } from "./ruleTester.js";
3
-
4
- ruleTester.describe(rule, {
5
- invalid: [
6
- {
7
- code: `
8
- switch (value) {
9
- default:
10
- break;
11
- case 1:
12
- break;
13
- }
14
- `,
15
- snapshot: `
16
- switch (value) {
17
- default:
18
- ~~~~~~~
19
- Default clauses in switch statements should be last.
20
- break;
21
- case 1:
22
- break;
23
- }
24
- `,
25
- },
26
- {
27
- code: `
28
- switch (value) {
29
- case 1:
30
- break;
31
- default:
32
- break;
33
- case 2:
34
- break;
35
- }
36
- `,
37
- snapshot: `
38
- switch (value) {
39
- case 1:
40
- break;
41
- default:
42
- ~~~~~~~
43
- Default clauses in switch statements should be last.
44
- break;
45
- case 2:
46
- break;
47
- }
48
- `,
49
- },
50
- {
51
- code: `
52
- switch (value) {
53
- case 1:
54
- case 2:
55
- break;
56
- default:
57
- break;
58
- case 3:
59
- break;
60
- }
61
- `,
62
- snapshot: `
63
- switch (value) {
64
- case 1:
65
- case 2:
66
- break;
67
- default:
68
- ~~~~~~~
69
- Default clauses in switch statements should be last.
70
- break;
71
- case 3:
72
- break;
73
- }
74
- `,
75
- },
76
- {
77
- code: `
78
- switch (value) {
79
- default:
80
- console.log("default");
81
- break;
82
- case 1:
83
- console.log("one");
84
- break;
85
- }
86
- `,
87
- snapshot: `
88
- switch (value) {
89
- default:
90
- ~~~~~~~
91
- Default clauses in switch statements should be last.
92
- console.log("default");
93
- break;
94
- case 1:
95
- console.log("one");
96
- break;
97
- }
98
- `,
99
- },
100
- {
101
- code: `
102
- const result = (value: number) => {
103
- switch (value) {
104
- case 1:
105
- return "one";
106
- default:
107
- return "default";
108
- case 2:
109
- return "two";
110
- }
111
- };
112
- `,
113
- snapshot: `
114
- const result = (value: number) => {
115
- switch (value) {
116
- case 1:
117
- return "one";
118
- default:
119
- ~~~~~~~
120
- Default clauses in switch statements should be last.
121
- return "default";
122
- case 2:
123
- return "two";
124
- }
125
- };
126
- `,
127
- },
128
- {
129
- code: `
130
- switch (value) {
131
- default:
132
- case 1:
133
- break;
134
- }
135
- `,
136
- snapshot: `
137
- switch (value) {
138
- default:
139
- ~~~~~~~
140
- Default clauses in switch statements should be last.
141
- case 1:
142
- break;
143
- }
144
- `,
145
- },
146
- ],
147
- valid: [
148
- `switch (value) { case 1: break; default: break; }`,
149
- `switch (value) { case 1: break; case 2: break; default: break; }`,
150
- `switch (value) { case 1: break; case 2: break; }`,
151
- `switch (value) { default: break; }`,
152
- `switch (value) { case 1: case 2: break; default: break; }`,
153
- `
154
- switch (value) {
155
- case 1:
156
- break;
157
- default:
158
- break;
159
- }
160
- `,
161
- `
162
- switch (value) {
163
- case 1:
164
- console.log("one");
165
- break;
166
- case 2:
167
- console.log("two");
168
- break;
169
- default:
170
- console.log("default");
171
- break;
172
- }
173
- `,
174
- `
175
- const result = (value: number) => {
176
- switch (value) {
177
- case 1:
178
- return "one";
179
- case 2:
180
- return "two";
181
- default:
182
- return "default";
183
- }
184
- };
185
- `,
186
- `
187
- switch (value) {
188
- case 1:
189
- case 2:
190
- break;
191
- default:
192
- break;
193
- }
194
- `,
195
- ],
196
- });
@@ -1,54 +0,0 @@
1
- import * as ts from "typescript";
2
-
3
- import { typescriptLanguage } from "../language.js";
4
-
5
- export default typescriptLanguage.createRule({
6
- about: {
7
- description:
8
- "Reports switch statements where the default clause is not last.",
9
- id: "defaultCaseLast",
10
- preset: "logical",
11
- },
12
- messages: {
13
- defaultCaseShouldBeLast: {
14
- primary: "Default clauses in switch statements should be last.",
15
- secondary: [
16
- "Placing the default clause in a position other than last can lead to confusion and unexpected behavior.",
17
- "While the default clause is executed when no case matches, having it in the middle of other cases makes the control flow harder to follow.",
18
- ],
19
- suggestions: [
20
- "Move the default clause to the end of the switch statement to improve code clarity.",
21
- ],
22
- },
23
- },
24
- setup(context) {
25
- return {
26
- visitors: {
27
- SwitchStatement: (node) => {
28
- const clauses = node.caseBlock.clauses;
29
- const defaultClauseIndex = clauses.findIndex(
30
- (clause) => clause.kind === ts.SyntaxKind.DefaultClause,
31
- );
32
-
33
- if (
34
- defaultClauseIndex === -1 ||
35
- defaultClauseIndex === clauses.length - 1
36
- ) {
37
- return;
38
- }
39
-
40
- const defaultClause = clauses[defaultClauseIndex];
41
-
42
- context.report({
43
- message: "defaultCaseShouldBeLast",
44
- range: {
45
- begin: defaultClause.getStart(context.sourceFile),
46
- end:
47
- defaultClause.getStart(context.sourceFile) + "default".length,
48
- },
49
- });
50
- },
51
- },
52
- };
53
- },
54
- });
@@ -1,140 +0,0 @@
1
- import rule from "./duplicateArguments.js";
2
- import { ruleTester } from "./ruleTester.js";
3
-
4
- ruleTester.describe(rule, {
5
- invalid: [
6
- {
7
- code: `
8
- function test(value, value) {
9
- return value;
10
- }
11
- `,
12
- snapshot: `
13
- function test(value, value) {
14
- ~~~~~
15
- This parameter overrides the previous parameter of the same name.
16
- return value;
17
- }
18
- `,
19
- },
20
- {
21
- code: `
22
- function test(first, second, first) {
23
- return first + second;
24
- }
25
- `,
26
- snapshot: `
27
- function test(first, second, first) {
28
- ~~~~~
29
- This parameter overrides the previous parameter of the same name.
30
- return first + second;
31
- }
32
- `,
33
- },
34
- {
35
- code: `
36
- const arrow = (value, value) => value;
37
- `,
38
- snapshot: `
39
- const arrow = (value, value) => value;
40
- ~~~~~
41
- This parameter overrides the previous parameter of the same name.
42
- `,
43
- },
44
- {
45
- code: `
46
- const func = function (value, value) {
47
- return value;
48
- };
49
- `,
50
- snapshot: `
51
- const func = function (value, value) {
52
- ~~~~~
53
- This parameter overrides the previous parameter of the same name.
54
- return value;
55
- };
56
- `,
57
- },
58
- {
59
- code: `
60
- class Example {
61
- method(value, value) {
62
- return value;
63
- }
64
- }
65
- `,
66
- snapshot: `
67
- class Example {
68
- method(value, value) {
69
- ~~~~~
70
- This parameter overrides the previous parameter of the same name.
71
- return value;
72
- }
73
- }
74
- `,
75
- },
76
- {
77
- code: `
78
- class Example {
79
- constructor(value, value) {
80
- this.value = value;
81
- }
82
- }
83
- `,
84
- snapshot: `
85
- class Example {
86
- constructor(value, value) {
87
- ~~~~~
88
- This parameter overrides the previous parameter of the same name.
89
- this.value = value;
90
- }
91
- }
92
- `,
93
- },
94
- {
95
- code: `
96
- function test(first, second, third, second) {
97
- return first + second + third;
98
- }
99
- `,
100
- snapshot: `
101
- function test(first, second, third, second) {
102
- ~~~~~~
103
- This parameter overrides the previous parameter of the same name.
104
- return first + second + third;
105
- }
106
- `,
107
- },
108
- {
109
- code: `
110
- function test(value, value, value) {
111
- return value;
112
- }
113
- `,
114
- snapshot: `
115
- function test(value, value, value) {
116
- ~~~~~
117
- This parameter overrides the previous parameter of the same name.
118
- ~~~~~
119
- This parameter overrides the previous parameter of the same name.
120
- return value;
121
- }
122
- `,
123
- },
124
- ],
125
- valid: [
126
- `function test(value) { return value; }`,
127
- `function test(first, second) { return first + second; }`,
128
- `const arrow = (value) => value;`,
129
- `const arrow = (first, second) => first + second;`,
130
- `const func = function (value) { return value; };`,
131
- `const func = function (first, second) { return first + second; };`,
132
- `class Example { method(value) { return value; } }`,
133
- `class Example { method(first, second) { return first + second; } }`,
134
- `class Example { constructor(value) { this.value = value; } }`,
135
- `class Example { constructor(first, second) { this.first = first; this.second = second; } }`,
136
- `function test({ value }) { return value; }`,
137
- `function test({ first, second }) { return first + second; }`,
138
- `function test([first, second]) { return first + second; }`,
139
- ],
140
- });
@@ -1,58 +0,0 @@
1
- import * as ts from "typescript";
2
-
3
- import { getTSNodeRange } from "../getTSNodeRange.js";
4
- import { typescriptLanguage } from "../language.js";
5
-
6
- export default typescriptLanguage.createRule({
7
- about: {
8
- description:
9
- "Reports functions with duplicate parameter names in their signatures.",
10
- id: "duplicateArguments",
11
- preset: "untyped",
12
- },
13
- messages: {
14
- duplicateParam: {
15
- primary:
16
- "This parameter overrides the previous parameter of the same name.",
17
- secondary: [
18
- "Duplicate parameter names in functions can lead to unexpected behavior and make code harder to understand.",
19
- "In strict mode, duplicate parameter names are a syntax error.",
20
- "Even in non-strict mode, only the last parameter with a given name is accessible.",
21
- ],
22
- suggestions: ["Rename one of the duplicate parameters to a unique name."],
23
- },
24
- },
25
- setup(context) {
26
- function checkNode({ parameters }: ts.FunctionLikeDeclaration) {
27
- const seenNames = new Set<string>();
28
-
29
- for (const parameter of parameters) {
30
- if (!ts.isIdentifier(parameter.name)) {
31
- continue;
32
- }
33
-
34
- const parameterName = parameter.name.text;
35
- const existingParameter = seenNames.has(parameterName);
36
-
37
- if (existingParameter) {
38
- context.report({
39
- message: "duplicateParam",
40
- range: getTSNodeRange(parameter.name, context.sourceFile),
41
- });
42
- } else {
43
- seenNames.add(parameterName);
44
- }
45
- }
46
- }
47
-
48
- return {
49
- visitors: {
50
- ArrowFunction: checkNode,
51
- Constructor: checkNode,
52
- FunctionDeclaration: checkNode,
53
- FunctionExpression: checkNode,
54
- MethodDeclaration: checkNode,
55
- },
56
- };
57
- },
58
- });