@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,166 +0,0 @@
1
- import { ruleCreator } from "./ruleCreator.js";
2
- import { getSpecifierNames } from "../type-utils/getSpecifierNames.js";
3
- import { matchesSpecifier } from "../type-utils/matchesSpecifier.js";
4
- import { typeOrValueSpecifierSchema } from "../type-utils/schemas.js";
5
- import { getTSNodeRange, typescriptLanguage } from "@flint.fyi/typescript-language";
6
- import ts, { SyntaxKind } from "typescript";
7
- import { z } from "zod/v4";
8
- //#region src/rules/restrictedImports.ts
9
- const restrictionSchema = z.object({
10
- allowTypeImports: z.boolean().optional().describe("Whether type-only imports are exempt from the restriction."),
11
- message: z.string().optional().describe("A custom message to display when the restriction is triggered."),
12
- specifier: typeOrValueSpecifierSchema.describe("A TypeOrValueSpecifier identifying the restricted import.")
13
- });
14
- function resolveModuleDeclarations(moduleSpecifier, typeChecker) {
15
- return typeChecker.getSymbolAtLocation(moduleSpecifier)?.getDeclarations();
16
- }
17
- function resolveSymbolDeclarations(nameNode, typeChecker) {
18
- let symbol = typeChecker.getSymbolAtLocation(nameNode);
19
- if (!symbol) return;
20
- if (symbol.flags & ts.SymbolFlags.Alias) symbol = typeChecker.getAliasedSymbol(symbol);
21
- return symbol.getDeclarations();
22
- }
23
- var restrictedImports_default = ruleCreator.createRule(typescriptLanguage, {
24
- about: {
25
- description: "Restricts specified modules from being imported.",
26
- id: "restrictedImports"
27
- },
28
- messages: {
29
- moduleRestricted: {
30
- primary: "'{{ source }}' import is restricted.",
31
- secondary: ["This module has been restricted by project configuration."],
32
- suggestions: ["Remove this import or replace it with an allowed alternative."]
33
- },
34
- moduleRestrictedWithMessage: {
35
- primary: "'{{ source }}' import is restricted. {{ customMessage }}",
36
- secondary: ["This module has been restricted by project configuration."],
37
- suggestions: ["Remove this import or replace it with an allowed alternative."]
38
- },
39
- namespaceRestricted: {
40
- primary: "* import is invalid because '{{ restrictedNames }}' from '{{ source }}' is restricted.",
41
- secondary: ["This import uses a namespace or wildcard import, but specific names from this module are restricted."],
42
- suggestions: ["Replace the namespace import with named imports that are allowed."]
43
- },
44
- namespaceRestrictedWithMessage: {
45
- primary: "* import is invalid because '{{ restrictedNames }}' from '{{ source }}' is restricted. {{ customMessage }}",
46
- secondary: ["This import uses a namespace or wildcard import, but specific names from this module are restricted."],
47
- suggestions: ["Replace the namespace import with named imports that are allowed."]
48
- },
49
- restricted: {
50
- primary: "'{{ importName }}' import from '{{ source }}' is restricted.",
51
- secondary: ["This import name has been restricted by project configuration."],
52
- suggestions: ["Remove this import or replace it with an allowed alternative."]
53
- },
54
- restrictedWithMessage: {
55
- primary: "'{{ importName }}' import from '{{ source }}' is restricted. {{ customMessage }}",
56
- secondary: ["This import name has been restricted by project configuration."],
57
- suggestions: ["Remove this import or replace it with an allowed alternative."]
58
- }
59
- },
60
- options: { restrictions: z.array(restrictionSchema).default([]).describe("Restrictions on imports, using TypeOrValueSpecifier to identify targets.") },
61
- setup(context) {
62
- function checkNamedRestrictions(restrictions, declarations, importedName, isTypeOnly, source, range, program) {
63
- for (const restriction of restrictions) {
64
- if (restriction.allowTypeImports && isTypeOnly) continue;
65
- if (matchesSpecifier(importedName, declarations, restriction.specifier, program)) context.report({
66
- data: {
67
- customMessage: restriction.message ?? "",
68
- importName: importedName,
69
- source
70
- },
71
- message: restriction.message ? "restrictedWithMessage" : "restricted",
72
- range
73
- });
74
- }
75
- }
76
- function checkWildcardRestrictions(restrictions, moduleDeclarations, source, topLevelTypeOnly, range, program) {
77
- for (const restriction of restrictions) {
78
- if (restriction.allowTypeImports && topLevelTypeOnly) continue;
79
- const names = getSpecifierNames(restriction.specifier);
80
- if (names !== void 0) {
81
- if (matchesSpecifier(void 0, moduleDeclarations, {
82
- ...restriction.specifier,
83
- name: void 0
84
- }, program)) context.report({
85
- data: {
86
- customMessage: restriction.message ?? "",
87
- restrictedNames: names.join("', '"),
88
- source
89
- },
90
- message: restriction.message ? "namespaceRestrictedWithMessage" : "namespaceRestricted",
91
- range
92
- });
93
- } else if (matchesSpecifier(void 0, moduleDeclarations, restriction.specifier, program)) context.report({
94
- data: {
95
- customMessage: restriction.message ?? "",
96
- source
97
- },
98
- message: restriction.message ? "moduleRestrictedWithMessage" : "moduleRestricted",
99
- range
100
- });
101
- }
102
- }
103
- return { visitors: {
104
- ExportDeclaration: (node, { options, program, sourceFile, typeChecker }) => {
105
- if (!node.moduleSpecifier || !ts.isStringLiteral(node.moduleSpecifier)) return;
106
- const source = node.moduleSpecifier.text;
107
- const topLevelTypeOnly = node.isTypeOnly;
108
- const range = getTSNodeRange(node, sourceFile);
109
- if (node.exportClause && ts.isNamedExports(node.exportClause)) for (const element of node.exportClause.elements) {
110
- const isTypeOnly = topLevelTypeOnly || element.isTypeOnly;
111
- const importedName = element.propertyName ? element.propertyName.text : element.name.text;
112
- const declarations = resolveSymbolDeclarations(element.name, typeChecker);
113
- if (!declarations?.length) continue;
114
- checkNamedRestrictions(options.restrictions, declarations, importedName, isTypeOnly, source, range, program);
115
- }
116
- else {
117
- const moduleDeclarations = resolveModuleDeclarations(node.moduleSpecifier, typeChecker);
118
- if (!moduleDeclarations?.length) return;
119
- checkWildcardRestrictions(options.restrictions, moduleDeclarations, source, topLevelTypeOnly, range, program);
120
- }
121
- },
122
- ImportDeclaration: (node, { options, program, sourceFile, typeChecker }) => {
123
- if (!ts.isStringLiteral(node.moduleSpecifier)) return;
124
- const source = node.moduleSpecifier.text;
125
- const range = getTSNodeRange(node, sourceFile);
126
- if (!node.importClause) {
127
- const moduleDeclarations = resolveModuleDeclarations(node.moduleSpecifier, typeChecker);
128
- if (!moduleDeclarations?.length) return;
129
- for (const restriction of options.restrictions) if (matchesSpecifier(void 0, moduleDeclarations, restriction.specifier, program)) context.report({
130
- data: {
131
- customMessage: restriction.message ?? "",
132
- source
133
- },
134
- message: restriction.message ? "moduleRestrictedWithMessage" : "moduleRestricted",
135
- range
136
- });
137
- return;
138
- }
139
- const topLevelTypeOnly = node.importClause.phaseModifier === SyntaxKind.TypeKeyword;
140
- if (node.importClause.name) {
141
- const declarations = resolveSymbolDeclarations(node.importClause.name, typeChecker);
142
- if (declarations?.length) checkNamedRestrictions(options.restrictions, declarations, "default", topLevelTypeOnly, source, range, program);
143
- }
144
- const bindings = node.importClause.namedBindings;
145
- if (!bindings) return;
146
- if (ts.isNamedImports(bindings)) {
147
- for (const element of bindings.elements) {
148
- const isTypeOnly = topLevelTypeOnly || element.isTypeOnly;
149
- const importedName = element.propertyName ? element.propertyName.text : element.name.text;
150
- const declarations = resolveSymbolDeclarations(element.name, typeChecker);
151
- if (!declarations?.length) continue;
152
- checkNamedRestrictions(options.restrictions, declarations, importedName, isTypeOnly, source, range, program);
153
- }
154
- return;
155
- }
156
- const moduleDeclarations = resolveModuleDeclarations(node.moduleSpecifier, typeChecker);
157
- if (!moduleDeclarations?.length) return;
158
- checkWildcardRestrictions(options.restrictions, moduleDeclarations, source, topLevelTypeOnly, range, program);
159
- }
160
- } };
161
- }
162
- });
163
- //#endregion
164
- export { restrictedImports_default as default };
165
-
166
- //# sourceMappingURL=restrictedImports.js.map
@@ -1,10 +0,0 @@
1
- declare const _default: import("@flint.fyi/core").Rule<{
2
- readonly description: "Reports using assignment expressions in return statements.";
3
- readonly id: "returnAssignments";
4
- readonly presets: readonly ["stylistic", "stylisticStrict"];
5
- } & {
6
- readonly pluginId: string;
7
- readonly url: string;
8
- }, "noReturnAssign", undefined>;
9
- export default _default;
10
- //# sourceMappingURL=returnAssignments.d.ts.map
@@ -1,38 +0,0 @@
1
- import { ruleCreator } from "./ruleCreator.js";
2
- import { getTSNodeRange, typescriptLanguage, unwrapParenthesizedNode } from "@flint.fyi/typescript-language";
3
- import { SyntaxKind } from "typescript";
4
- import * as tsutils from "ts-api-utils";
5
- //#region src/rules/returnAssignments.ts
6
- var returnAssignments_default = ruleCreator.createRule(typescriptLanguage, {
7
- about: {
8
- description: "Reports using assignment expressions in return statements.",
9
- id: "returnAssignments",
10
- presets: ["stylistic", "stylisticStrict"]
11
- },
12
- messages: { noReturnAssign: {
13
- primary: "Placing an assignment inside a return statement can be misleading and is often a sign of a logical mistake.",
14
- secondary: ["Using assignments in return statements can make code harder to read and can lead to confusion about whether the assignment or the returned value is the primary intent.", "Assignment expressions return the assigned value, but mixing assignment with return makes the control flow less clear."],
15
- suggestions: ["Perform the assignment on a separate line before the return statement."]
16
- } },
17
- setup(context) {
18
- function checkForAssignment(node, sourceFile) {
19
- const unwrapped = unwrapParenthesizedNode(node);
20
- if (unwrapped.kind === SyntaxKind.BinaryExpression && tsutils.isAssignmentKind(unwrapped.operatorToken.kind)) context.report({
21
- message: "noReturnAssign",
22
- range: getTSNodeRange(unwrapped.operatorToken, sourceFile)
23
- });
24
- }
25
- return { visitors: {
26
- ArrowFunction: (node, { sourceFile }) => {
27
- if (node.body.kind !== SyntaxKind.Block) checkForAssignment(node.body, sourceFile);
28
- },
29
- ReturnStatement: (node, { sourceFile }) => {
30
- if (node.expression) checkForAssignment(node.expression, sourceFile);
31
- }
32
- } };
33
- }
34
- });
35
- //#endregion
36
- export { returnAssignments_default as default };
37
-
38
- //# sourceMappingURL=returnAssignments.js.map
@@ -1,10 +0,0 @@
1
- declare const _default: import("@flint.fyi/core").Rule<{
2
- readonly description: "Enforce that `this` is used when only `this` type is returned.";
3
- readonly id: "returnThisTypes";
4
- readonly presets: readonly ["logical"];
5
- } & {
6
- readonly pluginId: string;
7
- readonly url: string;
8
- }, "preferThis", undefined>;
9
- export default _default;
10
- //# sourceMappingURL=returnThisTypes.d.ts.map
@@ -1,94 +0,0 @@
1
- import { ruleCreator } from "./ruleCreator.js";
2
- import { forEachReturnStatement } from "./utils/forEachReturnStatement.js";
3
- import { getTSNodeRange, typescriptLanguage } from "@flint.fyi/typescript-language";
4
- import * as ts$1 from "typescript";
5
- import * as tsutils from "ts-api-utils";
6
- //#region src/rules/returnThisTypes.ts
7
- var returnThisTypes_default = ruleCreator.createRule(typescriptLanguage, {
8
- about: {
9
- description: "Enforce that `this` is used when only `this` type is returned.",
10
- id: "returnThisTypes",
11
- presets: ["logical"]
12
- },
13
- messages: { preferThis: {
14
- primary: "Prefer `this` as the return type instead of the class name for polymorphic chaining.",
15
- secondary: [
16
- "Annotating this method as returning the class extends to sub-classes as well.",
17
- "Any sub-class will be implicitly typed as returning this parent class, rather than itself.",
18
- "Using `this` preserves method chaining behavior in subclasses."
19
- ],
20
- suggestions: ["Replace the class name with `this`."]
21
- } },
22
- setup(context) {
23
- function checkFunction(functionNode, originalClassNode, { sourceFile, typeChecker }) {
24
- if (originalClassNode.kind !== ts$1.SyntaxKind.ClassDeclaration && originalClassNode.kind !== ts$1.SyntaxKind.ClassExpression) return;
25
- const className = originalClassNode.name?.text;
26
- if (!className || !functionNode.type) return;
27
- const nameNode = tryGetNameInType(className, functionNode.type);
28
- if (!nameNode || !isFunctionReturningThis(functionNode, originalClassNode, typeChecker)) return;
29
- const range = getTSNodeRange(nameNode, sourceFile);
30
- context.report({
31
- fix: {
32
- range,
33
- text: "this"
34
- },
35
- message: "preferThis",
36
- range
37
- });
38
- }
39
- function isFunctionReturningThis(functionNode, originalClassNode, typeChecker) {
40
- if (!functionNode.body || isThisSpecifiedInParameters(functionNode)) return false;
41
- const classType = typeChecker.getTypeAtLocation(originalClassNode);
42
- if (functionNode.body.kind !== ts$1.SyntaxKind.Block) return classType.thisType === typeChecker.getTypeAtLocation(functionNode.body);
43
- let hasReturnThis = false;
44
- let hasReturnClassType = false;
45
- forEachReturnStatement(functionNode.body, (statement) => {
46
- if (!statement.expression) return;
47
- if (statement.expression.kind === ts$1.SyntaxKind.ThisKeyword) {
48
- hasReturnThis = true;
49
- return;
50
- }
51
- const type = typeChecker.getTypeAtLocation(statement.expression);
52
- if (classType === type) {
53
- hasReturnClassType = true;
54
- return true;
55
- }
56
- if (classType.thisType === type) {
57
- hasReturnThis = true;
58
- return;
59
- }
60
- if (tsutils.isUnionType(type) && type.types.includes(classType)) {
61
- hasReturnClassType = true;
62
- return true;
63
- }
64
- });
65
- return !hasReturnClassType && hasReturnThis;
66
- }
67
- function isThisSpecifiedInParameters(functionNode) {
68
- if (!functionNode.parameters.length) return false;
69
- const firstArgument = functionNode.parameters[0];
70
- return ts$1.isIdentifier(firstArgument.name) && firstArgument.name.text === "this";
71
- }
72
- function tryGetNameInType(name, typeNode) {
73
- if (ts$1.isTypeReferenceNode(typeNode) && ts$1.isIdentifier(typeNode.typeName) && typeNode.typeName.text === name) return typeNode;
74
- if (ts$1.isUnionTypeNode(typeNode)) for (const type of typeNode.types) {
75
- const found = tryGetNameInType(name, type);
76
- if (found) return found;
77
- }
78
- }
79
- function checkMethodLike(node, services) {
80
- checkFunction(node, node.parent, services);
81
- }
82
- return { visitors: {
83
- GetAccessor: checkMethodLike,
84
- MethodDeclaration: checkMethodLike,
85
- PropertyDeclaration(node, services) {
86
- if (node.initializer && (ts$1.isFunctionExpression(node.initializer) || ts$1.isArrowFunction(node.initializer))) checkFunction(node.initializer, node.parent, services);
87
- }
88
- } };
89
- }
90
- });
91
- //#endregion
92
- export { returnThisTypes_default as default };
93
-
94
- //# sourceMappingURL=returnThisTypes.js.map
@@ -1,3 +0,0 @@
1
- import { RuleCreator } from "@flint.fyi/core";
2
- export declare const ruleCreator: RuleCreator<"javascript" | "logical" | "logicalStrict" | "stylistic" | "stylisticStrict", import("@flint.fyi/core").RuleAbout<"javascript" | "logical" | "logicalStrict" | "stylistic" | "stylisticStrict">>;
3
- //# sourceMappingURL=ruleCreator.d.ts.map
@@ -1,17 +0,0 @@
1
- import { RuleCreator } from "@flint.fyi/core";
2
- //#region src/rules/ruleCreator.ts
3
- const ruleCreator = new RuleCreator({
4
- docs: (ruleId) => `https://flint.fyi/rules/ts/${ruleId.toLowerCase()}`,
5
- pluginId: "ts",
6
- presets: [
7
- "javascript",
8
- "logical",
9
- "logicalStrict",
10
- "stylistic",
11
- "stylisticStrict"
12
- ]
13
- });
14
- //#endregion
15
- export { ruleCreator };
16
-
17
- //# sourceMappingURL=ruleCreator.js.map
@@ -1,10 +0,0 @@
1
- declare const _default: import("@flint.fyi/core").Rule<{
2
- readonly description: "Reports self-assignments which have no effect and are likely errors.";
3
- readonly id: "selfAssignments";
4
- readonly presets: readonly ["logical", "logicalStrict"];
5
- } & {
6
- readonly pluginId: string;
7
- readonly url: string;
8
- }, "selfAssignment", undefined>;
9
- export default _default;
10
- //# sourceMappingURL=selfAssignments.d.ts.map
@@ -1,29 +0,0 @@
1
- import { ruleCreator } from "./ruleCreator.js";
2
- import { getTSNodeRange, hasSameTokens, typescriptLanguage } from "@flint.fyi/typescript-language";
3
- import { SyntaxKind } from "typescript";
4
- //#region src/rules/selfAssignments.ts
5
- var selfAssignments_default = ruleCreator.createRule(typescriptLanguage, {
6
- about: {
7
- description: "Reports self-assignments which have no effect and are likely errors.",
8
- id: "selfAssignments",
9
- presets: ["logical", "logicalStrict"]
10
- },
11
- messages: { selfAssignment: {
12
- primary: "This value is being assigned to itself, which does nothing.",
13
- secondary: ["Self-assignments have no effect and typically indicate an incomplete refactoring or copy-paste error."],
14
- suggestions: ["Review the assignment and ensure you're assigning the correct value."]
15
- } },
16
- setup(context) {
17
- return { visitors: { BinaryExpression: (node, { sourceFile }) => {
18
- if (node.operatorToken.kind !== SyntaxKind.EqualsToken && node.operatorToken.kind !== SyntaxKind.AmpersandAmpersandEqualsToken && node.operatorToken.kind !== SyntaxKind.BarBarEqualsToken && node.operatorToken.kind !== SyntaxKind.QuestionQuestionEqualsToken) return;
19
- if (hasSameTokens(node.left, node.right, sourceFile)) context.report({
20
- message: "selfAssignment",
21
- range: getTSNodeRange(node, sourceFile)
22
- });
23
- } } };
24
- }
25
- });
26
- //#endregion
27
- export { selfAssignments_default as default };
28
-
29
- //# sourceMappingURL=selfAssignments.js.map
@@ -1,10 +0,0 @@
1
- declare const _default: import("@flint.fyi/core").Rule<{
2
- readonly description: "Reports using the comma operator in expressions.";
3
- readonly id: "sequences";
4
- readonly presets: readonly ["javascript"];
5
- } & {
6
- readonly pluginId: string;
7
- readonly url: string;
8
- }, "noSequences", undefined>;
9
- export default _default;
10
- //# sourceMappingURL=sequences.d.ts.map
@@ -1,28 +0,0 @@
1
- import { ruleCreator } from "./ruleCreator.js";
2
- import { getTSNodeRange, typescriptLanguage } from "@flint.fyi/typescript-language";
3
- import { SyntaxKind } from "typescript";
4
- //#region src/rules/sequences.ts
5
- var sequences_default = ruleCreator.createRule(typescriptLanguage, {
6
- about: {
7
- description: "Reports using the comma operator in expressions.",
8
- id: "sequences",
9
- presets: ["javascript"]
10
- },
11
- messages: { noSequences: {
12
- primary: "The \"sequence\" (comma) operator is often confusing and a sign of mistaken logic.",
13
- secondary: ["The comma operator can make code harder to read and may hide side effects.", "Prefer separate expressions instead of using a single sequence."],
14
- suggestions: ["Split the expression into separate statements."]
15
- } },
16
- setup(context) {
17
- return { visitors: { BinaryExpression: (node, { sourceFile }) => {
18
- if (node.operatorToken.kind === SyntaxKind.CommaToken) context.report({
19
- message: "noSequences",
20
- range: getTSNodeRange(node.operatorToken, sourceFile)
21
- });
22
- } } };
23
- }
24
- });
25
- //#endregion
26
- export { sequences_default as default };
27
-
28
- //# sourceMappingURL=sequences.js.map
@@ -1,10 +0,0 @@
1
- declare const _default: import("@flint.fyi/core").Rule<{
2
- readonly description: "Prefer `Set.size` over spreading into an array and accessing `.length`.";
3
- readonly id: "setSizeLengthChecks";
4
- readonly presets: readonly ["logical"];
5
- } & {
6
- readonly pluginId: string;
7
- readonly url: string;
8
- }, "preferSize", undefined>;
9
- export default _default;
10
- //# sourceMappingURL=setSizeLengthChecks.d.ts.map
@@ -1,48 +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/setSizeLengthChecks.ts
5
- function isNewSetExpression(expression, typeChecker) {
6
- return ts$1.isNewExpression(expression) && ts$1.isIdentifier(expression.expression) && expression.expression.text === "Set" && isGlobalDeclarationOfName(expression.expression, "Set", typeChecker);
7
- }
8
- function isSetExpression(expression, typeChecker) {
9
- const unwrapped = unwrapParentheses(expression);
10
- if (isNewSetExpression(unwrapped, typeChecker)) return true;
11
- if (!ts$1.isIdentifier(unwrapped)) return false;
12
- const symbol = typeChecker.getSymbolAtLocation(unwrapped);
13
- if (!symbol?.valueDeclaration || !ts$1.isVariableDeclaration(symbol.valueDeclaration)) return false;
14
- const declaration = symbol.valueDeclaration;
15
- if (declaration.parent.kind !== ts$1.SyntaxKind.VariableDeclarationList || !(declaration.parent.flags & ts$1.NodeFlags.Const) || !declaration.initializer) return false;
16
- return isNewSetExpression(unwrapParentheses(declaration.initializer), typeChecker);
17
- }
18
- function unwrapParentheses(expression) {
19
- while (ts$1.isParenthesizedExpression(expression)) expression = expression.expression;
20
- return expression;
21
- }
22
- var setSizeLengthChecks_default = ruleCreator.createRule(typescriptLanguage, {
23
- about: {
24
- description: "Prefer `Set.size` over spreading into an array and accessing `.length`.",
25
- id: "setSizeLengthChecks",
26
- presets: ["logical"]
27
- },
28
- messages: { preferSize: {
29
- primary: "Prefer `Set.size` instead of spreading into an array and accessing `.length`.",
30
- secondary: ["`Set` has a built-in `.size` property that directly returns the number of elements.", "It is faster and more idiomatic to use that instead of creating an intermediate array."],
31
- suggestions: ["Use `.size` directly on the `Set` instead."]
32
- } },
33
- setup(context) {
34
- return { visitors: { PropertyAccessExpression: (node, { sourceFile, typeChecker }) => {
35
- if (node.questionDotToken || node.name.text !== "length" || !ts$1.isArrayLiteralExpression(node.expression) || node.expression.elements.length !== 1) return;
36
- const element = node.expression.elements[0];
37
- if (!ts$1.isSpreadElement(element) || !isSetExpression(element.expression, typeChecker)) return;
38
- context.report({
39
- message: "preferSize",
40
- range: getTSNodeRange(node, sourceFile)
41
- });
42
- } } };
43
- }
44
- });
45
- //#endregion
46
- export { setSizeLengthChecks_default as default };
47
-
48
- //# sourceMappingURL=setSizeLengthChecks.js.map
@@ -1,10 +0,0 @@
1
- declare const _default: import("@flint.fyi/core").Rule<{
2
- readonly description: "Reports return statements with values inside setters.";
3
- readonly id: "setterReturns";
4
- readonly presets: readonly ["javascript"];
5
- } & {
6
- readonly pluginId: string;
7
- readonly url: string;
8
- }, "noSetterReturn", undefined>;
9
- export default _default;
10
- //# sourceMappingURL=setterReturns.d.ts.map
@@ -1,41 +0,0 @@
1
- import { ruleCreator } from "./ruleCreator.js";
2
- import { typescriptLanguage } from "@flint.fyi/typescript-language";
3
- import ts from "typescript";
4
- import * as tsutils from "ts-api-utils";
5
- //#region src/rules/setterReturns.ts
6
- var setterReturns_default = ruleCreator.createRule(typescriptLanguage, {
7
- about: {
8
- description: "Reports return statements with values inside setters.",
9
- id: "setterReturns",
10
- presets: ["javascript"]
11
- },
12
- messages: { noSetterReturn: {
13
- primary: "Values returned by setters are always ignored.",
14
- secondary: ["Setters are expected to have side effects only and not produce a return value.", "Any returned value from a setter is ignored."],
15
- suggestions: ["Remove the return value.", "Use a regular method instead."]
16
- } },
17
- setup(context) {
18
- return { visitors: { SetAccessor: (node, { sourceFile }) => {
19
- if (!node.body) return;
20
- function checkForReturnStatements(node) {
21
- if (ts.isReturnStatement(node)) {
22
- if (node.expression) context.report({
23
- message: "noSetterReturn",
24
- range: {
25
- begin: node.getStart(sourceFile),
26
- end: node.getEnd()
27
- }
28
- });
29
- return;
30
- }
31
- if (tsutils.isFunctionScopeBoundary(node)) return;
32
- ts.forEachChild(node, checkForReturnStatements);
33
- }
34
- ts.forEachChild(node.body, checkForReturnStatements);
35
- } } };
36
- }
37
- });
38
- //#endregion
39
- export { setterReturns_default as default };
40
-
41
- //# sourceMappingURL=setterReturns.js.map
@@ -1,10 +0,0 @@
1
- declare const _default: import("@flint.fyi/core").Rule<{
2
- readonly description: "Reports variable declarations that shadow JavaScript's restricted names.";
3
- readonly id: "shadowedRestrictedNames";
4
- readonly presets: readonly ["javascript"];
5
- } & {
6
- readonly pluginId: string;
7
- readonly url: string;
8
- }, "shadowedRestrictedName", undefined>;
9
- export default _default;
10
- //# sourceMappingURL=shadowedRestrictedNames.d.ts.map
@@ -1,68 +0,0 @@
1
- import { ruleCreator } from "./ruleCreator.js";
2
- import { getTSNodeRange, typescriptLanguage } from "@flint.fyi/typescript-language";
3
- import { SyntaxKind } from "typescript";
4
- //#region src/rules/shadowedRestrictedNames.ts
5
- const restrictedNames = new Set([
6
- "arguments",
7
- "eval",
8
- "Infinity",
9
- "NaN",
10
- "undefined"
11
- ]);
12
- var shadowedRestrictedNames_default = ruleCreator.createRule(typescriptLanguage, {
13
- about: {
14
- description: "Reports variable declarations that shadow JavaScript's restricted names.",
15
- id: "shadowedRestrictedNames",
16
- presets: ["javascript"]
17
- },
18
- messages: { shadowedRestrictedName: {
19
- primary: "This variable misleadingly shadows the global `{{ name }}`.",
20
- secondary: ["JavaScript has certain built-in global identifiers that are considered restricted because shadowing them can lead to confusing or erroneous code.", "When you declare a variable with a restricted name, it shadows the global identifier and can cause unexpected behavior."],
21
- suggestions: ["Use a different variable name that doesn't shadow a restricted name."]
22
- } },
23
- setup(context) {
24
- function checkIdentifier(node, sourceFile) {
25
- if (restrictedNames.has(node.text)) context.report({
26
- data: { name: node.text },
27
- message: "shadowedRestrictedName",
28
- range: getTSNodeRange(node, sourceFile)
29
- });
30
- }
31
- function checkBindingName(name, sourceFile) {
32
- if (name.kind === SyntaxKind.Identifier) checkIdentifier(name, sourceFile);
33
- else for (const element of name.elements) if (element.kind === SyntaxKind.BindingElement) checkBindingName(element.name, sourceFile);
34
- }
35
- function checkParameters(parameters, sourceFile) {
36
- for (const parameter of parameters) checkBindingName(parameter.name, sourceFile);
37
- }
38
- return { visitors: {
39
- ArrowFunction: (node, { sourceFile }) => {
40
- checkParameters(node.parameters, sourceFile);
41
- },
42
- ClassDeclaration: (node, { sourceFile }) => {
43
- if (node.name) checkIdentifier(node.name, sourceFile);
44
- },
45
- ClassExpression: (node, { sourceFile }) => {
46
- if (node.name) checkIdentifier(node.name, sourceFile);
47
- },
48
- FunctionDeclaration: (node, { sourceFile }) => {
49
- if (node.name) checkIdentifier(node.name, sourceFile);
50
- checkParameters(node.parameters, sourceFile);
51
- },
52
- FunctionExpression: (node, { sourceFile }) => {
53
- if (node.name) checkIdentifier(node.name, sourceFile);
54
- checkParameters(node.parameters, sourceFile);
55
- },
56
- MethodDeclaration: (node, { sourceFile }) => {
57
- checkParameters(node.parameters, sourceFile);
58
- },
59
- VariableDeclaration: (node, { sourceFile }) => {
60
- checkBindingName(node.name, sourceFile);
61
- }
62
- } };
63
- }
64
- });
65
- //#endregion
66
- export { shadowedRestrictedNames_default as default };
67
-
68
- //# sourceMappingURL=shadowedRestrictedNames.js.map
@@ -1,10 +0,0 @@
1
- declare const _default: import("@flint.fyi/core").Rule<{
2
- readonly description: "Enforces one variable per declaration statement.";
3
- readonly id: "singleVariableDeclarations";
4
- readonly presets: readonly ["logical"];
5
- } & {
6
- readonly pluginId: string;
7
- readonly url: string;
8
- }, "singleVariable", undefined>;
9
- export default _default;
10
- //# sourceMappingURL=singleVariableDeclarations.d.ts.map