@flint.fyi/ts 0.19.1 → 0.21.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 (665) hide show
  1. package/lib/plugin.d.ts +371 -346
  2. package/lib/plugin.js +4 -2
  3. package/lib/rules/accessorPairGroups.d.ts +0 -1
  4. package/lib/rules/accessorPairGroups.js +0 -2
  5. package/lib/rules/accessorPairTypes.d.ts +0 -1
  6. package/lib/rules/accessorPairTypes.js +0 -2
  7. package/lib/rules/accessorThisRecursion.d.ts +0 -1
  8. package/lib/rules/accessorThisRecursion.js +0 -2
  9. package/lib/rules/anyArguments.d.ts +0 -1
  10. package/lib/rules/anyArguments.js +0 -2
  11. package/lib/rules/anyAssignments.d.ts +0 -1
  12. package/lib/rules/anyAssignments.js +0 -2
  13. package/lib/rules/anyCalls.d.ts +0 -1
  14. package/lib/rules/anyCalls.js +0 -2
  15. package/lib/rules/anyMemberAccess.d.ts +0 -1
  16. package/lib/rules/anyMemberAccess.js +0 -2
  17. package/lib/rules/anyReturns.d.ts +0 -1
  18. package/lib/rules/anyReturns.js +0 -2
  19. package/lib/rules/arguments.d.ts +0 -1
  20. package/lib/rules/arguments.js +0 -2
  21. package/lib/rules/arrayCallbackReturns.d.ts +0 -1
  22. package/lib/rules/arrayCallbackReturns.js +1 -3
  23. package/lib/rules/arrayConstructors.d.ts +0 -1
  24. package/lib/rules/arrayConstructors.js +2 -4
  25. package/lib/rules/arrayDeleteUnnecessaryCounts.d.ts +0 -1
  26. package/lib/rules/arrayDeleteUnnecessaryCounts.js +0 -2
  27. package/lib/rules/arrayElementDeletions.d.ts +0 -1
  28. package/lib/rules/arrayElementDeletions.js +0 -2
  29. package/lib/rules/arrayEmptyCallbackSlots.d.ts +0 -1
  30. package/lib/rules/arrayEmptyCallbackSlots.js +4 -11
  31. package/lib/rules/arrayExistenceChecksConsistency.d.ts +0 -1
  32. package/lib/rules/arrayExistenceChecksConsistency.js +1 -3
  33. package/lib/rules/arrayFilteredFinds.d.ts +0 -1
  34. package/lib/rules/arrayFilteredFinds.js +4 -12
  35. package/lib/rules/arrayFinds.d.ts +0 -1
  36. package/lib/rules/arrayFinds.js +0 -2
  37. package/lib/rules/arrayFlatMapMethods.d.ts +0 -1
  38. package/lib/rules/arrayFlatMapMethods.js +2 -4
  39. package/lib/rules/arrayFlatMethods.d.ts +0 -1
  40. package/lib/rules/arrayFlatMethods.js +0 -2
  41. package/lib/rules/arrayFlatUnnecessaryDepths.d.ts +0 -1
  42. package/lib/rules/arrayFlatUnnecessaryDepths.js +2 -4
  43. package/lib/rules/arrayIncludes.d.ts +0 -1
  44. package/lib/rules/arrayIncludes.js +3 -11
  45. package/lib/rules/arrayIncludesMethods.d.ts +0 -1
  46. package/lib/rules/arrayIncludesMethods.js +0 -2
  47. package/lib/rules/arrayIndexOfMethods.d.ts +0 -1
  48. package/lib/rules/arrayIndexOfMethods.js +0 -2
  49. package/lib/rules/arrayLoops.d.ts +0 -1
  50. package/lib/rules/arrayLoops.js +0 -2
  51. package/lib/rules/arrayMapIdentities.d.ts +0 -1
  52. package/lib/rules/arrayMapIdentities.js +0 -2
  53. package/lib/rules/arrayMutableReverses.d.ts +0 -1
  54. package/lib/rules/arrayMutableReverses.js +0 -2
  55. package/lib/rules/arrayMutableSorts.d.ts +0 -1
  56. package/lib/rules/arrayMutableSorts.js +2 -4
  57. package/lib/rules/arrayReduceTypeArguments.d.ts +0 -1
  58. package/lib/rules/arrayReduceTypeArguments.js +0 -2
  59. package/lib/rules/arraySliceUnnecessaryEnd.d.ts +0 -1
  60. package/lib/rules/arraySliceUnnecessaryEnd.js +0 -2
  61. package/lib/rules/arraySomeMethods.d.ts +0 -1
  62. package/lib/rules/arraySomeMethods.js +0 -2
  63. package/lib/rules/arrayTernarySpreadingConsistency.d.ts +0 -1
  64. package/lib/rules/arrayTernarySpreadingConsistency.js +0 -2
  65. package/lib/rules/arrayTypes.d.ts +0 -1
  66. package/lib/rules/arrayTypes.js +4 -6
  67. package/lib/rules/arrayUnnecessaryLengthChecks.d.ts +0 -1
  68. package/lib/rules/arrayUnnecessaryLengthChecks.js +0 -2
  69. package/lib/rules/asConstAssertions.d.ts +0 -1
  70. package/lib/rules/asConstAssertions.js +0 -2
  71. package/lib/rules/assignmentOperatorShorthands.d.ts +0 -1
  72. package/lib/rules/assignmentOperatorShorthands.js +0 -2
  73. package/lib/rules/asyncFunctionAwaits.d.ts +9 -0
  74. package/lib/rules/asyncFunctionAwaits.js +53 -0
  75. package/lib/rules/asyncPromiseExecutors.d.ts +0 -1
  76. package/lib/rules/asyncPromiseExecutors.js +2 -4
  77. package/lib/rules/asyncUnnecessaryPromiseWrappers.d.ts +0 -1
  78. package/lib/rules/asyncUnnecessaryPromiseWrappers.js +0 -2
  79. package/lib/rules/atAccesses.d.ts +0 -1
  80. package/lib/rules/atAccesses.js +0 -2
  81. package/lib/rules/builtinCoercions.d.ts +0 -1
  82. package/lib/rules/builtinCoercions.js +2 -4
  83. package/lib/rules/builtinConstructorNews.d.ts +0 -1
  84. package/lib/rules/builtinConstructorNews.js +4 -6
  85. package/lib/rules/caseDeclarations.d.ts +0 -1
  86. package/lib/rules/caseDeclarations.js +0 -2
  87. package/lib/rules/caseDuplicates.d.ts +0 -1
  88. package/lib/rules/caseDuplicates.js +0 -2
  89. package/lib/rules/caseFallthroughs.d.ts +0 -1
  90. package/lib/rules/caseFallthroughs.js +0 -2
  91. package/lib/rules/catchCallbackTypes.d.ts +0 -1
  92. package/lib/rules/catchCallbackTypes.js +10 -12
  93. package/lib/rules/caughtVariableNames.d.ts +0 -1
  94. package/lib/rules/caughtVariableNames.js +0 -2
  95. package/lib/rules/chainedAssignments.d.ts +0 -1
  96. package/lib/rules/chainedAssignments.js +0 -2
  97. package/lib/rules/charAtComparisons.d.ts +0 -1
  98. package/lib/rules/charAtComparisons.js +5 -10
  99. package/lib/rules/classAssignments.d.ts +0 -1
  100. package/lib/rules/classAssignments.js +4 -9
  101. package/lib/rules/classFieldDeclarations.d.ts +0 -1
  102. package/lib/rules/classFieldDeclarations.js +0 -2
  103. package/lib/rules/classLiteralProperties.d.ts +0 -1
  104. package/lib/rules/classLiteralProperties.js +0 -2
  105. package/lib/rules/classMemberDuplicates.d.ts +0 -1
  106. package/lib/rules/classMemberDuplicates.js +0 -2
  107. package/lib/rules/classMethodsThis.d.ts +0 -1
  108. package/lib/rules/classMethodsThis.js +3 -5
  109. package/lib/rules/combinedPushes.d.ts +0 -1
  110. package/lib/rules/combinedPushes.js +0 -2
  111. package/lib/rules/consecutiveNonNullAssertions.d.ts +0 -1
  112. package/lib/rules/consecutiveNonNullAssertions.js +0 -2
  113. package/lib/rules/consoleCalls.d.ts +0 -1
  114. package/lib/rules/consoleCalls.js +2 -4
  115. package/lib/rules/constantAssignments.d.ts +0 -1
  116. package/lib/rules/constantAssignments.js +4 -9
  117. package/lib/rules/constructorGenericCalls.d.ts +0 -1
  118. package/lib/rules/constructorGenericCalls.js +3 -5
  119. package/lib/rules/constructorReturns.d.ts +0 -1
  120. package/lib/rules/constructorReturns.js +0 -2
  121. package/lib/rules/constructorSupers.d.ts +0 -1
  122. package/lib/rules/constructorSupers.js +0 -2
  123. package/lib/rules/dateConstructorClones.d.ts +0 -1
  124. package/lib/rules/dateConstructorClones.js +2 -4
  125. package/lib/rules/dateNowTimestamps.d.ts +0 -1
  126. package/lib/rules/dateNowTimestamps.js +7 -9
  127. package/lib/rules/debuggerStatements.d.ts +0 -1
  128. package/lib/rules/debuggerStatements.js +0 -2
  129. package/lib/rules/defaultCaseLast.d.ts +0 -1
  130. package/lib/rules/defaultCaseLast.js +0 -2
  131. package/lib/rules/defaultParameterLast.d.ts +0 -1
  132. package/lib/rules/defaultParameterLast.js +0 -2
  133. package/lib/rules/deprecated.d.ts +0 -1
  134. package/lib/rules/deprecated.js +0 -2
  135. package/lib/rules/destructuringConsistency.d.ts +0 -1
  136. package/lib/rules/destructuringConsistency.js +27 -35
  137. package/lib/rules/duplicateArguments.d.ts +0 -1
  138. package/lib/rules/duplicateArguments.js +0 -2
  139. package/lib/rules/dynamicDeletes.d.ts +0 -1
  140. package/lib/rules/dynamicDeletes.js +0 -2
  141. package/lib/rules/elseIfDuplicates.d.ts +0 -1
  142. package/lib/rules/elseIfDuplicates.js +0 -2
  143. package/lib/rules/elseReturns.d.ts +0 -1
  144. package/lib/rules/elseReturns.js +0 -2
  145. package/lib/rules/emptyBlocks.d.ts +0 -1
  146. package/lib/rules/emptyBlocks.js +1 -3
  147. package/lib/rules/emptyDestructures.d.ts +0 -1
  148. package/lib/rules/emptyDestructures.js +0 -2
  149. package/lib/rules/emptyEnums.d.ts +0 -1
  150. package/lib/rules/emptyEnums.js +0 -2
  151. package/lib/rules/emptyExports.d.ts +0 -1
  152. package/lib/rules/emptyExports.js +1 -3
  153. package/lib/rules/emptyFiles.d.ts +0 -1
  154. package/lib/rules/emptyFiles.js +0 -2
  155. package/lib/rules/emptyFunctions.d.ts +0 -1
  156. package/lib/rules/emptyFunctions.js +0 -2
  157. package/lib/rules/emptyModuleAttributes.d.ts +0 -1
  158. package/lib/rules/emptyModuleAttributes.js +0 -2
  159. package/lib/rules/emptyObjectTypes.d.ts +0 -1
  160. package/lib/rules/emptyObjectTypes.js +0 -2
  161. package/lib/rules/emptyStaticBlocks.d.ts +0 -1
  162. package/lib/rules/emptyStaticBlocks.js +0 -2
  163. package/lib/rules/emptyTypeParameterLists.d.ts +0 -1
  164. package/lib/rules/emptyTypeParameterLists.js +0 -2
  165. package/lib/rules/enumInitializers.d.ts +0 -1
  166. package/lib/rules/enumInitializers.js +0 -2
  167. package/lib/rules/enumMemberLiterals.d.ts +0 -1
  168. package/lib/rules/enumMemberLiterals.js +2 -4
  169. package/lib/rules/enumValueConsistency.d.ts +0 -1
  170. package/lib/rules/enumValueConsistency.js +0 -2
  171. package/lib/rules/enumValueDuplicates.d.ts +0 -1
  172. package/lib/rules/enumValueDuplicates.js +3 -20
  173. package/lib/rules/equalityOperatorNegations.d.ts +0 -1
  174. package/lib/rules/equalityOperatorNegations.js +3 -5
  175. package/lib/rules/equalityOperators.d.ts +0 -1
  176. package/lib/rules/equalityOperators.js +0 -2
  177. package/lib/rules/errorMessages.d.ts +0 -1
  178. package/lib/rules/errorMessages.js +6 -12
  179. package/lib/rules/errorSubclassProperties.d.ts +0 -1
  180. package/lib/rules/errorSubclassProperties.js +2 -4
  181. package/lib/rules/errorUnnecessaryCaptureStackTraces.d.ts +0 -1
  182. package/lib/rules/errorUnnecessaryCaptureStackTraces.js +2 -4
  183. package/lib/rules/escapeSequenceCasing.d.ts +0 -1
  184. package/lib/rules/escapeSequenceCasing.js +0 -2
  185. package/lib/rules/evals.d.ts +0 -1
  186. package/lib/rules/evals.js +2 -4
  187. package/lib/rules/evolvingVariableTypes.d.ts +0 -1
  188. package/lib/rules/evolvingVariableTypes.js +0 -2
  189. package/lib/rules/exceptionAssignments.d.ts +0 -1
  190. package/lib/rules/exceptionAssignments.js +4 -9
  191. package/lib/rules/explicitAnys.d.ts +0 -1
  192. package/lib/rules/explicitAnys.js +0 -2
  193. package/lib/rules/exponentiationOperators.d.ts +0 -1
  194. package/lib/rules/exponentiationOperators.js +2 -4
  195. package/lib/rules/exportFromImports.d.ts +0 -1
  196. package/lib/rules/exportFromImports.js +2 -4
  197. package/lib/rules/exportMutables.d.ts +0 -1
  198. package/lib/rules/exportMutables.js +0 -2
  199. package/lib/rules/exportUniqueNames.d.ts +0 -1
  200. package/lib/rules/exportUniqueNames.js +0 -2
  201. package/lib/rules/extraneousClasses.d.ts +0 -1
  202. package/lib/rules/extraneousClasses.js +5 -7
  203. package/lib/rules/fetchMethodBodies.d.ts +0 -1
  204. package/lib/rules/fetchMethodBodies.js +0 -2
  205. package/lib/rules/finallyStatementSafety.d.ts +0 -1
  206. package/lib/rules/finallyStatementSafety.js +0 -2
  207. package/lib/rules/forDirections.d.ts +0 -1
  208. package/lib/rules/forDirections.js +0 -2
  209. package/lib/rules/forInArrays.d.ts +0 -1
  210. package/lib/rules/forInArrays.js +0 -2
  211. package/lib/rules/forInGuards.d.ts +0 -1
  212. package/lib/rules/forInGuards.js +0 -2
  213. package/lib/rules/functionApplySpreads.d.ts +0 -1
  214. package/lib/rules/functionApplySpreads.js +0 -2
  215. package/lib/rules/functionAssignments.d.ts +0 -1
  216. package/lib/rules/functionAssignments.js +4 -9
  217. package/lib/rules/functionCurryingRedundancy.d.ts +0 -1
  218. package/lib/rules/functionCurryingRedundancy.js +0 -2
  219. package/lib/rules/functionDeclarationStyles.d.ts +0 -1
  220. package/lib/rules/functionDeclarationStyles.js +3 -5
  221. package/lib/rules/functionNameMatches.d.ts +0 -1
  222. package/lib/rules/functionNameMatches.js +0 -2
  223. package/lib/rules/functionNewCalls.d.ts +0 -1
  224. package/lib/rules/functionNewCalls.js +5 -7
  225. package/lib/rules/generatorFunctionYields.d.ts +0 -1
  226. package/lib/rules/generatorFunctionYields.js +0 -2
  227. package/lib/rules/getterReturns.d.ts +0 -1
  228. package/lib/rules/getterReturns.js +0 -2
  229. package/lib/rules/globalAssignments.d.ts +0 -1
  230. package/lib/rules/globalAssignments.js +6 -8
  231. package/lib/rules/globalObjectCalls.d.ts +0 -1
  232. package/lib/rules/globalObjectCalls.js +1 -3
  233. package/lib/rules/globalThisAliases.d.ts +0 -1
  234. package/lib/rules/globalThisAliases.js +8 -10
  235. package/lib/rules/impliedEvals.d.ts +0 -1
  236. package/lib/rules/impliedEvals.js +26 -28
  237. package/lib/rules/importEmptyBlocks.d.ts +0 -1
  238. package/lib/rules/importEmptyBlocks.js +0 -2
  239. package/lib/rules/importTypeSideEffects.d.ts +0 -1
  240. package/lib/rules/importTypeSideEffects.js +0 -2
  241. package/lib/rules/indexedObjectTypes.d.ts +0 -1
  242. package/lib/rules/indexedObjectTypes.js +4 -6
  243. package/lib/rules/instanceOfArrays.d.ts +0 -1
  244. package/lib/rules/instanceOfArrays.js +2 -4
  245. package/lib/rules/irregularWhitespaces.d.ts +0 -1
  246. package/lib/rules/irregularWhitespaces.js +5 -7
  247. package/lib/rules/isNaNComparisons.d.ts +0 -1
  248. package/lib/rules/isNaNComparisons.js +5 -7
  249. package/lib/rules/literalConstructorWrappers.d.ts +0 -1
  250. package/lib/rules/literalConstructorWrappers.js +10 -12
  251. package/lib/rules/mathMethods.d.ts +0 -1
  252. package/lib/rules/mathMethods.js +14 -16
  253. package/lib/rules/meaninglessVoidOperators.d.ts +0 -1
  254. package/lib/rules/meaninglessVoidOperators.js +0 -2
  255. package/lib/rules/misleadingVoidExpressions.d.ts +0 -1
  256. package/lib/rules/misleadingVoidExpressions.js +0 -2
  257. package/lib/rules/moduleSpecifierLists.d.ts +0 -1
  258. package/lib/rules/moduleSpecifierLists.js +0 -2
  259. package/lib/rules/multilineAmbiguities.d.ts +0 -1
  260. package/lib/rules/multilineAmbiguities.js +0 -2
  261. package/lib/rules/namedDefaultExports.d.ts +0 -1
  262. package/lib/rules/namedDefaultExports.js +0 -2
  263. package/lib/rules/namespaceDeclarations.d.ts +0 -1
  264. package/lib/rules/namespaceDeclarations.js +3 -5
  265. package/lib/rules/namespaceImplicitAmbientImports.d.ts +0 -1
  266. package/lib/rules/namespaceImplicitAmbientImports.js +0 -2
  267. package/lib/rules/namespaceKeywords.d.ts +0 -1
  268. package/lib/rules/namespaceKeywords.js +0 -2
  269. package/lib/rules/nativeObjectExtensions.d.ts +0 -1
  270. package/lib/rules/nativeObjectExtensions.js +4 -6
  271. package/lib/rules/negativeIndexLengthMethods.d.ts +0 -1
  272. package/lib/rules/negativeIndexLengthMethods.js +7 -9
  273. package/lib/rules/negativeZeroComparisons.d.ts +0 -1
  274. package/lib/rules/negativeZeroComparisons.js +0 -2
  275. package/lib/rules/nestedStandaloneIfs.d.ts +0 -1
  276. package/lib/rules/nestedStandaloneIfs.js +1 -3
  277. package/lib/rules/newDefinitions.d.ts +0 -1
  278. package/lib/rules/newDefinitions.js +0 -2
  279. package/lib/rules/newExpressions.d.ts +0 -1
  280. package/lib/rules/newExpressions.js +0 -2
  281. package/lib/rules/newNativeNonConstructors.d.ts +0 -1
  282. package/lib/rules/newNativeNonConstructors.js +2 -4
  283. package/lib/rules/nonNullAssertedNullishCoalesces.d.ts +0 -1
  284. package/lib/rules/nonNullAssertedNullishCoalesces.js +0 -2
  285. package/lib/rules/nonNullAssertedOptionalChains.d.ts +0 -1
  286. package/lib/rules/nonNullAssertedOptionalChains.js +0 -2
  287. package/lib/rules/nonNullAssertionPlacement.d.ts +0 -1
  288. package/lib/rules/nonNullAssertionPlacement.js +1 -3
  289. package/lib/rules/nonNullableTypeAssertions.d.ts +0 -1
  290. package/lib/rules/nonNullableTypeAssertions.js +0 -2
  291. package/lib/rules/nonOctalDecimalEscapes.d.ts +0 -1
  292. package/lib/rules/nonOctalDecimalEscapes.js +0 -2
  293. package/lib/rules/nullishCheckStyle.d.ts +0 -1
  294. package/lib/rules/nullishCheckStyle.js +3 -5
  295. package/lib/rules/nullishCoalescingOperators.d.ts +0 -1
  296. package/lib/rules/nullishCoalescingOperators.js +29 -19
  297. package/lib/rules/numberMethodRanges.d.ts +0 -1
  298. package/lib/rules/numberMethodRanges.js +1 -3
  299. package/lib/rules/numberStaticMethods.d.ts +0 -1
  300. package/lib/rules/numberStaticMethods.js +3 -5
  301. package/lib/rules/numericErasingOperations.d.ts +0 -1
  302. package/lib/rules/numericErasingOperations.js +2 -4
  303. package/lib/rules/numericLiteralParsing.d.ts +0 -1
  304. package/lib/rules/numericLiteralParsing.js +11 -22
  305. package/lib/rules/numericPrecision.d.ts +0 -1
  306. package/lib/rules/numericPrecision.js +0 -2
  307. package/lib/rules/numericSeparatorGroups.d.ts +0 -1
  308. package/lib/rules/numericSeparatorGroups.js +0 -2
  309. package/lib/rules/objectAssignSpreads.d.ts +0 -1
  310. package/lib/rules/objectAssignSpreads.js +4 -6
  311. package/lib/rules/objectCalls.d.ts +0 -1
  312. package/lib/rules/objectCalls.js +2 -4
  313. package/lib/rules/objectEntriesMethods.d.ts +0 -1
  314. package/lib/rules/objectEntriesMethods.js +13 -15
  315. package/lib/rules/objectHasOwns.d.ts +0 -1
  316. package/lib/rules/objectHasOwns.js +7 -9
  317. package/lib/rules/objectKeyDuplicates.d.ts +0 -1
  318. package/lib/rules/objectKeyDuplicates.js +0 -2
  319. package/lib/rules/objectProto.d.ts +0 -1
  320. package/lib/rules/objectProto.js +0 -2
  321. package/lib/rules/objectPrototypeBuiltIns.d.ts +0 -1
  322. package/lib/rules/objectPrototypeBuiltIns.js +1 -3
  323. package/lib/rules/objectShorthand.d.ts +0 -1
  324. package/lib/rules/objectShorthand.js +0 -2
  325. package/lib/rules/objectSpreadUnnecessaryFallbacks.d.ts +0 -1
  326. package/lib/rules/objectSpreadUnnecessaryFallbacks.js +0 -2
  327. package/lib/rules/objectTypeDefinitions.d.ts +0 -1
  328. package/lib/rules/objectTypeDefinitions.js +0 -2
  329. package/lib/rules/octalEscapes.d.ts +0 -1
  330. package/lib/rules/octalEscapes.js +0 -2
  331. package/lib/rules/octalNumbers.d.ts +0 -1
  332. package/lib/rules/octalNumbers.js +0 -2
  333. package/lib/rules/operatorAssignmentShorthand.d.ts +0 -1
  334. package/lib/rules/operatorAssignmentShorthand.js +3 -5
  335. package/lib/rules/overloadSignaturesAdjacent.d.ts +0 -1
  336. package/lib/rules/overloadSignaturesAdjacent.js +0 -2
  337. package/lib/rules/parameterReassignments.d.ts +0 -1
  338. package/lib/rules/parameterReassignments.js +18 -51
  339. package/lib/rules/parseIntRadixes.d.ts +0 -1
  340. package/lib/rules/parseIntRadixes.js +10 -15
  341. package/lib/rules/propertyAccessNotation.d.ts +0 -1
  342. package/lib/rules/propertyAccessNotation.js +3 -5
  343. package/lib/rules/recursionOnlyArguments.d.ts +0 -1
  344. package/lib/rules/recursionOnlyArguments.js +8 -17
  345. package/lib/rules/redundantTypeConstituents.d.ts +0 -1
  346. package/lib/rules/redundantTypeConstituents.js +0 -2
  347. package/lib/rules/regexAllGlobalFlags.d.ts +0 -1
  348. package/lib/rules/regexAllGlobalFlags.js +0 -2
  349. package/lib/rules/regexAmbiguousInvalidity.d.ts +0 -1
  350. package/lib/rules/regexAmbiguousInvalidity.js +2 -4
  351. package/lib/rules/regexCharacterClassRanges.d.ts +0 -1
  352. package/lib/rules/regexCharacterClassRanges.js +0 -2
  353. package/lib/rules/regexCharacterClassSetOperations.d.ts +0 -1
  354. package/lib/rules/regexCharacterClassSetOperations.js +0 -2
  355. package/lib/rules/regexCharacterClasses.d.ts +0 -1
  356. package/lib/rules/regexCharacterClasses.js +1 -3
  357. package/lib/rules/regexConciseCharacterClassNegations.d.ts +0 -1
  358. package/lib/rules/regexConciseCharacterClassNegations.js +0 -2
  359. package/lib/rules/regexContradictoryAssertions.d.ts +0 -1
  360. package/lib/rules/regexContradictoryAssertions.js +0 -2
  361. package/lib/rules/regexControlCharacterEscapes.d.ts +0 -1
  362. package/lib/rules/regexControlCharacterEscapes.js +0 -2
  363. package/lib/rules/regexControlCharacters.d.ts +0 -1
  364. package/lib/rules/regexControlCharacters.js +0 -2
  365. package/lib/rules/regexDigitMatchers.d.ts +0 -1
  366. package/lib/rules/regexDigitMatchers.js +0 -2
  367. package/lib/rules/regexDollarEscapes.d.ts +0 -1
  368. package/lib/rules/regexDollarEscapes.js +0 -2
  369. package/lib/rules/regexDuplicateCharacterClassCharacters.d.ts +0 -1
  370. package/lib/rules/regexDuplicateCharacterClassCharacters.js +0 -2
  371. package/lib/rules/regexEmptyAlternatives.d.ts +0 -1
  372. package/lib/rules/regexEmptyAlternatives.js +0 -2
  373. package/lib/rules/regexEmptyCapturingGroups.d.ts +0 -1
  374. package/lib/rules/regexEmptyCapturingGroups.js +0 -2
  375. package/lib/rules/regexEmptyCharacterClasses.d.ts +0 -1
  376. package/lib/rules/regexEmptyCharacterClasses.js +0 -2
  377. package/lib/rules/regexEmptyGroups.d.ts +0 -1
  378. package/lib/rules/regexEmptyGroups.js +0 -2
  379. package/lib/rules/regexEmptyLazyQuantifiers.d.ts +0 -1
  380. package/lib/rules/regexEmptyLazyQuantifiers.js +0 -2
  381. package/lib/rules/regexEmptyLookaroundsAssertions.d.ts +0 -1
  382. package/lib/rules/regexEmptyLookaroundsAssertions.js +0 -2
  383. package/lib/rules/regexEmptyStringLiterals.d.ts +0 -1
  384. package/lib/rules/regexEmptyStringLiterals.js +0 -2
  385. package/lib/rules/regexEscapeBackspaces.d.ts +0 -1
  386. package/lib/rules/regexEscapeBackspaces.js +0 -2
  387. package/lib/rules/regexExecutors.d.ts +0 -1
  388. package/lib/rules/regexExecutors.js +2 -4
  389. package/lib/rules/regexGraphemeStringLiterals.d.ts +0 -1
  390. package/lib/rules/regexGraphemeStringLiterals.js +0 -2
  391. package/lib/rules/regexHexadecimalEscapes.d.ts +0 -1
  392. package/lib/rules/regexHexadecimalEscapes.js +0 -2
  393. package/lib/rules/regexIgnoreCaseFlags.d.ts +0 -1
  394. package/lib/rules/regexIgnoreCaseFlags.js +0 -2
  395. package/lib/rules/regexInvisibleCharacters.d.ts +0 -1
  396. package/lib/rules/regexInvisibleCharacters.js +0 -2
  397. package/lib/rules/regexLetterCasing.d.ts +0 -1
  398. package/lib/rules/regexLetterCasing.js +0 -2
  399. package/lib/rules/regexLiterals.d.ts +0 -1
  400. package/lib/rules/regexLiterals.js +4 -9
  401. package/lib/rules/regexLookaroundAssertions.d.ts +0 -1
  402. package/lib/rules/regexLookaroundAssertions.js +0 -2
  403. package/lib/rules/regexLookaroundQuantifierOptimizations.d.ts +0 -1
  404. package/lib/rules/regexLookaroundQuantifierOptimizations.js +0 -2
  405. package/lib/rules/regexMatchNotation.d.ts +0 -1
  406. package/lib/rules/regexMatchNotation.js +0 -2
  407. package/lib/rules/regexMisleadingCapturingGroups.d.ts +0 -1
  408. package/lib/rules/regexMisleadingCapturingGroups.js +0 -2
  409. package/lib/rules/regexMisleadingQuantifiers.d.ts +0 -1
  410. package/lib/rules/regexMisleadingQuantifiers.js +0 -2
  411. package/lib/rules/regexMisleadingUnicodeCharacters.d.ts +0 -1
  412. package/lib/rules/regexMisleadingUnicodeCharacters.js +0 -2
  413. package/lib/rules/regexNamedBackreferences.d.ts +0 -1
  414. package/lib/rules/regexNamedBackreferences.js +0 -2
  415. package/lib/rules/regexNamedCaptureGroups.d.ts +0 -1
  416. package/lib/rules/regexNamedCaptureGroups.js +0 -2
  417. package/lib/rules/regexNamedReplacements.d.ts +0 -1
  418. package/lib/rules/regexNamedReplacements.js +0 -2
  419. package/lib/rules/regexNonStandardFlags.d.ts +0 -1
  420. package/lib/rules/regexNonStandardFlags.js +1 -3
  421. package/lib/rules/regexObscureRanges.d.ts +0 -1
  422. package/lib/rules/regexObscureRanges.js +0 -2
  423. package/lib/rules/regexOctalEscapes.d.ts +0 -1
  424. package/lib/rules/regexOctalEscapes.js +0 -2
  425. package/lib/rules/regexPlusQuantifiers.d.ts +0 -1
  426. package/lib/rules/regexPlusQuantifiers.js +0 -2
  427. package/lib/rules/regexPredefinedAssertions.d.ts +0 -1
  428. package/lib/rules/regexPredefinedAssertions.js +0 -2
  429. package/lib/rules/regexQuestionQuantifiers.d.ts +0 -1
  430. package/lib/rules/regexQuestionQuantifiers.js +0 -2
  431. package/lib/rules/regexRepeatQuantifiers.d.ts +0 -1
  432. package/lib/rules/regexRepeatQuantifiers.js +0 -2
  433. package/lib/rules/regexResultArrayGroups.d.ts +0 -1
  434. package/lib/rules/regexResultArrayGroups.js +0 -2
  435. package/lib/rules/regexSetOperationOptimizations.d.ts +0 -1
  436. package/lib/rules/regexSetOperationOptimizations.js +0 -2
  437. package/lib/rules/regexStandaloneBackslashes.d.ts +0 -1
  438. package/lib/rules/regexStandaloneBackslashes.js +0 -2
  439. package/lib/rules/regexStarQuantifiers.d.ts +0 -1
  440. package/lib/rules/regexStarQuantifiers.js +0 -2
  441. package/lib/rules/regexSuperLinearBacktracking.d.ts +0 -1
  442. package/lib/rules/regexSuperLinearBacktracking.js +0 -2
  443. package/lib/rules/regexSuperLinearMoves.d.ts +0 -1
  444. package/lib/rules/regexSuperLinearMoves.js +0 -2
  445. package/lib/rules/regexTestMethods.d.ts +0 -1
  446. package/lib/rules/regexTestMethods.js +0 -2
  447. package/lib/rules/regexUnicodeCodepointEscapes.d.ts +0 -1
  448. package/lib/rules/regexUnicodeCodepointEscapes.js +0 -2
  449. package/lib/rules/regexUnicodeEscapes.d.ts +0 -1
  450. package/lib/rules/regexUnicodeEscapes.js +0 -2
  451. package/lib/rules/regexUnicodeFlag.d.ts +0 -1
  452. package/lib/rules/regexUnicodeFlag.js +0 -2
  453. package/lib/rules/regexUnicodeProperties.d.ts +0 -1
  454. package/lib/rules/regexUnicodeProperties.js +0 -2
  455. package/lib/rules/regexUnnecessaryAssertions.d.ts +0 -1
  456. package/lib/rules/regexUnnecessaryAssertions.js +0 -2
  457. package/lib/rules/regexUnnecessaryBackreferences.d.ts +0 -1
  458. package/lib/rules/regexUnnecessaryBackreferences.js +0 -2
  459. package/lib/rules/regexUnnecessaryCharacterClasses.d.ts +0 -1
  460. package/lib/rules/regexUnnecessaryCharacterClasses.js +0 -2
  461. package/lib/rules/regexUnnecessaryCharacterRanges.d.ts +0 -1
  462. package/lib/rules/regexUnnecessaryCharacterRanges.js +0 -2
  463. package/lib/rules/regexUnnecessaryDisjunctions.d.ts +0 -1
  464. package/lib/rules/regexUnnecessaryDisjunctions.js +0 -2
  465. package/lib/rules/regexUnnecessaryDollarReplacements.d.ts +0 -1
  466. package/lib/rules/regexUnnecessaryDollarReplacements.js +0 -2
  467. package/lib/rules/regexUnnecessaryEscapes.d.ts +0 -1
  468. package/lib/rules/regexUnnecessaryEscapes.js +2 -4
  469. package/lib/rules/regexUnnecessaryLookaroundAssertions.d.ts +0 -1
  470. package/lib/rules/regexUnnecessaryLookaroundAssertions.js +0 -2
  471. package/lib/rules/regexUnnecessaryNestedAssertions.d.ts +0 -1
  472. package/lib/rules/regexUnnecessaryNestedAssertions.js +0 -2
  473. package/lib/rules/regexUnnecessaryNestedQuantifiers.d.ts +0 -1
  474. package/lib/rules/regexUnnecessaryNestedQuantifiers.js +0 -2
  475. package/lib/rules/regexUnnecessaryNonCapturingGroups.d.ts +0 -1
  476. package/lib/rules/regexUnnecessaryNonCapturingGroups.js +0 -2
  477. package/lib/rules/regexUnnecessaryNumericQuantifiers.d.ts +0 -1
  478. package/lib/rules/regexUnnecessaryNumericQuantifiers.js +0 -2
  479. package/lib/rules/regexUnnecessaryOptionalAssertions.d.ts +0 -1
  480. package/lib/rules/regexUnnecessaryOptionalAssertions.js +0 -2
  481. package/lib/rules/regexUnnecessaryReferentialBackreferences.d.ts +0 -1
  482. package/lib/rules/regexUnnecessaryReferentialBackreferences.js +0 -2
  483. package/lib/rules/regexUnnecessarySetOperands.d.ts +0 -1
  484. package/lib/rules/regexUnnecessarySetOperands.js +0 -2
  485. package/lib/rules/regexUnusedCapturingGroups.d.ts +0 -1
  486. package/lib/rules/regexUnusedCapturingGroups.js +0 -2
  487. package/lib/rules/regexUnusedFlags.d.ts +0 -1
  488. package/lib/rules/regexUnusedFlags.js +0 -2
  489. package/lib/rules/regexUnusedLazyQuantifiers.d.ts +0 -1
  490. package/lib/rules/regexUnusedLazyQuantifiers.js +0 -2
  491. package/lib/rules/regexUnusedQuantifiers.d.ts +0 -1
  492. package/lib/rules/regexUnusedQuantifiers.js +0 -2
  493. package/lib/rules/regexValidity.d.ts +0 -1
  494. package/lib/rules/regexValidity.js +1 -3
  495. package/lib/rules/regexWordMatchers.d.ts +0 -1
  496. package/lib/rules/regexWordMatchers.js +0 -2
  497. package/lib/rules/regexZeroQuantifiers.d.ts +0 -1
  498. package/lib/rules/regexZeroQuantifiers.js +0 -2
  499. package/lib/rules/requireImports.d.ts +0 -1
  500. package/lib/rules/requireImports.js +0 -2
  501. package/lib/rules/responseJsonMethods.d.ts +0 -1
  502. package/lib/rules/responseJsonMethods.js +0 -2
  503. package/lib/rules/restrictedIdentifiers.d.ts +0 -1
  504. package/lib/rules/restrictedIdentifiers.js +2 -4
  505. package/lib/rules/restrictedImports.d.ts +26 -0
  506. package/lib/rules/restrictedImports.js +164 -0
  507. package/lib/rules/returnAssignments.d.ts +0 -1
  508. package/lib/rules/returnAssignments.js +0 -2
  509. package/lib/rules/returnThisTypes.d.ts +0 -1
  510. package/lib/rules/returnThisTypes.js +0 -2
  511. package/lib/rules/ruleCreator.d.ts +0 -1
  512. package/lib/rules/ruleCreator.js +0 -2
  513. package/lib/rules/selfAssignments.d.ts +0 -1
  514. package/lib/rules/selfAssignments.js +0 -2
  515. package/lib/rules/sequences.d.ts +0 -1
  516. package/lib/rules/sequences.js +0 -2
  517. package/lib/rules/setSizeLengthChecks.d.ts +0 -1
  518. package/lib/rules/setSizeLengthChecks.js +13 -15
  519. package/lib/rules/setterReturns.d.ts +0 -1
  520. package/lib/rules/setterReturns.js +0 -2
  521. package/lib/rules/shadowedRestrictedNames.d.ts +0 -1
  522. package/lib/rules/shadowedRestrictedNames.js +1 -3
  523. package/lib/rules/singleVariableDeclarations.d.ts +0 -1
  524. package/lib/rules/singleVariableDeclarations.js +0 -2
  525. package/lib/rules/sizeComparisonOperators.d.ts +0 -1
  526. package/lib/rules/sizeComparisonOperators.js +5 -7
  527. package/lib/rules/sparseArrays.d.ts +0 -1
  528. package/lib/rules/sparseArrays.js +0 -2
  529. package/lib/rules/staticMemberOnlyClasses.d.ts +0 -1
  530. package/lib/rules/staticMemberOnlyClasses.js +0 -2
  531. package/lib/rules/stringCaseMismatches.d.ts +0 -1
  532. package/lib/rules/stringCaseMismatches.js +3 -8
  533. package/lib/rules/stringCodePoints.d.ts +0 -1
  534. package/lib/rules/stringCodePoints.js +2 -4
  535. package/lib/rules/stringSliceMethods.d.ts +0 -1
  536. package/lib/rules/stringSliceMethods.js +0 -2
  537. package/lib/rules/stringStartsEndsWith.d.ts +0 -1
  538. package/lib/rules/stringStartsEndsWith.js +0 -2
  539. package/lib/rules/structuredCloneMethods.d.ts +0 -1
  540. package/lib/rules/structuredCloneMethods.js +7 -9
  541. package/lib/rules/symbolDescriptions.d.ts +0 -1
  542. package/lib/rules/symbolDescriptions.js +0 -2
  543. package/lib/rules/thisAliases.d.ts +0 -1
  544. package/lib/rules/thisAliases.js +0 -2
  545. package/lib/rules/thisBeforeSuper.d.ts +0 -1
  546. package/lib/rules/thisBeforeSuper.js +0 -2
  547. package/lib/rules/throwErrors.d.ts +0 -1
  548. package/lib/rules/throwErrors.js +11 -13
  549. package/lib/rules/topLevelAwaits.d.ts +0 -1
  550. package/lib/rules/topLevelAwaits.js +0 -2
  551. package/lib/rules/tripleSlashReferenceValidity.d.ts +0 -1
  552. package/lib/rules/tripleSlashReferenceValidity.js +1 -3
  553. package/lib/rules/tripleSlashReferences.d.ts +0 -1
  554. package/lib/rules/tripleSlashReferences.js +0 -2
  555. package/lib/rules/tsComments.d.ts +0 -1
  556. package/lib/rules/tsComments.js +8 -10
  557. package/lib/rules/tslintComments.d.ts +0 -1
  558. package/lib/rules/tslintComments.js +0 -2
  559. package/lib/rules/typeAssertionStyles.d.ts +0 -1
  560. package/lib/rules/typeAssertionStyles.js +0 -2
  561. package/lib/rules/typeImports.d.ts +0 -1
  562. package/lib/rules/typeImports.js +4 -7
  563. package/lib/rules/typeofComparisons.d.ts +0 -1
  564. package/lib/rules/typeofComparisons.js +4 -9
  565. package/lib/rules/unassignedVariables.d.ts +0 -1
  566. package/lib/rules/unassignedVariables.js +2 -7
  567. package/lib/rules/undefinedTypeofChecks.d.ts +0 -1
  568. package/lib/rules/undefinedTypeofChecks.js +0 -2
  569. package/lib/rules/undefinedVariables.d.ts +0 -1
  570. package/lib/rules/undefinedVariables.js +0 -2
  571. package/lib/rules/unicodeBOMs.d.ts +0 -1
  572. package/lib/rules/unicodeBOMs.js +0 -2
  573. package/lib/rules/unnecessaryBinds.d.ts +0 -1
  574. package/lib/rules/unnecessaryBinds.js +0 -2
  575. package/lib/rules/unnecessaryBlocks.d.ts +0 -1
  576. package/lib/rules/unnecessaryBlocks.js +0 -2
  577. package/lib/rules/unnecessaryBooleanCasts.d.ts +0 -1
  578. package/lib/rules/unnecessaryBooleanCasts.js +0 -2
  579. package/lib/rules/unnecessaryCatches.d.ts +0 -1
  580. package/lib/rules/unnecessaryCatches.js +0 -2
  581. package/lib/rules/unnecessaryComparisons.d.ts +0 -1
  582. package/lib/rules/unnecessaryComparisons.js +3 -12
  583. package/lib/rules/unnecessaryConcatenation.d.ts +0 -1
  584. package/lib/rules/unnecessaryConcatenation.js +0 -2
  585. package/lib/rules/unnecessaryEscapes.d.ts +0 -1
  586. package/lib/rules/unnecessaryEscapes.js +1 -3
  587. package/lib/rules/unnecessaryMathClamps.d.ts +0 -1
  588. package/lib/rules/unnecessaryMathClamps.js +13 -21
  589. package/lib/rules/unnecessaryNumericFractions.d.ts +0 -1
  590. package/lib/rules/unnecessaryNumericFractions.js +0 -2
  591. package/lib/rules/unnecessaryRenames.d.ts +0 -1
  592. package/lib/rules/unnecessaryRenames.js +0 -2
  593. package/lib/rules/unnecessaryTernaries.d.ts +0 -1
  594. package/lib/rules/unnecessaryTernaries.js +0 -2
  595. package/lib/rules/unnecessaryUseStricts.d.ts +0 -1
  596. package/lib/rules/unnecessaryUseStricts.js +0 -2
  597. package/lib/rules/unsafeNegations.d.ts +0 -1
  598. package/lib/rules/unsafeNegations.js +1 -3
  599. package/lib/rules/utils/collectAccessorPairs.d.ts +1 -2
  600. package/lib/rules/utils/collectAccessorPairs.js +0 -2
  601. package/lib/rules/utils/countCommentsInRange.d.ts +0 -1
  602. package/lib/rules/utils/countCommentsInRange.js +0 -2
  603. package/lib/rules/utils/discriminateAnyType.d.ts +1 -2
  604. package/lib/rules/utils/discriminateAnyType.js +0 -2
  605. package/lib/rules/utils/equalityOperators.d.ts +1 -2
  606. package/lib/rules/utils/equalityOperators.js +0 -2
  607. package/lib/rules/utils/forEachReturnStatement.d.ts +0 -1
  608. package/lib/rules/utils/forEachReturnStatement.js +0 -2
  609. package/lib/rules/utils/formatReportedType.d.ts +1 -2
  610. package/lib/rules/utils/formatReportedType.js +0 -2
  611. package/lib/rules/utils/getConstrainedType.d.ts +0 -1
  612. package/lib/rules/utils/getConstrainedType.js +0 -2
  613. package/lib/rules/utils/getFunctionName.d.ts +0 -1
  614. package/lib/rules/utils/getFunctionName.js +0 -2
  615. package/lib/rules/utils/getRegExpConstruction.d.ts +2 -4
  616. package/lib/rules/utils/getRegExpConstruction.js +7 -8
  617. package/lib/rules/utils/getRegExpLiteralDetails.d.ts +0 -1
  618. package/lib/rules/utils/getRegExpLiteralDetails.js +0 -2
  619. package/lib/rules/utils/getThisExpression.d.ts +0 -1
  620. package/lib/rules/utils/getThisExpression.js +0 -2
  621. package/lib/rules/utils/isArrayOrTupleTypeAtLocation.d.ts +0 -1
  622. package/lib/rules/utils/isArrayOrTupleTypeAtLocation.js +0 -2
  623. package/lib/rules/utils/isBuiltinSymbolLike.d.ts +0 -1
  624. package/lib/rules/utils/isBuiltinSymbolLike.js +1 -3
  625. package/lib/rules/utils/isDirectEqualityCheck.d.ts +1 -2
  626. package/lib/rules/utils/isDirectEqualityCheck.js +0 -2
  627. package/lib/rules/utils/isErrorSubclass.d.ts +2 -2
  628. package/lib/rules/utils/isErrorSubclass.js +5 -7
  629. package/lib/rules/utils/isInBooleanContext.d.ts +0 -1
  630. package/lib/rules/utils/isInBooleanContext.js +0 -2
  631. package/lib/rules/utils/isTypeRecursive.d.ts +0 -1
  632. package/lib/rules/utils/isTypeRecursive.js +0 -2
  633. package/lib/rules/utils/isUnsafeAssignment.d.ts +1 -2
  634. package/lib/rules/utils/isUnsafeAssignment.js +1 -3
  635. package/lib/rules/utils/operators.d.ts +0 -1
  636. package/lib/rules/utils/operators.js +0 -2
  637. package/lib/rules/utils/parseRegexpAst.d.ts +0 -1
  638. package/lib/rules/utils/parseRegexpAst.js +0 -2
  639. package/lib/rules/utils/parseRegexpAstFull.d.ts +0 -1
  640. package/lib/rules/utils/parseRegexpAstFull.js +0 -2
  641. package/lib/rules/utils/skipParentheses.d.ts +0 -1
  642. package/lib/rules/utils/skipParentheses.js +0 -2
  643. package/lib/rules/variableDeletions.d.ts +0 -1
  644. package/lib/rules/variableDeletions.js +0 -2
  645. package/lib/rules/voidOperator.d.ts +0 -1
  646. package/lib/rules/voidOperator.js +0 -2
  647. package/lib/rules/withStatements.d.ts +0 -1
  648. package/lib/rules/withStatements.js +0 -2
  649. package/lib/rules/wrapperObjects.d.ts +0 -1
  650. package/lib/rules/wrapperObjects.js +3 -5
  651. package/lib/type-utils/getSpecifierNames.d.ts +2 -0
  652. package/lib/type-utils/getSpecifierNames.js +7 -0
  653. package/lib/type-utils/isDeclaredInModuleBlock.d.ts +2 -0
  654. package/lib/type-utils/isDeclaredInModuleBlock.js +12 -0
  655. package/lib/type-utils/isFromFile.d.ts +2 -0
  656. package/lib/type-utils/isFromFile.js +11 -0
  657. package/lib/type-utils/isFromPackage.d.ts +2 -0
  658. package/lib/type-utils/isFromPackage.js +13 -0
  659. package/lib/type-utils/matchesSpecifier.d.ts +3 -0
  660. package/lib/type-utils/matchesSpecifier.js +18 -0
  661. package/lib/type-utils/schemas.d.ts +14 -0
  662. package/lib/type-utils/schemas.js +23 -0
  663. package/package.json +9 -10
  664. package/lib/rules/utils/forEachChild.d.ts +0 -4
  665. package/lib/rules/utils/forEachChild.js +0 -7
