@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,64 +0,0 @@
1
- import { ruleCreator } from "./ruleCreator.js";
2
- import { isArrayOrTupleTypeAtLocation } from "./utils/isArrayOrTupleTypeAtLocation.js";
3
- import { getTSNodeRange, typescriptLanguage } from "@flint.fyi/typescript-language";
4
- import ts from "typescript";
5
- //#region src/rules/arrayReduceTypeArguments.ts
6
- function isTypeAssertion(node) {
7
- return node.kind === ts.SyntaxKind.AsExpression || node.kind === ts.SyntaxKind.TypeAssertionExpression;
8
- }
9
- var arrayReduceTypeArguments_default = ruleCreator.createRule(typescriptLanguage, {
10
- about: {
11
- description: "Reports `Array#reduce` calls using type assertions on initial values instead of type arguments.",
12
- id: "arrayReduceTypeArguments",
13
- presets: ["logicalStrict"]
14
- },
15
- messages: { preferTypeParameter: {
16
- primary: "Using a type assertion on a reducer's initial value is less type-safe than providing a type parameter.",
17
- secondary: ["Using `Array#reduce<T>` with a type parameter is clearer than asserting the initial value type.", "This avoids unnecessary type assertions and keeps generic inference consistent."],
18
- suggestions: ["Replace the type assertion with a type parameter on `reduce`."]
19
- } },
20
- setup(context) {
21
- return { visitors: { CallExpression: (node, { sourceFile, typeChecker }) => {
22
- if (!ts.isPropertyAccessExpression(node.expression) && !ts.isElementAccessExpression(node.expression)) return;
23
- if ((ts.isPropertyAccessExpression(node.expression) ? node.expression.name.text : ts.isStringLiteral(node.expression.argumentExpression) ? node.expression.argumentExpression.text : void 0) !== "reduce" || node.arguments.length < 2) return;
24
- const secondArg = node.arguments[1];
25
- if (!isTypeAssertion(secondArg)) return;
26
- if (!isArrayOrTupleTypeAtLocation(node.expression.expression, typeChecker)) return;
27
- const initializerType = typeChecker.getTypeAtLocation(secondArg.expression);
28
- const assertedType = typeChecker.getTypeAtLocation(secondArg.type);
29
- if (!typeChecker.isTypeAssignableTo(initializerType, assertedType)) return;
30
- const typeAnnotationText = secondArg.type.getText(sourceFile);
31
- const fixes = [];
32
- if (!node.typeArguments) fixes.push({
33
- range: {
34
- begin: node.expression.getEnd(),
35
- end: node.expression.getEnd()
36
- },
37
- text: `<${typeAnnotationText}>`
38
- });
39
- if (secondArg.kind === ts.SyntaxKind.AsExpression) fixes.push({
40
- range: {
41
- begin: secondArg.expression.getEnd(),
42
- end: secondArg.getEnd()
43
- },
44
- text: ""
45
- });
46
- else fixes.push({
47
- range: {
48
- begin: secondArg.getStart(sourceFile),
49
- end: secondArg.expression.getStart(sourceFile)
50
- },
51
- text: ""
52
- });
53
- context.report({
54
- fix: fixes,
55
- message: "preferTypeParameter",
56
- range: getTSNodeRange(secondArg, sourceFile)
57
- });
58
- } } };
59
- }
60
- });
61
- //#endregion
62
- export { arrayReduceTypeArguments_default as default };
63
-
64
- //# sourceMappingURL=arrayReduceTypeArguments.js.map
@@ -1,10 +0,0 @@
1
- declare const _default: import("@flint.fyi/core").Rule<{
2
- readonly description: "Reports unnecessary `end` argument in `.slice()` calls when it equals the length or is `Infinity`.";
3
- readonly id: "arraySliceUnnecessaryEnd";
4
- readonly presets: readonly ["stylistic", "stylisticStrict"];
5
- } & {
6
- readonly pluginId: string;
7
- readonly url: string;
8
- }, "unnecessaryEnd", undefined>;
9
- export default _default;
10
- //# sourceMappingURL=arraySliceUnnecessaryEnd.d.ts.map
@@ -1,51 +0,0 @@
1
- import { ruleCreator } from "./ruleCreator.js";
2
- import { getTSNodeRange, hasSameTokens, typescriptLanguage } from "@flint.fyi/typescript-language";
3
- import * as ts$1 from "typescript";
4
- //#region src/rules/arraySliceUnnecessaryEnd.ts
5
- var arraySliceUnnecessaryEnd_default = ruleCreator.createRule(typescriptLanguage, {
6
- about: {
7
- description: "Reports unnecessary `end` argument in `.slice()` calls when it equals the length or is `Infinity`.",
8
- id: "arraySliceUnnecessaryEnd",
9
- presets: ["stylistic", "stylisticStrict"]
10
- },
11
- messages: { unnecessaryEnd: {
12
- primary: "The `end` argument is unnecessary when slicing to the end of the array or string.",
13
- secondary: ["Passing `.length` or `Infinity` as the `end` argument is unnecessary.", "The `.slice()` method defaults to the end when the second argument is omitted."],
14
- suggestions: ["Remove the unnecessary `end` argument."]
15
- } },
16
- setup(context) {
17
- return { visitors: { CallExpression: (node, { sourceFile }) => {
18
- if (!ts$1.isPropertyAccessExpression(node.expression) || node.expression.name.text !== "slice" || node.arguments.length !== 2) return;
19
- const endArgument = node.arguments[1];
20
- if (!isUnnecessaryEnd(node.expression.expression, endArgument, sourceFile)) return;
21
- context.report({
22
- fix: {
23
- range: {
24
- begin: node.arguments[0].getEnd(),
25
- end: endArgument.getEnd()
26
- },
27
- text: ""
28
- },
29
- message: "unnecessaryEnd",
30
- range: getTSNodeRange(endArgument, sourceFile)
31
- });
32
- } } };
33
- }
34
- });
35
- function isInfinity(node) {
36
- switch (node.kind) {
37
- case ts$1.SyntaxKind.Identifier: return node.text === "Infinity";
38
- case ts$1.SyntaxKind.PropertyAccessExpression: return ts$1.isIdentifier(node.expression) && node.expression.text === "Number" && node.name.text === "POSITIVE_INFINITY";
39
- default: return false;
40
- }
41
- }
42
- function isLengthOfReceiver(receiver, endArgument, sourceFile) {
43
- return ts$1.isPropertyAccessExpression(endArgument) && endArgument.name.text === "length" && hasSameTokens(receiver, endArgument.expression, sourceFile);
44
- }
45
- function isUnnecessaryEnd(receiver, endArgument, sourceFile) {
46
- return isInfinity(endArgument) || isLengthOfReceiver(receiver, endArgument, sourceFile);
47
- }
48
- //#endregion
49
- export { arraySliceUnnecessaryEnd_default as default };
50
-
51
- //# sourceMappingURL=arraySliceUnnecessaryEnd.js.map
@@ -1,10 +0,0 @@
1
- declare const _default: import("@flint.fyi/core").Rule<{
2
- readonly description: "Reports patterns that can be replaced with `.some()` for checking array element existence.";
3
- readonly id: "arraySomeMethods";
4
- readonly presets: readonly ["stylistic", "stylisticStrict"];
5
- } & {
6
- readonly pluginId: string;
7
- readonly url: string;
8
- }, "preferSome", undefined>;
9
- export default _default;
10
- //# sourceMappingURL=arraySomeMethods.d.ts.map
@@ -1,77 +0,0 @@
1
- import { ruleCreator } from "./ruleCreator.js";
2
- import { getTSNodeRange, typescriptLanguage } from "@flint.fyi/typescript-language";
3
- import * as ts$1 from "typescript";
4
- //#region src/rules/arraySomeMethods.ts
5
- var arraySomeMethods_default = ruleCreator.createRule(typescriptLanguage, {
6
- about: {
7
- description: "Reports patterns that can be replaced with `.some()` for checking array element existence.",
8
- id: "arraySomeMethods",
9
- presets: ["stylistic", "stylisticStrict"]
10
- },
11
- messages: { preferSome: {
12
- primary: "Prefer `.some()` to more cleanly check if an array contains a matching element.",
13
- secondary: ["The `.some()` method is more explicit and efficient for existence checks.", "It stops iterating as soon as a match is found."],
14
- suggestions: ["Replace with `.some()`."]
15
- } },
16
- setup(context) {
17
- return { visitors: { BinaryExpression: (node, { sourceFile, typeChecker }) => {
18
- const result = checkFilterLengthComparison(node, typeChecker) ?? checkFindIndexComparison(node, typeChecker);
19
- if (!result) return;
20
- const arrayText = result.arrayExpression.getText(sourceFile);
21
- const callbackText = result.callback.getText(sourceFile);
22
- const range = getTSNodeRange(node, sourceFile);
23
- context.report({
24
- fix: {
25
- range,
26
- text: `${arrayText}.some(${callbackText})`
27
- },
28
- message: "preferSome",
29
- range
30
- });
31
- } } };
32
- }
33
- });
34
- function checkFilterLengthComparison(node, typeChecker) {
35
- const lengthAccess = isNonZeroLengthCheck(node) && getLengthAccess(node);
36
- return lengthAccess ? getFilterCall(lengthAccess.expression, typeChecker) : void 0;
37
- }
38
- function checkFindIndexComparison(node, typeChecker) {
39
- return isFindIndexNegativeOneCheck(node) && ts$1.isCallExpression(node.left) && getFindIndexCall(node.left, typeChecker);
40
- }
41
- function getFilterCall(node, typeChecker) {
42
- if (!ts$1.isCallExpression(node) || !ts$1.isPropertyAccessExpression(node.expression) || node.expression.name.text !== "filter" || !node.arguments.length || !isArrayType(node.expression.expression, typeChecker)) return;
43
- return {
44
- arrayExpression: node.expression.expression,
45
- callback: node.arguments[0]
46
- };
47
- }
48
- function getFindIndexCall(node, typeChecker) {
49
- if (!ts$1.isPropertyAccessExpression(node.expression) || !["findIndex", "findLastIndex"].includes(node.expression.name.text) || !node.arguments.length || !isArrayType(node.expression.expression, typeChecker)) return;
50
- return {
51
- arrayExpression: node.expression.expression,
52
- callback: node.arguments[0]
53
- };
54
- }
55
- function getLengthAccess(node) {
56
- return ts$1.isPropertyAccessExpression(node.left) && node.left.name.text === "length" && node.left;
57
- }
58
- function isArrayType(node, typeChecker) {
59
- const type = typeChecker.getTypeAtLocation(node);
60
- return typeChecker.isArrayType(type);
61
- }
62
- function isFindIndexNegativeOneCheck(node) {
63
- if (node.operatorToken.kind !== ts$1.SyntaxKind.ExclamationEqualsEqualsToken || !ts$1.isPrefixUnaryExpression(node.right) || node.right.operator !== ts$1.SyntaxKind.MinusToken || !ts$1.isNumericLiteral(node.right.operand)) return false;
64
- return node.right.operand.text === "1";
65
- }
66
- function isNonZeroLengthCheck(node) {
67
- const { left, operatorToken, right } = node;
68
- if (operatorToken.kind === ts$1.SyntaxKind.GreaterThanToken && ts$1.isNumericLiteral(right) && right.text === "0") return true;
69
- if (operatorToken.kind === ts$1.SyntaxKind.ExclamationEqualsEqualsToken && ts$1.isNumericLiteral(right) && right.text === "0") return true;
70
- if (operatorToken.kind === ts$1.SyntaxKind.GreaterThanEqualsToken && ts$1.isNumericLiteral(right) && right.text === "1") return true;
71
- if (operatorToken.kind === ts$1.SyntaxKind.LessThanToken && ts$1.isNumericLiteral(left) && left.text === "0") return true;
72
- return false;
73
- }
74
- //#endregion
75
- export { arraySomeMethods_default as default };
76
-
77
- //# sourceMappingURL=arraySomeMethods.js.map
@@ -1,10 +0,0 @@
1
- declare const _default: import("@flint.fyi/core").Rule<{
2
- readonly description: "Reports inconsistent types when spreading a ternary in an array literal.";
3
- readonly id: "arrayTernarySpreadingConsistency";
4
- readonly presets: readonly ["stylistic", "stylisticStrict"];
5
- } & {
6
- readonly pluginId: string;
7
- readonly url: string;
8
- }, "inconsistentTypes", undefined>;
9
- export default _default;
10
- //# sourceMappingURL=arrayTernarySpreadingConsistency.d.ts.map
@@ -1,74 +0,0 @@
1
- import { ruleCreator } from "./ruleCreator.js";
2
- import { typescriptLanguage } from "@flint.fyi/typescript-language";
3
- import * as ts$1 from "typescript";
4
- //#region src/rules/arrayTernarySpreadingConsistency.ts
5
- var arrayTernarySpreadingConsistency_default = ruleCreator.createRule(typescriptLanguage, {
6
- about: {
7
- description: "Reports inconsistent types when spreading a ternary in an array literal.",
8
- id: "arrayTernarySpreadingConsistency",
9
- presets: ["stylistic", "stylisticStrict"]
10
- },
11
- messages: { inconsistentTypes: {
12
- primary: "Prefer consistent types in both branches when spreading a ternary in an array.",
13
- secondary: ["Mixing array and string types in ternary spread branches reduces code clarity.", "Both branches should use the same type: either arrays or strings."],
14
- suggestions: ["Replace the empty string with an empty array."]
15
- } },
16
- setup(context) {
17
- return { visitors: { ArrayLiteralExpression: (node, { sourceFile }) => {
18
- for (const element of node.elements) {
19
- if (!ts$1.isSpreadElement(element) || !ts$1.isParenthesizedExpression(element.expression)) continue;
20
- const inner = element.expression.expression;
21
- if (!ts$1.isConditionalExpression(inner)) continue;
22
- const whenTrue = unwrapParentheses(inner.whenTrue);
23
- const whenFalse = unwrapParentheses(inner.whenFalse);
24
- if (ts$1.isArrayLiteralExpression(whenTrue) && isStringLike(whenFalse) && isEmptyStringLike(whenFalse)) {
25
- context.report({
26
- fix: {
27
- range: {
28
- begin: whenFalse.getStart(sourceFile),
29
- end: whenFalse.getEnd()
30
- },
31
- text: "[]"
32
- },
33
- message: "inconsistentTypes",
34
- range: {
35
- begin: whenFalse.getStart(sourceFile),
36
- end: whenFalse.getEnd()
37
- }
38
- });
39
- continue;
40
- }
41
- if (isStringLike(whenTrue) && ts$1.isArrayLiteralExpression(whenFalse) && isEmptyArray(whenFalse)) context.report({
42
- fix: {
43
- range: {
44
- begin: whenFalse.getStart(sourceFile),
45
- end: whenFalse.getEnd()
46
- },
47
- text: "''"
48
- },
49
- message: "inconsistentTypes",
50
- range: {
51
- begin: whenFalse.getStart(sourceFile),
52
- end: whenFalse.getEnd()
53
- }
54
- });
55
- }
56
- } } };
57
- }
58
- });
59
- function isEmptyArray(node) {
60
- return ts$1.isArrayLiteralExpression(node) && !node.elements.length;
61
- }
62
- function isEmptyStringLike(node) {
63
- return isStringLike(node) && node.text === "";
64
- }
65
- function isStringLike(node) {
66
- return ts$1.isStringLiteral(node) || ts$1.isNoSubstitutionTemplateLiteral(node);
67
- }
68
- function unwrapParentheses(node) {
69
- return ts$1.isParenthesizedExpression(node) ? unwrapParentheses(node.expression) : node;
70
- }
71
- //#endregion
72
- export { arrayTernarySpreadingConsistency_default as default };
73
-
74
- //# sourceMappingURL=arrayTernarySpreadingConsistency.js.map
@@ -1,17 +0,0 @@
1
- import { z } from "zod/v4";
2
- declare const _default: import("@flint.fyi/core").Rule<{
3
- readonly description: "Reports array type syntax that doesn't match the configured style.";
4
- readonly id: "arrayTypes";
5
- readonly presets: readonly ["stylistic", "stylisticStrict"];
6
- } & {
7
- readonly pluginId: string;
8
- readonly url: string;
9
- }, "preferArraySyntax" | "preferGenericSyntax" | "preferReadonlyArraySyntax" | "preferReadonlyGenericSyntax", {
10
- style: z.ZodDefault<z.ZodEnum<{
11
- array: "array";
12
- "array-simple": "array-simple";
13
- generic: "generic";
14
- }>>;
15
- }>;
16
- export default _default;
17
- //# sourceMappingURL=arrayTypes.d.ts.map
@@ -1,111 +0,0 @@
1
- import { ruleCreator } from "./ruleCreator.js";
2
- import { getTSNodeRange, isGlobalDeclaration, typescriptLanguage } from "@flint.fyi/typescript-language";
3
- import * as ts$1 from "typescript";
4
- import { z } from "zod/v4";
5
- //#region src/rules/arrayTypes.ts
6
- function isSimpleType(typeNode) {
7
- switch (typeNode?.kind) {
8
- case ts$1.SyntaxKind.AnyKeyword:
9
- case ts$1.SyntaxKind.BigIntKeyword:
10
- case ts$1.SyntaxKind.BooleanKeyword:
11
- case ts$1.SyntaxKind.NeverKeyword:
12
- case ts$1.SyntaxKind.NumberKeyword:
13
- case ts$1.SyntaxKind.ObjectKeyword:
14
- case ts$1.SyntaxKind.StringKeyword:
15
- case ts$1.SyntaxKind.SymbolKeyword:
16
- case ts$1.SyntaxKind.TypeReference:
17
- case ts$1.SyntaxKind.UndefinedKeyword:
18
- case ts$1.SyntaxKind.UnknownKeyword:
19
- case ts$1.SyntaxKind.VoidKeyword: return true;
20
- case ts$1.SyntaxKind.ArrayType: return isSimpleType(typeNode.elementType);
21
- default: return false;
22
- }
23
- }
24
- var arrayTypes_default = ruleCreator.createRule(typescriptLanguage, {
25
- about: {
26
- description: "Reports array type syntax that doesn't match the configured style.",
27
- id: "arrayTypes",
28
- presets: ["stylistic", "stylisticStrict"]
29
- },
30
- messages: {
31
- preferArraySyntax: {
32
- primary: "Prefer `T[]` over `Array<T>`.",
33
- secondary: ["TypeScript provides two equivalent ways to define an array type: `T[]` and `Array<T>`.", "Using the shorthand `T[]` syntax consistently is more concise and idiomatic."],
34
- suggestions: ["Replace `Array<T>` with `T[]`."]
35
- },
36
- preferGenericSyntax: {
37
- primary: "Prefer `Array<T>` over `T[]`.",
38
- secondary: ["TypeScript provides two equivalent ways to define an array type: `T[]` and `Array<T>`.", "Using the generic `Array<T>` syntax consistently can be clearer for complex types."],
39
- suggestions: ["Replace `T[]` with `Array<T>`."]
40
- },
41
- preferReadonlyArraySyntax: {
42
- primary: "Prefer `readonly T[]` over `ReadonlyArray<T>`.",
43
- secondary: ["TypeScript provides two equivalent ways to define a readonly array type: `readonly T[]` and `ReadonlyArray<T>`.", "Using the shorthand `readonly T[]` syntax consistently is more concise and idiomatic."],
44
- suggestions: ["Replace `ReadonlyArray<T>` with `readonly T[]`."]
45
- },
46
- preferReadonlyGenericSyntax: {
47
- primary: "Prefer `ReadonlyArray<T>` over `readonly T[]`.",
48
- secondary: ["TypeScript provides two equivalent ways to define a readonly array type: `readonly T[]` and `ReadonlyArray<T>`.", "Using the generic `ReadonlyArray<T>` syntax consistently can be clearer for complex types."],
49
- suggestions: ["Replace `readonly T[]` with `ReadonlyArray<T>`."]
50
- }
51
- },
52
- options: { style: z.enum([
53
- "array",
54
- "array-simple",
55
- "generic"
56
- ]).default("array").describe("Which array type syntax to enforce: 'array' for `T[]`, 'generic' for `Array<T>`, or 'array-simple' for `T[]` only with simple types.") },
57
- setup(context) {
58
- return { visitors: {
59
- ArrayType: (node, { options, sourceFile }) => {
60
- if (node.parent.kind === ts$1.SyntaxKind.TypeOperator && node.parent.operator === ts$1.SyntaxKind.ReadonlyKeyword) return;
61
- switch (options.style) {
62
- case "array": return;
63
- case "array-simple":
64
- if (isSimpleType(node.elementType)) return;
65
- break;
66
- case "generic": break;
67
- }
68
- context.report({
69
- message: "preferGenericSyntax",
70
- range: getTSNodeRange(node, sourceFile)
71
- });
72
- },
73
- TypeOperator: (node, { options, sourceFile }) => {
74
- if (node.operator !== ts$1.SyntaxKind.ReadonlyKeyword || node.type.kind !== ts$1.SyntaxKind.ArrayType) return;
75
- const arrayType = node.type;
76
- switch (options.style) {
77
- case "array": return;
78
- case "array-simple":
79
- if (isSimpleType(arrayType.elementType)) return;
80
- break;
81
- case "generic": break;
82
- }
83
- context.report({
84
- message: "preferReadonlyGenericSyntax",
85
- range: getTSNodeRange(node, sourceFile)
86
- });
87
- },
88
- TypeReference: (node, { options, sourceFile, typeChecker }) => {
89
- if (node.typeName.kind !== ts$1.SyntaxKind.Identifier || !isGlobalDeclaration(node.typeName, typeChecker)) return;
90
- const typeName = node.typeName.text;
91
- if (typeName !== "Array" && typeName !== "ReadonlyArray") return;
92
- const typeArg = node.typeArguments?.[0];
93
- switch (options.style) {
94
- case "array": break;
95
- case "array-simple":
96
- if (!isSimpleType(typeArg)) return;
97
- break;
98
- case "generic": return;
99
- }
100
- context.report({
101
- message: typeName === "Array" ? "preferArraySyntax" : "preferReadonlyArraySyntax",
102
- range: getTSNodeRange(node, sourceFile)
103
- });
104
- }
105
- } };
106
- }
107
- });
108
- //#endregion
109
- export { arrayTypes_default as default };
110
-
111
- //# sourceMappingURL=arrayTypes.js.map
@@ -1,10 +0,0 @@
1
- declare const _default: import("@flint.fyi/core").Rule<{
2
- readonly description: "Reports unnecessary array length checks before `.some()` or `.every()` calls.";
3
- readonly id: "arrayUnnecessaryLengthChecks";
4
- readonly presets: readonly ["logical"];
5
- } & {
6
- readonly pluginId: string;
7
- readonly url: string;
8
- }, "unnecessaryLengthCheckEvery" | "unnecessaryLengthCheckSome", undefined>;
9
- export default _default;
10
- //# sourceMappingURL=arrayUnnecessaryLengthChecks.d.ts.map
@@ -1,97 +0,0 @@
1
- import { ruleCreator } from "./ruleCreator.js";
2
- import { getTSNodeRange, typescriptLanguage } from "@flint.fyi/typescript-language";
3
- import * as ts$1 from "typescript";
4
- //#region src/rules/arrayUnnecessaryLengthChecks.ts
5
- function haveSameArrayExpression(expr1, expr2, sourceFile) {
6
- return expr1.getText(sourceFile) === expr2.getText(sourceFile);
7
- }
8
- function isLengthNonZeroCheck(node) {
9
- const { left, operatorToken, right } = node;
10
- if (operatorToken.kind === ts$1.SyntaxKind.ExclamationEqualsToken || operatorToken.kind === ts$1.SyntaxKind.ExclamationEqualsEqualsToken) {
11
- if (isLengthProperty(left) && isZero(right)) return { arrayExpression: left.expression };
12
- if (isZero(left) && isLengthProperty(right)) return { arrayExpression: right.expression };
13
- }
14
- if (operatorToken.kind === ts$1.SyntaxKind.GreaterThanToken && isLengthProperty(left) && isZero(right)) return { arrayExpression: left.expression };
15
- }
16
- function isLengthProperty(node) {
17
- return ts$1.isPropertyAccessExpression(node) && node.name.text === "length";
18
- }
19
- function isLengthZeroCheck(node) {
20
- const { left, operatorToken, right } = node;
21
- if (operatorToken.kind === ts$1.SyntaxKind.EqualsEqualsToken || operatorToken.kind === ts$1.SyntaxKind.EqualsEqualsEqualsToken) {
22
- if (isLengthProperty(left) && isZero(right)) return {
23
- arrayExpression: left.expression,
24
- isZeroCheck: true
25
- };
26
- if (isZero(left) && isLengthProperty(right)) return {
27
- arrayExpression: right.expression,
28
- isZeroCheck: true
29
- };
30
- }
31
- }
32
- function isSomeOrEveryCall(node, methodName) {
33
- if (!ts$1.isCallExpression(node)) return;
34
- if (!ts$1.isPropertyAccessExpression(node.expression)) return;
35
- if (node.expression.name.text !== methodName) return;
36
- return node.expression.expression;
37
- }
38
- function isZero(node) {
39
- return ts$1.isNumericLiteral(node) && node.text === "0";
40
- }
41
- var arrayUnnecessaryLengthChecks_default = ruleCreator.createRule(typescriptLanguage, {
42
- about: {
43
- description: "Reports unnecessary array length checks before `.some()` or `.every()` calls.",
44
- id: "arrayUnnecessaryLengthChecks",
45
- presets: ["logical"]
46
- },
47
- messages: {
48
- unnecessaryLengthCheckEvery: {
49
- primary: "Unnecessary length check before `.every()`.",
50
- secondary: ["`.every()` returns `true` for an empty array, so checking `array.length === 0` before calling `.every()` is redundant."],
51
- suggestions: ["Remove the length check."]
52
- },
53
- unnecessaryLengthCheckSome: {
54
- primary: "Unnecessary length check before `.some()`.",
55
- secondary: ["`.some()` returns `false` for an empty array, so checking `array.length !== 0` or `array.length > 0` before calling `.some()` is redundant."],
56
- suggestions: ["Remove the length check."]
57
- }
58
- },
59
- setup(context) {
60
- return { visitors: { BinaryExpression: (node, { sourceFile }) => {
61
- if (node.operatorToken.kind === ts$1.SyntaxKind.AmpersandAmpersandToken) {
62
- const { left, right } = node;
63
- if (!ts$1.isBinaryExpression(left)) return;
64
- const nonZeroCheck = isLengthNonZeroCheck(left);
65
- if (!nonZeroCheck) return;
66
- const someArrayExpr = isSomeOrEveryCall(right, "some");
67
- if (someArrayExpr && haveSameArrayExpression(nonZeroCheck.arrayExpression, someArrayExpr, sourceFile)) context.report({
68
- fix: {
69
- range: getTSNodeRange(node, sourceFile),
70
- text: right.getText(sourceFile)
71
- },
72
- message: "unnecessaryLengthCheckSome",
73
- range: getTSNodeRange(left, sourceFile)
74
- });
75
- }
76
- if (node.operatorToken.kind === ts$1.SyntaxKind.BarBarToken) {
77
- const { left, right } = node;
78
- if (!ts$1.isBinaryExpression(left)) return;
79
- const zeroCheck = isLengthZeroCheck(left);
80
- if (!zeroCheck) return;
81
- const everyArrayExpr = isSomeOrEveryCall(right, "every");
82
- if (everyArrayExpr && haveSameArrayExpression(zeroCheck.arrayExpression, everyArrayExpr, sourceFile)) context.report({
83
- fix: {
84
- range: getTSNodeRange(node, sourceFile),
85
- text: right.getText(sourceFile)
86
- },
87
- message: "unnecessaryLengthCheckEvery",
88
- range: getTSNodeRange(left, sourceFile)
89
- });
90
- }
91
- } } };
92
- }
93
- });
94
- //#endregion
95
- export { arrayUnnecessaryLengthChecks_default as default };
96
-
97
- //# sourceMappingURL=arrayUnnecessaryLengthChecks.js.map
@@ -1,10 +0,0 @@
1
- declare const _default: import("@flint.fyi/core").Rule<{
2
- readonly description: "Reports using explicit literal types when `as const` can be used.";
3
- readonly id: "asConstAssertions";
4
- readonly presets: readonly ["stylistic", "stylisticStrict"];
5
- } & {
6
- readonly pluginId: string;
7
- readonly url: string;
8
- }, "preferAsConst" | "preferAsConstAnnotation", undefined>;
9
- export default _default;
10
- //# sourceMappingURL=asConstAssertions.d.ts.map
@@ -1,57 +0,0 @@
1
- import { ruleCreator } from "./ruleCreator.js";
2
- import { getTSNodeRange, typescriptLanguage } from "@flint.fyi/typescript-language";
3
- import * as ts$1 from "typescript";
4
- //#region src/rules/asConstAssertions.ts
5
- function getTextValue(node) {
6
- switch (node.kind) {
7
- case ts$1.SyntaxKind.FalseKeyword: return "false";
8
- case ts$1.SyntaxKind.LiteralType: return getTextValue(node.literal);
9
- case ts$1.SyntaxKind.NumericLiteral: return node.text;
10
- case ts$1.SyntaxKind.StringLiteral: return node.text;
11
- case ts$1.SyntaxKind.TrueKeyword: return "true";
12
- }
13
- }
14
- function isLiteralType(node) {
15
- return ts$1.isLiteralTypeNode(node) && (ts$1.isStringLiteral(node.literal) || ts$1.isNumericLiteral(node.literal) || node.literal.kind === ts$1.SyntaxKind.TrueKeyword || node.literal.kind === ts$1.SyntaxKind.FalseKeyword);
16
- }
17
- var asConstAssertions_default = ruleCreator.createRule(typescriptLanguage, {
18
- about: {
19
- description: "Reports using explicit literal types when `as const` can be used.",
20
- id: "asConstAssertions",
21
- presets: ["stylistic", "stylisticStrict"]
22
- },
23
- messages: {
24
- preferAsConst: {
25
- primary: "Prefer `as const` over an explicit literal type assertion.",
26
- secondary: ["`as const` tells TypeScript to infer the literal type automatically.", "This avoids repeating the literal value and is more concise."],
27
- suggestions: ["Replace the explicit literal type with `as const`."]
28
- },
29
- preferAsConstAnnotation: {
30
- primary: "Prefer `as const` over a literal type annotation.",
31
- secondary: ["When the literal type matches the initializer value, use `as const` instead.", "This avoids repeating the literal value and is more concise."],
32
- suggestions: ["Remove the type annotation and add `as const` to the initializer."]
33
- }
34
- },
35
- setup(context) {
36
- function compareTypes(expressionNode, typeNode, message, sourceFile) {
37
- if (getTextValue(typeNode) === void 0) return;
38
- if (getTextValue(expressionNode) === void 0) return;
39
- context.report({
40
- message,
41
- range: getTSNodeRange(typeNode, sourceFile)
42
- });
43
- }
44
- return { visitors: {
45
- AsExpression: (node, { sourceFile }) => {
46
- if (isLiteralType(node.type)) compareTypes(node.expression, node.type, "preferAsConst", sourceFile);
47
- },
48
- VariableDeclaration: (node, { sourceFile }) => {
49
- if (node.initializer && node.type && isLiteralType(node.type)) compareTypes(node.initializer, node.type, "preferAsConstAnnotation", sourceFile);
50
- }
51
- } };
52
- }
53
- });
54
- //#endregion
55
- export { asConstAssertions_default as default };
56
-
57
- //# sourceMappingURL=asConstAssertions.js.map
@@ -1,10 +0,0 @@
1
- declare const _default: import("@flint.fyi/core").Rule<{
2
- readonly description: "Prefer logical assignment operator shorthand expressions.";
3
- readonly id: "assignmentOperatorShorthands";
4
- readonly presets: readonly ["stylistic", "stylisticStrict"];
5
- } & {
6
- readonly pluginId: string;
7
- readonly url: string;
8
- }, "preferShorthand", undefined>;
9
- export default _default;
10
- //# sourceMappingURL=assignmentOperatorShorthands.d.ts.map