@flint.fyi/ts 0.20.0 → 0.22.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 (666) hide show
  1. package/{lib/plugin.d.ts → dist/index.d.mts} +360 -365
  2. package/dist/index.mjs +22467 -0
  3. package/package.json +10 -10
  4. package/lib/index.d.ts +0 -2
  5. package/lib/index.js +0 -2
  6. package/lib/plugin.js +0 -621
  7. package/lib/rules/accessorPairGroups.d.ts +0 -10
  8. package/lib/rules/accessorPairGroups.js +0 -48
  9. package/lib/rules/accessorPairTypes.d.ts +0 -10
  10. package/lib/rules/accessorPairTypes.js +0 -72
  11. package/lib/rules/accessorThisRecursion.d.ts +0 -10
  12. package/lib/rules/accessorThisRecursion.js +0 -65
  13. package/lib/rules/anyArguments.d.ts +0 -10
  14. package/lib/rules/anyArguments.js +0 -234
  15. package/lib/rules/anyAssignments.d.ts +0 -10
  16. package/lib/rules/anyAssignments.js +0 -265
  17. package/lib/rules/anyCalls.d.ts +0 -10
  18. package/lib/rules/anyCalls.js +0 -68
  19. package/lib/rules/anyMemberAccess.d.ts +0 -10
  20. package/lib/rules/anyMemberAccess.js +0 -85
  21. package/lib/rules/anyReturns.d.ts +0 -10
  22. package/lib/rules/anyReturns.js +0 -102
  23. package/lib/rules/arguments.d.ts +0 -10
  24. package/lib/rules/arguments.js +0 -38
  25. package/lib/rules/arrayCallbackReturns.d.ts +0 -10
  26. package/lib/rules/arrayCallbackReturns.js +0 -73
  27. package/lib/rules/arrayConstructors.d.ts +0 -10
  28. package/lib/rules/arrayConstructors.js +0 -47
  29. package/lib/rules/arrayDeleteUnnecessaryCounts.d.ts +0 -10
  30. package/lib/rules/arrayDeleteUnnecessaryCounts.js +0 -54
  31. package/lib/rules/arrayElementDeletions.d.ts +0 -10
  32. package/lib/rules/arrayElementDeletions.js +0 -43
  33. package/lib/rules/arrayEmptyCallbackSlots.d.ts +0 -10
  34. package/lib/rules/arrayEmptyCallbackSlots.js +0 -45
  35. package/lib/rules/arrayExistenceChecksConsistency.d.ts +0 -10
  36. package/lib/rules/arrayExistenceChecksConsistency.js +0 -86
  37. package/lib/rules/arrayFilteredFinds.d.ts +0 -10
  38. package/lib/rules/arrayFilteredFinds.js +0 -80
  39. package/lib/rules/arrayFinds.d.ts +0 -10
  40. package/lib/rules/arrayFinds.js +0 -41
  41. package/lib/rules/arrayFlatMapMethods.d.ts +0 -10
  42. package/lib/rules/arrayFlatMapMethods.js +0 -47
  43. package/lib/rules/arrayFlatMethods.d.ts +0 -10
  44. package/lib/rules/arrayFlatMethods.js +0 -83
  45. package/lib/rules/arrayFlatUnnecessaryDepths.d.ts +0 -10
  46. package/lib/rules/arrayFlatUnnecessaryDepths.js +0 -33
  47. package/lib/rules/arrayIncludes.d.ts +0 -10
  48. package/lib/rules/arrayIncludes.js +0 -59
  49. package/lib/rules/arrayIncludesMethods.d.ts +0 -10
  50. package/lib/rules/arrayIncludesMethods.js +0 -37
  51. package/lib/rules/arrayIndexOfMethods.d.ts +0 -10
  52. package/lib/rules/arrayIndexOfMethods.js +0 -51
  53. package/lib/rules/arrayLoops.d.ts +0 -10
  54. package/lib/rules/arrayLoops.js +0 -36
  55. package/lib/rules/arrayMapIdentities.d.ts +0 -10
  56. package/lib/rules/arrayMapIdentities.js +0 -74
  57. package/lib/rules/arrayMutableReverses.d.ts +0 -10
  58. package/lib/rules/arrayMutableReverses.js +0 -39
  59. package/lib/rules/arrayMutableSorts.d.ts +0 -10
  60. package/lib/rules/arrayMutableSorts.js +0 -72
  61. package/lib/rules/arrayReduceTypeArguments.d.ts +0 -10
  62. package/lib/rules/arrayReduceTypeArguments.js +0 -64
  63. package/lib/rules/arraySliceUnnecessaryEnd.d.ts +0 -10
  64. package/lib/rules/arraySliceUnnecessaryEnd.js +0 -51
  65. package/lib/rules/arraySomeMethods.d.ts +0 -10
  66. package/lib/rules/arraySomeMethods.js +0 -77
  67. package/lib/rules/arrayTernarySpreadingConsistency.d.ts +0 -10
  68. package/lib/rules/arrayTernarySpreadingConsistency.js +0 -74
  69. package/lib/rules/arrayTypes.d.ts +0 -17
  70. package/lib/rules/arrayTypes.js +0 -111
  71. package/lib/rules/arrayUnnecessaryLengthChecks.d.ts +0 -10
  72. package/lib/rules/arrayUnnecessaryLengthChecks.js +0 -97
  73. package/lib/rules/asConstAssertions.d.ts +0 -10
  74. package/lib/rules/asConstAssertions.js +0 -57
  75. package/lib/rules/assignmentOperatorShorthands.d.ts +0 -10
  76. package/lib/rules/assignmentOperatorShorthands.js +0 -47
  77. package/lib/rules/asyncFunctionAwaits.d.ts +0 -10
  78. package/lib/rules/asyncFunctionAwaits.js +0 -55
  79. package/lib/rules/asyncPromiseExecutors.d.ts +0 -10
  80. package/lib/rules/asyncPromiseExecutors.js +0 -41
  81. package/lib/rules/asyncUnnecessaryPromiseWrappers.d.ts +0 -10
  82. package/lib/rules/asyncUnnecessaryPromiseWrappers.js +0 -52
  83. package/lib/rules/atAccesses.d.ts +0 -10
  84. package/lib/rules/atAccesses.js +0 -52
  85. package/lib/rules/builtinCoercions.d.ts +0 -10
  86. package/lib/rules/builtinCoercions.js +0 -117
  87. package/lib/rules/builtinConstructorNews.d.ts +0 -10
  88. package/lib/rules/builtinConstructorNews.js +0 -89
  89. package/lib/rules/caseDeclarations.d.ts +0 -10
  90. package/lib/rules/caseDeclarations.js +0 -40
  91. package/lib/rules/caseDuplicates.d.ts +0 -10
  92. package/lib/rules/caseDuplicates.js +0 -36
  93. package/lib/rules/caseFallthroughs.d.ts +0 -10
  94. package/lib/rules/caseFallthroughs.js +0 -76
  95. package/lib/rules/catchCallbackTypes.d.ts +0 -10
  96. package/lib/rules/catchCallbackTypes.js +0 -67
  97. package/lib/rules/caughtVariableNames.d.ts +0 -10
  98. package/lib/rules/caughtVariableNames.js +0 -40
  99. package/lib/rules/chainedAssignments.d.ts +0 -10
  100. package/lib/rules/chainedAssignments.js +0 -33
  101. package/lib/rules/charAtComparisons.d.ts +0 -10
  102. package/lib/rules/charAtComparisons.js +0 -58
  103. package/lib/rules/classAssignments.d.ts +0 -10
  104. package/lib/rules/classAssignments.js +0 -29
  105. package/lib/rules/classFieldDeclarations.d.ts +0 -10
  106. package/lib/rules/classFieldDeclarations.js +0 -40
  107. package/lib/rules/classLiteralProperties.d.ts +0 -10
  108. package/lib/rules/classLiteralProperties.js +0 -45
  109. package/lib/rules/classMemberDuplicates.d.ts +0 -10
  110. package/lib/rules/classMemberDuplicates.js +0 -71
  111. package/lib/rules/classMethodsThis.d.ts +0 -14
  112. package/lib/rules/classMethodsThis.js +0 -124
  113. package/lib/rules/combinedPushes.d.ts +0 -10
  114. package/lib/rules/combinedPushes.js +0 -56
  115. package/lib/rules/consecutiveNonNullAssertions.d.ts +0 -10
  116. package/lib/rules/consecutiveNonNullAssertions.js +0 -39
  117. package/lib/rules/consoleCalls.d.ts +0 -9
  118. package/lib/rules/consoleCalls.js +0 -28
  119. package/lib/rules/constantAssignments.d.ts +0 -10
  120. package/lib/rules/constantAssignments.js +0 -41
  121. package/lib/rules/constructorGenericCalls.d.ts +0 -16
  122. package/lib/rules/constructorGenericCalls.js +0 -138
  123. package/lib/rules/constructorReturns.d.ts +0 -10
  124. package/lib/rules/constructorReturns.js +0 -41
  125. package/lib/rules/constructorSupers.d.ts +0 -10
  126. package/lib/rules/constructorSupers.js +0 -77
  127. package/lib/rules/dateConstructorClones.d.ts +0 -10
  128. package/lib/rules/dateConstructorClones.js +0 -37
  129. package/lib/rules/dateNowTimestamps.d.ts +0 -10
  130. package/lib/rules/dateNowTimestamps.js +0 -57
  131. package/lib/rules/debuggerStatements.d.ts +0 -10
  132. package/lib/rules/debuggerStatements.js +0 -33
  133. package/lib/rules/defaultCaseLast.d.ts +0 -10
  134. package/lib/rules/defaultCaseLast.js +0 -36
  135. package/lib/rules/defaultParameterLast.d.ts +0 -10
  136. package/lib/rules/defaultParameterLast.js +0 -42
  137. package/lib/rules/deprecated.d.ts +0 -10
  138. package/lib/rules/deprecated.js +0 -243
  139. package/lib/rules/destructuringConsistency.d.ts +0 -10
  140. package/lib/rules/destructuringConsistency.js +0 -112
  141. package/lib/rules/duplicateArguments.d.ts +0 -10
  142. package/lib/rules/duplicateArguments.js +0 -45
  143. package/lib/rules/dynamicDeletes.d.ts +0 -10
  144. package/lib/rules/dynamicDeletes.js +0 -37
  145. package/lib/rules/elseIfDuplicates.d.ts +0 -10
  146. package/lib/rules/elseIfDuplicates.js +0 -38
  147. package/lib/rules/elseReturns.d.ts +0 -10
  148. package/lib/rules/elseReturns.js +0 -67
  149. package/lib/rules/emptyBlocks.d.ts +0 -10
  150. package/lib/rules/emptyBlocks.js +0 -56
  151. package/lib/rules/emptyDestructures.d.ts +0 -10
  152. package/lib/rules/emptyDestructures.js +0 -34
  153. package/lib/rules/emptyEnums.d.ts +0 -10
  154. package/lib/rules/emptyEnums.js +0 -30
  155. package/lib/rules/emptyExports.d.ts +0 -10
  156. package/lib/rules/emptyExports.js +0 -60
  157. package/lib/rules/emptyFiles.d.ts +0 -10
  158. package/lib/rules/emptyFiles.js +0 -44
  159. package/lib/rules/emptyFunctions.d.ts +0 -10
  160. package/lib/rules/emptyFunctions.js +0 -61
  161. package/lib/rules/emptyModuleAttributes.d.ts +0 -10
  162. package/lib/rules/emptyModuleAttributes.js +0 -35
  163. package/lib/rules/emptyObjectTypes.d.ts +0 -10
  164. package/lib/rules/emptyObjectTypes.js +0 -47
  165. package/lib/rules/emptyStaticBlocks.d.ts +0 -10
  166. package/lib/rules/emptyStaticBlocks.js +0 -42
  167. package/lib/rules/emptyTypeParameterLists.d.ts +0 -10
  168. package/lib/rules/emptyTypeParameterLists.js +0 -31
  169. package/lib/rules/enumInitializers.d.ts +0 -10
  170. package/lib/rules/enumInitializers.js +0 -54
  171. package/lib/rules/enumMemberLiterals.d.ts +0 -10
  172. package/lib/rules/enumMemberLiterals.js +0 -39
  173. package/lib/rules/enumValueConsistency.d.ts +0 -10
  174. package/lib/rules/enumValueConsistency.js +0 -56
  175. package/lib/rules/enumValueDuplicates.d.ts +0 -10
  176. package/lib/rules/enumValueDuplicates.js +0 -60
  177. package/lib/rules/equalityOperatorNegations.d.ts +0 -9
  178. package/lib/rules/equalityOperatorNegations.js +0 -60
  179. package/lib/rules/equalityOperators.d.ts +0 -10
  180. package/lib/rules/equalityOperators.js +0 -44
  181. package/lib/rules/errorMessages.d.ts +0 -10
  182. package/lib/rules/errorMessages.js +0 -60
  183. package/lib/rules/errorSubclassProperties.d.ts +0 -10
  184. package/lib/rules/errorSubclassProperties.js +0 -144
  185. package/lib/rules/errorUnnecessaryCaptureStackTraces.d.ts +0 -10
  186. package/lib/rules/errorUnnecessaryCaptureStackTraces.js +0 -55
  187. package/lib/rules/escapeSequenceCasing.d.ts +0 -10
  188. package/lib/rules/escapeSequenceCasing.js +0 -75
  189. package/lib/rules/evals.d.ts +0 -10
  190. package/lib/rules/evals.js +0 -31
  191. package/lib/rules/evolvingVariableTypes.d.ts +0 -10
  192. package/lib/rules/evolvingVariableTypes.js +0 -33
  193. package/lib/rules/exceptionAssignments.d.ts +0 -10
  194. package/lib/rules/exceptionAssignments.js +0 -39
  195. package/lib/rules/explicitAnys.d.ts +0 -10
  196. package/lib/rules/explicitAnys.js +0 -55
  197. package/lib/rules/exponentiationOperators.d.ts +0 -10
  198. package/lib/rules/exponentiationOperators.js +0 -34
  199. package/lib/rules/exportFromImports.d.ts +0 -10
  200. package/lib/rules/exportFromImports.js +0 -119
  201. package/lib/rules/exportMutables.d.ts +0 -10
  202. package/lib/rules/exportMutables.js +0 -33
  203. package/lib/rules/exportUniqueNames.d.ts +0 -10
  204. package/lib/rules/exportUniqueNames.js +0 -65
  205. package/lib/rules/extraneousClasses.d.ts +0 -16
  206. package/lib/rules/extraneousClasses.js +0 -111
  207. package/lib/rules/fetchMethodBodies.d.ts +0 -10
  208. package/lib/rules/fetchMethodBodies.js +0 -72
  209. package/lib/rules/finallyStatementSafety.d.ts +0 -10
  210. package/lib/rules/finallyStatementSafety.js +0 -47
  211. package/lib/rules/forDirections.d.ts +0 -10
  212. package/lib/rules/forDirections.js +0 -75
  213. package/lib/rules/forInArrays.d.ts +0 -10
  214. package/lib/rules/forInArrays.js +0 -46
  215. package/lib/rules/forInGuards.d.ts +0 -9
  216. package/lib/rules/forInGuards.js +0 -44
  217. package/lib/rules/functionApplySpreads.d.ts +0 -10
  218. package/lib/rules/functionApplySpreads.js +0 -63
  219. package/lib/rules/functionAssignments.d.ts +0 -10
  220. package/lib/rules/functionAssignments.js +0 -29
  221. package/lib/rules/functionCurryingRedundancy.d.ts +0 -10
  222. package/lib/rules/functionCurryingRedundancy.js +0 -53
  223. package/lib/rules/functionDeclarationStyles.d.ts +0 -16
  224. package/lib/rules/functionDeclarationStyles.js +0 -67
  225. package/lib/rules/functionNameMatches.d.ts +0 -10
  226. package/lib/rules/functionNameMatches.js +0 -74
  227. package/lib/rules/functionNewCalls.d.ts +0 -10
  228. package/lib/rules/functionNewCalls.js +0 -42
  229. package/lib/rules/generatorFunctionYields.d.ts +0 -10
  230. package/lib/rules/generatorFunctionYields.js +0 -50
  231. package/lib/rules/getterReturns.d.ts +0 -10
  232. package/lib/rules/getterReturns.js +0 -65
  233. package/lib/rules/globalAssignments.d.ts +0 -10
  234. package/lib/rules/globalAssignments.js +0 -47
  235. package/lib/rules/globalObjectCalls.d.ts +0 -10
  236. package/lib/rules/globalObjectCalls.js +0 -42
  237. package/lib/rules/globalThisAliases.d.ts +0 -10
  238. package/lib/rules/globalThisAliases.js +0 -47
  239. package/lib/rules/impliedEvals.d.ts +0 -10
  240. package/lib/rules/impliedEvals.js +0 -130
  241. package/lib/rules/importEmptyBlocks.d.ts +0 -10
  242. package/lib/rules/importEmptyBlocks.js +0 -53
  243. package/lib/rules/importTypeSideEffects.d.ts +0 -10
  244. package/lib/rules/importTypeSideEffects.js +0 -31
  245. package/lib/rules/indexedObjectTypes.d.ts +0 -16
  246. package/lib/rules/indexedObjectTypes.js +0 -83
  247. package/lib/rules/instanceOfArrays.d.ts +0 -10
  248. package/lib/rules/instanceOfArrays.js +0 -31
  249. package/lib/rules/irregularWhitespaces.d.ts +0 -16
  250. package/lib/rules/irregularWhitespaces.js +0 -97
  251. package/lib/rules/isNaNComparisons.d.ts +0 -10
  252. package/lib/rules/isNaNComparisons.js +0 -43
  253. package/lib/rules/literalConstructorWrappers.d.ts +0 -10
  254. package/lib/rules/literalConstructorWrappers.js +0 -64
  255. package/lib/rules/mathMethods.d.ts +0 -10
  256. package/lib/rules/mathMethods.js +0 -128
  257. package/lib/rules/meaninglessVoidOperators.d.ts +0 -10
  258. package/lib/rules/meaninglessVoidOperators.js +0 -39
  259. package/lib/rules/misleadingVoidExpressions.d.ts +0 -10
  260. package/lib/rules/misleadingVoidExpressions.js +0 -128
  261. package/lib/rules/moduleSpecifierLists.d.ts +0 -10
  262. package/lib/rules/moduleSpecifierLists.js +0 -92
  263. package/lib/rules/multilineAmbiguities.d.ts +0 -10
  264. package/lib/rules/multilineAmbiguities.js +0 -64
  265. package/lib/rules/namedDefaultExports.d.ts +0 -10
  266. package/lib/rules/namedDefaultExports.js +0 -60
  267. package/lib/rules/namespaceDeclarations.d.ts +0 -14
  268. package/lib/rules/namespaceDeclarations.js +0 -37
  269. package/lib/rules/namespaceImplicitAmbientImports.d.ts +0 -10
  270. package/lib/rules/namespaceImplicitAmbientImports.js +0 -40
  271. package/lib/rules/namespaceKeywords.d.ts +0 -10
  272. package/lib/rules/namespaceKeywords.js +0 -40
  273. package/lib/rules/nativeObjectExtensions.d.ts +0 -10
  274. package/lib/rules/nativeObjectExtensions.js +0 -114
  275. package/lib/rules/negativeIndexLengthMethods.d.ts +0 -10
  276. package/lib/rules/negativeIndexLengthMethods.js +0 -180
  277. package/lib/rules/negativeZeroComparisons.d.ts +0 -10
  278. package/lib/rules/negativeZeroComparisons.js +0 -48
  279. package/lib/rules/nestedStandaloneIfs.d.ts +0 -10
  280. package/lib/rules/nestedStandaloneIfs.js +0 -105
  281. package/lib/rules/newDefinitions.d.ts +0 -10
  282. package/lib/rules/newDefinitions.js +0 -84
  283. package/lib/rules/newExpressions.d.ts +0 -10
  284. package/lib/rules/newExpressions.js +0 -38
  285. package/lib/rules/newNativeNonConstructors.d.ts +0 -10
  286. package/lib/rules/newNativeNonConstructors.js +0 -39
  287. package/lib/rules/nonNullAssertedNullishCoalesces.d.ts +0 -10
  288. package/lib/rules/nonNullAssertedNullishCoalesces.js +0 -63
  289. package/lib/rules/nonNullAssertedOptionalChains.d.ts +0 -10
  290. package/lib/rules/nonNullAssertedOptionalChains.js +0 -69
  291. package/lib/rules/nonNullAssertionPlacement.d.ts +0 -10
  292. package/lib/rules/nonNullAssertionPlacement.js +0 -94
  293. package/lib/rules/nonNullableTypeAssertions.d.ts +0 -10
  294. package/lib/rules/nonNullableTypeAssertions.js +0 -78
  295. package/lib/rules/nonOctalDecimalEscapes.d.ts +0 -10
  296. package/lib/rules/nonOctalDecimalEscapes.js +0 -48
  297. package/lib/rules/nullishCheckStyle.d.ts +0 -21
  298. package/lib/rules/nullishCheckStyle.js +0 -144
  299. package/lib/rules/nullishCoalescingOperators.d.ts +0 -22
  300. package/lib/rules/nullishCoalescingOperators.js +0 -323
  301. package/lib/rules/numberMethodRanges.d.ts +0 -10
  302. package/lib/rules/numberMethodRanges.js +0 -74
  303. package/lib/rules/numberStaticMethods.d.ts +0 -10
  304. package/lib/rules/numberStaticMethods.js +0 -53
  305. package/lib/rules/numericErasingOperations.d.ts +0 -10
  306. package/lib/rules/numericErasingOperations.js +0 -46
  307. package/lib/rules/numericLiteralParsing.d.ts +0 -10
  308. package/lib/rules/numericLiteralParsing.js +0 -66
  309. package/lib/rules/numericPrecision.d.ts +0 -10
  310. package/lib/rules/numericPrecision.js +0 -102
  311. package/lib/rules/numericSeparatorGroups.d.ts +0 -10
  312. package/lib/rules/numericSeparatorGroups.js +0 -101
  313. package/lib/rules/objectAssignSpreads.d.ts +0 -10
  314. package/lib/rules/objectAssignSpreads.js +0 -53
  315. package/lib/rules/objectCalls.d.ts +0 -10
  316. package/lib/rules/objectCalls.js +0 -38
  317. package/lib/rules/objectEntriesMethods.d.ts +0 -10
  318. package/lib/rules/objectEntriesMethods.js +0 -82
  319. package/lib/rules/objectHasOwns.d.ts +0 -10
  320. package/lib/rules/objectHasOwns.js +0 -50
  321. package/lib/rules/objectKeyDuplicates.d.ts +0 -10
  322. package/lib/rules/objectKeyDuplicates.js +0 -63
  323. package/lib/rules/objectProto.d.ts +0 -10
  324. package/lib/rules/objectProto.js +0 -50
  325. package/lib/rules/objectPrototypeBuiltIns.d.ts +0 -10
  326. package/lib/rules/objectPrototypeBuiltIns.js +0 -54
  327. package/lib/rules/objectShorthand.d.ts +0 -10
  328. package/lib/rules/objectShorthand.js +0 -84
  329. package/lib/rules/objectSpreadUnnecessaryFallbacks.d.ts +0 -10
  330. package/lib/rules/objectSpreadUnnecessaryFallbacks.js +0 -43
  331. package/lib/rules/objectTypeDefinitions.d.ts +0 -10
  332. package/lib/rules/objectTypeDefinitions.js +0 -34
  333. package/lib/rules/octalEscapes.d.ts +0 -10
  334. package/lib/rules/octalEscapes.js +0 -58
  335. package/lib/rules/octalNumbers.d.ts +0 -10
  336. package/lib/rules/octalNumbers.js +0 -55
  337. package/lib/rules/operatorAssignmentShorthand.d.ts +0 -10
  338. package/lib/rules/operatorAssignmentShorthand.js +0 -77
  339. package/lib/rules/overloadSignaturesAdjacent.d.ts +0 -10
  340. package/lib/rules/overloadSignaturesAdjacent.js +0 -140
  341. package/lib/rules/parameterReassignments.d.ts +0 -10
  342. package/lib/rules/parameterReassignments.js +0 -45
  343. package/lib/rules/parseIntRadixes.d.ts +0 -10
  344. package/lib/rules/parseIntRadixes.js +0 -62
  345. package/lib/rules/propertyAccessNotation.d.ts +0 -13
  346. package/lib/rules/propertyAccessNotation.js +0 -119
  347. package/lib/rules/recursionOnlyArguments.d.ts +0 -10
  348. package/lib/rules/recursionOnlyArguments.js +0 -71
  349. package/lib/rules/redundantTypeConstituents.d.ts +0 -10
  350. package/lib/rules/redundantTypeConstituents.js +0 -277
  351. package/lib/rules/regexAllGlobalFlags.d.ts +0 -10
  352. package/lib/rules/regexAllGlobalFlags.js +0 -56
  353. package/lib/rules/regexAmbiguousInvalidity.d.ts +0 -10
  354. package/lib/rules/regexAmbiguousInvalidity.js +0 -297
  355. package/lib/rules/regexCharacterClassRanges.d.ts +0 -10
  356. package/lib/rules/regexCharacterClassRanges.js +0 -137
  357. package/lib/rules/regexCharacterClassSetOperations.d.ts +0 -10
  358. package/lib/rules/regexCharacterClassSetOperations.js +0 -81
  359. package/lib/rules/regexCharacterClasses.d.ts +0 -10
  360. package/lib/rules/regexCharacterClasses.js +0 -234
  361. package/lib/rules/regexConciseCharacterClassNegations.d.ts +0 -10
  362. package/lib/rules/regexConciseCharacterClassNegations.js +0 -52
  363. package/lib/rules/regexContradictoryAssertions.d.ts +0 -10
  364. package/lib/rules/regexContradictoryAssertions.js +0 -210
  365. package/lib/rules/regexControlCharacterEscapes.d.ts +0 -10
  366. package/lib/rules/regexControlCharacterEscapes.js +0 -130
  367. package/lib/rules/regexControlCharacters.d.ts +0 -10
  368. package/lib/rules/regexControlCharacters.js +0 -95
  369. package/lib/rules/regexDigitMatchers.d.ts +0 -10
  370. package/lib/rules/regexDigitMatchers.js +0 -180
  371. package/lib/rules/regexDollarEscapes.d.ts +0 -10
  372. package/lib/rules/regexDollarEscapes.js +0 -91
  373. package/lib/rules/regexDuplicateCharacterClassCharacters.d.ts +0 -10
  374. package/lib/rules/regexDuplicateCharacterClassCharacters.js +0 -128
  375. package/lib/rules/regexEmptyAlternatives.d.ts +0 -10
  376. package/lib/rules/regexEmptyAlternatives.js +0 -140
  377. package/lib/rules/regexEmptyCapturingGroups.d.ts +0 -10
  378. package/lib/rules/regexEmptyCapturingGroups.js +0 -67
  379. package/lib/rules/regexEmptyCharacterClasses.d.ts +0 -10
  380. package/lib/rules/regexEmptyCharacterClasses.js +0 -68
  381. package/lib/rules/regexEmptyGroups.d.ts +0 -10
  382. package/lib/rules/regexEmptyGroups.js +0 -66
  383. package/lib/rules/regexEmptyLazyQuantifiers.d.ts +0 -10
  384. package/lib/rules/regexEmptyLazyQuantifiers.js +0 -92
  385. package/lib/rules/regexEmptyLookaroundsAssertions.d.ts +0 -10
  386. package/lib/rules/regexEmptyLookaroundsAssertions.js +0 -68
  387. package/lib/rules/regexEmptyStringLiterals.d.ts +0 -10
  388. package/lib/rules/regexEmptyStringLiterals.js +0 -66
  389. package/lib/rules/regexEscapeBackspaces.d.ts +0 -10
  390. package/lib/rules/regexEscapeBackspaces.js +0 -69
  391. package/lib/rules/regexExecutors.d.ts +0 -10
  392. package/lib/rules/regexExecutors.js +0 -58
  393. package/lib/rules/regexGraphemeStringLiterals.d.ts +0 -10
  394. package/lib/rules/regexGraphemeStringLiterals.js +0 -51
  395. package/lib/rules/regexHexadecimalEscapes.d.ts +0 -10
  396. package/lib/rules/regexHexadecimalEscapes.js +0 -71
  397. package/lib/rules/regexIgnoreCaseFlags.d.ts +0 -10
  398. package/lib/rules/regexIgnoreCaseFlags.js +0 -145
  399. package/lib/rules/regexInvisibleCharacters.d.ts +0 -10
  400. package/lib/rules/regexInvisibleCharacters.js +0 -90
  401. package/lib/rules/regexLetterCasing.d.ts +0 -10
  402. package/lib/rules/regexLetterCasing.js +0 -186
  403. package/lib/rules/regexLiterals.d.ts +0 -10
  404. package/lib/rules/regexLiterals.js +0 -92
  405. package/lib/rules/regexLookaroundAssertions.d.ts +0 -10
  406. package/lib/rules/regexLookaroundAssertions.js +0 -163
  407. package/lib/rules/regexLookaroundQuantifierOptimizations.d.ts +0 -10
  408. package/lib/rules/regexLookaroundQuantifierOptimizations.js +0 -94
  409. package/lib/rules/regexMatchNotation.d.ts +0 -10
  410. package/lib/rules/regexMatchNotation.js +0 -139
  411. package/lib/rules/regexMisleadingCapturingGroups.d.ts +0 -10
  412. package/lib/rules/regexMisleadingCapturingGroups.js +0 -229
  413. package/lib/rules/regexMisleadingQuantifiers.d.ts +0 -10
  414. package/lib/rules/regexMisleadingQuantifiers.js +0 -78
  415. package/lib/rules/regexMisleadingUnicodeCharacters.d.ts +0 -10
  416. package/lib/rules/regexMisleadingUnicodeCharacters.js +0 -203
  417. package/lib/rules/regexNamedBackreferences.d.ts +0 -10
  418. package/lib/rules/regexNamedBackreferences.js +0 -48
  419. package/lib/rules/regexNamedCaptureGroups.d.ts +0 -9
  420. package/lib/rules/regexNamedCaptureGroups.js +0 -67
  421. package/lib/rules/regexNamedReplacements.d.ts +0 -10
  422. package/lib/rules/regexNamedReplacements.js +0 -93
  423. package/lib/rules/regexNonStandardFlags.d.ts +0 -10
  424. package/lib/rules/regexNonStandardFlags.js +0 -66
  425. package/lib/rules/regexObscureRanges.d.ts +0 -10
  426. package/lib/rules/regexObscureRanges.js +0 -93
  427. package/lib/rules/regexOctalEscapes.d.ts +0 -10
  428. package/lib/rules/regexOctalEscapes.js +0 -70
  429. package/lib/rules/regexPlusQuantifiers.d.ts +0 -10
  430. package/lib/rules/regexPlusQuantifiers.js +0 -68
  431. package/lib/rules/regexPredefinedAssertions.d.ts +0 -10
  432. package/lib/rules/regexPredefinedAssertions.js +0 -127
  433. package/lib/rules/regexQuestionQuantifiers.d.ts +0 -10
  434. package/lib/rules/regexQuestionQuantifiers.js +0 -104
  435. package/lib/rules/regexRepeatQuantifiers.d.ts +0 -10
  436. package/lib/rules/regexRepeatQuantifiers.js +0 -96
  437. package/lib/rules/regexResultArrayGroups.d.ts +0 -10
  438. package/lib/rules/regexResultArrayGroups.js +0 -187
  439. package/lib/rules/regexSetOperationOptimizations.d.ts +0 -10
  440. package/lib/rules/regexSetOperationOptimizations.js +0 -177
  441. package/lib/rules/regexStandaloneBackslashes.d.ts +0 -10
  442. package/lib/rules/regexStandaloneBackslashes.js +0 -59
  443. package/lib/rules/regexStarQuantifiers.d.ts +0 -10
  444. package/lib/rules/regexStarQuantifiers.js +0 -68
  445. package/lib/rules/regexSuperLinearBacktracking.d.ts +0 -10
  446. package/lib/rules/regexSuperLinearBacktracking.js +0 -98
  447. package/lib/rules/regexSuperLinearMoves.d.ts +0 -10
  448. package/lib/rules/regexSuperLinearMoves.js +0 -142
  449. package/lib/rules/regexTestMethods.d.ts +0 -10
  450. package/lib/rules/regexTestMethods.js +0 -83
  451. package/lib/rules/regexUnicodeCodepointEscapes.d.ts +0 -10
  452. package/lib/rules/regexUnicodeCodepointEscapes.js +0 -107
  453. package/lib/rules/regexUnicodeEscapes.d.ts +0 -9
  454. package/lib/rules/regexUnicodeEscapes.js +0 -97
  455. package/lib/rules/regexUnicodeFlag.d.ts +0 -9
  456. package/lib/rules/regexUnicodeFlag.js +0 -97
  457. package/lib/rules/regexUnicodeProperties.d.ts +0 -10
  458. package/lib/rules/regexUnicodeProperties.js +0 -133
  459. package/lib/rules/regexUnnecessaryAssertions.d.ts +0 -10
  460. package/lib/rules/regexUnnecessaryAssertions.js +0 -223
  461. package/lib/rules/regexUnnecessaryBackreferences.d.ts +0 -10
  462. package/lib/rules/regexUnnecessaryBackreferences.js +0 -125
  463. package/lib/rules/regexUnnecessaryCharacterClasses.d.ts +0 -10
  464. package/lib/rules/regexUnnecessaryCharacterClasses.js +0 -74
  465. package/lib/rules/regexUnnecessaryCharacterRanges.d.ts +0 -10
  466. package/lib/rules/regexUnnecessaryCharacterRanges.js +0 -108
  467. package/lib/rules/regexUnnecessaryDisjunctions.d.ts +0 -10
  468. package/lib/rules/regexUnnecessaryDisjunctions.js +0 -118
  469. package/lib/rules/regexUnnecessaryDollarReplacements.d.ts +0 -10
  470. package/lib/rules/regexUnnecessaryDollarReplacements.js +0 -144
  471. package/lib/rules/regexUnnecessaryEscapes.d.ts +0 -10
  472. package/lib/rules/regexUnnecessaryEscapes.js +0 -136
  473. package/lib/rules/regexUnnecessaryLookaroundAssertions.d.ts +0 -10
  474. package/lib/rules/regexUnnecessaryLookaroundAssertions.js +0 -80
  475. package/lib/rules/regexUnnecessaryNestedAssertions.d.ts +0 -10
  476. package/lib/rules/regexUnnecessaryNestedAssertions.js +0 -198
  477. package/lib/rules/regexUnnecessaryNestedQuantifiers.d.ts +0 -10
  478. package/lib/rules/regexUnnecessaryNestedQuantifiers.js +0 -93
  479. package/lib/rules/regexUnnecessaryNonCapturingGroups.d.ts +0 -10
  480. package/lib/rules/regexUnnecessaryNonCapturingGroups.js +0 -104
  481. package/lib/rules/regexUnnecessaryNumericQuantifiers.d.ts +0 -10
  482. package/lib/rules/regexUnnecessaryNumericQuantifiers.js +0 -69
  483. package/lib/rules/regexUnnecessaryOptionalAssertions.d.ts +0 -10
  484. package/lib/rules/regexUnnecessaryOptionalAssertions.js +0 -137
  485. package/lib/rules/regexUnnecessaryReferentialBackreferences.d.ts +0 -10
  486. package/lib/rules/regexUnnecessaryReferentialBackreferences.js +0 -123
  487. package/lib/rules/regexUnnecessarySetOperands.d.ts +0 -10
  488. package/lib/rules/regexUnnecessarySetOperands.js +0 -136
  489. package/lib/rules/regexUnusedCapturingGroups.d.ts +0 -10
  490. package/lib/rules/regexUnusedCapturingGroups.js +0 -69
  491. package/lib/rules/regexUnusedFlags.d.ts +0 -10
  492. package/lib/rules/regexUnusedFlags.js +0 -116
  493. package/lib/rules/regexUnusedLazyQuantifiers.d.ts +0 -10
  494. package/lib/rules/regexUnusedLazyQuantifiers.js +0 -63
  495. package/lib/rules/regexUnusedQuantifiers.d.ts +0 -10
  496. package/lib/rules/regexUnusedQuantifiers.js +0 -63
  497. package/lib/rules/regexValidity.d.ts +0 -10
  498. package/lib/rules/regexValidity.js +0 -146
  499. package/lib/rules/regexWordMatchers.d.ts +0 -10
  500. package/lib/rules/regexWordMatchers.js +0 -146
  501. package/lib/rules/regexZeroQuantifiers.d.ts +0 -10
  502. package/lib/rules/regexZeroQuantifiers.js +0 -60
  503. package/lib/rules/requireImports.d.ts +0 -10
  504. package/lib/rules/requireImports.js +0 -48
  505. package/lib/rules/responseJsonMethods.d.ts +0 -10
  506. package/lib/rules/responseJsonMethods.js +0 -51
  507. package/lib/rules/restrictedIdentifiers.d.ts +0 -13
  508. package/lib/rules/restrictedIdentifiers.js +0 -41
  509. package/lib/rules/restrictedImports.d.ts +0 -27
  510. package/lib/rules/restrictedImports.js +0 -166
  511. package/lib/rules/returnAssignments.d.ts +0 -10
  512. package/lib/rules/returnAssignments.js +0 -38
  513. package/lib/rules/returnThisTypes.d.ts +0 -10
  514. package/lib/rules/returnThisTypes.js +0 -94
  515. package/lib/rules/ruleCreator.d.ts +0 -3
  516. package/lib/rules/ruleCreator.js +0 -17
  517. package/lib/rules/selfAssignments.d.ts +0 -10
  518. package/lib/rules/selfAssignments.js +0 -29
  519. package/lib/rules/sequences.d.ts +0 -10
  520. package/lib/rules/sequences.js +0 -28
  521. package/lib/rules/setSizeLengthChecks.d.ts +0 -10
  522. package/lib/rules/setSizeLengthChecks.js +0 -48
  523. package/lib/rules/setterReturns.d.ts +0 -10
  524. package/lib/rules/setterReturns.js +0 -41
  525. package/lib/rules/shadowedRestrictedNames.d.ts +0 -10
  526. package/lib/rules/shadowedRestrictedNames.js +0 -68
  527. package/lib/rules/singleVariableDeclarations.d.ts +0 -10
  528. package/lib/rules/singleVariableDeclarations.js +0 -36
  529. package/lib/rules/sizeComparisonOperators.d.ts +0 -16
  530. package/lib/rules/sizeComparisonOperators.js +0 -148
  531. package/lib/rules/sparseArrays.d.ts +0 -10
  532. package/lib/rules/sparseArrays.js +0 -43
  533. package/lib/rules/staticMemberOnlyClasses.d.ts +0 -10
  534. package/lib/rules/staticMemberOnlyClasses.js +0 -77
  535. package/lib/rules/stringCaseMismatches.d.ts +0 -10
  536. package/lib/rules/stringCaseMismatches.js +0 -58
  537. package/lib/rules/stringCodePoints.d.ts +0 -10
  538. package/lib/rules/stringCodePoints.js +0 -50
  539. package/lib/rules/stringSliceMethods.d.ts +0 -10
  540. package/lib/rules/stringSliceMethods.js +0 -47
  541. package/lib/rules/stringStartsEndsWith.d.ts +0 -10
  542. package/lib/rules/stringStartsEndsWith.js +0 -79
  543. package/lib/rules/structuredCloneMethods.d.ts +0 -10
  544. package/lib/rules/structuredCloneMethods.js +0 -39
  545. package/lib/rules/symbolDescriptions.d.ts +0 -10
  546. package/lib/rules/symbolDescriptions.js +0 -32
  547. package/lib/rules/thisAliases.d.ts +0 -10
  548. package/lib/rules/thisAliases.js +0 -44
  549. package/lib/rules/thisBeforeSuper.d.ts +0 -10
  550. package/lib/rules/thisBeforeSuper.js +0 -86
  551. package/lib/rules/throwErrors.d.ts +0 -10
  552. package/lib/rules/throwErrors.js +0 -61
  553. package/lib/rules/topLevelAwaits.d.ts +0 -10
  554. package/lib/rules/topLevelAwaits.js +0 -49
  555. package/lib/rules/tripleSlashReferenceValidity.d.ts +0 -10
  556. package/lib/rules/tripleSlashReferenceValidity.js +0 -54
  557. package/lib/rules/tripleSlashReferences.d.ts +0 -10
  558. package/lib/rules/tripleSlashReferences.js +0 -34
  559. package/lib/rules/tsComments.d.ts +0 -22
  560. package/lib/rules/tsComments.js +0 -130
  561. package/lib/rules/tslintComments.d.ts +0 -10
  562. package/lib/rules/tslintComments.js +0 -36
  563. package/lib/rules/typeAssertionStyles.d.ts +0 -10
  564. package/lib/rules/typeAssertionStyles.js +0 -32
  565. package/lib/rules/typeImports.d.ts +0 -20
  566. package/lib/rules/typeImports.js +0 -283
  567. package/lib/rules/typeofComparisons.d.ts +0 -10
  568. package/lib/rules/typeofComparisons.js +0 -58
  569. package/lib/rules/unassignedVariables.d.ts +0 -10
  570. package/lib/rules/unassignedVariables.js +0 -34
  571. package/lib/rules/undefinedTypeofChecks.d.ts +0 -10
  572. package/lib/rules/undefinedTypeofChecks.js +0 -41
  573. package/lib/rules/undefinedVariables.d.ts +0 -10
  574. package/lib/rules/undefinedVariables.js +0 -39
  575. package/lib/rules/unicodeBOMs.d.ts +0 -10
  576. package/lib/rules/unicodeBOMs.js +0 -39
  577. package/lib/rules/unnecessaryBinds.d.ts +0 -10
  578. package/lib/rules/unnecessaryBinds.js +0 -78
  579. package/lib/rules/unnecessaryBlocks.d.ts +0 -10
  580. package/lib/rules/unnecessaryBlocks.js +0 -60
  581. package/lib/rules/unnecessaryBooleanCasts.d.ts +0 -10
  582. package/lib/rules/unnecessaryBooleanCasts.js +0 -58
  583. package/lib/rules/unnecessaryCatches.d.ts +0 -10
  584. package/lib/rules/unnecessaryCatches.js +0 -48
  585. package/lib/rules/unnecessaryComparisons.d.ts +0 -10
  586. package/lib/rules/unnecessaryComparisons.js +0 -300
  587. package/lib/rules/unnecessaryConcatenation.d.ts +0 -10
  588. package/lib/rules/unnecessaryConcatenation.js +0 -28
  589. package/lib/rules/unnecessaryEscapes.d.ts +0 -10
  590. package/lib/rules/unnecessaryEscapes.js +0 -134
  591. package/lib/rules/unnecessaryMathClamps.d.ts +0 -10
  592. package/lib/rules/unnecessaryMathClamps.js +0 -114
  593. package/lib/rules/unnecessaryNumericFractions.d.ts +0 -10
  594. package/lib/rules/unnecessaryNumericFractions.js +0 -50
  595. package/lib/rules/unnecessaryRenames.d.ts +0 -10
  596. package/lib/rules/unnecessaryRenames.js +0 -92
  597. package/lib/rules/unnecessaryTernaries.d.ts +0 -10
  598. package/lib/rules/unnecessaryTernaries.js +0 -88
  599. package/lib/rules/unnecessaryUseStricts.d.ts +0 -10
  600. package/lib/rules/unnecessaryUseStricts.js +0 -40
  601. package/lib/rules/unsafeNegations.d.ts +0 -10
  602. package/lib/rules/unsafeNegations.js +0 -38
  603. package/lib/rules/utils/collectAccessorPairs.d.ts +0 -12
  604. package/lib/rules/utils/collectAccessorPairs.js +0 -29
  605. package/lib/rules/utils/countCommentsInRange.d.ts +0 -3
  606. package/lib/rules/utils/countCommentsInRange.js +0 -12
  607. package/lib/rules/utils/discriminateAnyType.d.ts +0 -16
  608. package/lib/rules/utils/discriminateAnyType.js +0 -38
  609. package/lib/rules/utils/equalityOperators.d.ts +0 -9
  610. package/lib/rules/utils/equalityOperators.js +0 -36
  611. package/lib/rules/utils/forEachReturnStatement.d.ts +0 -3
  612. package/lib/rules/utils/forEachReturnStatement.js +0 -29
  613. package/lib/rules/utils/formatReportedType.d.ts +0 -4
  614. package/lib/rules/utils/formatReportedType.js +0 -9
  615. package/lib/rules/utils/getConstrainedType.d.ts +0 -3
  616. package/lib/rules/utils/getConstrainedType.js +0 -9
  617. package/lib/rules/utils/getFunctionName.d.ts +0 -3
  618. package/lib/rules/utils/getFunctionName.js +0 -16
  619. package/lib/rules/utils/getRegExpConstruction.d.ts +0 -10
  620. package/lib/rules/utils/getRegExpConstruction.js +0 -26
  621. package/lib/rules/utils/getRegExpLiteralDetails.d.ts +0 -7
  622. package/lib/rules/utils/getRegExpLiteralDetails.js +0 -13
  623. package/lib/rules/utils/getThisExpression.d.ts +0 -3
  624. package/lib/rules/utils/getThisExpression.js +0 -16
  625. package/lib/rules/utils/isArrayOrTupleTypeAtLocation.d.ts +0 -3
  626. package/lib/rules/utils/isArrayOrTupleTypeAtLocation.js +0 -13
  627. package/lib/rules/utils/isBuiltinSymbolLike.d.ts +0 -3
  628. package/lib/rules/utils/isBuiltinSymbolLike.js +0 -33
  629. package/lib/rules/utils/isDirectEqualityCheck.d.ts +0 -4
  630. package/lib/rules/utils/isDirectEqualityCheck.js +0 -29
  631. package/lib/rules/utils/isErrorSubclass.d.ts +0 -3
  632. package/lib/rules/utils/isErrorSubclass.js +0 -27
  633. package/lib/rules/utils/isInBooleanContext.d.ts +0 -3
  634. package/lib/rules/utils/isInBooleanContext.js +0 -22
  635. package/lib/rules/utils/isTypeRecursive.d.ts +0 -3
  636. package/lib/rules/utils/isTypeRecursive.js +0 -8
  637. package/lib/rules/utils/isUnsafeAssignment.d.ts +0 -15
  638. package/lib/rules/utils/isUnsafeAssignment.js +0 -45
  639. package/lib/rules/utils/operators.d.ts +0 -5
  640. package/lib/rules/utils/operators.js +0 -35
  641. package/lib/rules/utils/parseRegexpAst.d.ts +0 -2
  642. package/lib/rules/utils/parseRegexpAst.js +0 -17
  643. package/lib/rules/utils/parseRegexpAstFull.d.ts +0 -3
  644. package/lib/rules/utils/parseRegexpAstFull.js +0 -18
  645. package/lib/rules/utils/skipParentheses.d.ts +0 -3
  646. package/lib/rules/utils/skipParentheses.js +0 -10
  647. package/lib/rules/variableDeletions.d.ts +0 -10
  648. package/lib/rules/variableDeletions.js +0 -35
  649. package/lib/rules/voidOperator.d.ts +0 -10
  650. package/lib/rules/voidOperator.js +0 -34
  651. package/lib/rules/withStatements.d.ts +0 -10
  652. package/lib/rules/withStatements.js +0 -30
  653. package/lib/rules/wrapperObjects.d.ts +0 -10
  654. package/lib/rules/wrapperObjects.js +0 -36
  655. package/lib/type-utils/getSpecifierNames.d.ts +0 -3
  656. package/lib/type-utils/getSpecifierNames.js +0 -9
  657. package/lib/type-utils/isDeclaredInModuleBlock.d.ts +0 -3
  658. package/lib/type-utils/isDeclaredInModuleBlock.js +0 -14
  659. package/lib/type-utils/isFromFile.d.ts +0 -3
  660. package/lib/type-utils/isFromFile.js +0 -13
  661. package/lib/type-utils/isFromPackage.d.ts +0 -3
  662. package/lib/type-utils/isFromPackage.js +0 -16
  663. package/lib/type-utils/matchesSpecifier.d.ts +0 -4
  664. package/lib/type-utils/matchesSpecifier.js +0 -20
  665. package/lib/type-utils/schemas.d.ts +0 -15
  666. package/lib/type-utils/schemas.js +0 -25
