@flint.fyi/ts 0.21.0 → 0.23.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.
- package/{lib/plugin.d.ts → dist/index.d.mts} +1 -1
- package/dist/index.mjs +22468 -0
- package/package.json +9 -8
- package/lib/index.d.ts +0 -2
- package/lib/index.js +0 -2
- package/lib/plugin.js +0 -619
- package/lib/rules/accessorPairGroups.d.ts +0 -9
- package/lib/rules/accessorPairGroups.js +0 -46
- package/lib/rules/accessorPairTypes.d.ts +0 -9
- package/lib/rules/accessorPairTypes.js +0 -70
- package/lib/rules/accessorThisRecursion.d.ts +0 -9
- package/lib/rules/accessorThisRecursion.js +0 -63
- package/lib/rules/anyArguments.d.ts +0 -9
- package/lib/rules/anyArguments.js +0 -232
- package/lib/rules/anyAssignments.d.ts +0 -9
- package/lib/rules/anyAssignments.js +0 -263
- package/lib/rules/anyCalls.d.ts +0 -9
- package/lib/rules/anyCalls.js +0 -66
- package/lib/rules/anyMemberAccess.d.ts +0 -9
- package/lib/rules/anyMemberAccess.js +0 -83
- package/lib/rules/anyReturns.d.ts +0 -9
- package/lib/rules/anyReturns.js +0 -100
- package/lib/rules/arguments.d.ts +0 -9
- package/lib/rules/arguments.js +0 -36
- package/lib/rules/arrayCallbackReturns.d.ts +0 -9
- package/lib/rules/arrayCallbackReturns.js +0 -71
- package/lib/rules/arrayConstructors.d.ts +0 -9
- package/lib/rules/arrayConstructors.js +0 -45
- package/lib/rules/arrayDeleteUnnecessaryCounts.d.ts +0 -9
- package/lib/rules/arrayDeleteUnnecessaryCounts.js +0 -52
- package/lib/rules/arrayElementDeletions.d.ts +0 -9
- package/lib/rules/arrayElementDeletions.js +0 -41
- package/lib/rules/arrayEmptyCallbackSlots.d.ts +0 -9
- package/lib/rules/arrayEmptyCallbackSlots.js +0 -38
- package/lib/rules/arrayExistenceChecksConsistency.d.ts +0 -9
- package/lib/rules/arrayExistenceChecksConsistency.js +0 -84
- package/lib/rules/arrayFilteredFinds.d.ts +0 -9
- package/lib/rules/arrayFilteredFinds.js +0 -72
- package/lib/rules/arrayFinds.d.ts +0 -9
- package/lib/rules/arrayFinds.js +0 -39
- package/lib/rules/arrayFlatMapMethods.d.ts +0 -9
- package/lib/rules/arrayFlatMapMethods.js +0 -45
- package/lib/rules/arrayFlatMethods.d.ts +0 -9
- package/lib/rules/arrayFlatMethods.js +0 -81
- package/lib/rules/arrayFlatUnnecessaryDepths.d.ts +0 -9
- package/lib/rules/arrayFlatUnnecessaryDepths.js +0 -31
- package/lib/rules/arrayIncludes.d.ts +0 -9
- package/lib/rules/arrayIncludes.js +0 -51
- package/lib/rules/arrayIncludesMethods.d.ts +0 -9
- package/lib/rules/arrayIncludesMethods.js +0 -35
- package/lib/rules/arrayIndexOfMethods.d.ts +0 -9
- package/lib/rules/arrayIndexOfMethods.js +0 -49
- package/lib/rules/arrayLoops.d.ts +0 -9
- package/lib/rules/arrayLoops.js +0 -34
- package/lib/rules/arrayMapIdentities.d.ts +0 -9
- package/lib/rules/arrayMapIdentities.js +0 -72
- package/lib/rules/arrayMutableReverses.d.ts +0 -9
- package/lib/rules/arrayMutableReverses.js +0 -37
- package/lib/rules/arrayMutableSorts.d.ts +0 -9
- package/lib/rules/arrayMutableSorts.js +0 -70
- package/lib/rules/arrayReduceTypeArguments.d.ts +0 -9
- package/lib/rules/arrayReduceTypeArguments.js +0 -62
- package/lib/rules/arraySliceUnnecessaryEnd.d.ts +0 -9
- package/lib/rules/arraySliceUnnecessaryEnd.js +0 -49
- package/lib/rules/arraySomeMethods.d.ts +0 -9
- package/lib/rules/arraySomeMethods.js +0 -75
- package/lib/rules/arrayTernarySpreadingConsistency.d.ts +0 -9
- package/lib/rules/arrayTernarySpreadingConsistency.js +0 -72
- package/lib/rules/arrayTypes.d.ts +0 -16
- package/lib/rules/arrayTypes.js +0 -109
- package/lib/rules/arrayUnnecessaryLengthChecks.d.ts +0 -9
- package/lib/rules/arrayUnnecessaryLengthChecks.js +0 -95
- package/lib/rules/asConstAssertions.d.ts +0 -9
- package/lib/rules/asConstAssertions.js +0 -55
- package/lib/rules/assignmentOperatorShorthands.d.ts +0 -9
- package/lib/rules/assignmentOperatorShorthands.js +0 -45
- package/lib/rules/asyncFunctionAwaits.d.ts +0 -9
- package/lib/rules/asyncFunctionAwaits.js +0 -53
- package/lib/rules/asyncPromiseExecutors.d.ts +0 -9
- package/lib/rules/asyncPromiseExecutors.js +0 -39
- package/lib/rules/asyncUnnecessaryPromiseWrappers.d.ts +0 -9
- package/lib/rules/asyncUnnecessaryPromiseWrappers.js +0 -50
- package/lib/rules/atAccesses.d.ts +0 -9
- package/lib/rules/atAccesses.js +0 -50
- package/lib/rules/builtinCoercions.d.ts +0 -9
- package/lib/rules/builtinCoercions.js +0 -115
- package/lib/rules/builtinConstructorNews.d.ts +0 -9
- package/lib/rules/builtinConstructorNews.js +0 -87
- package/lib/rules/caseDeclarations.d.ts +0 -9
- package/lib/rules/caseDeclarations.js +0 -38
- package/lib/rules/caseDuplicates.d.ts +0 -9
- package/lib/rules/caseDuplicates.js +0 -34
- package/lib/rules/caseFallthroughs.d.ts +0 -9
- package/lib/rules/caseFallthroughs.js +0 -74
- package/lib/rules/catchCallbackTypes.d.ts +0 -9
- package/lib/rules/catchCallbackTypes.js +0 -65
- package/lib/rules/caughtVariableNames.d.ts +0 -9
- package/lib/rules/caughtVariableNames.js +0 -38
- package/lib/rules/chainedAssignments.d.ts +0 -9
- package/lib/rules/chainedAssignments.js +0 -31
- package/lib/rules/charAtComparisons.d.ts +0 -9
- package/lib/rules/charAtComparisons.js +0 -53
- package/lib/rules/classAssignments.d.ts +0 -9
- package/lib/rules/classAssignments.js +0 -27
- package/lib/rules/classFieldDeclarations.d.ts +0 -9
- package/lib/rules/classFieldDeclarations.js +0 -38
- package/lib/rules/classLiteralProperties.d.ts +0 -9
- package/lib/rules/classLiteralProperties.js +0 -43
- package/lib/rules/classMemberDuplicates.d.ts +0 -9
- package/lib/rules/classMemberDuplicates.js +0 -69
- package/lib/rules/classMethodsThis.d.ts +0 -13
- package/lib/rules/classMethodsThis.js +0 -122
- package/lib/rules/combinedPushes.d.ts +0 -9
- package/lib/rules/combinedPushes.js +0 -54
- package/lib/rules/consecutiveNonNullAssertions.d.ts +0 -9
- package/lib/rules/consecutiveNonNullAssertions.js +0 -37
- package/lib/rules/consoleCalls.d.ts +0 -8
- package/lib/rules/consoleCalls.js +0 -26
- package/lib/rules/constantAssignments.d.ts +0 -9
- package/lib/rules/constantAssignments.js +0 -39
- package/lib/rules/constructorGenericCalls.d.ts +0 -15
- package/lib/rules/constructorGenericCalls.js +0 -136
- package/lib/rules/constructorReturns.d.ts +0 -9
- package/lib/rules/constructorReturns.js +0 -39
- package/lib/rules/constructorSupers.d.ts +0 -9
- package/lib/rules/constructorSupers.js +0 -75
- package/lib/rules/dateConstructorClones.d.ts +0 -9
- package/lib/rules/dateConstructorClones.js +0 -35
- package/lib/rules/dateNowTimestamps.d.ts +0 -9
- package/lib/rules/dateNowTimestamps.js +0 -55
- package/lib/rules/debuggerStatements.d.ts +0 -9
- package/lib/rules/debuggerStatements.js +0 -31
- package/lib/rules/defaultCaseLast.d.ts +0 -9
- package/lib/rules/defaultCaseLast.js +0 -34
- package/lib/rules/defaultParameterLast.d.ts +0 -9
- package/lib/rules/defaultParameterLast.js +0 -40
- package/lib/rules/deprecated.d.ts +0 -9
- package/lib/rules/deprecated.js +0 -241
- package/lib/rules/destructuringConsistency.d.ts +0 -9
- package/lib/rules/destructuringConsistency.js +0 -104
- package/lib/rules/duplicateArguments.d.ts +0 -9
- package/lib/rules/duplicateArguments.js +0 -43
- package/lib/rules/dynamicDeletes.d.ts +0 -9
- package/lib/rules/dynamicDeletes.js +0 -35
- package/lib/rules/elseIfDuplicates.d.ts +0 -9
- package/lib/rules/elseIfDuplicates.js +0 -36
- package/lib/rules/elseReturns.d.ts +0 -9
- package/lib/rules/elseReturns.js +0 -65
- package/lib/rules/emptyBlocks.d.ts +0 -9
- package/lib/rules/emptyBlocks.js +0 -54
- package/lib/rules/emptyDestructures.d.ts +0 -9
- package/lib/rules/emptyDestructures.js +0 -32
- package/lib/rules/emptyEnums.d.ts +0 -9
- package/lib/rules/emptyEnums.js +0 -28
- package/lib/rules/emptyExports.d.ts +0 -9
- package/lib/rules/emptyExports.js +0 -58
- package/lib/rules/emptyFiles.d.ts +0 -9
- package/lib/rules/emptyFiles.js +0 -42
- package/lib/rules/emptyFunctions.d.ts +0 -9
- package/lib/rules/emptyFunctions.js +0 -59
- package/lib/rules/emptyModuleAttributes.d.ts +0 -9
- package/lib/rules/emptyModuleAttributes.js +0 -33
- package/lib/rules/emptyObjectTypes.d.ts +0 -9
- package/lib/rules/emptyObjectTypes.js +0 -45
- package/lib/rules/emptyStaticBlocks.d.ts +0 -9
- package/lib/rules/emptyStaticBlocks.js +0 -40
- package/lib/rules/emptyTypeParameterLists.d.ts +0 -9
- package/lib/rules/emptyTypeParameterLists.js +0 -29
- package/lib/rules/enumInitializers.d.ts +0 -9
- package/lib/rules/enumInitializers.js +0 -52
- package/lib/rules/enumMemberLiterals.d.ts +0 -9
- package/lib/rules/enumMemberLiterals.js +0 -37
- package/lib/rules/enumValueConsistency.d.ts +0 -9
- package/lib/rules/enumValueConsistency.js +0 -54
- package/lib/rules/enumValueDuplicates.d.ts +0 -9
- package/lib/rules/enumValueDuplicates.js +0 -43
- package/lib/rules/equalityOperatorNegations.d.ts +0 -8
- package/lib/rules/equalityOperatorNegations.js +0 -58
- package/lib/rules/equalityOperators.d.ts +0 -9
- package/lib/rules/equalityOperators.js +0 -42
- package/lib/rules/errorMessages.d.ts +0 -9
- package/lib/rules/errorMessages.js +0 -54
- package/lib/rules/errorSubclassProperties.d.ts +0 -9
- package/lib/rules/errorSubclassProperties.js +0 -142
- package/lib/rules/errorUnnecessaryCaptureStackTraces.d.ts +0 -9
- package/lib/rules/errorUnnecessaryCaptureStackTraces.js +0 -53
- package/lib/rules/escapeSequenceCasing.d.ts +0 -9
- package/lib/rules/escapeSequenceCasing.js +0 -73
- package/lib/rules/evals.d.ts +0 -9
- package/lib/rules/evals.js +0 -29
- package/lib/rules/evolvingVariableTypes.d.ts +0 -9
- package/lib/rules/evolvingVariableTypes.js +0 -31
- package/lib/rules/exceptionAssignments.d.ts +0 -9
- package/lib/rules/exceptionAssignments.js +0 -37
- package/lib/rules/explicitAnys.d.ts +0 -9
- package/lib/rules/explicitAnys.js +0 -53
- package/lib/rules/exponentiationOperators.d.ts +0 -9
- package/lib/rules/exponentiationOperators.js +0 -32
- package/lib/rules/exportFromImports.d.ts +0 -9
- package/lib/rules/exportFromImports.js +0 -117
- package/lib/rules/exportMutables.d.ts +0 -9
- package/lib/rules/exportMutables.js +0 -31
- package/lib/rules/exportUniqueNames.d.ts +0 -9
- package/lib/rules/exportUniqueNames.js +0 -63
- package/lib/rules/extraneousClasses.d.ts +0 -15
- package/lib/rules/extraneousClasses.js +0 -109
- package/lib/rules/fetchMethodBodies.d.ts +0 -9
- package/lib/rules/fetchMethodBodies.js +0 -70
- package/lib/rules/finallyStatementSafety.d.ts +0 -9
- package/lib/rules/finallyStatementSafety.js +0 -45
- package/lib/rules/forDirections.d.ts +0 -9
- package/lib/rules/forDirections.js +0 -73
- package/lib/rules/forInArrays.d.ts +0 -9
- package/lib/rules/forInArrays.js +0 -44
- package/lib/rules/forInGuards.d.ts +0 -8
- package/lib/rules/forInGuards.js +0 -42
- package/lib/rules/functionApplySpreads.d.ts +0 -9
- package/lib/rules/functionApplySpreads.js +0 -61
- package/lib/rules/functionAssignments.d.ts +0 -9
- package/lib/rules/functionAssignments.js +0 -27
- package/lib/rules/functionCurryingRedundancy.d.ts +0 -9
- package/lib/rules/functionCurryingRedundancy.js +0 -51
- package/lib/rules/functionDeclarationStyles.d.ts +0 -15
- package/lib/rules/functionDeclarationStyles.js +0 -65
- package/lib/rules/functionNameMatches.d.ts +0 -9
- package/lib/rules/functionNameMatches.js +0 -72
- package/lib/rules/functionNewCalls.d.ts +0 -9
- package/lib/rules/functionNewCalls.js +0 -40
- package/lib/rules/generatorFunctionYields.d.ts +0 -9
- package/lib/rules/generatorFunctionYields.js +0 -48
- package/lib/rules/getterReturns.d.ts +0 -9
- package/lib/rules/getterReturns.js +0 -63
- package/lib/rules/globalAssignments.d.ts +0 -9
- package/lib/rules/globalAssignments.js +0 -45
- package/lib/rules/globalObjectCalls.d.ts +0 -9
- package/lib/rules/globalObjectCalls.js +0 -40
- package/lib/rules/globalThisAliases.d.ts +0 -9
- package/lib/rules/globalThisAliases.js +0 -45
- package/lib/rules/impliedEvals.d.ts +0 -9
- package/lib/rules/impliedEvals.js +0 -128
- package/lib/rules/importEmptyBlocks.d.ts +0 -9
- package/lib/rules/importEmptyBlocks.js +0 -51
- package/lib/rules/importTypeSideEffects.d.ts +0 -9
- package/lib/rules/importTypeSideEffects.js +0 -29
- package/lib/rules/indexedObjectTypes.d.ts +0 -15
- package/lib/rules/indexedObjectTypes.js +0 -81
- package/lib/rules/instanceOfArrays.d.ts +0 -9
- package/lib/rules/instanceOfArrays.js +0 -29
- package/lib/rules/irregularWhitespaces.d.ts +0 -15
- package/lib/rules/irregularWhitespaces.js +0 -95
- package/lib/rules/isNaNComparisons.d.ts +0 -9
- package/lib/rules/isNaNComparisons.js +0 -41
- package/lib/rules/literalConstructorWrappers.d.ts +0 -9
- package/lib/rules/literalConstructorWrappers.js +0 -62
- package/lib/rules/mathMethods.d.ts +0 -9
- package/lib/rules/mathMethods.js +0 -126
- package/lib/rules/meaninglessVoidOperators.d.ts +0 -9
- package/lib/rules/meaninglessVoidOperators.js +0 -37
- package/lib/rules/misleadingVoidExpressions.d.ts +0 -9
- package/lib/rules/misleadingVoidExpressions.js +0 -126
- package/lib/rules/moduleSpecifierLists.d.ts +0 -9
- package/lib/rules/moduleSpecifierLists.js +0 -90
- package/lib/rules/multilineAmbiguities.d.ts +0 -9
- package/lib/rules/multilineAmbiguities.js +0 -62
- package/lib/rules/namedDefaultExports.d.ts +0 -9
- package/lib/rules/namedDefaultExports.js +0 -58
- package/lib/rules/namespaceDeclarations.d.ts +0 -13
- package/lib/rules/namespaceDeclarations.js +0 -35
- package/lib/rules/namespaceImplicitAmbientImports.d.ts +0 -9
- package/lib/rules/namespaceImplicitAmbientImports.js +0 -38
- package/lib/rules/namespaceKeywords.d.ts +0 -9
- package/lib/rules/namespaceKeywords.js +0 -38
- package/lib/rules/nativeObjectExtensions.d.ts +0 -9
- package/lib/rules/nativeObjectExtensions.js +0 -112
- package/lib/rules/negativeIndexLengthMethods.d.ts +0 -9
- package/lib/rules/negativeIndexLengthMethods.js +0 -178
- package/lib/rules/negativeZeroComparisons.d.ts +0 -9
- package/lib/rules/negativeZeroComparisons.js +0 -46
- package/lib/rules/nestedStandaloneIfs.d.ts +0 -9
- package/lib/rules/nestedStandaloneIfs.js +0 -103
- package/lib/rules/newDefinitions.d.ts +0 -9
- package/lib/rules/newDefinitions.js +0 -82
- package/lib/rules/newExpressions.d.ts +0 -9
- package/lib/rules/newExpressions.js +0 -36
- package/lib/rules/newNativeNonConstructors.d.ts +0 -9
- package/lib/rules/newNativeNonConstructors.js +0 -37
- package/lib/rules/nonNullAssertedNullishCoalesces.d.ts +0 -9
- package/lib/rules/nonNullAssertedNullishCoalesces.js +0 -61
- package/lib/rules/nonNullAssertedOptionalChains.d.ts +0 -9
- package/lib/rules/nonNullAssertedOptionalChains.js +0 -67
- package/lib/rules/nonNullAssertionPlacement.d.ts +0 -9
- package/lib/rules/nonNullAssertionPlacement.js +0 -92
- package/lib/rules/nonNullableTypeAssertions.d.ts +0 -9
- package/lib/rules/nonNullableTypeAssertions.js +0 -76
- package/lib/rules/nonOctalDecimalEscapes.d.ts +0 -9
- package/lib/rules/nonOctalDecimalEscapes.js +0 -46
- package/lib/rules/nullishCheckStyle.d.ts +0 -20
- package/lib/rules/nullishCheckStyle.js +0 -142
- package/lib/rules/nullishCoalescingOperators.d.ts +0 -21
- package/lib/rules/nullishCoalescingOperators.js +0 -321
- package/lib/rules/numberMethodRanges.d.ts +0 -9
- package/lib/rules/numberMethodRanges.js +0 -72
- package/lib/rules/numberStaticMethods.d.ts +0 -9
- package/lib/rules/numberStaticMethods.js +0 -51
- package/lib/rules/numericErasingOperations.d.ts +0 -9
- package/lib/rules/numericErasingOperations.js +0 -44
- package/lib/rules/numericLiteralParsing.d.ts +0 -9
- package/lib/rules/numericLiteralParsing.js +0 -55
- package/lib/rules/numericPrecision.d.ts +0 -9
- package/lib/rules/numericPrecision.js +0 -100
- package/lib/rules/numericSeparatorGroups.d.ts +0 -9
- package/lib/rules/numericSeparatorGroups.js +0 -99
- package/lib/rules/objectAssignSpreads.d.ts +0 -9
- package/lib/rules/objectAssignSpreads.js +0 -51
- package/lib/rules/objectCalls.d.ts +0 -9
- package/lib/rules/objectCalls.js +0 -36
- package/lib/rules/objectEntriesMethods.d.ts +0 -9
- package/lib/rules/objectEntriesMethods.js +0 -80
- package/lib/rules/objectHasOwns.d.ts +0 -9
- package/lib/rules/objectHasOwns.js +0 -48
- package/lib/rules/objectKeyDuplicates.d.ts +0 -9
- package/lib/rules/objectKeyDuplicates.js +0 -61
- package/lib/rules/objectProto.d.ts +0 -9
- package/lib/rules/objectProto.js +0 -48
- package/lib/rules/objectPrototypeBuiltIns.d.ts +0 -9
- package/lib/rules/objectPrototypeBuiltIns.js +0 -52
- package/lib/rules/objectShorthand.d.ts +0 -9
- package/lib/rules/objectShorthand.js +0 -82
- package/lib/rules/objectSpreadUnnecessaryFallbacks.d.ts +0 -9
- package/lib/rules/objectSpreadUnnecessaryFallbacks.js +0 -41
- package/lib/rules/objectTypeDefinitions.d.ts +0 -9
- package/lib/rules/objectTypeDefinitions.js +0 -32
- package/lib/rules/octalEscapes.d.ts +0 -9
- package/lib/rules/octalEscapes.js +0 -56
- package/lib/rules/octalNumbers.d.ts +0 -9
- package/lib/rules/octalNumbers.js +0 -53
- package/lib/rules/operatorAssignmentShorthand.d.ts +0 -9
- package/lib/rules/operatorAssignmentShorthand.js +0 -75
- package/lib/rules/overloadSignaturesAdjacent.d.ts +0 -9
- package/lib/rules/overloadSignaturesAdjacent.js +0 -138
- package/lib/rules/parameterReassignments.d.ts +0 -9
- package/lib/rules/parameterReassignments.js +0 -43
- package/lib/rules/parseIntRadixes.d.ts +0 -9
- package/lib/rules/parseIntRadixes.js +0 -57
- package/lib/rules/propertyAccessNotation.d.ts +0 -12
- package/lib/rules/propertyAccessNotation.js +0 -117
- package/lib/rules/recursionOnlyArguments.d.ts +0 -9
- package/lib/rules/recursionOnlyArguments.js +0 -62
- package/lib/rules/redundantTypeConstituents.d.ts +0 -9
- package/lib/rules/redundantTypeConstituents.js +0 -275
- package/lib/rules/regexAllGlobalFlags.d.ts +0 -9
- package/lib/rules/regexAllGlobalFlags.js +0 -54
- package/lib/rules/regexAmbiguousInvalidity.d.ts +0 -9
- package/lib/rules/regexAmbiguousInvalidity.js +0 -295
- package/lib/rules/regexCharacterClassRanges.d.ts +0 -9
- package/lib/rules/regexCharacterClassRanges.js +0 -135
- package/lib/rules/regexCharacterClassSetOperations.d.ts +0 -9
- package/lib/rules/regexCharacterClassSetOperations.js +0 -79
- package/lib/rules/regexCharacterClasses.d.ts +0 -9
- package/lib/rules/regexCharacterClasses.js +0 -232
- package/lib/rules/regexConciseCharacterClassNegations.d.ts +0 -9
- package/lib/rules/regexConciseCharacterClassNegations.js +0 -50
- package/lib/rules/regexContradictoryAssertions.d.ts +0 -9
- package/lib/rules/regexContradictoryAssertions.js +0 -208
- package/lib/rules/regexControlCharacterEscapes.d.ts +0 -9
- package/lib/rules/regexControlCharacterEscapes.js +0 -128
- package/lib/rules/regexControlCharacters.d.ts +0 -9
- package/lib/rules/regexControlCharacters.js +0 -93
- package/lib/rules/regexDigitMatchers.d.ts +0 -9
- package/lib/rules/regexDigitMatchers.js +0 -178
- package/lib/rules/regexDollarEscapes.d.ts +0 -9
- package/lib/rules/regexDollarEscapes.js +0 -89
- package/lib/rules/regexDuplicateCharacterClassCharacters.d.ts +0 -9
- package/lib/rules/regexDuplicateCharacterClassCharacters.js +0 -126
- package/lib/rules/regexEmptyAlternatives.d.ts +0 -9
- package/lib/rules/regexEmptyAlternatives.js +0 -138
- package/lib/rules/regexEmptyCapturingGroups.d.ts +0 -9
- package/lib/rules/regexEmptyCapturingGroups.js +0 -65
- package/lib/rules/regexEmptyCharacterClasses.d.ts +0 -9
- package/lib/rules/regexEmptyCharacterClasses.js +0 -66
- package/lib/rules/regexEmptyGroups.d.ts +0 -9
- package/lib/rules/regexEmptyGroups.js +0 -64
- package/lib/rules/regexEmptyLazyQuantifiers.d.ts +0 -9
- package/lib/rules/regexEmptyLazyQuantifiers.js +0 -90
- package/lib/rules/regexEmptyLookaroundsAssertions.d.ts +0 -9
- package/lib/rules/regexEmptyLookaroundsAssertions.js +0 -66
- package/lib/rules/regexEmptyStringLiterals.d.ts +0 -9
- package/lib/rules/regexEmptyStringLiterals.js +0 -64
- package/lib/rules/regexEscapeBackspaces.d.ts +0 -9
- package/lib/rules/regexEscapeBackspaces.js +0 -67
- package/lib/rules/regexExecutors.d.ts +0 -9
- package/lib/rules/regexExecutors.js +0 -56
- package/lib/rules/regexGraphemeStringLiterals.d.ts +0 -9
- package/lib/rules/regexGraphemeStringLiterals.js +0 -49
- package/lib/rules/regexHexadecimalEscapes.d.ts +0 -9
- package/lib/rules/regexHexadecimalEscapes.js +0 -69
- package/lib/rules/regexIgnoreCaseFlags.d.ts +0 -9
- package/lib/rules/regexIgnoreCaseFlags.js +0 -143
- package/lib/rules/regexInvisibleCharacters.d.ts +0 -9
- package/lib/rules/regexInvisibleCharacters.js +0 -88
- package/lib/rules/regexLetterCasing.d.ts +0 -9
- package/lib/rules/regexLetterCasing.js +0 -184
- package/lib/rules/regexLiterals.d.ts +0 -9
- package/lib/rules/regexLiterals.js +0 -87
- package/lib/rules/regexLookaroundAssertions.d.ts +0 -9
- package/lib/rules/regexLookaroundAssertions.js +0 -161
- package/lib/rules/regexLookaroundQuantifierOptimizations.d.ts +0 -9
- package/lib/rules/regexLookaroundQuantifierOptimizations.js +0 -92
- package/lib/rules/regexMatchNotation.d.ts +0 -9
- package/lib/rules/regexMatchNotation.js +0 -137
- package/lib/rules/regexMisleadingCapturingGroups.d.ts +0 -9
- package/lib/rules/regexMisleadingCapturingGroups.js +0 -227
- package/lib/rules/regexMisleadingQuantifiers.d.ts +0 -9
- package/lib/rules/regexMisleadingQuantifiers.js +0 -76
- package/lib/rules/regexMisleadingUnicodeCharacters.d.ts +0 -9
- package/lib/rules/regexMisleadingUnicodeCharacters.js +0 -201
- package/lib/rules/regexNamedBackreferences.d.ts +0 -9
- package/lib/rules/regexNamedBackreferences.js +0 -46
- package/lib/rules/regexNamedCaptureGroups.d.ts +0 -8
- package/lib/rules/regexNamedCaptureGroups.js +0 -65
- package/lib/rules/regexNamedReplacements.d.ts +0 -9
- package/lib/rules/regexNamedReplacements.js +0 -91
- package/lib/rules/regexNonStandardFlags.d.ts +0 -9
- package/lib/rules/regexNonStandardFlags.js +0 -64
- package/lib/rules/regexObscureRanges.d.ts +0 -9
- package/lib/rules/regexObscureRanges.js +0 -91
- package/lib/rules/regexOctalEscapes.d.ts +0 -9
- package/lib/rules/regexOctalEscapes.js +0 -68
- package/lib/rules/regexPlusQuantifiers.d.ts +0 -9
- package/lib/rules/regexPlusQuantifiers.js +0 -66
- package/lib/rules/regexPredefinedAssertions.d.ts +0 -9
- package/lib/rules/regexPredefinedAssertions.js +0 -125
- package/lib/rules/regexQuestionQuantifiers.d.ts +0 -9
- package/lib/rules/regexQuestionQuantifiers.js +0 -102
- package/lib/rules/regexRepeatQuantifiers.d.ts +0 -9
- package/lib/rules/regexRepeatQuantifiers.js +0 -94
- package/lib/rules/regexResultArrayGroups.d.ts +0 -9
- package/lib/rules/regexResultArrayGroups.js +0 -185
- package/lib/rules/regexSetOperationOptimizations.d.ts +0 -9
- package/lib/rules/regexSetOperationOptimizations.js +0 -175
- package/lib/rules/regexStandaloneBackslashes.d.ts +0 -9
- package/lib/rules/regexStandaloneBackslashes.js +0 -57
- package/lib/rules/regexStarQuantifiers.d.ts +0 -9
- package/lib/rules/regexStarQuantifiers.js +0 -66
- package/lib/rules/regexSuperLinearBacktracking.d.ts +0 -9
- package/lib/rules/regexSuperLinearBacktracking.js +0 -96
- package/lib/rules/regexSuperLinearMoves.d.ts +0 -9
- package/lib/rules/regexSuperLinearMoves.js +0 -140
- package/lib/rules/regexTestMethods.d.ts +0 -9
- package/lib/rules/regexTestMethods.js +0 -81
- package/lib/rules/regexUnicodeCodepointEscapes.d.ts +0 -9
- package/lib/rules/regexUnicodeCodepointEscapes.js +0 -105
- package/lib/rules/regexUnicodeEscapes.d.ts +0 -8
- package/lib/rules/regexUnicodeEscapes.js +0 -95
- package/lib/rules/regexUnicodeFlag.d.ts +0 -8
- package/lib/rules/regexUnicodeFlag.js +0 -95
- package/lib/rules/regexUnicodeProperties.d.ts +0 -9
- package/lib/rules/regexUnicodeProperties.js +0 -131
- package/lib/rules/regexUnnecessaryAssertions.d.ts +0 -9
- package/lib/rules/regexUnnecessaryAssertions.js +0 -221
- package/lib/rules/regexUnnecessaryBackreferences.d.ts +0 -9
- package/lib/rules/regexUnnecessaryBackreferences.js +0 -123
- package/lib/rules/regexUnnecessaryCharacterClasses.d.ts +0 -9
- package/lib/rules/regexUnnecessaryCharacterClasses.js +0 -72
- package/lib/rules/regexUnnecessaryCharacterRanges.d.ts +0 -9
- package/lib/rules/regexUnnecessaryCharacterRanges.js +0 -106
- package/lib/rules/regexUnnecessaryDisjunctions.d.ts +0 -9
- package/lib/rules/regexUnnecessaryDisjunctions.js +0 -116
- package/lib/rules/regexUnnecessaryDollarReplacements.d.ts +0 -9
- package/lib/rules/regexUnnecessaryDollarReplacements.js +0 -142
- package/lib/rules/regexUnnecessaryEscapes.d.ts +0 -9
- package/lib/rules/regexUnnecessaryEscapes.js +0 -134
- package/lib/rules/regexUnnecessaryLookaroundAssertions.d.ts +0 -9
- package/lib/rules/regexUnnecessaryLookaroundAssertions.js +0 -78
- package/lib/rules/regexUnnecessaryNestedAssertions.d.ts +0 -9
- package/lib/rules/regexUnnecessaryNestedAssertions.js +0 -196
- package/lib/rules/regexUnnecessaryNestedQuantifiers.d.ts +0 -9
- package/lib/rules/regexUnnecessaryNestedQuantifiers.js +0 -91
- package/lib/rules/regexUnnecessaryNonCapturingGroups.d.ts +0 -9
- package/lib/rules/regexUnnecessaryNonCapturingGroups.js +0 -102
- package/lib/rules/regexUnnecessaryNumericQuantifiers.d.ts +0 -9
- package/lib/rules/regexUnnecessaryNumericQuantifiers.js +0 -67
- package/lib/rules/regexUnnecessaryOptionalAssertions.d.ts +0 -9
- package/lib/rules/regexUnnecessaryOptionalAssertions.js +0 -135
- package/lib/rules/regexUnnecessaryReferentialBackreferences.d.ts +0 -9
- package/lib/rules/regexUnnecessaryReferentialBackreferences.js +0 -121
- package/lib/rules/regexUnnecessarySetOperands.d.ts +0 -9
- package/lib/rules/regexUnnecessarySetOperands.js +0 -134
- package/lib/rules/regexUnusedCapturingGroups.d.ts +0 -9
- package/lib/rules/regexUnusedCapturingGroups.js +0 -67
- package/lib/rules/regexUnusedFlags.d.ts +0 -9
- package/lib/rules/regexUnusedFlags.js +0 -114
- package/lib/rules/regexUnusedLazyQuantifiers.d.ts +0 -9
- package/lib/rules/regexUnusedLazyQuantifiers.js +0 -61
- package/lib/rules/regexUnusedQuantifiers.d.ts +0 -9
- package/lib/rules/regexUnusedQuantifiers.js +0 -61
- package/lib/rules/regexValidity.d.ts +0 -9
- package/lib/rules/regexValidity.js +0 -144
- package/lib/rules/regexWordMatchers.d.ts +0 -9
- package/lib/rules/regexWordMatchers.js +0 -144
- package/lib/rules/regexZeroQuantifiers.d.ts +0 -9
- package/lib/rules/regexZeroQuantifiers.js +0 -58
- package/lib/rules/requireImports.d.ts +0 -9
- package/lib/rules/requireImports.js +0 -46
- package/lib/rules/responseJsonMethods.d.ts +0 -9
- package/lib/rules/responseJsonMethods.js +0 -49
- package/lib/rules/restrictedIdentifiers.d.ts +0 -12
- package/lib/rules/restrictedIdentifiers.js +0 -39
- package/lib/rules/restrictedImports.d.ts +0 -26
- package/lib/rules/restrictedImports.js +0 -164
- package/lib/rules/returnAssignments.d.ts +0 -9
- package/lib/rules/returnAssignments.js +0 -36
- package/lib/rules/returnThisTypes.d.ts +0 -9
- package/lib/rules/returnThisTypes.js +0 -92
- package/lib/rules/ruleCreator.d.ts +0 -2
- package/lib/rules/ruleCreator.js +0 -15
- package/lib/rules/selfAssignments.d.ts +0 -9
- package/lib/rules/selfAssignments.js +0 -27
- package/lib/rules/sequences.d.ts +0 -9
- package/lib/rules/sequences.js +0 -26
- package/lib/rules/setSizeLengthChecks.d.ts +0 -9
- package/lib/rules/setSizeLengthChecks.js +0 -46
- package/lib/rules/setterReturns.d.ts +0 -9
- package/lib/rules/setterReturns.js +0 -39
- package/lib/rules/shadowedRestrictedNames.d.ts +0 -9
- package/lib/rules/shadowedRestrictedNames.js +0 -66
- package/lib/rules/singleVariableDeclarations.d.ts +0 -9
- package/lib/rules/singleVariableDeclarations.js +0 -34
- package/lib/rules/sizeComparisonOperators.d.ts +0 -15
- package/lib/rules/sizeComparisonOperators.js +0 -146
- package/lib/rules/sparseArrays.d.ts +0 -9
- package/lib/rules/sparseArrays.js +0 -41
- package/lib/rules/staticMemberOnlyClasses.d.ts +0 -9
- package/lib/rules/staticMemberOnlyClasses.js +0 -75
- package/lib/rules/stringCaseMismatches.d.ts +0 -9
- package/lib/rules/stringCaseMismatches.js +0 -53
- package/lib/rules/stringCodePoints.d.ts +0 -9
- package/lib/rules/stringCodePoints.js +0 -48
- package/lib/rules/stringSliceMethods.d.ts +0 -9
- package/lib/rules/stringSliceMethods.js +0 -45
- package/lib/rules/stringStartsEndsWith.d.ts +0 -9
- package/lib/rules/stringStartsEndsWith.js +0 -77
- package/lib/rules/structuredCloneMethods.d.ts +0 -9
- package/lib/rules/structuredCloneMethods.js +0 -37
- package/lib/rules/symbolDescriptions.d.ts +0 -9
- package/lib/rules/symbolDescriptions.js +0 -30
- package/lib/rules/thisAliases.d.ts +0 -9
- package/lib/rules/thisAliases.js +0 -42
- package/lib/rules/thisBeforeSuper.d.ts +0 -9
- package/lib/rules/thisBeforeSuper.js +0 -84
- package/lib/rules/throwErrors.d.ts +0 -9
- package/lib/rules/throwErrors.js +0 -59
- package/lib/rules/topLevelAwaits.d.ts +0 -9
- package/lib/rules/topLevelAwaits.js +0 -47
- package/lib/rules/tripleSlashReferenceValidity.d.ts +0 -9
- package/lib/rules/tripleSlashReferenceValidity.js +0 -52
- package/lib/rules/tripleSlashReferences.d.ts +0 -9
- package/lib/rules/tripleSlashReferences.js +0 -32
- package/lib/rules/tsComments.d.ts +0 -21
- package/lib/rules/tsComments.js +0 -128
- package/lib/rules/tslintComments.d.ts +0 -9
- package/lib/rules/tslintComments.js +0 -34
- package/lib/rules/typeAssertionStyles.d.ts +0 -9
- package/lib/rules/typeAssertionStyles.js +0 -30
- package/lib/rules/typeImports.d.ts +0 -19
- package/lib/rules/typeImports.js +0 -281
- package/lib/rules/typeofComparisons.d.ts +0 -9
- package/lib/rules/typeofComparisons.js +0 -53
- package/lib/rules/unassignedVariables.d.ts +0 -9
- package/lib/rules/unassignedVariables.js +0 -32
- package/lib/rules/undefinedTypeofChecks.d.ts +0 -9
- package/lib/rules/undefinedTypeofChecks.js +0 -39
- package/lib/rules/undefinedVariables.d.ts +0 -9
- package/lib/rules/undefinedVariables.js +0 -37
- package/lib/rules/unicodeBOMs.d.ts +0 -9
- package/lib/rules/unicodeBOMs.js +0 -37
- package/lib/rules/unnecessaryBinds.d.ts +0 -9
- package/lib/rules/unnecessaryBinds.js +0 -76
- package/lib/rules/unnecessaryBlocks.d.ts +0 -9
- package/lib/rules/unnecessaryBlocks.js +0 -58
- package/lib/rules/unnecessaryBooleanCasts.d.ts +0 -9
- package/lib/rules/unnecessaryBooleanCasts.js +0 -56
- package/lib/rules/unnecessaryCatches.d.ts +0 -9
- package/lib/rules/unnecessaryCatches.js +0 -46
- package/lib/rules/unnecessaryComparisons.d.ts +0 -9
- package/lib/rules/unnecessaryComparisons.js +0 -291
- package/lib/rules/unnecessaryConcatenation.d.ts +0 -9
- package/lib/rules/unnecessaryConcatenation.js +0 -26
- package/lib/rules/unnecessaryEscapes.d.ts +0 -9
- package/lib/rules/unnecessaryEscapes.js +0 -132
- package/lib/rules/unnecessaryMathClamps.d.ts +0 -9
- package/lib/rules/unnecessaryMathClamps.js +0 -106
- package/lib/rules/unnecessaryNumericFractions.d.ts +0 -9
- package/lib/rules/unnecessaryNumericFractions.js +0 -48
- package/lib/rules/unnecessaryRenames.d.ts +0 -9
- package/lib/rules/unnecessaryRenames.js +0 -90
- package/lib/rules/unnecessaryTernaries.d.ts +0 -9
- package/lib/rules/unnecessaryTernaries.js +0 -86
- package/lib/rules/unnecessaryUseStricts.d.ts +0 -9
- package/lib/rules/unnecessaryUseStricts.js +0 -38
- package/lib/rules/unsafeNegations.d.ts +0 -9
- package/lib/rules/unsafeNegations.js +0 -36
- package/lib/rules/utils/collectAccessorPairs.d.ts +0 -11
- package/lib/rules/utils/collectAccessorPairs.js +0 -27
- package/lib/rules/utils/countCommentsInRange.d.ts +0 -2
- package/lib/rules/utils/countCommentsInRange.js +0 -10
- package/lib/rules/utils/discriminateAnyType.d.ts +0 -15
- package/lib/rules/utils/discriminateAnyType.js +0 -36
- package/lib/rules/utils/equalityOperators.d.ts +0 -8
- package/lib/rules/utils/equalityOperators.js +0 -34
- package/lib/rules/utils/forEachReturnStatement.d.ts +0 -2
- package/lib/rules/utils/forEachReturnStatement.js +0 -27
- package/lib/rules/utils/formatReportedType.d.ts +0 -3
- package/lib/rules/utils/formatReportedType.js +0 -7
- package/lib/rules/utils/getConstrainedType.d.ts +0 -2
- package/lib/rules/utils/getConstrainedType.js +0 -7
- package/lib/rules/utils/getFunctionName.d.ts +0 -2
- package/lib/rules/utils/getFunctionName.js +0 -14
- package/lib/rules/utils/getRegExpConstruction.d.ts +0 -8
- package/lib/rules/utils/getRegExpConstruction.js +0 -25
- package/lib/rules/utils/getRegExpLiteralDetails.d.ts +0 -6
- package/lib/rules/utils/getRegExpLiteralDetails.js +0 -11
- package/lib/rules/utils/getThisExpression.d.ts +0 -2
- package/lib/rules/utils/getThisExpression.js +0 -14
- package/lib/rules/utils/isArrayOrTupleTypeAtLocation.d.ts +0 -2
- package/lib/rules/utils/isArrayOrTupleTypeAtLocation.js +0 -11
- package/lib/rules/utils/isBuiltinSymbolLike.d.ts +0 -2
- package/lib/rules/utils/isBuiltinSymbolLike.js +0 -31
- package/lib/rules/utils/isDirectEqualityCheck.d.ts +0 -3
- package/lib/rules/utils/isDirectEqualityCheck.js +0 -27
- package/lib/rules/utils/isErrorSubclass.d.ts +0 -3
- package/lib/rules/utils/isErrorSubclass.js +0 -25
- package/lib/rules/utils/isInBooleanContext.d.ts +0 -2
- package/lib/rules/utils/isInBooleanContext.js +0 -20
- package/lib/rules/utils/isTypeRecursive.d.ts +0 -2
- package/lib/rules/utils/isTypeRecursive.js +0 -6
- package/lib/rules/utils/isUnsafeAssignment.d.ts +0 -14
- package/lib/rules/utils/isUnsafeAssignment.js +0 -43
- package/lib/rules/utils/operators.d.ts +0 -4
- package/lib/rules/utils/operators.js +0 -33
- package/lib/rules/utils/parseRegexpAst.d.ts +0 -1
- package/lib/rules/utils/parseRegexpAst.js +0 -15
- package/lib/rules/utils/parseRegexpAstFull.d.ts +0 -2
- package/lib/rules/utils/parseRegexpAstFull.js +0 -16
- package/lib/rules/utils/skipParentheses.d.ts +0 -2
- package/lib/rules/utils/skipParentheses.js +0 -8
- package/lib/rules/variableDeletions.d.ts +0 -9
- package/lib/rules/variableDeletions.js +0 -33
- package/lib/rules/voidOperator.d.ts +0 -9
- package/lib/rules/voidOperator.js +0 -32
- package/lib/rules/withStatements.d.ts +0 -9
- package/lib/rules/withStatements.js +0 -28
- package/lib/rules/wrapperObjects.d.ts +0 -9
- package/lib/rules/wrapperObjects.js +0 -34
- package/lib/type-utils/getSpecifierNames.d.ts +0 -2
- package/lib/type-utils/getSpecifierNames.js +0 -7
- package/lib/type-utils/isDeclaredInModuleBlock.d.ts +0 -2
- package/lib/type-utils/isDeclaredInModuleBlock.js +0 -12
- package/lib/type-utils/isFromFile.d.ts +0 -2
- package/lib/type-utils/isFromFile.js +0 -11
- package/lib/type-utils/isFromPackage.d.ts +0 -2
- package/lib/type-utils/isFromPackage.js +0 -13
- package/lib/type-utils/matchesSpecifier.d.ts +0 -3
- package/lib/type-utils/matchesSpecifier.js +0 -18
- package/lib/type-utils/schemas.d.ts +0 -14
- package/lib/type-utils/schemas.js +0 -23
package/lib/rules/thisAliases.js
DELETED
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
import { ruleCreator } from "./ruleCreator.js";
|
|
2
|
-
import { typescriptLanguage } from "@flint.fyi/typescript-language";
|
|
3
|
-
import * as ts$1 from "typescript";
|
|
4
|
-
//#region src/rules/thisAliases.ts
|
|
5
|
-
var thisAliases_default = ruleCreator.createRule(typescriptLanguage, {
|
|
6
|
-
about: {
|
|
7
|
-
description: "Reports assigning `this` to a variable.",
|
|
8
|
-
id: "thisAliases",
|
|
9
|
-
presets: ["logical"]
|
|
10
|
-
},
|
|
11
|
-
messages: { noThisAlias: {
|
|
12
|
-
primary: "Assigning `this` to a variable is unnecessary with arrow functions.",
|
|
13
|
-
secondary: ["Arrow functions preserve the surrounding `this` context automatically.", "Aliasing `this` is a pre-ES2015 pattern that is no longer needed."],
|
|
14
|
-
suggestions: ["Use arrow functions to preserve the `this` context.", "Access `this` directly instead of through an alias."]
|
|
15
|
-
} },
|
|
16
|
-
setup(context) {
|
|
17
|
-
return { visitors: {
|
|
18
|
-
BinaryExpression(node, { sourceFile }) {
|
|
19
|
-
if (node.operatorToken.kind !== ts$1.SyntaxKind.EqualsToken || node.right.kind !== ts$1.SyntaxKind.ThisKeyword || !ts$1.isIdentifier(node.left)) return;
|
|
20
|
-
context.report({
|
|
21
|
-
message: "noThisAlias",
|
|
22
|
-
range: {
|
|
23
|
-
begin: node.getStart(sourceFile),
|
|
24
|
-
end: node.getEnd()
|
|
25
|
-
}
|
|
26
|
-
});
|
|
27
|
-
},
|
|
28
|
-
VariableDeclaration(node, { sourceFile }) {
|
|
29
|
-
if (node.initializer?.kind !== ts$1.SyntaxKind.ThisKeyword || !ts$1.isIdentifier(node.name)) return;
|
|
30
|
-
context.report({
|
|
31
|
-
message: "noThisAlias",
|
|
32
|
-
range: {
|
|
33
|
-
begin: node.getStart(sourceFile),
|
|
34
|
-
end: node.getEnd()
|
|
35
|
-
}
|
|
36
|
-
});
|
|
37
|
-
}
|
|
38
|
-
} };
|
|
39
|
-
}
|
|
40
|
-
});
|
|
41
|
-
//#endregion
|
|
42
|
-
export { thisAliases_default as default };
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
declare const _default: import("@flint.fyi/core").Rule<{
|
|
2
|
-
readonly description: "Reports using `this` or `super` before calling `super()` in derived class constructors.";
|
|
3
|
-
readonly id: "thisBeforeSuper";
|
|
4
|
-
readonly presets: readonly ["javascript"];
|
|
5
|
-
} & {
|
|
6
|
-
readonly pluginId: string;
|
|
7
|
-
readonly url: string;
|
|
8
|
-
}, "thisBeforeSuper" | "superBeforeSuper", undefined>;
|
|
9
|
-
export default _default;
|
|
@@ -1,84 +0,0 @@
|
|
|
1
|
-
import { ruleCreator } from "./ruleCreator.js";
|
|
2
|
-
import { typescriptLanguage } from "@flint.fyi/typescript-language";
|
|
3
|
-
import * as ts$1 from "typescript";
|
|
4
|
-
//#region src/rules/thisBeforeSuper.ts
|
|
5
|
-
function findAllThisOrSuper(node, sourceFile, results) {
|
|
6
|
-
if (isNestedScope(node)) return;
|
|
7
|
-
if (node.kind === ts$1.SyntaxKind.ThisKeyword) {
|
|
8
|
-
results.push(node);
|
|
9
|
-
return;
|
|
10
|
-
}
|
|
11
|
-
if (node.kind === ts$1.SyntaxKind.SuperKeyword && ts$1.isPropertyAccessExpression(node.parent)) {
|
|
12
|
-
results.push(node);
|
|
13
|
-
return;
|
|
14
|
-
}
|
|
15
|
-
ts$1.forEachChild(node, (child) => {
|
|
16
|
-
findAllThisOrSuper(child, sourceFile, results);
|
|
17
|
-
});
|
|
18
|
-
}
|
|
19
|
-
function findAllThisOrSuperBeforePosition(node, position, sourceFile, results) {
|
|
20
|
-
if (node.getStart(sourceFile) >= position) return;
|
|
21
|
-
if (isNestedScope(node)) return;
|
|
22
|
-
if (node.kind === ts$1.SyntaxKind.ThisKeyword) {
|
|
23
|
-
results.push(node);
|
|
24
|
-
return;
|
|
25
|
-
}
|
|
26
|
-
if (node.kind === ts$1.SyntaxKind.SuperKeyword && ts$1.isPropertyAccessExpression(node.parent)) {
|
|
27
|
-
results.push(node);
|
|
28
|
-
return;
|
|
29
|
-
}
|
|
30
|
-
ts$1.forEachChild(node, (child) => {
|
|
31
|
-
findAllThisOrSuperBeforePosition(child, position, sourceFile, results);
|
|
32
|
-
});
|
|
33
|
-
}
|
|
34
|
-
function findFirstSuperCall(node) {
|
|
35
|
-
if (isNestedScope(node)) return;
|
|
36
|
-
if (ts$1.isCallExpression(node) && node.expression.kind === ts$1.SyntaxKind.SuperKeyword) return node;
|
|
37
|
-
return ts$1.forEachChild(node, (child) => {
|
|
38
|
-
return findFirstSuperCall(child);
|
|
39
|
-
});
|
|
40
|
-
}
|
|
41
|
-
function isNestedScope(node) {
|
|
42
|
-
return ts$1.isFunctionDeclaration(node) || ts$1.isFunctionExpression(node) || ts$1.isArrowFunction(node) || ts$1.isClassDeclaration(node) || ts$1.isClassExpression(node);
|
|
43
|
-
}
|
|
44
|
-
var thisBeforeSuper_default = ruleCreator.createRule(typescriptLanguage, {
|
|
45
|
-
about: {
|
|
46
|
-
description: "Reports using `this` or `super` before calling `super()` in derived class constructors.",
|
|
47
|
-
id: "thisBeforeSuper",
|
|
48
|
-
presets: ["javascript"]
|
|
49
|
-
},
|
|
50
|
-
messages: {
|
|
51
|
-
superBeforeSuper: {
|
|
52
|
-
primary: "`super` property access is not allowed before `super()` in derived class constructors.",
|
|
53
|
-
secondary: ["Accessing `super.property` before calling `super()` throws a ReferenceError."],
|
|
54
|
-
suggestions: ["Move `super()` before any use of `super.property`."]
|
|
55
|
-
},
|
|
56
|
-
thisBeforeSuper: {
|
|
57
|
-
primary: "`this` is not allowed before `super()` in derived class constructors.",
|
|
58
|
-
secondary: ["Accessing `this` before calling `super()` throws a ReferenceError.", "The `super()` call must be the first statement that accesses the instance."],
|
|
59
|
-
suggestions: ["Move `super()` before any use of `this`."]
|
|
60
|
-
}
|
|
61
|
-
},
|
|
62
|
-
setup(context) {
|
|
63
|
-
return { visitors: { Constructor(node, { sourceFile }) {
|
|
64
|
-
if (!node.parent.heritageClauses) return;
|
|
65
|
-
if (!node.parent.heritageClauses.some((clause) => clause.token === ts$1.SyntaxKind.ExtendsKeyword) || !node.body) return;
|
|
66
|
-
const superCall = findFirstSuperCall(node.body);
|
|
67
|
-
const invalidNodes = [];
|
|
68
|
-
if (superCall) {
|
|
69
|
-
const superCallStart = superCall.getStart(sourceFile);
|
|
70
|
-
findAllThisOrSuperBeforePosition(node.body, superCallStart, sourceFile, invalidNodes);
|
|
71
|
-
for (const arg of superCall.arguments) findAllThisOrSuper(arg, sourceFile, invalidNodes);
|
|
72
|
-
} else findAllThisOrSuper(node.body, sourceFile, invalidNodes);
|
|
73
|
-
for (const invalidNode of invalidNodes) context.report({
|
|
74
|
-
message: invalidNode.kind === ts$1.SyntaxKind.ThisKeyword ? "thisBeforeSuper" : "superBeforeSuper",
|
|
75
|
-
range: {
|
|
76
|
-
begin: invalidNode.getStart(sourceFile),
|
|
77
|
-
end: invalidNode.getEnd()
|
|
78
|
-
}
|
|
79
|
-
});
|
|
80
|
-
} } };
|
|
81
|
-
}
|
|
82
|
-
});
|
|
83
|
-
//#endregion
|
|
84
|
-
export { thisBeforeSuper_default as default };
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
declare const _default: import("@flint.fyi/core").Rule<{
|
|
2
|
-
readonly description: "Reports throwing values that are not `Error` objects.";
|
|
3
|
-
readonly id: "throwErrors";
|
|
4
|
-
readonly presets: readonly ["logical"];
|
|
5
|
-
} & {
|
|
6
|
-
readonly pluginId: string;
|
|
7
|
-
readonly url: string;
|
|
8
|
-
}, "throwError" | "throwUndefined", undefined>;
|
|
9
|
-
export default _default;
|
package/lib/rules/throwErrors.js
DELETED
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
import { ruleCreator } from "./ruleCreator.js";
|
|
2
|
-
import { getConstrainedTypeAtLocation } from "./utils/getConstrainedType.js";
|
|
3
|
-
import { declarationIncludesGlobal, getTSNodeRange, typescriptLanguage } from "@flint.fyi/typescript-language";
|
|
4
|
-
import { TypeFlags } from "typescript";
|
|
5
|
-
import * as tsutils from "ts-api-utils";
|
|
6
|
-
//#region src/rules/throwErrors.ts
|
|
7
|
-
function isBuiltinErrorType(type, program) {
|
|
8
|
-
const symbol = type.getSymbol();
|
|
9
|
-
if (symbol?.getName() !== "Error") return false;
|
|
10
|
-
return !!symbol.getDeclarations()?.some((declaration) => declarationIncludesGlobal(declaration, program));
|
|
11
|
-
}
|
|
12
|
-
function isErrorType(type, program) {
|
|
13
|
-
if (isBuiltinErrorType(type, program)) return true;
|
|
14
|
-
if (type.isUnion()) return type.types.every((t) => isErrorType(t, program));
|
|
15
|
-
if (type.isIntersection()) return type.types.some((t) => isErrorType(t, program));
|
|
16
|
-
const baseTypes = type.getBaseTypes();
|
|
17
|
-
if (baseTypes) {
|
|
18
|
-
for (const baseType of baseTypes) if (isErrorType(baseType, program)) return true;
|
|
19
|
-
}
|
|
20
|
-
return false;
|
|
21
|
-
}
|
|
22
|
-
var throwErrors_default = ruleCreator.createRule(typescriptLanguage, {
|
|
23
|
-
about: {
|
|
24
|
-
description: "Reports throwing values that are not `Error` objects.",
|
|
25
|
-
id: "throwErrors",
|
|
26
|
-
presets: ["logical"]
|
|
27
|
-
},
|
|
28
|
-
messages: {
|
|
29
|
-
throwError: {
|
|
30
|
-
primary: "Only `Error` objects should be thrown.",
|
|
31
|
-
secondary: ["Throwing non-`Error` values loses stack trace information.", "Error objects provide consistent behavior and debugging information."],
|
|
32
|
-
suggestions: ["Wrap the value in an `Error`: `throw new Error(value)`.", "Create a custom `Error` class for specific error types."]
|
|
33
|
-
},
|
|
34
|
-
throwUndefined: {
|
|
35
|
-
primary: "Throwing `undefined` provides no context and is hard to debug.",
|
|
36
|
-
secondary: ["Throw an `Error` to preserve stack trace and debugging details.", "If you need a custom error type, extend `Error`."],
|
|
37
|
-
suggestions: ["Throw a new `Error`: `throw new Error(\"message\")`.", "Create a custom `Error` class for specific error types."]
|
|
38
|
-
}
|
|
39
|
-
},
|
|
40
|
-
setup(context) {
|
|
41
|
-
return { visitors: { ThrowStatement(node, { program, sourceFile, typeChecker }) {
|
|
42
|
-
const type = getConstrainedTypeAtLocation(node.expression, typeChecker);
|
|
43
|
-
if (tsutils.isTypeFlagSet(type, TypeFlags.Any | TypeFlags.Unknown) || isErrorType(type, program)) return;
|
|
44
|
-
if (type.isUnion() ? type.types.every((t) => tsutils.isTypeFlagSet(t, TypeFlags.Undefined)) : tsutils.isTypeFlagSet(type, TypeFlags.Undefined)) {
|
|
45
|
-
context.report({
|
|
46
|
-
message: "throwUndefined",
|
|
47
|
-
range: getTSNodeRange(node.expression, sourceFile)
|
|
48
|
-
});
|
|
49
|
-
return;
|
|
50
|
-
}
|
|
51
|
-
context.report({
|
|
52
|
-
message: "throwError",
|
|
53
|
-
range: getTSNodeRange(node.expression, sourceFile)
|
|
54
|
-
});
|
|
55
|
-
} } };
|
|
56
|
-
}
|
|
57
|
-
});
|
|
58
|
-
//#endregion
|
|
59
|
-
export { throwErrors_default as default };
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
declare const _default: import("@flint.fyi/core").Rule<{
|
|
2
|
-
readonly description: "Reports top-level await expressions in files that export values.";
|
|
3
|
-
readonly id: "topLevelAwaits";
|
|
4
|
-
readonly presets: readonly ["logicalStrict"];
|
|
5
|
-
} & {
|
|
6
|
-
readonly pluginId: string;
|
|
7
|
-
readonly url: string;
|
|
8
|
-
}, "topLevelAwait", undefined>;
|
|
9
|
-
export default _default;
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
import { ruleCreator } from "./ruleCreator.js";
|
|
2
|
-
import { typescriptLanguage } from "@flint.fyi/typescript-language";
|
|
3
|
-
import ts, { SyntaxKind } from "typescript";
|
|
4
|
-
//#region src/rules/topLevelAwaits.ts
|
|
5
|
-
function hasExportModifier(node) {
|
|
6
|
-
return !!(ts.canHaveModifiers(node) && ts.getModifiers(node)?.some((modifier) => modifier.kind === SyntaxKind.ExportKeyword));
|
|
7
|
-
}
|
|
8
|
-
function isInsideFunction(node) {
|
|
9
|
-
let current = node.parent;
|
|
10
|
-
while (current) {
|
|
11
|
-
if (ts.isFunctionDeclaration(current) || ts.isFunctionExpression(current) || ts.isArrowFunction(current) || ts.isMethodDeclaration(current) || ts.isConstructorDeclaration(current) || ts.isGetAccessorDeclaration(current) || ts.isSetAccessorDeclaration(current)) return true;
|
|
12
|
-
current = current.parent;
|
|
13
|
-
}
|
|
14
|
-
return false;
|
|
15
|
-
}
|
|
16
|
-
var topLevelAwaits_default = ruleCreator.createRule(typescriptLanguage, {
|
|
17
|
-
about: {
|
|
18
|
-
description: "Reports top-level await expressions in files that export values.",
|
|
19
|
-
id: "topLevelAwaits",
|
|
20
|
-
presets: ["logicalStrict"]
|
|
21
|
-
},
|
|
22
|
-
messages: { topLevelAwait: {
|
|
23
|
-
primary: "Top-level await in a module file causes imports from the module to wait on the asynchronous work.",
|
|
24
|
-
secondary: ["Modules using top-level await block their dependents until the await resolves.", "This can cause unexpected delays in application startup."],
|
|
25
|
-
suggestions: ["Wrap the await in an async function that is called at the appropriate time.", "Use dynamic imports with `.then()` for lazy loading."]
|
|
26
|
-
} },
|
|
27
|
-
setup(context) {
|
|
28
|
-
let fileHasExports;
|
|
29
|
-
return { visitors: {
|
|
30
|
-
AwaitExpression(node, { sourceFile }) {
|
|
31
|
-
if (!fileHasExports || isInsideFunction(node)) return;
|
|
32
|
-
context.report({
|
|
33
|
-
message: "topLevelAwait",
|
|
34
|
-
range: {
|
|
35
|
-
begin: node.getStart(sourceFile),
|
|
36
|
-
end: node.expression.getStart(sourceFile)
|
|
37
|
-
}
|
|
38
|
-
});
|
|
39
|
-
},
|
|
40
|
-
SourceFile(node) {
|
|
41
|
-
fileHasExports = node.statements.some((statement) => hasExportModifier(statement) || statement.kind === SyntaxKind.ExportAssignment || statement.kind === SyntaxKind.ExportDeclaration);
|
|
42
|
-
}
|
|
43
|
-
} };
|
|
44
|
-
}
|
|
45
|
-
});
|
|
46
|
-
//#endregion
|
|
47
|
-
export { topLevelAwaits_default as default };
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
declare const _default: import("@flint.fyi/core").Rule<{
|
|
2
|
-
readonly description: "Reports invalid triple-slash reference directives.";
|
|
3
|
-
readonly id: "tripleSlashReferenceValidity";
|
|
4
|
-
readonly presets: readonly ["logical"];
|
|
5
|
-
} & {
|
|
6
|
-
readonly pluginId: string;
|
|
7
|
-
readonly url: string;
|
|
8
|
-
}, "invalidDirective", undefined>;
|
|
9
|
-
export default _default;
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
import { ruleCreator } from "./ruleCreator.js";
|
|
2
|
-
import { typescriptLanguage } from "@flint.fyi/typescript-language";
|
|
3
|
-
//#region src/rules/tripleSlashReferenceValidity.ts
|
|
4
|
-
const referenceMatcher = /^\/\/\/\s*<\s*reference(?:\s+([\w-]+\s*=\s*"[^"]*"|[\w-]+\s*=\s*'[^']*'|[^\s/>]+))?\s*\/>/i;
|
|
5
|
-
const validDirectives = /* @__PURE__ */ new Set([
|
|
6
|
-
"lib",
|
|
7
|
-
"no-default-lib",
|
|
8
|
-
"path",
|
|
9
|
-
"types"
|
|
10
|
-
]);
|
|
11
|
-
var tripleSlashReferenceValidity_default = ruleCreator.createRule(typescriptLanguage, {
|
|
12
|
-
about: {
|
|
13
|
-
description: "Reports invalid triple-slash reference directives.",
|
|
14
|
-
id: "tripleSlashReferenceValidity",
|
|
15
|
-
presets: ["logical"]
|
|
16
|
-
},
|
|
17
|
-
messages: { invalidDirective: {
|
|
18
|
-
primary: "Invalid triple-slash reference directive format.",
|
|
19
|
-
secondary: ["Only path, types, lib, and no-default-lib directives are valid TypeScript reference types.", "Triple-slash directives with incorrect reference types don't have any affect on types."],
|
|
20
|
-
suggestions: ["Use /// <reference types=\"...\" />, /// <reference path=\"...\" />, /// <reference lib=\"...\" />, or /// <reference no-default-lib=\"true\" />."]
|
|
21
|
-
} },
|
|
22
|
-
setup(context) {
|
|
23
|
-
function checkLine(line, position) {
|
|
24
|
-
const trimmed = line.trimStart();
|
|
25
|
-
if (!trimmed.startsWith("///")) return;
|
|
26
|
-
const referenceMatch = referenceMatcher.exec(trimmed);
|
|
27
|
-
if (!referenceMatch) return;
|
|
28
|
-
const attributes = referenceMatch[1]?.trim();
|
|
29
|
-
if (attributes) {
|
|
30
|
-
const attributeMatch = /^([\w-]+)\s*=\s*["'][^"']*["']$/.exec(attributes);
|
|
31
|
-
if (attributeMatch && validDirectives.has(attributeMatch[1].toLowerCase())) return;
|
|
32
|
-
}
|
|
33
|
-
context.report({
|
|
34
|
-
message: "invalidDirective",
|
|
35
|
-
range: {
|
|
36
|
-
begin: position + line.indexOf("///"),
|
|
37
|
-
end: position + line.length
|
|
38
|
-
}
|
|
39
|
-
});
|
|
40
|
-
}
|
|
41
|
-
return { visitors: { SourceFile(node) {
|
|
42
|
-
const lines = node.getFullText().split("\n");
|
|
43
|
-
let position = 0;
|
|
44
|
-
for (const line of lines) {
|
|
45
|
-
checkLine(line, position);
|
|
46
|
-
position += line.length + 1;
|
|
47
|
-
}
|
|
48
|
-
} } };
|
|
49
|
-
}
|
|
50
|
-
});
|
|
51
|
-
//#endregion
|
|
52
|
-
export { tripleSlashReferenceValidity_default as default };
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
declare const _default: import("@flint.fyi/core").Rule<{
|
|
2
|
-
readonly description: "Reports triple-slash reference directives.";
|
|
3
|
-
readonly id: "tripleSlashReferences";
|
|
4
|
-
readonly presets: readonly ["logical"];
|
|
5
|
-
} & {
|
|
6
|
-
readonly pluginId: string;
|
|
7
|
-
readonly url: string;
|
|
8
|
-
}, "noTripleSlashReference", undefined>;
|
|
9
|
-
export default _default;
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import { ruleCreator } from "./ruleCreator.js";
|
|
2
|
-
import { typescriptLanguage } from "@flint.fyi/typescript-language";
|
|
3
|
-
//#region src/rules/tripleSlashReferences.ts
|
|
4
|
-
var tripleSlashReferences_default = ruleCreator.createRule(typescriptLanguage, {
|
|
5
|
-
about: {
|
|
6
|
-
description: "Reports triple-slash reference directives.",
|
|
7
|
-
id: "tripleSlashReferences",
|
|
8
|
-
presets: ["logical"]
|
|
9
|
-
},
|
|
10
|
-
messages: { noTripleSlashReference: {
|
|
11
|
-
primary: "Prefer ECMAScript modules and/or TSConfig settings over legacy triple-slash directives.",
|
|
12
|
-
secondary: ["ECMAScript module imports are the modern way to declare dependencies.", "Triple-slash references are only needed in specific legacy scenarios."],
|
|
13
|
-
suggestions: ["Use ECMAScript module imports instead.", "Configure tsconfig.json to include type definitions."]
|
|
14
|
-
} },
|
|
15
|
-
setup(context) {
|
|
16
|
-
return { visitors: { SourceFile(node) {
|
|
17
|
-
for (const reference of [
|
|
18
|
-
...node.referencedFiles,
|
|
19
|
-
...node.typeReferenceDirectives,
|
|
20
|
-
...node.libReferenceDirectives
|
|
21
|
-
]) context.report({
|
|
22
|
-
message: "noTripleSlashReference",
|
|
23
|
-
range: {
|
|
24
|
-
begin: reference.pos,
|
|
25
|
-
end: reference.end
|
|
26
|
-
}
|
|
27
|
-
});
|
|
28
|
-
} } };
|
|
29
|
-
}
|
|
30
|
-
});
|
|
31
|
-
//#endregion
|
|
32
|
-
export { tripleSlashReferences_default as default };
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { z } from "zod/v4";
|
|
2
|
-
declare const _default: import("@flint.fyi/core").Rule<{
|
|
3
|
-
readonly description: "Reports problematic TypeScript comment directives or requires descriptions after directives.";
|
|
4
|
-
readonly id: "tsComments";
|
|
5
|
-
readonly presets: readonly ["logical"];
|
|
6
|
-
} & {
|
|
7
|
-
readonly pluginId: string;
|
|
8
|
-
readonly url: string;
|
|
9
|
-
}, "descriptionNotMatchPattern" | "directiveComment" | "preferExpectError" | "requiresDescription", {
|
|
10
|
-
allowTsExpectError: z.ZodDefault<z.ZodUnion<readonly [z.ZodLiteral<true>, z.ZodLiteral<false>, z.ZodLiteral<"allow-with-description">, z.ZodObject<{
|
|
11
|
-
descriptionFormat: z.ZodString;
|
|
12
|
-
}, z.core.$strip>]>>;
|
|
13
|
-
allowTsIgnore: z.ZodDefault<z.ZodUnion<readonly [z.ZodLiteral<true>, z.ZodLiteral<false>, z.ZodLiteral<"allow-with-description">, z.ZodObject<{
|
|
14
|
-
descriptionFormat: z.ZodString;
|
|
15
|
-
}, z.core.$strip>]>>;
|
|
16
|
-
allowTsNocheck: z.ZodDefault<z.ZodUnion<readonly [z.ZodLiteral<true>, z.ZodLiteral<false>, z.ZodLiteral<"allow-with-description">, z.ZodObject<{
|
|
17
|
-
descriptionFormat: z.ZodString;
|
|
18
|
-
}, z.core.$strip>]>>;
|
|
19
|
-
minimumDescriptionLength: z.ZodDefault<z.ZodNumber>;
|
|
20
|
-
}>;
|
|
21
|
-
export default _default;
|
package/lib/rules/tsComments.js
DELETED
|
@@ -1,128 +0,0 @@
|
|
|
1
|
-
import { ruleCreator } from "./ruleCreator.js";
|
|
2
|
-
import { typescriptLanguage } from "@flint.fyi/typescript-language";
|
|
3
|
-
import * as tsutils from "ts-api-utils";
|
|
4
|
-
import { z as z$1 } from "zod/v4";
|
|
5
|
-
//#region src/rules/tsComments.ts
|
|
6
|
-
const directiveConfigSchema = z$1.union([
|
|
7
|
-
z$1.literal(true),
|
|
8
|
-
z$1.literal(false),
|
|
9
|
-
z$1.literal("allow-with-description"),
|
|
10
|
-
z$1.object({ descriptionFormat: z$1.string().describe("A regular expression that the description must match for it to be considered valid.") })
|
|
11
|
-
]);
|
|
12
|
-
const options = {
|
|
13
|
-
allowTsExpectError: directiveConfigSchema.default(false).describe("Whether to allow `@ts-expect-error` directives, and with which restrictions."),
|
|
14
|
-
allowTsIgnore: directiveConfigSchema.default(false).describe("Whether to allow `@ts-ignore` directives."),
|
|
15
|
-
allowTsNocheck: directiveConfigSchema.default(false).describe("Whether to allow `@ts-nocheck` directives."),
|
|
16
|
-
minimumDescriptionLength: z$1.number().int().min(0).default(10).describe("The minimum length required for a description when using 'allow-with-description'.")
|
|
17
|
-
};
|
|
18
|
-
const tsDirectiveRegex = /^(?:\/\/\/?|\/\*)\s*@ts-(ignore|expect-error|nocheck|check)(?<description>[\s:*].*)?/i;
|
|
19
|
-
function createFixedComment(text, fromDirective, toDirective) {
|
|
20
|
-
return text.replace(new RegExp(`@ts-${fromDirective}`, "i"), `@ts-${toDirective}`);
|
|
21
|
-
}
|
|
22
|
-
const directiveConfigKeys = /* @__PURE__ */ new Map([
|
|
23
|
-
["ts-expect-error", "allowTsExpectError"],
|
|
24
|
-
["ts-ignore", "allowTsIgnore"],
|
|
25
|
-
["ts-nocheck", "allowTsNocheck"]
|
|
26
|
-
]);
|
|
27
|
-
var tsComments_default = ruleCreator.createRule(typescriptLanguage, {
|
|
28
|
-
about: {
|
|
29
|
-
description: "Reports problematic TypeScript comment directives or requires descriptions after directives.",
|
|
30
|
-
id: "tsComments",
|
|
31
|
-
presets: ["logical"]
|
|
32
|
-
},
|
|
33
|
-
messages: {
|
|
34
|
-
descriptionNotMatchPattern: {
|
|
35
|
-
primary: "The description for `{{ directive }}` does not match the preferred format: {{ format }}.",
|
|
36
|
-
secondary: ["This project requires comment directive descriptions to match the configured pattern.", "This helps maintain consistent and informative comments."],
|
|
37
|
-
suggestions: ["Update the description to match the required format.", "Check the rule configuration for the expected pattern."]
|
|
38
|
-
},
|
|
39
|
-
directiveComment: {
|
|
40
|
-
primary: "This project does not allow using `@{{ directive }}` to suppress compilation errors.",
|
|
41
|
-
secondary: ["Using TypeScript directive comments reduces the effectiveness of TypeScript's type system.", "Prefer fixing type errors or using targeted suppressions with descriptions."],
|
|
42
|
-
suggestions: ["Remove the directive and fix the underlying type error.", "If the suppression is necessary, add a description explaining why."]
|
|
43
|
-
},
|
|
44
|
-
preferExpectError: {
|
|
45
|
-
primary: "Prefer `@ts-expect-error` instead of `@ts-ignore`, as `@ts-expect-error` triggers type errors if it becomes unnecessary.",
|
|
46
|
-
secondary: ["`@ts-expect-error` will report if the next line has no error.", "This helps identify stale suppressions when errors are fixed."],
|
|
47
|
-
suggestions: ["Replace `@ts-ignore` with `@ts-expect-error`."]
|
|
48
|
-
},
|
|
49
|
-
requiresDescription: {
|
|
50
|
-
primary: "`@{{ directive }}` should include a description of at least {{ minimum }} characters.",
|
|
51
|
-
secondary: ["A description helps explain why the suppression is necessary.", "This improves code maintainability and documentation."],
|
|
52
|
-
suggestions: ["Add a description explaining why this suppression is needed."]
|
|
53
|
-
}
|
|
54
|
-
},
|
|
55
|
-
options,
|
|
56
|
-
setup(context) {
|
|
57
|
-
return { visitors: { SourceFile(node, { options }) {
|
|
58
|
-
function reportCommentDirective(comment, directive, data, messageDefault, messageIgnore = messageDefault) {
|
|
59
|
-
const range = {
|
|
60
|
-
begin: comment.pos,
|
|
61
|
-
end: comment.end
|
|
62
|
-
};
|
|
63
|
-
const [fix, message] = directive === "ts-ignore" ? [{
|
|
64
|
-
range,
|
|
65
|
-
text: createFixedComment(comment.text, "ignore", "expect-error")
|
|
66
|
-
}, messageIgnore] : [void 0, messageDefault];
|
|
67
|
-
context.report({
|
|
68
|
-
data,
|
|
69
|
-
fix,
|
|
70
|
-
message,
|
|
71
|
-
range
|
|
72
|
-
});
|
|
73
|
-
}
|
|
74
|
-
function getDirectiveOption(directive) {
|
|
75
|
-
const optionKey = directiveConfigKeys.get(directive);
|
|
76
|
-
if (!optionKey) return;
|
|
77
|
-
return options[optionKey];
|
|
78
|
-
}
|
|
79
|
-
const descriptionFormats = /* @__PURE__ */ new Map();
|
|
80
|
-
for (const directive of [
|
|
81
|
-
"ts-expect-error",
|
|
82
|
-
"ts-ignore",
|
|
83
|
-
"ts-nocheck"
|
|
84
|
-
]) {
|
|
85
|
-
const option = getDirectiveOption(directive);
|
|
86
|
-
if (typeof option === "object" && option.descriptionFormat) descriptionFormats.set(directive, new RegExp(option.descriptionFormat));
|
|
87
|
-
}
|
|
88
|
-
for (const comment of tsutils.iterateComments(node)) {
|
|
89
|
-
const match = tsDirectiveRegex.exec(comment.text);
|
|
90
|
-
if (!match) continue;
|
|
91
|
-
const directive = match[1].toLowerCase();
|
|
92
|
-
const description = (match.groups?.description ?? "").trim();
|
|
93
|
-
checkComment(comment, `ts-${directive}`, description);
|
|
94
|
-
}
|
|
95
|
-
function checkComment(comment, directive, description) {
|
|
96
|
-
const optionKey = directiveConfigKeys.get(directive);
|
|
97
|
-
if (!optionKey) return;
|
|
98
|
-
const config = options[optionKey];
|
|
99
|
-
switch (config) {
|
|
100
|
-
case "allow-with-description":
|
|
101
|
-
if (description.replace(/^[:\s*]+/, "").replace(/\s*\*\/$/, "").trim().length < options.minimumDescriptionLength) {
|
|
102
|
-
reportCommentDirective(comment, directive, {
|
|
103
|
-
directive,
|
|
104
|
-
minimum: options.minimumDescriptionLength
|
|
105
|
-
}, "requiresDescription");
|
|
106
|
-
return;
|
|
107
|
-
}
|
|
108
|
-
break;
|
|
109
|
-
case false: return;
|
|
110
|
-
case true:
|
|
111
|
-
reportCommentDirective(comment, directive, { directive }, "directiveComment", "preferExpectError");
|
|
112
|
-
return;
|
|
113
|
-
default:
|
|
114
|
-
if (typeof config === "object" && config.descriptionFormat) {
|
|
115
|
-
const format = descriptionFormats.get(directive);
|
|
116
|
-
if (format && !format.test(description)) reportCommentDirective(comment, directive, {
|
|
117
|
-
directive,
|
|
118
|
-
format: format.source
|
|
119
|
-
}, "descriptionNotMatchPattern");
|
|
120
|
-
}
|
|
121
|
-
break;
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
} } };
|
|
125
|
-
}
|
|
126
|
-
});
|
|
127
|
-
//#endregion
|
|
128
|
-
export { tsComments_default as default };
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
declare const _default: import("@flint.fyi/core").Rule<{
|
|
2
|
-
readonly description: "Reports TSLint disable/enable comments.";
|
|
3
|
-
readonly id: "tslintComments";
|
|
4
|
-
readonly presets: readonly ["logical"];
|
|
5
|
-
} & {
|
|
6
|
-
readonly pluginId: string;
|
|
7
|
-
readonly url: string;
|
|
8
|
-
}, "tslintComment", undefined>;
|
|
9
|
-
export default _default;
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import { ruleCreator } from "./ruleCreator.js";
|
|
2
|
-
import { typescriptLanguage } from "@flint.fyi/typescript-language";
|
|
3
|
-
import * as tsutils from "ts-api-utils";
|
|
4
|
-
//#region src/rules/tslintComments.ts
|
|
5
|
-
const tslintDirectiveRegex = /^\s*\/?tslint:(?:enable|disable)(?:-(?:line|next-line))?(?::|\s|$)/i;
|
|
6
|
-
var tslintComments_default = ruleCreator.createRule(typescriptLanguage, {
|
|
7
|
-
about: {
|
|
8
|
-
description: "Reports TSLint disable/enable comments.",
|
|
9
|
-
id: "tslintComments",
|
|
10
|
-
presets: ["logical"]
|
|
11
|
-
},
|
|
12
|
-
messages: { tslintComment: {
|
|
13
|
-
primary: "TSLint is deprecated and its comments are no longer necessary.",
|
|
14
|
-
secondary: ["TSLint has been replaced by other linters such as Flint.", "These comments no longer have any effect."],
|
|
15
|
-
suggestions: ["Remove the TSLint comment.", "Replace it with the equivalent Flint comment if needed."]
|
|
16
|
-
} },
|
|
17
|
-
setup(context) {
|
|
18
|
-
return { visitors: { SourceFile: (node) => {
|
|
19
|
-
const comments = tsutils.iterateComments(node);
|
|
20
|
-
for (const { end, pos, text } of comments) {
|
|
21
|
-
const commentContent = text.replace(/^\/\/\s*/, "").replace(/^\/\*\s*/, "").replace(/\s*\*\/$/, "");
|
|
22
|
-
if (tslintDirectiveRegex.test(commentContent)) context.report({
|
|
23
|
-
message: "tslintComment",
|
|
24
|
-
range: {
|
|
25
|
-
begin: pos,
|
|
26
|
-
end
|
|
27
|
-
}
|
|
28
|
-
});
|
|
29
|
-
}
|
|
30
|
-
} } };
|
|
31
|
-
}
|
|
32
|
-
});
|
|
33
|
-
//#endregion
|
|
34
|
-
export { tslintComments_default as default };
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
declare const _default: import("@flint.fyi/core").Rule<{
|
|
2
|
-
readonly description: "Reports angle-bracket type assertions.";
|
|
3
|
-
readonly id: "typeAssertionStyles";
|
|
4
|
-
readonly presets: readonly ["stylistic"];
|
|
5
|
-
} & {
|
|
6
|
-
readonly pluginId: string;
|
|
7
|
-
readonly url: string;
|
|
8
|
-
}, "preferAs", undefined>;
|
|
9
|
-
export default _default;
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import { ruleCreator } from "./ruleCreator.js";
|
|
2
|
-
import { getTSNodeRange, typescriptLanguage } from "@flint.fyi/typescript-language";
|
|
3
|
-
import ts from "typescript";
|
|
4
|
-
//#region src/rules/typeAssertionStyles.ts
|
|
5
|
-
function isConstAssertion(node, sourceFile) {
|
|
6
|
-
return node.type.kind === ts.SyntaxKind.TypeReference && node.type.typeName.kind === ts.SyntaxKind.Identifier && node.type.typeName.getText(sourceFile) === "const";
|
|
7
|
-
}
|
|
8
|
-
var typeAssertionStyles_default = ruleCreator.createRule(typescriptLanguage, {
|
|
9
|
-
about: {
|
|
10
|
-
description: "Reports angle-bracket type assertions.",
|
|
11
|
-
id: "typeAssertionStyles",
|
|
12
|
-
presets: ["stylistic"]
|
|
13
|
-
},
|
|
14
|
-
messages: { preferAs: {
|
|
15
|
-
primary: "Prefer `as` syntax for type assertions instead of legacy angle-brackets.",
|
|
16
|
-
secondary: ["Angle-bracket syntax is ambiguous with JSX.", "The 'as' syntax is clearer and works in all contexts."],
|
|
17
|
-
suggestions: ["Convert '<Type>value' to 'value as Type'."]
|
|
18
|
-
} },
|
|
19
|
-
setup(context) {
|
|
20
|
-
return { visitors: { TypeAssertionExpression(node, { sourceFile }) {
|
|
21
|
-
if (isConstAssertion(node, sourceFile)) return;
|
|
22
|
-
context.report({
|
|
23
|
-
message: "preferAs",
|
|
24
|
-
range: getTSNodeRange(node, sourceFile)
|
|
25
|
-
});
|
|
26
|
-
} } };
|
|
27
|
-
}
|
|
28
|
-
});
|
|
29
|
-
//#endregion
|
|
30
|
-
export { typeAssertionStyles_default as default };
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { z } from "zod/v4";
|
|
2
|
-
declare const _default: import("@flint.fyi/core").Rule<{
|
|
3
|
-
readonly description: "Reports imports that do not match the configured type import style.";
|
|
4
|
-
readonly id: "typeImports";
|
|
5
|
-
readonly presets: readonly ["stylistic"];
|
|
6
|
-
} & {
|
|
7
|
-
readonly pluginId: string;
|
|
8
|
-
readonly url: string;
|
|
9
|
-
}, "avoidImportType" | "someImportsAreOnlyTypes" | "typeOverValue", {
|
|
10
|
-
fixStyle: z.ZodDefault<z.ZodEnum<{
|
|
11
|
-
"inline-type-imports": "inline-type-imports";
|
|
12
|
-
"separate-type-imports": "separate-type-imports";
|
|
13
|
-
}>>;
|
|
14
|
-
prefer: z.ZodDefault<z.ZodEnum<{
|
|
15
|
-
"no-type-imports": "no-type-imports";
|
|
16
|
-
"type-imports": "type-imports";
|
|
17
|
-
}>>;
|
|
18
|
-
}>;
|
|
19
|
-
export default _default;
|