@flint.fyi/ts 0.21.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} +1 -1
  2. package/dist/index.mjs +22467 -0
  3. package/package.json +8 -7
  4. package/lib/index.d.ts +0 -2
  5. package/lib/index.js +0 -2
  6. package/lib/plugin.js +0 -619
  7. package/lib/rules/accessorPairGroups.d.ts +0 -9
  8. package/lib/rules/accessorPairGroups.js +0 -46
  9. package/lib/rules/accessorPairTypes.d.ts +0 -9
  10. package/lib/rules/accessorPairTypes.js +0 -70
  11. package/lib/rules/accessorThisRecursion.d.ts +0 -9
  12. package/lib/rules/accessorThisRecursion.js +0 -63
  13. package/lib/rules/anyArguments.d.ts +0 -9
  14. package/lib/rules/anyArguments.js +0 -232
  15. package/lib/rules/anyAssignments.d.ts +0 -9
  16. package/lib/rules/anyAssignments.js +0 -263
  17. package/lib/rules/anyCalls.d.ts +0 -9
  18. package/lib/rules/anyCalls.js +0 -66
  19. package/lib/rules/anyMemberAccess.d.ts +0 -9
  20. package/lib/rules/anyMemberAccess.js +0 -83
  21. package/lib/rules/anyReturns.d.ts +0 -9
  22. package/lib/rules/anyReturns.js +0 -100
  23. package/lib/rules/arguments.d.ts +0 -9
  24. package/lib/rules/arguments.js +0 -36
  25. package/lib/rules/arrayCallbackReturns.d.ts +0 -9
  26. package/lib/rules/arrayCallbackReturns.js +0 -71
  27. package/lib/rules/arrayConstructors.d.ts +0 -9
  28. package/lib/rules/arrayConstructors.js +0 -45
  29. package/lib/rules/arrayDeleteUnnecessaryCounts.d.ts +0 -9
  30. package/lib/rules/arrayDeleteUnnecessaryCounts.js +0 -52
  31. package/lib/rules/arrayElementDeletions.d.ts +0 -9
  32. package/lib/rules/arrayElementDeletions.js +0 -41
  33. package/lib/rules/arrayEmptyCallbackSlots.d.ts +0 -9
  34. package/lib/rules/arrayEmptyCallbackSlots.js +0 -38
  35. package/lib/rules/arrayExistenceChecksConsistency.d.ts +0 -9
  36. package/lib/rules/arrayExistenceChecksConsistency.js +0 -84
  37. package/lib/rules/arrayFilteredFinds.d.ts +0 -9
  38. package/lib/rules/arrayFilteredFinds.js +0 -72
  39. package/lib/rules/arrayFinds.d.ts +0 -9
  40. package/lib/rules/arrayFinds.js +0 -39
  41. package/lib/rules/arrayFlatMapMethods.d.ts +0 -9
  42. package/lib/rules/arrayFlatMapMethods.js +0 -45
  43. package/lib/rules/arrayFlatMethods.d.ts +0 -9
  44. package/lib/rules/arrayFlatMethods.js +0 -81
  45. package/lib/rules/arrayFlatUnnecessaryDepths.d.ts +0 -9
  46. package/lib/rules/arrayFlatUnnecessaryDepths.js +0 -31
  47. package/lib/rules/arrayIncludes.d.ts +0 -9
  48. package/lib/rules/arrayIncludes.js +0 -51
  49. package/lib/rules/arrayIncludesMethods.d.ts +0 -9
  50. package/lib/rules/arrayIncludesMethods.js +0 -35
  51. package/lib/rules/arrayIndexOfMethods.d.ts +0 -9
  52. package/lib/rules/arrayIndexOfMethods.js +0 -49
  53. package/lib/rules/arrayLoops.d.ts +0 -9
  54. package/lib/rules/arrayLoops.js +0 -34
  55. package/lib/rules/arrayMapIdentities.d.ts +0 -9
  56. package/lib/rules/arrayMapIdentities.js +0 -72
  57. package/lib/rules/arrayMutableReverses.d.ts +0 -9
  58. package/lib/rules/arrayMutableReverses.js +0 -37
  59. package/lib/rules/arrayMutableSorts.d.ts +0 -9
  60. package/lib/rules/arrayMutableSorts.js +0 -70
  61. package/lib/rules/arrayReduceTypeArguments.d.ts +0 -9
  62. package/lib/rules/arrayReduceTypeArguments.js +0 -62
  63. package/lib/rules/arraySliceUnnecessaryEnd.d.ts +0 -9
  64. package/lib/rules/arraySliceUnnecessaryEnd.js +0 -49
  65. package/lib/rules/arraySomeMethods.d.ts +0 -9
  66. package/lib/rules/arraySomeMethods.js +0 -75
  67. package/lib/rules/arrayTernarySpreadingConsistency.d.ts +0 -9
  68. package/lib/rules/arrayTernarySpreadingConsistency.js +0 -72
  69. package/lib/rules/arrayTypes.d.ts +0 -16
  70. package/lib/rules/arrayTypes.js +0 -109
  71. package/lib/rules/arrayUnnecessaryLengthChecks.d.ts +0 -9
  72. package/lib/rules/arrayUnnecessaryLengthChecks.js +0 -95
  73. package/lib/rules/asConstAssertions.d.ts +0 -9
  74. package/lib/rules/asConstAssertions.js +0 -55
  75. package/lib/rules/assignmentOperatorShorthands.d.ts +0 -9
  76. package/lib/rules/assignmentOperatorShorthands.js +0 -45
  77. package/lib/rules/asyncFunctionAwaits.d.ts +0 -9
  78. package/lib/rules/asyncFunctionAwaits.js +0 -53
  79. package/lib/rules/asyncPromiseExecutors.d.ts +0 -9
  80. package/lib/rules/asyncPromiseExecutors.js +0 -39
  81. package/lib/rules/asyncUnnecessaryPromiseWrappers.d.ts +0 -9
  82. package/lib/rules/asyncUnnecessaryPromiseWrappers.js +0 -50
  83. package/lib/rules/atAccesses.d.ts +0 -9
  84. package/lib/rules/atAccesses.js +0 -50
  85. package/lib/rules/builtinCoercions.d.ts +0 -9
  86. package/lib/rules/builtinCoercions.js +0 -115
  87. package/lib/rules/builtinConstructorNews.d.ts +0 -9
  88. package/lib/rules/builtinConstructorNews.js +0 -87
  89. package/lib/rules/caseDeclarations.d.ts +0 -9
  90. package/lib/rules/caseDeclarations.js +0 -38
  91. package/lib/rules/caseDuplicates.d.ts +0 -9
  92. package/lib/rules/caseDuplicates.js +0 -34
  93. package/lib/rules/caseFallthroughs.d.ts +0 -9
  94. package/lib/rules/caseFallthroughs.js +0 -74
  95. package/lib/rules/catchCallbackTypes.d.ts +0 -9
  96. package/lib/rules/catchCallbackTypes.js +0 -65
  97. package/lib/rules/caughtVariableNames.d.ts +0 -9
  98. package/lib/rules/caughtVariableNames.js +0 -38
  99. package/lib/rules/chainedAssignments.d.ts +0 -9
  100. package/lib/rules/chainedAssignments.js +0 -31
  101. package/lib/rules/charAtComparisons.d.ts +0 -9
  102. package/lib/rules/charAtComparisons.js +0 -53
  103. package/lib/rules/classAssignments.d.ts +0 -9
  104. package/lib/rules/classAssignments.js +0 -27
  105. package/lib/rules/classFieldDeclarations.d.ts +0 -9
  106. package/lib/rules/classFieldDeclarations.js +0 -38
  107. package/lib/rules/classLiteralProperties.d.ts +0 -9
  108. package/lib/rules/classLiteralProperties.js +0 -43
  109. package/lib/rules/classMemberDuplicates.d.ts +0 -9
  110. package/lib/rules/classMemberDuplicates.js +0 -69
  111. package/lib/rules/classMethodsThis.d.ts +0 -13
  112. package/lib/rules/classMethodsThis.js +0 -122
  113. package/lib/rules/combinedPushes.d.ts +0 -9
  114. package/lib/rules/combinedPushes.js +0 -54
  115. package/lib/rules/consecutiveNonNullAssertions.d.ts +0 -9
  116. package/lib/rules/consecutiveNonNullAssertions.js +0 -37
  117. package/lib/rules/consoleCalls.d.ts +0 -8
  118. package/lib/rules/consoleCalls.js +0 -26
  119. package/lib/rules/constantAssignments.d.ts +0 -9
  120. package/lib/rules/constantAssignments.js +0 -39
  121. package/lib/rules/constructorGenericCalls.d.ts +0 -15
  122. package/lib/rules/constructorGenericCalls.js +0 -136
  123. package/lib/rules/constructorReturns.d.ts +0 -9
  124. package/lib/rules/constructorReturns.js +0 -39
  125. package/lib/rules/constructorSupers.d.ts +0 -9
  126. package/lib/rules/constructorSupers.js +0 -75
  127. package/lib/rules/dateConstructorClones.d.ts +0 -9
  128. package/lib/rules/dateConstructorClones.js +0 -35
  129. package/lib/rules/dateNowTimestamps.d.ts +0 -9
  130. package/lib/rules/dateNowTimestamps.js +0 -55
  131. package/lib/rules/debuggerStatements.d.ts +0 -9
  132. package/lib/rules/debuggerStatements.js +0 -31
  133. package/lib/rules/defaultCaseLast.d.ts +0 -9
  134. package/lib/rules/defaultCaseLast.js +0 -34
  135. package/lib/rules/defaultParameterLast.d.ts +0 -9
  136. package/lib/rules/defaultParameterLast.js +0 -40
  137. package/lib/rules/deprecated.d.ts +0 -9
  138. package/lib/rules/deprecated.js +0 -241
  139. package/lib/rules/destructuringConsistency.d.ts +0 -9
  140. package/lib/rules/destructuringConsistency.js +0 -104
  141. package/lib/rules/duplicateArguments.d.ts +0 -9
  142. package/lib/rules/duplicateArguments.js +0 -43
  143. package/lib/rules/dynamicDeletes.d.ts +0 -9
  144. package/lib/rules/dynamicDeletes.js +0 -35
  145. package/lib/rules/elseIfDuplicates.d.ts +0 -9
  146. package/lib/rules/elseIfDuplicates.js +0 -36
  147. package/lib/rules/elseReturns.d.ts +0 -9
  148. package/lib/rules/elseReturns.js +0 -65
  149. package/lib/rules/emptyBlocks.d.ts +0 -9
  150. package/lib/rules/emptyBlocks.js +0 -54
  151. package/lib/rules/emptyDestructures.d.ts +0 -9
  152. package/lib/rules/emptyDestructures.js +0 -32
  153. package/lib/rules/emptyEnums.d.ts +0 -9
  154. package/lib/rules/emptyEnums.js +0 -28
  155. package/lib/rules/emptyExports.d.ts +0 -9
  156. package/lib/rules/emptyExports.js +0 -58
  157. package/lib/rules/emptyFiles.d.ts +0 -9
  158. package/lib/rules/emptyFiles.js +0 -42
  159. package/lib/rules/emptyFunctions.d.ts +0 -9
  160. package/lib/rules/emptyFunctions.js +0 -59
  161. package/lib/rules/emptyModuleAttributes.d.ts +0 -9
  162. package/lib/rules/emptyModuleAttributes.js +0 -33
  163. package/lib/rules/emptyObjectTypes.d.ts +0 -9
  164. package/lib/rules/emptyObjectTypes.js +0 -45
  165. package/lib/rules/emptyStaticBlocks.d.ts +0 -9
  166. package/lib/rules/emptyStaticBlocks.js +0 -40
  167. package/lib/rules/emptyTypeParameterLists.d.ts +0 -9
  168. package/lib/rules/emptyTypeParameterLists.js +0 -29
  169. package/lib/rules/enumInitializers.d.ts +0 -9
  170. package/lib/rules/enumInitializers.js +0 -52
  171. package/lib/rules/enumMemberLiterals.d.ts +0 -9
  172. package/lib/rules/enumMemberLiterals.js +0 -37
  173. package/lib/rules/enumValueConsistency.d.ts +0 -9
  174. package/lib/rules/enumValueConsistency.js +0 -54
  175. package/lib/rules/enumValueDuplicates.d.ts +0 -9
  176. package/lib/rules/enumValueDuplicates.js +0 -43
  177. package/lib/rules/equalityOperatorNegations.d.ts +0 -8
  178. package/lib/rules/equalityOperatorNegations.js +0 -58
  179. package/lib/rules/equalityOperators.d.ts +0 -9
  180. package/lib/rules/equalityOperators.js +0 -42
  181. package/lib/rules/errorMessages.d.ts +0 -9
  182. package/lib/rules/errorMessages.js +0 -54
  183. package/lib/rules/errorSubclassProperties.d.ts +0 -9
  184. package/lib/rules/errorSubclassProperties.js +0 -142
  185. package/lib/rules/errorUnnecessaryCaptureStackTraces.d.ts +0 -9
  186. package/lib/rules/errorUnnecessaryCaptureStackTraces.js +0 -53
  187. package/lib/rules/escapeSequenceCasing.d.ts +0 -9
  188. package/lib/rules/escapeSequenceCasing.js +0 -73
  189. package/lib/rules/evals.d.ts +0 -9
  190. package/lib/rules/evals.js +0 -29
  191. package/lib/rules/evolvingVariableTypes.d.ts +0 -9
  192. package/lib/rules/evolvingVariableTypes.js +0 -31
  193. package/lib/rules/exceptionAssignments.d.ts +0 -9
  194. package/lib/rules/exceptionAssignments.js +0 -37
  195. package/lib/rules/explicitAnys.d.ts +0 -9
  196. package/lib/rules/explicitAnys.js +0 -53
  197. package/lib/rules/exponentiationOperators.d.ts +0 -9
  198. package/lib/rules/exponentiationOperators.js +0 -32
  199. package/lib/rules/exportFromImports.d.ts +0 -9
  200. package/lib/rules/exportFromImports.js +0 -117
  201. package/lib/rules/exportMutables.d.ts +0 -9
  202. package/lib/rules/exportMutables.js +0 -31
  203. package/lib/rules/exportUniqueNames.d.ts +0 -9
  204. package/lib/rules/exportUniqueNames.js +0 -63
  205. package/lib/rules/extraneousClasses.d.ts +0 -15
  206. package/lib/rules/extraneousClasses.js +0 -109
  207. package/lib/rules/fetchMethodBodies.d.ts +0 -9
  208. package/lib/rules/fetchMethodBodies.js +0 -70
  209. package/lib/rules/finallyStatementSafety.d.ts +0 -9
  210. package/lib/rules/finallyStatementSafety.js +0 -45
  211. package/lib/rules/forDirections.d.ts +0 -9
  212. package/lib/rules/forDirections.js +0 -73
  213. package/lib/rules/forInArrays.d.ts +0 -9
  214. package/lib/rules/forInArrays.js +0 -44
  215. package/lib/rules/forInGuards.d.ts +0 -8
  216. package/lib/rules/forInGuards.js +0 -42
  217. package/lib/rules/functionApplySpreads.d.ts +0 -9
  218. package/lib/rules/functionApplySpreads.js +0 -61
  219. package/lib/rules/functionAssignments.d.ts +0 -9
  220. package/lib/rules/functionAssignments.js +0 -27
  221. package/lib/rules/functionCurryingRedundancy.d.ts +0 -9
  222. package/lib/rules/functionCurryingRedundancy.js +0 -51
  223. package/lib/rules/functionDeclarationStyles.d.ts +0 -15
  224. package/lib/rules/functionDeclarationStyles.js +0 -65
  225. package/lib/rules/functionNameMatches.d.ts +0 -9
  226. package/lib/rules/functionNameMatches.js +0 -72
  227. package/lib/rules/functionNewCalls.d.ts +0 -9
  228. package/lib/rules/functionNewCalls.js +0 -40
  229. package/lib/rules/generatorFunctionYields.d.ts +0 -9
  230. package/lib/rules/generatorFunctionYields.js +0 -48
  231. package/lib/rules/getterReturns.d.ts +0 -9
  232. package/lib/rules/getterReturns.js +0 -63
  233. package/lib/rules/globalAssignments.d.ts +0 -9
  234. package/lib/rules/globalAssignments.js +0 -45
  235. package/lib/rules/globalObjectCalls.d.ts +0 -9
  236. package/lib/rules/globalObjectCalls.js +0 -40
  237. package/lib/rules/globalThisAliases.d.ts +0 -9
  238. package/lib/rules/globalThisAliases.js +0 -45
  239. package/lib/rules/impliedEvals.d.ts +0 -9
  240. package/lib/rules/impliedEvals.js +0 -128
  241. package/lib/rules/importEmptyBlocks.d.ts +0 -9
  242. package/lib/rules/importEmptyBlocks.js +0 -51
  243. package/lib/rules/importTypeSideEffects.d.ts +0 -9
  244. package/lib/rules/importTypeSideEffects.js +0 -29
  245. package/lib/rules/indexedObjectTypes.d.ts +0 -15
  246. package/lib/rules/indexedObjectTypes.js +0 -81
  247. package/lib/rules/instanceOfArrays.d.ts +0 -9
  248. package/lib/rules/instanceOfArrays.js +0 -29
  249. package/lib/rules/irregularWhitespaces.d.ts +0 -15
  250. package/lib/rules/irregularWhitespaces.js +0 -95
  251. package/lib/rules/isNaNComparisons.d.ts +0 -9
  252. package/lib/rules/isNaNComparisons.js +0 -41
  253. package/lib/rules/literalConstructorWrappers.d.ts +0 -9
  254. package/lib/rules/literalConstructorWrappers.js +0 -62
  255. package/lib/rules/mathMethods.d.ts +0 -9
  256. package/lib/rules/mathMethods.js +0 -126
  257. package/lib/rules/meaninglessVoidOperators.d.ts +0 -9
  258. package/lib/rules/meaninglessVoidOperators.js +0 -37
  259. package/lib/rules/misleadingVoidExpressions.d.ts +0 -9
  260. package/lib/rules/misleadingVoidExpressions.js +0 -126
  261. package/lib/rules/moduleSpecifierLists.d.ts +0 -9
  262. package/lib/rules/moduleSpecifierLists.js +0 -90
  263. package/lib/rules/multilineAmbiguities.d.ts +0 -9
  264. package/lib/rules/multilineAmbiguities.js +0 -62
  265. package/lib/rules/namedDefaultExports.d.ts +0 -9
  266. package/lib/rules/namedDefaultExports.js +0 -58
  267. package/lib/rules/namespaceDeclarations.d.ts +0 -13
  268. package/lib/rules/namespaceDeclarations.js +0 -35
  269. package/lib/rules/namespaceImplicitAmbientImports.d.ts +0 -9
  270. package/lib/rules/namespaceImplicitAmbientImports.js +0 -38
  271. package/lib/rules/namespaceKeywords.d.ts +0 -9
  272. package/lib/rules/namespaceKeywords.js +0 -38
  273. package/lib/rules/nativeObjectExtensions.d.ts +0 -9
  274. package/lib/rules/nativeObjectExtensions.js +0 -112
  275. package/lib/rules/negativeIndexLengthMethods.d.ts +0 -9
  276. package/lib/rules/negativeIndexLengthMethods.js +0 -178
  277. package/lib/rules/negativeZeroComparisons.d.ts +0 -9
  278. package/lib/rules/negativeZeroComparisons.js +0 -46
  279. package/lib/rules/nestedStandaloneIfs.d.ts +0 -9
  280. package/lib/rules/nestedStandaloneIfs.js +0 -103
  281. package/lib/rules/newDefinitions.d.ts +0 -9
  282. package/lib/rules/newDefinitions.js +0 -82
  283. package/lib/rules/newExpressions.d.ts +0 -9
  284. package/lib/rules/newExpressions.js +0 -36
  285. package/lib/rules/newNativeNonConstructors.d.ts +0 -9
  286. package/lib/rules/newNativeNonConstructors.js +0 -37
  287. package/lib/rules/nonNullAssertedNullishCoalesces.d.ts +0 -9
  288. package/lib/rules/nonNullAssertedNullishCoalesces.js +0 -61
  289. package/lib/rules/nonNullAssertedOptionalChains.d.ts +0 -9
  290. package/lib/rules/nonNullAssertedOptionalChains.js +0 -67
  291. package/lib/rules/nonNullAssertionPlacement.d.ts +0 -9
  292. package/lib/rules/nonNullAssertionPlacement.js +0 -92
  293. package/lib/rules/nonNullableTypeAssertions.d.ts +0 -9
  294. package/lib/rules/nonNullableTypeAssertions.js +0 -76
  295. package/lib/rules/nonOctalDecimalEscapes.d.ts +0 -9
  296. package/lib/rules/nonOctalDecimalEscapes.js +0 -46
  297. package/lib/rules/nullishCheckStyle.d.ts +0 -20
  298. package/lib/rules/nullishCheckStyle.js +0 -142
  299. package/lib/rules/nullishCoalescingOperators.d.ts +0 -21
  300. package/lib/rules/nullishCoalescingOperators.js +0 -321
  301. package/lib/rules/numberMethodRanges.d.ts +0 -9
  302. package/lib/rules/numberMethodRanges.js +0 -72
  303. package/lib/rules/numberStaticMethods.d.ts +0 -9
  304. package/lib/rules/numberStaticMethods.js +0 -51
  305. package/lib/rules/numericErasingOperations.d.ts +0 -9
  306. package/lib/rules/numericErasingOperations.js +0 -44
  307. package/lib/rules/numericLiteralParsing.d.ts +0 -9
  308. package/lib/rules/numericLiteralParsing.js +0 -55
  309. package/lib/rules/numericPrecision.d.ts +0 -9
  310. package/lib/rules/numericPrecision.js +0 -100
  311. package/lib/rules/numericSeparatorGroups.d.ts +0 -9
  312. package/lib/rules/numericSeparatorGroups.js +0 -99
  313. package/lib/rules/objectAssignSpreads.d.ts +0 -9
  314. package/lib/rules/objectAssignSpreads.js +0 -51
  315. package/lib/rules/objectCalls.d.ts +0 -9
  316. package/lib/rules/objectCalls.js +0 -36
  317. package/lib/rules/objectEntriesMethods.d.ts +0 -9
  318. package/lib/rules/objectEntriesMethods.js +0 -80
  319. package/lib/rules/objectHasOwns.d.ts +0 -9
  320. package/lib/rules/objectHasOwns.js +0 -48
  321. package/lib/rules/objectKeyDuplicates.d.ts +0 -9
  322. package/lib/rules/objectKeyDuplicates.js +0 -61
  323. package/lib/rules/objectProto.d.ts +0 -9
  324. package/lib/rules/objectProto.js +0 -48
  325. package/lib/rules/objectPrototypeBuiltIns.d.ts +0 -9
  326. package/lib/rules/objectPrototypeBuiltIns.js +0 -52
  327. package/lib/rules/objectShorthand.d.ts +0 -9
  328. package/lib/rules/objectShorthand.js +0 -82
  329. package/lib/rules/objectSpreadUnnecessaryFallbacks.d.ts +0 -9
  330. package/lib/rules/objectSpreadUnnecessaryFallbacks.js +0 -41
  331. package/lib/rules/objectTypeDefinitions.d.ts +0 -9
  332. package/lib/rules/objectTypeDefinitions.js +0 -32
  333. package/lib/rules/octalEscapes.d.ts +0 -9
  334. package/lib/rules/octalEscapes.js +0 -56
  335. package/lib/rules/octalNumbers.d.ts +0 -9
  336. package/lib/rules/octalNumbers.js +0 -53
  337. package/lib/rules/operatorAssignmentShorthand.d.ts +0 -9
  338. package/lib/rules/operatorAssignmentShorthand.js +0 -75
  339. package/lib/rules/overloadSignaturesAdjacent.d.ts +0 -9
  340. package/lib/rules/overloadSignaturesAdjacent.js +0 -138
  341. package/lib/rules/parameterReassignments.d.ts +0 -9
  342. package/lib/rules/parameterReassignments.js +0 -43
  343. package/lib/rules/parseIntRadixes.d.ts +0 -9
  344. package/lib/rules/parseIntRadixes.js +0 -57
  345. package/lib/rules/propertyAccessNotation.d.ts +0 -12
  346. package/lib/rules/propertyAccessNotation.js +0 -117
  347. package/lib/rules/recursionOnlyArguments.d.ts +0 -9
  348. package/lib/rules/recursionOnlyArguments.js +0 -62
  349. package/lib/rules/redundantTypeConstituents.d.ts +0 -9
  350. package/lib/rules/redundantTypeConstituents.js +0 -275
  351. package/lib/rules/regexAllGlobalFlags.d.ts +0 -9
  352. package/lib/rules/regexAllGlobalFlags.js +0 -54
  353. package/lib/rules/regexAmbiguousInvalidity.d.ts +0 -9
  354. package/lib/rules/regexAmbiguousInvalidity.js +0 -295
  355. package/lib/rules/regexCharacterClassRanges.d.ts +0 -9
  356. package/lib/rules/regexCharacterClassRanges.js +0 -135
  357. package/lib/rules/regexCharacterClassSetOperations.d.ts +0 -9
  358. package/lib/rules/regexCharacterClassSetOperations.js +0 -79
  359. package/lib/rules/regexCharacterClasses.d.ts +0 -9
  360. package/lib/rules/regexCharacterClasses.js +0 -232
  361. package/lib/rules/regexConciseCharacterClassNegations.d.ts +0 -9
  362. package/lib/rules/regexConciseCharacterClassNegations.js +0 -50
  363. package/lib/rules/regexContradictoryAssertions.d.ts +0 -9
  364. package/lib/rules/regexContradictoryAssertions.js +0 -208
  365. package/lib/rules/regexControlCharacterEscapes.d.ts +0 -9
  366. package/lib/rules/regexControlCharacterEscapes.js +0 -128
  367. package/lib/rules/regexControlCharacters.d.ts +0 -9
  368. package/lib/rules/regexControlCharacters.js +0 -93
  369. package/lib/rules/regexDigitMatchers.d.ts +0 -9
  370. package/lib/rules/regexDigitMatchers.js +0 -178
  371. package/lib/rules/regexDollarEscapes.d.ts +0 -9
  372. package/lib/rules/regexDollarEscapes.js +0 -89
  373. package/lib/rules/regexDuplicateCharacterClassCharacters.d.ts +0 -9
  374. package/lib/rules/regexDuplicateCharacterClassCharacters.js +0 -126
  375. package/lib/rules/regexEmptyAlternatives.d.ts +0 -9
  376. package/lib/rules/regexEmptyAlternatives.js +0 -138
  377. package/lib/rules/regexEmptyCapturingGroups.d.ts +0 -9
  378. package/lib/rules/regexEmptyCapturingGroups.js +0 -65
  379. package/lib/rules/regexEmptyCharacterClasses.d.ts +0 -9
  380. package/lib/rules/regexEmptyCharacterClasses.js +0 -66
  381. package/lib/rules/regexEmptyGroups.d.ts +0 -9
  382. package/lib/rules/regexEmptyGroups.js +0 -64
  383. package/lib/rules/regexEmptyLazyQuantifiers.d.ts +0 -9
  384. package/lib/rules/regexEmptyLazyQuantifiers.js +0 -90
  385. package/lib/rules/regexEmptyLookaroundsAssertions.d.ts +0 -9
  386. package/lib/rules/regexEmptyLookaroundsAssertions.js +0 -66
  387. package/lib/rules/regexEmptyStringLiterals.d.ts +0 -9
  388. package/lib/rules/regexEmptyStringLiterals.js +0 -64
  389. package/lib/rules/regexEscapeBackspaces.d.ts +0 -9
  390. package/lib/rules/regexEscapeBackspaces.js +0 -67
  391. package/lib/rules/regexExecutors.d.ts +0 -9
  392. package/lib/rules/regexExecutors.js +0 -56
  393. package/lib/rules/regexGraphemeStringLiterals.d.ts +0 -9
  394. package/lib/rules/regexGraphemeStringLiterals.js +0 -49
  395. package/lib/rules/regexHexadecimalEscapes.d.ts +0 -9
  396. package/lib/rules/regexHexadecimalEscapes.js +0 -69
  397. package/lib/rules/regexIgnoreCaseFlags.d.ts +0 -9
  398. package/lib/rules/regexIgnoreCaseFlags.js +0 -143
  399. package/lib/rules/regexInvisibleCharacters.d.ts +0 -9
  400. package/lib/rules/regexInvisibleCharacters.js +0 -88
  401. package/lib/rules/regexLetterCasing.d.ts +0 -9
  402. package/lib/rules/regexLetterCasing.js +0 -184
  403. package/lib/rules/regexLiterals.d.ts +0 -9
  404. package/lib/rules/regexLiterals.js +0 -87
  405. package/lib/rules/regexLookaroundAssertions.d.ts +0 -9
  406. package/lib/rules/regexLookaroundAssertions.js +0 -161
  407. package/lib/rules/regexLookaroundQuantifierOptimizations.d.ts +0 -9
  408. package/lib/rules/regexLookaroundQuantifierOptimizations.js +0 -92
  409. package/lib/rules/regexMatchNotation.d.ts +0 -9
  410. package/lib/rules/regexMatchNotation.js +0 -137
  411. package/lib/rules/regexMisleadingCapturingGroups.d.ts +0 -9
  412. package/lib/rules/regexMisleadingCapturingGroups.js +0 -227
  413. package/lib/rules/regexMisleadingQuantifiers.d.ts +0 -9
  414. package/lib/rules/regexMisleadingQuantifiers.js +0 -76
  415. package/lib/rules/regexMisleadingUnicodeCharacters.d.ts +0 -9
  416. package/lib/rules/regexMisleadingUnicodeCharacters.js +0 -201
  417. package/lib/rules/regexNamedBackreferences.d.ts +0 -9
  418. package/lib/rules/regexNamedBackreferences.js +0 -46
  419. package/lib/rules/regexNamedCaptureGroups.d.ts +0 -8
  420. package/lib/rules/regexNamedCaptureGroups.js +0 -65
  421. package/lib/rules/regexNamedReplacements.d.ts +0 -9
  422. package/lib/rules/regexNamedReplacements.js +0 -91
  423. package/lib/rules/regexNonStandardFlags.d.ts +0 -9
  424. package/lib/rules/regexNonStandardFlags.js +0 -64
  425. package/lib/rules/regexObscureRanges.d.ts +0 -9
  426. package/lib/rules/regexObscureRanges.js +0 -91
  427. package/lib/rules/regexOctalEscapes.d.ts +0 -9
  428. package/lib/rules/regexOctalEscapes.js +0 -68
  429. package/lib/rules/regexPlusQuantifiers.d.ts +0 -9
  430. package/lib/rules/regexPlusQuantifiers.js +0 -66
  431. package/lib/rules/regexPredefinedAssertions.d.ts +0 -9
  432. package/lib/rules/regexPredefinedAssertions.js +0 -125
  433. package/lib/rules/regexQuestionQuantifiers.d.ts +0 -9
  434. package/lib/rules/regexQuestionQuantifiers.js +0 -102
  435. package/lib/rules/regexRepeatQuantifiers.d.ts +0 -9
  436. package/lib/rules/regexRepeatQuantifiers.js +0 -94
  437. package/lib/rules/regexResultArrayGroups.d.ts +0 -9
  438. package/lib/rules/regexResultArrayGroups.js +0 -185
  439. package/lib/rules/regexSetOperationOptimizations.d.ts +0 -9
  440. package/lib/rules/regexSetOperationOptimizations.js +0 -175
  441. package/lib/rules/regexStandaloneBackslashes.d.ts +0 -9
  442. package/lib/rules/regexStandaloneBackslashes.js +0 -57
  443. package/lib/rules/regexStarQuantifiers.d.ts +0 -9
  444. package/lib/rules/regexStarQuantifiers.js +0 -66
  445. package/lib/rules/regexSuperLinearBacktracking.d.ts +0 -9
  446. package/lib/rules/regexSuperLinearBacktracking.js +0 -96
  447. package/lib/rules/regexSuperLinearMoves.d.ts +0 -9
  448. package/lib/rules/regexSuperLinearMoves.js +0 -140
  449. package/lib/rules/regexTestMethods.d.ts +0 -9
  450. package/lib/rules/regexTestMethods.js +0 -81
  451. package/lib/rules/regexUnicodeCodepointEscapes.d.ts +0 -9
  452. package/lib/rules/regexUnicodeCodepointEscapes.js +0 -105
  453. package/lib/rules/regexUnicodeEscapes.d.ts +0 -8
  454. package/lib/rules/regexUnicodeEscapes.js +0 -95
  455. package/lib/rules/regexUnicodeFlag.d.ts +0 -8
  456. package/lib/rules/regexUnicodeFlag.js +0 -95
  457. package/lib/rules/regexUnicodeProperties.d.ts +0 -9
  458. package/lib/rules/regexUnicodeProperties.js +0 -131
  459. package/lib/rules/regexUnnecessaryAssertions.d.ts +0 -9
  460. package/lib/rules/regexUnnecessaryAssertions.js +0 -221
  461. package/lib/rules/regexUnnecessaryBackreferences.d.ts +0 -9
  462. package/lib/rules/regexUnnecessaryBackreferences.js +0 -123
  463. package/lib/rules/regexUnnecessaryCharacterClasses.d.ts +0 -9
  464. package/lib/rules/regexUnnecessaryCharacterClasses.js +0 -72
  465. package/lib/rules/regexUnnecessaryCharacterRanges.d.ts +0 -9
  466. package/lib/rules/regexUnnecessaryCharacterRanges.js +0 -106
  467. package/lib/rules/regexUnnecessaryDisjunctions.d.ts +0 -9
  468. package/lib/rules/regexUnnecessaryDisjunctions.js +0 -116
  469. package/lib/rules/regexUnnecessaryDollarReplacements.d.ts +0 -9
  470. package/lib/rules/regexUnnecessaryDollarReplacements.js +0 -142
  471. package/lib/rules/regexUnnecessaryEscapes.d.ts +0 -9
  472. package/lib/rules/regexUnnecessaryEscapes.js +0 -134
  473. package/lib/rules/regexUnnecessaryLookaroundAssertions.d.ts +0 -9
  474. package/lib/rules/regexUnnecessaryLookaroundAssertions.js +0 -78
  475. package/lib/rules/regexUnnecessaryNestedAssertions.d.ts +0 -9
  476. package/lib/rules/regexUnnecessaryNestedAssertions.js +0 -196
  477. package/lib/rules/regexUnnecessaryNestedQuantifiers.d.ts +0 -9
  478. package/lib/rules/regexUnnecessaryNestedQuantifiers.js +0 -91
  479. package/lib/rules/regexUnnecessaryNonCapturingGroups.d.ts +0 -9
  480. package/lib/rules/regexUnnecessaryNonCapturingGroups.js +0 -102
  481. package/lib/rules/regexUnnecessaryNumericQuantifiers.d.ts +0 -9
  482. package/lib/rules/regexUnnecessaryNumericQuantifiers.js +0 -67
  483. package/lib/rules/regexUnnecessaryOptionalAssertions.d.ts +0 -9
  484. package/lib/rules/regexUnnecessaryOptionalAssertions.js +0 -135
  485. package/lib/rules/regexUnnecessaryReferentialBackreferences.d.ts +0 -9
  486. package/lib/rules/regexUnnecessaryReferentialBackreferences.js +0 -121
  487. package/lib/rules/regexUnnecessarySetOperands.d.ts +0 -9
  488. package/lib/rules/regexUnnecessarySetOperands.js +0 -134
  489. package/lib/rules/regexUnusedCapturingGroups.d.ts +0 -9
  490. package/lib/rules/regexUnusedCapturingGroups.js +0 -67
  491. package/lib/rules/regexUnusedFlags.d.ts +0 -9
  492. package/lib/rules/regexUnusedFlags.js +0 -114
  493. package/lib/rules/regexUnusedLazyQuantifiers.d.ts +0 -9
  494. package/lib/rules/regexUnusedLazyQuantifiers.js +0 -61
  495. package/lib/rules/regexUnusedQuantifiers.d.ts +0 -9
  496. package/lib/rules/regexUnusedQuantifiers.js +0 -61
  497. package/lib/rules/regexValidity.d.ts +0 -9
  498. package/lib/rules/regexValidity.js +0 -144
  499. package/lib/rules/regexWordMatchers.d.ts +0 -9
  500. package/lib/rules/regexWordMatchers.js +0 -144
  501. package/lib/rules/regexZeroQuantifiers.d.ts +0 -9
  502. package/lib/rules/regexZeroQuantifiers.js +0 -58
  503. package/lib/rules/requireImports.d.ts +0 -9
  504. package/lib/rules/requireImports.js +0 -46
  505. package/lib/rules/responseJsonMethods.d.ts +0 -9
  506. package/lib/rules/responseJsonMethods.js +0 -49
  507. package/lib/rules/restrictedIdentifiers.d.ts +0 -12
  508. package/lib/rules/restrictedIdentifiers.js +0 -39
  509. package/lib/rules/restrictedImports.d.ts +0 -26
  510. package/lib/rules/restrictedImports.js +0 -164
  511. package/lib/rules/returnAssignments.d.ts +0 -9
  512. package/lib/rules/returnAssignments.js +0 -36
  513. package/lib/rules/returnThisTypes.d.ts +0 -9
  514. package/lib/rules/returnThisTypes.js +0 -92
  515. package/lib/rules/ruleCreator.d.ts +0 -2
  516. package/lib/rules/ruleCreator.js +0 -15
  517. package/lib/rules/selfAssignments.d.ts +0 -9
  518. package/lib/rules/selfAssignments.js +0 -27
  519. package/lib/rules/sequences.d.ts +0 -9
  520. package/lib/rules/sequences.js +0 -26
  521. package/lib/rules/setSizeLengthChecks.d.ts +0 -9
  522. package/lib/rules/setSizeLengthChecks.js +0 -46
  523. package/lib/rules/setterReturns.d.ts +0 -9
  524. package/lib/rules/setterReturns.js +0 -39
  525. package/lib/rules/shadowedRestrictedNames.d.ts +0 -9
  526. package/lib/rules/shadowedRestrictedNames.js +0 -66
  527. package/lib/rules/singleVariableDeclarations.d.ts +0 -9
  528. package/lib/rules/singleVariableDeclarations.js +0 -34
  529. package/lib/rules/sizeComparisonOperators.d.ts +0 -15
  530. package/lib/rules/sizeComparisonOperators.js +0 -146
  531. package/lib/rules/sparseArrays.d.ts +0 -9
  532. package/lib/rules/sparseArrays.js +0 -41
  533. package/lib/rules/staticMemberOnlyClasses.d.ts +0 -9
  534. package/lib/rules/staticMemberOnlyClasses.js +0 -75
  535. package/lib/rules/stringCaseMismatches.d.ts +0 -9
  536. package/lib/rules/stringCaseMismatches.js +0 -53
  537. package/lib/rules/stringCodePoints.d.ts +0 -9
  538. package/lib/rules/stringCodePoints.js +0 -48
  539. package/lib/rules/stringSliceMethods.d.ts +0 -9
  540. package/lib/rules/stringSliceMethods.js +0 -45
  541. package/lib/rules/stringStartsEndsWith.d.ts +0 -9
  542. package/lib/rules/stringStartsEndsWith.js +0 -77
  543. package/lib/rules/structuredCloneMethods.d.ts +0 -9
  544. package/lib/rules/structuredCloneMethods.js +0 -37
  545. package/lib/rules/symbolDescriptions.d.ts +0 -9
  546. package/lib/rules/symbolDescriptions.js +0 -30
  547. package/lib/rules/thisAliases.d.ts +0 -9
  548. package/lib/rules/thisAliases.js +0 -42
  549. package/lib/rules/thisBeforeSuper.d.ts +0 -9
  550. package/lib/rules/thisBeforeSuper.js +0 -84
  551. package/lib/rules/throwErrors.d.ts +0 -9
  552. package/lib/rules/throwErrors.js +0 -59
  553. package/lib/rules/topLevelAwaits.d.ts +0 -9
  554. package/lib/rules/topLevelAwaits.js +0 -47
  555. package/lib/rules/tripleSlashReferenceValidity.d.ts +0 -9
  556. package/lib/rules/tripleSlashReferenceValidity.js +0 -52
  557. package/lib/rules/tripleSlashReferences.d.ts +0 -9
  558. package/lib/rules/tripleSlashReferences.js +0 -32
  559. package/lib/rules/tsComments.d.ts +0 -21
  560. package/lib/rules/tsComments.js +0 -128
  561. package/lib/rules/tslintComments.d.ts +0 -9
  562. package/lib/rules/tslintComments.js +0 -34
  563. package/lib/rules/typeAssertionStyles.d.ts +0 -9
  564. package/lib/rules/typeAssertionStyles.js +0 -30
  565. package/lib/rules/typeImports.d.ts +0 -19
  566. package/lib/rules/typeImports.js +0 -281
  567. package/lib/rules/typeofComparisons.d.ts +0 -9
  568. package/lib/rules/typeofComparisons.js +0 -53
  569. package/lib/rules/unassignedVariables.d.ts +0 -9
  570. package/lib/rules/unassignedVariables.js +0 -32
  571. package/lib/rules/undefinedTypeofChecks.d.ts +0 -9
  572. package/lib/rules/undefinedTypeofChecks.js +0 -39
  573. package/lib/rules/undefinedVariables.d.ts +0 -9
  574. package/lib/rules/undefinedVariables.js +0 -37
  575. package/lib/rules/unicodeBOMs.d.ts +0 -9
  576. package/lib/rules/unicodeBOMs.js +0 -37
  577. package/lib/rules/unnecessaryBinds.d.ts +0 -9
  578. package/lib/rules/unnecessaryBinds.js +0 -76
  579. package/lib/rules/unnecessaryBlocks.d.ts +0 -9
  580. package/lib/rules/unnecessaryBlocks.js +0 -58
  581. package/lib/rules/unnecessaryBooleanCasts.d.ts +0 -9
  582. package/lib/rules/unnecessaryBooleanCasts.js +0 -56
  583. package/lib/rules/unnecessaryCatches.d.ts +0 -9
  584. package/lib/rules/unnecessaryCatches.js +0 -46
  585. package/lib/rules/unnecessaryComparisons.d.ts +0 -9
  586. package/lib/rules/unnecessaryComparisons.js +0 -291
  587. package/lib/rules/unnecessaryConcatenation.d.ts +0 -9
  588. package/lib/rules/unnecessaryConcatenation.js +0 -26
  589. package/lib/rules/unnecessaryEscapes.d.ts +0 -9
  590. package/lib/rules/unnecessaryEscapes.js +0 -132
  591. package/lib/rules/unnecessaryMathClamps.d.ts +0 -9
  592. package/lib/rules/unnecessaryMathClamps.js +0 -106
  593. package/lib/rules/unnecessaryNumericFractions.d.ts +0 -9
  594. package/lib/rules/unnecessaryNumericFractions.js +0 -48
  595. package/lib/rules/unnecessaryRenames.d.ts +0 -9
  596. package/lib/rules/unnecessaryRenames.js +0 -90
  597. package/lib/rules/unnecessaryTernaries.d.ts +0 -9
  598. package/lib/rules/unnecessaryTernaries.js +0 -86
  599. package/lib/rules/unnecessaryUseStricts.d.ts +0 -9
  600. package/lib/rules/unnecessaryUseStricts.js +0 -38
  601. package/lib/rules/unsafeNegations.d.ts +0 -9
  602. package/lib/rules/unsafeNegations.js +0 -36
  603. package/lib/rules/utils/collectAccessorPairs.d.ts +0 -11
  604. package/lib/rules/utils/collectAccessorPairs.js +0 -27
  605. package/lib/rules/utils/countCommentsInRange.d.ts +0 -2
  606. package/lib/rules/utils/countCommentsInRange.js +0 -10
  607. package/lib/rules/utils/discriminateAnyType.d.ts +0 -15
  608. package/lib/rules/utils/discriminateAnyType.js +0 -36
  609. package/lib/rules/utils/equalityOperators.d.ts +0 -8
  610. package/lib/rules/utils/equalityOperators.js +0 -34
  611. package/lib/rules/utils/forEachReturnStatement.d.ts +0 -2
  612. package/lib/rules/utils/forEachReturnStatement.js +0 -27
  613. package/lib/rules/utils/formatReportedType.d.ts +0 -3
  614. package/lib/rules/utils/formatReportedType.js +0 -7
  615. package/lib/rules/utils/getConstrainedType.d.ts +0 -2
  616. package/lib/rules/utils/getConstrainedType.js +0 -7
  617. package/lib/rules/utils/getFunctionName.d.ts +0 -2
  618. package/lib/rules/utils/getFunctionName.js +0 -14
  619. package/lib/rules/utils/getRegExpConstruction.d.ts +0 -8
  620. package/lib/rules/utils/getRegExpConstruction.js +0 -25
  621. package/lib/rules/utils/getRegExpLiteralDetails.d.ts +0 -6
  622. package/lib/rules/utils/getRegExpLiteralDetails.js +0 -11
  623. package/lib/rules/utils/getThisExpression.d.ts +0 -2
  624. package/lib/rules/utils/getThisExpression.js +0 -14
  625. package/lib/rules/utils/isArrayOrTupleTypeAtLocation.d.ts +0 -2
  626. package/lib/rules/utils/isArrayOrTupleTypeAtLocation.js +0 -11
  627. package/lib/rules/utils/isBuiltinSymbolLike.d.ts +0 -2
  628. package/lib/rules/utils/isBuiltinSymbolLike.js +0 -31
  629. package/lib/rules/utils/isDirectEqualityCheck.d.ts +0 -3
  630. package/lib/rules/utils/isDirectEqualityCheck.js +0 -27
  631. package/lib/rules/utils/isErrorSubclass.d.ts +0 -3
  632. package/lib/rules/utils/isErrorSubclass.js +0 -25
  633. package/lib/rules/utils/isInBooleanContext.d.ts +0 -2
  634. package/lib/rules/utils/isInBooleanContext.js +0 -20
  635. package/lib/rules/utils/isTypeRecursive.d.ts +0 -2
  636. package/lib/rules/utils/isTypeRecursive.js +0 -6
  637. package/lib/rules/utils/isUnsafeAssignment.d.ts +0 -14
  638. package/lib/rules/utils/isUnsafeAssignment.js +0 -43
  639. package/lib/rules/utils/operators.d.ts +0 -4
  640. package/lib/rules/utils/operators.js +0 -33
  641. package/lib/rules/utils/parseRegexpAst.d.ts +0 -1
  642. package/lib/rules/utils/parseRegexpAst.js +0 -15
  643. package/lib/rules/utils/parseRegexpAstFull.d.ts +0 -2
  644. package/lib/rules/utils/parseRegexpAstFull.js +0 -16
  645. package/lib/rules/utils/skipParentheses.d.ts +0 -2
  646. package/lib/rules/utils/skipParentheses.js +0 -8
  647. package/lib/rules/variableDeletions.d.ts +0 -9
  648. package/lib/rules/variableDeletions.js +0 -33
  649. package/lib/rules/voidOperator.d.ts +0 -9
  650. package/lib/rules/voidOperator.js +0 -32
  651. package/lib/rules/withStatements.d.ts +0 -9
  652. package/lib/rules/withStatements.js +0 -28
  653. package/lib/rules/wrapperObjects.d.ts +0 -9
  654. package/lib/rules/wrapperObjects.js +0 -34
  655. package/lib/type-utils/getSpecifierNames.d.ts +0 -2
  656. package/lib/type-utils/getSpecifierNames.js +0 -7
  657. package/lib/type-utils/isDeclaredInModuleBlock.d.ts +0 -2
  658. package/lib/type-utils/isDeclaredInModuleBlock.js +0 -12
  659. package/lib/type-utils/isFromFile.d.ts +0 -2
  660. package/lib/type-utils/isFromFile.js +0 -11
  661. package/lib/type-utils/isFromPackage.d.ts +0 -2
  662. package/lib/type-utils/isFromPackage.js +0 -13
  663. package/lib/type-utils/matchesSpecifier.d.ts +0 -3
  664. package/lib/type-utils/matchesSpecifier.js +0 -18
  665. package/lib/type-utils/schemas.d.ts +0 -14
  666. package/lib/type-utils/schemas.js +0 -23