@@ -1,36 +0,0 @@
1
- import { ruleCreator } from "./ruleCreator.js";
2
- import { typescriptLanguage } from "@flint.fyi/typescript-language";
3
- import * as tsutils from "ts-api-utils";
4
- //#region src/rules/tslintComments.ts
5
- const tslintDirectiveRegex = /^\s*\/?tslint:(?:enable|disable)(?:-(?:line|next-line))?(?::|\s|$)/i;
6
- var tslintComments_default = ruleCreator.createRule(typescriptLanguage, {
7
- about: {
8
- description: "Reports TSLint disable/enable comments.",
9
- id: "tslintComments",
10
- presets: ["logical"]
11
- },
12
- messages: { tslintComment: {
13
- primary: "TSLint is deprecated and its comments are no longer necessary.",
14
- secondary: ["TSLint has been replaced by other linters such as Flint.", "These comments no longer have any effect."],
15
- suggestions: ["Remove the TSLint comment.", "Replace it with the equivalent Flint comment if needed."]
16
- } },
17
- setup(context) {
18
- return { visitors: { SourceFile: (node) => {
19
- const comments = tsutils.iterateComments(node);
20
- for (const { end, pos, text } of comments) {
21
- const commentContent = text.replace(/^\/\/\s*/, "").replace(/^\/\*\s*/, "").replace(/\s*\*\/$/, "");
22
- if (tslintDirectiveRegex.test(commentContent)) context.report({
23
- message: "tslintComment",
24
- range: {
25
- begin: pos,
26
- end
27
- }
28
- });
29
- }
30
- } } };
31
- }
32
- });
33
- //#endregion
34
- export { tslintComments_default as default };
35
-
36
- //# sourceMappingURL=tslintComments.js.map
@@ -1,10 +0,0 @@
1
- declare const _default: import("@flint.fyi/core").Rule<{
2
- readonly description: "Reports angle-bracket type assertions.";
3
- readonly id: "typeAssertionStyles";
4
- readonly presets: readonly ["stylistic"];
5
- } & {
6
- readonly pluginId: string;
7
- readonly url: string;
8
- }, "preferAs", undefined>;
9
- export default _default;
10
- //# sourceMappingURL=typeAssertionStyles.d.ts.map
@@ -1,32 +0,0 @@
1
- import { ruleCreator } from "./ruleCreator.js";
2
- import { getTSNodeRange, typescriptLanguage } from "@flint.fyi/typescript-language";
3
- import ts from "typescript";
4
- //#region src/rules/typeAssertionStyles.ts
5
- function isConstAssertion(node, sourceFile) {
6
- return node.type.kind === ts.SyntaxKind.TypeReference && node.type.typeName.kind === ts.SyntaxKind.Identifier && node.type.typeName.getText(sourceFile) === "const";
7
- }
8
- var typeAssertionStyles_default = ruleCreator.createRule(typescriptLanguage, {
9
- about: {
10
- description: "Reports angle-bracket type assertions.",
11
- id: "typeAssertionStyles",
12
- presets: ["stylistic"]
13
- },
14
- messages: { preferAs: {
15
- primary: "Prefer `as` syntax for type assertions instead of legacy angle-brackets.",
16
- secondary: ["Angle-bracket syntax is ambiguous with JSX.", "The 'as' syntax is clearer and works in all contexts."],
17
- suggestions: ["Convert '<Type>value' to 'value as Type'."]
18
- } },
19
- setup(context) {
20
- return { visitors: { TypeAssertionExpression(node, { sourceFile }) {
21
- if (isConstAssertion(node, sourceFile)) return;
22
- context.report({
23
- message: "preferAs",
24
- range: getTSNodeRange(node, sourceFile)
25
- });
26
- } } };
27
- }
28
- });
29
- //#endregion
30
- export { typeAssertionStyles_default as default };
31
-
32
- //# sourceMappingURL=typeAssertionStyles.js.map
@@ -1,20 +0,0 @@
1
- import { z } from "zod/v4";
2
- declare const _default: import("@flint.fyi/core").Rule<{
3
- readonly description: "Reports imports that do not match the configured type import style.";
4
- readonly id: "typeImports";
5
- readonly presets: readonly ["stylistic"];
6
- } & {
7
- readonly pluginId: string;
8
- readonly url: string;
9
- }, "avoidImportType" | "someImportsAreOnlyTypes" | "typeOverValue", {
10
- fixStyle: z.ZodDefault<z.ZodEnum<{
11
- "inline-type-imports": "inline-type-imports";
12
- "separate-type-imports": "separate-type-imports";
13
- }>>;
14
- prefer: z.ZodDefault<z.ZodEnum<{
15
- "no-type-imports": "no-type-imports";
16
- "type-imports": "type-imports";
17
- }>>;
18
- }>;
19
- export default _default;
20
- //# sourceMappingURL=typeImports.d.ts.map
@@ -1,283 +0,0 @@
1
- import { ruleCreator } from "./ruleCreator.js";
2
- import { forEachChild, getTSNodeRange, typescriptLanguage } from "@flint.fyi/typescript-language";
3
- import ts, { SyntaxKind } from "typescript";
4
- import { z } from "zod/v4";
5
- //#region src/rules/typeImports.ts
6
- function containsDecorator(node) {
7
- if (node.kind === SyntaxKind.Decorator) return true;
8
- return forEachChild(node, containsDecorator) ?? false;
9
- }
10
- function formatWordList(words) {
11
- if (words.length < 2) return words[0] ?? "";
12
- const last = words.at(-1);
13
- return `${words.slice(0, -1).join(", ")} and ${last}`;
14
- }
15
- function getImportSource(node, sourceFile) {
16
- return ts.isStringLiteral(node.moduleSpecifier) ? node.moduleSpecifier.text : node.moduleSpecifier.getText(sourceFile);
17
- }
18
- function getImportSpecifiers(node) {
19
- const importClause = node.importClause;
20
- if (!importClause) return [];
21
- const specifiers = [];
22
- if (importClause.name) specifiers.push(importClause.name);
23
- const namedBindings = importClause.namedBindings;
24
- if (namedBindings) if (namedBindings.kind === ts.SyntaxKind.NamespaceImport) specifiers.push(namedBindings);
25
- else specifiers.push(...namedBindings.elements);
26
- return specifiers;
27
- }
28
- function getReferencedSymbol(typeChecker, node) {
29
- const symbol = typeChecker.getSymbolAtLocation(node);
30
- return symbol?.flags && (symbol.flags & ts.SymbolFlags.Alias) !== 0 ? typeChecker.getAliasedSymbol(symbol) : symbol;
31
- }
32
- function getSpecifierLocal(specifier) {
33
- return specifier.kind === SyntaxKind.Identifier ? specifier : specifier.name;
34
- }
35
- function getTypeImportFix(report, sourceFile, fixStyle) {
36
- const node = report.node;
37
- const importText = node.getText(sourceFile);
38
- const importClause = node.importClause;
39
- const namedBindings = importClause?.namedBindings;
40
- const range = getTSNodeRange(node, sourceFile);
41
- if (report.valueSpecifiers.length || report.unusedSpecifiers.length) {
42
- if (!importClause || importClause.name || namedBindings?.kind !== ts.SyntaxKind.NamedImports) return;
43
- const typeSpecifiers = new Set(report.typeSpecifiers);
44
- const remainingSpecifiers = namedBindings.elements.filter((specifier) => !typeSpecifiers.has(specifier));
45
- const typeText = report.typeSpecifiers.map((specifier) => specifier.getText(sourceFile)).join(", ");
46
- const remainingText = remainingSpecifiers.map((specifier) => specifier.getText(sourceFile)).join(", ");
47
- const moduleText = node.moduleSpecifier.getText(sourceFile);
48
- return {
49
- range,
50
- text: `import type { ${typeText}} from ${moduleText};\nimport { ${remainingText} } from ${moduleText};`
51
- };
52
- }
53
- if (fixStyle === "inline-type-imports" && importClause && !importClause.name && namedBindings?.kind === ts.SyntaxKind.NamedImports) {
54
- const moduleText = node.moduleSpecifier.getText(sourceFile);
55
- return {
56
- range,
57
- text: `import { ${namedBindings.elements.map((specifier) => specifier.isTypeOnly ? specifier.getText(sourceFile) : `type ${specifier.getText(sourceFile)}`).join(", ")} } from ${moduleText};`
58
- };
59
- }
60
- return {
61
- range,
62
- text: importText.replace(/^import\b/, "import type")
63
- };
64
- }
65
- function getTypeKeywordFixRange(node, sourceFile) {
66
- const range = getTypeKeywordRange(node, sourceFile);
67
- if (sourceFile.text[range.end] === " ") range.end += 1;
68
- return range;
69
- }
70
- function getTypeKeywordRange(node, sourceFile) {
71
- for (const child of node.getChildren(sourceFile)) if (child.kind === SyntaxKind.TypeKeyword) {
72
- const range = getTSNodeRange(child, sourceFile);
73
- if (node.kind === SyntaxKind.ImportSpecifier && sourceFile.text[range.end] === " ") range.end += 1;
74
- return range;
75
- }
76
- return getTSNodeRange(node, sourceFile);
77
- }
78
- function isInImportDeclaration(node) {
79
- let current = node;
80
- while (current) {
81
- if (current.kind === SyntaxKind.ImportDeclaration) return true;
82
- current = current.parent;
83
- }
84
- return false;
85
- }
86
- function isInlineTypeSpecifier(specifier) {
87
- return specifier.kind === SyntaxKind.ImportSpecifier && specifier.isTypeOnly;
88
- }
89
- function isOnlyTypeReference(node) {
90
- if (isTypeQueryReference(node) || isTypeOnlyExportReference(node) || isPropertySignatureComputedReference(node)) return true;
91
- let current;
92
- let parent = node.parent;
93
- while (parent) {
94
- if (parent.kind === ts.SyntaxKind.HeritageClause) return parent.token === SyntaxKind.ImplementsKeyword;
95
- if (ts.isTypeAliasDeclaration(parent) || ts.isInterfaceDeclaration(parent) || ts.isTypeParameterDeclaration(parent)) return true;
96
- if (ts.isTypeNode(parent) && !ts.isExpressionWithTypeArguments(parent)) return true;
97
- current = parent;
98
- parent = current.parent;
99
- }
100
- return false;
101
- }
102
- function isPropertySignatureComputedReference(node) {
103
- let child = node;
104
- let parent = node.parent;
105
- while (parent) switch (parent.kind) {
106
- case SyntaxKind.PropertySignature: return parent.name === child;
107
- case SyntaxKind.ComputedPropertyName:
108
- if (parent.expression !== child) return false;
109
- child = parent;
110
- parent = parent.parent;
111
- continue;
112
- case SyntaxKind.PropertyAccessExpression:
113
- if (parent.expression !== child) return false;
114
- child = parent;
115
- parent = parent.parent;
116
- continue;
117
- default: return false;
118
- }
119
- return false;
120
- }
121
- function isTypeImportDeclaration(node) {
122
- return node.importClause?.phaseModifier === SyntaxKind.TypeKeyword;
123
- }
124
- function isTypeOnlyExportReference(node) {
125
- const parent = node.parent;
126
- if (parent.kind !== SyntaxKind.ExportSpecifier) return false;
127
- const exportDeclaration = parent.parent.parent;
128
- return parent.name === node && exportDeclaration.isTypeOnly;
129
- }
130
- function isTypeQueryReference(node) {
131
- let child = node;
132
- let parent = node.parent;
133
- while (parent) switch (parent.kind) {
134
- case SyntaxKind.TypeQuery: return true;
135
- case SyntaxKind.QualifiedName:
136
- if (parent.left !== child) return false;
137
- child = parent;
138
- parent = parent.parent;
139
- continue;
140
- default: return false;
141
- }
142
- return false;
143
- }
144
- var typeImports_default = ruleCreator.createRule(typescriptLanguage, {
145
- about: {
146
- description: "Reports imports that do not match the configured type import style.",
147
- id: "typeImports",
148
- presets: ["stylistic"]
149
- },
150
- messages: {
151
- avoidImportType: {
152
- primary: "Use a regular import instead of a type-only import.",
153
- secondary: ["This configuration prefers regular imports over `import type` syntax."],
154
- suggestions: ["Change this type-only import to a regular import."]
155
- },
156
- someImportsAreOnlyTypes: {
157
- primary: "Imports {{ typeImports }} are only used as types.",
158
- secondary: ["These imports are only used in type positions.", "Using 'import type' improves tree-shaking and makes intent clear."],
159
- suggestions: ["Change these imports to use 'import type'."]
160
- },
161
- typeOverValue: {
162
- primary: "All imports in this declaration are only used as types. Use 'import type'.",
163
- secondary: ["This import is only used in type positions.", "Using 'import type' improves tree-shaking and makes intent clear."],
164
- suggestions: ["Change this declaration to use 'import type'."]
165
- }
166
- },
167
- options: {
168
- fixStyle: z.enum(["inline-type-imports", "separate-type-imports"]).default("inline-type-imports"),
169
- prefer: z.enum(["no-type-imports", "type-imports"]).default("type-imports")
170
- },
171
- setup(context) {
172
- return { visitors: { SourceFile(node, { options, program, sourceFile, typeChecker }) {
173
- if (options.prefer === "no-type-imports") {
174
- for (const statement of node.statements) {
175
- if (!ts.isImportDeclaration(statement) || !statement.importClause) continue;
176
- if (isTypeImportDeclaration(statement)) {
177
- context.report({
178
- fix: {
179
- range: getTypeKeywordFixRange(statement.importClause, sourceFile),
180
- text: ""
181
- },
182
- message: "avoidImportType",
183
- range: getTypeKeywordRange(statement.importClause, sourceFile)
184
- });
185
- continue;
186
- }
187
- for (const specifier of getImportSpecifiers(statement)) {
188
- if (!isInlineTypeSpecifier(specifier)) continue;
189
- context.report({
190
- fix: {
191
- range: getTypeKeywordFixRange(specifier, sourceFile),
192
- text: ""
193
- },
194
- message: "avoidImportType",
195
- range: getTypeKeywordRange(specifier, sourceFile)
196
- });
197
- }
198
- }
199
- return;
200
- }
201
- const compilerOptions = program.getCompilerOptions();
202
- if (compilerOptions.experimentalDecorators && compilerOptions.emitDecoratorMetadata && containsDecorator(node)) return;
203
- const sourceImportsMap = {};
204
- const importedSpecifiers = [];
205
- const references = /* @__PURE__ */ new Map();
206
- for (const statement of node.statements) {
207
- if (!ts.isImportDeclaration(statement) || !statement.importClause) continue;
208
- const source = getImportSource(statement, sourceFile);
209
- sourceImportsMap[source] ??= { reportValueImports: [] };
210
- if (isTypeImportDeclaration(statement)) continue;
211
- for (const specifier of getImportSpecifiers(statement)) {
212
- if (isInlineTypeSpecifier(specifier)) continue;
213
- const local = getSpecifierLocal(specifier);
214
- const importedSpecifier = {
215
- local,
216
- specifier,
217
- symbol: getReferencedSymbol(typeChecker, local)
218
- };
219
- importedSpecifiers.push(importedSpecifier);
220
- references.set(importedSpecifier, []);
221
- }
222
- }
223
- function collectReferences(node) {
224
- if (ts.isIdentifier(node) && !isInImportDeclaration(node)) {
225
- const symbol = getReferencedSymbol(typeChecker, node);
226
- const importedSpecifier = importedSpecifiers.find((specifier) => specifier.local.text === node.text && (!specifier.symbol || specifier.symbol === symbol));
227
- if (importedSpecifier) references.get(importedSpecifier)?.push(node);
228
- }
229
- forEachChild(node, collectReferences);
230
- }
231
- collectReferences(node);
232
- for (const statement of node.statements) {
233
- if (!ts.isImportDeclaration(statement) || !statement.importClause || isTypeImportDeclaration(statement)) continue;
234
- const typeSpecifiers = [];
235
- const valueSpecifiers = [];
236
- const unusedSpecifiers = [];
237
- for (const specifier of getImportSpecifiers(statement)) {
238
- if (isInlineTypeSpecifier(specifier)) continue;
239
- const importedSpecifier = importedSpecifiers.find(({ specifier: found }) => found === specifier);
240
- const specifierReferences = importedSpecifier ? references.get(importedSpecifier) : void 0;
241
- if (!specifierReferences?.length) unusedSpecifiers.push(specifier);
242
- else if (specifierReferences.every(isOnlyTypeReference)) typeSpecifiers.push(specifier);
243
- else valueSpecifiers.push(specifier);
244
- }
245
- if (typeSpecifiers.length) {
246
- const sourceImports = sourceImportsMap[getImportSource(statement, sourceFile)];
247
- if (!sourceImports) continue;
248
- sourceImports.reportValueImports.push({
249
- node: statement,
250
- typeSpecifiers,
251
- unusedSpecifiers,
252
- valueSpecifiers
253
- });
254
- }
255
- }
256
- for (const sourceImports of Object.values(sourceImportsMap)) {
257
- if (!sourceImports.reportValueImports.length) continue;
258
- for (const report of sourceImports.reportValueImports) {
259
- const fix = getTypeImportFix(report, sourceFile, options.fixStyle);
260
- if (!report.valueSpecifiers.length && !report.unusedSpecifiers.length && !report.node.attributes?.elements.length) {
261
- context.report({
262
- fix,
263
- message: "typeOverValue",
264
- range: getTSNodeRange(report.node, sourceFile)
265
- });
266
- continue;
267
- }
268
- const importNames = report.typeSpecifiers.map((specifier) => `"${getSpecifierLocal(specifier).text}"`);
269
- context.report({
270
- data: { typeImports: formatWordList(importNames) },
271
- fix,
272
- message: "someImportsAreOnlyTypes",
273
- range: getTSNodeRange(report.node, sourceFile)
274
- });
275
- }
276
- }
277
- } } };
278
- }
279
- });
280
- //#endregion
281
- export { typeImports_default as default };
282
-
283
- //# sourceMappingURL=typeImports.js.map
@@ -1,10 +0,0 @@
1
- declare const _default: import("@flint.fyi/core").Rule<{
2
- readonly description: "Reports typeof expressions that compare impossible string literals.";
3
- readonly id: "typeofComparisons";
4
- readonly presets: readonly ["javascript"];
5
- } & {
6
- readonly pluginId: string;
7
- readonly url: string;
8
- }, "invalidValue", undefined>;
9
- export default _default;
10
- //# sourceMappingURL=typeofComparisons.d.ts.map
@@ -1,58 +0,0 @@
1
- import { ruleCreator } from "./ruleCreator.js";
2
- import { getTSNodeRange, typescriptLanguage } from "@flint.fyi/typescript-language";
3
- import { SyntaxKind } from "typescript";
4
- //#region src/rules/typeofComparisons.ts
5
- const validTypeofValues = new Set([
6
- "bigint",
7
- "boolean",
8
- "function",
9
- "number",
10
- "object",
11
- "string",
12
- "symbol",
13
- "undefined"
14
- ]);
15
- function getStringValue(node) {
16
- return node.kind === SyntaxKind.StringLiteral || node.kind === SyntaxKind.NoSubstitutionTemplateLiteral ? node.text : void 0;
17
- }
18
- function getTypeofOperand(node) {
19
- return node.kind === SyntaxKind.TypeOfExpression && node.expression;
20
- }
21
- var typeofComparisons_default = ruleCreator.createRule(typescriptLanguage, {
22
- about: {
23
- description: "Reports typeof expressions that compare impossible string literals.",
24
- id: "typeofComparisons",
25
- presets: ["javascript"]
26
- },
27
- messages: { invalidValue: {
28
- primary: "This string literal is not one that the typeof operator will ever produce.",
29
- secondary: [
30
- "The typeof operator returns one of a specific set of string values.",
31
- "Comparing typeof to an invalid string is usually a typo and will never match.",
32
- "The only valid values are: \"bigint\", \"boolean\", \"function\", \"number\", \"object\", \"string\", \"symbol\", and \"undefined\"."
33
- ],
34
- suggestions: ["Check for typos and use one of the valid typeof return values."]
35
- } },
36
- setup(context) {
37
- function checkComparison(node, sourceFile) {
38
- const leftTypeofOperand = getTypeofOperand(node.left);
39
- const rightTypeofOperand = getTypeofOperand(node.right);
40
- let comparisonValue;
41
- if (leftTypeofOperand) comparisonValue = node.right;
42
- else if (rightTypeofOperand) comparisonValue = node.left;
43
- else return;
44
- const stringValue = getStringValue(comparisonValue);
45
- if (stringValue != null && !validTypeofValues.has(stringValue)) context.report({
46
- message: "invalidValue",
47
- range: getTSNodeRange(comparisonValue, sourceFile)
48
- });
49
- }
50
- return { visitors: { BinaryExpression: (node, { sourceFile }) => {
51
- if (node.operatorToken.kind === SyntaxKind.EqualsEqualsToken || node.operatorToken.kind === SyntaxKind.EqualsEqualsEqualsToken || node.operatorToken.kind === SyntaxKind.ExclamationEqualsToken || node.operatorToken.kind === SyntaxKind.ExclamationEqualsEqualsToken) checkComparison(node, sourceFile);
52
- } } };
53
- }
54
- });
55
- //#endregion
56
- export { typeofComparisons_default as default };
57
-
58
- //# sourceMappingURL=typeofComparisons.js.map
@@ -1,10 +0,0 @@
1
- declare const _default: import("@flint.fyi/core").Rule<{
2
- readonly description: "Reports variables that are declared but never assigned a value.";
3
- readonly id: "unassignedVariables";
4
- readonly presets: readonly ["javascript"];
5
- } & {
6
- readonly pluginId: string;
7
- readonly url: string;
8
- }, "noUnassigned", undefined>;
9
- export default _default;
10
- //# sourceMappingURL=unassignedVariables.d.ts.map
@@ -1,34 +0,0 @@
1
- import { ruleCreator } from "./ruleCreator.js";
2
- import { getModifyingReferences, typescriptLanguage } from "@flint.fyi/typescript-language";
3
- import ts, { SyntaxKind } from "typescript";
4
- //#region src/rules/unassignedVariables.ts
5
- var unassignedVariables_default = ruleCreator.createRule(typescriptLanguage, {
6
- about: {
7
- description: "Reports variables that are declared but never assigned a value.",
8
- id: "unassignedVariables",
9
- presets: ["javascript"]
10
- },
11
- messages: { noUnassigned: {
12
- primary: "Variable '{{ name }}' is declared but never assigned a value.",
13
- secondary: ["Declaring a variable without ever assigning it a value means it will always be `undefined`.", "This is often a mistake, such as forgetting to initialize the variable or assign to it later."],
14
- suggestions: ["Assign a value to the variable, either at declaration or before it is used.", "If the variable is meant to be `undefined`, consider making that explicit for clarity."]
15
- } },
16
- setup(context) {
17
- return { visitors: { VariableDeclaration: (node, { sourceFile }) => {
18
- if (node.initializer || node.name.kind !== SyntaxKind.Identifier) return;
19
- if (node.parent.kind === SyntaxKind.VariableDeclarationList && !!(node.parent.flags & ts.NodeFlags.Const)) return;
20
- if (!getModifyingReferences(node.name, sourceFile).length) context.report({
21
- data: { name: node.name.text },
22
- message: "noUnassigned",
23
- range: {
24
- begin: node.name.getStart(sourceFile),
25
- end: node.name.getEnd()
26
- }
27
- });
28
- } } };
29
- }
30
- });
31
- //#endregion
32
- export { unassignedVariables_default as default };
33
-
34
- //# sourceMappingURL=unassignedVariables.js.map
@@ -1,10 +0,0 @@
1
- declare const _default: import("@flint.fyi/core").Rule<{
2
- readonly description: "Reports typeof undefined checks.";
3
- readonly id: "undefinedTypeofChecks";
4
- readonly presets: readonly ["stylistic"];
5
- } & {
6
- readonly pluginId: string;
7
- readonly url: string;
8
- }, "directComparison", undefined>;
9
- export default _default;
10
- //# sourceMappingURL=undefinedTypeofChecks.d.ts.map
@@ -1,41 +0,0 @@
1
- import { ruleCreator } from "./ruleCreator.js";
2
- import { getTSNodeRange, typescriptLanguage } from "@flint.fyi/typescript-language";
3
- import { SyntaxKind } from "typescript";
4
- //#region src/rules/undefinedTypeofChecks.ts
5
- var undefinedTypeofChecks_default = ruleCreator.createRule(typescriptLanguage, {
6
- about: {
7
- description: "Reports typeof undefined checks.",
8
- id: "undefinedTypeofChecks",
9
- presets: ["stylistic"]
10
- },
11
- messages: { directComparison: {
12
- primary: "This `typeof` comparison can be simplified to `=== undefined`.",
13
- secondary: ["Checking whether a value is `undefined` can be done either with a `typeof` check or an equality comparison.", "Both amount to the same in modern code that does not override the global `undefined` value."],
14
- suggestions: ["Replace with a direct `undefined` comparison."]
15
- } },
16
- setup(context) {
17
- return { visitors: { BinaryExpression(node, { sourceFile }) {
18
- const operator = node.operatorToken.kind;
19
- if (operator !== SyntaxKind.EqualsEqualsEqualsToken && operator !== SyntaxKind.ExclamationEqualsEqualsToken && operator !== SyntaxKind.EqualsEqualsToken && operator !== SyntaxKind.ExclamationEqualsToken) return;
20
- let typeofExpression;
21
- if (node.left.kind === SyntaxKind.TypeOfExpression && node.right.kind === SyntaxKind.StringLiteral && node.right.text === "undefined") typeofExpression = node.left.expression;
22
- else if (node.right.kind === SyntaxKind.TypeOfExpression && node.left.kind === SyntaxKind.StringLiteral && node.left.text === "undefined") typeofExpression = node.right.expression;
23
- if (!typeofExpression) return;
24
- const range = getTSNodeRange(node, sourceFile);
25
- const expressionText = typeofExpression.getText(sourceFile);
26
- const operatorText = node.operatorToken.getText(sourceFile);
27
- context.report({
28
- fix: {
29
- range,
30
- text: `${expressionText} ${operatorText} undefined`
31
- },
32
- message: "directComparison",
33
- range
34
- });
35
- } } };
36
- }
37
- });
38
- //#endregion
39
- export { undefinedTypeofChecks_default as default };
40
-
41
- //# sourceMappingURL=undefinedTypeofChecks.js.map
@@ -1,10 +0,0 @@
1
- declare const _default: import("@flint.fyi/core").Rule<{
2
- readonly description: "Reports using variables that are not defined.";
3
- readonly id: "undefinedVariables";
4
- readonly presets: readonly ["javascript"];
5
- } & {
6
- readonly pluginId: string;
7
- readonly url: string;
8
- }, "undefinedVariable", undefined>;
9
- export default _default;
10
- //# sourceMappingURL=undefinedVariables.d.ts.map
@@ -1,39 +0,0 @@
1
- import { ruleCreator } from "./ruleCreator.js";
2
- import { typescriptLanguage } from "@flint.fyi/typescript-language";
3
- import { SyntaxKind } from "typescript";
4
- //#region src/rules/undefinedVariables.ts
5
- var undefinedVariables_default = ruleCreator.createRule(typescriptLanguage, {
6
- about: {
7
- description: "Reports using variables that are not defined.",
8
- id: "undefinedVariables",
9
- presets: ["javascript"]
10
- },
11
- messages: { undefinedVariable: {
12
- primary: "Variable '{{ name }}' is used but was never defined.",
13
- secondary: ["Variables must be declared before they can be used.", "Using undefined variables will cause a ReferenceError at runtime."],
14
- suggestions: ["Declare the variable before using it, or check if the variable name is spelled correctly."]
15
- } },
16
- setup(context) {
17
- return { visitors: { Identifier: (node, { sourceFile, typeChecker }) => {
18
- if (node.parent.kind === SyntaxKind.VariableDeclaration && node.parent.name === node) return;
19
- if (node.parent.kind === SyntaxKind.Parameter && node.parent.name === node) return;
20
- if ((node.parent.kind === SyntaxKind.FunctionDeclaration || node.parent.kind === SyntaxKind.ClassDeclaration || node.parent.kind === SyntaxKind.InterfaceDeclaration || node.parent.kind === SyntaxKind.TypeAliasDeclaration || node.parent.kind === SyntaxKind.EnumDeclaration || node.parent.kind === SyntaxKind.ModuleDeclaration) && node.parent.name === node) return;
21
- if (node.parent.kind === SyntaxKind.ImportSpecifier || node.parent.kind === SyntaxKind.ImportClause || node.parent.kind === SyntaxKind.NamespaceImport) return;
22
- if (node.parent.kind === SyntaxKind.PropertyAccessExpression && node.parent.name === node) return;
23
- if (node.parent.kind === SyntaxKind.PropertyAssignment && node.parent.name === node) return;
24
- if (node.parent.kind === SyntaxKind.TypeOfExpression && node.parent.expression === node) return;
25
- if (!typeChecker.getSymbolAtLocation(node)) context.report({
26
- data: { name: node.text },
27
- message: "undefinedVariable",
28
- range: {
29
- begin: node.getStart(sourceFile),
30
- end: node.getEnd()
31
- }
32
- });
33
- } } };
34
- }
35
- });
36
- //#endregion
37
- export { undefinedVariables_default as default };
38
-
39
- //# sourceMappingURL=undefinedVariables.js.map
@@ -1,10 +0,0 @@
1
- declare const _default: import("@flint.fyi/core").Rule<{
2
- readonly description: "Reports files with Unicode Byte Order Marks (BOMs).";
3
- readonly id: "unicodeBOMs";
4
- readonly presets: readonly ["stylistic", "stylisticStrict"];
5
- } & {
6
- readonly pluginId: string;
7
- readonly url: string;
8
- }, "noBOM", undefined>;
9
- export default _default;
10
- //# sourceMappingURL=unicodeBOMs.d.ts.map
@@ -1,39 +0,0 @@
1
- import { ruleCreator } from "./ruleCreator.js";
2
- import { typescriptLanguage } from "@flint.fyi/typescript-language";
3
- //#region src/rules/unicodeBOMs.ts
4
- var unicodeBOMs_default = ruleCreator.createRule(typescriptLanguage, {
5
- about: {
6
- description: "Reports files with Unicode Byte Order Marks (BOMs).",
7
- id: "unicodeBOMs",
8
- presets: ["stylistic", "stylisticStrict"]
9
- },
10
- messages: { noBOM: {
11
- primary: "This Unicode Byte Order Mark (BOM) is unnecessary and can cause issues with some tools.",
12
- secondary: ["The Unicode BOM is a special character (U+FEFF) that can appear at the start of a file to indicate its byte order and encoding.", "While it can be useful in some contexts, it does not improve tooling portability and is not generally helpful for editors."],
13
- suggestions: ["Remove the BOM from the beginning of the file."]
14
- } },
15
- setup(context) {
16
- return { visitors: { SourceFile: (node) => {
17
- if (node.getFullText().charCodeAt(0) !== 65279) return {};
18
- context.report({
19
- message: "noBOM",
20
- range: {
21
- begin: 0,
22
- end: 1
23
- },
24
- suggestions: [{
25
- id: "removeBOM",
26
- range: {
27
- begin: 0,
28
- end: 1
29
- },
30
- text: ""
31
- }]
32
- });
33
- } } };
34
- }
35
- });
36
- //#endregion
37
- export { unicodeBOMs_default as default };
38
-
39
- //# sourceMappingURL=unicodeBOMs.js.map
@@ -1,10 +0,0 @@
1
- declare const _default: import("@flint.fyi/core").Rule<{
2
- readonly description: "Reports unnecessary `.bind()` calls.";
3
- readonly id: "unnecessaryBinds";
4
- readonly presets: readonly ["logical"];
5
- } & {
6
- readonly pluginId: string;
7
- readonly url: string;
8
- }, "unnecessaryBinds" | "arrowBind", undefined>;
9
- export default _default;
10
- //# sourceMappingURL=unnecessaryBinds.d.ts.map