@flint.fyi/ts 0.20.0 → 0.22.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (666) hide show
  1. package/{lib/plugin.d.ts → dist/index.d.mts} +360 -365
  2. package/dist/index.mjs +22467 -0
  3. package/package.json +10 -10
  4. package/lib/index.d.ts +0 -2
  5. package/lib/index.js +0 -2
  6. package/lib/plugin.js +0 -621
  7. package/lib/rules/accessorPairGroups.d.ts +0 -10
  8. package/lib/rules/accessorPairGroups.js +0 -48
  9. package/lib/rules/accessorPairTypes.d.ts +0 -10
  10. package/lib/rules/accessorPairTypes.js +0 -72
  11. package/lib/rules/accessorThisRecursion.d.ts +0 -10
  12. package/lib/rules/accessorThisRecursion.js +0 -65
  13. package/lib/rules/anyArguments.d.ts +0 -10
  14. package/lib/rules/anyArguments.js +0 -234
  15. package/lib/rules/anyAssignments.d.ts +0 -10
  16. package/lib/rules/anyAssignments.js +0 -265
  17. package/lib/rules/anyCalls.d.ts +0 -10
  18. package/lib/rules/anyCalls.js +0 -68
  19. package/lib/rules/anyMemberAccess.d.ts +0 -10
  20. package/lib/rules/anyMemberAccess.js +0 -85
  21. package/lib/rules/anyReturns.d.ts +0 -10
  22. package/lib/rules/anyReturns.js +0 -102
  23. package/lib/rules/arguments.d.ts +0 -10
  24. package/lib/rules/arguments.js +0 -38
  25. package/lib/rules/arrayCallbackReturns.d.ts +0 -10
  26. package/lib/rules/arrayCallbackReturns.js +0 -73
  27. package/lib/rules/arrayConstructors.d.ts +0 -10
  28. package/lib/rules/arrayConstructors.js +0 -47
  29. package/lib/rules/arrayDeleteUnnecessaryCounts.d.ts +0 -10
  30. package/lib/rules/arrayDeleteUnnecessaryCounts.js +0 -54
  31. package/lib/rules/arrayElementDeletions.d.ts +0 -10
  32. package/lib/rules/arrayElementDeletions.js +0 -43
  33. package/lib/rules/arrayEmptyCallbackSlots.d.ts +0 -10
  34. package/lib/rules/arrayEmptyCallbackSlots.js +0 -45
  35. package/lib/rules/arrayExistenceChecksConsistency.d.ts +0 -10
  36. package/lib/rules/arrayExistenceChecksConsistency.js +0 -86
  37. package/lib/rules/arrayFilteredFinds.d.ts +0 -10
  38. package/lib/rules/arrayFilteredFinds.js +0 -80
  39. package/lib/rules/arrayFinds.d.ts +0 -10
  40. package/lib/rules/arrayFinds.js +0 -41
  41. package/lib/rules/arrayFlatMapMethods.d.ts +0 -10
  42. package/lib/rules/arrayFlatMapMethods.js +0 -47
  43. package/lib/rules/arrayFlatMethods.d.ts +0 -10
  44. package/lib/rules/arrayFlatMethods.js +0 -83
  45. package/lib/rules/arrayFlatUnnecessaryDepths.d.ts +0 -10
  46. package/lib/rules/arrayFlatUnnecessaryDepths.js +0 -33
  47. package/lib/rules/arrayIncludes.d.ts +0 -10
  48. package/lib/rules/arrayIncludes.js +0 -59
  49. package/lib/rules/arrayIncludesMethods.d.ts +0 -10
  50. package/lib/rules/arrayIncludesMethods.js +0 -37
  51. package/lib/rules/arrayIndexOfMethods.d.ts +0 -10
  52. package/lib/rules/arrayIndexOfMethods.js +0 -51
  53. package/lib/rules/arrayLoops.d.ts +0 -10
  54. package/lib/rules/arrayLoops.js +0 -36
  55. package/lib/rules/arrayMapIdentities.d.ts +0 -10
  56. package/lib/rules/arrayMapIdentities.js +0 -74
  57. package/lib/rules/arrayMutableReverses.d.ts +0 -10
  58. package/lib/rules/arrayMutableReverses.js +0 -39
  59. package/lib/rules/arrayMutableSorts.d.ts +0 -10
  60. package/lib/rules/arrayMutableSorts.js +0 -72
  61. package/lib/rules/arrayReduceTypeArguments.d.ts +0 -10
  62. package/lib/rules/arrayReduceTypeArguments.js +0 -64
  63. package/lib/rules/arraySliceUnnecessaryEnd.d.ts +0 -10
  64. package/lib/rules/arraySliceUnnecessaryEnd.js +0 -51
  65. package/lib/rules/arraySomeMethods.d.ts +0 -10
  66. package/lib/rules/arraySomeMethods.js +0 -77
  67. package/lib/rules/arrayTernarySpreadingConsistency.d.ts +0 -10
  68. package/lib/rules/arrayTernarySpreadingConsistency.js +0 -74
  69. package/lib/rules/arrayTypes.d.ts +0 -17
  70. package/lib/rules/arrayTypes.js +0 -111
  71. package/lib/rules/arrayUnnecessaryLengthChecks.d.ts +0 -10
  72. package/lib/rules/arrayUnnecessaryLengthChecks.js +0 -97
  73. package/lib/rules/asConstAssertions.d.ts +0 -10
  74. package/lib/rules/asConstAssertions.js +0 -57
  75. package/lib/rules/assignmentOperatorShorthands.d.ts +0 -10
  76. package/lib/rules/assignmentOperatorShorthands.js +0 -47
  77. package/lib/rules/asyncFunctionAwaits.d.ts +0 -10
  78. package/lib/rules/asyncFunctionAwaits.js +0 -55
  79. package/lib/rules/asyncPromiseExecutors.d.ts +0 -10
  80. package/lib/rules/asyncPromiseExecutors.js +0 -41
  81. package/lib/rules/asyncUnnecessaryPromiseWrappers.d.ts +0 -10
  82. package/lib/rules/asyncUnnecessaryPromiseWrappers.js +0 -52
  83. package/lib/rules/atAccesses.d.ts +0 -10
  84. package/lib/rules/atAccesses.js +0 -52
  85. package/lib/rules/builtinCoercions.d.ts +0 -10
  86. package/lib/rules/builtinCoercions.js +0 -117
  87. package/lib/rules/builtinConstructorNews.d.ts +0 -10
  88. package/lib/rules/builtinConstructorNews.js +0 -89
  89. package/lib/rules/caseDeclarations.d.ts +0 -10
  90. package/lib/rules/caseDeclarations.js +0 -40
  91. package/lib/rules/caseDuplicates.d.ts +0 -10
  92. package/lib/rules/caseDuplicates.js +0 -36
  93. package/lib/rules/caseFallthroughs.d.ts +0 -10
  94. package/lib/rules/caseFallthroughs.js +0 -76
  95. package/lib/rules/catchCallbackTypes.d.ts +0 -10
  96. package/lib/rules/catchCallbackTypes.js +0 -67
  97. package/lib/rules/caughtVariableNames.d.ts +0 -10
  98. package/lib/rules/caughtVariableNames.js +0 -40
  99. package/lib/rules/chainedAssignments.d.ts +0 -10
  100. package/lib/rules/chainedAssignments.js +0 -33
  101. package/lib/rules/charAtComparisons.d.ts +0 -10
  102. package/lib/rules/charAtComparisons.js +0 -58
  103. package/lib/rules/classAssignments.d.ts +0 -10
  104. package/lib/rules/classAssignments.js +0 -29
  105. package/lib/rules/classFieldDeclarations.d.ts +0 -10
  106. package/lib/rules/classFieldDeclarations.js +0 -40
  107. package/lib/rules/classLiteralProperties.d.ts +0 -10
  108. package/lib/rules/classLiteralProperties.js +0 -45
  109. package/lib/rules/classMemberDuplicates.d.ts +0 -10
  110. package/lib/rules/classMemberDuplicates.js +0 -71
  111. package/lib/rules/classMethodsThis.d.ts +0 -14
  112. package/lib/rules/classMethodsThis.js +0 -124
  113. package/lib/rules/combinedPushes.d.ts +0 -10
  114. package/lib/rules/combinedPushes.js +0 -56
  115. package/lib/rules/consecutiveNonNullAssertions.d.ts +0 -10
  116. package/lib/rules/consecutiveNonNullAssertions.js +0 -39
  117. package/lib/rules/consoleCalls.d.ts +0 -9
  118. package/lib/rules/consoleCalls.js +0 -28
  119. package/lib/rules/constantAssignments.d.ts +0 -10
  120. package/lib/rules/constantAssignments.js +0 -41
  121. package/lib/rules/constructorGenericCalls.d.ts +0 -16
  122. package/lib/rules/constructorGenericCalls.js +0 -138
  123. package/lib/rules/constructorReturns.d.ts +0 -10
  124. package/lib/rules/constructorReturns.js +0 -41
  125. package/lib/rules/constructorSupers.d.ts +0 -10
  126. package/lib/rules/constructorSupers.js +0 -77
  127. package/lib/rules/dateConstructorClones.d.ts +0 -10
  128. package/lib/rules/dateConstructorClones.js +0 -37
  129. package/lib/rules/dateNowTimestamps.d.ts +0 -10
  130. package/lib/rules/dateNowTimestamps.js +0 -57
  131. package/lib/rules/debuggerStatements.d.ts +0 -10
  132. package/lib/rules/debuggerStatements.js +0 -33
  133. package/lib/rules/defaultCaseLast.d.ts +0 -10
  134. package/lib/rules/defaultCaseLast.js +0 -36
  135. package/lib/rules/defaultParameterLast.d.ts +0 -10
  136. package/lib/rules/defaultParameterLast.js +0 -42
  137. package/lib/rules/deprecated.d.ts +0 -10
  138. package/lib/rules/deprecated.js +0 -243
  139. package/lib/rules/destructuringConsistency.d.ts +0 -10
  140. package/lib/rules/destructuringConsistency.js +0 -112
  141. package/lib/rules/duplicateArguments.d.ts +0 -10
  142. package/lib/rules/duplicateArguments.js +0 -45
  143. package/lib/rules/dynamicDeletes.d.ts +0 -10
  144. package/lib/rules/dynamicDeletes.js +0 -37
  145. package/lib/rules/elseIfDuplicates.d.ts +0 -10
  146. package/lib/rules/elseIfDuplicates.js +0 -38
  147. package/lib/rules/elseReturns.d.ts +0 -10
  148. package/lib/rules/elseReturns.js +0 -67
  149. package/lib/rules/emptyBlocks.d.ts +0 -10
  150. package/lib/rules/emptyBlocks.js +0 -56
  151. package/lib/rules/emptyDestructures.d.ts +0 -10
  152. package/lib/rules/emptyDestructures.js +0 -34
  153. package/lib/rules/emptyEnums.d.ts +0 -10
  154. package/lib/rules/emptyEnums.js +0 -30
  155. package/lib/rules/emptyExports.d.ts +0 -10
  156. package/lib/rules/emptyExports.js +0 -60
  157. package/lib/rules/emptyFiles.d.ts +0 -10
  158. package/lib/rules/emptyFiles.js +0 -44
  159. package/lib/rules/emptyFunctions.d.ts +0 -10
  160. package/lib/rules/emptyFunctions.js +0 -61
  161. package/lib/rules/emptyModuleAttributes.d.ts +0 -10
  162. package/lib/rules/emptyModuleAttributes.js +0 -35
  163. package/lib/rules/emptyObjectTypes.d.ts +0 -10
  164. package/lib/rules/emptyObjectTypes.js +0 -47
  165. package/lib/rules/emptyStaticBlocks.d.ts +0 -10
  166. package/lib/rules/emptyStaticBlocks.js +0 -42
  167. package/lib/rules/emptyTypeParameterLists.d.ts +0 -10
  168. package/lib/rules/emptyTypeParameterLists.js +0 -31
  169. package/lib/rules/enumInitializers.d.ts +0 -10
  170. package/lib/rules/enumInitializers.js +0 -54
  171. package/lib/rules/enumMemberLiterals.d.ts +0 -10
  172. package/lib/rules/enumMemberLiterals.js +0 -39
  173. package/lib/rules/enumValueConsistency.d.ts +0 -10
  174. package/lib/rules/enumValueConsistency.js +0 -56
  175. package/lib/rules/enumValueDuplicates.d.ts +0 -10
  176. package/lib/rules/enumValueDuplicates.js +0 -60
  177. package/lib/rules/equalityOperatorNegations.d.ts +0 -9
  178. package/lib/rules/equalityOperatorNegations.js +0 -60
  179. package/lib/rules/equalityOperators.d.ts +0 -10
  180. package/lib/rules/equalityOperators.js +0 -44
  181. package/lib/rules/errorMessages.d.ts +0 -10
  182. package/lib/rules/errorMessages.js +0 -60
  183. package/lib/rules/errorSubclassProperties.d.ts +0 -10
  184. package/lib/rules/errorSubclassProperties.js +0 -144
  185. package/lib/rules/errorUnnecessaryCaptureStackTraces.d.ts +0 -10
  186. package/lib/rules/errorUnnecessaryCaptureStackTraces.js +0 -55
  187. package/lib/rules/escapeSequenceCasing.d.ts +0 -10
  188. package/lib/rules/escapeSequenceCasing.js +0 -75
  189. package/lib/rules/evals.d.ts +0 -10
  190. package/lib/rules/evals.js +0 -31
  191. package/lib/rules/evolvingVariableTypes.d.ts +0 -10
  192. package/lib/rules/evolvingVariableTypes.js +0 -33
  193. package/lib/rules/exceptionAssignments.d.ts +0 -10
  194. package/lib/rules/exceptionAssignments.js +0 -39
  195. package/lib/rules/explicitAnys.d.ts +0 -10
  196. package/lib/rules/explicitAnys.js +0 -55
  197. package/lib/rules/exponentiationOperators.d.ts +0 -10
  198. package/lib/rules/exponentiationOperators.js +0 -34
  199. package/lib/rules/exportFromImports.d.ts +0 -10
  200. package/lib/rules/exportFromImports.js +0 -119
  201. package/lib/rules/exportMutables.d.ts +0 -10
  202. package/lib/rules/exportMutables.js +0 -33
  203. package/lib/rules/exportUniqueNames.d.ts +0 -10
  204. package/lib/rules/exportUniqueNames.js +0 -65
  205. package/lib/rules/extraneousClasses.d.ts +0 -16
  206. package/lib/rules/extraneousClasses.js +0 -111
  207. package/lib/rules/fetchMethodBodies.d.ts +0 -10
  208. package/lib/rules/fetchMethodBodies.js +0 -72
  209. package/lib/rules/finallyStatementSafety.d.ts +0 -10
  210. package/lib/rules/finallyStatementSafety.js +0 -47
  211. package/lib/rules/forDirections.d.ts +0 -10
  212. package/lib/rules/forDirections.js +0 -75
  213. package/lib/rules/forInArrays.d.ts +0 -10
  214. package/lib/rules/forInArrays.js +0 -46
  215. package/lib/rules/forInGuards.d.ts +0 -9
  216. package/lib/rules/forInGuards.js +0 -44
  217. package/lib/rules/functionApplySpreads.d.ts +0 -10
  218. package/lib/rules/functionApplySpreads.js +0 -63
  219. package/lib/rules/functionAssignments.d.ts +0 -10
  220. package/lib/rules/functionAssignments.js +0 -29
  221. package/lib/rules/functionCurryingRedundancy.d.ts +0 -10
  222. package/lib/rules/functionCurryingRedundancy.js +0 -53
  223. package/lib/rules/functionDeclarationStyles.d.ts +0 -16
  224. package/lib/rules/functionDeclarationStyles.js +0 -67
  225. package/lib/rules/functionNameMatches.d.ts +0 -10
  226. package/lib/rules/functionNameMatches.js +0 -74
  227. package/lib/rules/functionNewCalls.d.ts +0 -10
  228. package/lib/rules/functionNewCalls.js +0 -42
  229. package/lib/rules/generatorFunctionYields.d.ts +0 -10
  230. package/lib/rules/generatorFunctionYields.js +0 -50
  231. package/lib/rules/getterReturns.d.ts +0 -10
  232. package/lib/rules/getterReturns.js +0 -65
  233. package/lib/rules/globalAssignments.d.ts +0 -10
  234. package/lib/rules/globalAssignments.js +0 -47
  235. package/lib/rules/globalObjectCalls.d.ts +0 -10
  236. package/lib/rules/globalObjectCalls.js +0 -42
  237. package/lib/rules/globalThisAliases.d.ts +0 -10
  238. package/lib/rules/globalThisAliases.js +0 -47
  239. package/lib/rules/impliedEvals.d.ts +0 -10
  240. package/lib/rules/impliedEvals.js +0 -130
  241. package/lib/rules/importEmptyBlocks.d.ts +0 -10
  242. package/lib/rules/importEmptyBlocks.js +0 -53
  243. package/lib/rules/importTypeSideEffects.d.ts +0 -10
  244. package/lib/rules/importTypeSideEffects.js +0 -31
  245. package/lib/rules/indexedObjectTypes.d.ts +0 -16
  246. package/lib/rules/indexedObjectTypes.js +0 -83
  247. package/lib/rules/instanceOfArrays.d.ts +0 -10
  248. package/lib/rules/instanceOfArrays.js +0 -31
  249. package/lib/rules/irregularWhitespaces.d.ts +0 -16
  250. package/lib/rules/irregularWhitespaces.js +0 -97
  251. package/lib/rules/isNaNComparisons.d.ts +0 -10
  252. package/lib/rules/isNaNComparisons.js +0 -43
  253. package/lib/rules/literalConstructorWrappers.d.ts +0 -10
  254. package/lib/rules/literalConstructorWrappers.js +0 -64
  255. package/lib/rules/mathMethods.d.ts +0 -10
  256. package/lib/rules/mathMethods.js +0 -128
  257. package/lib/rules/meaninglessVoidOperators.d.ts +0 -10
  258. package/lib/rules/meaninglessVoidOperators.js +0 -39
  259. package/lib/rules/misleadingVoidExpressions.d.ts +0 -10
  260. package/lib/rules/misleadingVoidExpressions.js +0 -128
  261. package/lib/rules/moduleSpecifierLists.d.ts +0 -10
  262. package/lib/rules/moduleSpecifierLists.js +0 -92
  263. package/lib/rules/multilineAmbiguities.d.ts +0 -10
  264. package/lib/rules/multilineAmbiguities.js +0 -64
  265. package/lib/rules/namedDefaultExports.d.ts +0 -10
  266. package/lib/rules/namedDefaultExports.js +0 -60
  267. package/lib/rules/namespaceDeclarations.d.ts +0 -14
  268. package/lib/rules/namespaceDeclarations.js +0 -37
  269. package/lib/rules/namespaceImplicitAmbientImports.d.ts +0 -10
  270. package/lib/rules/namespaceImplicitAmbientImports.js +0 -40
  271. package/lib/rules/namespaceKeywords.d.ts +0 -10
  272. package/lib/rules/namespaceKeywords.js +0 -40
  273. package/lib/rules/nativeObjectExtensions.d.ts +0 -10
  274. package/lib/rules/nativeObjectExtensions.js +0 -114
  275. package/lib/rules/negativeIndexLengthMethods.d.ts +0 -10
  276. package/lib/rules/negativeIndexLengthMethods.js +0 -180
  277. package/lib/rules/negativeZeroComparisons.d.ts +0 -10
  278. package/lib/rules/negativeZeroComparisons.js +0 -48
  279. package/lib/rules/nestedStandaloneIfs.d.ts +0 -10
  280. package/lib/rules/nestedStandaloneIfs.js +0 -105
  281. package/lib/rules/newDefinitions.d.ts +0 -10
  282. package/lib/rules/newDefinitions.js +0 -84
  283. package/lib/rules/newExpressions.d.ts +0 -10
  284. package/lib/rules/newExpressions.js +0 -38
  285. package/lib/rules/newNativeNonConstructors.d.ts +0 -10
  286. package/lib/rules/newNativeNonConstructors.js +0 -39
  287. package/lib/rules/nonNullAssertedNullishCoalesces.d.ts +0 -10
  288. package/lib/rules/nonNullAssertedNullishCoalesces.js +0 -63
  289. package/lib/rules/nonNullAssertedOptionalChains.d.ts +0 -10
  290. package/lib/rules/nonNullAssertedOptionalChains.js +0 -69
  291. package/lib/rules/nonNullAssertionPlacement.d.ts +0 -10
  292. package/lib/rules/nonNullAssertionPlacement.js +0 -94
  293. package/lib/rules/nonNullableTypeAssertions.d.ts +0 -10
  294. package/lib/rules/nonNullableTypeAssertions.js +0 -78
  295. package/lib/rules/nonOctalDecimalEscapes.d.ts +0 -10
  296. package/lib/rules/nonOctalDecimalEscapes.js +0 -48
  297. package/lib/rules/nullishCheckStyle.d.ts +0 -21
  298. package/lib/rules/nullishCheckStyle.js +0 -144
  299. package/lib/rules/nullishCoalescingOperators.d.ts +0 -22
  300. package/lib/rules/nullishCoalescingOperators.js +0 -323
  301. package/lib/rules/numberMethodRanges.d.ts +0 -10
  302. package/lib/rules/numberMethodRanges.js +0 -74
  303. package/lib/rules/numberStaticMethods.d.ts +0 -10
  304. package/lib/rules/numberStaticMethods.js +0 -53
  305. package/lib/rules/numericErasingOperations.d.ts +0 -10
  306. package/lib/rules/numericErasingOperations.js +0 -46
  307. package/lib/rules/numericLiteralParsing.d.ts +0 -10
  308. package/lib/rules/numericLiteralParsing.js +0 -66
  309. package/lib/rules/numericPrecision.d.ts +0 -10
  310. package/lib/rules/numericPrecision.js +0 -102
  311. package/lib/rules/numericSeparatorGroups.d.ts +0 -10
  312. package/lib/rules/numericSeparatorGroups.js +0 -101
  313. package/lib/rules/objectAssignSpreads.d.ts +0 -10
  314. package/lib/rules/objectAssignSpreads.js +0 -53
  315. package/lib/rules/objectCalls.d.ts +0 -10
  316. package/lib/rules/objectCalls.js +0 -38
  317. package/lib/rules/objectEntriesMethods.d.ts +0 -10
  318. package/lib/rules/objectEntriesMethods.js +0 -82
  319. package/lib/rules/objectHasOwns.d.ts +0 -10
  320. package/lib/rules/objectHasOwns.js +0 -50
  321. package/lib/rules/objectKeyDuplicates.d.ts +0 -10
  322. package/lib/rules/objectKeyDuplicates.js +0 -63
  323. package/lib/rules/objectProto.d.ts +0 -10
  324. package/lib/rules/objectProto.js +0 -50
  325. package/lib/rules/objectPrototypeBuiltIns.d.ts +0 -10
  326. package/lib/rules/objectPrototypeBuiltIns.js +0 -54
  327. package/lib/rules/objectShorthand.d.ts +0 -10
  328. package/lib/rules/objectShorthand.js +0 -84
  329. package/lib/rules/objectSpreadUnnecessaryFallbacks.d.ts +0 -10
  330. package/lib/rules/objectSpreadUnnecessaryFallbacks.js +0 -43
  331. package/lib/rules/objectTypeDefinitions.d.ts +0 -10
  332. package/lib/rules/objectTypeDefinitions.js +0 -34
  333. package/lib/rules/octalEscapes.d.ts +0 -10
  334. package/lib/rules/octalEscapes.js +0 -58
  335. package/lib/rules/octalNumbers.d.ts +0 -10
  336. package/lib/rules/octalNumbers.js +0 -55
  337. package/lib/rules/operatorAssignmentShorthand.d.ts +0 -10
  338. package/lib/rules/operatorAssignmentShorthand.js +0 -77
  339. package/lib/rules/overloadSignaturesAdjacent.d.ts +0 -10
  340. package/lib/rules/overloadSignaturesAdjacent.js +0 -140
  341. package/lib/rules/parameterReassignments.d.ts +0 -10
  342. package/lib/rules/parameterReassignments.js +0 -45
  343. package/lib/rules/parseIntRadixes.d.ts +0 -10
  344. package/lib/rules/parseIntRadixes.js +0 -62
  345. package/lib/rules/propertyAccessNotation.d.ts +0 -13
  346. package/lib/rules/propertyAccessNotation.js +0 -119
  347. package/lib/rules/recursionOnlyArguments.d.ts +0 -10
  348. package/lib/rules/recursionOnlyArguments.js +0 -71
  349. package/lib/rules/redundantTypeConstituents.d.ts +0 -10
  350. package/lib/rules/redundantTypeConstituents.js +0 -277
  351. package/lib/rules/regexAllGlobalFlags.d.ts +0 -10
  352. package/lib/rules/regexAllGlobalFlags.js +0 -56
  353. package/lib/rules/regexAmbiguousInvalidity.d.ts +0 -10
  354. package/lib/rules/regexAmbiguousInvalidity.js +0 -297
  355. package/lib/rules/regexCharacterClassRanges.d.ts +0 -10
  356. package/lib/rules/regexCharacterClassRanges.js +0 -137
  357. package/lib/rules/regexCharacterClassSetOperations.d.ts +0 -10
  358. package/lib/rules/regexCharacterClassSetOperations.js +0 -81
  359. package/lib/rules/regexCharacterClasses.d.ts +0 -10
  360. package/lib/rules/regexCharacterClasses.js +0 -234
  361. package/lib/rules/regexConciseCharacterClassNegations.d.ts +0 -10
  362. package/lib/rules/regexConciseCharacterClassNegations.js +0 -52
  363. package/lib/rules/regexContradictoryAssertions.d.ts +0 -10
  364. package/lib/rules/regexContradictoryAssertions.js +0 -210
  365. package/lib/rules/regexControlCharacterEscapes.d.ts +0 -10
  366. package/lib/rules/regexControlCharacterEscapes.js +0 -130
  367. package/lib/rules/regexControlCharacters.d.ts +0 -10
  368. package/lib/rules/regexControlCharacters.js +0 -95
  369. package/lib/rules/regexDigitMatchers.d.ts +0 -10
  370. package/lib/rules/regexDigitMatchers.js +0 -180
  371. package/lib/rules/regexDollarEscapes.d.ts +0 -10
  372. package/lib/rules/regexDollarEscapes.js +0 -91
  373. package/lib/rules/regexDuplicateCharacterClassCharacters.d.ts +0 -10
  374. package/lib/rules/regexDuplicateCharacterClassCharacters.js +0 -128
  375. package/lib/rules/regexEmptyAlternatives.d.ts +0 -10
  376. package/lib/rules/regexEmptyAlternatives.js +0 -140
  377. package/lib/rules/regexEmptyCapturingGroups.d.ts +0 -10
  378. package/lib/rules/regexEmptyCapturingGroups.js +0 -67
  379. package/lib/rules/regexEmptyCharacterClasses.d.ts +0 -10
  380. package/lib/rules/regexEmptyCharacterClasses.js +0 -68
  381. package/lib/rules/regexEmptyGroups.d.ts +0 -10
  382. package/lib/rules/regexEmptyGroups.js +0 -66
  383. package/lib/rules/regexEmptyLazyQuantifiers.d.ts +0 -10
  384. package/lib/rules/regexEmptyLazyQuantifiers.js +0 -92
  385. package/lib/rules/regexEmptyLookaroundsAssertions.d.ts +0 -10
  386. package/lib/rules/regexEmptyLookaroundsAssertions.js +0 -68
  387. package/lib/rules/regexEmptyStringLiterals.d.ts +0 -10
  388. package/lib/rules/regexEmptyStringLiterals.js +0 -66
  389. package/lib/rules/regexEscapeBackspaces.d.ts +0 -10
  390. package/lib/rules/regexEscapeBackspaces.js +0 -69
  391. package/lib/rules/regexExecutors.d.ts +0 -10
  392. package/lib/rules/regexExecutors.js +0 -58
  393. package/lib/rules/regexGraphemeStringLiterals.d.ts +0 -10
  394. package/lib/rules/regexGraphemeStringLiterals.js +0 -51
  395. package/lib/rules/regexHexadecimalEscapes.d.ts +0 -10
  396. package/lib/rules/regexHexadecimalEscapes.js +0 -71
  397. package/lib/rules/regexIgnoreCaseFlags.d.ts +0 -10
  398. package/lib/rules/regexIgnoreCaseFlags.js +0 -145
  399. package/lib/rules/regexInvisibleCharacters.d.ts +0 -10
  400. package/lib/rules/regexInvisibleCharacters.js +0 -90
  401. package/lib/rules/regexLetterCasing.d.ts +0 -10
  402. package/lib/rules/regexLetterCasing.js +0 -186
  403. package/lib/rules/regexLiterals.d.ts +0 -10
  404. package/lib/rules/regexLiterals.js +0 -92
  405. package/lib/rules/regexLookaroundAssertions.d.ts +0 -10
  406. package/lib/rules/regexLookaroundAssertions.js +0 -163
  407. package/lib/rules/regexLookaroundQuantifierOptimizations.d.ts +0 -10
  408. package/lib/rules/regexLookaroundQuantifierOptimizations.js +0 -94
  409. package/lib/rules/regexMatchNotation.d.ts +0 -10
  410. package/lib/rules/regexMatchNotation.js +0 -139
  411. package/lib/rules/regexMisleadingCapturingGroups.d.ts +0 -10
  412. package/lib/rules/regexMisleadingCapturingGroups.js +0 -229
  413. package/lib/rules/regexMisleadingQuantifiers.d.ts +0 -10
  414. package/lib/rules/regexMisleadingQuantifiers.js +0 -78
  415. package/lib/rules/regexMisleadingUnicodeCharacters.d.ts +0 -10
  416. package/lib/rules/regexMisleadingUnicodeCharacters.js +0 -203
  417. package/lib/rules/regexNamedBackreferences.d.ts +0 -10
  418. package/lib/rules/regexNamedBackreferences.js +0 -48
  419. package/lib/rules/regexNamedCaptureGroups.d.ts +0 -9
  420. package/lib/rules/regexNamedCaptureGroups.js +0 -67
  421. package/lib/rules/regexNamedReplacements.d.ts +0 -10
  422. package/lib/rules/regexNamedReplacements.js +0 -93
  423. package/lib/rules/regexNonStandardFlags.d.ts +0 -10
  424. package/lib/rules/regexNonStandardFlags.js +0 -66
  425. package/lib/rules/regexObscureRanges.d.ts +0 -10
  426. package/lib/rules/regexObscureRanges.js +0 -93
  427. package/lib/rules/regexOctalEscapes.d.ts +0 -10
  428. package/lib/rules/regexOctalEscapes.js +0 -70
  429. package/lib/rules/regexPlusQuantifiers.d.ts +0 -10
  430. package/lib/rules/regexPlusQuantifiers.js +0 -68
  431. package/lib/rules/regexPredefinedAssertions.d.ts +0 -10
  432. package/lib/rules/regexPredefinedAssertions.js +0 -127
  433. package/lib/rules/regexQuestionQuantifiers.d.ts +0 -10
  434. package/lib/rules/regexQuestionQuantifiers.js +0 -104
  435. package/lib/rules/regexRepeatQuantifiers.d.ts +0 -10
  436. package/lib/rules/regexRepeatQuantifiers.js +0 -96
  437. package/lib/rules/regexResultArrayGroups.d.ts +0 -10
  438. package/lib/rules/regexResultArrayGroups.js +0 -187
  439. package/lib/rules/regexSetOperationOptimizations.d.ts +0 -10
  440. package/lib/rules/regexSetOperationOptimizations.js +0 -177
  441. package/lib/rules/regexStandaloneBackslashes.d.ts +0 -10
  442. package/lib/rules/regexStandaloneBackslashes.js +0 -59
  443. package/lib/rules/regexStarQuantifiers.d.ts +0 -10
  444. package/lib/rules/regexStarQuantifiers.js +0 -68
  445. package/lib/rules/regexSuperLinearBacktracking.d.ts +0 -10
  446. package/lib/rules/regexSuperLinearBacktracking.js +0 -98
  447. package/lib/rules/regexSuperLinearMoves.d.ts +0 -10
  448. package/lib/rules/regexSuperLinearMoves.js +0 -142
  449. package/lib/rules/regexTestMethods.d.ts +0 -10
  450. package/lib/rules/regexTestMethods.js +0 -83
  451. package/lib/rules/regexUnicodeCodepointEscapes.d.ts +0 -10
  452. package/lib/rules/regexUnicodeCodepointEscapes.js +0 -107
  453. package/lib/rules/regexUnicodeEscapes.d.ts +0 -9
  454. package/lib/rules/regexUnicodeEscapes.js +0 -97
  455. package/lib/rules/regexUnicodeFlag.d.ts +0 -9
  456. package/lib/rules/regexUnicodeFlag.js +0 -97
  457. package/lib/rules/regexUnicodeProperties.d.ts +0 -10
  458. package/lib/rules/regexUnicodeProperties.js +0 -133
  459. package/lib/rules/regexUnnecessaryAssertions.d.ts +0 -10
  460. package/lib/rules/regexUnnecessaryAssertions.js +0 -223
  461. package/lib/rules/regexUnnecessaryBackreferences.d.ts +0 -10
  462. package/lib/rules/regexUnnecessaryBackreferences.js +0 -125
  463. package/lib/rules/regexUnnecessaryCharacterClasses.d.ts +0 -10
  464. package/lib/rules/regexUnnecessaryCharacterClasses.js +0 -74
  465. package/lib/rules/regexUnnecessaryCharacterRanges.d.ts +0 -10
  466. package/lib/rules/regexUnnecessaryCharacterRanges.js +0 -108
  467. package/lib/rules/regexUnnecessaryDisjunctions.d.ts +0 -10
  468. package/lib/rules/regexUnnecessaryDisjunctions.js +0 -118
  469. package/lib/rules/regexUnnecessaryDollarReplacements.d.ts +0 -10
  470. package/lib/rules/regexUnnecessaryDollarReplacements.js +0 -144
  471. package/lib/rules/regexUnnecessaryEscapes.d.ts +0 -10
  472. package/lib/rules/regexUnnecessaryEscapes.js +0 -136
  473. package/lib/rules/regexUnnecessaryLookaroundAssertions.d.ts +0 -10
  474. package/lib/rules/regexUnnecessaryLookaroundAssertions.js +0 -80
  475. package/lib/rules/regexUnnecessaryNestedAssertions.d.ts +0 -10
  476. package/lib/rules/regexUnnecessaryNestedAssertions.js +0 -198
  477. package/lib/rules/regexUnnecessaryNestedQuantifiers.d.ts +0 -10
  478. package/lib/rules/regexUnnecessaryNestedQuantifiers.js +0 -93
  479. package/lib/rules/regexUnnecessaryNonCapturingGroups.d.ts +0 -10
  480. package/lib/rules/regexUnnecessaryNonCapturingGroups.js +0 -104
  481. package/lib/rules/regexUnnecessaryNumericQuantifiers.d.ts +0 -10
  482. package/lib/rules/regexUnnecessaryNumericQuantifiers.js +0 -69
  483. package/lib/rules/regexUnnecessaryOptionalAssertions.d.ts +0 -10
  484. package/lib/rules/regexUnnecessaryOptionalAssertions.js +0 -137
  485. package/lib/rules/regexUnnecessaryReferentialBackreferences.d.ts +0 -10
  486. package/lib/rules/regexUnnecessaryReferentialBackreferences.js +0 -123
  487. package/lib/rules/regexUnnecessarySetOperands.d.ts +0 -10
  488. package/lib/rules/regexUnnecessarySetOperands.js +0 -136
  489. package/lib/rules/regexUnusedCapturingGroups.d.ts +0 -10
  490. package/lib/rules/regexUnusedCapturingGroups.js +0 -69
  491. package/lib/rules/regexUnusedFlags.d.ts +0 -10
  492. package/lib/rules/regexUnusedFlags.js +0 -116
  493. package/lib/rules/regexUnusedLazyQuantifiers.d.ts +0 -10
  494. package/lib/rules/regexUnusedLazyQuantifiers.js +0 -63
  495. package/lib/rules/regexUnusedQuantifiers.d.ts +0 -10
  496. package/lib/rules/regexUnusedQuantifiers.js +0 -63
  497. package/lib/rules/regexValidity.d.ts +0 -10
  498. package/lib/rules/regexValidity.js +0 -146
  499. package/lib/rules/regexWordMatchers.d.ts +0 -10
  500. package/lib/rules/regexWordMatchers.js +0 -146
  501. package/lib/rules/regexZeroQuantifiers.d.ts +0 -10
  502. package/lib/rules/regexZeroQuantifiers.js +0 -60
  503. package/lib/rules/requireImports.d.ts +0 -10
  504. package/lib/rules/requireImports.js +0 -48
  505. package/lib/rules/responseJsonMethods.d.ts +0 -10
  506. package/lib/rules/responseJsonMethods.js +0 -51
  507. package/lib/rules/restrictedIdentifiers.d.ts +0 -13
  508. package/lib/rules/restrictedIdentifiers.js +0 -41
  509. package/lib/rules/restrictedImports.d.ts +0 -27
  510. package/lib/rules/restrictedImports.js +0 -166
  511. package/lib/rules/returnAssignments.d.ts +0 -10
  512. package/lib/rules/returnAssignments.js +0 -38
  513. package/lib/rules/returnThisTypes.d.ts +0 -10
  514. package/lib/rules/returnThisTypes.js +0 -94
  515. package/lib/rules/ruleCreator.d.ts +0 -3
  516. package/lib/rules/ruleCreator.js +0 -17
  517. package/lib/rules/selfAssignments.d.ts +0 -10
  518. package/lib/rules/selfAssignments.js +0 -29
  519. package/lib/rules/sequences.d.ts +0 -10
  520. package/lib/rules/sequences.js +0 -28
  521. package/lib/rules/setSizeLengthChecks.d.ts +0 -10
  522. package/lib/rules/setSizeLengthChecks.js +0 -48
  523. package/lib/rules/setterReturns.d.ts +0 -10
  524. package/lib/rules/setterReturns.js +0 -41
  525. package/lib/rules/shadowedRestrictedNames.d.ts +0 -10
  526. package/lib/rules/shadowedRestrictedNames.js +0 -68
  527. package/lib/rules/singleVariableDeclarations.d.ts +0 -10
  528. package/lib/rules/singleVariableDeclarations.js +0 -36
  529. package/lib/rules/sizeComparisonOperators.d.ts +0 -16
  530. package/lib/rules/sizeComparisonOperators.js +0 -148
  531. package/lib/rules/sparseArrays.d.ts +0 -10
  532. package/lib/rules/sparseArrays.js +0 -43
  533. package/lib/rules/staticMemberOnlyClasses.d.ts +0 -10
  534. package/lib/rules/staticMemberOnlyClasses.js +0 -77
  535. package/lib/rules/stringCaseMismatches.d.ts +0 -10
  536. package/lib/rules/stringCaseMismatches.js +0 -58
  537. package/lib/rules/stringCodePoints.d.ts +0 -10
  538. package/lib/rules/stringCodePoints.js +0 -50
  539. package/lib/rules/stringSliceMethods.d.ts +0 -10
  540. package/lib/rules/stringSliceMethods.js +0 -47
  541. package/lib/rules/stringStartsEndsWith.d.ts +0 -10
  542. package/lib/rules/stringStartsEndsWith.js +0 -79
  543. package/lib/rules/structuredCloneMethods.d.ts +0 -10
  544. package/lib/rules/structuredCloneMethods.js +0 -39
  545. package/lib/rules/symbolDescriptions.d.ts +0 -10
  546. package/lib/rules/symbolDescriptions.js +0 -32
  547. package/lib/rules/thisAliases.d.ts +0 -10
  548. package/lib/rules/thisAliases.js +0 -44
  549. package/lib/rules/thisBeforeSuper.d.ts +0 -10
  550. package/lib/rules/thisBeforeSuper.js +0 -86
  551. package/lib/rules/throwErrors.d.ts +0 -10
  552. package/lib/rules/throwErrors.js +0 -61
  553. package/lib/rules/topLevelAwaits.d.ts +0 -10
  554. package/lib/rules/topLevelAwaits.js +0 -49
  555. package/lib/rules/tripleSlashReferenceValidity.d.ts +0 -10
  556. package/lib/rules/tripleSlashReferenceValidity.js +0 -54
  557. package/lib/rules/tripleSlashReferences.d.ts +0 -10
  558. package/lib/rules/tripleSlashReferences.js +0 -34
  559. package/lib/rules/tsComments.d.ts +0 -22
  560. package/lib/rules/tsComments.js +0 -130
  561. package/lib/rules/tslintComments.d.ts +0 -10
  562. package/lib/rules/tslintComments.js +0 -36
  563. package/lib/rules/typeAssertionStyles.d.ts +0 -10
  564. package/lib/rules/typeAssertionStyles.js +0 -32
  565. package/lib/rules/typeImports.d.ts +0 -20
  566. package/lib/rules/typeImports.js +0 -283
  567. package/lib/rules/typeofComparisons.d.ts +0 -10
  568. package/lib/rules/typeofComparisons.js +0 -58
  569. package/lib/rules/unassignedVariables.d.ts +0 -10
  570. package/lib/rules/unassignedVariables.js +0 -34
  571. package/lib/rules/undefinedTypeofChecks.d.ts +0 -10
  572. package/lib/rules/undefinedTypeofChecks.js +0 -41
  573. package/lib/rules/undefinedVariables.d.ts +0 -10
  574. package/lib/rules/undefinedVariables.js +0 -39
  575. package/lib/rules/unicodeBOMs.d.ts +0 -10
  576. package/lib/rules/unicodeBOMs.js +0 -39
  577. package/lib/rules/unnecessaryBinds.d.ts +0 -10
  578. package/lib/rules/unnecessaryBinds.js +0 -78
  579. package/lib/rules/unnecessaryBlocks.d.ts +0 -10
  580. package/lib/rules/unnecessaryBlocks.js +0 -60
  581. package/lib/rules/unnecessaryBooleanCasts.d.ts +0 -10
  582. package/lib/rules/unnecessaryBooleanCasts.js +0 -58
  583. package/lib/rules/unnecessaryCatches.d.ts +0 -10
  584. package/lib/rules/unnecessaryCatches.js +0 -48
  585. package/lib/rules/unnecessaryComparisons.d.ts +0 -10
  586. package/lib/rules/unnecessaryComparisons.js +0 -300
  587. package/lib/rules/unnecessaryConcatenation.d.ts +0 -10
  588. package/lib/rules/unnecessaryConcatenation.js +0 -28
  589. package/lib/rules/unnecessaryEscapes.d.ts +0 -10
  590. package/lib/rules/unnecessaryEscapes.js +0 -134
  591. package/lib/rules/unnecessaryMathClamps.d.ts +0 -10
  592. package/lib/rules/unnecessaryMathClamps.js +0 -114
  593. package/lib/rules/unnecessaryNumericFractions.d.ts +0 -10
  594. package/lib/rules/unnecessaryNumericFractions.js +0 -50
  595. package/lib/rules/unnecessaryRenames.d.ts +0 -10
  596. package/lib/rules/unnecessaryRenames.js +0 -92
  597. package/lib/rules/unnecessaryTernaries.d.ts +0 -10
  598. package/lib/rules/unnecessaryTernaries.js +0 -88
  599. package/lib/rules/unnecessaryUseStricts.d.ts +0 -10
  600. package/lib/rules/unnecessaryUseStricts.js +0 -40
  601. package/lib/rules/unsafeNegations.d.ts +0 -10
  602. package/lib/rules/unsafeNegations.js +0 -38
  603. package/lib/rules/utils/collectAccessorPairs.d.ts +0 -12
  604. package/lib/rules/utils/collectAccessorPairs.js +0 -29
  605. package/lib/rules/utils/countCommentsInRange.d.ts +0 -3
  606. package/lib/rules/utils/countCommentsInRange.js +0 -12
  607. package/lib/rules/utils/discriminateAnyType.d.ts +0 -16
  608. package/lib/rules/utils/discriminateAnyType.js +0 -38
  609. package/lib/rules/utils/equalityOperators.d.ts +0 -9
  610. package/lib/rules/utils/equalityOperators.js +0 -36
  611. package/lib/rules/utils/forEachReturnStatement.d.ts +0 -3
  612. package/lib/rules/utils/forEachReturnStatement.js +0 -29
  613. package/lib/rules/utils/formatReportedType.d.ts +0 -4
  614. package/lib/rules/utils/formatReportedType.js +0 -9
  615. package/lib/rules/utils/getConstrainedType.d.ts +0 -3
  616. package/lib/rules/utils/getConstrainedType.js +0 -9
  617. package/lib/rules/utils/getFunctionName.d.ts +0 -3
  618. package/lib/rules/utils/getFunctionName.js +0 -16
  619. package/lib/rules/utils/getRegExpConstruction.d.ts +0 -10
  620. package/lib/rules/utils/getRegExpConstruction.js +0 -26
  621. package/lib/rules/utils/getRegExpLiteralDetails.d.ts +0 -7
  622. package/lib/rules/utils/getRegExpLiteralDetails.js +0 -13
  623. package/lib/rules/utils/getThisExpression.d.ts +0 -3
  624. package/lib/rules/utils/getThisExpression.js +0 -16
  625. package/lib/rules/utils/isArrayOrTupleTypeAtLocation.d.ts +0 -3
  626. package/lib/rules/utils/isArrayOrTupleTypeAtLocation.js +0 -13
  627. package/lib/rules/utils/isBuiltinSymbolLike.d.ts +0 -3
  628. package/lib/rules/utils/isBuiltinSymbolLike.js +0 -33
  629. package/lib/rules/utils/isDirectEqualityCheck.d.ts +0 -4
  630. package/lib/rules/utils/isDirectEqualityCheck.js +0 -29
  631. package/lib/rules/utils/isErrorSubclass.d.ts +0 -3
  632. package/lib/rules/utils/isErrorSubclass.js +0 -27
  633. package/lib/rules/utils/isInBooleanContext.d.ts +0 -3
  634. package/lib/rules/utils/isInBooleanContext.js +0 -22
  635. package/lib/rules/utils/isTypeRecursive.d.ts +0 -3
  636. package/lib/rules/utils/isTypeRecursive.js +0 -8
  637. package/lib/rules/utils/isUnsafeAssignment.d.ts +0 -15
  638. package/lib/rules/utils/isUnsafeAssignment.js +0 -45
  639. package/lib/rules/utils/operators.d.ts +0 -5
  640. package/lib/rules/utils/operators.js +0 -35
  641. package/lib/rules/utils/parseRegexpAst.d.ts +0 -2
  642. package/lib/rules/utils/parseRegexpAst.js +0 -17
  643. package/lib/rules/utils/parseRegexpAstFull.d.ts +0 -3
  644. package/lib/rules/utils/parseRegexpAstFull.js +0 -18
  645. package/lib/rules/utils/skipParentheses.d.ts +0 -3
  646. package/lib/rules/utils/skipParentheses.js +0 -10
  647. package/lib/rules/variableDeletions.d.ts +0 -10
  648. package/lib/rules/variableDeletions.js +0 -35
  649. package/lib/rules/voidOperator.d.ts +0 -10
  650. package/lib/rules/voidOperator.js +0 -34
  651. package/lib/rules/withStatements.d.ts +0 -10
  652. package/lib/rules/withStatements.js +0 -30
  653. package/lib/rules/wrapperObjects.d.ts +0 -10
  654. package/lib/rules/wrapperObjects.js +0 -36
  655. package/lib/type-utils/getSpecifierNames.d.ts +0 -3
  656. package/lib/type-utils/getSpecifierNames.js +0 -9
  657. package/lib/type-utils/isDeclaredInModuleBlock.d.ts +0 -3
  658. package/lib/type-utils/isDeclaredInModuleBlock.js +0 -14
  659. package/lib/type-utils/isFromFile.d.ts +0 -3
  660. package/lib/type-utils/isFromFile.js +0 -13
  661. package/lib/type-utils/isFromPackage.d.ts +0 -3
  662. package/lib/type-utils/isFromPackage.js +0 -16
  663. package/lib/type-utils/matchesSpecifier.d.ts +0 -4
  664. package/lib/type-utils/matchesSpecifier.js +0 -20
  665. package/lib/type-utils/schemas.d.ts +0 -15
  666. package/lib/type-utils/schemas.js +0 -25
