@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,43 +0,0 @@
1
- import { ruleCreator } from "./ruleCreator.js";
2
- import { getStaticValue, getTSNodeRange, typescriptLanguage } from "@flint.fyi/typescript-language";
3
- import { SyntaxKind } from "typescript";
4
- //#region src/rules/enumValueDuplicates.ts
5
- var enumValueDuplicates_default = ruleCreator.createRule(typescriptLanguage, {
6
- about: {
7
- description: "Reports enum members with duplicate values.",
8
- id: "enumValueDuplicates",
9
- presets: ["logical", "logicalStrict"]
10
- },
11
- messages: { duplicateValue: {
12
- primary: "Enum member '{{ name }}' has a duplicate value '{{ value }}' which is already used by '{{ firstMember }}'.",
13
- secondary: ["Duplicate enum values can lead to hard-to-track bugs since different members may be indistinguishable at runtime.", "When accessing enum members by value, only one of the duplicate members will be returned."],
14
- suggestions: ["Use a unique value for each enum member.", "If duplication is intentional (e.g., for aliasing), consider using a type union instead."]
15
- } },
16
- setup(context) {
17
- return { visitors: { EnumDeclaration: (node, { sourceFile }) => {
18
- const seenValues = /* @__PURE__ */ new Map();
19
- for (const member of node.members) {
20
- if (!member.initializer) continue;
21
- const value = getStaticValue(member.initializer)?.value;
22
- if (typeof value !== "number" && typeof value !== "string") continue;
23
- const memberName = member.name.kind === SyntaxKind.Identifier ? member.name.text : member.name.getText(sourceFile);
24
- const firstMember = seenValues.get(value);
25
- if (firstMember === void 0) {
26
- seenValues.set(value, memberName);
27
- continue;
28
- }
29
- context.report({
30
- data: {
31
- firstMember,
32
- name: memberName,
33
- value: String(value)
34
- },
35
- message: "duplicateValue",
36
- range: getTSNodeRange(member, sourceFile)
37
- });
38
- }
39
- } } };
40
- }
41
- });
42
- //#endregion
43
- export { enumValueDuplicates_default as default };
@@ -1,8 +0,0 @@
1
- declare const _default: import("@flint.fyi/core").Rule<{
2
- readonly description: "Reports negated expressions on the left side of equality checks.";
3
- readonly id: "equalityOperatorNegations";
4
- } & {
5
- readonly pluginId: string;
6
- readonly url: string;
7
- }, "negatedEquality", undefined>;
8
- export default _default;
@@ -1,58 +0,0 @@
1
- import { ruleCreator } from "./ruleCreator.js";
2
- import { typescriptLanguage, unwrapParenthesizedNode } from "@flint.fyi/typescript-language";
3
- import { SyntaxKind } from "typescript";
4
- //#region src/rules/equalityOperatorNegations.ts
5
- const equalityOperators = /* @__PURE__ */ new Set([
6
- SyntaxKind.EqualsEqualsEqualsToken,
7
- SyntaxKind.EqualsEqualsToken,
8
- SyntaxKind.ExclamationEqualsEqualsToken,
9
- SyntaxKind.ExclamationEqualsToken
10
- ]);
11
- const operatorStrings = /* @__PURE__ */ new Map([
12
- [SyntaxKind.EqualsEqualsEqualsToken, "==="],
13
- [SyntaxKind.EqualsEqualsToken, "=="],
14
- [SyntaxKind.ExclamationEqualsEqualsToken, "!=="],
15
- [SyntaxKind.ExclamationEqualsToken, "!="]
16
- ]);
17
- const negatedOperators = /* @__PURE__ */ new Map([
18
- [SyntaxKind.EqualsEqualsEqualsToken, "!=="],
19
- [SyntaxKind.EqualsEqualsToken, "!="],
20
- [SyntaxKind.ExclamationEqualsEqualsToken, "==="],
21
- [SyntaxKind.ExclamationEqualsToken, "=="]
22
- ]);
23
- var equalityOperatorNegations_default = ruleCreator.createRule(typescriptLanguage, {
24
- about: {
25
- description: "Reports negated expressions on the left side of equality checks.",
26
- id: "equalityOperatorNegations"
27
- },
28
- messages: { negatedEquality: {
29
- primary: "Negating the left operand of '{{ operator }}' is likely a mistake.",
30
- secondary: ["The logical not operator (!) applies to the left operand before the equality comparison.", "This converts the left operand to a boolean before comparing, which is rarely intended."],
31
- suggestions: ["Use the opposite equality operator ('{{ suggested }}') and remove the negation."]
32
- } },
33
- setup(context) {
34
- return { visitors: { BinaryExpression: (node, { sourceFile }) => {
35
- if (!equalityOperators.has(node.operatorToken.kind)) return;
36
- const left = unwrapParenthesizedNode(node.left);
37
- if (left.kind !== SyntaxKind.PrefixUnaryExpression || left.operator !== SyntaxKind.ExclamationToken) return;
38
- const innerExpression = unwrapParenthesizedNode(left.operand);
39
- if (innerExpression.kind === SyntaxKind.PrefixUnaryExpression && innerExpression.operator === SyntaxKind.ExclamationToken) return;
40
- const begin = left.getStart(sourceFile);
41
- const operator = operatorStrings.get(node.operatorToken.kind);
42
- const suggested = negatedOperators.get(node.operatorToken.kind);
43
- context.report({
44
- data: {
45
- operator,
46
- suggested
47
- },
48
- message: "negatedEquality",
49
- range: {
50
- begin,
51
- end: begin + 1
52
- }
53
- });
54
- } } };
55
- }
56
- });
57
- //#endregion
58
- export { equalityOperatorNegations_default as default };
@@ -1,9 +0,0 @@
1
- declare const _default: import("@flint.fyi/core").Rule<{
2
- readonly description: "Enforces consistent use of strict equality operators (=== and !==) over loose equality operators (== and !=) for non-nullish comparisons.";
3
- readonly id: "equalityOperators";
4
- readonly presets: readonly ["logical", "logicalStrict"];
5
- } & {
6
- readonly pluginId: string;
7
- readonly url: string;
8
- }, "preferStrictEquality", undefined>;
9
- export default _default;
@@ -1,42 +0,0 @@
1
- import { ruleCreator } from "./ruleCreator.js";
2
- import { isNullishLiteral, toEqualityOperator, toStrictOperator } from "./utils/equalityOperators.js";
3
- import { getTSNodeRange, typescriptLanguage } from "@flint.fyi/typescript-language";
4
- //#region src/rules/equalityOperators.ts
5
- var equalityOperators_default = ruleCreator.createRule(typescriptLanguage, {
6
- about: {
7
- description: "Enforces consistent use of strict equality operators (=== and !==) over loose equality operators (== and !=) for non-nullish comparisons.",
8
- id: "equalityOperators",
9
- presets: ["logical", "logicalStrict"]
10
- },
11
- messages: { preferStrictEquality: {
12
- primary: "Use the more precise strict equality ('{{ strictOperator }}') instead of the loose '{{ looseOperator }}'.",
13
- secondary: ["The loose equality operators '=='/'!=' perform arcane type coercion and are difficult to reason about.", "Use strict equality operators '==='/'!==' instead."],
14
- suggestions: ["Replace '{{ looseOperator }}' with '{{ strictOperator }}'."]
15
- } },
16
- setup(context) {
17
- return { visitors: { BinaryExpression: (node, { sourceFile }) => {
18
- const operator = toEqualityOperator(node.operatorToken.kind);
19
- if (operator == null) return;
20
- if (isNullishLiteral(node.left) || isNullishLiteral(node.right)) return;
21
- if (operator === "==" || operator === "!=") {
22
- const strictOperator = toStrictOperator(operator);
23
- const operatorRange = getTSNodeRange(node.operatorToken, sourceFile);
24
- context.report({
25
- data: {
26
- looseOperator: operator,
27
- strictOperator
28
- },
29
- message: "preferStrictEquality",
30
- range: operatorRange,
31
- suggestions: [{
32
- id: "useStrictOperator",
33
- range: operatorRange,
34
- text: strictOperator
35
- }]
36
- });
37
- }
38
- } } };
39
- }
40
- });
41
- //#endregion
42
- export { equalityOperators_default as default };
@@ -1,9 +0,0 @@
1
- declare const _default: import("@flint.fyi/core").Rule<{
2
- readonly description: "Requires a message value when creating a built-in error.";
3
- readonly id: "errorMessages";
4
- readonly presets: readonly ["logicalStrict"];
5
- } & {
6
- readonly pluginId: string;
7
- readonly url: string;
8
- }, "missingMessage", undefined>;
9
- export default _default;
@@ -1,54 +0,0 @@
1
- import { ruleCreator } from "./ruleCreator.js";
2
- import { getStaticStringValue, getTSNodeRange, isGlobalDeclarationOfName, typescriptLanguage } from "@flint.fyi/typescript-language";
3
- import { SyntaxKind } from "typescript";
4
- //#region src/rules/errorMessages.ts
5
- const errorConstructors = [
6
- "AggregateError",
7
- "Error",
8
- "EvalError",
9
- "RangeError",
10
- "ReferenceError",
11
- "SyntaxError",
12
- "TypeError",
13
- "URIError"
14
- ];
15
- function getErrorConstructorWithoutMessage(node, typeChecker, program) {
16
- if (node.expression.kind !== SyntaxKind.Identifier || hasValidMessageArgument(node.arguments)) return false;
17
- return errorConstructors.find((errorConstructor) => isGlobalDeclarationOfName(node.expression, errorConstructor, typeChecker, program));
18
- }
19
- function hasValidMessageArgument(args) {
20
- if (!args?.length) return false;
21
- const firstArgument = args[0];
22
- return !!firstArgument && getStaticStringValue(firstArgument) !== "" && !isUndefinedLiteral(firstArgument);
23
- }
24
- function isUndefinedLiteral(node) {
25
- return node.kind === SyntaxKind.Identifier && node.text === "undefined";
26
- }
27
- var errorMessages_default = ruleCreator.createRule(typescriptLanguage, {
28
- about: {
29
- description: "Requires a message value when creating a built-in error.",
30
- id: "errorMessages",
31
- presets: ["logicalStrict"]
32
- },
33
- messages: { missingMessage: {
34
- primary: "`{{ errorConstructor }}`s created without a message are generally harder to debug.",
35
- secondary: ["Error instances without messages are harder to debug because they don't explain what went wrong.", "A descriptive error message helps developers understand and fix issues more quickly."],
36
- suggestions: ["Provide a string message describing what caused the error."]
37
- } },
38
- setup(context) {
39
- function checkNode(node, { program, sourceFile, typeChecker }) {
40
- const errorConstructor = getErrorConstructorWithoutMessage(node, typeChecker, program);
41
- if (errorConstructor) context.report({
42
- data: { errorConstructor },
43
- message: "missingMessage",
44
- range: getTSNodeRange(node.expression, sourceFile)
45
- });
46
- }
47
- return { visitors: {
48
- CallExpression: checkNode,
49
- NewExpression: checkNode
50
- } };
51
- }
52
- });
53
- //#endregion
54
- export { errorMessages_default as default };
@@ -1,9 +0,0 @@
1
- declare const _default: import("@flint.fyi/core").Rule<{
2
- readonly description: "Reports incorrect Error subclass definitions that don't follow best practices.";
3
- readonly id: "errorSubclassProperties";
4
- readonly presets: readonly ["logicalStrict"];
5
- } & {
6
- readonly pluginId: string;
7
- readonly url: string;
8
- }, "invalidClassName" | "missingName" | "redundantMessage" | "useConstructorName" | "wrongName", undefined>;
9
- export default _default;
@@ -1,142 +0,0 @@
1
- import { ruleCreator } from "./ruleCreator.js";
2
- import { isErrorSubclass } from "./utils/isErrorSubclass.js";
3
- import { getTSNodeRange, typescriptLanguage } from "@flint.fyi/typescript-language";
4
- import ts, { SyntaxKind } from "typescript";
5
- //#region src/rules/errorSubclassProperties.ts
6
- function analyzeConstructor(node) {
7
- let constructor;
8
- for (const member of node.members) if (ts.isConstructorDeclaration(member) && member.body) {
9
- constructor = member;
10
- break;
11
- }
12
- if (!constructor) return;
13
- let hasSuperCall = false;
14
- let superCallPassesMessage = false;
15
- let hasNameAssignment = false;
16
- let nameValue;
17
- let hasRedundantMessageAssignment = false;
18
- let superCallNode;
19
- let nameAssignmentNode;
20
- let messageAssignmentNode;
21
- const body = constructor.body;
22
- if (!body) return;
23
- for (const statement of body.statements) {
24
- if (!ts.isExpressionStatement(statement)) continue;
25
- if (ts.isCallExpression(statement.expression) && statement.expression.expression.kind === SyntaxKind.SuperKeyword) {
26
- hasSuperCall = true;
27
- superCallNode = statement.expression;
28
- superCallPassesMessage = !!statement.expression.arguments.length;
29
- }
30
- if (ts.isBinaryExpression(statement.expression) && statement.expression.operatorToken.kind === SyntaxKind.EqualsToken && ts.isPropertyAccessExpression(statement.expression.left) && statement.expression.left.expression.kind === SyntaxKind.ThisKeyword) {
31
- const propName = statement.expression.left.name.text;
32
- if (propName === "name") {
33
- hasNameAssignment = true;
34
- nameAssignmentNode = statement.expression;
35
- if (ts.isStringLiteral(statement.expression.right)) nameValue = statement.expression.right.text;
36
- else if (ts.isPropertyAccessExpression(statement.expression.right) && ts.isPropertyAccessExpression(statement.expression.right.expression) && statement.expression.right.expression.expression.kind === SyntaxKind.ThisKeyword && statement.expression.right.expression.name.text === "constructor" && statement.expression.right.name.text === "name") nameValue = "this.constructor.name";
37
- }
38
- if (propName === "message" && hasSuperCall && superCallPassesMessage) {
39
- hasRedundantMessageAssignment = true;
40
- messageAssignmentNode = statement.expression;
41
- }
42
- }
43
- }
44
- return {
45
- constructor,
46
- hasNameAssignment,
47
- hasRedundantMessageAssignment,
48
- hasSuperCall,
49
- messageAssignmentNode,
50
- nameAssignmentNode,
51
- nameValue,
52
- superCallNode,
53
- superCallPassesMessage
54
- };
55
- }
56
- function isValidErrorClassName(name) {
57
- return !!name && /^[A-Z]/.test(name) && name.endsWith("Error");
58
- }
59
- var errorSubclassProperties_default = ruleCreator.createRule(typescriptLanguage, {
60
- about: {
61
- description: "Reports incorrect Error subclass definitions that don't follow best practices.",
62
- id: "errorSubclassProperties",
63
- presets: ["logicalStrict"]
64
- },
65
- messages: {
66
- invalidClassName: {
67
- primary: "Error subclass name '{{ name }}' should start with an uppercase letter and end with 'Error'.",
68
- secondary: ["Error class names should follow the convention of being capitalized and ending with 'Error'.", "This makes it clear that the class is an error type."],
69
- suggestions: ["Rename the class to end with 'Error', e.g., '{{ suggested }}'."]
70
- },
71
- missingName: {
72
- primary: "Error subclass is missing a `this.name` assignment in the constructor.",
73
- secondary: ["Without a `name` property, errors will display as `[Error: ...]` instead of `[ClassName: ...]`.", "Setting `this.name` helps identify the error type when debugging."],
74
- suggestions: ["Add `this.name = 'ClassName';` to the constructor."]
75
- },
76
- redundantMessage: {
77
- primary: "Assignment to `this.message` is redundant when the message is already passed to `super()`.",
78
- secondary: ["The `super()` call automatically sets the `message` property.", "Assigning it again is unnecessary."],
79
- suggestions: ["Remove the redundant `this.message` assignment."]
80
- },
81
- useConstructorName: {
82
- primary: "Avoid using `this.constructor.name` for the error name.",
83
- secondary: ["Using `this.constructor.name` will not work correctly after minification.", "Use a string literal instead to ensure the error name is preserved."],
84
- suggestions: ["Use a string literal like `this.name = '{{ className }}';`."]
85
- },
86
- wrongName: {
87
- primary: "Error subclass name property '{{ nameValue }}' should match the class name '{{ className }}'.",
88
- secondary: ["The `name` property should match the class name for consistency.", "Mismatched names can cause confusion when debugging."],
89
- suggestions: ["Change the name assignment to `this.name = '{{ className }}';`."]
90
- }
91
- },
92
- setup(context) {
93
- return { visitors: { ClassDeclaration: (node, { program, sourceFile, typeChecker }) => {
94
- if (!isErrorSubclass(node, typeChecker, program)) return;
95
- const className = node.name?.text;
96
- if (!isValidErrorClassName(className)) {
97
- const baseName = className ?? "Custom";
98
- const suggested = baseName.endsWith("Error") ? baseName : `${baseName}Error`;
99
- context.report({
100
- data: {
101
- name: className ?? "(anonymous)",
102
- suggested
103
- },
104
- message: "invalidClassName",
105
- range: getTSNodeRange(node.name ?? node, sourceFile)
106
- });
107
- return;
108
- }
109
- const constructorInfo = analyzeConstructor(node);
110
- if (!constructorInfo) return;
111
- if (constructorInfo.hasRedundantMessageAssignment && constructorInfo.messageAssignmentNode) context.report({
112
- message: "redundantMessage",
113
- range: getTSNodeRange(constructorInfo.messageAssignmentNode, sourceFile)
114
- });
115
- if (!constructorInfo.hasNameAssignment) {
116
- context.report({
117
- message: "missingName",
118
- range: getTSNodeRange(constructorInfo.constructor, sourceFile)
119
- });
120
- return;
121
- }
122
- if (constructorInfo.nameValue === "this.constructor.name" && constructorInfo.nameAssignmentNode) {
123
- context.report({
124
- data: { className },
125
- message: "useConstructorName",
126
- range: getTSNodeRange(constructorInfo.nameAssignmentNode, sourceFile)
127
- });
128
- return;
129
- }
130
- if (constructorInfo.nameValue && constructorInfo.nameValue !== className && constructorInfo.nameAssignmentNode) context.report({
131
- data: {
132
- className,
133
- nameValue: constructorInfo.nameValue
134
- },
135
- message: "wrongName",
136
- range: getTSNodeRange(constructorInfo.nameAssignmentNode, sourceFile)
137
- });
138
- } } };
139
- }
140
- });
141
- //#endregion
142
- export { errorSubclassProperties_default as default };
@@ -1,9 +0,0 @@
1
- declare const _default: import("@flint.fyi/core").Rule<{
2
- readonly description: "Reports unnecessary Error.captureStackTrace() calls in Error subclass constructors.";
3
- readonly id: "errorUnnecessaryCaptureStackTraces";
4
- readonly presets: readonly ["logical", "logicalStrict"];
5
- } & {
6
- readonly pluginId: string;
7
- readonly url: string;
8
- }, "unnecessaryCaptureStackTrace", undefined>;
9
- export default _default;
@@ -1,53 +0,0 @@
1
- import { ruleCreator } from "./ruleCreator.js";
2
- import { isErrorSubclass } from "./utils/isErrorSubclass.js";
3
- import { getTSNodeRange, typescriptLanguage } from "@flint.fyi/typescript-language";
4
- import ts, { SyntaxKind } from "typescript";
5
- //#region src/rules/errorUnnecessaryCaptureStackTraces.ts
6
- function isCaptureStackTraceCall(node) {
7
- if (!ts.isCallExpression(node) && !ts.isOptionalChain(node)) return false;
8
- const callExpression = ts.isCallExpression(node) ? node : void 0;
9
- if (!callExpression) return ts.isCallExpression(node) && isCaptureStackTraceCall(node);
10
- return ts.isPropertyAccessExpression(callExpression.expression) && ts.isIdentifier(callExpression.expression.expression) && callExpression.expression.expression.text === "Error" && ts.isIdentifier(callExpression.expression.name) && callExpression.expression.name.text === "captureStackTrace";
11
- }
12
- function isValidSecondArgument(node, className) {
13
- if (ts.isIdentifier(node)) return node.text === className;
14
- if (ts.isPropertyAccessExpression(node) && node.expression.kind === SyntaxKind.ThisKeyword && ts.isIdentifier(node.name) && node.name.text === "constructor") return true;
15
- if (ts.isMetaProperty(node) && node.keywordToken === SyntaxKind.NewKeyword && ts.isIdentifier(node.name) && node.name.text === "target") return true;
16
- return false;
17
- }
18
- var errorUnnecessaryCaptureStackTraces_default = ruleCreator.createRule(typescriptLanguage, {
19
- about: {
20
- description: "Reports unnecessary Error.captureStackTrace() calls in Error subclass constructors.",
21
- id: "errorUnnecessaryCaptureStackTraces",
22
- presets: ["logical", "logicalStrict"]
23
- },
24
- messages: { unnecessaryCaptureStackTrace: {
25
- primary: "Calling `Error.captureStackTrace()` is unnecessary in built-in Error subclass constructors.",
26
- secondary: ["The `Error` constructor automatically calls `Error.captureStackTrace()` when extending built-in Error types.", "Calling it again is redundant and adds unnecessary code."],
27
- suggestions: ["Remove the `Error.captureStackTrace()` call."]
28
- } },
29
- setup(context) {
30
- return { visitors: { ClassDeclaration: (node, { program, sourceFile, typeChecker }) => {
31
- if (!isErrorSubclass(node, typeChecker, program)) return;
32
- for (const member of node.members) {
33
- if (!ts.isConstructorDeclaration(member) || !member.body) continue;
34
- for (const statement of member.body.statements) {
35
- if (!ts.isExpressionStatement(statement) || !(ts.isCallExpression(statement.expression) || ts.isCallChain(statement.expression)) || !isCaptureStackTraceCall(statement.expression)) continue;
36
- const args = statement.expression.arguments;
37
- if (args.length < 1) continue;
38
- if (args[0].kind !== SyntaxKind.ThisKeyword) continue;
39
- if (args.length >= 2) {
40
- const secondArgument = args[1];
41
- if (!isValidSecondArgument(secondArgument, node.name?.text)) continue;
42
- }
43
- context.report({
44
- message: "unnecessaryCaptureStackTrace",
45
- range: getTSNodeRange(statement, sourceFile)
46
- });
47
- }
48
- }
49
- } } };
50
- }
51
- });
52
- //#endregion
53
- export { errorUnnecessaryCaptureStackTraces_default as default };
@@ -1,9 +0,0 @@
1
- declare const _default: import("@flint.fyi/core").Rule<{
2
- readonly description: "Reports escape sequences with lowercase hexadecimal characters.";
3
- readonly id: "escapeSequenceCasing";
4
- readonly presets: readonly ["stylisticStrict"];
5
- } & {
6
- readonly pluginId: string;
7
- readonly url: string;
8
- }, "useUppercase", undefined>;
9
- export default _default;
@@ -1,73 +0,0 @@
1
- import { ruleCreator } from "./ruleCreator.js";
2
- import { typescriptLanguage } from "@flint.fyi/typescript-language";
3
- //#region src/rules/escapeSequenceCasing.ts
4
- const escapeCase = /(?<=(?:^|[^\\])(?:\\\\)*\\)(?:x[\dA-Fa-f]{2}|u[\dA-Fa-f]{4}|u\{[\dA-Fa-f]+\}|c[a-z])/g;
5
- function findLowercaseEscapeSequence(text) {
6
- for (const pattern of [
7
- /\\x([0-9a-f]{2})/g,
8
- /\\u([0-9a-f]{4})/g,
9
- /\\u\{([0-9a-f]+)\}/g,
10
- /\\c([a-z])/g
11
- ]) {
12
- let match;
13
- while ((match = pattern.exec(text)) !== null) {
14
- const hexPart = match[1];
15
- if (hexPart && hexPart !== hexPart.toUpperCase()) {
16
- const original = match[0];
17
- return {
18
- fixed: original.replace(escapeCase, (data) => data[0] + data.slice(1).toUpperCase()),
19
- index: match.index,
20
- length: original.length,
21
- original
22
- };
23
- }
24
- }
25
- }
26
- }
27
- var escapeSequenceCasing_default = ruleCreator.createRule(typescriptLanguage, {
28
- about: {
29
- description: "Reports escape sequences with lowercase hexadecimal characters.",
30
- id: "escapeSequenceCasing",
31
- presets: ["stylisticStrict"]
32
- },
33
- messages: { useUppercase: {
34
- primary: "Prefer uppercase characters for escape sequence '{{ original }}'.",
35
- secondary: ["Uppercase hexadecimal characters in escape sequences are more readable and distinguishable from identifiers."],
36
- suggestions: ["Change '{{ original }}' to '{{ fixed }}'."]
37
- } },
38
- setup(context) {
39
- function checkNode(node, { sourceFile }) {
40
- const escapeInfo = findLowercaseEscapeSequence(node.getText(sourceFile));
41
- if (!escapeInfo) return;
42
- const nodeStart = node.getStart(sourceFile);
43
- context.report({
44
- data: {
45
- fixed: escapeInfo.fixed,
46
- original: escapeInfo.original
47
- },
48
- fix: {
49
- range: {
50
- begin: nodeStart + escapeInfo.index,
51
- end: nodeStart + escapeInfo.index + escapeInfo.length
52
- },
53
- text: escapeInfo.fixed
54
- },
55
- message: "useUppercase",
56
- range: {
57
- begin: nodeStart + escapeInfo.index,
58
- end: nodeStart + escapeInfo.index + escapeInfo.length
59
- }
60
- });
61
- }
62
- return { visitors: {
63
- NoSubstitutionTemplateLiteral: checkNode,
64
- StringLiteral: checkNode,
65
- TemplateExpression: (node, services) => {
66
- checkNode(node.head, services);
67
- for (const span of node.templateSpans) checkNode(span.literal, services);
68
- }
69
- } };
70
- }
71
- });
72
- //#endregion
73
- export { escapeSequenceCasing_default as default };
@@ -1,9 +0,0 @@
1
- declare const _default: import("@flint.fyi/core").Rule<{
2
- readonly description: "Reports uses of the eval function.";
3
- readonly id: "evals";
4
- readonly presets: readonly ["logical", "logicalStrict"];
5
- } & {
6
- readonly pluginId: string;
7
- readonly url: string;
8
- }, "noEval", undefined>;
9
- export default _default;
@@ -1,29 +0,0 @@
1
- import { ruleCreator } from "./ruleCreator.js";
2
- import { getTSNodeRange, isGlobalDeclarationOfName, typescriptLanguage } from "@flint.fyi/typescript-language";
3
- //#region src/rules/evals.ts
4
- var evals_default = ruleCreator.createRule(typescriptLanguage, {
5
- about: {
6
- description: "Reports uses of the eval function.",
7
- id: "evals",
8
- presets: ["logical", "logicalStrict"]
9
- },
10
- messages: { noEval: {
11
- primary: "Avoid using `eval()` as it poses security and performance risks.",
12
- secondary: [
13
- "`eval()` executes arbitrary code, which can be exploited for code injection attacks.",
14
- "It prevents JavaScript engine optimizations, making code run slower.",
15
- "It makes code harder to debug and reason about."
16
- ],
17
- suggestions: ["Use safer alternatives like `JSON.parse()` for parsing JSON data.", "Use `Function` constructor if dynamic code execution is truly necessary (though still risky)."]
18
- } },
19
- setup(context) {
20
- return { visitors: { CallExpression: (node, { program, sourceFile, typeChecker }) => {
21
- if (isGlobalDeclarationOfName(node.expression, "eval", typeChecker, program)) context.report({
22
- message: "noEval",
23
- range: getTSNodeRange(node.expression, sourceFile)
24
- });
25
- } } };
26
- }
27
- });
28
- //#endregion
29
- export { evals_default as default };
@@ -1,9 +0,0 @@
1
- declare const _default: import("@flint.fyi/core").Rule<{
2
- readonly description: "Reports variables declared without type annotation or initializer.";
3
- readonly id: "evolvingVariableTypes";
4
- readonly presets: readonly ["stylisticStrict"];
5
- } & {
6
- readonly pluginId: string;
7
- readonly url: string;
8
- }, "implicitAny", undefined>;
9
- export default _default;
@@ -1,31 +0,0 @@
1
- import { ruleCreator } from "./ruleCreator.js";
2
- import { typescriptLanguage } from "@flint.fyi/typescript-language";
3
- import ts, { SyntaxKind } from "typescript";
4
- //#region src/rules/evolvingVariableTypes.ts
5
- var evolvingVariableTypes_default = ruleCreator.createRule(typescriptLanguage, {
6
- about: {
7
- description: "Reports variables declared without type annotation or initializer.",
8
- id: "evolvingVariableTypes",
9
- presets: ["stylisticStrict"]
10
- },
11
- messages: { implicitAny: {
12
- primary: "Variable '{{ name }}' has an implicit evolving 'any' type due to missing type annotation and initializer.",
13
- secondary: ["Variables declared without a type annotation or initial value implicitly have the 'any' type.", "This allows any type of value to be assigned to the variable, which can make it harder to catch type-related bugs at compile time."],
14
- suggestions: ["Add a type annotation to the variable declaration.", "Initialize the variable with a value so TypeScript can infer its type."]
15
- } },
16
- setup(context) {
17
- return { visitors: { VariableDeclaration: (node, { sourceFile }) => {
18
- if (sourceFile.isDeclarationFile || node.initializer !== void 0 || node.type !== void 0 || node.name.kind !== SyntaxKind.Identifier || node.parent.kind === SyntaxKind.CatchClause || node.parent.flags & ts.NodeFlags.Const || node.parent.parent.kind === SyntaxKind.ForInStatement || node.parent.parent.kind === SyntaxKind.ForOfStatement) return;
19
- context.report({
20
- data: { name: node.name.text },
21
- message: "implicitAny",
22
- range: {
23
- begin: node.name.getStart(sourceFile),
24
- end: node.name.getEnd()
25
- }
26
- });
27
- } } };
28
- }
29
- });
30
- //#endregion
31
- export { evolvingVariableTypes_default as default };
@@ -1,9 +0,0 @@
1
- declare const _default: import("@flint.fyi/core").Rule<{
2
- readonly description: "Reports reassigning exception parameters in catch clauses.";
3
- readonly id: "exceptionAssignments";
4
- readonly presets: readonly ["logical", "logicalStrict"];
5
- } & {
6
- readonly pluginId: string;
7
- readonly url: string;
8
- }, "noExAssign", undefined>;
9
- export default _default;