@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
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import * as tsutils from "ts-api-utils";
|
|
2
|
-
//#region src/rules/utils/formatReportedType.ts
|
|
3
|
-
function formatReportedType(type, typeChecker) {
|
|
4
|
-
return tsutils.isIntrinsicErrorType(type) ? "error" : typeChecker.typeToString(type);
|
|
5
|
-
}
|
|
6
|
-
//#endregion
|
|
7
|
-
export { formatReportedType };
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
//#region src/rules/utils/getConstrainedType.ts
|
|
2
|
-
function getConstrainedTypeAtLocation(node, typeChecker) {
|
|
3
|
-
const type = typeChecker.getTypeAtLocation(node);
|
|
4
|
-
return typeChecker.getBaseConstraintOfType(type) ?? type;
|
|
5
|
-
}
|
|
6
|
-
//#endregion
|
|
7
|
-
export { getConstrainedTypeAtLocation };
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import ts from "typescript";
|
|
2
|
-
//#region src/rules/utils/getFunctionName.ts
|
|
3
|
-
function getFunctionName(node) {
|
|
4
|
-
switch (node.kind) {
|
|
5
|
-
case ts.SyntaxKind.ArrowFunction: return ts.isVariableDeclaration(node.parent) && ts.isIdentifier(node.parent.name) ? node.parent.name.text : void 0;
|
|
6
|
-
case ts.SyntaxKind.FunctionDeclaration:
|
|
7
|
-
case ts.SyntaxKind.FunctionExpression: return node.name?.text;
|
|
8
|
-
case ts.SyntaxKind.MethodDeclaration:
|
|
9
|
-
case ts.SyntaxKind.MethodSignature: return ts.isIdentifier(node.name) ? node.name.text : void 0;
|
|
10
|
-
default: return;
|
|
11
|
-
}
|
|
12
|
-
}
|
|
13
|
-
//#endregion
|
|
14
|
-
export { getFunctionName };
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { type AST, type TypeScriptFileServices } from "@flint.fyi/typescript-language";
|
|
2
|
-
export declare function getRegExpConstruction(node: AST.CallExpression | AST.NewExpression, { program, sourceFile, typeChecker }: TypeScriptFileServices): {
|
|
3
|
-
args: import("typescript").NodeArray<AST.Expression>;
|
|
4
|
-
flags: string;
|
|
5
|
-
pattern: string;
|
|
6
|
-
raw: string;
|
|
7
|
-
start: number;
|
|
8
|
-
} | undefined;
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import { getStaticStringValue, isGlobalDeclarationOfName } from "@flint.fyi/typescript-language";
|
|
2
|
-
import { SyntaxKind } from "typescript";
|
|
3
|
-
//#region src/rules/utils/getRegExpConstruction.ts
|
|
4
|
-
function getRegExpConstruction(node, { program, sourceFile, typeChecker }) {
|
|
5
|
-
if (node.expression.kind !== SyntaxKind.Identifier || node.expression.text !== "RegExp" || !isGlobalDeclarationOfName(node.expression, "RegExp", typeChecker, program)) return;
|
|
6
|
-
const args = node.arguments;
|
|
7
|
-
if (!args?.length) return;
|
|
8
|
-
const firstArgument = args[0];
|
|
9
|
-
if (firstArgument.kind !== SyntaxKind.StringLiteral && firstArgument.kind !== SyntaxKind.NoSubstitutionTemplateLiteral) return;
|
|
10
|
-
let flags = "";
|
|
11
|
-
if (args.length >= 2) {
|
|
12
|
-
const flagsArg = args[1];
|
|
13
|
-
const flagsValue = flagsArg === void 0 ? void 0 : getStaticStringValue(flagsArg);
|
|
14
|
-
if (flagsValue !== void 0) flags = flagsValue;
|
|
15
|
-
}
|
|
16
|
-
return {
|
|
17
|
-
args,
|
|
18
|
-
flags,
|
|
19
|
-
pattern: firstArgument.getText(sourceFile).slice(1, -1),
|
|
20
|
-
raw: firstArgument.text,
|
|
21
|
-
start: firstArgument.getStart(sourceFile)
|
|
22
|
-
};
|
|
23
|
-
}
|
|
24
|
-
//#endregion
|
|
25
|
-
export { getRegExpConstruction };
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import type { AST, TypeScriptFileServices } from "@flint.fyi/typescript-language";
|
|
2
|
-
export declare function getRegExpLiteralDetails(node: AST.RegularExpressionLiteral, { sourceFile }: Pick<TypeScriptFileServices, "sourceFile">): {
|
|
3
|
-
flags: string;
|
|
4
|
-
pattern: string;
|
|
5
|
-
start: number;
|
|
6
|
-
};
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
//#region src/rules/utils/getRegExpLiteralDetails.ts
|
|
2
|
-
function getRegExpLiteralDetails(node, { sourceFile }) {
|
|
3
|
-
const lastSlash = node.text.lastIndexOf("/");
|
|
4
|
-
return {
|
|
5
|
-
flags: node.text.slice(lastSlash + 1),
|
|
6
|
-
pattern: node.text.slice(1, lastSlash),
|
|
7
|
-
start: node.getStart(sourceFile) + 1
|
|
8
|
-
};
|
|
9
|
-
}
|
|
10
|
-
//#endregion
|
|
11
|
-
export { getRegExpLiteralDetails };
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { skipParentheses } from "./skipParentheses.js";
|
|
2
|
-
import { SyntaxKind } from "typescript";
|
|
3
|
-
//#region src/rules/utils/getThisExpression.ts
|
|
4
|
-
function getThisExpression(node) {
|
|
5
|
-
while (true) {
|
|
6
|
-
node = skipParentheses(node);
|
|
7
|
-
if (node.kind === SyntaxKind.CallExpression || node.kind === SyntaxKind.PropertyAccessExpression || node.kind === SyntaxKind.ElementAccessExpression) node = node.expression;
|
|
8
|
-
else if (node.kind === SyntaxKind.ThisKeyword) return node;
|
|
9
|
-
else break;
|
|
10
|
-
}
|
|
11
|
-
return null;
|
|
12
|
-
}
|
|
13
|
-
//#endregion
|
|
14
|
-
export { getThisExpression };
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { getConstrainedTypeAtLocation } from "./getConstrainedType.js";
|
|
2
|
-
import { isTypeRecursive } from "./isTypeRecursive.js";
|
|
3
|
-
//#region src/rules/utils/isArrayOrTupleTypeAtLocation.ts
|
|
4
|
-
function isArrayOrTupleTypeAtLocation(node, typeChecker) {
|
|
5
|
-
return isArrayOrTupleType(getConstrainedTypeAtLocation(node, typeChecker), typeChecker);
|
|
6
|
-
}
|
|
7
|
-
function isArrayOrTupleType(type, typeChecker) {
|
|
8
|
-
return isTypeRecursive(type, (constituent) => typeChecker.isArrayType(constituent) || typeChecker.isTupleType(constituent));
|
|
9
|
-
}
|
|
10
|
-
//#endregion
|
|
11
|
-
export { isArrayOrTupleTypeAtLocation };
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import * as ts$1 from "typescript";
|
|
2
|
-
import * as tsutils from "ts-api-utils";
|
|
3
|
-
//#region src/rules/utils/isBuiltinSymbolLike.ts
|
|
4
|
-
function isBuiltinSymbolLike(program, type, symbolName) {
|
|
5
|
-
return isBuiltinSymbolLikeRecurser(program, type, (subType) => {
|
|
6
|
-
const symbol = subType.getSymbol();
|
|
7
|
-
if (!symbol) return false;
|
|
8
|
-
const actualSymbolName = symbol.getName();
|
|
9
|
-
if (actualSymbolName === symbolName && isSymbolFromDefaultLibrary(program, symbol)) return true;
|
|
10
|
-
if (actualSymbolName === "Function" && tsutils.isObjectType(subType) && tsutils.isObjectFlagSet(subType, ts$1.ObjectFlags.Anonymous)) return false;
|
|
11
|
-
return null;
|
|
12
|
-
});
|
|
13
|
-
}
|
|
14
|
-
function isBuiltinSymbolLikeRecurser(program, type, predicate) {
|
|
15
|
-
if (type.isUnionOrIntersection()) return type.types.some((subType) => isBuiltinSymbolLikeRecurser(program, subType, predicate));
|
|
16
|
-
const result = predicate(type);
|
|
17
|
-
if (result !== null) return result;
|
|
18
|
-
const bases = type.getBaseTypes();
|
|
19
|
-
if (bases?.length) return bases.some((baseType) => isBuiltinSymbolLikeRecurser(program, baseType, predicate));
|
|
20
|
-
return false;
|
|
21
|
-
}
|
|
22
|
-
function isSymbolFromDefaultLibrary(program, symbol) {
|
|
23
|
-
const declarations = symbol.getDeclarations();
|
|
24
|
-
if (!declarations?.length) return false;
|
|
25
|
-
return declarations.some((declaration) => {
|
|
26
|
-
const sourceFile = declaration.getSourceFile();
|
|
27
|
-
return program.isSourceFileDefaultLibrary(sourceFile);
|
|
28
|
-
});
|
|
29
|
-
}
|
|
30
|
-
//#endregion
|
|
31
|
-
export { isBuiltinSymbolLike };
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import * as ts$1 from "typescript";
|
|
2
|
-
//#region src/rules/utils/isDirectEqualityCheck.ts
|
|
3
|
-
function isDirectEqualityCheck(node, operators, parameterName) {
|
|
4
|
-
let body;
|
|
5
|
-
switch (node.kind) {
|
|
6
|
-
case ts$1.SyntaxKind.ArrowFunction:
|
|
7
|
-
body = node.body.kind === ts$1.SyntaxKind.Block ? getDirectReturnExpression(node.body) : node.body;
|
|
8
|
-
break;
|
|
9
|
-
case ts$1.SyntaxKind.FunctionExpression:
|
|
10
|
-
body = getDirectReturnExpression(node.body);
|
|
11
|
-
break;
|
|
12
|
-
}
|
|
13
|
-
if (!body || !ts$1.isBinaryExpression(body)) return;
|
|
14
|
-
const { left, operatorToken, right } = body;
|
|
15
|
-
if (!operators.includes(operatorToken.kind)) return;
|
|
16
|
-
const isLeftParam = ts$1.isIdentifier(left) && left.text === parameterName;
|
|
17
|
-
const isRightParam = ts$1.isIdentifier(right) && right.text === parameterName;
|
|
18
|
-
if (isLeftParam && !isRightParam) return right;
|
|
19
|
-
if (isRightParam && !isLeftParam) return left;
|
|
20
|
-
}
|
|
21
|
-
function getDirectReturnExpression(body) {
|
|
22
|
-
if (body.statements.length !== 1) return;
|
|
23
|
-
const statement = body.statements[0];
|
|
24
|
-
return statement.kind === ts$1.SyntaxKind.ReturnStatement ? statement.expression : void 0;
|
|
25
|
-
}
|
|
26
|
-
//#endregion
|
|
27
|
-
export { isDirectEqualityCheck };
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import { isGlobalDeclaration } from "@flint.fyi/typescript-language";
|
|
2
|
-
import { SyntaxKind, isIdentifier } from "typescript";
|
|
3
|
-
//#region src/rules/utils/isErrorSubclass.ts
|
|
4
|
-
const builtinErrorNames = /* @__PURE__ */ new Set([
|
|
5
|
-
"Error",
|
|
6
|
-
"EvalError",
|
|
7
|
-
"RangeError",
|
|
8
|
-
"ReferenceError",
|
|
9
|
-
"SyntaxError",
|
|
10
|
-
"TypeError",
|
|
11
|
-
"URIError"
|
|
12
|
-
]);
|
|
13
|
-
function isErrorSubclass(node, typeChecker, program) {
|
|
14
|
-
if (!node.heritageClauses) return false;
|
|
15
|
-
for (const clause of node.heritageClauses) {
|
|
16
|
-
if (clause.token !== SyntaxKind.ExtendsKeyword) continue;
|
|
17
|
-
for (const type of clause.types) {
|
|
18
|
-
const typeName = type.expression;
|
|
19
|
-
if (isIdentifier(typeName) && builtinErrorNames.has(typeName.text) && isGlobalDeclaration(typeName, typeChecker, program)) return true;
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
return false;
|
|
23
|
-
}
|
|
24
|
-
//#endregion
|
|
25
|
-
export { isErrorSubclass };
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import ts from "typescript";
|
|
2
|
-
//#region src/rules/utils/isInBooleanContext.ts
|
|
3
|
-
function isInBooleanContext(node) {
|
|
4
|
-
switch (node.parent.kind) {
|
|
5
|
-
case ts.SyntaxKind.AsExpression:
|
|
6
|
-
case ts.SyntaxKind.NonNullExpression:
|
|
7
|
-
case ts.SyntaxKind.ParenthesizedExpression: return isInBooleanContext(node.parent);
|
|
8
|
-
case ts.SyntaxKind.BinaryExpression: return node.parent.operatorToken.kind === ts.SyntaxKind.AmpersandAmpersandToken || node.parent.operatorToken.kind === ts.SyntaxKind.BarBarToken;
|
|
9
|
-
case ts.SyntaxKind.CallExpression: return ts.isIdentifier(node.parent.expression) && node.parent.expression.text === "Boolean" && node.parent.arguments.length === 1 && node.parent.arguments[0] === node;
|
|
10
|
-
case ts.SyntaxKind.ConditionalExpression:
|
|
11
|
-
case ts.SyntaxKind.ForStatement: return node.parent.condition === node;
|
|
12
|
-
case ts.SyntaxKind.DoStatement:
|
|
13
|
-
case ts.SyntaxKind.IfStatement:
|
|
14
|
-
case ts.SyntaxKind.WhileStatement: return node.parent.expression === node;
|
|
15
|
-
case ts.SyntaxKind.PrefixUnaryExpression: return node.parent.operator === ts.SyntaxKind.ExclamationToken;
|
|
16
|
-
default: return false;
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
//#endregion
|
|
20
|
-
export { isInBooleanContext };
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import ts from "typescript";
|
|
2
|
-
import type { AST } from "@flint.fyi/typescript-language";
|
|
3
|
-
/**
|
|
4
|
-
* Does a simple check to see if there is an any being assigned to a non-any type.
|
|
5
|
-
*
|
|
6
|
-
* This also checks generic positions to ensure there's no unsafe sub-assignments.
|
|
7
|
-
* Note: in the case of generic positions, it makes the assumption that the two types are the same.
|
|
8
|
-
* @example See tests for examples
|
|
9
|
-
* @returns false if it's safe, or an object with the two types if it's unsafe
|
|
10
|
-
*/
|
|
11
|
-
export declare function isUnsafeAssignment(type: ts.Type, receiver: ts.Type, senderNode: AST.Expression): false | {
|
|
12
|
-
receiver: ts.Type;
|
|
13
|
-
sender: ts.Type;
|
|
14
|
-
};
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
import ts, { SyntaxKind } from "typescript";
|
|
2
|
-
import * as tsutils from "ts-api-utils";
|
|
3
|
-
import { nullThrows } from "@flint.fyi/utils";
|
|
4
|
-
//#region src/rules/utils/isUnsafeAssignment.ts
|
|
5
|
-
/**
|
|
6
|
-
* Does a simple check to see if there is an any being assigned to a non-any type.
|
|
7
|
-
*
|
|
8
|
-
* This also checks generic positions to ensure there's no unsafe sub-assignments.
|
|
9
|
-
* Note: in the case of generic positions, it makes the assumption that the two types are the same.
|
|
10
|
-
* @example See tests for examples
|
|
11
|
-
* @returns false if it's safe, or an object with the two types if it's unsafe
|
|
12
|
-
*/
|
|
13
|
-
function isUnsafeAssignment(type, receiver, senderNode) {
|
|
14
|
-
return isUnsafeAssignmentWorker(type, receiver, senderNode, /* @__PURE__ */ new Map());
|
|
15
|
-
}
|
|
16
|
-
function isUnsafeAssignmentWorker(type, receiver, senderNode, visited) {
|
|
17
|
-
if (tsutils.isTypeFlagSet(type, ts.TypeFlags.Any)) {
|
|
18
|
-
if (tsutils.isTypeFlagSet(receiver, ts.TypeFlags.Unknown)) return false;
|
|
19
|
-
if (!tsutils.isTypeFlagSet(receiver, ts.TypeFlags.Any)) return {
|
|
20
|
-
receiver,
|
|
21
|
-
sender: type
|
|
22
|
-
};
|
|
23
|
-
}
|
|
24
|
-
const typeAlreadyVisited = visited.get(type);
|
|
25
|
-
if (typeAlreadyVisited) {
|
|
26
|
-
if (typeAlreadyVisited.has(receiver)) return false;
|
|
27
|
-
typeAlreadyVisited.add(receiver);
|
|
28
|
-
} else visited.set(type, /* @__PURE__ */ new Set([receiver]));
|
|
29
|
-
if (tsutils.isTypeReference(type) && tsutils.isTypeReference(receiver)) {
|
|
30
|
-
if (type.target !== receiver.target) return false;
|
|
31
|
-
if (senderNode.kind === SyntaxKind.NewExpression && senderNode.expression.kind === SyntaxKind.Identifier && senderNode.expression.text === "Map" && !senderNode.arguments?.length && senderNode.typeArguments == null) return false;
|
|
32
|
-
const typeArguments = type.typeArguments ?? [];
|
|
33
|
-
const receiverTypeArguments = receiver.typeArguments ?? [];
|
|
34
|
-
for (let i = 0; i < typeArguments.length; i += 1) if (isUnsafeAssignmentWorker(nullThrows(typeArguments[i], "Type argument is expected to be present by the loop condition"), nullThrows(receiverTypeArguments[i], "Receiver type should have the same number of type arguments as the sender type when they share the same target"), senderNode, visited)) return {
|
|
35
|
-
receiver,
|
|
36
|
-
sender: type
|
|
37
|
-
};
|
|
38
|
-
return false;
|
|
39
|
-
}
|
|
40
|
-
return false;
|
|
41
|
-
}
|
|
42
|
-
//#endregion
|
|
43
|
-
export { isUnsafeAssignment };
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import type { AST } from "@flint.fyi/typescript-language";
|
|
2
|
-
export declare function isComparisonOperator(token: AST.BinaryOperatorToken): boolean;
|
|
3
|
-
export declare function isEqualityOperator(token: AST.BinaryOperatorToken): boolean;
|
|
4
|
-
export declare function isNegatedEqualityOperator(token: AST.BinaryOperatorToken): boolean;
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
import { SyntaxKind } from "typescript";
|
|
2
|
-
//#region src/rules/utils/operators.ts
|
|
3
|
-
function isComparisonOperator(token) {
|
|
4
|
-
switch (token.kind) {
|
|
5
|
-
case SyntaxKind.EqualsEqualsEqualsToken:
|
|
6
|
-
case SyntaxKind.EqualsEqualsToken:
|
|
7
|
-
case SyntaxKind.ExclamationEqualsEqualsToken:
|
|
8
|
-
case SyntaxKind.ExclamationEqualsToken:
|
|
9
|
-
case SyntaxKind.GreaterThanEqualsToken:
|
|
10
|
-
case SyntaxKind.GreaterThanToken:
|
|
11
|
-
case SyntaxKind.LessThanEqualsToken:
|
|
12
|
-
case SyntaxKind.LessThanToken: return true;
|
|
13
|
-
default: return false;
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
function isEqualityOperator(token) {
|
|
17
|
-
switch (token.kind) {
|
|
18
|
-
case SyntaxKind.EqualsEqualsEqualsToken:
|
|
19
|
-
case SyntaxKind.EqualsEqualsToken:
|
|
20
|
-
case SyntaxKind.ExclamationEqualsEqualsToken:
|
|
21
|
-
case SyntaxKind.ExclamationEqualsToken: return true;
|
|
22
|
-
default: return false;
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
function isNegatedEqualityOperator(token) {
|
|
26
|
-
switch (token.kind) {
|
|
27
|
-
case SyntaxKind.ExclamationEqualsEqualsToken:
|
|
28
|
-
case SyntaxKind.ExclamationEqualsToken: return true;
|
|
29
|
-
default: return false;
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
//#endregion
|
|
33
|
-
export { isComparisonOperator, isEqualityOperator, isNegatedEqualityOperator };
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare function parseRegexpAst(pattern: string, flags?: string): import("@eslint-community/regexpp/ast").Pattern | undefined;
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { RegExpParser } from "@eslint-community/regexpp";
|
|
2
|
-
//#region src/rules/utils/parseRegexpAst.ts
|
|
3
|
-
const parser = new RegExpParser();
|
|
4
|
-
function parseRegexpAst(pattern, flags = "") {
|
|
5
|
-
try {
|
|
6
|
-
return parser.parsePattern(pattern, void 0, void 0, {
|
|
7
|
-
unicode: flags.includes("u"),
|
|
8
|
-
unicodeSets: flags.includes("v")
|
|
9
|
-
});
|
|
10
|
-
} catch {
|
|
11
|
-
return;
|
|
12
|
-
}
|
|
13
|
-
}
|
|
14
|
-
//#endregion
|
|
15
|
-
export { parseRegexpAst };
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { RegExpParser } from "@eslint-community/regexpp";
|
|
2
|
-
//#region src/rules/utils/parseRegexpAstFull.ts
|
|
3
|
-
const parser = new RegExpParser();
|
|
4
|
-
function parseRegexpAstFull(pattern, flags = "") {
|
|
5
|
-
try {
|
|
6
|
-
const regexpFlags = parser.parseFlags(flags);
|
|
7
|
-
return {
|
|
8
|
-
flags: regexpFlags,
|
|
9
|
-
pattern: parser.parsePattern(pattern, void 0, void 0, regexpFlags)
|
|
10
|
-
};
|
|
11
|
-
} catch {
|
|
12
|
-
return;
|
|
13
|
-
}
|
|
14
|
-
}
|
|
15
|
-
//#endregion
|
|
16
|
-
export { parseRegexpAstFull };
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { SyntaxKind } from "typescript";
|
|
2
|
-
//#region src/rules/utils/skipParentheses.ts
|
|
3
|
-
function skipParentheses(node) {
|
|
4
|
-
while (node.kind === SyntaxKind.ParenthesizedExpression) node = node.expression;
|
|
5
|
-
return node;
|
|
6
|
-
}
|
|
7
|
-
//#endregion
|
|
8
|
-
export { skipParentheses };
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
declare const _default: import("@flint.fyi/core").Rule<{
|
|
2
|
-
readonly description: "Reports attempting to delete variables with the delete operator.";
|
|
3
|
-
readonly id: "variableDeletions";
|
|
4
|
-
readonly presets: readonly ["javascript"];
|
|
5
|
-
} & {
|
|
6
|
-
readonly pluginId: string;
|
|
7
|
-
readonly url: string;
|
|
8
|
-
}, "noDeleteVar", undefined>;
|
|
9
|
-
export default _default;
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
import { ruleCreator } from "./ruleCreator.js";
|
|
2
|
-
import { typescriptLanguage } from "@flint.fyi/typescript-language";
|
|
3
|
-
import { SyntaxKind } from "typescript";
|
|
4
|
-
//#region src/rules/variableDeletions.ts
|
|
5
|
-
var variableDeletions_default = ruleCreator.createRule(typescriptLanguage, {
|
|
6
|
-
about: {
|
|
7
|
-
description: "Reports attempting to delete variables with the delete operator.",
|
|
8
|
-
id: "variableDeletions",
|
|
9
|
-
presets: ["javascript"]
|
|
10
|
-
},
|
|
11
|
-
messages: { noDeleteVar: {
|
|
12
|
-
primary: "Deleting a variable with the delete operator outside of strict mode will silently fail and return false.",
|
|
13
|
-
secondary: [
|
|
14
|
-
"The delete operator is only meant to remove properties from objects, not variables.",
|
|
15
|
-
"Attempting to delete a variable in strict mode will cause a syntax error.",
|
|
16
|
-
"In non-strict mode, it will silently fail and return false without actually deleting the variable."
|
|
17
|
-
],
|
|
18
|
-
suggestions: ["Remove the delete statement, or if you need to unset the value, assign undefined instead."]
|
|
19
|
-
} },
|
|
20
|
-
setup(context) {
|
|
21
|
-
return { visitors: { DeleteExpression: (node, { sourceFile }) => {
|
|
22
|
-
if (node.expression.kind === SyntaxKind.Identifier) context.report({
|
|
23
|
-
message: "noDeleteVar",
|
|
24
|
-
range: {
|
|
25
|
-
begin: node.getStart(sourceFile),
|
|
26
|
-
end: node.getEnd()
|
|
27
|
-
}
|
|
28
|
-
});
|
|
29
|
-
} } };
|
|
30
|
-
}
|
|
31
|
-
});
|
|
32
|
-
//#endregion
|
|
33
|
-
export { variableDeletions_default as default };
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
declare const _default: import("@flint.fyi/core").Rule<{
|
|
2
|
-
readonly description: "Reports using the void operator.";
|
|
3
|
-
readonly id: "voidOperator";
|
|
4
|
-
readonly presets: readonly ["stylistic", "stylisticStrict"];
|
|
5
|
-
} & {
|
|
6
|
-
readonly pluginId: string;
|
|
7
|
-
readonly url: string;
|
|
8
|
-
}, "noVoid", 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/voidOperator.ts
|
|
4
|
-
var voidOperator_default = ruleCreator.createRule(typescriptLanguage, {
|
|
5
|
-
about: {
|
|
6
|
-
description: "Reports using the void operator.",
|
|
7
|
-
id: "voidOperator",
|
|
8
|
-
presets: ["stylistic", "stylisticStrict"]
|
|
9
|
-
},
|
|
10
|
-
messages: { noVoid: {
|
|
11
|
-
primary: "Prefer an explicit value over using the void operator to produce undefined.",
|
|
12
|
-
secondary: [
|
|
13
|
-
"The void operator evaluates an expression and returns undefined, regardless of the expression's value.",
|
|
14
|
-
"This is often confusing and can be replaced with more explicit code.",
|
|
15
|
-
"Instead of using void, return or assign undefined directly."
|
|
16
|
-
],
|
|
17
|
-
suggestions: ["Replace void expressions with undefined or restructure the code to be more explicit."]
|
|
18
|
-
} },
|
|
19
|
-
setup(context) {
|
|
20
|
-
return { visitors: { VoidExpression: (node, { sourceFile }) => {
|
|
21
|
-
context.report({
|
|
22
|
-
message: "noVoid",
|
|
23
|
-
range: {
|
|
24
|
-
begin: node.getStart(sourceFile),
|
|
25
|
-
end: node.getEnd()
|
|
26
|
-
}
|
|
27
|
-
});
|
|
28
|
-
} } };
|
|
29
|
-
}
|
|
30
|
-
});
|
|
31
|
-
//#endregion
|
|
32
|
-
export { voidOperator_default as default };
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
declare const _default: import("@flint.fyi/core").Rule<{
|
|
2
|
-
readonly description: "Reports using with statements";
|
|
3
|
-
readonly id: "withStatements";
|
|
4
|
-
readonly presets: readonly ["javascript"];
|
|
5
|
-
} & {
|
|
6
|
-
readonly pluginId: string;
|
|
7
|
-
readonly url: string;
|
|
8
|
-
}, "withStatement", undefined>;
|
|
9
|
-
export default _default;
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import { ruleCreator } from "./ruleCreator.js";
|
|
2
|
-
import { typescriptLanguage } from "@flint.fyi/typescript-language";
|
|
3
|
-
//#region src/rules/withStatements.ts
|
|
4
|
-
var withStatements_default = ruleCreator.createRule(typescriptLanguage, {
|
|
5
|
-
about: {
|
|
6
|
-
description: "Reports using with statements",
|
|
7
|
-
id: "withStatements",
|
|
8
|
-
presets: ["javascript"]
|
|
9
|
-
},
|
|
10
|
-
messages: { withStatement: {
|
|
11
|
-
primary: "`with` statements are deprecated, unreliable, and difficult to reason about.",
|
|
12
|
-
secondary: ["The with statement is problematic because it adds members of an object to the current scope, making it impossible to tell what a variable inside the block actually refers to.", "If an object doesn't have an expected variable, you'll end up modifying a global instead of the expected property."],
|
|
13
|
-
suggestions: ["Create a variable with the content of the with expression and access its properties instead."]
|
|
14
|
-
} },
|
|
15
|
-
setup(context) {
|
|
16
|
-
return { visitors: { WithStatement: (node, { sourceFile }) => {
|
|
17
|
-
context.report({
|
|
18
|
-
message: "withStatement",
|
|
19
|
-
range: {
|
|
20
|
-
begin: node.getStart(sourceFile),
|
|
21
|
-
end: node.getStart(sourceFile) + 4
|
|
22
|
-
}
|
|
23
|
-
});
|
|
24
|
-
} } };
|
|
25
|
-
}
|
|
26
|
-
});
|
|
27
|
-
//#endregion
|
|
28
|
-
export { withStatements_default as default };
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
declare const _default: import("@flint.fyi/core").Rule<{
|
|
2
|
-
readonly description: "Flags using `new` with `Boolean`, `Number`, or `String`, which creates wrapper objects instead of primitives.";
|
|
3
|
-
readonly id: "wrapperObjects";
|
|
4
|
-
readonly presets: readonly ["logical", "logicalStrict"];
|
|
5
|
-
} & {
|
|
6
|
-
readonly pluginId: string;
|
|
7
|
-
readonly url: string;
|
|
8
|
-
}, "wrapperObject", undefined>;
|
|
9
|
-
export default _default;
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import { ruleCreator } from "./ruleCreator.js";
|
|
2
|
-
import { getTSNodeRange, isGlobalDeclarationOfName, typescriptLanguage } from "@flint.fyi/typescript-language";
|
|
3
|
-
import * as ts$1 from "typescript";
|
|
4
|
-
//#region src/rules/wrapperObjects.ts
|
|
5
|
-
const wrapperConstructors = /* @__PURE__ */ new Set([
|
|
6
|
-
"Boolean",
|
|
7
|
-
"Number",
|
|
8
|
-
"String"
|
|
9
|
-
]);
|
|
10
|
-
var wrapperObjects_default = ruleCreator.createRule(typescriptLanguage, {
|
|
11
|
-
about: {
|
|
12
|
-
description: "Flags using `new` with `Boolean`, `Number`, or `String`, which creates wrapper objects instead of primitives.",
|
|
13
|
-
id: "wrapperObjects",
|
|
14
|
-
presets: ["logical", "logicalStrict"]
|
|
15
|
-
},
|
|
16
|
-
messages: { wrapperObject: {
|
|
17
|
-
primary: "{{ name }} wrapper objects are rarely intended and can cause unexpected behavior.",
|
|
18
|
-
secondary: ["Using `new {{ name }}()` creates an object wrapper around a primitive value, not the primitive itself.", "Object wrappers behave differently from primitives in comparisons: `new String('a') !== 'a'`."],
|
|
19
|
-
suggestions: ["Use `{{ name }}()` without `new` to coerce values to primitives."]
|
|
20
|
-
} },
|
|
21
|
-
setup(context) {
|
|
22
|
-
return { visitors: { NewExpression: (node, { program, sourceFile, typeChecker }) => {
|
|
23
|
-
if (node.expression.kind !== ts$1.SyntaxKind.Identifier || !wrapperConstructors.has(node.expression.text) || !isGlobalDeclarationOfName(node.expression, node.expression.text, typeChecker, program)) return;
|
|
24
|
-
const range = getTSNodeRange(node, sourceFile);
|
|
25
|
-
context.report({
|
|
26
|
-
data: { name: node.expression.text },
|
|
27
|
-
message: "wrapperObject",
|
|
28
|
-
range
|
|
29
|
-
});
|
|
30
|
-
} } };
|
|
31
|
-
}
|
|
32
|
-
});
|
|
33
|
-
//#endregion
|
|
34
|
-
export { wrapperObjects_default as default };
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import ts from "typescript";
|
|
2
|
-
//#region src/type-utils/isDeclaredInModuleBlock.ts
|
|
3
|
-
function isDeclaredInModuleBlock(declaration, packageName) {
|
|
4
|
-
let current = declaration;
|
|
5
|
-
while (!ts.isSourceFile(current)) {
|
|
6
|
-
if (ts.isModuleDeclaration(current) && !(current.flags & ts.NodeFlags.Namespace) && ts.isStringLiteral(current.name) && current.name.text === packageName) return true;
|
|
7
|
-
current = current.parent;
|
|
8
|
-
}
|
|
9
|
-
return false;
|
|
10
|
-
}
|
|
11
|
-
//#endregion
|
|
12
|
-
export { isDeclaredInModuleBlock };
|