@@ -1,133 +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/regexUnicodeProperties.ts
8
- function isPropertyCharacterSetWithValue(characterSet) {
9
- return characterSet.kind === "property" && !!characterSet.value;
10
- }
11
- const scriptShortToLong = {
12
- Arab: "Arabic",
13
- Armn: "Armenian",
14
- Beng: "Bengali",
15
- Cyrl: "Cyrillic",
16
- Deva: "Devanagari",
17
- Geor: "Georgian",
18
- Grek: "Greek",
19
- Gujr: "Gujarati",
20
- Guru: "Gurmukhi",
21
- Hang: "Hangul",
22
- Hani: "Han",
23
- Hebr: "Hebrew",
24
- Hira: "Hiragana",
25
- Kana: "Katakana",
26
- Knda: "Kannada",
27
- Latn: "Latin",
28
- Mlym: "Malayalam",
29
- Mymr: "Myanmar",
30
- Orya: "Oriya",
31
- Sinh: "Sinhala",
32
- Taml: "Tamil",
33
- Telu: "Telugu",
34
- Thai: "Thai",
35
- Tibt: "Tibetan",
36
- Zinh: "Inherited",
37
- Zyyy: "Common",
38
- Zzzz: "Unknown"
39
- };
40
- function getExplicitKey(raw) {
41
- const match = /^\\p\{([^=]+)=/i.exec(raw);
42
- return match ? match[1] : null;
43
- }
44
- function hasCategoryKey(explicitKey) {
45
- const lower = explicitKey.toLowerCase().replace(/_/g, "");
46
- return lower === "gc" || lower === "generalcategory";
47
- }
48
- var regexUnicodeProperties_default = ruleCreator.createRule(typescriptLanguage, {
49
- about: {
50
- description: "Reports inconsistent Unicode property names in regular expressions.",
51
- id: "regexUnicodeProperties",
52
- presets: ["stylistic"]
53
- },
54
- messages: {
55
- preferLongScript: {
56
- primary: "Use long Script property name '{{ longName }}' instead of '{{ shortName }}'.",
57
- secondary: ["Long Script names are more readable and explicit."],
58
- suggestions: ["Replace '{{ shortName }}' with '{{ longName }}'."]
59
- },
60
- unnecessaryPrefix: {
61
- primary: "The '{{ key }}=' prefix is unnecessary for this Unicode property.",
62
- secondary: ["Unicode properties may be expressed in several different ways.", "Including the fully-written out category prefix is a more verbose way that is not necessary."],
63
- suggestions: ["Replace '{{ original }}' with '{{ replacement }}'."]
64
- }
65
- },
66
- setup(context) {
67
- function checkPattern(pattern, patternStart, flags, isStringPattern) {
68
- if (!flags.includes("u") && !flags.includes("v")) return;
69
- const regexpAst = parseRegexpAst(pattern, flags);
70
- if (!regexpAst) return;
71
- function reportOn(characterSet, data, replacement, message) {
72
- const sourceEnd = isStringPattern ? characterSet.end + 1 : characterSet.end;
73
- context.report({
74
- data,
75
- fix: {
76
- range: {
77
- begin: patternStart + characterSet.start,
78
- end: patternStart + sourceEnd
79
- },
80
- text: isStringPattern ? replacement.replace(/\\/g, "\\\\") : replacement
81
- },
82
- message,
83
- range: {
84
- begin: patternStart + characterSet.start,
85
- end: patternStart + characterSet.end
86
- }
87
- });
88
- }
89
- function reportOnCategoryKey(characterSet, explicitKey) {
90
- const replacement = `${characterSet.negate ? "\\P{" : "\\p{"}${characterSet.value}}`;
91
- reportOn(characterSet, {
92
- key: explicitKey,
93
- original: characterSet.raw,
94
- replacement
95
- }, replacement, "unnecessaryPrefix");
96
- }
97
- function reportOnScriptKey(characterSet, explicitKey) {
98
- const longName = scriptShortToLong[characterSet.value];
99
- if (!longName) return;
100
- const replacement = `${characterSet.negate ? "\\P{" : "\\p{"}${explicitKey}=${longName}}`;
101
- reportOn(characterSet, {
102
- longName,
103
- shortName: characterSet.value
104
- }, replacement, "preferLongScript");
105
- }
106
- visitRegExpAST(regexpAst, { onCharacterSetEnter(characterSet) {
107
- if (!isPropertyCharacterSetWithValue(characterSet)) return;
108
- const explicitKey = getExplicitKey(characterSet.raw);
109
- if (!explicitKey) return;
110
- if (hasCategoryKey(explicitKey)) reportOnCategoryKey(characterSet, explicitKey);
111
- else reportOnScriptKey(characterSet, explicitKey);
112
- } });
113
- }
114
- function checkRegexLiteral(node, services) {
115
- const details = getRegExpLiteralDetails(node, services);
116
- checkPattern(details.pattern, details.start, details.flags, false);
117
- }
118
- function checkRegExpConstructor(node, services) {
119
- const construction = getRegExpConstruction(node, services);
120
- if (!construction) return;
121
- checkPattern(construction.raw, construction.start + 1, construction.flags, true);
122
- }
123
- return { visitors: {
124
- CallExpression: checkRegExpConstructor,
125
- NewExpression: checkRegExpConstructor,
126
- RegularExpressionLiteral: checkRegexLiteral
127
- } };
128
- }
129
- });
130
- //#endregion
131
- export { regexUnicodeProperties_default as default };
132
-
133
- //# sourceMappingURL=regexUnicodeProperties.js.map
@@ -1,10 +0,0 @@
1
- declare const _default: import("@flint.fyi/core").Rule<{
2
- readonly description: "Reports assertions in regular expressions that always reject.";
3
- readonly id: "regexUnnecessaryAssertions";
4
- readonly presets: readonly ["logical"];
5
- } & {
6
- readonly pluginId: string;
7
- readonly url: string;
8
- }, "endAnchor" | "negatedWordBoundary" | "startAnchor" | "wordBoundary", undefined>;
9
- export default _default;
10
- //# sourceMappingURL=regexUnnecessaryAssertions.d.ts.map
@@ -1,223 +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
- //#region src/rules/regexUnnecessaryAssertions.ts
6
- function findUnnecessaryAssertions(pattern, doubleEscaped, flags) {
7
- const findings = [];
8
- const hasMultiline = flags.includes("m");
9
- const wordBoundaryRegex = doubleEscaped ? /\\\\b/g : /\\b/g;
10
- const negatedWordBoundaryRegex = doubleEscaped ? /\\\\B/g : /\\B/g;
11
- let match;
12
- while ((match = wordBoundaryRegex.exec(pattern)) !== null) {
13
- const assertionStart = match.index;
14
- const assertionEnd = match.index + match[0].length;
15
- if (isInsideCharacterClass(pattern, assertionStart)) continue;
16
- const characterBefore = getCharBeforeAssertion(pattern, assertionStart, doubleEscaped);
17
- const characterAfter = getCharAfterAssertion(pattern, assertionEnd, doubleEscaped);
18
- if (characterBefore === void 0 || characterAfter === void 0) continue;
19
- const beforeIsWord = isWordCharacter(characterBefore);
20
- const afterIsWord = isWordCharacter(characterAfter);
21
- if (beforeIsWord === void 0 || afterIsWord === void 0) continue;
22
- if (beforeIsWord === afterIsWord) findings.push({
23
- assertionRaw: match[0],
24
- end: assertionEnd,
25
- start: assertionStart,
26
- type: "wordBoundary",
27
- wordType: beforeIsWord ? "word" : "non-word"
28
- });
29
- }
30
- while ((match = negatedWordBoundaryRegex.exec(pattern)) !== null) {
31
- const assertionStart = match.index;
32
- const assertionEnd = match.index + match[0].length;
33
- if (isInsideCharacterClass(pattern, assertionStart)) continue;
34
- const characterBefore = getCharBeforeAssertion(pattern, assertionStart, doubleEscaped);
35
- const characterAfter = getCharAfterAssertion(pattern, assertionEnd, doubleEscaped);
36
- if (characterBefore === void 0 || characterAfter === void 0) continue;
37
- const beforeIsWord = isWordCharacter(characterBefore);
38
- const afterIsWord = isWordCharacter(characterAfter);
39
- if (beforeIsWord === void 0 || afterIsWord === void 0) continue;
40
- if (beforeIsWord !== afterIsWord) findings.push({
41
- assertionRaw: match[0],
42
- end: assertionEnd,
43
- start: assertionStart,
44
- type: "negatedWordBoundary"
45
- });
46
- }
47
- if (!hasMultiline) {
48
- const startAnchorRegex = doubleEscaped ? /(?<!\\)\^/g : /(?<!\\)\^/g;
49
- const endAnchorRegex = doubleEscaped ? /(?<!\\)\$/g : /(?<!\\)\$/g;
50
- while ((match = startAnchorRegex.exec(pattern)) !== null) {
51
- const position = match.index;
52
- if (isInsideCharacterClass(pattern, position)) continue;
53
- if (doubleEscaped && position > 0 && pattern[position - 1] === "\\") continue;
54
- if (position > 0) findings.push({
55
- assertionRaw: "^",
56
- end: position + 1,
57
- start: position,
58
- type: "startAnchor"
59
- });
60
- }
61
- while ((match = endAnchorRegex.exec(pattern)) !== null) {
62
- const position = match.index;
63
- if (isInsideCharacterClass(pattern, position)) continue;
64
- if (doubleEscaped && position > 0 && pattern[position - 1] === "\\") continue;
65
- if (position < pattern.length - 1) findings.push({
66
- assertionRaw: "$",
67
- end: position + 1,
68
- start: position,
69
- type: "endAnchor"
70
- });
71
- }
72
- }
73
- return findings;
74
- }
75
- function getCharacterFromEscape(escape) {
76
- switch (escape) {
77
- case "\\\\d":
78
- case "\\d": return "0";
79
- case "\\\\D":
80
- case "\\D": return " ";
81
- case "\\\\s":
82
- case "\\s": return " ";
83
- case "\\\\S":
84
- case "\\S": return "a";
85
- case "\\\\w":
86
- case "\\w": return "a";
87
- case "\\\\W":
88
- case "\\W": return " ";
89
- default: return;
90
- }
91
- }
92
- function getCharAfterAssertion(pattern, assertionEnd, doubleEscaped) {
93
- if (assertionEnd >= pattern.length) return;
94
- const remaining = pattern.slice(assertionEnd);
95
- if (doubleEscaped && remaining.startsWith("\\\\")) {
96
- const charResult = getCharacterFromEscape(remaining.slice(0, 3));
97
- if (charResult) return charResult;
98
- if (remaining.length >= 3 && remaining[2]) return remaining[2];
99
- return;
100
- }
101
- if (!doubleEscaped && remaining.startsWith("\\")) {
102
- const twoCharEscape = remaining.slice(0, 2);
103
- const charResult = getCharacterFromEscape(twoCharEscape);
104
- if (charResult) return charResult;
105
- if (twoCharEscape === "\\b" || twoCharEscape === "\\B" || remaining.length < 1 || !remaining[1]) return;
106
- return remaining[1];
107
- }
108
- return remaining[0];
109
- }
110
- function getCharBeforeAssertion(pattern, assertionStart, doubleEscaped) {
111
- if (assertionStart <= 0) return;
112
- if (doubleEscaped) {
113
- if (assertionStart >= 3 && pattern[assertionStart - 3] === "\\") {
114
- const charResult = getCharacterFromEscape(pattern.slice(assertionStart - 3, assertionStart));
115
- if (charResult) return charResult;
116
- return pattern[assertionStart - 1];
117
- }
118
- return pattern[assertionStart - 1];
119
- }
120
- if (assertionStart >= 2 && pattern[assertionStart - 2] === "\\") {
121
- const charResult = getCharacterFromEscape(pattern.slice(assertionStart - 2, assertionStart));
122
- if (charResult) return charResult;
123
- return pattern[assertionStart - 1];
124
- }
125
- return pattern[assertionStart - 1];
126
- }
127
- function isInsideCharacterClass(pattern, position) {
128
- let inClass = false;
129
- let escaped = false;
130
- for (let index = 0; index < position; index++) {
131
- const char = pattern[index];
132
- if (escaped) {
133
- escaped = false;
134
- continue;
135
- }
136
- if (char === "\\") {
137
- escaped = true;
138
- continue;
139
- }
140
- if (char === "[" && !inClass) {
141
- inClass = true;
142
- continue;
143
- }
144
- if (char === "]" && inClass) inClass = false;
145
- }
146
- return inClass;
147
- }
148
- function isWordCharacter(character) {
149
- return character ? /^\w$/.test(character) : void 0;
150
- }
151
- var regexUnnecessaryAssertions_default = ruleCreator.createRule(typescriptLanguage, {
152
- about: {
153
- description: "Reports assertions in regular expressions that always reject.",
154
- id: "regexUnnecessaryAssertions",
155
- presets: ["logical"]
156
- },
157
- messages: {
158
- endAnchor: {
159
- primary: "The end anchor `$` always rejects because it is not at the end of the pattern.",
160
- secondary: ["Without the `m` (multiline) flag, `$` can only match at the very end of the input string.", "Characters after `$` mean the pattern can never match."],
161
- suggestions: [
162
- "Remove the `$` anchor.",
163
- "Move the `$` to the end of the pattern.",
164
- "Add the `m` flag if you want `$` to match at line endings."
165
- ]
166
- },
167
- negatedWordBoundary: {
168
- primary: "The negated word boundary `\\B` always rejects because there is a word/non-word transition.",
169
- secondary: ["`\\B` asserts that the position is NOT at a word boundary.", "However, the surrounding characters already create a word/non-word transition, which is a word boundary."],
170
- suggestions: ["Remove the `\\B` assertion.", "Use `\\b` if you intended to match a word boundary."]
171
- },
172
- startAnchor: {
173
- primary: "The start anchor `^` always rejects because it is not at the start of the pattern.",
174
- secondary: ["Without the `m` (multiline) flag, `^` can only match at the very beginning of the input string.", "Characters before `^` mean the pattern can never match."],
175
- suggestions: [
176
- "Remove the `^` anchor.",
177
- "Move the `^` to the start of the pattern.",
178
- "Add the `m` flag if you want `^` to match at line beginnings."
179
- ]
180
- },
181
- wordBoundary: {
182
- primary: "The word boundary `\\b` always rejects because both sides are {{ type }} characters.",
183
- secondary: ["`\\b` asserts that the position is at a word boundary (between a word and non-word character).", "Since both adjacent characters are {{ type }} characters, there is no boundary here."],
184
- suggestions: ["Remove the `\\b` assertion.", "Use `\\B` if you intended to match inside a word."]
185
- }
186
- },
187
- setup(context) {
188
- function checkRegexLiteral(node, services) {
189
- const { flags, pattern, start } = getRegExpLiteralDetails(node, services);
190
- const findings = findUnnecessaryAssertions(pattern, false, flags);
191
- for (const finding of findings) context.report({
192
- data: { type: finding.wordType ?? "" },
193
- message: finding.type,
194
- range: {
195
- begin: start + finding.start,
196
- end: start + finding.end
197
- }
198
- });
199
- }
200
- function checkRegExpConstructor(node, services) {
201
- const construction = getRegExpConstruction(node, services);
202
- if (!construction) return;
203
- const findings = findUnnecessaryAssertions(construction.pattern, true, construction.flags);
204
- for (const finding of findings) context.report({
205
- data: { type: finding.wordType ?? "" },
206
- message: finding.type,
207
- range: {
208
- begin: construction.start + 1 + finding.start,
209
- end: construction.start + 1 + finding.end
210
- }
211
- });
212
- }
213
- return { visitors: {
214
- CallExpression: checkRegExpConstructor,
215
- NewExpression: checkRegExpConstructor,
216
- RegularExpressionLiteral: checkRegexLiteral
217
- } };
218
- }
219
- });
220
- //#endregion
221
- export { regexUnnecessaryAssertions_default as default };
222
-
223
- //# sourceMappingURL=regexUnnecessaryAssertions.js.map
@@ -1,10 +0,0 @@
1
- declare const _default: import("@flint.fyi/core").Rule<{
2
- readonly description: "Reports backreferences in regular expressions that will always match empty or fail.";
3
- readonly id: "regexUnnecessaryBackreferences";
4
- readonly presets: readonly ["logical"];
5
- } & {
6
- readonly pluginId: string;
7
- readonly url: string;
8
- }, "nested" | "disjunctive" | "intoNegativeLookaround" | "forward" | "backward", undefined>;
9
- export default _default;
10
- //# sourceMappingURL=regexUnnecessaryBackreferences.d.ts.map
@@ -1,125 +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/regexUnnecessaryBackreferences.ts
8
- function getPathToRoot(node) {
9
- const path = [];
10
- for (let current = node; current; current = current.parent) path.push(current);
11
- return path;
12
- }
13
- function getUselessProblem(backreference, group) {
14
- const backrefPath = getPathToRoot(backreference);
15
- if (backrefPath.includes(group)) return "nested";
16
- const groupPath = getPathToRoot(group);
17
- const backrefPathSet = new Set(backrefPath);
18
- let commonAncestor;
19
- let groupCut = [];
20
- for (let i = 0; i < groupPath.length; i++) {
21
- const node = groupPath[i];
22
- if (node && backrefPathSet.has(node)) {
23
- commonAncestor = node;
24
- groupCut = groupPath.slice(0, i);
25
- break;
26
- }
27
- }
28
- if (commonAncestor) {
29
- const backrefCut = backrefPath.slice(0, backrefPath.indexOf(commonAncestor));
30
- if (backrefCut.length && !!groupCut.length) {
31
- const backrefChild = backrefCut.at(-1);
32
- const groupChild = groupCut.at(-1);
33
- if (backrefChild.type === "Alternative" && groupChild.type === "Alternative" && backrefChild !== groupChild) return "disjunctive";
34
- }
35
- }
36
- if (groupCut.some(isNegativeLookaround)) return "intoNegativeLookaround";
37
- if ((backrefPath.some(isLookbehind) ? "rtl" : "ltr") === "ltr") {
38
- if (backreference.end <= group.start) return "forward";
39
- } else if (group.end <= backreference.start) return "backward";
40
- }
41
- function isLookbehind(node) {
42
- return node.type === "Assertion" && node.kind === "lookbehind";
43
- }
44
- function isNegativeLookaround(node) {
45
- return node.type === "Assertion" && (node.kind === "lookahead" || node.kind === "lookbehind") && node.negate;
46
- }
47
- var regexUnnecessaryBackreferences_default = ruleCreator.createRule(typescriptLanguage, {
48
- about: {
49
- description: "Reports backreferences in regular expressions that will always match empty or fail.",
50
- id: "regexUnnecessaryBackreferences",
51
- presets: ["logical"]
52
- },
53
- messages: {
54
- backward: {
55
- primary: "Backreference '{{ backreference }}' will be ignored because it appears after the group '{{ group }}' in a lookbehind.",
56
- secondary: ["In lookbehind assertions, matching proceeds right-to-left, so this backreference is evaluated before the group."],
57
- suggestions: ["Remove the ignored backreference.", "Modify the backreference and/or group to not conflict with each other."]
58
- },
59
- disjunctive: {
60
- primary: "Backreference '{{ backreference }}' will be ignored because it and the group '{{ group }}' are in different alternatives.",
61
- secondary: ["When this backreference is evaluated, the referenced group has not participated in the match."],
62
- suggestions: ["Remove the ignored backreference.", "Modify the backreference and/or group to not conflict with each other."]
63
- },
64
- forward: {
65
- primary: "Backreference '{{ backreference }}' will be ignored because it appears before the group '{{ group }}' is defined.",
66
- secondary: ["A forward reference to a group that hasn't been matched yet will always match empty."],
67
- suggestions: ["Remove the ignored backreference.", "Modify the backreference and/or group to not conflict with each other."]
68
- },
69
- intoNegativeLookaround: {
70
- primary: "Backreference '{{ backreference }}' will be ignored because the group '{{ group }}' is in a negative lookaround.",
71
- secondary: ["When a negative lookaround succeeds, the groups inside it have not matched anything."],
72
- suggestions: ["Remove the ignored backreference.", "Modify the backreference and/or group to not conflict with each other."]
73
- },
74
- nested: {
75
- primary: "Backreference '{{ backreference }}' will be ignored because it is inside the group it references.",
76
- secondary: ["A backreference inside its own group will always match empty since the group hasn't finished capturing yet."],
77
- suggestions: ["Remove the ignored backreference.", "Modify the backreference and/or group to not conflict with each other."]
78
- }
79
- },
80
- setup(context) {
81
- function checkPattern(pattern, patternStart, flags) {
82
- const regexpAst = parseRegexpAst(pattern, flags);
83
- if (!regexpAst) return;
84
- visitRegExpAST(regexpAst, { onBackreferenceEnter(backreference) {
85
- const resolved = backreference.resolved;
86
- const groups = Array.isArray(resolved) ? resolved : [resolved];
87
- for (const group of groups) {
88
- const problem = getUselessProblem(backreference, group);
89
- if (problem) {
90
- context.report({
91
- data: {
92
- backreference: backreference.raw,
93
- group: group.raw
94
- },
95
- message: problem,
96
- range: {
97
- begin: patternStart + backreference.start,
98
- end: patternStart + backreference.end
99
- }
100
- });
101
- break;
102
- }
103
- }
104
- } });
105
- }
106
- function checkRegexLiteral(node, services) {
107
- const details = getRegExpLiteralDetails(node, services);
108
- checkPattern(details.pattern, details.start, details.flags);
109
- }
110
- function checkRegExpConstructor(node, services) {
111
- const construction = getRegExpConstruction(node, services);
112
- if (!construction) return;
113
- checkPattern(construction.raw, construction.start + 1, construction.flags);
114
- }
115
- return { visitors: {
116
- CallExpression: checkRegExpConstructor,
117
- NewExpression: checkRegExpConstructor,
118
- RegularExpressionLiteral: checkRegexLiteral
119
- } };
120
- }
121
- });
122
- //#endregion
123
- export { regexUnnecessaryBackreferences_default as default };
124
-
125
- //# sourceMappingURL=regexUnnecessaryBackreferences.js.map
@@ -1,10 +0,0 @@
1
- declare const _default: import("@flint.fyi/core").Rule<{
2
- readonly description: "Reports character classes that wrap a single element that does not require brackets.";
3
- readonly id: "regexUnnecessaryCharacterClasses";
4
- readonly presets: readonly ["logical", "logicalStrict"];
5
- } & {
6
- readonly pluginId: string;
7
- readonly url: string;
8
- }, "unnecessary", undefined>;
9
- export default _default;
10
- //# sourceMappingURL=regexUnnecessaryCharacterClasses.d.ts.map
@@ -1,74 +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 { parseRegExpLiteral, visitRegExpAST } from "@eslint-community/regexpp";
6
- //#region src/rules/regexUnnecessaryCharacterClasses.ts
7
- function canUnwrapSingleElement(characterClass) {
8
- if (characterClass.negate || characterClass.elements.length !== 1) return false;
9
- const element = characterClass.elements[0];
10
- switch (element.type) {
11
- case "Character": return element.raw !== "=" && element.raw !== "\\b" && !/^\\[1-9]\d*$/.test(element.raw);
12
- case "CharacterClassRange": return false;
13
- default: return true;
14
- }
15
- }
16
- function findUnnecessaryCharacterClasses(pattern, flags) {
17
- const results = [];
18
- let ast;
19
- try {
20
- ast = parseRegExpLiteral(new RegExp(pattern, flags));
21
- } catch {
22
- return results;
23
- }
24
- visitRegExpAST(ast, { onCharacterClassEnter(node) {
25
- if (canUnwrapSingleElement(node)) results.push(node);
26
- } });
27
- return results;
28
- }
29
- var regexUnnecessaryCharacterClasses_default = ruleCreator.createRule(typescriptLanguage, {
30
- about: {
31
- description: "Reports character classes that wrap a single element that does not require brackets.",
32
- id: "regexUnnecessaryCharacterClasses",
33
- presets: ["logical", "logicalStrict"]
34
- },
35
- messages: { unnecessary: {
36
- primary: "This character class wraps a single element that does not require brackets.",
37
- secondary: ["Brackets are used to encapsulate multiple classes of characters.", "Single-element character classes can be simplified by removing the brackets."],
38
- suggestions: ["Remove the surrounding brackets from this character class."]
39
- } },
40
- setup(context) {
41
- function checkRegexLiteral(node, services) {
42
- const { flags, pattern, start } = getRegExpLiteralDetails(node, services);
43
- const unnecessaryClasses = findUnnecessaryCharacterClasses(pattern, flags);
44
- for (const characterClass of unnecessaryClasses) context.report({
45
- message: "unnecessary",
46
- range: {
47
- begin: start + characterClass.start - 1,
48
- end: start + characterClass.end - 1
49
- }
50
- });
51
- }
52
- function checkRegExpConstructor(node, services) {
53
- const construction = getRegExpConstruction(node, services);
54
- if (!construction) return;
55
- const unnecessaryClasses = findUnnecessaryCharacterClasses(construction.pattern.replace(/\\\\/g, "\\"), construction.flags);
56
- for (const characterClass of unnecessaryClasses) context.report({
57
- message: "unnecessary",
58
- range: {
59
- begin: construction.start + characterClass.start,
60
- end: construction.start + characterClass.end
61
- }
62
- });
63
- }
64
- return { visitors: {
65
- CallExpression: checkRegExpConstructor,
66
- NewExpression: checkRegExpConstructor,
67
- RegularExpressionLiteral: checkRegexLiteral
68
- } };
69
- }
70
- });
71
- //#endregion
72
- export { regexUnnecessaryCharacterClasses_default as default };
73
-
74
- //# sourceMappingURL=regexUnnecessaryCharacterClasses.js.map
@@ -1,10 +0,0 @@
1
- declare const _default: import("@flint.fyi/core").Rule<{
2
- readonly description: "Reports character class ranges that span only one or two characters.";
3
- readonly id: "regexUnnecessaryCharacterRanges";
4
- readonly presets: readonly ["logical", "logicalStrict"];
5
- } & {
6
- readonly pluginId: string;
7
- readonly url: string;
8
- }, "adjacent" | "identity", undefined>;
9
- export default _default;
10
- //# sourceMappingURL=regexUnnecessaryCharacterRanges.d.ts.map