@@ -1,7 +1,7 @@
1
1
  import { ruleCreator } from "./ruleCreator.js";
2
2
  import { getTSNodeRange, typescriptLanguage } from "@flint.fyi/typescript-language";
3
3
  import ts from "typescript";
4
- import z$1 from "zod/v4";
4
+ import z from "zod/v4";
5
5
  //#region src/rules/restrictedIdentifiers.ts
6
6
  var restrictedIdentifiers_default = ruleCreator.createRule(typescriptLanguage, {
7
7
  about: {
@@ -14,7 +14,7 @@ var restrictedIdentifiers_default = ruleCreator.createRule(typescriptLanguage, {
14
14
  secondary: ["This identifier name is on this project's denylist."],
15
15
  suggestions: ["Rename the identifier to something allowed in the project."]
16
16
  } },
17
- options: { deny: z$1.array(z$1.string()).optional() },
17
+ options: { deny: z.array(z.string()).optional() },
18
18
  setup(context) {
19
19
  function checkNode(node, { options, sourceFile }) {
20
20
  if (node.name?.kind !== ts.SyntaxKind.Identifier || !options.deny?.includes(node.name.text)) return;
@@ -37,5 +37,3 @@ var restrictedIdentifiers_default = ruleCreator.createRule(typescriptLanguage, {
37
37
  });
38
38
  //#endregion
39
39
  export { restrictedIdentifiers_default as default };
40
-
41
- //# sourceMappingURL=restrictedIdentifiers.js.map
@@ -0,0 +1,26 @@
1
+ import { z } from "zod/v4";
2
+ declare const _default: import("@flint.fyi/core").Rule<{
3
+ readonly description: "Restricts specified modules from being imported.";
4
+ readonly id: "restrictedImports";
5
+ } & {
6
+ readonly pluginId: string;
7
+ readonly url: string;
8
+ }, "restricted" | "moduleRestricted" | "moduleRestrictedWithMessage" | "namespaceRestricted" | "namespaceRestrictedWithMessage" | "restrictedWithMessage", {
9
+ restrictions: z.ZodDefault<z.ZodArray<z.ZodObject<{
10
+ allowTypeImports: z.ZodOptional<z.ZodBoolean>;
11
+ message: z.ZodOptional<z.ZodString>;
12
+ specifier: z.ZodUnion<readonly [z.ZodObject<{
13
+ from: z.ZodLiteral<"file">;
14
+ name: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
15
+ path: z.ZodOptional<z.ZodString>;
16
+ }, z.core.$strip>, z.ZodObject<{
17
+ from: z.ZodLiteral<"lib">;
18
+ name: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
19
+ }, z.core.$strip>, z.ZodObject<{
20
+ from: z.ZodLiteral<"package">;
21
+ name: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
22
+ package: z.ZodString;
23
+ }, z.core.$strip>]>;
24
+ }, z.core.$strip>>>;
25
+ }>;
26
+ export default _default;
@@ -0,0 +1,164 @@
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 as z$1 } from "zod/v4";
8
+ //#region src/rules/restrictedImports.ts
9
+ const restrictionSchema = z$1.object({
10
+ allowTypeImports: z$1.boolean().optional().describe("Whether type-only imports are exempt from the restriction."),
11
+ message: z$1.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$1.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 };
@@ -7,4 +7,3 @@ declare const _default: import("@flint.fyi/core").Rule<{
7
7
  readonly url: string;
8
8
  }, "noReturnAssign", undefined>;
9
9
  export default _default;
10
- //# sourceMappingURL=returnAssignments.d.ts.map
@@ -34,5 +34,3 @@ var returnAssignments_default = ruleCreator.createRule(typescriptLanguage, {
34
34
  });
35
35
  //#endregion
36
36
  export { returnAssignments_default as default };
37
-
38
- //# sourceMappingURL=returnAssignments.js.map
@@ -7,4 +7,3 @@ declare const _default: import("@flint.fyi/core").Rule<{
7
7
  readonly url: string;
8
8
  }, "preferThis", undefined>;
9
9
  export default _default;
10
- //# sourceMappingURL=returnThisTypes.d.ts.map
@@ -90,5 +90,3 @@ var returnThisTypes_default = ruleCreator.createRule(typescriptLanguage, {
90
90
  });
91
91
  //#endregion
92
92
  export { returnThisTypes_default as default };
93
-
94
- //# sourceMappingURL=returnThisTypes.js.map
@@ -1,3 +1,2 @@
1
1
  import { RuleCreator } from "@flint.fyi/core";
2
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
@@ -13,5 +13,3 @@ const ruleCreator = new RuleCreator({
13
13
  });
14
14
  //#endregion
15
15
  export { ruleCreator };
16
-
17
- //# sourceMappingURL=ruleCreator.js.map
@@ -7,4 +7,3 @@ declare const _default: import("@flint.fyi/core").Rule<{
7
7
  readonly url: string;
8
8
  }, "selfAssignment", undefined>;
9
9
  export default _default;
10
- //# sourceMappingURL=selfAssignments.d.ts.map
@@ -25,5 +25,3 @@ var selfAssignments_default = ruleCreator.createRule(typescriptLanguage, {
25
25
  });
26
26
  //#endregion
27
27
  export { selfAssignments_default as default };
28
-
29
- //# sourceMappingURL=selfAssignments.js.map
@@ -7,4 +7,3 @@ declare const _default: import("@flint.fyi/core").Rule<{
7
7
  readonly url: string;
8
8
  }, "noSequences", undefined>;
9
9
  export default _default;
10
- //# sourceMappingURL=sequences.d.ts.map
@@ -24,5 +24,3 @@ var sequences_default = ruleCreator.createRule(typescriptLanguage, {
24
24
  });
25
25
  //#endregion
26
26
  export { sequences_default as default };
27
-
28
- //# sourceMappingURL=sequences.js.map
@@ -7,4 +7,3 @@ declare const _default: import("@flint.fyi/core").Rule<{
7
7
  readonly url: string;
8
8
  }, "preferSize", undefined>;
9
9
  export default _default;
10
- //# sourceMappingURL=setSizeLengthChecks.d.ts.map
@@ -1,22 +1,22 @@
1
1
  import { ruleCreator } from "./ruleCreator.js";
2
2
  import { getTSNodeRange, isGlobalDeclarationOfName, typescriptLanguage } from "@flint.fyi/typescript-language";
3
- import * as ts$1 from "typescript";
3
+ import { NodeFlags, SyntaxKind, isArrayLiteralExpression, isIdentifier, isNewExpression, isParenthesizedExpression, isSpreadElement, isVariableDeclaration } from "typescript";
4
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);
5
+ function isNewSetExpression(expression, typeChecker, program) {
6
+ return isNewExpression(expression) && isIdentifier(expression.expression) && expression.expression.text === "Set" && isGlobalDeclarationOfName(expression.expression, "Set", typeChecker, program);
7
7
  }
8
- function isSetExpression(expression, typeChecker) {
8
+ function isSetExpression(expression, typeChecker, program) {
9
9
  const unwrapped = unwrapParentheses(expression);
10
- if (isNewSetExpression(unwrapped, typeChecker)) return true;
11
- if (!ts$1.isIdentifier(unwrapped)) return false;
10
+ if (isNewSetExpression(unwrapped, typeChecker, program)) return true;
11
+ if (!isIdentifier(unwrapped)) return false;
12
12
  const symbol = typeChecker.getSymbolAtLocation(unwrapped);
13
- if (!symbol?.valueDeclaration || !ts$1.isVariableDeclaration(symbol.valueDeclaration)) return false;
13
+ if (!symbol?.valueDeclaration || !isVariableDeclaration(symbol.valueDeclaration)) return false;
14
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);
15
+ if (declaration.parent.kind !== SyntaxKind.VariableDeclarationList || !(declaration.parent.flags & NodeFlags.Const) || !declaration.initializer) return false;
16
+ return isNewSetExpression(unwrapParentheses(declaration.initializer), typeChecker, program);
17
17
  }
18
18
  function unwrapParentheses(expression) {
19
- while (ts$1.isParenthesizedExpression(expression)) expression = expression.expression;
19
+ while (isParenthesizedExpression(expression)) expression = expression.expression;
20
20
  return expression;
21
21
  }
22
22
  var setSizeLengthChecks_default = ruleCreator.createRule(typescriptLanguage, {
@@ -31,10 +31,10 @@ var setSizeLengthChecks_default = ruleCreator.createRule(typescriptLanguage, {
31
31
  suggestions: ["Use `.size` directly on the `Set` instead."]
32
32
  } },
33
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;
34
+ return { visitors: { PropertyAccessExpression: (node, { program, sourceFile, typeChecker }) => {
35
+ if (node.questionDotToken || node.name.text !== "length" || !isArrayLiteralExpression(node.expression) || node.expression.elements.length !== 1) return;
36
36
  const element = node.expression.elements[0];
37
- if (!ts$1.isSpreadElement(element) || !isSetExpression(element.expression, typeChecker)) return;
37
+ if (!isSpreadElement(element) || !isSetExpression(element.expression, typeChecker, program)) return;
38
38
  context.report({
39
39
  message: "preferSize",
40
40
  range: getTSNodeRange(node, sourceFile)
@@ -44,5 +44,3 @@ var setSizeLengthChecks_default = ruleCreator.createRule(typescriptLanguage, {
44
44
  });
45
45
  //#endregion
46
46
  export { setSizeLengthChecks_default as default };
47
-
48
- //# sourceMappingURL=setSizeLengthChecks.js.map
@@ -7,4 +7,3 @@ declare const _default: import("@flint.fyi/core").Rule<{
7
7
  readonly url: string;
8
8
  }, "noSetterReturn", undefined>;
9
9
  export default _default;
10
- //# sourceMappingURL=setterReturns.d.ts.map
@@ -37,5 +37,3 @@ var setterReturns_default = ruleCreator.createRule(typescriptLanguage, {
37
37
  });
38
38
  //#endregion
39
39
  export { setterReturns_default as default };
40
-
41
- //# sourceMappingURL=setterReturns.js.map
@@ -7,4 +7,3 @@ declare const _default: import("@flint.fyi/core").Rule<{
7
7
  readonly url: string;
8
8
  }, "shadowedRestrictedName", undefined>;
9
9
  export default _default;
10
- //# sourceMappingURL=shadowedRestrictedNames.d.ts.map
@@ -2,7 +2,7 @@ import { ruleCreator } from "./ruleCreator.js";
2
2
  import { getTSNodeRange, typescriptLanguage } from "@flint.fyi/typescript-language";
3
3
  import { SyntaxKind } from "typescript";
4
4
  //#region src/rules/shadowedRestrictedNames.ts
5
- const restrictedNames = new Set([
5
+ const restrictedNames = /* @__PURE__ */ new Set([
6
6
  "arguments",
7
7
  "eval",
8
8
  "Infinity",
@@ -64,5 +64,3 @@ var shadowedRestrictedNames_default = ruleCreator.createRule(typescriptLanguage,
64
64
  });
65
65
  //#endregion
66
66
  export { shadowedRestrictedNames_default as default };
67
-
68
- //# sourceMappingURL=shadowedRestrictedNames.js.map
@@ -7,4 +7,3 @@ declare const _default: import("@flint.fyi/core").Rule<{
7
7
  readonly url: string;
8
8
  }, "singleVariable", undefined>;
9
9
  export default _default;
10
- //# sourceMappingURL=singleVariableDeclarations.d.ts.map
@@ -32,5 +32,3 @@ var singleVariableDeclarations_default = ruleCreator.createRule(typescriptLangua
32
32
  });
33
33
  //#endregion
34
34
  export { singleVariableDeclarations_default as default };
35
-
36
- //# sourceMappingURL=singleVariableDeclarations.js.map
@@ -13,4 +13,3 @@ declare const _default: import("@flint.fyi/core").Rule<{
13
13
  }>>;
14
14
  }>;
15
15
  export default _default;
16
- //# sourceMappingURL=sizeComparisonOperators.d.ts.map
@@ -1,9 +1,9 @@
1
1
  import { ruleCreator } from "./ruleCreator.js";
2
- import { getTSNodeRange, typescriptLanguage } from "@flint.fyi/typescript-language";
2
+ import { getStaticNumberValue, getTSNodeRange, typescriptLanguage } from "@flint.fyi/typescript-language";
3
3
  import * as ts$1 from "typescript";
4
- import { z } from "zod/v4";
4
+ import { z as z$1 } from "zod/v4";
5
5
  //#region src/rules/sizeComparisonOperators.ts
6
- const sizePropertyNames = new Set(["length", "size"]);
6
+ const sizePropertyNames = /* @__PURE__ */ new Set(["length", "size"]);
7
7
  function hasLogicalOrFallback(node) {
8
8
  return ts$1.isBinaryExpression(node.parent) && node.parent.operatorToken.kind === ts$1.SyntaxKind.BarBarToken && node.parent.left === node;
9
9
  }
@@ -83,13 +83,13 @@ var sizeComparisonOperators_default = ruleCreator.createRule(typescriptLanguage,
83
83
  suggestions: ["Replace with `.{{ property }} === 0`."]
84
84
  }
85
85
  },
86
- options: { style: z.enum(["coercion", "explicit"]).default("coercion").describe("Which style to enforce: 'coercion' for implicit boolean checks like `if (arr.length)`, or 'explicit' for comparisons like `if (arr.length > 0)`.") },
86
+ options: { style: z$1.enum(["coercion", "explicit"]).default("coercion").describe("Which style to enforce: 'coercion' for implicit boolean checks like `if (arr.length)`, or 'explicit' for comparisons like `if (arr.length > 0)`.") },
87
87
  setup(context) {
88
88
  return { visitors: {
89
89
  BinaryExpression: (node, { options, sourceFile }) => {
90
90
  if (options.style !== "coercion") return;
91
91
  const { left, operatorToken, right } = node;
92
- if (!ts$1.isPropertyAccessExpression(left) || !sizePropertyNames.has(left.name.text) || !ts$1.isNumericLiteral(right) || right.text !== "0") return;
92
+ if (!ts$1.isPropertyAccessExpression(left) || !sizePropertyNames.has(left.name.text) || !Object.is(getStaticNumberValue(right), 0)) return;
93
93
  const isNonZeroCheck = operatorToken.kind === ts$1.SyntaxKind.GreaterThanToken || operatorToken.kind === ts$1.SyntaxKind.ExclamationEqualsEqualsToken || operatorToken.kind === ts$1.SyntaxKind.ExclamationEqualsToken;
94
94
  const isZeroCheck = operatorToken.kind === ts$1.SyntaxKind.EqualsEqualsEqualsToken || operatorToken.kind === ts$1.SyntaxKind.EqualsEqualsToken || operatorToken.kind === ts$1.SyntaxKind.LessThanEqualsToken;
95
95
  if (!isNonZeroCheck && !isZeroCheck) return;
@@ -144,5 +144,3 @@ var sizeComparisonOperators_default = ruleCreator.createRule(typescriptLanguage,
144
144
  });
145
145
  //#endregion
146
146
  export { sizeComparisonOperators_default as default };
147
-
148
- //# sourceMappingURL=sizeComparisonOperators.js.map
@@ -7,4 +7,3 @@ declare const _default: import("@flint.fyi/core").Rule<{
7
7
  readonly url: string;
8
8
  }, "noSparseArray", undefined>;
9
9
  export default _default;
10
- //# sourceMappingURL=sparseArrays.d.ts.map
@@ -39,5 +39,3 @@ var sparseArrays_default = ruleCreator.createRule(typescriptLanguage, {
39
39
  });
40
40
  //#endregion
41
41
  export { sparseArrays_default as default };
42
-
43
- //# sourceMappingURL=sparseArrays.js.map
@@ -7,4 +7,3 @@ declare const _default: import("@flint.fyi/core").Rule<{
7
7
  readonly url: string;
8
8
  }, "noStaticOnlyClass", undefined>;
9
9
  export default _default;
10
- //# sourceMappingURL=staticMemberOnlyClasses.d.ts.map
@@ -73,5 +73,3 @@ var staticMemberOnlyClasses_default = ruleCreator.createRule(typescriptLanguage,
73
73
  });
74
74
  //#endregion
75
75
  export { staticMemberOnlyClasses_default as default };
76
-
77
- //# sourceMappingURL=staticMemberOnlyClasses.js.map
@@ -7,4 +7,3 @@ declare const _default: import("@flint.fyi/core").Rule<{
7
7
  readonly url: string;
8
8
  }, "mismatch", undefined>;
9
9
  export default _default;
10
- //# sourceMappingURL=stringCaseMismatches.d.ts.map
@@ -1,13 +1,10 @@
1
1
  import { ruleCreator } from "./ruleCreator.js";
2
- import { typescriptLanguage } from "@flint.fyi/typescript-language";
2
+ import { getStaticStringValue, typescriptLanguage } from "@flint.fyi/typescript-language";
3
3
  import * as ts$1 from "typescript";
4
4
  //#region src/rules/stringCaseMismatches.ts
5
5
  function isLowerCase(text) {
6
6
  return text === text.toLowerCase();
7
7
  }
8
- function isStringLiteral$1(node) {
9
- return ts$1.isStringLiteral(node) || ts$1.isNoSubstitutionTemplateLiteral(node);
10
- }
11
8
  function isUpperCase(text) {
12
9
  return text === text.toUpperCase();
13
10
  }
@@ -29,8 +26,8 @@ var stringCaseMismatches_default = ruleCreator.createRule(typescriptLanguage, {
29
26
  const operator = node.parent.operatorToken.kind;
30
27
  if (operator !== ts$1.SyntaxKind.EqualsEqualsToken && operator !== ts$1.SyntaxKind.EqualsEqualsEqualsToken && operator !== ts$1.SyntaxKind.ExclamationEqualsToken && operator !== ts$1.SyntaxKind.ExclamationEqualsEqualsToken) return;
31
28
  const otherSide = node.parent.left === node ? node.parent.right : node.parent.left;
32
- if (!isStringLiteral$1(otherSide)) return;
33
- const value = otherSide.text;
29
+ const value = getStaticStringValue(otherSide);
30
+ if (value === void 0) return;
34
31
  const isToLower = node.expression.name.text === "toLowerCase";
35
32
  const expectedCase = isToLower ? "lowercase" : "uppercase";
36
33
  if (isToLower ? isLowerCase(value) : isUpperCase(value)) return;
@@ -54,5 +51,3 @@ var stringCaseMismatches_default = ruleCreator.createRule(typescriptLanguage, {
54
51
  });
55
52
  //#endregion
56
53
  export { stringCaseMismatches_default as default };
57
-
58
- //# sourceMappingURL=stringCaseMismatches.js.map
@@ -7,4 +7,3 @@ declare const _default: import("@flint.fyi/core").Rule<{
7
7
  readonly url: string;
8
8
  }, "preferCodePointAt" | "preferFromCodePoint", undefined>;
9
9
  export default _default;
10
- //# sourceMappingURL=stringCodePoints.d.ts.map
@@ -32,8 +32,8 @@ var stringCodePoints_default = ruleCreator.createRule(typescriptLanguage, {
32
32
  }
33
33
  });
34
34
  },
35
- PropertyAccessExpression(node, { sourceFile, typeChecker }) {
36
- if (node.name.text === "fromCharCode" && ts$1.isIdentifier(node.expression) && isGlobalDeclarationOfName(node.expression, "String", typeChecker)) context.report({
35
+ PropertyAccessExpression(node, { program, sourceFile, typeChecker }) {
36
+ if (node.name.text === "fromCharCode" && ts$1.isIdentifier(node.expression) && isGlobalDeclarationOfName(node.expression, "String", typeChecker, program)) context.report({
37
37
  message: "preferFromCodePoint",
38
38
  range: {
39
39
  begin: node.name.getStart(sourceFile),
@@ -46,5 +46,3 @@ var stringCodePoints_default = ruleCreator.createRule(typescriptLanguage, {
46
46
  });
47
47
  //#endregion
48
48
  export { stringCodePoints_default as default };
49
-
50
- //# sourceMappingURL=stringCodePoints.js.map
@@ -7,4 +7,3 @@ declare const _default: import("@flint.fyi/core").Rule<{
7
7
  readonly url: string;
8
8
  }, "preferSliceOverSubstring", undefined>;
9
9
  export default _default;
10
- //# sourceMappingURL=stringSliceMethods.d.ts.map
@@ -43,5 +43,3 @@ var stringSliceMethods_default = ruleCreator.createRule(typescriptLanguage, {
43
43
  });
44
44
  //#endregion
45
45
  export { stringSliceMethods_default as default };
46
-
47
- //# sourceMappingURL=stringSliceMethods.js.map
@@ -7,4 +7,3 @@ declare const _default: import("@flint.fyi/core").Rule<{
7
7
  readonly url: string;
8
8
  }, "preferEndsWith" | "preferStartsWith", undefined>;
9
9
  export default _default;
10
- //# sourceMappingURL=stringStartsEndsWith.d.ts.map
@@ -75,5 +75,3 @@ var stringStartsEndsWith_default = ruleCreator.createRule(typescriptLanguage, {
75
75
  });
76
76
  //#endregion
77
77
  export { stringStartsEndsWith_default as default };
78
-
79
- //# sourceMappingURL=stringStartsEndsWith.js.map
@@ -7,4 +7,3 @@ declare const _default: import("@flint.fyi/core").Rule<{
7
7
  readonly url: string;
8
8
  }, "preferStructuredClone", undefined>;
9
9
  export default _default;
10
- //# sourceMappingURL=structuredCloneMethods.d.ts.map
@@ -1,9 +1,9 @@
1
1
  import { ruleCreator } from "./ruleCreator.js";
2
2
  import { isGlobalDeclarationOfName, typescriptLanguage } from "@flint.fyi/typescript-language";
3
- import * as ts$1 from "typescript";
3
+ import { isCallExpression, isIdentifier, isPropertyAccessExpression, isSpreadElement } from "typescript";
4
4
  //#region src/rules/structuredCloneMethods.ts
5
- function isJsonMethod(node, methodName, typeChecker) {
6
- return ts$1.isCallExpression(node) && ts$1.isPropertyAccessExpression(node.expression) && ts$1.isIdentifier(node.expression.expression) && isGlobalDeclarationOfName(node.expression.expression, "JSON", typeChecker) && node.expression.expression.text === "JSON" && node.expression.name.text === methodName;
5
+ function isJsonMethod(node, methodName, typeChecker, program) {
6
+ return isCallExpression(node) && isPropertyAccessExpression(node.expression) && isIdentifier(node.expression.expression) && isGlobalDeclarationOfName(node.expression.expression, "JSON", typeChecker, program) && node.expression.expression.text === "JSON" && node.expression.name.text === methodName;
7
7
  }
8
8
  var structuredCloneMethods_default = ruleCreator.createRule(typescriptLanguage, {
9
9
  about: {
@@ -17,12 +17,12 @@ var structuredCloneMethods_default = ruleCreator.createRule(typescriptLanguage,
17
17
  suggestions: ["Replace with structuredClone()."]
18
18
  } },
19
19
  setup(context) {
20
- return { visitors: { CallExpression(node, { sourceFile, typeChecker }) {
21
- if (!isJsonMethod(node, "parse", typeChecker) || node.arguments.length !== 1) return;
20
+ return { visitors: { CallExpression(node, { program, sourceFile, typeChecker }) {
21
+ if (!isJsonMethod(node, "parse", typeChecker, program) || node.arguments.length !== 1) return;
22
22
  const argument = node.arguments[0];
23
- if (ts$1.isSpreadElement(argument) || !isJsonMethod(argument, "stringify", typeChecker) || argument.arguments.length !== 1) return;
23
+ if (isSpreadElement(argument) || !isJsonMethod(argument, "stringify", typeChecker, program) || argument.arguments.length !== 1) return;
24
24
  const stringifyArgument = argument.arguments[0];
25
- if (ts$1.isSpreadElement(stringifyArgument)) return;
25
+ if (isSpreadElement(stringifyArgument)) return;
26
26
  context.report({
27
27
  message: "preferStructuredClone",
28
28
  range: {
@@ -35,5 +35,3 @@ var structuredCloneMethods_default = ruleCreator.createRule(typescriptLanguage,
35
35
  });
36
36
  //#endregion
37
37
  export { structuredCloneMethods_default as default };
38
-
39
- //# sourceMappingURL=structuredCloneMethods.js.map
@@ -7,4 +7,3 @@ declare const _default: import("@flint.fyi/core").Rule<{
7
7
  readonly url: string;
8
8
  }, "missingDescription", undefined>;
9
9
  export default _default;
10
- //# sourceMappingURL=symbolDescriptions.d.ts.map
@@ -28,5 +28,3 @@ var symbolDescriptions_default = ruleCreator.createRule(typescriptLanguage, {
28
28
  });
29
29
  //#endregion
30
30
  export { symbolDescriptions_default as default };
31
-
32
- //# sourceMappingURL=symbolDescriptions.js.map
@@ -7,4 +7,3 @@ declare const _default: import("@flint.fyi/core").Rule<{
7
7
  readonly url: string;
8
8
  }, "noThisAlias", undefined>;
9
9
  export default _default;
10
- //# sourceMappingURL=thisAliases.d.ts.map
@@ -40,5 +40,3 @@ var thisAliases_default = ruleCreator.createRule(typescriptLanguage, {
40
40
  });
41
41
  //#endregion
42
42
  export { thisAliases_default as default };
43
-
44
- //# sourceMappingURL=thisAliases.js.map
@@ -7,4 +7,3 @@ declare const _default: import("@flint.fyi/core").Rule<{
7
7
  readonly url: string;
8
8
  }, "thisBeforeSuper" | "superBeforeSuper", undefined>;
9
9
  export default _default;
10
- //# sourceMappingURL=thisBeforeSuper.d.ts.map
@@ -82,5 +82,3 @@ var thisBeforeSuper_default = ruleCreator.createRule(typescriptLanguage, {
82
82
  });
83
83
  //#endregion
84
84
  export { thisBeforeSuper_default as default };
85
-
86
- //# sourceMappingURL=thisBeforeSuper.js.map