@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,37 +0,0 @@
1
- import { ruleCreator } from "./ruleCreator.js";
2
- import { isGlobalDeclarationOfName, typescriptLanguage } from "@flint.fyi/typescript-language";
3
- import { SyntaxKind } from "typescript";
4
- //#region src/rules/dateConstructorClones.ts
5
- function isDateType(node, typeChecker) {
6
- return typeChecker.getTypeAtLocation(node).getSymbol()?.getName() === "Date";
7
- }
8
- var dateConstructorClones_default = ruleCreator.createRule(typescriptLanguage, {
9
- about: {
10
- description: "Prefer passing a `Date` directly to the `Date` constructor when cloning, rather than calling `getTime()`.",
11
- id: "dateConstructorClones",
12
- presets: ["logical"]
13
- },
14
- messages: { unnecessaryGetTime: {
15
- primary: "Prefer passing the Date directly instead of calling getTime().",
16
- secondary: ["The Date constructor can clone a Date object directly when passed as an argument.", "Calling getTime() first is unnecessary since ES2015."],
17
- suggestions: ["Remove the `.getTime()` call and pass the Date directly."]
18
- } },
19
- setup(context) {
20
- return { visitors: { NewExpression: (node, { sourceFile, typeChecker }) => {
21
- if (node.expression.kind !== SyntaxKind.Identifier || node.expression.text !== "Date" || node.arguments?.length !== 1 || !isGlobalDeclarationOfName(node.expression, "Date", typeChecker)) return;
22
- const argument = node.arguments[0];
23
- if (argument.kind !== SyntaxKind.CallExpression || argument.expression.kind !== SyntaxKind.PropertyAccessExpression || argument.expression.name.kind !== SyntaxKind.Identifier || argument.expression.name.text !== "getTime" || !!argument.arguments.length || !isDateType(argument.expression.expression, typeChecker)) return;
24
- context.report({
25
- message: "unnecessaryGetTime",
26
- range: {
27
- begin: argument.expression.name.getStart(sourceFile),
28
- end: argument.getEnd()
29
- }
30
- });
31
- } } };
32
- }
33
- });
34
- //#endregion
35
- export { dateConstructorClones_default as default };
36
-
37
- //# sourceMappingURL=dateConstructorClones.js.map
@@ -1,10 +0,0 @@
1
- declare const _default: import("@flint.fyi/core").Rule<{
2
- readonly description: "Prefer the shorter `Date.now()` to get the number of milliseconds since the Unix Epoch.";
3
- readonly id: "dateNowTimestamps";
4
- readonly presets: readonly ["logical", "logicalStrict"];
5
- } & {
6
- readonly pluginId: string;
7
- readonly url: string;
8
- }, "preferDateNow", undefined>;
9
- export default _default;
10
- //# sourceMappingURL=dateNowTimestamps.d.ts.map
@@ -1,57 +0,0 @@
1
- import { ruleCreator } from "./ruleCreator.js";
2
- import { getTSNodeRange, isGlobalDeclarationOfName, typescriptLanguage } from "@flint.fyi/typescript-language";
3
- import { SyntaxKind } from "typescript";
4
- //#region src/rules/dateNowTimestamps.ts
5
- var dateNowTimestamps_default = ruleCreator.createRule(typescriptLanguage, {
6
- about: {
7
- description: "Prefer the shorter `Date.now()` to get the number of milliseconds since the Unix Epoch.",
8
- id: "dateNowTimestamps",
9
- presets: ["logical", "logicalStrict"]
10
- },
11
- messages: { preferDateNow: {
12
- primary: "Prefer the shorter `Date.now()` to get the current timestamp.",
13
- secondary: ["`Date.now()` is shorter and avoids unnecessary instantiation of `Date` objects.", "It's more efficient and clearer than alternatives like `new Date().getTime()`."],
14
- suggestions: ["Replace with `Date.now()`."]
15
- } },
16
- setup(context) {
17
- function isNewDateWithNoArguments(node, typeChecker) {
18
- return node.expression.kind === SyntaxKind.Identifier && node.expression.text === "Date" && !node.arguments?.length && isGlobalDeclarationOfName(node.expression, "Date", typeChecker);
19
- }
20
- return { visitors: {
21
- CallExpression: (node, { sourceFile, typeChecker }) => {
22
- if (node.expression.kind !== SyntaxKind.PropertyAccessExpression || node.expression.name.kind !== SyntaxKind.Identifier || !!node.arguments.length) return;
23
- const methodName = node.expression.name.text;
24
- if (methodName !== "getTime" && methodName !== "valueOf") return;
25
- if (node.expression.expression.kind !== SyntaxKind.NewExpression || !isNewDateWithNoArguments(node.expression.expression, typeChecker)) return;
26
- context.report({
27
- message: "preferDateNow",
28
- range: {
29
- begin: node.expression.expression.getStart(sourceFile),
30
- end: node.getEnd()
31
- }
32
- });
33
- },
34
- NewExpression: (node, { sourceFile, typeChecker }) => {
35
- if (!isNewDateWithNoArguments(node, typeChecker)) return;
36
- switch (node.parent.kind) {
37
- case SyntaxKind.CallExpression:
38
- if (node.parent.expression.kind === SyntaxKind.Identifier && (node.parent.expression.text === "BigInt" || node.parent.expression.text === "Number") && node.parent.arguments.length === 1 && isGlobalDeclarationOfName(node.parent.expression, node.parent.expression.text, typeChecker)) context.report({
39
- message: "preferDateNow",
40
- range: getTSNodeRange(node.parent, sourceFile)
41
- });
42
- break;
43
- case SyntaxKind.PrefixUnaryExpression:
44
- if (node.parent.operator === SyntaxKind.MinusToken || node.parent.operator === SyntaxKind.PlusToken) context.report({
45
- message: "preferDateNow",
46
- range: getTSNodeRange(node, sourceFile)
47
- });
48
- break;
49
- }
50
- }
51
- } };
52
- }
53
- });
54
- //#endregion
55
- export { dateNowTimestamps_default as default };
56
-
57
- //# sourceMappingURL=dateNowTimestamps.js.map
@@ -1,10 +0,0 @@
1
- declare const _default: import("@flint.fyi/core").Rule<{
2
- readonly description: "Reports using debugger statements.";
3
- readonly id: "debuggerStatements";
4
- readonly presets: readonly ["logical", "logicalStrict"];
5
- } & {
6
- readonly pluginId: string;
7
- readonly url: string;
8
- }, "noDebugger", undefined>;
9
- export default _default;
10
- //# sourceMappingURL=debuggerStatements.d.ts.map
@@ -1,33 +0,0 @@
1
- import { ruleCreator } from "./ruleCreator.js";
2
- import { getTSNodeRange, typescriptLanguage } from "@flint.fyi/typescript-language";
3
- //#region src/rules/debuggerStatements.ts
4
- var debuggerStatements_default = ruleCreator.createRule(typescriptLanguage, {
5
- about: {
6
- description: "Reports using debugger statements.",
7
- id: "debuggerStatements",
8
- presets: ["logical", "logicalStrict"]
9
- },
10
- messages: { noDebugger: {
11
- primary: "Debugger statements should not be used in production code.",
12
- secondary: ["The `debugger` statement causes the JavaScript runtime to pause execution and start a debugger if one is available, such as when browser developer tools are open.", "This can be useful during development, but should not be left in production code."],
13
- suggestions: ["Remove the `debugger` statement before shipping this code to users."]
14
- } },
15
- setup(context) {
16
- return { visitors: { DebuggerStatement: (node, { sourceFile }) => {
17
- const range = getTSNodeRange(node, sourceFile);
18
- context.report({
19
- message: "noDebugger",
20
- range,
21
- suggestions: [{
22
- id: "removeDebugger",
23
- range,
24
- text: ""
25
- }]
26
- });
27
- } } };
28
- }
29
- });
30
- //#endregion
31
- export { debuggerStatements_default as default };
32
-
33
- //# sourceMappingURL=debuggerStatements.js.map
@@ -1,10 +0,0 @@
1
- declare const _default: import("@flint.fyi/core").Rule<{
2
- readonly description: "Reports switch statements where the default clause is not last.";
3
- readonly id: "defaultCaseLast";
4
- readonly presets: readonly ["logical", "logicalStrict"];
5
- } & {
6
- readonly pluginId: string;
7
- readonly url: string;
8
- }, "defaultCaseShouldBeLast", undefined>;
9
- export default _default;
10
- //# sourceMappingURL=defaultCaseLast.d.ts.map
@@ -1,36 +0,0 @@
1
- import { ruleCreator } from "./ruleCreator.js";
2
- import { typescriptLanguage } from "@flint.fyi/typescript-language";
3
- import { SyntaxKind } from "typescript";
4
- import { nullThrows } from "@flint.fyi/utils";
5
- //#region src/rules/defaultCaseLast.ts
6
- var defaultCaseLast_default = ruleCreator.createRule(typescriptLanguage, {
7
- about: {
8
- description: "Reports switch statements where the default clause is not last.",
9
- id: "defaultCaseLast",
10
- presets: ["logical", "logicalStrict"]
11
- },
12
- messages: { defaultCaseShouldBeLast: {
13
- primary: "Default clauses in switch statements should be last.",
14
- secondary: ["Placing the default clause in a position other than last can lead to confusion and unexpected behavior.", "While the default clause is executed when no case matches, having it in the middle of other cases makes the control flow harder to follow."],
15
- suggestions: ["Move the default clause to the end of the switch statement to improve code clarity."]
16
- } },
17
- setup(context) {
18
- return { visitors: { SwitchStatement: (node, { sourceFile }) => {
19
- const clauses = node.caseBlock.clauses;
20
- const defaultClauseIndex = clauses.findIndex((clause) => clause.kind === SyntaxKind.DefaultClause);
21
- if (defaultClauseIndex === -1 || defaultClauseIndex === clauses.length - 1) return;
22
- const defaultClause = nullThrows(clauses[defaultClauseIndex], "Default clause is expected to be present by prior length check");
23
- context.report({
24
- message: "defaultCaseShouldBeLast",
25
- range: {
26
- begin: defaultClause.getStart(sourceFile),
27
- end: defaultClause.getStart(sourceFile) + 7
28
- }
29
- });
30
- } } };
31
- }
32
- });
33
- //#endregion
34
- export { defaultCaseLast_default as default };
35
-
36
- //# sourceMappingURL=defaultCaseLast.js.map
@@ -1,10 +0,0 @@
1
- declare const _default: import("@flint.fyi/core").Rule<{
2
- readonly description: "Enforce default parameters to be last.";
3
- readonly id: "defaultParameterLast";
4
- readonly presets: readonly ["javascript"];
5
- } & {
6
- readonly pluginId: string;
7
- readonly url: string;
8
- }, "defaultParameterLast", undefined>;
9
- export default _default;
10
- //# sourceMappingURL=defaultParameterLast.d.ts.map
@@ -1,42 +0,0 @@
1
- import { ruleCreator } from "./ruleCreator.js";
2
- import { getTSNodeRange, typescriptLanguage } from "@flint.fyi/typescript-language";
3
- //#region src/rules/defaultParameterLast.ts
4
- var defaultParameterLast_default = ruleCreator.createRule(typescriptLanguage, {
5
- about: {
6
- description: "Enforce default parameters to be last.",
7
- id: "defaultParameterLast",
8
- presets: ["javascript"]
9
- },
10
- messages: { defaultParameterLast: {
11
- primary: "Default parameters should be last to allow omitting optional tail arguments.",
12
- secondary: ["Putting default parameters last allows function calls to omit optional tail arguments.", "Non-default parameters after default ones must always be explicitly provided."],
13
- suggestions: ["Move the default parameter to the end of the parameter list."]
14
- } },
15
- setup(context) {
16
- function checkNode(node, { sourceFile }) {
17
- let hasSeenDefaultParameter = false;
18
- for (const parameter of node.parameters) {
19
- if (parameter.dotDotDotToken) continue;
20
- if (parameter.questionToken || parameter.initializer) {
21
- hasSeenDefaultParameter = true;
22
- continue;
23
- }
24
- if (hasSeenDefaultParameter) context.report({
25
- message: "defaultParameterLast",
26
- range: getTSNodeRange(parameter, sourceFile)
27
- });
28
- }
29
- }
30
- return { visitors: {
31
- ArrowFunction: checkNode,
32
- Constructor: checkNode,
33
- FunctionDeclaration: checkNode,
34
- FunctionExpression: checkNode,
35
- MethodDeclaration: checkNode
36
- } };
37
- }
38
- });
39
- //#endregion
40
- export { defaultParameterLast_default as default };
41
-
42
- //# sourceMappingURL=defaultParameterLast.js.map
@@ -1,10 +0,0 @@
1
- declare const _default: import("@flint.fyi/core").Rule<{
2
- readonly description: "Disallow using code marked as @deprecated.";
3
- readonly id: "deprecated";
4
- readonly presets: readonly ["logical", "logicalStrict"];
5
- } & {
6
- readonly pluginId: string;
7
- readonly url: string;
8
- }, "deprecated", undefined>;
9
- export default _default;
10
- //# sourceMappingURL=deprecated.d.ts.map
@@ -1,243 +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/deprecated.ts
5
- var deprecated_default = ruleCreator.createRule(typescriptLanguage, {
6
- about: {
7
- description: "Disallow using code marked as @deprecated.",
8
- id: "deprecated",
9
- presets: ["logical", "logicalStrict"]
10
- },
11
- messages: { deprecated: {
12
- primary: "This is deprecated.",
13
- secondary: ["The @deprecated JSDoc tag indicates this code should no longer be used.", "Deprecated code may be removed in future versions."],
14
- suggestions: ["Find a non-deprecated alternative."]
15
- } },
16
- setup(context) {
17
- function getJsDocDeprecation(symbol, typeChecker) {
18
- if (!symbol) return false;
19
- let jsDocTags;
20
- try {
21
- jsDocTags = symbol.getJsDocTags(typeChecker);
22
- } catch {
23
- return false;
24
- }
25
- return jsDocTags.some((tag) => tag.name === "deprecated");
26
- }
27
- function isDeprecatedFromDeclarations(symbol) {
28
- return symbol?.getDeclarations()?.some((declaration) => {
29
- return ts$1.getJSDocTags(declaration).some((tag) => tag.tagName.text === "deprecated" || tag.tagName.text === "Deprecated");
30
- });
31
- }
32
- function searchForDeprecationInAliasesChain(symbol, typeChecker, checkAliasedSymbol) {
33
- if (!symbol) return false;
34
- if (!(symbol.flags & ts$1.SymbolFlags.Alias)) return !!(checkAliasedSymbol && (getJsDocDeprecation(symbol, typeChecker) || isDeprecatedFromDeclarations(symbol)));
35
- const targetSymbol = typeChecker.getAliasedSymbol(symbol);
36
- let current = symbol;
37
- while (current.flags & ts$1.SymbolFlags.Alias) {
38
- if (getJsDocDeprecation(current, typeChecker) || isDeprecatedFromDeclarations(current)) return true;
39
- if (!current.getDeclarations()) break;
40
- const immediateAliased = typeChecker.getImmediateAliasedSymbol(current);
41
- if (!immediateAliased) break;
42
- current = immediateAliased;
43
- if (checkAliasedSymbol && current === targetSymbol) return !!(getJsDocDeprecation(current, typeChecker) || isDeprecatedFromDeclarations(current));
44
- }
45
- return false;
46
- }
47
- function isDeprecated(symbol, typeChecker) {
48
- return searchForDeprecationInAliasesChain(symbol, typeChecker, true);
49
- }
50
- function isDeclarationSite(node) {
51
- switch (node.parent.kind) {
52
- case ts$1.SyntaxKind.ArrowFunction:
53
- case ts$1.SyntaxKind.ClassDeclaration:
54
- case ts$1.SyntaxKind.Constructor:
55
- case ts$1.SyntaxKind.EnumDeclaration:
56
- case ts$1.SyntaxKind.EnumMember:
57
- case ts$1.SyntaxKind.FunctionDeclaration:
58
- case ts$1.SyntaxKind.FunctionExpression:
59
- case ts$1.SyntaxKind.GetAccessor:
60
- case ts$1.SyntaxKind.InterfaceDeclaration:
61
- case ts$1.SyntaxKind.MethodDeclaration:
62
- case ts$1.SyntaxKind.MethodSignature:
63
- case ts$1.SyntaxKind.ModuleDeclaration:
64
- case ts$1.SyntaxKind.Parameter:
65
- case ts$1.SyntaxKind.PropertyDeclaration:
66
- case ts$1.SyntaxKind.PropertySignature:
67
- case ts$1.SyntaxKind.SetAccessor:
68
- case ts$1.SyntaxKind.TypeAliasDeclaration:
69
- case ts$1.SyntaxKind.TypeParameter:
70
- case ts$1.SyntaxKind.VariableDeclaration: return node.parent.name === node;
71
- case ts$1.SyntaxKind.ExportSpecifier: return node.parent.propertyName === node;
72
- case ts$1.SyntaxKind.ImportClause:
73
- case ts$1.SyntaxKind.ImportSpecifier:
74
- case ts$1.SyntaxKind.NamespaceImport: return true;
75
- case ts$1.SyntaxKind.PropertyAssignment: return node.parent.name === node && !ts$1.isComputedPropertyName(node.parent.name) && ts$1.isObjectLiteralExpression(node.parent.parent);
76
- }
77
- }
78
- function getCallLikeExpression(node) {
79
- let current = node;
80
- while (ts$1.isPropertyAccessExpression(current.parent) && current.parent.name === current) current = current.parent;
81
- while (ts$1.isElementAccessExpression(current.parent) && current.parent.argumentExpression === current) current = current.parent;
82
- switch (current.parent.kind) {
83
- case ts$1.SyntaxKind.CallExpression:
84
- case ts$1.SyntaxKind.Decorator:
85
- case ts$1.SyntaxKind.NewExpression: return current.parent.expression === current && current.parent;
86
- case ts$1.SyntaxKind.TaggedTemplateExpression: return current.parent.tag === current && current.parent;
87
- }
88
- }
89
- function getCallLikeDeprecation(node, callLike, typeChecker) {
90
- const signature = typeChecker.getResolvedSignature(callLike);
91
- const symbol = typeChecker.getSymbolAtLocation(node);
92
- const aliasedSymbol = symbol && symbol.flags & ts$1.SymbolFlags.Alias ? typeChecker.getAliasedSymbol(symbol) : symbol;
93
- const symbolDeclarationKind = aliasedSymbol?.declarations?.[0]?.kind;
94
- if (symbolDeclarationKind !== ts$1.SyntaxKind.MethodDeclaration && symbolDeclarationKind !== ts$1.SyntaxKind.FunctionDeclaration && symbolDeclarationKind !== ts$1.SyntaxKind.MethodSignature) return searchForDeprecationInAliasesChain(symbol, typeChecker, true) || getJsDocDeprecation(signature, typeChecker) || isDeprecatedFromDeclarations(aliasedSymbol);
95
- return searchForDeprecationInAliasesChain(symbol, typeChecker, false) || getJsDocDeprecation(signature, typeChecker);
96
- }
97
- function checkNode(node, sourceFile, typeChecker) {
98
- if (isDeclarationSite(node) || isInsideImport(node)) return;
99
- const callLike = getCallLikeExpression(node);
100
- if (callLike) {
101
- if (getCallLikeDeprecation(node, callLike, typeChecker)) context.report({
102
- message: "deprecated",
103
- range: getTSNodeRange(node, sourceFile)
104
- });
105
- return;
106
- }
107
- if (ts$1.isShorthandPropertyAssignment(node.parent) && node.parent.name === node) {
108
- const symbol = typeChecker.getSymbolAtLocation(node);
109
- const valueSymbol = symbol && typeChecker.getShorthandAssignmentValueSymbol(symbol.valueDeclaration);
110
- if (valueSymbol && (getJsDocDeprecation(valueSymbol, typeChecker) || isDeprecatedFromDeclarations(valueSymbol))) context.report({
111
- message: "deprecated",
112
- range: getTSNodeRange(node, sourceFile)
113
- });
114
- return;
115
- }
116
- if (isDeprecated(typeChecker.getSymbolAtLocation(node), typeChecker)) context.report({
117
- message: "deprecated",
118
- range: getTSNodeRange(node, sourceFile)
119
- });
120
- }
121
- function checkComputedPropertyAccess(node, sourceFile, typeChecker) {
122
- const argumentExpression = node.argumentExpression;
123
- const argumentType = typeChecker.getTypeAtLocation(argumentExpression);
124
- if (!argumentType.isLiteral()) return;
125
- const objectType = typeChecker.getTypeAtLocation(node.expression);
126
- let propertyName;
127
- if (argumentType.isStringLiteral()) propertyName = argumentType.value;
128
- else if (argumentType.isNumberLiteral()) propertyName = String(argumentType.value);
129
- else return;
130
- const property = objectType.getProperty(propertyName);
131
- if (property && (getJsDocDeprecation(property, typeChecker) || isDeprecatedFromDeclarations(property))) context.report({
132
- message: "deprecated",
133
- range: getTSNodeRange(argumentExpression, sourceFile)
134
- });
135
- }
136
- function checkBindingElement(node, sourceFile, typeChecker) {
137
- const bindingPattern = node.parent;
138
- if (!ts$1.isObjectBindingPattern(bindingPattern)) return;
139
- const propertyName = node.propertyName ?? node.name;
140
- if (!ts$1.isIdentifier(propertyName)) return;
141
- const declarationOrPattern = bindingPattern.parent;
142
- let objectType;
143
- if (ts$1.isVariableDeclaration(declarationOrPattern)) {
144
- const initializer = declarationOrPattern.initializer;
145
- if (initializer) objectType = typeChecker.getTypeAtLocation(initializer);
146
- } else if (ts$1.isBindingElement(declarationOrPattern)) {
147
- const parentInitializer = declarationOrPattern.parent.parent;
148
- if (ts$1.isVariableDeclaration(parentInitializer)) {
149
- const init = parentInitializer.initializer;
150
- if (init) {
151
- const parentType = typeChecker.getTypeAtLocation(init);
152
- const parentPropertyName = declarationOrPattern.propertyName ?? declarationOrPattern.name;
153
- if (ts$1.isIdentifier(parentPropertyName)) {
154
- const prop = parentType.getProperty(parentPropertyName.text);
155
- if (prop) objectType = typeChecker.getTypeOfSymbolAtLocation(prop, parentInitializer);
156
- }
157
- }
158
- }
159
- }
160
- if (objectType) {
161
- const property = objectType.getProperty(propertyName.text);
162
- if (property && (getJsDocDeprecation(property, typeChecker) || isDeprecatedFromDeclarations(property))) {
163
- const reportNode = node.propertyName ?? node.name;
164
- if (ts$1.isIdentifier(reportNode)) context.report({
165
- message: "deprecated",
166
- range: getTSNodeRange(reportNode, sourceFile)
167
- });
168
- }
169
- }
170
- }
171
- function checkHeritageClause(node, sourceFile, typeChecker) {
172
- for (const type of node.types) if (ts$1.isIdentifier(type.expression)) {
173
- if (isDeprecated(typeChecker.getSymbolAtLocation(type.expression), typeChecker)) context.report({
174
- message: "deprecated",
175
- range: getTSNodeRange(type.expression, sourceFile)
176
- });
177
- }
178
- }
179
- function checkSuperCall(node, sourceFile, typeChecker) {
180
- const callExpr = node.parent;
181
- if (!ts$1.isCallExpression(callExpr) || callExpr.expression !== node) return;
182
- const signature = typeChecker.getResolvedSignature(callExpr);
183
- if (signature && getJsDocDeprecation(signature, typeChecker)) context.report({
184
- message: "deprecated",
185
- range: getTSNodeRange(node, sourceFile)
186
- });
187
- }
188
- return { visitors: {
189
- BindingElement: (node, { sourceFile, typeChecker }) => {
190
- checkBindingElement(node, sourceFile, typeChecker);
191
- },
192
- ElementAccessExpression: (node, { sourceFile, typeChecker }) => {
193
- checkComputedPropertyAccess(node, sourceFile, typeChecker);
194
- },
195
- HeritageClause: (node, { sourceFile, typeChecker }) => {
196
- checkHeritageClause(node, sourceFile, typeChecker);
197
- },
198
- Identifier: (node, { sourceFile, typeChecker }) => {
199
- if (isInsideHeritageClause(node)) return;
200
- if (ts$1.isPropertyAccessExpression(node.parent) && node === node.parent.name) {
201
- checkNode(node, sourceFile, typeChecker);
202
- return;
203
- }
204
- if (ts$1.isQualifiedName(node.parent) && node === node.parent.right) {
205
- checkNode(node, sourceFile, typeChecker);
206
- return;
207
- }
208
- if (ts$1.isElementAccessExpression(node.parent) && node === node.parent.argumentExpression) return;
209
- checkNode(node, sourceFile, typeChecker);
210
- },
211
- PrivateIdentifier: (node, { sourceFile, typeChecker }) => {
212
- if (ts$1.isPropertyAccessExpression(node.parent) && node === node.parent.name) checkNode(node, sourceFile, typeChecker);
213
- },
214
- SuperKeyword: (node, { sourceFile, typeChecker }) => {
215
- checkSuperCall(node, sourceFile, typeChecker);
216
- }
217
- } };
218
- }
219
- });
220
- function isInsideHeritageClause(node) {
221
- if (ts$1.isHeritageClause(node)) return true;
222
- let current = node.parent;
223
- while (current) {
224
- if (ts$1.isHeritageClause(current)) return true;
225
- if (ts$1.isSourceFile(current) || ts$1.isClassDeclaration(current)) break;
226
- current = current.parent;
227
- }
228
- return false;
229
- }
230
- function isInsideImport(node) {
231
- if (ts$1.isImportDeclaration(node)) return true;
232
- let current = node.parent;
233
- while (current) {
234
- if (ts$1.isImportDeclaration(current)) return true;
235
- if (ts$1.isSourceFile(current) || ts$1.isFunctionDeclaration(current) || ts$1.isFunctionExpression(current) || ts$1.isArrowFunction(current) || ts$1.isClassDeclaration(current) || ts$1.isClassExpression(current) || ts$1.isBlock(current)) return false;
236
- current = current.parent;
237
- }
238
- return false;
239
- }
240
- //#endregion
241
- export { deprecated_default as default };
242
-
243
- //# sourceMappingURL=deprecated.js.map
@@ -1,10 +0,0 @@
1
- declare const _default: import("@flint.fyi/core").Rule<{
2
- readonly description: "Use destructured variables over properties for consistency.";
3
- readonly id: "destructuringConsistency";
4
- readonly presets: readonly ["stylistic", "stylisticStrict"];
5
- } & {
6
- readonly pluginId: string;
7
- readonly url: string;
8
- }, "useDestructured", undefined>;
9
- export default _default;
10
- //# sourceMappingURL=destructuringConsistency.d.ts.map
@@ -1,112 +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/destructuringConsistency.ts
5
- function getContainingScope(node) {
6
- let current = node;
7
- while (current) {
8
- if (ts$1.isFunctionDeclaration(current) || ts$1.isFunctionExpression(current) || ts$1.isArrowFunction(current) || ts$1.isMethodDeclaration(current) || ts$1.isBlock(current) || ts$1.isForStatement(current) || ts$1.isForOfStatement(current) || ts$1.isForInStatement(current) || ts$1.isSourceFile(current)) return current;
9
- current = current.parent;
10
- }
11
- }
12
- function isInScope(accessScope, declarationScope) {
13
- if (!declarationScope) return true;
14
- let current = accessScope;
15
- while (current) {
16
- if (current === declarationScope) return true;
17
- current = current.parent;
18
- }
19
- return false;
20
- }
21
- function getInitializerKey(node) {
22
- switch (node.kind) {
23
- case ts$1.SyntaxKind.Identifier: return node.text;
24
- case ts$1.SyntaxKind.PropertyAccessExpression: {
25
- if (node.questionDotToken) return;
26
- const objectKey = getInitializerKey(node.expression);
27
- if (!objectKey) return;
28
- return `${objectKey}.${node.name.text}`;
29
- }
30
- case ts$1.SyntaxKind.ThisKeyword: return "this";
31
- }
32
- }
33
- function isLeftHandSide(node) {
34
- switch (node.parent.kind) {
35
- case ts$1.SyntaxKind.BinaryExpression: return node.parent.left === node && node.parent.operatorToken.kind >= ts$1.SyntaxKind.FirstAssignment && node.parent.operatorToken.kind <= ts$1.SyntaxKind.LastAssignment;
36
- case ts$1.SyntaxKind.DeleteExpression: return true;
37
- case ts$1.SyntaxKind.PostfixUnaryExpression:
38
- case ts$1.SyntaxKind.PrefixUnaryExpression: return node.parent.operator === ts$1.SyntaxKind.PlusPlusToken || node.parent.operator === ts$1.SyntaxKind.MinusMinusToken;
39
- default: return false;
40
- }
41
- }
42
- var destructuringConsistency_default = ruleCreator.createRule(typescriptLanguage, {
43
- about: {
44
- description: "Use destructured variables over properties for consistency.",
45
- id: "destructuringConsistency",
46
- presets: ["stylistic", "stylisticStrict"]
47
- },
48
- messages: { useDestructured: {
49
- primary: "Use the destructured variable instead of accessing the property again.",
50
- secondary: ["After destructuring an object, access properties through the destructured variables.", "Mixing destructured variables with property access on the same object is inconsistent."],
51
- suggestions: ["Replace `{{ expression }}` with `{{ variable }}`."]
52
- } },
53
- setup(context) {
54
- const destructuredObjects = [];
55
- function collectDestructuredProperties(node) {
56
- if (!node.initializer || !ts$1.isObjectBindingPattern(node.name)) return;
57
- const initKey = getInitializerKey(node.initializer);
58
- if (!initKey) return;
59
- const properties = /* @__PURE__ */ new Map();
60
- for (const element of node.name.elements) {
61
- if (!ts$1.isBindingElement(element)) continue;
62
- if (element.propertyName) {
63
- if (ts$1.isIdentifier(element.propertyName)) {
64
- if (ts$1.isObjectBindingPattern(element.name) || ts$1.isArrayBindingPattern(element.name)) properties.set(element.propertyName.text, null);
65
- else if (ts$1.isIdentifier(element.name)) properties.set(element.propertyName.text, element.name.text);
66
- }
67
- } else if (ts$1.isIdentifier(element.name)) properties.set(element.name.text, element.name.text);
68
- }
69
- if (properties.size) destructuredObjects.push({
70
- declarationEnd: node.getEnd(),
71
- destructuredProperties: properties,
72
- initKey,
73
- scope: getContainingScope(node)
74
- });
75
- }
76
- return { visitors: {
77
- PropertyAccessExpression: (node, { sourceFile }) => {
78
- if (node.questionDotToken) return;
79
- const accessKey = getInitializerKey(node.expression);
80
- if (!accessKey) return;
81
- const accessScope = getContainingScope(node);
82
- const destructured = destructuredObjects.find((object) => object.initKey === accessKey && node.getStart(sourceFile) >= object.declarationEnd && isInScope(accessScope, object.scope));
83
- if (!destructured) return;
84
- const propertyName = node.name.text;
85
- if (!destructured.destructuredProperties.has(propertyName)) return;
86
- const variableName = destructured.destructuredProperties.get(propertyName);
87
- if (ts$1.isCallExpression(node.parent) && node.parent.expression === node || isLeftHandSide(node)) return;
88
- const range = getTSNodeRange(node, sourceFile);
89
- const expression = node.getText(sourceFile);
90
- const [variable, suggestions] = variableName ? [variableName, [{
91
- id: "useDestructuredVariable",
92
- range,
93
- text: variableName
94
- }]] : [propertyName];
95
- context.report({
96
- data: {
97
- expression,
98
- variable
99
- },
100
- message: "useDestructured",
101
- range,
102
- suggestions
103
- });
104
- },
105
- VariableDeclaration: collectDestructuredProperties
106
- } };
107
- }
108
- });
109
- //#endregion
110
- export { destructuringConsistency_default as default };
111
-
112
- //# sourceMappingURL=destructuringConsistency.js.map
@@ -1,10 +0,0 @@
1
- declare const _default: import("@flint.fyi/core").Rule<{
2
- readonly description: "Reports functions with duplicate parameter names in their signatures.";
3
- readonly id: "duplicateArguments";
4
- readonly presets: readonly ["javascript"];
5
- } & {
6
- readonly pluginId: string;
7
- readonly url: string;
8
- }, "duplicateParam", undefined>;
9
- export default _default;
10
- //# sourceMappingURL=duplicateArguments.d.ts.map