@@ -1,7 +0,0 @@
1
- import * as tsutils from "ts-api-utils";
2
- //#region src/rules/utils/formatReportedType.ts
3
- function formatReportedType(type, typeChecker) {
4
- return tsutils.isIntrinsicErrorType(type) ? "error" : typeChecker.typeToString(type);
5
- }
6
- //#endregion
7
- export { formatReportedType };
@@ -1,2 +0,0 @@
1
- import type { AST, Checker } from "@flint.fyi/typescript-language";
2
- export declare function getConstrainedTypeAtLocation(node: AST.Expression, typeChecker: Checker): import("typescript").Type;
@@ -1,7 +0,0 @@
1
- //#region src/rules/utils/getConstrainedType.ts
2
- function getConstrainedTypeAtLocation(node, typeChecker) {
3
- const type = typeChecker.getTypeAtLocation(node);
4
- return typeChecker.getBaseConstraintOfType(type) ?? type;
5
- }
6
- //#endregion
7
- export { getConstrainedTypeAtLocation };
@@ -1,2 +0,0 @@
1
- import type { AST } from "@flint.fyi/typescript-language";
2
- export declare function getFunctionName(node: AST.ArrowFunction | AST.FunctionDeclaration | AST.FunctionExpression | AST.MethodDeclaration | AST.MethodSignature): string | undefined;
@@ -1,14 +0,0 @@
1
- import ts from "typescript";
2
- //#region src/rules/utils/getFunctionName.ts
3
- function getFunctionName(node) {
4
- switch (node.kind) {
5
- case ts.SyntaxKind.ArrowFunction: return ts.isVariableDeclaration(node.parent) && ts.isIdentifier(node.parent.name) ? node.parent.name.text : void 0;
6
- case ts.SyntaxKind.FunctionDeclaration:
7
- case ts.SyntaxKind.FunctionExpression: return node.name?.text;
8
- case ts.SyntaxKind.MethodDeclaration:
9
- case ts.SyntaxKind.MethodSignature: return ts.isIdentifier(node.name) ? node.name.text : void 0;
10
- default: return;
11
- }
12
- }
13
- //#endregion
14
- export { getFunctionName };
@@ -1,8 +0,0 @@
1
- import { type AST, type TypeScriptFileServices } from "@flint.fyi/typescript-language";
2
- export declare function getRegExpConstruction(node: AST.CallExpression | AST.NewExpression, { program, sourceFile, typeChecker }: TypeScriptFileServices): {
3
- args: import("typescript").NodeArray<AST.Expression>;
4
- flags: string;
5
- pattern: string;
6
- raw: string;
7
- start: number;
8
- } | undefined;
@@ -1,25 +0,0 @@
1
- import { getStaticStringValue, isGlobalDeclarationOfName } from "@flint.fyi/typescript-language";
2
- import { SyntaxKind } from "typescript";
3
- //#region src/rules/utils/getRegExpConstruction.ts
4
- function getRegExpConstruction(node, { program, sourceFile, typeChecker }) {
5
- if (node.expression.kind !== SyntaxKind.Identifier || node.expression.text !== "RegExp" || !isGlobalDeclarationOfName(node.expression, "RegExp", typeChecker, program)) return;
6
- const args = node.arguments;
7
- if (!args?.length) return;
8
- const firstArgument = args[0];
9
- if (firstArgument.kind !== SyntaxKind.StringLiteral && firstArgument.kind !== SyntaxKind.NoSubstitutionTemplateLiteral) return;
10
- let flags = "";
11
- if (args.length >= 2) {
12
- const flagsArg = args[1];
13
- const flagsValue = flagsArg === void 0 ? void 0 : getStaticStringValue(flagsArg);
14
- if (flagsValue !== void 0) flags = flagsValue;
15
- }
16
- return {
17
- args,
18
- flags,
19
- pattern: firstArgument.getText(sourceFile).slice(1, -1),
20
- raw: firstArgument.text,
21
- start: firstArgument.getStart(sourceFile)
22
- };
23
- }
24
- //#endregion
25
- export { getRegExpConstruction };
@@ -1,6 +0,0 @@
1
- import type { AST, TypeScriptFileServices } from "@flint.fyi/typescript-language";
2
- export declare function getRegExpLiteralDetails(node: AST.RegularExpressionLiteral, { sourceFile }: Pick<TypeScriptFileServices, "sourceFile">): {
3
- flags: string;
4
- pattern: string;
5
- start: number;
6
- };
@@ -1,11 +0,0 @@
1
- //#region src/rules/utils/getRegExpLiteralDetails.ts
2
- function getRegExpLiteralDetails(node, { sourceFile }) {
3
- const lastSlash = node.text.lastIndexOf("/");
4
- return {
5
- flags: node.text.slice(lastSlash + 1),
6
- pattern: node.text.slice(1, lastSlash),
7
- start: node.getStart(sourceFile) + 1
8
- };
9
- }
10
- //#endregion
11
- export { getRegExpLiteralDetails };
@@ -1,2 +0,0 @@
1
- import type { AST } from "@flint.fyi/typescript-language";
2
- export declare function getThisExpression(node: AST.Expression): AST.ThisExpression | null;
@@ -1,14 +0,0 @@
1
- import { skipParentheses } from "./skipParentheses.js";
2
- import { SyntaxKind } from "typescript";
3
- //#region src/rules/utils/getThisExpression.ts
4
- function getThisExpression(node) {
5
- while (true) {
6
- node = skipParentheses(node);
7
- if (node.kind === SyntaxKind.CallExpression || node.kind === SyntaxKind.PropertyAccessExpression || node.kind === SyntaxKind.ElementAccessExpression) node = node.expression;
8
- else if (node.kind === SyntaxKind.ThisKeyword) return node;
9
- else break;
10
- }
11
- return null;
12
- }
13
- //#endregion
14
- export { getThisExpression };
@@ -1,2 +0,0 @@
1
- import type { AST, Checker } from "@flint.fyi/typescript-language";
2
- export declare function isArrayOrTupleTypeAtLocation(node: AST.Expression, typeChecker: Checker): boolean;
@@ -1,11 +0,0 @@
1
- import { getConstrainedTypeAtLocation } from "./getConstrainedType.js";
2
- import { isTypeRecursive } from "./isTypeRecursive.js";
3
- //#region src/rules/utils/isArrayOrTupleTypeAtLocation.ts
4
- function isArrayOrTupleTypeAtLocation(node, typeChecker) {
5
- return isArrayOrTupleType(getConstrainedTypeAtLocation(node, typeChecker), typeChecker);
6
- }
7
- function isArrayOrTupleType(type, typeChecker) {
8
- return isTypeRecursive(type, (constituent) => typeChecker.isArrayType(constituent) || typeChecker.isTupleType(constituent));
9
- }
10
- //#endregion
11
- export { isArrayOrTupleTypeAtLocation };
@@ -1,2 +0,0 @@
1
- import * as ts from "typescript";
2
- export declare function isBuiltinSymbolLike(program: ts.Program, type: ts.Type, symbolName: string): boolean;
@@ -1,31 +0,0 @@
1
- import * as ts$1 from "typescript";
2
- import * as tsutils from "ts-api-utils";
3
- //#region src/rules/utils/isBuiltinSymbolLike.ts
4
- function isBuiltinSymbolLike(program, type, symbolName) {
5
- return isBuiltinSymbolLikeRecurser(program, type, (subType) => {
6
- const symbol = subType.getSymbol();
7
- if (!symbol) return false;
8
- const actualSymbolName = symbol.getName();
9
- if (actualSymbolName === symbolName && isSymbolFromDefaultLibrary(program, symbol)) return true;
10
- if (actualSymbolName === "Function" && tsutils.isObjectType(subType) && tsutils.isObjectFlagSet(subType, ts$1.ObjectFlags.Anonymous)) return false;
11
- return null;
12
- });
13
- }
14
- function isBuiltinSymbolLikeRecurser(program, type, predicate) {
15
- if (type.isUnionOrIntersection()) return type.types.some((subType) => isBuiltinSymbolLikeRecurser(program, subType, predicate));
16
- const result = predicate(type);
17
- if (result !== null) return result;
18
- const bases = type.getBaseTypes();
19
- if (bases?.length) return bases.some((baseType) => isBuiltinSymbolLikeRecurser(program, baseType, predicate));
20
- return false;
21
- }
22
- function isSymbolFromDefaultLibrary(program, symbol) {
23
- const declarations = symbol.getDeclarations();
24
- if (!declarations?.length) return false;
25
- return declarations.some((declaration) => {
26
- const sourceFile = declaration.getSourceFile();
27
- return program.isSourceFileDefaultLibrary(sourceFile);
28
- });
29
- }
30
- //#endregion
31
- export { isBuiltinSymbolLike };
@@ -1,3 +0,0 @@
1
- import * as ts from "typescript";
2
- import type { AST } from "@flint.fyi/typescript-language";
3
- export declare function isDirectEqualityCheck(node: AST.ArrowFunction | AST.FunctionExpression, operators: ts.SyntaxKind[], parameterName: string): AST.Expression | undefined;
@@ -1,27 +0,0 @@
1
- import * as ts$1 from "typescript";
2
- //#region src/rules/utils/isDirectEqualityCheck.ts
3
- function isDirectEqualityCheck(node, operators, parameterName) {
4
- let body;
5
- switch (node.kind) {
6
- case ts$1.SyntaxKind.ArrowFunction:
7
- body = node.body.kind === ts$1.SyntaxKind.Block ? getDirectReturnExpression(node.body) : node.body;
8
- break;
9
- case ts$1.SyntaxKind.FunctionExpression:
10
- body = getDirectReturnExpression(node.body);
11
- break;
12
- }
13
- if (!body || !ts$1.isBinaryExpression(body)) return;
14
- const { left, operatorToken, right } = body;
15
- if (!operators.includes(operatorToken.kind)) return;
16
- const isLeftParam = ts$1.isIdentifier(left) && left.text === parameterName;
17
- const isRightParam = ts$1.isIdentifier(right) && right.text === parameterName;
18
- if (isLeftParam && !isRightParam) return right;
19
- if (isRightParam && !isLeftParam) return left;
20
- }
21
- function getDirectReturnExpression(body) {
22
- if (body.statements.length !== 1) return;
23
- const statement = body.statements[0];
24
- return statement.kind === ts$1.SyntaxKind.ReturnStatement ? statement.expression : void 0;
25
- }
26
- //#endregion
27
- export { isDirectEqualityCheck };
@@ -1,3 +0,0 @@
1
- import { type Program } from "typescript";
2
- import { type AST, type Checker } from "@flint.fyi/typescript-language";
3
- export declare function isErrorSubclass(node: AST.ClassDeclaration, typeChecker: Checker, program: Program): boolean;
@@ -1,25 +0,0 @@
1
- import { isGlobalDeclaration } from "@flint.fyi/typescript-language";
2
- import { SyntaxKind, isIdentifier } from "typescript";
3
- //#region src/rules/utils/isErrorSubclass.ts
4
- const builtinErrorNames = /* @__PURE__ */ new Set([
5
- "Error",
6
- "EvalError",
7
- "RangeError",
8
- "ReferenceError",
9
- "SyntaxError",
10
- "TypeError",
11
- "URIError"
12
- ]);
13
- function isErrorSubclass(node, typeChecker, program) {
14
- if (!node.heritageClauses) return false;
15
- for (const clause of node.heritageClauses) {
16
- if (clause.token !== SyntaxKind.ExtendsKeyword) continue;
17
- for (const type of clause.types) {
18
- const typeName = type.expression;
19
- if (isIdentifier(typeName) && builtinErrorNames.has(typeName.text) && isGlobalDeclaration(typeName, typeChecker, program)) return true;
20
- }
21
- }
22
- return false;
23
- }
24
- //#endregion
25
- export { isErrorSubclass };
@@ -1,2 +0,0 @@
1
- import type { AST } from "@flint.fyi/typescript-language";
2
- export declare function isInBooleanContext(node: AST.AnyNode): boolean;
@@ -1,20 +0,0 @@
1
- import ts from "typescript";
2
- //#region src/rules/utils/isInBooleanContext.ts
3
- function isInBooleanContext(node) {
4
- switch (node.parent.kind) {
5
- case ts.SyntaxKind.AsExpression:
6
- case ts.SyntaxKind.NonNullExpression:
7
- case ts.SyntaxKind.ParenthesizedExpression: return isInBooleanContext(node.parent);
8
- case ts.SyntaxKind.BinaryExpression: return node.parent.operatorToken.kind === ts.SyntaxKind.AmpersandAmpersandToken || node.parent.operatorToken.kind === ts.SyntaxKind.BarBarToken;
9
- case ts.SyntaxKind.CallExpression: return ts.isIdentifier(node.parent.expression) && node.parent.expression.text === "Boolean" && node.parent.arguments.length === 1 && node.parent.arguments[0] === node;
10
- case ts.SyntaxKind.ConditionalExpression:
11
- case ts.SyntaxKind.ForStatement: return node.parent.condition === node;
12
- case ts.SyntaxKind.DoStatement:
13
- case ts.SyntaxKind.IfStatement:
14
- case ts.SyntaxKind.WhileStatement: return node.parent.expression === node;
15
- case ts.SyntaxKind.PrefixUnaryExpression: return node.parent.operator === ts.SyntaxKind.ExclamationToken;
16
- default: return false;
17
- }
18
- }
19
- //#endregion
20
- export { isInBooleanContext };
@@ -1,2 +0,0 @@
1
- import type * as ts from "typescript";
2
- export declare function isTypeRecursive(type: ts.Type, predicate: (t: ts.Type) => boolean): boolean;
@@ -1,6 +0,0 @@
1
- //#region src/rules/utils/isTypeRecursive.ts
2
- function isTypeRecursive(type, predicate) {
3
- return type.isUnionOrIntersection() ? type.types.some((subType) => isTypeRecursive(subType, predicate)) : predicate(type);
4
- }
5
- //#endregion
6
- export { isTypeRecursive };
@@ -1,14 +0,0 @@
1
- import ts from "typescript";
2
- import type { AST } from "@flint.fyi/typescript-language";
3
- /**
4
- * Does a simple check to see if there is an any being assigned to a non-any type.
5
- *
6
- * This also checks generic positions to ensure there's no unsafe sub-assignments.
7
- * Note: in the case of generic positions, it makes the assumption that the two types are the same.
8
- * @example See tests for examples
9
- * @returns false if it's safe, or an object with the two types if it's unsafe
10
- */
11
- export declare function isUnsafeAssignment(type: ts.Type, receiver: ts.Type, senderNode: AST.Expression): false | {
12
- receiver: ts.Type;
13
- sender: ts.Type;
14
- };
@@ -1,43 +0,0 @@
1
- import ts, { SyntaxKind } from "typescript";
2
- import * as tsutils from "ts-api-utils";
3
- import { nullThrows } from "@flint.fyi/utils";
4
- //#region src/rules/utils/isUnsafeAssignment.ts
5
- /**
6
- * Does a simple check to see if there is an any being assigned to a non-any type.
7
- *
8
- * This also checks generic positions to ensure there's no unsafe sub-assignments.
9
- * Note: in the case of generic positions, it makes the assumption that the two types are the same.
10
- * @example See tests for examples
11
- * @returns false if it's safe, or an object with the two types if it's unsafe
12
- */
13
- function isUnsafeAssignment(type, receiver, senderNode) {
14
- return isUnsafeAssignmentWorker(type, receiver, senderNode, /* @__PURE__ */ new Map());
15
- }
16
- function isUnsafeAssignmentWorker(type, receiver, senderNode, visited) {
17
- if (tsutils.isTypeFlagSet(type, ts.TypeFlags.Any)) {
18
- if (tsutils.isTypeFlagSet(receiver, ts.TypeFlags.Unknown)) return false;
19
- if (!tsutils.isTypeFlagSet(receiver, ts.TypeFlags.Any)) return {
20
- receiver,
21
- sender: type
22
- };
23
- }
24
- const typeAlreadyVisited = visited.get(type);
25
- if (typeAlreadyVisited) {
26
- if (typeAlreadyVisited.has(receiver)) return false;
27
- typeAlreadyVisited.add(receiver);
28
- } else visited.set(type, /* @__PURE__ */ new Set([receiver]));
29
- if (tsutils.isTypeReference(type) && tsutils.isTypeReference(receiver)) {
30
- if (type.target !== receiver.target) return false;
31
- if (senderNode.kind === SyntaxKind.NewExpression && senderNode.expression.kind === SyntaxKind.Identifier && senderNode.expression.text === "Map" && !senderNode.arguments?.length && senderNode.typeArguments == null) return false;
32
- const typeArguments = type.typeArguments ?? [];
33
- const receiverTypeArguments = receiver.typeArguments ?? [];
34
- for (let i = 0; i < typeArguments.length; i += 1) if (isUnsafeAssignmentWorker(nullThrows(typeArguments[i], "Type argument is expected to be present by the loop condition"), nullThrows(receiverTypeArguments[i], "Receiver type should have the same number of type arguments as the sender type when they share the same target"), senderNode, visited)) return {
35
- receiver,
36
- sender: type
37
- };
38
- return false;
39
- }
40
- return false;
41
- }
42
- //#endregion
43
- export { isUnsafeAssignment };
@@ -1,4 +0,0 @@
1
- import type { AST } from "@flint.fyi/typescript-language";
2
- export declare function isComparisonOperator(token: AST.BinaryOperatorToken): boolean;
3
- export declare function isEqualityOperator(token: AST.BinaryOperatorToken): boolean;
4
- export declare function isNegatedEqualityOperator(token: AST.BinaryOperatorToken): boolean;
@@ -1,33 +0,0 @@
1
- import { SyntaxKind } from "typescript";
2
- //#region src/rules/utils/operators.ts
3
- function isComparisonOperator(token) {
4
- switch (token.kind) {
5
- case SyntaxKind.EqualsEqualsEqualsToken:
6
- case SyntaxKind.EqualsEqualsToken:
7
- case SyntaxKind.ExclamationEqualsEqualsToken:
8
- case SyntaxKind.ExclamationEqualsToken:
9
- case SyntaxKind.GreaterThanEqualsToken:
10
- case SyntaxKind.GreaterThanToken:
11
- case SyntaxKind.LessThanEqualsToken:
12
- case SyntaxKind.LessThanToken: return true;
13
- default: return false;
14
- }
15
- }
16
- function isEqualityOperator(token) {
17
- switch (token.kind) {
18
- case SyntaxKind.EqualsEqualsEqualsToken:
19
- case SyntaxKind.EqualsEqualsToken:
20
- case SyntaxKind.ExclamationEqualsEqualsToken:
21
- case SyntaxKind.ExclamationEqualsToken: return true;
22
- default: return false;
23
- }
24
- }
25
- function isNegatedEqualityOperator(token) {
26
- switch (token.kind) {
27
- case SyntaxKind.ExclamationEqualsEqualsToken:
28
- case SyntaxKind.ExclamationEqualsToken: return true;
29
- default: return false;
30
- }
31
- }
32
- //#endregion
33
- export { isComparisonOperator, isEqualityOperator, isNegatedEqualityOperator };
@@ -1 +0,0 @@
1
- export declare function parseRegexpAst(pattern: string, flags?: string): import("@eslint-community/regexpp/ast").Pattern | undefined;
@@ -1,15 +0,0 @@
1
- import { RegExpParser } from "@eslint-community/regexpp";
2
- //#region src/rules/utils/parseRegexpAst.ts
3
- const parser = new RegExpParser();
4
- function parseRegexpAst(pattern, flags = "") {
5
- try {
6
- return parser.parsePattern(pattern, void 0, void 0, {
7
- unicode: flags.includes("u"),
8
- unicodeSets: flags.includes("v")
9
- });
10
- } catch {
11
- return;
12
- }
13
- }
14
- //#endregion
15
- export { parseRegexpAst };
@@ -1,2 +0,0 @@
1
- import type { ParsedLiteral } from "scslre";
2
- export declare function parseRegexpAstFull(pattern: string, flags?: string): ParsedLiteral | undefined;
@@ -1,16 +0,0 @@
1
- import { RegExpParser } from "@eslint-community/regexpp";
2
- //#region src/rules/utils/parseRegexpAstFull.ts
3
- const parser = new RegExpParser();
4
- function parseRegexpAstFull(pattern, flags = "") {
5
- try {
6
- const regexpFlags = parser.parseFlags(flags);
7
- return {
8
- flags: regexpFlags,
9
- pattern: parser.parsePattern(pattern, void 0, void 0, regexpFlags)
10
- };
11
- } catch {
12
- return;
13
- }
14
- }
15
- //#endregion
16
- export { parseRegexpAstFull };
@@ -1,2 +0,0 @@
1
- import type { AST } from "@flint.fyi/typescript-language";
2
- export declare function skipParentheses(node: AST.Expression): AST.Expression;
@@ -1,8 +0,0 @@
1
- import { SyntaxKind } from "typescript";
2
- //#region src/rules/utils/skipParentheses.ts
3
- function skipParentheses(node) {
4
- while (node.kind === SyntaxKind.ParenthesizedExpression) node = node.expression;
5
- return node;
6
- }
7
- //#endregion
8
- export { skipParentheses };
@@ -1,9 +0,0 @@
1
- declare const _default: import("@flint.fyi/core").Rule<{
2
- readonly description: "Reports attempting to delete variables with the delete operator.";
3
- readonly id: "variableDeletions";
4
- readonly presets: readonly ["javascript"];
5
- } & {
6
- readonly pluginId: string;
7
- readonly url: string;
8
- }, "noDeleteVar", undefined>;
9
- export default _default;
@@ -1,33 +0,0 @@
1
- import { ruleCreator } from "./ruleCreator.js";
2
- import { typescriptLanguage } from "@flint.fyi/typescript-language";
3
- import { SyntaxKind } from "typescript";
4
- //#region src/rules/variableDeletions.ts
5
- var variableDeletions_default = ruleCreator.createRule(typescriptLanguage, {
6
- about: {
7
- description: "Reports attempting to delete variables with the delete operator.",
8
- id: "variableDeletions",
9
- presets: ["javascript"]
10
- },
11
- messages: { noDeleteVar: {
12
- primary: "Deleting a variable with the delete operator outside of strict mode will silently fail and return false.",
13
- secondary: [
14
- "The delete operator is only meant to remove properties from objects, not variables.",
15
- "Attempting to delete a variable in strict mode will cause a syntax error.",
16
- "In non-strict mode, it will silently fail and return false without actually deleting the variable."
17
- ],
18
- suggestions: ["Remove the delete statement, or if you need to unset the value, assign undefined instead."]
19
- } },
20
- setup(context) {
21
- return { visitors: { DeleteExpression: (node, { sourceFile }) => {
22
- if (node.expression.kind === SyntaxKind.Identifier) context.report({
23
- message: "noDeleteVar",
24
- range: {
25
- begin: node.getStart(sourceFile),
26
- end: node.getEnd()
27
- }
28
- });
29
- } } };
30
- }
31
- });
32
- //#endregion
33
- export { variableDeletions_default as default };
@@ -1,9 +0,0 @@
1
- declare const _default: import("@flint.fyi/core").Rule<{
2
- readonly description: "Reports using the void operator.";
3
- readonly id: "voidOperator";
4
- readonly presets: readonly ["stylistic", "stylisticStrict"];
5
- } & {
6
- readonly pluginId: string;
7
- readonly url: string;
8
- }, "noVoid", undefined>;
9
- export default _default;
@@ -1,32 +0,0 @@
1
- import { ruleCreator } from "./ruleCreator.js";
2
- import { typescriptLanguage } from "@flint.fyi/typescript-language";
3
- //#region src/rules/voidOperator.ts
4
- var voidOperator_default = ruleCreator.createRule(typescriptLanguage, {
5
- about: {
6
- description: "Reports using the void operator.",
7
- id: "voidOperator",
8
- presets: ["stylistic", "stylisticStrict"]
9
- },
10
- messages: { noVoid: {
11
- primary: "Prefer an explicit value over using the void operator to produce undefined.",
12
- secondary: [
13
- "The void operator evaluates an expression and returns undefined, regardless of the expression's value.",
14
- "This is often confusing and can be replaced with more explicit code.",
15
- "Instead of using void, return or assign undefined directly."
16
- ],
17
- suggestions: ["Replace void expressions with undefined or restructure the code to be more explicit."]
18
- } },
19
- setup(context) {
20
- return { visitors: { VoidExpression: (node, { sourceFile }) => {
21
- context.report({
22
- message: "noVoid",
23
- range: {
24
- begin: node.getStart(sourceFile),
25
- end: node.getEnd()
26
- }
27
- });
28
- } } };
29
- }
30
- });
31
- //#endregion
32
- export { voidOperator_default as default };
@@ -1,9 +0,0 @@
1
- declare const _default: import("@flint.fyi/core").Rule<{
2
- readonly description: "Reports using with statements";
3
- readonly id: "withStatements";
4
- readonly presets: readonly ["javascript"];
5
- } & {
6
- readonly pluginId: string;
7
- readonly url: string;
8
- }, "withStatement", undefined>;
9
- export default _default;
@@ -1,28 +0,0 @@
1
- import { ruleCreator } from "./ruleCreator.js";
2
- import { typescriptLanguage } from "@flint.fyi/typescript-language";
3
- //#region src/rules/withStatements.ts
4
- var withStatements_default = ruleCreator.createRule(typescriptLanguage, {
5
- about: {
6
- description: "Reports using with statements",
7
- id: "withStatements",
8
- presets: ["javascript"]
9
- },
10
- messages: { withStatement: {
11
- primary: "`with` statements are deprecated, unreliable, and difficult to reason about.",
12
- secondary: ["The with statement is problematic because it adds members of an object to the current scope, making it impossible to tell what a variable inside the block actually refers to.", "If an object doesn't have an expected variable, you'll end up modifying a global instead of the expected property."],
13
- suggestions: ["Create a variable with the content of the with expression and access its properties instead."]
14
- } },
15
- setup(context) {
16
- return { visitors: { WithStatement: (node, { sourceFile }) => {
17
- context.report({
18
- message: "withStatement",
19
- range: {
20
- begin: node.getStart(sourceFile),
21
- end: node.getStart(sourceFile) + 4
22
- }
23
- });
24
- } } };
25
- }
26
- });
27
- //#endregion
28
- export { withStatements_default as default };
@@ -1,9 +0,0 @@
1
- declare const _default: import("@flint.fyi/core").Rule<{
2
- readonly description: "Flags using `new` with `Boolean`, `Number`, or `String`, which creates wrapper objects instead of primitives.";
3
- readonly id: "wrapperObjects";
4
- readonly presets: readonly ["logical", "logicalStrict"];
5
- } & {
6
- readonly pluginId: string;
7
- readonly url: string;
8
- }, "wrapperObject", undefined>;
9
- export default _default;
@@ -1,34 +0,0 @@
1
- import { ruleCreator } from "./ruleCreator.js";
2
- import { getTSNodeRange, isGlobalDeclarationOfName, typescriptLanguage } from "@flint.fyi/typescript-language";
3
- import * as ts$1 from "typescript";
4
- //#region src/rules/wrapperObjects.ts
5
- const wrapperConstructors = /* @__PURE__ */ new Set([
6
- "Boolean",
7
- "Number",
8
- "String"
9
- ]);
10
- var wrapperObjects_default = ruleCreator.createRule(typescriptLanguage, {
11
- about: {
12
- description: "Flags using `new` with `Boolean`, `Number`, or `String`, which creates wrapper objects instead of primitives.",
13
- id: "wrapperObjects",
14
- presets: ["logical", "logicalStrict"]
15
- },
16
- messages: { wrapperObject: {
17
- primary: "{{ name }} wrapper objects are rarely intended and can cause unexpected behavior.",
18
- secondary: ["Using `new {{ name }}()` creates an object wrapper around a primitive value, not the primitive itself.", "Object wrappers behave differently from primitives in comparisons: `new String('a') !== 'a'`."],
19
- suggestions: ["Use `{{ name }}()` without `new` to coerce values to primitives."]
20
- } },
21
- setup(context) {
22
- return { visitors: { NewExpression: (node, { program, sourceFile, typeChecker }) => {
23
- if (node.expression.kind !== ts$1.SyntaxKind.Identifier || !wrapperConstructors.has(node.expression.text) || !isGlobalDeclarationOfName(node.expression, node.expression.text, typeChecker, program)) return;
24
- const range = getTSNodeRange(node, sourceFile);
25
- context.report({
26
- data: { name: node.expression.text },
27
- message: "wrapperObject",
28
- range
29
- });
30
- } } };
31
- }
32
- });
33
- //#endregion
34
- export { wrapperObjects_default as default };
@@ -1,2 +0,0 @@
1
- import type { TypeOrValueSpecifier } from "./schemas.ts";
2
- export declare function getSpecifierNames(specifier: TypeOrValueSpecifier): string[] | undefined;
@@ -1,7 +0,0 @@
1
- //#region src/type-utils/getSpecifierNames.ts
2
- function getSpecifierNames(specifier) {
3
- if (specifier.name === void 0) return;
4
- return Array.isArray(specifier.name) ? specifier.name : [specifier.name];
5
- }
6
- //#endregion
7
- export { getSpecifierNames };
@@ -1,2 +0,0 @@
1
- import ts from "typescript";
2
- export declare function isDeclaredInModuleBlock(declaration: ts.Declaration, packageName: string): boolean;
@@ -1,12 +0,0 @@
1
- import ts from "typescript";
2
- //#region src/type-utils/isDeclaredInModuleBlock.ts
3
- function isDeclaredInModuleBlock(declaration, packageName) {
4
- let current = declaration;
5
- while (!ts.isSourceFile(current)) {
6
- if (ts.isModuleDeclaration(current) && !(current.flags & ts.NodeFlags.Namespace) && ts.isStringLiteral(current.name) && current.name.text === packageName) return true;
7
- current = current.parent;
8
- }
9
- return false;
10
- }
11
- //#endregion
12
- export { isDeclaredInModuleBlock };