@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,157 +0,0 @@
1
- import rule from "./classAssignments.js";
2
- import { ruleTester } from "./ruleTester.js";
3
-
4
- ruleTester.describe(rule, {
5
- invalid: [
6
- {
7
- code: `
8
- class A {}
9
- A = 0;
10
- `,
11
- snapshot: `
12
- class A {}
13
- A = 0;
14
- ~
15
- Reassigning a class declaration is misleading and makes the class harder to use.
16
- `,
17
- },
18
- {
19
- code: `
20
- class MyClass {}
21
- MyClass = "string";
22
- `,
23
- snapshot: `
24
- class MyClass {}
25
- MyClass = "string";
26
- ~~~~~~~
27
- Reassigning a class declaration is misleading and makes the class harder to use.
28
- `,
29
- },
30
- {
31
- code: `
32
- class Counter {}
33
- Counter++;
34
- `,
35
- snapshot: `
36
- class Counter {}
37
- Counter++;
38
- ~~~~~~~
39
- Reassigning a class declaration is misleading and makes the class harder to use.
40
- `,
41
- },
42
- {
43
- code: `
44
- class Value {}
45
- ++Value;
46
- `,
47
- snapshot: `
48
- class Value {}
49
- ++Value;
50
- ~~~~~
51
- Reassigning a class declaration is misleading and makes the class harder to use.
52
- `,
53
- },
54
- {
55
- code: `
56
- class MyClass {}
57
- MyClass += "suffix";
58
- `,
59
- snapshot: `
60
- class MyClass {}
61
- MyClass += "suffix";
62
- ~~~~~~~
63
- Reassigning a class declaration is misleading and makes the class harder to use.
64
- `,
65
- },
66
- {
67
- code: `
68
- class Example {}
69
- Example ??= null;
70
- `,
71
- snapshot: `
72
- class Example {}
73
- Example ??= null;
74
- ~~~~~~~
75
- Reassigning a class declaration is misleading and makes the class harder to use.
76
- `,
77
- },
78
- {
79
- code: `
80
- class Test {}
81
- Test &&= false;
82
- `,
83
- snapshot: `
84
- class Test {}
85
- Test &&= false;
86
- ~~~~
87
- Reassigning a class declaration is misleading and makes the class harder to use.
88
- `,
89
- },
90
- {
91
- code: `
92
- class Data {}
93
- Data ||= null;
94
- `,
95
- snapshot: `
96
- class Data {}
97
- Data ||= null;
98
- ~~~~
99
- Reassigning a class declaration is misleading and makes the class harder to use.
100
- `,
101
- },
102
- {
103
- code: `
104
- class Outer {}
105
- function inner() {
106
- Outer = null;
107
- }
108
- `,
109
- snapshot: `
110
- class Outer {}
111
- function inner() {
112
- Outer = null;
113
- ~~~~~
114
- Reassigning a class declaration is misleading and makes the class harder to use.
115
- }
116
- `,
117
- },
118
- {
119
- code: `
120
- class MyClass {}
121
- if (true) {
122
- MyClass = null;
123
- }
124
- `,
125
- snapshot: `
126
- class MyClass {}
127
- if (true) {
128
- MyClass = null;
129
- ~~~~~~~
130
- Reassigning a class declaration is misleading and makes the class harder to use.
131
- }
132
- `,
133
- },
134
- ],
135
- valid: [
136
- `class A {}`,
137
- `class MyClass {} const instance = new MyClass();`,
138
- `class Counter {} const value = Counter;`,
139
- `class Example {} if (Example) { console.log(Example); }`,
140
- `const A = 0;`,
141
- `class A {} function inner() { const A = "shadowed"; A = "reassigning shadowed is ok"; }`,
142
- `let A = "outer"; class A {} A = "reassigning outer is ok";`,
143
- `
144
- class MyClass {}
145
- const derived = class extends MyClass {};
146
- `,
147
- `
148
- class Base {}
149
- class Derived extends Base {}
150
- `,
151
- `
152
- class MyClass {}
153
- const instance = new MyClass();
154
- instance.property = "value";
155
- `,
156
- ],
157
- });
@@ -1,50 +0,0 @@
1
- import { typescriptLanguage } from "../language.js";
2
- import { getModifyingReferences } from "../utils/getModifyingReferences.js";
3
-
4
- export default typescriptLanguage.createRule({
5
- about: {
6
- description: "Reports reassigning class declarations.",
7
- id: "classAssignments",
8
- preset: "untyped",
9
- },
10
- messages: {
11
- noClassAssign: {
12
- primary:
13
- "Reassigning a class declaration is misleading and makes the class harder to use.",
14
- secondary: [
15
- "Reassigning a class declaration can lead to unexpected behavior and makes code harder to understand.",
16
- "Class declarations are typically intended to be immutable references, and reassigning them can cause confusion about which class is being used.",
17
- ],
18
- suggestions: [
19
- "Use a different variable name if you need to store a modified reference to a class.",
20
- ],
21
- },
22
- },
23
- setup(context) {
24
- return {
25
- visitors: {
26
- ClassDeclaration: (node) => {
27
- if (!node.name) {
28
- return;
29
- }
30
-
31
- const modifyingReferences = getModifyingReferences(
32
- node.name,
33
- context.sourceFile,
34
- context.typeChecker,
35
- );
36
-
37
- for (const reference of modifyingReferences) {
38
- context.report({
39
- message: "noClassAssign",
40
- range: {
41
- begin: reference.getStart(context.sourceFile),
42
- end: reference.getEnd(),
43
- },
44
- });
45
- }
46
- },
47
- },
48
- };
49
- },
50
- });
@@ -1,33 +0,0 @@
1
- import rule from "./consecutiveNonNullAssertions.js";
2
- import { ruleTester } from "./ruleTester.js";
3
-
4
- ruleTester.describe(rule, {
5
- invalid: [
6
- {
7
- code: `
8
- declare const outer: { inner: number } | null;
9
- outer!!.inner;
10
- `,
11
- output: `
12
- declare const outer: { inner: number } | null;
13
- outer!.inner;
14
- `,
15
- snapshot: `
16
- declare const outer: { inner: number } | null;
17
- outer!!.inner;
18
- ~~
19
- Consecutive non-null assertion operators are unnecessary.
20
- `,
21
- },
22
- ],
23
- valid: [
24
- `
25
- declare const outer: { inner: number } | null;
26
- outer!.inner;
27
- `,
28
- `
29
- declare const outer: { inner: number } | null;
30
- outer?.inner!;
31
- `,
32
- ],
33
- });
@@ -1,46 +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: "Reports unnecessary extra non-null assertions.",
8
- id: "consecutiveNonNullAssertions",
9
- preset: "logical",
10
- },
11
- messages: {
12
- consecutiveNonNullAssertion: {
13
- primary: "Consecutive non-null assertion operators are unnecessary.",
14
- secondary: [
15
- "The non-null assertion operator (`!`) is used to assert that a value is not null or undefined.",
16
- "Using it multiple times in a row does not do anything, and just takes up space unnecessarily.",
17
- ],
18
- suggestions: ["Remove the redundant non-null assertion operator."],
19
- },
20
- },
21
- setup(context) {
22
- return {
23
- visitors: {
24
- NonNullExpression: (node) => {
25
- if (node.parent.kind !== ts.SyntaxKind.NonNullExpression) {
26
- return;
27
- }
28
-
29
- const range = {
30
- begin: node.end - 1,
31
- end: node.parent.end,
32
- };
33
-
34
- context.report({
35
- fix: {
36
- range,
37
- text: "",
38
- },
39
- message: "consecutiveNonNullAssertion",
40
- range,
41
- });
42
- },
43
- },
44
- };
45
- },
46
- });
@@ -1,222 +0,0 @@
1
- import rule from "./constantAssignments.js";
2
- import { ruleTester } from "./ruleTester.js";
3
-
4
- ruleTester.describe(rule, {
5
- invalid: [
6
- {
7
- code: `
8
- const value = 1;
9
- value = 2;
10
- `,
11
- snapshot: `
12
- const value = 1;
13
- value = 2;
14
- ~~~~~
15
- Variables declared with const cannot be reassigned; use let or var instead if reassignment is needed.
16
- `,
17
- },
18
- {
19
- code: `
20
- const result = getValue();
21
- result = getOtherValue();
22
- `,
23
- snapshot: `
24
- const result = getValue();
25
- result = getOtherValue();
26
- ~~~~~~
27
- Variables declared with const cannot be reassigned; use let or var instead if reassignment is needed.
28
- `,
29
- },
30
- {
31
- code: `
32
- const counter = 0;
33
- counter++;
34
- `,
35
- snapshot: `
36
- const counter = 0;
37
- counter++;
38
- ~~~~~~~
39
- Variables declared with const cannot be reassigned; use let or var instead if reassignment is needed.
40
- `,
41
- },
42
- {
43
- code: `
44
- const counter = 0;
45
- ++counter;
46
- `,
47
- snapshot: `
48
- const counter = 0;
49
- ++counter;
50
- ~~~~~~~
51
- Variables declared with const cannot be reassigned; use let or var instead if reassignment is needed.
52
- `,
53
- },
54
- {
55
- code: `
56
- const total = 0;
57
- total += 5;
58
- `,
59
- snapshot: `
60
- const total = 0;
61
- total += 5;
62
- ~~~~~
63
- Variables declared with const cannot be reassigned; use let or var instead if reassignment is needed.
64
- `,
65
- },
66
- {
67
- code: `
68
- const value = 10;
69
- value -= 3;
70
- `,
71
- snapshot: `
72
- const value = 10;
73
- value -= 3;
74
- ~~~~~
75
- Variables declared with const cannot be reassigned; use let or var instead if reassignment is needed.
76
- `,
77
- },
78
- {
79
- code: `
80
- const { property } = object;
81
- property = "new value";
82
- `,
83
- snapshot: `
84
- const { property } = object;
85
- property = "new value";
86
- ~~~~~~~~
87
- Variables declared with const cannot be reassigned; use let or var instead if reassignment is needed.
88
- `,
89
- },
90
- {
91
- code: `
92
- const [first, second] = array;
93
- first = 100;
94
- `,
95
- snapshot: `
96
- const [first, second] = array;
97
- first = 100;
98
- ~~~~~
99
- Variables declared with const cannot be reassigned; use let or var instead if reassignment is needed.
100
- `,
101
- },
102
- {
103
- code: `
104
- const { nested: { deep } } = object;
105
- deep = "modified";
106
- `,
107
- snapshot: `
108
- const { nested: { deep } } = object;
109
- deep = "modified";
110
- ~~~~
111
- Variables declared with const cannot be reassigned; use let or var instead if reassignment is needed.
112
- `,
113
- },
114
- {
115
- code: `
116
- const [first, ...rest] = array;
117
- rest = [];
118
- `,
119
- snapshot: `
120
- const [first, ...rest] = array;
121
- rest = [];
122
- ~~~~
123
- Variables declared with const cannot be reassigned; use let or var instead if reassignment is needed.
124
- `,
125
- },
126
- {
127
- code: `
128
- for (const item of items) {
129
- item = processItem(item);
130
- }
131
- `,
132
- snapshot: `
133
- for (const item of items) {
134
- item = processItem(item);
135
- ~~~~
136
- Variables declared with const cannot be reassigned; use let or var instead if reassignment is needed.
137
- }
138
- `,
139
- },
140
- {
141
- code: `
142
- function process() {
143
- const value = 1;
144
- value = 2;
145
- }
146
- `,
147
- snapshot: `
148
- function process() {
149
- const value = 1;
150
- value = 2;
151
- ~~~~~
152
- Variables declared with const cannot be reassigned; use let or var instead if reassignment is needed.
153
- }
154
- `,
155
- },
156
- {
157
- code: `
158
- const data = getData();
159
- if (condition) {
160
- data = getOtherData();
161
- }
162
- `,
163
- snapshot: `
164
- const data = getData();
165
- if (condition) {
166
- data = getOtherData();
167
- ~~~~
168
- Variables declared with const cannot be reassigned; use let or var instead if reassignment is needed.
169
- }
170
- `,
171
- },
172
- ],
173
- valid: [
174
- `const value = 1;`,
175
- `const result = getValue();`,
176
- `let value = 1; value = 2;`,
177
- `var value = 1; value = 2;`,
178
- `const object = {}; object.property = "value";`,
179
- `const array = []; array.push(1);`,
180
- `const object = { value: 1 }; object.value = 2;`,
181
- `const array = [1, 2, 3]; array[0] = 4;`,
182
- `const value = 1; console.log(value);`,
183
- `const { property } = object; console.log(property);`,
184
- `const [first, second] = array; console.log(first);`,
185
- `for (let item of items) { item = processItem(item); }`,
186
- `for (const item of items) { console.log(item); }`,
187
- `
188
- const outer = 1;
189
- function inner() {
190
- const outer = 2;
191
- return outer;
192
- }
193
- `,
194
- `
195
- const value = 1;
196
- {
197
- const value = 2;
198
- console.log(value);
199
- }
200
- `,
201
- `
202
- function process(value: number) {
203
- const result = value * 2;
204
- return result;
205
- }
206
- `,
207
- `
208
- const calculate = (input: number) => {
209
- const result = input + 10;
210
- return result;
211
- };
212
- `,
213
- `
214
- class MyClass {
215
- method() {
216
- const value = 0;
217
- return value;
218
- }
219
- }
220
- `,
221
- ],
222
- });
@@ -1,78 +0,0 @@
1
- import * as ts from "typescript";
2
-
3
- import { typescriptLanguage } from "../language.js";
4
- import { getModifyingReferences } from "../utils/getModifyingReferences.js";
5
-
6
- export default typescriptLanguage.createRule({
7
- about: {
8
- description:
9
- "Reports attempting to reassign variables declared with const.",
10
- id: "constantAssignments",
11
- preset: "untyped",
12
- },
13
- messages: {
14
- noConstAssign: {
15
- primary:
16
- "Variables declared with const cannot be reassigned; use let or var instead if reassignment is needed.",
17
- secondary: [
18
- "The const keyword creates a read-only reference to a value, preventing reassignment.",
19
- "While properties of const objects and elements of const arrays can be mutated, the binding itself cannot be reassigned.",
20
- ],
21
- suggestions: [
22
- "Use let instead of const if you need to reassign the variable.",
23
- ],
24
- },
25
- },
26
- setup(context) {
27
- function collectBindingElements(name: ts.BindingName): ts.Identifier[] {
28
- if (ts.isIdentifier(name)) {
29
- return [name];
30
- }
31
-
32
- const identifiers: ts.Identifier[] = [];
33
-
34
- for (const element of name.elements) {
35
- if (ts.isBindingElement(element)) {
36
- identifiers.push(...collectBindingElements(element.name));
37
- }
38
- }
39
-
40
- return identifiers;
41
- }
42
-
43
- return {
44
- visitors: {
45
- VariableDeclarationList: (node) => {
46
- if (
47
- !(node.flags & ts.NodeFlags.Const) ||
48
- node.declarations.length === 0
49
- ) {
50
- return;
51
- }
52
-
53
- for (const declaration of node.declarations) {
54
- const identifiers = collectBindingElements(declaration.name);
55
-
56
- for (const identifier of identifiers) {
57
- const modifyingReferences = getModifyingReferences(
58
- identifier,
59
- context.sourceFile,
60
- context.typeChecker,
61
- );
62
-
63
- for (const reference of modifyingReferences) {
64
- context.report({
65
- message: "noConstAssign",
66
- range: {
67
- begin: reference.getStart(context.sourceFile),
68
- end: reference.getEnd(),
69
- },
70
- });
71
- }
72
- }
73
- }
74
- },
75
- },
76
- };
77
- },
78
- });
@@ -1,97 +0,0 @@
1
- import rule from "./constructorReturns.js";
2
- import { ruleTester } from "./ruleTester.js";
3
-
4
- ruleTester.describe(rule, {
5
- invalid: [
6
- {
7
- code: `
8
- class Example {
9
- constructor() {
10
- return {};
11
- }
12
- }
13
- `,
14
- snapshot: `
15
- class Example {
16
- constructor() {
17
- return {};
18
- ~~~~~~~~~~
19
- Returning a value from a constructor function overrides the newly created instance.
20
- }
21
- }
22
- `,
23
- },
24
- {
25
- code: `
26
- class Example {
27
- constructor() {
28
- return { value: 1 };
29
- }
30
- }
31
- `,
32
- snapshot: `
33
- class Example {
34
- constructor() {
35
- return { value: 1 };
36
- ~~~~~~~~~~~~~~~~~~~~
37
- Returning a value from a constructor function overrides the newly created instance.
38
- }
39
- }
40
- `,
41
- },
42
- {
43
- code: `
44
- class Example {
45
- constructor() {
46
- if (condition) {
47
- return new OtherClass();
48
- }
49
- }
50
- }
51
- `,
52
- snapshot: `
53
- class Example {
54
- constructor() {
55
- if (condition) {
56
- return new OtherClass();
57
- ~~~~~~~~~~~~~~~~~~~~~~~~
58
- Returning a value from a constructor function overrides the newly created instance.
59
- }
60
- }
61
- }
62
- `,
63
- },
64
- {
65
- code: `
66
- class Example {
67
- constructor(value: number) {
68
- if (value < 0) {
69
- return null;
70
- }
71
- this.value = value;
72
- }
73
- }
74
- `,
75
- snapshot: `
76
- class Example {
77
- constructor(value: number) {
78
- if (value < 0) {
79
- return null;
80
- ~~~~~~~~~~~~
81
- Returning a value from a constructor function overrides the newly created instance.
82
- }
83
- this.value = value;
84
- }
85
- }
86
- `,
87
- },
88
- ],
89
- valid: [
90
- `class Example { constructor() {} }`,
91
- `class Example { constructor() { this.value = 1; } }`,
92
- `class Example { constructor() { return; } }`,
93
- `class Example { constructor() { if (condition) { return; } this.value = 1; } }`,
94
- `class Example { constructor() { const factory = () => { return {}; }; } }`,
95
- `class Example { constructor() { function helper() { return 1; } } }`,
96
- ],
97
- });