@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,76 +0,0 @@
1
- import { ruleCreator } from "./ruleCreator.js";
2
- import { parseRegexpAst } from "./utils/parseRegexpAst.js";
3
- import { getRegExpConstruction } from "./utils/getRegExpConstruction.js";
4
- import { getRegExpLiteralDetails } from "./utils/getRegExpLiteralDetails.js";
5
- import { typescriptLanguage } from "@flint.fyi/typescript-language";
6
- import { visitRegExpAST } from "@eslint-community/regexpp";
7
- //#region src/rules/regexMisleadingQuantifiers.ts
8
- function formatQuantifier(min, max, greedy) {
9
- let result;
10
- if (min === 0 && max === 1) result = "?";
11
- else if (min === 0 && max === Infinity) result = "*";
12
- else if (min === 1 && max === Infinity) result = "+";
13
- else if (min === max) result = `{${min}}`;
14
- else if (max === Infinity) result = `{${min},}`;
15
- else result = `{${min},${max}}`;
16
- return greedy ? result : `${result}?`;
17
- }
18
- function isPotentiallyEmpty(element) {
19
- switch (element.type) {
20
- case "Assertion":
21
- case "Backreference": return true;
22
- case "CapturingGroup":
23
- case "Group": return element.alternatives.some((alt) => alt.elements.every((el) => isPotentiallyEmpty(el)));
24
- case "Quantifier": return element.min === 0 || isPotentiallyEmpty(element.element);
25
- default: return false;
26
- }
27
- }
28
- var regexMisleadingQuantifiers_default = ruleCreator.createRule(typescriptLanguage, {
29
- about: {
30
- description: "Reports quantifiers whose minimum implies they must match but whose element can match empty.",
31
- id: "regexMisleadingQuantifiers",
32
- presets: ["logical"]
33
- },
34
- messages: { confusing: {
35
- primary: "Quantifier minimum is {{ min }} but the element can match empty. Consider using '{{ proposal }}' instead.",
36
- secondary: ["This quantifier suggests it must match at least {{ min }} time(s), but the quantified element can match the empty string, so the effective minimum is 0."],
37
- suggestions: ["Replace the quantifier with one that reflects the actual minimum."]
38
- } },
39
- setup(context) {
40
- function checkPattern(pattern, patternStart, flags) {
41
- const regexpAst = parseRegexpAst(pattern, flags);
42
- if (!regexpAst) return;
43
- visitRegExpAST(regexpAst, { onQuantifierEnter(qNode) {
44
- if (qNode.min <= 0 || !isPotentiallyEmpty(qNode.element)) return;
45
- const proposal = formatQuantifier(0, qNode.max, qNode.greedy);
46
- context.report({
47
- data: {
48
- min: qNode.min,
49
- proposal
50
- },
51
- message: "confusing",
52
- range: {
53
- begin: patternStart + qNode.start,
54
- end: patternStart + qNode.end
55
- }
56
- });
57
- } });
58
- }
59
- function checkRegexLiteral(node, { sourceFile }) {
60
- const details = getRegExpLiteralDetails(node, { sourceFile });
61
- checkPattern(details.pattern, details.start, details.flags);
62
- }
63
- function checkRegExpConstructor(node, services) {
64
- const construction = getRegExpConstruction(node, services);
65
- if (!construction) return;
66
- checkPattern(construction.pattern, construction.start + 1, construction.flags);
67
- }
68
- return { visitors: {
69
- CallExpression: checkRegExpConstructor,
70
- NewExpression: checkRegExpConstructor,
71
- RegularExpressionLiteral: checkRegexLiteral
72
- } };
73
- }
74
- });
75
- //#endregion
76
- export { regexMisleadingQuantifiers_default as default };
@@ -1,9 +0,0 @@
1
- declare const _default: import("@flint.fyi/core").Rule<{
2
- readonly description: "Reports characters in regex character classes that appear as single visual characters but are made of multiple code points.";
3
- readonly id: "regexMisleadingUnicodeCharacters";
4
- readonly presets: readonly ["logical", "logicalStrict"];
5
- } & {
6
- readonly pluginId: string;
7
- readonly url: string;
8
- }, "combiningClass" | "emojiModifier" | "regionalIndicatorSymbol" | "surrogatePair" | "surrogatePairWithoutUFlag" | "zwj", undefined>;
9
- export default _default;
@@ -1,201 +0,0 @@
1
- import { ruleCreator } from "./ruleCreator.js";
2
- import { parseRegexpAst } from "./utils/parseRegexpAst.js";
3
- import { getRegExpLiteralDetails } from "./utils/getRegExpLiteralDetails.js";
4
- import { getTSNodeRange, typescriptLanguage } from "@flint.fyi/typescript-language";
5
- import { visitRegExpAST } from "@eslint-community/regexpp";
6
- //#region src/rules/regexMisleadingUnicodeCharacters.ts
7
- function findAllMatches(characters, hasUnicodeFlag) {
8
- const matches = [];
9
- if (hasUnicodeFlag) for (const nodes of findSurrogatePairs(characters)) matches.push({
10
- kind: "surrogatePair",
11
- nodes
12
- });
13
- else for (const nodes of findSurrogatePairsWithoutUFlag(characters)) matches.push({
14
- kind: "surrogatePairWithoutUFlag",
15
- nodes
16
- });
17
- for (const nodes of findCombiningClass(characters)) matches.push({
18
- kind: "combiningClass",
19
- nodes
20
- });
21
- for (const nodes of findEmojiModifiers(characters)) matches.push({
22
- kind: "emojiModifier",
23
- nodes
24
- });
25
- for (const nodes of findRegionalIndicatorSymbols(characters)) matches.push({
26
- kind: "regionalIndicatorSymbol",
27
- nodes
28
- });
29
- for (const nodes of findZeroWidthJoins(characters)) matches.push({
30
- kind: "zwj",
31
- nodes
32
- });
33
- return matches;
34
- }
35
- function* findCombiningClass(characters) {
36
- for (const [index, char] of characters.entries()) {
37
- const previous = characters[index - 1];
38
- if (previous && isCombiningCharacter(char.value) && !isCombiningCharacter(previous.value)) yield [previous, char];
39
- }
40
- }
41
- function* findEmojiModifiers(characters) {
42
- for (const [index, char] of characters.entries()) {
43
- const previous = characters[index - 1];
44
- if (previous && isEmojiModifier(char.value) && !isEmojiModifier(previous.value)) yield [previous, char];
45
- }
46
- }
47
- function* findRegionalIndicatorSymbols(characters) {
48
- for (const [index, char] of characters.entries()) {
49
- const previous = characters[index - 1];
50
- if (previous && isRegionalIndicatorSymbol(char.value) && isRegionalIndicatorSymbol(previous.value)) yield [previous, char];
51
- }
52
- }
53
- function* findSurrogatePairs(characters) {
54
- for (const [index, char] of characters.entries()) {
55
- const previous = characters[index - 1];
56
- if (previous && isSurrogatePair(previous.value, char.value) && (isUnicodeCodePointEscape(previous) || isUnicodeCodePointEscape(char))) yield [previous, char];
57
- }
58
- }
59
- function* findSurrogatePairsWithoutUFlag(characters) {
60
- for (const [index, char] of characters.entries()) {
61
- const previous = characters[index - 1];
62
- if (previous && isSurrogatePair(previous.value, char.value) && !isUnicodeCodePointEscape(previous) && !isUnicodeCodePointEscape(char)) yield [previous, char];
63
- }
64
- }
65
- function* findZeroWidthJoins(characters) {
66
- let sequence;
67
- for (const [index, char] of characters.entries()) {
68
- const previous = characters[index - 1];
69
- const next = characters[index + 1];
70
- if (previous && next && char.value === 8205 && previous.value !== 8205 && next.value !== 8205) if (sequence) if (sequence.at(-1) === previous) sequence.push(char, next);
71
- else {
72
- yield sequence;
73
- sequence = characters.slice(index - 1, index + 2);
74
- }
75
- else sequence = characters.slice(index - 1, index + 2);
76
- }
77
- if (sequence) yield sequence;
78
- }
79
- function getMessageId(kind) {
80
- switch (kind) {
81
- case "combiningClass": return "combiningClass";
82
- case "emojiModifier": return "emojiModifier";
83
- case "regionalIndicatorSymbol": return "regionalIndicatorSymbol";
84
- case "surrogatePair": return "surrogatePair";
85
- case "surrogatePairWithoutUFlag": return "surrogatePairWithoutUFlag";
86
- case "zwj": return "zwj";
87
- }
88
- }
89
- function isCombiningCharacter(codePoint) {
90
- return /^[\p{Mc}\p{Me}\p{Mn}]$/u.test(String.fromCodePoint(codePoint));
91
- }
92
- function isEmojiModifier(code) {
93
- return code >= 127995 && code <= 127999;
94
- }
95
- function isRegionalIndicatorSymbol(code) {
96
- return code >= 127462 && code <= 127487;
97
- }
98
- function isSurrogatePair(lead, tail) {
99
- return lead >= 55296 && lead < 56320 && tail >= 56320 && tail < 57344;
100
- }
101
- function isUnicodeCodePointEscape(char) {
102
- return /^\\u\{[\da-f]+\}$/iu.test(char.raw);
103
- }
104
- function* iterateCharacterSequence(nodes) {
105
- let sequence = [];
106
- for (const node of nodes) switch (node.type) {
107
- case "Character":
108
- sequence.push(node);
109
- break;
110
- case "CharacterClass":
111
- case "CharacterSet":
112
- case "ClassStringDisjunction":
113
- case "ExpressionCharacterClass":
114
- if (sequence.length) {
115
- yield sequence;
116
- sequence = [];
117
- }
118
- break;
119
- case "CharacterClassRange":
120
- sequence.push(node.min);
121
- yield sequence;
122
- sequence = [node.max];
123
- break;
124
- }
125
- if (sequence.length) yield sequence;
126
- }
127
- var regexMisleadingUnicodeCharacters_default = ruleCreator.createRule(typescriptLanguage, {
128
- about: {
129
- description: "Reports characters in regex character classes that appear as single visual characters but are made of multiple code points.",
130
- id: "regexMisleadingUnicodeCharacters",
131
- presets: ["logical", "logicalStrict"]
132
- },
133
- messages: {
134
- combiningClass: {
135
- primary: "Misleading combined character in character class.",
136
- secondary: ["The base character and combining mark are matched separately, not as a single unit."],
137
- suggestions: ["Match the composed character outside of a character class.", "Use Unicode normalization for the regular expression."]
138
- },
139
- emojiModifier: {
140
- primary: "Misleading emoji with skin tone modifier in character class.",
141
- secondary: ["The emoji and its modifier are matched separately, not as a single unit."],
142
- suggestions: ["Match the emoji sequence outside of a character class."]
143
- },
144
- regionalIndicatorSymbol: {
145
- primary: "Misleading regional indicator symbols (flag) in character class.",
146
- secondary: ["The two regional indicator symbols are matched separately, not as a single flag."],
147
- suggestions: ["Match the flag sequence outside of a character class."]
148
- },
149
- surrogatePair: {
150
- primary: "Misleading surrogate pair in character class.",
151
- secondary: ["The surrogate code points are represented with different escape types."],
152
- suggestions: ["Use consistent escape sequences for both halves of the pair."]
153
- },
154
- surrogatePairWithoutUFlag: {
155
- primary: "Misleading surrogate pair in character class without the `u` or `v` flag.",
156
- secondary: ["Without the unicode flag, each half of the surrogate pair is matched separately."],
157
- suggestions: ["Add the `u` flag to the regex."]
158
- },
159
- zwj: {
160
- primary: "Misleading zero-width joiner sequence in character class.",
161
- secondary: ["Characters joined with ZWJ are matched separately, not as a single unit.", "Consider matching the sequence outside of a character class."],
162
- suggestions: ["Match the ZWJ sequence outside of a character class."]
163
- }
164
- },
165
- setup(context) {
166
- return { visitors: { RegularExpressionLiteral: (node, services) => {
167
- const details = getRegExpLiteralDetails(node, services);
168
- const regexpAst = parseRegexpAst(details.pattern, details.flags);
169
- if (!regexpAst) return;
170
- const hasUnicodeFlag = details.flags.includes("u") || details.flags.includes("v");
171
- const range = getTSNodeRange(node, services.sourceFile);
172
- visitRegExpAST(regexpAst, { onCharacterClassEnter(characterClassNode) {
173
- for (const characters of iterateCharacterSequence(characterClassNode.elements)) {
174
- const matches = findAllMatches(characters, hasUnicodeFlag);
175
- for (const { kind, nodes: characters } of matches) {
176
- const first = characters[0];
177
- const last = characters.at(-1);
178
- const messageId = getMessageId(kind);
179
- context.report({
180
- message: messageId,
181
- range: {
182
- begin: range.begin + 1 + first.start,
183
- end: range.begin + 1 + last.end
184
- },
185
- ...kind === "surrogatePairWithoutUFlag" && { suggestions: [{
186
- id: "addUnicodeFlag",
187
- range: {
188
- begin: range.end,
189
- end: range.end
190
- },
191
- text: "u"
192
- }] }
193
- });
194
- }
195
- }
196
- } });
197
- } } };
198
- }
199
- });
200
- //#endregion
201
- export { regexMisleadingUnicodeCharacters_default as default };
@@ -1,9 +0,0 @@
1
- declare const _default: import("@flint.fyi/core").Rule<{
2
- readonly description: "Reports backreferences that do not use the name of their referenced capturing group.";
3
- readonly id: "regexNamedBackreferences";
4
- readonly presets: readonly ["stylisticStrict"];
5
- } & {
6
- readonly pluginId: string;
7
- readonly url: string;
8
- }, "preferNamed", undefined>;
9
- export default _default;
@@ -1,46 +0,0 @@
1
- import { ruleCreator } from "./ruleCreator.js";
2
- import { parseRegexpAst } from "./utils/parseRegexpAst.js";
3
- import { getRegExpLiteralDetails } from "./utils/getRegExpLiteralDetails.js";
4
- import { typescriptLanguage } from "@flint.fyi/typescript-language";
5
- import { visitRegExpAST } from "@eslint-community/regexpp";
6
- //#region src/rules/regexNamedBackreferences.ts
7
- var regexNamedBackreferences_default = ruleCreator.createRule(typescriptLanguage, {
8
- about: {
9
- description: "Reports backreferences that do not use the name of their referenced capturing group.",
10
- id: "regexNamedBackreferences",
11
- presets: ["stylisticStrict"]
12
- },
13
- messages: { preferNamed: {
14
- primary: "Prefer named backreference `\\k<{{ name }}>` over numeric backreference `{{ found }}`.",
15
- secondary: ["Named backreferences are more readable and maintainable than numeric ones.", "If the capturing group has a name, the backreference should use that name."],
16
- suggestions: ["Replace `{{ found }}` with `\\k<{{ name }}>`"]
17
- } },
18
- setup(context) {
19
- return { visitors: { RegularExpressionLiteral: (node, { sourceFile }) => {
20
- const details = getRegExpLiteralDetails(node, { sourceFile });
21
- const regexpAst = parseRegexpAst(details.pattern, details.flags);
22
- if (!regexpAst) return;
23
- visitRegExpAST(regexpAst, { onBackreferenceEnter(backNode) {
24
- if (Array.isArray(backNode.resolved) || !backNode.resolved.name || backNode.raw.startsWith("\\k<")) return;
25
- const range = {
26
- begin: details.start + backNode.start,
27
- end: details.start + backNode.end
28
- };
29
- context.report({
30
- data: {
31
- found: backNode.raw,
32
- name: backNode.resolved.name
33
- },
34
- fix: {
35
- range,
36
- text: `\\k<${backNode.resolved.name}>`
37
- },
38
- message: "preferNamed",
39
- range
40
- });
41
- } });
42
- } } };
43
- }
44
- });
45
- //#endregion
46
- export { regexNamedBackreferences_default as default };
@@ -1,8 +0,0 @@
1
- declare const _default: import("@flint.fyi/core").Rule<{
2
- readonly description: "Reports capturing groups in regular expressions that do not have a name.";
3
- readonly id: "regexNamedCaptureGroups";
4
- } & {
5
- readonly pluginId: string;
6
- readonly url: string;
7
- }, "preferNamed", undefined>;
8
- export default _default;
@@ -1,65 +0,0 @@
1
- import { ruleCreator } from "./ruleCreator.js";
2
- import { parseRegexpAst } from "./utils/parseRegexpAst.js";
3
- import { getRegExpConstruction } from "./utils/getRegExpConstruction.js";
4
- import { getRegExpLiteralDetails } from "./utils/getRegExpLiteralDetails.js";
5
- import { getTSNodeRange, typescriptLanguage } from "@flint.fyi/typescript-language";
6
- import { visitRegExpAST } from "@eslint-community/regexpp";
7
- //#region src/rules/regexNamedCaptureGroups.ts
8
- var regexNamedCaptureGroups_default = ruleCreator.createRule(typescriptLanguage, {
9
- about: {
10
- description: "Reports capturing groups in regular expressions that do not have a name.",
11
- id: "regexNamedCaptureGroups"
12
- },
13
- messages: { preferNamed: {
14
- primary: "Anonymous capture group `{{ group }}` should be converted to a named or non-capturing group for clarity.",
15
- secondary: ["Named capture groups make regex patterns more readable and maintainable.", "If the capture is not needed, use a non-capturing group `(?:...)` instead."],
16
- suggestions: ["Add a name to the capture group.", "Convert to a non-capturing group."]
17
- } },
18
- setup(context) {
19
- function checkPattern(pattern, flags, start) {
20
- const regexpAst = parseRegexpAst(pattern, flags);
21
- if (!regexpAst) return;
22
- visitRegExpAST(regexpAst, { onCapturingGroupEnter(groupNode) {
23
- if (groupNode.name) return;
24
- const suggestionRange = {
25
- begin: start + 1 + groupNode.start + 1,
26
- end: start + 1 + groupNode.start + 1
27
- };
28
- context.report({
29
- data: { group: groupNode.raw },
30
- message: "preferNamed",
31
- range: {
32
- begin: start + 1 + groupNode.start,
33
- end: start + 1 + groupNode.end
34
- },
35
- suggestions: [{
36
- id: "addGroupName",
37
- range: suggestionRange,
38
- text: "?<name>"
39
- }, {
40
- id: "convertToNonCapturing",
41
- range: suggestionRange,
42
- text: "?:"
43
- }]
44
- });
45
- } });
46
- }
47
- function checkRegexLiteral(node, services) {
48
- const details = getRegExpLiteralDetails(node, services);
49
- const range = getTSNodeRange(node, services.sourceFile);
50
- checkPattern(details.pattern, details.flags, range.begin);
51
- }
52
- function checkRegExpConstructor(node, services) {
53
- const construction = getRegExpConstruction(node, services);
54
- if (!construction) return;
55
- checkPattern(construction.raw, construction.flags, construction.start);
56
- }
57
- return { visitors: {
58
- CallExpression: checkRegExpConstructor,
59
- NewExpression: checkRegExpConstructor,
60
- RegularExpressionLiteral: checkRegexLiteral
61
- } };
62
- }
63
- });
64
- //#endregion
65
- export { regexNamedCaptureGroups_default as default };
@@ -1,9 +0,0 @@
1
- declare const _default: import("@flint.fyi/core").Rule<{
2
- readonly description: "Reports indexed references in replacement strings that should use named references.";
3
- readonly id: "regexNamedReplacements";
4
- readonly presets: readonly ["stylisticStrict"];
5
- } & {
6
- readonly pluginId: string;
7
- readonly url: string;
8
- }, "preferNamed", undefined>;
9
- export default _default;
@@ -1,91 +0,0 @@
1
- import { ruleCreator } from "./ruleCreator.js";
2
- import { getConstrainedTypeAtLocation } from "./utils/getConstrainedType.js";
3
- import { parseRegexpAst } from "./utils/parseRegexpAst.js";
4
- import { getTSNodeRange, typescriptLanguage } from "@flint.fyi/typescript-language";
5
- import ts from "typescript";
6
- import { visitRegExpAST } from "@eslint-community/regexpp";
7
- //#region src/rules/regexNamedReplacements.ts
8
- function getCapturingGroups(regexpAst) {
9
- const groups = [];
10
- visitRegExpAST(regexpAst, { onCapturingGroupEnter(groupNode) {
11
- groups.push(groupNode);
12
- } });
13
- return groups;
14
- }
15
- function getRegexPatternAndFlags(node) {
16
- if (node.kind !== ts.SyntaxKind.RegularExpressionLiteral) return;
17
- const match = /^\/(.+)\/([dgimsuyv]*)$/.exec(node.text);
18
- if (!match) return;
19
- return {
20
- flags: match[2],
21
- pattern: match[1]
22
- };
23
- }
24
- function parseReplacementReferences(replacementText) {
25
- const references = [];
26
- const pattern = /\$(\d+)/g;
27
- let match;
28
- while (match = pattern.exec(replacementText)) {
29
- const index = parseInt(match[1], 10);
30
- if (index > 0) references.push({
31
- end: match.index + match[0].length,
32
- index,
33
- raw: match[0],
34
- start: match.index
35
- });
36
- }
37
- return references;
38
- }
39
- var regexNamedReplacements_default = ruleCreator.createRule(typescriptLanguage, {
40
- about: {
41
- description: "Reports indexed references in replacement strings that should use named references.",
42
- id: "regexNamedReplacements",
43
- presets: ["stylisticStrict"]
44
- },
45
- messages: { preferNamed: {
46
- primary: "Prefer the explicit named replacement `$<{{ name }}>` over the position-specific indexed replacement `{{ found }}`.",
47
- secondary: ["Named replacements are more readable and maintainable than indexed ones.", "If the capturing group has a name, the replacement should use that name."],
48
- suggestions: ["Replace `{{ found }}` with `$<{{ name }}>`"]
49
- } },
50
- setup(context) {
51
- return { visitors: { CallExpression: (node, { sourceFile, typeChecker }) => {
52
- if (!ts.isPropertyAccessExpression(node.expression) || node.expression.name.text !== "replace" && node.expression.name.text !== "replaceAll" || node.arguments.length < 2 || !(getConstrainedTypeAtLocation(node.expression.expression, typeChecker).flags & ts.TypeFlags.StringLike)) return;
53
- if (!(getConstrainedTypeAtLocation(node.expression.expression, typeChecker).flags & ts.TypeFlags.StringLike)) return;
54
- const regexArg = node.arguments[0];
55
- const replacementArg = node.arguments[1];
56
- if (!ts.isStringLiteral(replacementArg)) return;
57
- const regexInfo = getRegexPatternAndFlags(regexArg);
58
- if (!regexInfo) return;
59
- const regexpAst = parseRegexpAst(regexInfo.pattern, regexInfo.flags);
60
- if (!regexpAst) return;
61
- const capturingGroups = getCapturingGroups(regexpAst);
62
- if (!capturingGroups.length) return;
63
- const references = parseReplacementReferences(replacementArg.text);
64
- const replacementRange = getTSNodeRange(replacementArg, sourceFile);
65
- for (const reference of references) {
66
- const group = capturingGroups[reference.index - 1];
67
- if (!group?.name) continue;
68
- context.report({
69
- data: {
70
- found: reference.raw,
71
- name: group.name
72
- },
73
- fix: {
74
- range: {
75
- begin: replacementRange.begin + 1 + reference.start,
76
- end: replacementRange.begin + 1 + reference.end
77
- },
78
- text: `$<${group.name}>`
79
- },
80
- message: "preferNamed",
81
- range: {
82
- begin: replacementRange.begin + 1 + reference.start,
83
- end: replacementRange.begin + 1 + reference.end
84
- }
85
- });
86
- }
87
- } } };
88
- }
89
- });
90
- //#endregion
91
- export { regexNamedReplacements_default as default };
@@ -1,9 +0,0 @@
1
- declare const _default: import("@flint.fyi/core").Rule<{
2
- readonly description: "Reports non-standard regular expression flags.";
3
- readonly id: "regexNonStandardFlags";
4
- readonly presets: readonly ["logical", "logicalStrict"];
5
- } & {
6
- readonly pluginId: string;
7
- readonly url: string;
8
- }, "unexpected", undefined>;
9
- export default _default;
@@ -1,64 +0,0 @@
1
- import { ruleCreator } from "./ruleCreator.js";
2
- import { getRegExpConstruction } from "./utils/getRegExpConstruction.js";
3
- import { getRegExpLiteralDetails } from "./utils/getRegExpLiteralDetails.js";
4
- import { typescriptLanguage } from "@flint.fyi/typescript-language";
5
- import * as ts$1 from "typescript";
6
- //#region src/rules/regexNonStandardFlags.ts
7
- const standardFlags = /* @__PURE__ */ new Set([
8
- "d",
9
- "g",
10
- "i",
11
- "m",
12
- "s",
13
- "u",
14
- "v",
15
- "y"
16
- ]);
17
- var regexNonStandardFlags_default = ruleCreator.createRule(typescriptLanguage, {
18
- about: {
19
- description: "Reports non-standard regular expression flags.",
20
- id: "regexNonStandardFlags",
21
- presets: ["logical", "logicalStrict"]
22
- },
23
- messages: { unexpected: {
24
- primary: "Non-standard flag '{{ flag }}' is not part of the ECMAScript standard.",
25
- secondary: ["Non-standard flags may not be supported in all JavaScript environments and should be avoided in production code."],
26
- suggestions: ["Remove the non-standard flag."]
27
- } },
28
- setup(context) {
29
- function checkFlags(flags, flagsStart) {
30
- for (let i = 0; i < flags.length; i += 1) {
31
- const flag = flags[i];
32
- if (!standardFlags.has(flag)) context.report({
33
- data: { flag },
34
- message: "unexpected",
35
- range: {
36
- begin: flagsStart + i,
37
- end: flagsStart + i + 1
38
- }
39
- });
40
- }
41
- }
42
- function checkRegexLiteral(node, services) {
43
- const details = getRegExpLiteralDetails(node, services);
44
- checkFlags(details.flags, details.start + node.text.length - details.flags.length - 1);
45
- }
46
- function checkRegExpConstructor(node, services) {
47
- const construction = getRegExpConstruction(node, services);
48
- if (!construction) return;
49
- const args = construction.args;
50
- if (args.length < 2) return;
51
- const secondArgument = args[1];
52
- if (secondArgument.kind !== ts$1.SyntaxKind.StringLiteral) return;
53
- const flagsStart = secondArgument.getStart(services.sourceFile) + 1;
54
- checkFlags(construction.flags, flagsStart);
55
- }
56
- return { visitors: {
57
- CallExpression: checkRegExpConstructor,
58
- NewExpression: checkRegExpConstructor,
59
- RegularExpressionLiteral: checkRegexLiteral
60
- } };
61
- }
62
- });
63
- //#endregion
64
- export { regexNonStandardFlags_default as default };
@@ -1,9 +0,0 @@
1
- declare const _default: import("@flint.fyi/core").Rule<{
2
- readonly description: "Reports obscure character ranges in regular expressions.";
3
- readonly id: "regexObscureRanges";
4
- readonly presets: readonly ["logical", "logicalStrict"];
5
- } & {
6
- readonly pluginId: string;
7
- readonly url: string;
8
- }, "obscure", undefined>;
9
- export default _default;