From 69e6378834b03eb44c129f19707acb5c1e9e8ab6 Mon Sep 17 00:00:00 2001 From: LukeAbby <109059814+LukeAbby@users.noreply.github.com> Date: Thu, 19 Jun 2025 10:05:58 -0700 Subject: [PATCH 01/15] Port widening `SymbolConstructor` unique symbol properties (#1235) --- internal/checker/checker.go | 621 +++++++++--------- ...ismatchingPolyfillsWorkTogether.errors.txt | 17 - ...chingPolyfillsWorkTogether.errors.txt.diff | 21 - ...bserverMismatchingPolyfillsWorkTogether.js | 2 +- ...erMismatchingPolyfillsWorkTogether.js.diff | 9 - ...rverMismatchingPolyfillsWorkTogether.types | 12 +- ...ismatchingPolyfillsWorkTogether.types.diff | 31 - .../submodule/conformance/symbolProperty61.js | 4 +- .../conformance/symbolProperty61.js.diff | 15 +- .../conformance/symbolProperty61.types | 22 +- .../conformance/symbolProperty61.types.diff | 62 -- 11 files changed, 343 insertions(+), 473 deletions(-) delete mode 100644 testdata/baselines/reference/submodule/compiler/symbolObserverMismatchingPolyfillsWorkTogether.errors.txt delete mode 100644 testdata/baselines/reference/submodule/compiler/symbolObserverMismatchingPolyfillsWorkTogether.errors.txt.diff delete mode 100644 testdata/baselines/reference/submodule/compiler/symbolObserverMismatchingPolyfillsWorkTogether.js.diff delete mode 100644 testdata/baselines/reference/submodule/compiler/symbolObserverMismatchingPolyfillsWorkTogether.types.diff delete mode 100644 testdata/baselines/reference/submodule/conformance/symbolProperty61.types.diff diff --git a/internal/checker/checker.go b/internal/checker/checker.go index fca04dd588..31d4728a6b 100644 --- a/internal/checker/checker.go +++ b/internal/checker/checker.go @@ -553,306 +553,307 @@ type Host interface { var nextCheckerID atomic.Uint32 type Checker struct { - id uint32 - program Program - compilerOptions *core.CompilerOptions - files []*ast.SourceFile - fileIndexMap map[*ast.SourceFile]int - compareSymbols func(*ast.Symbol, *ast.Symbol) int - compareSymbolChains func([]*ast.Symbol, []*ast.Symbol) int - TypeCount uint32 - SymbolCount uint32 - TotalInstantiationCount uint32 - instantiationCount uint32 - instantiationDepth uint32 - inlineLevel int - currentNode *ast.Node - varianceTypeParameter *Type - languageVersion core.ScriptTarget - moduleKind core.ModuleKind - moduleResolutionKind core.ModuleResolutionKind - isInferencePartiallyBlocked bool - legacyDecorators bool - emitStandardClassFields bool - allowSyntheticDefaultImports bool - strictNullChecks bool - strictFunctionTypes bool - strictBindCallApply bool - strictPropertyInitialization bool - strictBuiltinIteratorReturn bool - noImplicitAny bool - noImplicitThis bool - useUnknownInCatchVariables bool - exactOptionalPropertyTypes bool - canCollectSymbolAliasAccessibilityData bool - wasCanceled bool - arrayVariances []VarianceFlags - globals ast.SymbolTable - globalSymbols []*ast.Symbol - evaluate evaluator.Evaluator - stringLiteralTypes map[string]*Type - numberLiteralTypes map[jsnum.Number]*Type - bigintLiteralTypes map[jsnum.PseudoBigInt]*Type - enumLiteralTypes map[EnumLiteralKey]*Type - indexedAccessTypes map[string]*Type - templateLiteralTypes map[string]*Type - stringMappingTypes map[StringMappingKey]*Type - uniqueESSymbolTypes map[*ast.Symbol]*Type - thisExpandoKinds map[*ast.Symbol]thisAssignmentDeclarationKind - thisExpandoLocations map[*ast.Symbol]*ast.Node - subtypeReductionCache map[string][]*Type - cachedTypes map[CachedTypeKey]*Type - cachedSignatures map[CachedSignatureKey]*Signature - undefinedProperties map[string]*ast.Symbol - narrowedTypes map[NarrowedTypeKey]*Type - assignmentReducedTypes map[AssignmentReducedKey]*Type - discriminatedContextualTypes map[DiscriminatedContextualTypeKey]*Type - instantiationExpressionTypes map[InstantiationExpressionKey]*Type - substitutionTypes map[SubstitutionTypeKey]*Type - reverseMappedCache map[ReverseMappedTypeKey]*Type - reverseHomomorphicMappedCache map[ReverseMappedTypeKey]*Type - iterationTypesCache map[IterationTypesKey]IterationTypes - markerTypes collections.Set[*Type] - undefinedSymbol *ast.Symbol - argumentsSymbol *ast.Symbol - requireSymbol *ast.Symbol - unknownSymbol *ast.Symbol - resolvingSymbol *ast.Symbol - unresolvedSymbols map[string]*ast.Symbol - errorTypes map[string]*Type - globalThisSymbol *ast.Symbol - resolveName func(location *ast.Node, name string, meaning ast.SymbolFlags, nameNotFoundMessage *diagnostics.Message, isUse bool, excludeGlobals bool) *ast.Symbol - resolveNameForSymbolSuggestion func(location *ast.Node, name string, meaning ast.SymbolFlags, nameNotFoundMessage *diagnostics.Message, isUse bool, excludeGlobals bool) *ast.Symbol - tupleTypes map[string]*Type - unionTypes map[string]*Type - unionOfUnionTypes map[UnionOfUnionKey]*Type - intersectionTypes map[string]*Type - diagnostics ast.DiagnosticsCollection - suggestionDiagnostics ast.DiagnosticsCollection - symbolPool core.Pool[ast.Symbol] - signaturePool core.Pool[Signature] - indexInfoPool core.Pool[IndexInfo] - mergedSymbols map[*ast.Symbol]*ast.Symbol - factory ast.NodeFactory - nodeLinks core.LinkStore[*ast.Node, NodeLinks] - signatureLinks core.LinkStore[*ast.Node, SignatureLinks] - symbolNodeLinks core.LinkStore[*ast.Node, SymbolNodeLinks] - typeNodeLinks core.LinkStore[*ast.Node, TypeNodeLinks] - enumMemberLinks core.LinkStore[*ast.Node, EnumMemberLinks] - assertionLinks core.LinkStore[*ast.Node, AssertionLinks] - arrayLiteralLinks core.LinkStore[*ast.Node, ArrayLiteralLinks] - switchStatementLinks core.LinkStore[*ast.Node, SwitchStatementLinks] - jsxElementLinks core.LinkStore[*ast.Node, JsxElementLinks] - symbolReferenceLinks core.LinkStore[*ast.Symbol, SymbolReferenceLinks] - valueSymbolLinks core.LinkStore[*ast.Symbol, ValueSymbolLinks] - mappedSymbolLinks core.LinkStore[*ast.Symbol, MappedSymbolLinks] - deferredSymbolLinks core.LinkStore[*ast.Symbol, DeferredSymbolLinks] - aliasSymbolLinks core.LinkStore[*ast.Symbol, AliasSymbolLinks] - moduleSymbolLinks core.LinkStore[*ast.Symbol, ModuleSymbolLinks] - lateBoundLinks core.LinkStore[*ast.Symbol, LateBoundLinks] - exportTypeLinks core.LinkStore[*ast.Symbol, ExportTypeLinks] - membersAndExportsLinks core.LinkStore[*ast.Symbol, MembersAndExportsLinks] - typeAliasLinks core.LinkStore[*ast.Symbol, TypeAliasLinks] - declaredTypeLinks core.LinkStore[*ast.Symbol, DeclaredTypeLinks] - spreadLinks core.LinkStore[*ast.Symbol, SpreadLinks] - varianceLinks core.LinkStore[*ast.Symbol, VarianceLinks] - indexSymbolLinks core.LinkStore[*ast.Symbol, IndexSymbolLinks] - ReverseMappedSymbolLinks core.LinkStore[*ast.Symbol, ReverseMappedSymbolLinks] - markedAssignmentSymbolLinks core.LinkStore[*ast.Symbol, MarkedAssignmentSymbolLinks] - symbolContainerLinks core.LinkStore[*ast.Symbol, ContainingSymbolLinks] - sourceFileLinks core.LinkStore[*ast.SourceFile, SourceFileLinks] - patternForType map[*Type]*ast.Node - contextFreeTypes map[*ast.Node]*Type - anyType *Type - autoType *Type - wildcardType *Type - blockedStringType *Type - errorType *Type - unresolvedType *Type - nonInferrableAnyType *Type - intrinsicMarkerType *Type - unknownType *Type - undefinedType *Type - undefinedWideningType *Type - missingType *Type - undefinedOrMissingType *Type - optionalType *Type - nullType *Type - nullWideningType *Type - stringType *Type - numberType *Type - bigintType *Type - regularFalseType *Type - falseType *Type - regularTrueType *Type - trueType *Type - booleanType *Type - esSymbolType *Type - voidType *Type - neverType *Type - silentNeverType *Type - implicitNeverType *Type - unreachableNeverType *Type - nonPrimitiveType *Type - stringOrNumberType *Type - stringNumberSymbolType *Type - numberOrBigIntType *Type - templateConstraintType *Type - numericStringType *Type - uniqueLiteralType *Type - uniqueLiteralMapper *TypeMapper - reliabilityFlags RelationComparisonResult - reportUnreliableMapper *TypeMapper - reportUnmeasurableMapper *TypeMapper - restrictiveMapper *TypeMapper - permissiveMapper *TypeMapper - emptyObjectType *Type - emptyJsxObjectType *Type - emptyFreshJsxObjectType *Type - emptyTypeLiteralType *Type - unknownEmptyObjectType *Type - unknownUnionType *Type - emptyGenericType *Type - anyFunctionType *Type - noConstraintType *Type - circularConstraintType *Type - resolvingDefaultType *Type - markerSuperType *Type - markerSubType *Type - markerOtherType *Type - markerSuperTypeForCheck *Type - markerSubTypeForCheck *Type - noTypePredicate *TypePredicate - anySignature *Signature - unknownSignature *Signature - resolvingSignature *Signature - silentNeverSignature *Signature - enumNumberIndexInfo *IndexInfo - anyBaseTypeIndexInfo *IndexInfo - patternAmbientModules []*ast.PatternAmbientModule - patternAmbientModuleAugmentations ast.SymbolTable - globalObjectType *Type - globalFunctionType *Type - globalCallableFunctionType *Type - globalNewableFunctionType *Type - globalArrayType *Type - globalReadonlyArrayType *Type - globalStringType *Type - globalNumberType *Type - globalBooleanType *Type - globalRegExpType *Type - globalThisType *Type - anyArrayType *Type - autoArrayType *Type - anyReadonlyArrayType *Type - deferredGlobalImportMetaExpressionType *Type - contextualBindingPatterns []*ast.Node - emptyStringType *Type - zeroType *Type - zeroBigIntType *Type - typeofType *Type - typeResolutions []TypeResolution - resolutionStart int - inVarianceComputation bool - suggestionCount int - apparentArgumentCount *int - lastGetCombinedNodeFlagsNode *ast.Node - lastGetCombinedNodeFlagsResult ast.NodeFlags - lastGetCombinedModifierFlagsNode *ast.Node - lastGetCombinedModifierFlagsResult ast.ModifierFlags - freeinferenceState *InferenceState - freeFlowState *FlowState - flowLoopCache map[FlowLoopKey]*Type - flowLoopStack []FlowLoopInfo - sharedFlows []SharedFlow - antecedentTypes []*Type - flowAnalysisDisabled bool - flowInvocationCount int - flowTypeCache map[*ast.Node]*Type - lastFlowNode *ast.FlowNode - lastFlowNodeReachable bool - flowNodeReachable map[*ast.FlowNode]bool - flowNodePostSuper map[*ast.FlowNode]bool - renamedBindingElementsInTypes []*ast.Node - contextualInfos []ContextualInfo - inferenceContextInfos []InferenceContextInfo - awaitedTypeStack []*Type - reverseMappedSourceStack []*Type - reverseMappedTargetStack []*Type - reverseExpandingFlags ExpandingFlags - freeRelater *Relater - subtypeRelation *Relation - strictSubtypeRelation *Relation - assignableRelation *Relation - comparableRelation *Relation - identityRelation *Relation - enumRelation map[EnumRelationKey]RelationComparisonResult - getGlobalESSymbolType func() *Type - getGlobalBigIntType func() *Type - getGlobalImportMetaType func() *Type - getGlobalImportAttributesType func() *Type - getGlobalImportAttributesTypeChecked func() *Type - getGlobalNonNullableTypeAliasOrNil func() *ast.Symbol - getGlobalExtractSymbol func() *ast.Symbol - getGlobalDisposableType func() *Type - getGlobalAsyncDisposableType func() *Type - getGlobalAwaitedSymbol func() *ast.Symbol - getGlobalAwaitedSymbolOrNil func() *ast.Symbol - getGlobalNaNSymbolOrNil func() *ast.Symbol - getGlobalRecordSymbol func() *ast.Symbol - getGlobalTemplateStringsArrayType func() *Type - getGlobalESSymbolConstructorSymbolOrNil func() *ast.Symbol - getGlobalImportCallOptionsType func() *Type - getGlobalImportCallOptionsTypeChecked func() *Type - getGlobalPromiseType func() *Type - getGlobalPromiseTypeChecked func() *Type - getGlobalPromiseLikeType func() *Type - getGlobalPromiseConstructorSymbol func() *ast.Symbol - getGlobalPromiseConstructorSymbolOrNil func() *ast.Symbol - getGlobalOmitSymbol func() *ast.Symbol - getGlobalNoInferSymbolOrNil func() *ast.Symbol - getGlobalIteratorType func() *Type - getGlobalIterableType func() *Type - getGlobalIterableTypeChecked func() *Type - getGlobalIterableIteratorType func() *Type - getGlobalIterableIteratorTypeChecked func() *Type - getGlobalIteratorObjectType func() *Type - getGlobalGeneratorType func() *Type - getGlobalAsyncIteratorType func() *Type - getGlobalAsyncIterableType func() *Type - getGlobalAsyncIterableTypeChecked func() *Type - getGlobalAsyncIterableIteratorType func() *Type - getGlobalAsyncIterableIteratorTypeChecked func() *Type - getGlobalAsyncIteratorObjectType func() *Type - getGlobalAsyncGeneratorType func() *Type - getGlobalIteratorYieldResultType func() *Type - getGlobalIteratorReturnResultType func() *Type - getGlobalTypedPropertyDescriptorType func() *Type - getGlobalClassDecoratorContextType func() *Type - getGlobalClassMethodDecoratorContextType func() *Type - getGlobalClassGetterDecoratorContextType func() *Type - getGlobalClassSetterDecoratorContextType func() *Type - getGlobalClassAccessorDecoratorContxtType func() *Type - getGlobalClassAccessorDecoratorContextType func() *Type - getGlobalClassAccessorDecoratorTargetType func() *Type - getGlobalClassAccessorDecoratorResultType func() *Type - getGlobalClassFieldDecoratorContextType func() *Type - syncIterationTypesResolver *IterationTypesResolver - asyncIterationTypesResolver *IterationTypesResolver - isPrimitiveOrObjectOrEmptyType func(*Type) bool - containsMissingType func(*Type) bool - couldContainTypeVariables func(*Type) bool - isStringIndexSignatureOnlyType func(*Type) bool - markNodeAssignments func(*ast.Node) bool - emitResolver *emitResolver - emitResolverOnce sync.Once - diagnosticConstructionContext *printer.EmitContext - nodeBuilder *NodeBuilder - _jsxNamespace string - _jsxFactoryEntity *ast.Node - skipDirectInferenceNodes collections.Set[*ast.Node] - ctx context.Context - packagesMap map[string]bool + id uint32 + program Program + compilerOptions *core.CompilerOptions + files []*ast.SourceFile + fileIndexMap map[*ast.SourceFile]int + compareSymbols func(*ast.Symbol, *ast.Symbol) int + compareSymbolChains func([]*ast.Symbol, []*ast.Symbol) int + TypeCount uint32 + SymbolCount uint32 + TotalInstantiationCount uint32 + instantiationCount uint32 + instantiationDepth uint32 + inlineLevel int + currentNode *ast.Node + varianceTypeParameter *Type + languageVersion core.ScriptTarget + moduleKind core.ModuleKind + moduleResolutionKind core.ModuleResolutionKind + isInferencePartiallyBlocked bool + legacyDecorators bool + emitStandardClassFields bool + allowSyntheticDefaultImports bool + strictNullChecks bool + strictFunctionTypes bool + strictBindCallApply bool + strictPropertyInitialization bool + strictBuiltinIteratorReturn bool + noImplicitAny bool + noImplicitThis bool + useUnknownInCatchVariables bool + exactOptionalPropertyTypes bool + canCollectSymbolAliasAccessibilityData bool + wasCanceled bool + arrayVariances []VarianceFlags + globals ast.SymbolTable + globalSymbols []*ast.Symbol + evaluate evaluator.Evaluator + stringLiteralTypes map[string]*Type + numberLiteralTypes map[jsnum.Number]*Type + bigintLiteralTypes map[jsnum.PseudoBigInt]*Type + enumLiteralTypes map[EnumLiteralKey]*Type + indexedAccessTypes map[string]*Type + templateLiteralTypes map[string]*Type + stringMappingTypes map[StringMappingKey]*Type + uniqueESSymbolTypes map[*ast.Symbol]*Type + thisExpandoKinds map[*ast.Symbol]thisAssignmentDeclarationKind + thisExpandoLocations map[*ast.Symbol]*ast.Node + subtypeReductionCache map[string][]*Type + cachedTypes map[CachedTypeKey]*Type + cachedSignatures map[CachedSignatureKey]*Signature + undefinedProperties map[string]*ast.Symbol + narrowedTypes map[NarrowedTypeKey]*Type + assignmentReducedTypes map[AssignmentReducedKey]*Type + discriminatedContextualTypes map[DiscriminatedContextualTypeKey]*Type + instantiationExpressionTypes map[InstantiationExpressionKey]*Type + substitutionTypes map[SubstitutionTypeKey]*Type + reverseMappedCache map[ReverseMappedTypeKey]*Type + reverseHomomorphicMappedCache map[ReverseMappedTypeKey]*Type + iterationTypesCache map[IterationTypesKey]IterationTypes + markerTypes collections.Set[*Type] + undefinedSymbol *ast.Symbol + argumentsSymbol *ast.Symbol + requireSymbol *ast.Symbol + unknownSymbol *ast.Symbol + resolvingSymbol *ast.Symbol + unresolvedSymbols map[string]*ast.Symbol + errorTypes map[string]*Type + globalThisSymbol *ast.Symbol + resolveName func(location *ast.Node, name string, meaning ast.SymbolFlags, nameNotFoundMessage *diagnostics.Message, isUse bool, excludeGlobals bool) *ast.Symbol + resolveNameForSymbolSuggestion func(location *ast.Node, name string, meaning ast.SymbolFlags, nameNotFoundMessage *diagnostics.Message, isUse bool, excludeGlobals bool) *ast.Symbol + tupleTypes map[string]*Type + unionTypes map[string]*Type + unionOfUnionTypes map[UnionOfUnionKey]*Type + intersectionTypes map[string]*Type + diagnostics ast.DiagnosticsCollection + suggestionDiagnostics ast.DiagnosticsCollection + symbolPool core.Pool[ast.Symbol] + signaturePool core.Pool[Signature] + indexInfoPool core.Pool[IndexInfo] + mergedSymbols map[*ast.Symbol]*ast.Symbol + factory ast.NodeFactory + nodeLinks core.LinkStore[*ast.Node, NodeLinks] + signatureLinks core.LinkStore[*ast.Node, SignatureLinks] + symbolNodeLinks core.LinkStore[*ast.Node, SymbolNodeLinks] + typeNodeLinks core.LinkStore[*ast.Node, TypeNodeLinks] + enumMemberLinks core.LinkStore[*ast.Node, EnumMemberLinks] + assertionLinks core.LinkStore[*ast.Node, AssertionLinks] + arrayLiteralLinks core.LinkStore[*ast.Node, ArrayLiteralLinks] + switchStatementLinks core.LinkStore[*ast.Node, SwitchStatementLinks] + jsxElementLinks core.LinkStore[*ast.Node, JsxElementLinks] + symbolReferenceLinks core.LinkStore[*ast.Symbol, SymbolReferenceLinks] + valueSymbolLinks core.LinkStore[*ast.Symbol, ValueSymbolLinks] + mappedSymbolLinks core.LinkStore[*ast.Symbol, MappedSymbolLinks] + deferredSymbolLinks core.LinkStore[*ast.Symbol, DeferredSymbolLinks] + aliasSymbolLinks core.LinkStore[*ast.Symbol, AliasSymbolLinks] + moduleSymbolLinks core.LinkStore[*ast.Symbol, ModuleSymbolLinks] + lateBoundLinks core.LinkStore[*ast.Symbol, LateBoundLinks] + exportTypeLinks core.LinkStore[*ast.Symbol, ExportTypeLinks] + membersAndExportsLinks core.LinkStore[*ast.Symbol, MembersAndExportsLinks] + typeAliasLinks core.LinkStore[*ast.Symbol, TypeAliasLinks] + declaredTypeLinks core.LinkStore[*ast.Symbol, DeclaredTypeLinks] + spreadLinks core.LinkStore[*ast.Symbol, SpreadLinks] + varianceLinks core.LinkStore[*ast.Symbol, VarianceLinks] + indexSymbolLinks core.LinkStore[*ast.Symbol, IndexSymbolLinks] + ReverseMappedSymbolLinks core.LinkStore[*ast.Symbol, ReverseMappedSymbolLinks] + markedAssignmentSymbolLinks core.LinkStore[*ast.Symbol, MarkedAssignmentSymbolLinks] + symbolContainerLinks core.LinkStore[*ast.Symbol, ContainingSymbolLinks] + sourceFileLinks core.LinkStore[*ast.SourceFile, SourceFileLinks] + patternForType map[*Type]*ast.Node + contextFreeTypes map[*ast.Node]*Type + anyType *Type + autoType *Type + wildcardType *Type + blockedStringType *Type + errorType *Type + unresolvedType *Type + nonInferrableAnyType *Type + intrinsicMarkerType *Type + unknownType *Type + undefinedType *Type + undefinedWideningType *Type + missingType *Type + undefinedOrMissingType *Type + optionalType *Type + nullType *Type + nullWideningType *Type + stringType *Type + numberType *Type + bigintType *Type + regularFalseType *Type + falseType *Type + regularTrueType *Type + trueType *Type + booleanType *Type + esSymbolType *Type + voidType *Type + neverType *Type + silentNeverType *Type + implicitNeverType *Type + unreachableNeverType *Type + nonPrimitiveType *Type + stringOrNumberType *Type + stringNumberSymbolType *Type + numberOrBigIntType *Type + templateConstraintType *Type + numericStringType *Type + uniqueLiteralType *Type + uniqueLiteralMapper *TypeMapper + reliabilityFlags RelationComparisonResult + reportUnreliableMapper *TypeMapper + reportUnmeasurableMapper *TypeMapper + restrictiveMapper *TypeMapper + permissiveMapper *TypeMapper + emptyObjectType *Type + emptyJsxObjectType *Type + emptyFreshJsxObjectType *Type + emptyTypeLiteralType *Type + unknownEmptyObjectType *Type + unknownUnionType *Type + emptyGenericType *Type + anyFunctionType *Type + noConstraintType *Type + circularConstraintType *Type + resolvingDefaultType *Type + markerSuperType *Type + markerSubType *Type + markerOtherType *Type + markerSuperTypeForCheck *Type + markerSubTypeForCheck *Type + noTypePredicate *TypePredicate + anySignature *Signature + unknownSignature *Signature + resolvingSignature *Signature + silentNeverSignature *Signature + enumNumberIndexInfo *IndexInfo + anyBaseTypeIndexInfo *IndexInfo + patternAmbientModules []*ast.PatternAmbientModule + patternAmbientModuleAugmentations ast.SymbolTable + globalObjectType *Type + globalFunctionType *Type + globalCallableFunctionType *Type + globalNewableFunctionType *Type + globalArrayType *Type + globalReadonlyArrayType *Type + globalStringType *Type + globalNumberType *Type + globalBooleanType *Type + globalRegExpType *Type + globalThisType *Type + anyArrayType *Type + autoArrayType *Type + anyReadonlyArrayType *Type + deferredGlobalImportMetaExpressionType *Type + contextualBindingPatterns []*ast.Node + emptyStringType *Type + zeroType *Type + zeroBigIntType *Type + typeofType *Type + typeResolutions []TypeResolution + resolutionStart int + inVarianceComputation bool + suggestionCount int + apparentArgumentCount *int + lastGetCombinedNodeFlagsNode *ast.Node + lastGetCombinedNodeFlagsResult ast.NodeFlags + lastGetCombinedModifierFlagsNode *ast.Node + lastGetCombinedModifierFlagsResult ast.ModifierFlags + freeinferenceState *InferenceState + freeFlowState *FlowState + flowLoopCache map[FlowLoopKey]*Type + flowLoopStack []FlowLoopInfo + sharedFlows []SharedFlow + antecedentTypes []*Type + flowAnalysisDisabled bool + flowInvocationCount int + flowTypeCache map[*ast.Node]*Type + lastFlowNode *ast.FlowNode + lastFlowNodeReachable bool + flowNodeReachable map[*ast.FlowNode]bool + flowNodePostSuper map[*ast.FlowNode]bool + renamedBindingElementsInTypes []*ast.Node + contextualInfos []ContextualInfo + inferenceContextInfos []InferenceContextInfo + awaitedTypeStack []*Type + reverseMappedSourceStack []*Type + reverseMappedTargetStack []*Type + reverseExpandingFlags ExpandingFlags + freeRelater *Relater + subtypeRelation *Relation + strictSubtypeRelation *Relation + assignableRelation *Relation + comparableRelation *Relation + identityRelation *Relation + enumRelation map[EnumRelationKey]RelationComparisonResult + getGlobalESSymbolType func() *Type + getGlobalBigIntType func() *Type + getGlobalImportMetaType func() *Type + getGlobalImportAttributesType func() *Type + getGlobalImportAttributesTypeChecked func() *Type + getGlobalNonNullableTypeAliasOrNil func() *ast.Symbol + getGlobalExtractSymbol func() *ast.Symbol + getGlobalDisposableType func() *Type + getGlobalAsyncDisposableType func() *Type + getGlobalAwaitedSymbol func() *ast.Symbol + getGlobalAwaitedSymbolOrNil func() *ast.Symbol + getGlobalNaNSymbolOrNil func() *ast.Symbol + getGlobalRecordSymbol func() *ast.Symbol + getGlobalTemplateStringsArrayType func() *Type + getGlobalESSymbolConstructorSymbolOrNil func() *ast.Symbol + getGlobalESSymbolConstructorTypeSymbolOrNil func() *ast.Symbol + getGlobalImportCallOptionsType func() *Type + getGlobalImportCallOptionsTypeChecked func() *Type + getGlobalPromiseType func() *Type + getGlobalPromiseTypeChecked func() *Type + getGlobalPromiseLikeType func() *Type + getGlobalPromiseConstructorSymbol func() *ast.Symbol + getGlobalPromiseConstructorSymbolOrNil func() *ast.Symbol + getGlobalOmitSymbol func() *ast.Symbol + getGlobalNoInferSymbolOrNil func() *ast.Symbol + getGlobalIteratorType func() *Type + getGlobalIterableType func() *Type + getGlobalIterableTypeChecked func() *Type + getGlobalIterableIteratorType func() *Type + getGlobalIterableIteratorTypeChecked func() *Type + getGlobalIteratorObjectType func() *Type + getGlobalGeneratorType func() *Type + getGlobalAsyncIteratorType func() *Type + getGlobalAsyncIterableType func() *Type + getGlobalAsyncIterableTypeChecked func() *Type + getGlobalAsyncIterableIteratorType func() *Type + getGlobalAsyncIterableIteratorTypeChecked func() *Type + getGlobalAsyncIteratorObjectType func() *Type + getGlobalAsyncGeneratorType func() *Type + getGlobalIteratorYieldResultType func() *Type + getGlobalIteratorReturnResultType func() *Type + getGlobalTypedPropertyDescriptorType func() *Type + getGlobalClassDecoratorContextType func() *Type + getGlobalClassMethodDecoratorContextType func() *Type + getGlobalClassGetterDecoratorContextType func() *Type + getGlobalClassSetterDecoratorContextType func() *Type + getGlobalClassAccessorDecoratorContxtType func() *Type + getGlobalClassAccessorDecoratorContextType func() *Type + getGlobalClassAccessorDecoratorTargetType func() *Type + getGlobalClassAccessorDecoratorResultType func() *Type + getGlobalClassFieldDecoratorContextType func() *Type + syncIterationTypesResolver *IterationTypesResolver + asyncIterationTypesResolver *IterationTypesResolver + isPrimitiveOrObjectOrEmptyType func(*Type) bool + containsMissingType func(*Type) bool + couldContainTypeVariables func(*Type) bool + isStringIndexSignatureOnlyType func(*Type) bool + markNodeAssignments func(*ast.Node) bool + emitResolver *emitResolver + emitResolverOnce sync.Once + diagnosticConstructionContext *printer.EmitContext + nodeBuilder *NodeBuilder + _jsxNamespace string + _jsxFactoryEntity *ast.Node + skipDirectInferenceNodes collections.Set[*ast.Node] + ctx context.Context + packagesMap map[string]bool } func NewChecker(program Program) *Checker { @@ -1029,6 +1030,7 @@ func NewChecker(program Program) *Checker { c.getGlobalRecordSymbol = c.getGlobalTypeAliasResolver("Record", 2 /*arity*/, true /*reportErrors*/) c.getGlobalTemplateStringsArrayType = c.getGlobalTypeResolver("TemplateStringsArray", 0 /*arity*/, true /*reportErrors*/) c.getGlobalESSymbolConstructorSymbolOrNil = c.getGlobalValueSymbolResolver("Symbol", false /*reportErrors*/) + c.getGlobalESSymbolConstructorTypeSymbolOrNil = c.getGlobalTypeSymbolResolver("SymbolConstructor", false /*reportErrors*/) c.getGlobalImportCallOptionsType = c.getGlobalTypeResolver("ImportCallOptions", 0 /*arity*/, false /*reportErrors*/) c.getGlobalImportCallOptionsTypeChecked = c.getGlobalTypeResolver("ImportCallOptions", 0 /*arity*/, true /*reportErrors*/) c.getGlobalPromiseType = c.getGlobalTypeResolver("Promise", 1 /*arity*/, false /*reportErrors*/) @@ -1131,6 +1133,12 @@ func (c *Checker) getGlobalValueSymbolResolver(name string, reportErrors bool) f }) } +func (c *Checker) getGlobalTypeSymbolResolver(name string, reportErrors bool) func() *ast.Symbol { + return core.Memoize(func() *ast.Symbol { + return c.getGlobalSymbol(name, ast.SymbolFlagsType, core.IfElse(reportErrors, diagnostics.Cannot_find_global_type_0, nil)) + }) +} + func (c *Checker) getGlobalTypesResolver(names []string, arity int, reportErrors bool) func() []*Type { return core.Memoize(func() []*Type { return core.Map(names, func(name string) *Type { @@ -17313,11 +17321,24 @@ func (c *Checker) isConstructorDeclaredThisProperty(symbol *ast.Symbol) (thisAss return kind, location } +func (c *Checker) isGlobalSymbolConstructor(node *ast.Node) bool { + symbol := c.getSymbolOfNode(node) + globalSymbol := c.getGlobalESSymbolConstructorTypeSymbolOrNil() + return globalSymbol != nil && symbol == globalSymbol +} + func (c *Checker) widenTypeForVariableLikeDeclaration(t *Type, declaration *ast.Node, reportErrors bool) *Type { if t != nil { + // This special case is required for backwards compatibility with libraries that merge a `symbol` property into `SymbolConstructor`. + // See https://github.com/microsoft/typescript-go/issues/1212 + if t.flags&TypeFlagsESSymbol != 0 && c.isGlobalSymbolConstructor(declaration.Parent) { + t = c.getESSymbolLikeTypeForNode(declaration) + } + if reportErrors { c.reportErrorsFromWidening(declaration, t, WideningKindNormal) } + // always widen a 'unique symbol' type if the type was created for a different declaration. if t.flags&TypeFlagsUniqueESSymbol != 0 && (ast.IsBindingElement(declaration) || declaration.Type() == nil) && t.symbol != c.getSymbolOfDeclaration(declaration) { t = c.esSymbolType diff --git a/testdata/baselines/reference/submodule/compiler/symbolObserverMismatchingPolyfillsWorkTogether.errors.txt b/testdata/baselines/reference/submodule/compiler/symbolObserverMismatchingPolyfillsWorkTogether.errors.txt deleted file mode 100644 index faac1e7fee..0000000000 --- a/testdata/baselines/reference/submodule/compiler/symbolObserverMismatchingPolyfillsWorkTogether.errors.txt +++ /dev/null @@ -1,17 +0,0 @@ -symbolObserverMismatchingPolyfillsWorkTogether.ts(5,14): error TS2717: Subsequent property declarations must have the same type. Property 'observer' must be of type 'symbol', but here has type 'unique symbol'. - - -==== symbolObserverMismatchingPolyfillsWorkTogether.ts (1 errors) ==== - interface SymbolConstructor { - readonly observer: symbol; - } - interface SymbolConstructor { - readonly observer: unique symbol; - ~~~~~~~~ -!!! error TS2717: Subsequent property declarations must have the same type. Property 'observer' must be of type 'symbol', but here has type 'unique symbol'. -!!! related TS6203 symbolObserverMismatchingPolyfillsWorkTogether.ts:2:14: 'observer' was also declared here. - } - - const obj = { - [Symbol.observer]: 0 - }; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/symbolObserverMismatchingPolyfillsWorkTogether.errors.txt.diff b/testdata/baselines/reference/submodule/compiler/symbolObserverMismatchingPolyfillsWorkTogether.errors.txt.diff deleted file mode 100644 index 6ce57661e1..0000000000 --- a/testdata/baselines/reference/submodule/compiler/symbolObserverMismatchingPolyfillsWorkTogether.errors.txt.diff +++ /dev/null @@ -1,21 +0,0 @@ ---- old.symbolObserverMismatchingPolyfillsWorkTogether.errors.txt -+++ new.symbolObserverMismatchingPolyfillsWorkTogether.errors.txt -@@= skipped -0, +0 lines =@@ -- -+symbolObserverMismatchingPolyfillsWorkTogether.ts(5,14): error TS2717: Subsequent property declarations must have the same type. Property 'observer' must be of type 'symbol', but here has type 'unique symbol'. -+ -+ -+==== symbolObserverMismatchingPolyfillsWorkTogether.ts (1 errors) ==== -+ interface SymbolConstructor { -+ readonly observer: symbol; -+ } -+ interface SymbolConstructor { -+ readonly observer: unique symbol; -+ ~~~~~~~~ -+!!! error TS2717: Subsequent property declarations must have the same type. Property 'observer' must be of type 'symbol', but here has type 'unique symbol'. -+!!! related TS6203 symbolObserverMismatchingPolyfillsWorkTogether.ts:2:14: 'observer' was also declared here. -+ } -+ -+ const obj = { -+ [Symbol.observer]: 0 -+ }; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/symbolObserverMismatchingPolyfillsWorkTogether.js b/testdata/baselines/reference/submodule/compiler/symbolObserverMismatchingPolyfillsWorkTogether.js index 1e9ef1eea5..b899cb11ba 100644 --- a/testdata/baselines/reference/submodule/compiler/symbolObserverMismatchingPolyfillsWorkTogether.js +++ b/testdata/baselines/reference/submodule/compiler/symbolObserverMismatchingPolyfillsWorkTogether.js @@ -26,5 +26,5 @@ interface SymbolConstructor { readonly observer: unique symbol; } declare const obj: { - [x: symbol]: number; + [Symbol.observer]: number; }; diff --git a/testdata/baselines/reference/submodule/compiler/symbolObserverMismatchingPolyfillsWorkTogether.js.diff b/testdata/baselines/reference/submodule/compiler/symbolObserverMismatchingPolyfillsWorkTogether.js.diff deleted file mode 100644 index 67fd2964e5..0000000000 --- a/testdata/baselines/reference/submodule/compiler/symbolObserverMismatchingPolyfillsWorkTogether.js.diff +++ /dev/null @@ -1,9 +0,0 @@ ---- old.symbolObserverMismatchingPolyfillsWorkTogether.js -+++ new.symbolObserverMismatchingPolyfillsWorkTogether.js -@@= skipped -25, +25 lines =@@ - readonly observer: unique symbol; - } - declare const obj: { -- [Symbol.observer]: number; -+ [x: symbol]: number; - }; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/symbolObserverMismatchingPolyfillsWorkTogether.types b/testdata/baselines/reference/submodule/compiler/symbolObserverMismatchingPolyfillsWorkTogether.types index fff0d2858c..3a1a4e9da1 100644 --- a/testdata/baselines/reference/submodule/compiler/symbolObserverMismatchingPolyfillsWorkTogether.types +++ b/testdata/baselines/reference/submodule/compiler/symbolObserverMismatchingPolyfillsWorkTogether.types @@ -3,22 +3,22 @@ === symbolObserverMismatchingPolyfillsWorkTogether.ts === interface SymbolConstructor { readonly observer: symbol; ->observer : symbol +>observer : unique symbol } interface SymbolConstructor { readonly observer: unique symbol; ->observer : symbol +>observer : unique symbol } const obj = { ->obj : { [x: symbol]: number; } ->{ [Symbol.observer]: 0} : { [x: symbol]: number; } +>obj : { [Symbol.observer]: number; } +>{ [Symbol.observer]: 0} : { [Symbol.observer]: number; } [Symbol.observer]: 0 >[Symbol.observer] : number ->Symbol.observer : symbol +>Symbol.observer : unique symbol >Symbol : SymbolConstructor ->observer : symbol +>observer : unique symbol >0 : 0 }; diff --git a/testdata/baselines/reference/submodule/compiler/symbolObserverMismatchingPolyfillsWorkTogether.types.diff b/testdata/baselines/reference/submodule/compiler/symbolObserverMismatchingPolyfillsWorkTogether.types.diff deleted file mode 100644 index 3ba4b8f9d9..0000000000 --- a/testdata/baselines/reference/submodule/compiler/symbolObserverMismatchingPolyfillsWorkTogether.types.diff +++ /dev/null @@ -1,31 +0,0 @@ ---- old.symbolObserverMismatchingPolyfillsWorkTogether.types -+++ new.symbolObserverMismatchingPolyfillsWorkTogether.types -@@= skipped -2, +2 lines =@@ - === symbolObserverMismatchingPolyfillsWorkTogether.ts === - interface SymbolConstructor { - readonly observer: symbol; -->observer : unique symbol -+>observer : symbol - } - interface SymbolConstructor { - readonly observer: unique symbol; -->observer : unique symbol -+>observer : symbol - } - - const obj = { -->obj : { [Symbol.observer]: number; } -->{ [Symbol.observer]: 0} : { [Symbol.observer]: number; } -+>obj : { [x: symbol]: number; } -+>{ [Symbol.observer]: 0} : { [x: symbol]: number; } - - [Symbol.observer]: 0 - >[Symbol.observer] : number -->Symbol.observer : unique symbol -+>Symbol.observer : symbol - >Symbol : SymbolConstructor -->observer : unique symbol -+>observer : symbol - >0 : 0 - - }; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/symbolProperty61.js b/testdata/baselines/reference/submodule/conformance/symbolProperty61.js index 3ed2223c95..680d7c869c 100644 --- a/testdata/baselines/reference/submodule/conformance/symbolProperty61.js +++ b/testdata/baselines/reference/submodule/conformance/symbolProperty61.js @@ -58,9 +58,11 @@ declare global { readonly obs: symbol; } } +declare const observable: typeof Symbol.obs; export declare class MyObservable { - [x: symbol]: () => this; private _val; constructor(_val: T); subscribe(next: (val: T) => void): void; + [observable](): this; } +export {}; diff --git a/testdata/baselines/reference/submodule/conformance/symbolProperty61.js.diff b/testdata/baselines/reference/submodule/conformance/symbolProperty61.js.diff index d108f7ff87..6dd3df58e9 100644 --- a/testdata/baselines/reference/submodule/conformance/symbolProperty61.js.diff +++ b/testdata/baselines/reference/submodule/conformance/symbolProperty61.js.diff @@ -7,17 +7,4 @@ + _val; constructor(_val) { this._val = _val; - } -@@= skipped -22, +23 lines =@@ - readonly obs: symbol; - } - } --declare const observable: typeof Symbol.obs; - export declare class MyObservable { -+ [x: symbol]: () => this; - private _val; - constructor(_val: T); - subscribe(next: (val: T) => void): void; -- [observable](): this; - } --export {}; \ No newline at end of file + } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/symbolProperty61.types b/testdata/baselines/reference/submodule/conformance/symbolProperty61.types index 6e25b8600e..7e6482c2a0 100644 --- a/testdata/baselines/reference/submodule/conformance/symbolProperty61.types +++ b/testdata/baselines/reference/submodule/conformance/symbolProperty61.types @@ -6,18 +6,18 @@ declare global { interface SymbolConstructor { readonly obs: symbol ->obs : symbol +>obs : unique symbol } } const observable: typeof Symbol.obs = Symbol.obs ->observable : symbol ->Symbol.obs : symbol +>observable : unique symbol +>Symbol.obs : unique symbol >Symbol : SymbolConstructor ->obs : symbol ->Symbol.obs : symbol +>obs : unique symbol +>Symbol.obs : unique symbol >Symbol : SymbolConstructor ->obs : symbol +>obs : unique symbol export class MyObservable { >MyObservable : MyObservable @@ -40,7 +40,7 @@ export class MyObservable { [observable]() { >[observable] : () => this ->observable : symbol +>observable : unique symbol return this >this : this @@ -52,9 +52,9 @@ type InteropObservable = { [Symbol.obs]: () => { subscribe(next: (val: T) => void): void } >[Symbol.obs] : () => { subscribe(next: (val: T) => void): void; } ->Symbol.obs : symbol +>Symbol.obs : unique symbol >Symbol : SymbolConstructor ->obs : symbol +>obs : unique symbol >subscribe : (next: (val: T) => void) => void >next : (val: T) => void >val : T @@ -68,9 +68,9 @@ function from(obs: InteropObservable) { >obs[Symbol.obs]() : { subscribe(next: (val: T) => void): void; } >obs[Symbol.obs] : () => { subscribe(next: (val: T) => void): void; } >obs : InteropObservable ->Symbol.obs : symbol +>Symbol.obs : unique symbol >Symbol : SymbolConstructor ->obs : symbol +>obs : unique symbol } from(new MyObservable(42)) diff --git a/testdata/baselines/reference/submodule/conformance/symbolProperty61.types.diff b/testdata/baselines/reference/submodule/conformance/symbolProperty61.types.diff deleted file mode 100644 index 0e497c9e31..0000000000 --- a/testdata/baselines/reference/submodule/conformance/symbolProperty61.types.diff +++ /dev/null @@ -1,62 +0,0 @@ ---- old.symbolProperty61.types -+++ new.symbolProperty61.types -@@= skipped -5, +5 lines =@@ - - interface SymbolConstructor { - readonly obs: symbol -->obs : unique symbol -+>obs : symbol - } - } - - const observable: typeof Symbol.obs = Symbol.obs -->observable : unique symbol -->Symbol.obs : unique symbol -->Symbol : SymbolConstructor -->obs : unique symbol -->Symbol.obs : unique symbol -->Symbol : SymbolConstructor -->obs : unique symbol -+>observable : symbol -+>Symbol.obs : symbol -+>Symbol : SymbolConstructor -+>obs : symbol -+>Symbol.obs : symbol -+>Symbol : SymbolConstructor -+>obs : symbol - - export class MyObservable { - >MyObservable : MyObservable -@@= skipped -34, +34 lines =@@ - - [observable]() { - >[observable] : () => this -->observable : unique symbol -+>observable : symbol - - return this - >this : this -@@= skipped -12, +12 lines =@@ - - [Symbol.obs]: () => { subscribe(next: (val: T) => void): void } - >[Symbol.obs] : () => { subscribe(next: (val: T) => void): void; } -->Symbol.obs : unique symbol -+>Symbol.obs : symbol - >Symbol : SymbolConstructor -->obs : unique symbol -+>obs : symbol - >subscribe : (next: (val: T) => void) => void - >next : (val: T) => void - >val : T -@@= skipped -16, +16 lines =@@ - >obs[Symbol.obs]() : { subscribe(next: (val: T) => void): void; } - >obs[Symbol.obs] : () => { subscribe(next: (val: T) => void): void; } - >obs : InteropObservable -->Symbol.obs : unique symbol -+>Symbol.obs : symbol - >Symbol : SymbolConstructor -->obs : unique symbol -+>obs : symbol - } - - from(new MyObservable(42)) \ No newline at end of file From 60d0c081ab7e5d1e9946e486baf17216376b1b16 Mon Sep 17 00:00:00 2001 From: Jake Bailey <5341706+jakebailey@users.noreply.github.com> Date: Thu, 19 Jun 2025 10:06:09 -0700 Subject: [PATCH 02/15] Update submodule with type ordering changes (#1236) --- _submodules/TypeScript | 2 +- .../compiler/correlatedUnions.types.diff | 21 +------------------ .../objectLiteralExcessProperties.types.diff | 11 +--------- ...eGuardConstructorClassAndNumber.types.diff | 12 ++--------- ...fFunctionAndSignatureIsCallable.types.diff | 9 +++----- .../vueLikeDataAndPropsInference2.types.diff | 3 +-- .../conformance/conditionalTypes2.types.diff | 11 +--------- .../generatorYieldContextualType.types.diff | 11 +--------- ...nOperatorWithValidOperands.errors.txt.diff | 20 ------------------ .../inOperatorWithValidOperands.types.diff | 13 ++---------- ...nPrimitiveAndTypeVariables.errors.txt.diff | 19 ----------------- .../nonPrimitiveAndTypeVariables.types.diff | 10 --------- .../spreadObjectOrFalsy.types.diff | 16 +------------- .../templateLiteralTypes3.types.diff | 6 +++--- 14 files changed, 17 insertions(+), 147 deletions(-) delete mode 100644 testdata/baselines/reference/submodule/conformance/inOperatorWithValidOperands.errors.txt.diff delete mode 100644 testdata/baselines/reference/submodule/conformance/nonPrimitiveAndTypeVariables.errors.txt.diff delete mode 100644 testdata/baselines/reference/submodule/conformance/nonPrimitiveAndTypeVariables.types.diff diff --git a/_submodules/TypeScript b/_submodules/TypeScript index c356203d2b..6758cd9f01 160000 --- a/_submodules/TypeScript +++ b/_submodules/TypeScript @@ -1 +1 @@ -Subproject commit c356203d2bd5bf9edf0012d179128a02f74b7bf3 +Subproject commit 6758cd9f01a716e69f1ddeddb23faa13a8ff2507 diff --git a/testdata/baselines/reference/submodule/compiler/correlatedUnions.types.diff b/testdata/baselines/reference/submodule/compiler/correlatedUnions.types.diff index 23d299c30c..1e94053bb7 100644 --- a/testdata/baselines/reference/submodule/compiler/correlatedUnions.types.diff +++ b/testdata/baselines/reference/submodule/compiler/correlatedUnions.types.diff @@ -141,23 +141,4 @@ +>< K extends KeyOfOriginal, N extends NestedKeyOfOriginalFor>( original: Original, mappedFromOriginal: MappedFromOriginal, key: K, nestedKey: N): [Original[K][N], MappedFromOriginal[K][N]] => { return [original[key][nestedKey], mappedFromOriginal[key][nestedKey]];} : (original: Original, mappedFromOriginal: SameKeys, key: K, nestedKey: N) => [Original[K][N], SameKeys[K][N]] K extends KeyOfOriginal, - N extends NestedKeyOfOriginalFor -@@= skipped -63, +63 lines =@@ - >key : T - - const assertedCheck = userValue ? userValue! : defaultValue; -->assertedCheck : NonNullable[T]> -->userValue ? userValue! : defaultValue : NonNullable[T]> -+>assertedCheck : Config[T] -+>userValue ? userValue! : defaultValue : Config[T] - >userValue : Partial[T] - >userValue! : NonNullable[T]> - >userValue : NonNullable[T]> - >defaultValue : Config[T] - - return assertedCheck; -->assertedCheck : NonNullable[T]> -+>assertedCheck : Config[T] - } - - // repro from #47523 \ No newline at end of file + N extends NestedKeyOfOriginalFor \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/objectLiteralExcessProperties.types.diff b/testdata/baselines/reference/submodule/compiler/objectLiteralExcessProperties.types.diff index ebfd5a47ca..16cea5d93a 100644 --- a/testdata/baselines/reference/submodule/compiler/objectLiteralExcessProperties.types.diff +++ b/testdata/baselines/reference/submodule/compiler/objectLiteralExcessProperties.types.diff @@ -17,13 +17,4 @@ +>obj4 : { name: string; } | T & { prop: boolean; } >prop : boolean >name : string - >{ name: "test", prop: true } : { name: string; prop: boolean; } -@@= skipped -11, +11 lines =@@ - - // No excess property checks when union includes 'object' type - const obj5: object | { x: string } = { z: 'abc' } -->obj5 : { x: string; } | object -+>obj5 : object | { x: string; } - >x : string - >{ z: 'abc' } : { z: string; } - >z : string \ No newline at end of file + >{ name: "test", prop: true } : { name: string; prop: boolean; } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/typeGuardConstructorClassAndNumber.types.diff b/testdata/baselines/reference/submodule/compiler/typeGuardConstructorClassAndNumber.types.diff index 27fb073af6..e6465d113f 100644 --- a/testdata/baselines/reference/submodule/compiler/typeGuardConstructorClassAndNumber.types.diff +++ b/testdata/baselines/reference/submodule/compiler/typeGuardConstructorClassAndNumber.types.diff @@ -5,15 +5,7 @@ function foo(instance: Function | object) { ->foo : (instance: Function | object) => number -->instance : Function | object +>foo : (instance: object | Function) => number -+>instance : object | Function + >instance : object | Function - if (typeof instance === 'function') { - >typeof instance === 'function' : boolean - >typeof instance : "bigint" | "boolean" | "function" | "number" | "object" | "string" | "symbol" | "undefined" -->instance : Function | object -+>instance : object | Function - >'function' : "function" - - if (instance.prototype == null || instance.prototype.constructor == null) { \ No newline at end of file + if (typeof instance === 'function') { \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/unionOfFunctionAndSignatureIsCallable.types.diff b/testdata/baselines/reference/submodule/compiler/unionOfFunctionAndSignatureIsCallable.types.diff index a88707ecaf..d83c18ae6c 100644 --- a/testdata/baselines/reference/submodule/compiler/unionOfFunctionAndSignatureIsCallable.types.diff +++ b/testdata/baselines/reference/submodule/compiler/unionOfFunctionAndSignatureIsCallable.types.diff @@ -20,10 +20,8 @@ >callable : Function | (() => object) } - function f2(fetcherParams: object | (() => object)) { - >f2 : (fetcherParams: object | (() => object)) => void -->fetcherParams : (() => object) | object -+>fetcherParams : object | (() => object) +@@= skipped -10, +10 lines =@@ + >fetcherParams : object | (() => object) const data = typeof fetcherParams === 'function' ->data : error @@ -32,8 +30,7 @@ +>typeof fetcherParams === 'function' ? fetcherParams() : fetcherParams : any >typeof fetcherParams === 'function' : boolean >typeof fetcherParams : "bigint" | "boolean" | "function" | "number" | "object" | "string" | "symbol" | "undefined" -->fetcherParams : (() => object) | object -+>fetcherParams : object | (() => object) + >fetcherParams : object | (() => object) >'function' : "function" ? fetcherParams() diff --git a/testdata/baselines/reference/submodule/compiler/vueLikeDataAndPropsInference2.types.diff b/testdata/baselines/reference/submodule/compiler/vueLikeDataAndPropsInference2.types.diff index beb4d294c7..7eeca50fc1 100644 --- a/testdata/baselines/reference/submodule/compiler/vueLikeDataAndPropsInference2.types.diff +++ b/testdata/baselines/reference/submodule/compiler/vueLikeDataAndPropsInference2.types.diff @@ -10,9 +10,8 @@ declare function test(fn: Options): void; ->test : { (fn: ThisTypedOptions): void; (fn: Options): void; } -->fn : Options<((this: Instance) => object) | object, PropsDefinition>> +>test : { (fn: ThisTypedOptions): void; (fn: Options object), PropsDefinition>>): void; } -+>fn : Options object), PropsDefinition>> + >fn : Options object), PropsDefinition>> test({ >test({ props: { foo: '' }, data(): { bar: boolean } { return { bar: true } }, watch: { foo(newVal: string, oldVal: string): void { this.bar = false } }}) : void diff --git a/testdata/baselines/reference/submodule/conformance/conditionalTypes2.types.diff b/testdata/baselines/reference/submodule/conformance/conditionalTypes2.types.diff index 276c5aa2c2..a1d7609b69 100644 --- a/testdata/baselines/reference/submodule/conformance/conditionalTypes2.types.diff +++ b/testdata/baselines/reference/submodule/conformance/conditionalTypes2.types.diff @@ -9,16 +9,7 @@ >predicate : (v: T) => boolean >v : T -@@= skipped -29, +29 lines =@@ - - declare function toString1(value: object | Function): string ; - >toString1 : (value: object | Function) => string -->value : Function | object -+>value : object | Function - - declare function toString2(value: Function): string ; - >toString2 : (value: Function) => string -@@= skipped -173, +173 lines =@@ +@@= skipped -202, +202 lines =@@ // Repro from #33568 declare function save(_response: IRootResponse): void; diff --git a/testdata/baselines/reference/submodule/conformance/generatorYieldContextualType.types.diff b/testdata/baselines/reference/submodule/conformance/generatorYieldContextualType.types.diff index 231e317d4c..ca7da0060c 100644 --- a/testdata/baselines/reference/submodule/conformance/generatorYieldContextualType.types.diff +++ b/testdata/baselines/reference/submodule/conformance/generatorYieldContextualType.types.diff @@ -46,16 +46,7 @@ _step: T, >_step : T -@@= skipped -9, +9 lines =@@ - >_state : PartialStepState - - _selection: StepItemType | Directive -->_selection : Directive | StepItemType -+>_selection : StepItemType | Directive - - ): _selection is StepItemType { - return false; -@@= skipped -19, +19 lines =@@ +@@= skipped -28, +28 lines =@@ } function* showStep< diff --git a/testdata/baselines/reference/submodule/conformance/inOperatorWithValidOperands.errors.txt.diff b/testdata/baselines/reference/submodule/conformance/inOperatorWithValidOperands.errors.txt.diff deleted file mode 100644 index db953e8336..0000000000 --- a/testdata/baselines/reference/submodule/conformance/inOperatorWithValidOperands.errors.txt.diff +++ /dev/null @@ -1,20 +0,0 @@ ---- old.inOperatorWithValidOperands.errors.txt -+++ new.inOperatorWithValidOperands.errors.txt -@@= skipped -0, +0 lines =@@ - inOperatorWithValidOperands.ts(26,20): error TS2322: Type 'T' is not assignable to type 'object'. - inOperatorWithValidOperands.ts(30,20): error TS2322: Type 'T | U' is not assignable to type 'object'. - Type 'T' is not assignable to type 'object'. --inOperatorWithValidOperands.ts(34,20): error TS2322: Type 'T | object' is not assignable to type 'object'. -+inOperatorWithValidOperands.ts(34,20): error TS2322: Type 'object | T' is not assignable to type 'object'. - Type 'T' is not assignable to type 'object'. - - -@@= skipped -47, +47 lines =@@ - function unionCase2(t: T | object) { - var rb5 = x in t; - ~ --!!! error TS2322: Type 'T | object' is not assignable to type 'object'. -+!!! error TS2322: Type 'object | T' is not assignable to type 'object'. - !!! error TS2322: Type 'T' is not assignable to type 'object'. - !!! related TS2208 inOperatorWithValidOperands.ts:33:21: This type parameter might need an `extends object` constraint. - } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/inOperatorWithValidOperands.types.diff b/testdata/baselines/reference/submodule/conformance/inOperatorWithValidOperands.types.diff index 5fc7f20707..81704ff525 100644 --- a/testdata/baselines/reference/submodule/conformance/inOperatorWithValidOperands.types.diff +++ b/testdata/baselines/reference/submodule/conformance/inOperatorWithValidOperands.types.diff @@ -5,16 +5,7 @@ function unionCase2(t: T | object) { ->unionCase2 : (t: T | object) => void -->t : T | object +>unionCase2 : (t: object | T) => void -+>t : object | T + >t : object | T - var rb5 = x in t; - >rb5 : boolean - >x in t : boolean - >x : any -->t : T | object -+>t : object | T - } - - interface X { x: number } \ No newline at end of file + var rb5 = x in t; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nonPrimitiveAndTypeVariables.errors.txt.diff b/testdata/baselines/reference/submodule/conformance/nonPrimitiveAndTypeVariables.errors.txt.diff deleted file mode 100644 index c31a26f2e1..0000000000 --- a/testdata/baselines/reference/submodule/conformance/nonPrimitiveAndTypeVariables.errors.txt.diff +++ /dev/null @@ -1,19 +0,0 @@ ---- old.nonPrimitiveAndTypeVariables.errors.txt -+++ new.nonPrimitiveAndTypeVariables.errors.txt -@@= skipped -0, +0 lines =@@ - nonPrimitiveAndTypeVariables.ts(10,9): error TS2322: Type 'T' is not assignable to type 'object'. --nonPrimitiveAndTypeVariables.ts(11,9): error TS2322: Type 'T' is not assignable to type 'U | object'. -+nonPrimitiveAndTypeVariables.ts(11,9): error TS2322: Type 'T' is not assignable to type 'object | U'. - - - ==== nonPrimitiveAndTypeVariables.ts (2 errors) ==== -@@= skipped -17, +17 lines =@@ - !!! related TS2208 nonPrimitiveAndTypeVariables.ts:9:14: This type parameter might need an `extends object` constraint. - let b: U | object = x; // Error - ~ --!!! error TS2322: Type 'T' is not assignable to type 'U | object'. --!!! related TS2208 nonPrimitiveAndTypeVariables.ts:9:14: This type parameter might need an `extends U | object` constraint. -+!!! error TS2322: Type 'T' is not assignable to type 'object | U'. -+!!! related TS2208 nonPrimitiveAndTypeVariables.ts:9:14: This type parameter might need an `extends object | U` constraint. - } - \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nonPrimitiveAndTypeVariables.types.diff b/testdata/baselines/reference/submodule/conformance/nonPrimitiveAndTypeVariables.types.diff deleted file mode 100644 index 234342215b..0000000000 --- a/testdata/baselines/reference/submodule/conformance/nonPrimitiveAndTypeVariables.types.diff +++ /dev/null @@ -1,10 +0,0 @@ ---- old.nonPrimitiveAndTypeVariables.types -+++ new.nonPrimitiveAndTypeVariables.types -@@= skipped -31, +31 lines =@@ - >x : T - - let b: U | object = x; // Error -->b : U | object -+>b : object | U - >x : T - } diff --git a/testdata/baselines/reference/submodule/conformance/spreadObjectOrFalsy.types.diff b/testdata/baselines/reference/submodule/conformance/spreadObjectOrFalsy.types.diff index c53237d855..9e6404ed0e 100644 --- a/testdata/baselines/reference/submodule/conformance/spreadObjectOrFalsy.types.diff +++ b/testdata/baselines/reference/submodule/conformance/spreadObjectOrFalsy.types.diff @@ -17,21 +17,7 @@ } function f3(a: T) { -@@= skipped -19, +19 lines =@@ - - function f4(a: object | T) { - >f4 : (a: object | T) => {} -->a : T | object -+>a : object | T - - return { ...a }; - >{ ...a } : {} -->a : T | object -+>a : object | T - } - - function f5(a: S | T) { -@@= skipped -28, +28 lines =@@ +@@= skipped -47, +47 lines =@@ // Repro from #46976 function g1(a: A) { diff --git a/testdata/baselines/reference/submodule/conformance/templateLiteralTypes3.types.diff b/testdata/baselines/reference/submodule/conformance/templateLiteralTypes3.types.diff index a80b9d28ec..e3c5a47fed 100644 --- a/testdata/baselines/reference/submodule/conformance/templateLiteralTypes3.types.diff +++ b/testdata/baselines/reference/submodule/conformance/templateLiteralTypes3.types.diff @@ -111,18 +111,18 @@ >id : string let x: keyof T & string | `-${keyof T & string}`; -->x : (keyof T & string) | `-${keyof T & string}` +->x : `-${keyof T & string}` | (keyof T & string) +>x : `-${keyof T & string}` | keyof T & string x = "id"; >x = "id" : "id" -->x : (keyof T & string) | `-${keyof T & string}` +->x : `-${keyof T & string}` | (keyof T & string) +>x : `-${keyof T & string}` | keyof T & string >"id" : "id" x = "-id"; >x = "-id" : "-id" -->x : (keyof T & string) | `-${keyof T & string}` +->x : `-${keyof T & string}` | (keyof T & string) +>x : `-${keyof T & string}` | keyof T & string >"-id" : "-id" } From 8073250c36b53f1c78a2724bc5df6e9b5a949168 Mon Sep 17 00:00:00 2001 From: Jake Bailey <5341706+jakebailey@users.noreply.github.com> Date: Thu, 19 Jun 2025 11:53:24 -0700 Subject: [PATCH 03/15] Unskip JS emit tests (#1211) --- internal/testrunner/compiler_runner.go | 69 +- .../testutil/tsbaseline/js_emit_baseline.go | 8 +- .../deepElementAccessExpressionInJS.js | 24 + .../typeTagForMultipleVariableDeclarations.js | 16 + .../compiler/accessorDeclarationEmitJs.js | 39 + .../accessorDeclarationEmitJs.js.diff | 31 + .../allowJscheckJsTypeParameterNoCrash.js | 40 + ...allowJscheckJsTypeParameterNoCrash.js.diff | 11 + ...ambientRequireFunction(module=commonjs).js | 19 + ...ambientRequireFunction(module=preserve).js | 19 + .../compiler/amdLikeInputDeclarationEmit.js | 36 + .../amdLikeInputDeclarationEmit.js.diff | 11 + .../argumentsPropertyNameInJsMode1.js | 29 + .../argumentsPropertyNameInJsMode1.js.diff | 13 + .../argumentsPropertyNameInJsMode2.js | 19 + .../argumentsPropertyNameInJsMode2.js.diff | 8 + .../argumentsReferenceInConstructor1_Js.js | 29 + ...rgumentsReferenceInConstructor1_Js.js.diff | 11 + .../argumentsReferenceInConstructor2_Js.js | 29 + ...rgumentsReferenceInConstructor2_Js.js.diff | 11 + .../argumentsReferenceInConstructor3_Js.js | 47 ++ ...rgumentsReferenceInConstructor3_Js.js.diff | 15 + .../argumentsReferenceInConstructor4_Js.js | 58 ++ ...rgumentsReferenceInConstructor4_Js.js.diff | 25 + .../argumentsReferenceInConstructor5_Js.js | 41 + ...rgumentsReferenceInConstructor5_Js.js.diff | 28 + .../argumentsReferenceInConstructor6_Js.js | 19 + ...rgumentsReferenceInConstructor6_Js.js.diff | 13 + .../argumentsReferenceInConstructor7_Js.js | 19 + ...rgumentsReferenceInConstructor7_Js.js.diff | 13 + .../argumentsReferenceInMethod1_Js.js | 25 + .../argumentsReferenceInMethod1_Js.js.diff | 11 + .../argumentsReferenceInMethod2_Js.js | 25 + .../argumentsReferenceInMethod2_Js.js.diff | 11 + .../argumentsReferenceInMethod3_Js.js | 41 + .../argumentsReferenceInMethod3_Js.js.diff | 15 + .../argumentsReferenceInMethod4_Js.js | 54 ++ .../argumentsReferenceInMethod4_Js.js.diff | 25 + .../argumentsReferenceInMethod5_Js.js | 37 + .../argumentsReferenceInMethod5_Js.js.diff | 26 + .../argumentsReferenceInMethod6_Js.js | 19 + .../argumentsReferenceInMethod6_Js.js.diff | 13 + .../argumentsReferenceInMethod7_Js.js | 19 + .../argumentsReferenceInMethod7_Js.js.diff | 13 + .../argumentsReferenceInObjectLiteral_Js.js | 53 ++ .../checkJsObjectLiteralHasCheckedKeyof.js | 27 + .../checkJsObjectLiteralIndexSignatures.js | 24 + .../checkJsdocTypeTagOnExportAssignment1.js | 35 + ...eckJsdocTypeTagOnExportAssignment1.js.diff | 21 + .../checkJsdocTypeTagOnExportAssignment2.js | 33 + ...eckJsdocTypeTagOnExportAssignment2.js.diff | 9 + .../checkJsdocTypeTagOnExportAssignment3.js | 38 + ...eckJsdocTypeTagOnExportAssignment3.js.diff | 22 + .../checkJsdocTypeTagOnExportAssignment4.js | 23 + ...eckJsdocTypeTagOnExportAssignment4.js.diff | 13 + .../checkJsdocTypeTagOnExportAssignment5.js | 35 + ...eckJsdocTypeTagOnExportAssignment5.js.diff | 21 + .../checkJsdocTypeTagOnExportAssignment6.js | 35 + ...eckJsdocTypeTagOnExportAssignment6.js.diff | 21 + .../checkJsdocTypeTagOnExportAssignment7.js | 38 + ...eckJsdocTypeTagOnExportAssignment7.js.diff | 22 + .../checkJsdocTypeTagOnExportAssignment8.js | 32 + ...eckJsdocTypeTagOnExportAssignment8.js.diff | 16 + .../submodule/compiler/checkJsxNotSetError.js | 22 + .../compiler/checkJsxNotSetError.js.diff | 9 + ...tyOnFunctionNonexistentPropertyNoCrash1.js | 29 + ...unctionNonexistentPropertyNoCrash1.js.diff | 11 + .../commonJsExportTypeDeclarationError.js | 36 + ...commonJsExportTypeDeclarationError.js.diff | 12 + .../compiler/commonJsIsolatedModules.js | 11 + .../compiler/commonJsIsolatedModules.js.diff | 9 + .../compiler/constructorPropertyJs.js | 22 + ...ReusesTypeNode4(strictnullchecks=false).js | 100 +++ ...sTypeNode4(strictnullchecks=false).js.diff | 82 ++ ...tReusesTypeNode4(strictnullchecks=true).js | 98 +++ ...esTypeNode4(strictnullchecks=true).js.diff | 81 ++ .../declarationEmitClassAccessorsJs1.js | 35 + .../declarationEmitClassAccessorsJs1.js.diff | 22 + ...rationEmitClassSetAccessorParamNameInJs.js | 27 + ...nEmitClassSetAccessorParamNameInJs.js.diff | 12 + ...ationEmitClassSetAccessorParamNameInJs2.js | 24 + ...EmitClassSetAccessorParamNameInJs2.js.diff | 18 + ...ationEmitClassSetAccessorParamNameInJs3.js | 26 + ...EmitClassSetAccessorParamNameInJs3.js.diff | 18 + .../declarationEmitExpressionInExtends6.js | 58 ++ ...eclarationEmitExpressionInExtends6.js.diff | 41 + .../declarationEmitInvalidReferenceAllowJs.js | 14 + .../declarationEmitJsReExportDefault.js | 15 + .../declarationEmitJsReExportDefault.js.diff | 8 + .../declarationEmitLateBoundJSAssignments.js | 28 + ...larationEmitLateBoundJSAssignments.js.diff | 12 + .../declarationEmitMethodDeclaration.js | 19 + .../declarationEmitMethodDeclaration.js.diff | 17 + ...eclarationEmitObjectLiteralAccessorsJs1.js | 92 +++ ...ationEmitObjectLiteralAccessorsJs1.js.diff | 49 ++ .../defaultPropsEmptyCurlyBecomesAnyForJs.js | 51 ++ ...aultPropsEmptyCurlyBecomesAnyForJs.js.diff | 21 + .../submodule/compiler/elidedJSImport1.js | 25 + .../elidedJSImport2(module=commonjs).js | 87 +++ .../elidedJSImport2(module=commonjs).js.diff | 32 + .../elidedJSImport2(module=es2022).js | 44 ++ .../elidedJSImport2(module=es2022).js.diff | 17 + .../expandoFunctionSymbolPropertyJs.js | 53 ++ .../expandoFunctionSymbolPropertyJs.js.diff | 17 + .../exportDefaultMarksIdentifierAsUsed.js | 20 + .../extendedUnicodePlaneIdentifiersJSDoc.js | 21 + .../submodule/compiler/extendsJavaScript.js | 17 + .../fileReferencesWithNoExtensions.js | 34 + .../fileReferencesWithNoExtensions.js.diff | 21 + .../fileReferencesWithNoExtensions.symbols | 34 + .../fileReferencesWithNoExtensions.types | 36 + ...ilesEmittingIntoSameOutput.errors.txt.diff | 16 + .../filesEmittingIntoSameOutput.symbols | 12 + .../filesEmittingIntoSameOutput.types | 12 + .../impliedNodeFormatEmit1(module=amd).js | 78 ++ ...impliedNodeFormatEmit1(module=amd).js.diff | 99 +++ ...impliedNodeFormatEmit1(module=commonjs).js | 68 ++ .../impliedNodeFormatEmit1(module=esnext).js | 60 ++ ...impliedNodeFormatEmit1(module=preserve).js | 52 ++ .../impliedNodeFormatEmit1(module=system).js | 78 ++ ...liedNodeFormatEmit1(module=system).js.diff | 149 ++++ .../impliedNodeFormatEmit1(module=umd).js | 78 ++ ...impliedNodeFormatEmit1(module=umd).js.diff | 179 +++++ ...impliedNodeFormatEmit2(module=commonjs).js | 71 ++ .../impliedNodeFormatEmit2(module=esnext).js | 63 ++ ...impliedNodeFormatEmit2(module=preserve).js | 55 ++ ...impliedNodeFormatEmit3(module=commonjs).js | 73 ++ .../impliedNodeFormatEmit3(module=esnext).js | 65 ++ ...impliedNodeFormatEmit3(module=preserve).js | 57 ++ ...impliedNodeFormatEmit4(module=commonjs).js | 73 ++ .../impliedNodeFormatEmit4(module=esnext).js | 65 ++ ...impliedNodeFormatEmit4(module=preserve).js | 57 ++ .../importDeclFromTypeNodeInJsSource.js | 82 ++ .../importDeclFromTypeNodeInJsSource.js.diff | 27 + ...SJavaScript(verbatimmodulesyntax=false).js | 53 ++ ...Script(verbatimmodulesyntax=false).js.diff | 8 + ...JSJavaScript(verbatimmodulesyntax=true).js | 53 ++ ...aScript(verbatimmodulesyntax=true).js.diff | 8 + .../compiler/isolatedDeclarationsAllowJs.js | 21 + .../isolatedDeclarationsAllowJs.js.diff | 19 + .../compiler/javascriptCommonjsModule.js | 17 + .../compiler/javascriptCommonjsModule.js.diff | 8 + .../javascriptThisAssignmentInStaticBlock.js | 46 ++ ...ascriptThisAssignmentInStaticBlock.js.diff | 44 ++ .../jsDeclarationEmitDoesNotRenameImport.js | 61 ++ ...DeclarationEmitDoesNotRenameImport.js.diff | 34 + .../jsDeclarationEmitExportAssignedArray.js | 14 + ...DeclarationEmitExportAssignedArray.js.diff | 14 + ...ssignedFunctionWithExtraTypedefsMembers.js | 41 + ...edFunctionWithExtraTypedefsMembers.js.diff | 33 + ...DeclarationEmitExportedClassWithExtends.js | 57 ++ ...rationEmitExportedClassWithExtends.js.diff | 16 + .../jsDeclarationsGlobalFileConstFunction.js | 29 + ...eclarationsGlobalFileConstFunction.js.diff | 31 + ...eclarationsGlobalFileConstFunctionNamed.js | 39 + ...ationsGlobalFileConstFunctionNamed.js.diff | 43 ++ .../compiler/jsDeclarationsInheritedTypes.js | 44 ++ .../jsDeclarationsInheritedTypes.js.diff | 36 + ...arationsWithDefaultAsNamespaceLikeMerge.js | 31 + ...onsWithDefaultAsNamespaceLikeMerge.js.diff | 17 + ...itDoesNotUseNodeModulesPathWithoutError.js | 59 ++ ...sNotUseNodeModulesPathWithoutError.js.diff | 22 + .../compiler/jsEmitIntersectionProperty.js | 38 + .../jsEmitIntersectionProperty.js.diff | 9 + .../jsExportAssignmentNonMutableLocation.js | 20 + ...ExportAssignmentNonMutableLocation.js.diff | 13 + .../jsFileAlternativeUseOfOverloadTag.js | 124 +++ .../jsFileAlternativeUseOfOverloadTag.js.diff | 99 +++ .../jsFileCompilationAbstractModifier.js | 11 + .../jsFileCompilationAbstractModifier.js.diff | 15 + ...eCompilationAmbientVarDeclarationSyntax.js | 6 + ...ilationAmbientVarDeclarationSyntax.js.diff | 10 + .../jsFileCompilationAwaitModifier.js | 30 + .../jsFileCompilationAwaitModifier.js.diff | 34 + .../compiler/jsFileCompilationEnumSyntax.js | 9 + .../jsFileCompilationEnumSyntax.js.diff | 13 + ...eclarationsWithJsFileReferenceWithNoOut.js | 37 + ...ationsWithJsFileReferenceWithNoOut.js.diff | 18 + ...clarationsWithJsFileReferenceWithOutDir.js | 34 + ...jsFileCompilationExportAssignmentSyntax.js | 8 + ...eCompilationExportAssignmentSyntax.js.diff | 12 + ...eCompilationHeritageClauseSyntaxOfClass.js | 8 + ...ilationHeritageClauseSyntaxOfClass.js.diff | 12 + .../jsFileCompilationImportEqualsSyntax.js | 7 + ...sFileCompilationImportEqualsSyntax.js.diff | 11 + .../jsFileCompilationInterfaceSyntax.js | 6 + .../jsFileCompilationInterfaceSyntax.js.diff | 10 + .../compiler/jsFileCompilationModuleSyntax.js | 6 + .../jsFileCompilationModuleSyntax.js.diff | 10 + ...eclarationsWithJsFileReferenceWithNoOut.js | 27 + ...ationsWithJsFileReferenceWithNoOut.js.diff | 12 + ...lationOptionalClassElementSyntaxOfClass.js | 15 + ...nOptionalClassElementSyntaxOfClass.js.diff | 19 + .../jsFileCompilationOptionalParameter.js | 7 + ...jsFileCompilationOptionalParameter.js.diff | 11 + ...ileCompilationPublicMethodSyntaxOfClass.js | 13 + ...mpilationPublicMethodSyntaxOfClass.js.diff | 17 + ...sFileCompilationPublicParameterModifier.js | 12 + ...CompilationPublicParameterModifier.js.diff | 16 + ...leCompilationReturnTypeSyntaxOfFunction.js | 7 + ...pilationReturnTypeSyntaxOfFunction.js.diff | 11 + .../compiler/jsFileCompilationSyntaxError.js | 16 + .../jsFileCompilationSyntaxError.js.diff | 20 + .../jsFileCompilationTypeAliasSyntax.js | 6 + .../jsFileCompilationTypeAliasSyntax.js.diff | 10 + ...FileCompilationTypeArgumentSyntaxOfCall.js | 17 + .../jsFileCompilationTypeOfParameter.js | 7 + .../jsFileCompilationTypeOfParameter.js.diff | 11 + ...leCompilationTypeParameterSyntaxOfClass.js | 8 + ...pilationTypeParameterSyntaxOfClass.js.diff | 12 + ...ompilationTypeParameterSyntaxOfFunction.js | 7 + ...ationTypeParameterSyntaxOfFunction.js.diff | 11 + .../jsFileCompilationTypeSyntaxOfVar.js | 7 + .../jsFileCompilationTypeSyntaxOfVar.js.diff | 11 + .../jsFileCompilationWithMapFileAsJs.js | 22 + .../jsFileCompilationWithMapFileAsJs.js.diff | 10 + ...ationWithMapFileAsJsWithInlineSourceMap.js | 22 + ...WithMapFileAsJsWithInlineSourceMap.js.diff | 10 + ...ileCompilationWithMapFileAsJsWithOutDir.js | 22 + ...ilationWithoutJsExtensions.errors.txt.diff | 14 + .../compiler/jsFileCompilationWithoutOut.js | 17 + .../jsFileCompilationWithoutOut.js.diff | 9 + .../compiler/jsFileFunctionOverloads.js | 132 ++++ .../compiler/jsFileFunctionOverloads.js.diff | 60 ++ .../compiler/jsFileFunctionOverloads2.js | 148 ++++ .../compiler/jsFileFunctionOverloads2.js.diff | 137 ++++ .../compiler/jsFileImportPreservedWhenUsed.js | 45 ++ .../compiler/jsFileMethodOverloads.js | 166 ++++ .../compiler/jsFileMethodOverloads.js.diff | 78 ++ .../compiler/jsFileMethodOverloads2.js | 153 ++++ .../compiler/jsFileMethodOverloads2.js.diff | 73 ++ .../compiler/jsFileMethodOverloads4.js | 30 + .../compiler/jsFileMethodOverloads4.js.diff | 23 + .../compiler/jsFileMethodOverloads5.js | 42 + .../compiler/jsFileMethodOverloads5.js.diff | 19 + ...onWithPrototypeNoErrorTruncationNoCrash.js | 36 + ...NoImplicitAnyNoCascadingReferenceErrors.js | 27 + ...licitAnyNoCascadingReferenceErrors.js.diff | 11 + ...jsdocFunctionClassPropertiesDeclaration.js | 39 + ...FunctionClassPropertiesDeclaration.js.diff | 17 + .../submodule/compiler/jsdocTypeCast.js | 36 + .../submodule/compiler/jsdocTypeCast.js.diff | 10 + .../compiler/jsdocTypecastNoTypeNoCrash.js | 10 + .../submodule/compiler/jsdocTypedefNoCrash.js | 15 + .../compiler/jsdocTypedefNoCrash2.js | 16 + ...xDeclarationsWithEsModuleInteropNoCrash.js | 47 ++ ...arationsWithEsModuleInteropNoCrash.js.diff | 40 + .../compiler/jsxPreserveWithJsInput.js | 28 + .../lateBoundMethodNameAssigmentJS.js | 21 + .../lateBoundMethodNameAssigmentJS.js.diff | 15 + .../compiler/localRequireFunction.js | 16 + .../mappedTypeRecursiveInference.errors.txt | 34 + .../compiler/mappedTypeRecursiveInference.js | 39 + .../mappedTypeRecursiveInference.symbols | 112 +++ .../mappedTypeRecursiveInference.symbols.diff | 11 + .../mappedTypeRecursiveInference.types | 116 +++ .../submodule/compiler/modulePreserve4.js | 232 ++++++ .../compiler/modulePreserve4.js.diff | 68 ++ ...eResolutionWithExtensions_notSupported2.js | 11 + ...solutionWithSuffixes_one_externalModule.js | 24 + ...tionWithSuffixes_one_externalModulePath.js | 24 + ...thSuffixes_one_externalModule_withPaths.js | 26 + ...duleResolutionWithSuffixes_one_jsModule.js | 35 + ...esolutionWithSuffixes_one_jsModule.js.diff | 23 + ...uleResolution_explicitNodeModulesImport.js | 12 + ...n_explicitNodeModulesImport_implicitAny.js | 12 + .../compiler/narrowingPlainJsNoCrash1.js | 21 + .../noCrashOnParameterNamedRequire.js | 13 + ...arseJsxElementInUnaryExpressionNoCrash1.js | 9 + ...arseJsxElementInUnaryExpressionNoCrash2.js | 9 + ...arseJsxElementInUnaryExpressionNoCrash3.js | 11 + .../compiler/parserUnparsedTokenCrash1.js | 9 + ...duleResolution_rootImport_aliasWithRoot.js | 26 + ...Import_aliasWithRoot_differentRootTypes.js | 42 + ...ootImport_aliasWithRoot_multipleAliases.js | 26 + ...n_rootImport_aliasWithRoot_realRootFile.js | 26 + ...leResolution_rootImport_noAliasWithRoot.js | 26 + ...rootImport_noAliasWithRoot_realRootFile.js | 26 + ...pingBasedModuleResolution_withExtension.js | 26 + ...lution_withExtension_MapedToNodeModules.js | 12 + .../submodule/compiler/reactImportDropped.js | 47 ++ .../requireAsFunctionInExternalModule.js | 39 + .../requireAsFunctionInExternalModule.js.diff | 18 + .../submodule/compiler/requireOfJsonFile.js | 27 + .../compiler/requireOfJsonFile.js.diff | 22 + .../compiler/requireOfJsonFileNonRelative.js | 34 + .../requireOfJsonFileNonRelative.js.diff | 14 + ...reOfJsonFileNonRelativeWithoutExtension.js | 27 + ...NonRelativeWithoutExtensionResolvesToTs.js | 21 + ...lativeWithoutExtensionResolvesToTs.js.diff | 16 + .../compiler/requireOfJsonFileTypes.js | 72 ++ .../compiler/requireOfJsonFileTypes.js.diff | 41 + .../compiler/requireOfJsonFileWithAmd.js | 27 + .../compiler/requireOfJsonFileWithAmd.js.diff | 30 + .../requireOfJsonFileWithEmptyObject.js | 23 + .../requireOfJsonFileWithEmptyObject.js.diff | 19 + ...uireOfJsonFileWithEmptyObjectWithErrors.js | 25 + ...fJsonFileWithEmptyObjectWithErrors.js.diff | 19 + .../compiler/requireOfJsonFileWithErrors.js | 27 + .../requireOfJsonFileWithErrors.js.diff | 22 + .../requireOfJsonFileWithNoContent.js | 24 + .../requireOfJsonFileWithNoContent.js.diff | 18 + .../requireOfJsonFileWithSourceMap.js | 28 + .../requireOfJsonFileWithSourceMap.js.diff | 22 + .../requireOfJsonFileWithTraillingComma.js | 27 + ...equireOfJsonFileWithTraillingComma.js.diff | 22 + .../requireOfJsonFileWithoutExtension.js | 27 + .../requireOfJsonFileWithoutExtension.js.diff | 22 + ...eOfJsonFileWithoutExtensionResolvesToTs.js | 39 + ...onFileWithoutExtensionResolvesToTs.js.diff | 22 + ...quireOfJsonFileWithoutResolveJsonModule.js | 24 + ...OfJsonFileWithoutResolveJsonModule.js.diff | 14 + ...eWithoutResolveJsonModuleAndPathMapping.js | 12 + .../compiler/requireOfJsonFile_PathMapping.js | 12 + .../compiler/resolveNameWithNamspace.js | 29 + .../compiler/resolveNameWithNamspace.js.diff | 11 + ...ationImportTypeInGlobalThisTypeArgument.js | 46 ++ ...ImportTypeInGlobalThisTypeArgument.js.diff | 21 + .../selfReferentialDefaultNoStackOverflow.js | 19 + ...fReferentialDefaultNoStackOverflow.js.diff | 11 + ...ts4(nouncheckedsideeffectimports=false).js | 33 + ...rts4(nouncheckedsideeffectimports=true).js | 33 + .../compiler/subclassThisTypeAssignable01.js | 40 + .../compiler/subclassThisTypeAssignable02.js | 44 ++ .../subclassThisTypeAssignable02.js.diff | 15 + .../compiler/superNoModifiersCrash.js | 26 + .../thisAssignmentInNamespaceDeclaration1.js | 23 + .../submodule/compiler/thisInObjectJs.js | 41 + .../compiler/unicodeEscapesInJSDoc.js | 35 + .../compiler/unreachableJavascriptChecked.js | 20 + .../unreachableJavascriptUnchecked.js | 13 + .../compiler/usedImportNotElidedInJs.js | 12 + .../conformance/assertionTypePredicates2.js | 52 ++ .../assertionTypePredicates2.js.diff | 27 + .../conformance/assignmentToVoidZero1.js | 28 + .../conformance/assignmentToVoidZero1.js.diff | 26 + .../conformance/assignmentToVoidZero2.js | 52 ++ .../conformance/assignmentToVoidZero2.js.diff | 30 + ...portingtsextensions=false,noemit=false).js | 81 ++ ...ngtsextensions=false,noemit=false).js.diff | 13 + ...mportingtsextensions=true,noemit=false).js | 81 ++ ...ingtsextensions=true,noemit=false).js.diff | 13 + ...undlerSyntaxRestrictions(module=esnext).js | 42 + ...rSyntaxRestrictions(module=esnext).js.diff | 13 + ...dlerSyntaxRestrictions(module=preserve).js | 42 + ...yntaxRestrictions(module=preserve).js.diff | 10 + .../conformance/callbackOnConstructor.js | 47 ++ .../conformance/callbackOnConstructor.js.diff | 34 + .../conformance/callbackTagNestedParameter.js | 28 + .../callbackTagNestedParameter.js.diff | 24 + .../conformance/callbackTagVariadicType.js | 38 + .../callbackTagVariadicType.js.diff | 35 + .../checkJsdocOptionalParamOrder.js | 20 + ...ramOnVariableDeclaredFunctionExpression.js | 37 + .../conformance/checkJsdocParamTag1.js | 24 + .../conformance/checkJsdocTypeTag1.js | 77 ++ .../conformance/checkJsdocTypeTag2.js | 49 ++ .../checkJsdocTypeTagOnObjectProperty1.js | 53 ++ .../checkJsdocTypeTagOnObjectProperty2.js | 48 ++ .../checkJsdocTypedefInParamTag1.js | 88 +++ .../checkJsdocTypedefInParamTag1.js.diff | 11 + .../checkJsdocTypedefOnlySourceFile.js | 27 + .../checkJsdocTypedefOnlySourceFile.js.diff | 11 + .../conformance/commonJSAliasedExport.js | 42 + .../conformance/commonJSAliasedExport.js.diff | 30 + .../commonJSImportClassTypeReference.js | 42 + .../commonJSImportClassTypeReference.js.diff | 27 + .../commonJSImportExportedClassExpression.js | 43 ++ ...monJSImportExportedClassExpression.js.diff | 26 + .../commonJSImportNestedClassTypeReference.js | 44 ++ ...onJSImportNestedClassTypeReference.js.diff | 30 + .../conformance/emit(jsx=preserve).js | 121 +++ .../submodule/conformance/emit(jsx=react).js | 121 +++ .../emitModuleCommonJS(module=commonjs).js | 45 ++ .../emitModuleCommonJS(module=nodenext).js | 49 ++ ...mitModuleCommonJS(module=nodenext).js.diff | 10 + .../submodule/conformance/expandoOnAlias.js | 33 + .../conformance/expandoOnAlias.js.diff | 18 + .../conformance/exportDefaultInJsFile01.js | 9 + .../exportDefaultInJsFile01.js.diff | 13 + .../conformance/exportDefaultInJsFile02.js | 7 + .../exportDefaultInJsFile02.js.diff | 11 + .../conformance/exportNamespace_js.js | 37 + .../conformance/exportNamespace_js.js.diff | 21 + .../submodule/conformance/extendsTag2.js | 42 + .../submodule/conformance/extendsTag3.js | 56 ++ .../submodule/conformance/extendsTag4.js | 25 + .../submodule/conformance/extendsTagEmit.js | 20 + .../conformance/importTag15(module=es2015).js | 24 + .../importTag15(module=es2015).js.diff | 13 + .../conformance/importTag15(module=esnext).js | 24 + .../importTag15(module=esnext).js.diff | 13 + .../submodule/conformance/importTag16.js | 56 ++ .../submodule/conformance/importTag16.js.diff | 41 + .../submodule/conformance/importTag18.js | 34 + .../submodule/conformance/importTag18.js.diff | 17 + .../submodule/conformance/importTag19.js | 32 + .../submodule/conformance/importTag19.js.diff | 17 + .../submodule/conformance/importTag20.js | 34 + .../submodule/conformance/importTag20.js.diff | 17 + .../submodule/conformance/importTag5.js | 33 + .../submodule/conformance/importTag5.js.diff | 15 + .../conformance/importTypeInJSDoc.js | 37 + .../conformance/importTypeInJSDoc.js.diff | 14 + ...lateTagTypeParameterOnVariableStatement.js | 30 + ...agTypeParameterOnVariableStatement.js.diff | 14 + .../jsDeclarationsClassAccessor.js | 88 +++ .../jsDeclarationsClassAccessor.js.diff | 32 + .../jsDeclarationsClassExtendsVisibility.js | 41 + ...DeclarationsClassExtendsVisibility.js.diff | 41 + ...onsClassImplementsGenericsSerialization.js | 71 ++ ...assImplementsGenericsSerialization.js.diff | 18 + .../jsDeclarationsClassLeadingOptional.js | 25 + ...jsDeclarationsClassLeadingOptional.js.diff | 10 + .../jsDeclarationsClassLikeHeuristic.js | 18 + .../jsDeclarationsClassLikeHeuristic.js.diff | 12 + .../conformance/jsDeclarationsClassMethod.js | 140 ++++ .../jsDeclarationsClassMethod.js.diff | 55 ++ .../conformance/jsDeclarationsClassStatic.js | 61 ++ .../jsDeclarationsClassStatic.js.diff | 49 ++ .../conformance/jsDeclarationsClassStatic2.js | 27 + .../jsDeclarationsClassStatic2.js.diff | 18 + ...clarationsClassStaticMethodAugmentation.js | 24 + ...tionsClassStaticMethodAugmentation.js.diff | 16 + .../conformance/jsDeclarationsClasses.js | 533 +++++++++++++ .../conformance/jsDeclarationsClasses.js.diff | 390 ++++++++++ .../conformance/jsDeclarationsClassesErr.js | 207 +++++ .../jsDeclarationsClassesErr.js.diff | 114 +++ .../jsDeclarationsCommonjsRelativePath.js | 29 + ...jsDeclarationsCommonjsRelativePath.js.diff | 23 + .../jsDeclarationsComputedNames.js | 92 +++ .../jsDeclarationsComputedNames.js.diff | 83 ++ ...rationsConstsAsNamespacesWithReferences.js | 27 + ...nsConstsAsNamespacesWithReferences.js.diff | 19 + .../jsDeclarationsCrossfileMerge.js | 37 + .../jsDeclarationsCrossfileMerge.js.diff | 31 + .../conformance/jsDeclarationsDefault.js | 125 +++ .../conformance/jsDeclarationsDefault.js.diff | 72 ++ .../conformance/jsDeclarationsDefaultsErr.js | 88 +++ .../jsDeclarationsDefaultsErr.js.diff | 54 ++ .../jsDeclarationsDocCommentsOnConsts.js | 45 ++ .../jsDeclarationsDocCommentsOnConsts.js.diff | 19 + .../conformance/jsDeclarationsEnumTag.js | 135 ++++ .../conformance/jsDeclarationsEnumTag.js.diff | 54 ++ .../conformance/jsDeclarationsEnums.js | 185 +++++ .../conformance/jsDeclarationsEnums.js.diff | 125 +++ ...clarationsExportAssignedClassExpression.js | 44 ++ ...tionsExportAssignedClassExpression.js.diff | 34 + ...sExportAssignedClassExpressionAnonymous.js | 44 ++ ...rtAssignedClassExpressionAnonymous.js.diff | 34 + ...AssignedClassExpressionAnonymousWithSub.js | 49 ++ ...nedClassExpressionAnonymousWithSub.js.diff | 48 ++ ...sExportAssignedClassExpressionShadowing.js | 46 ++ ...rtAssignedClassExpressionShadowing.js.diff | 52 ++ ...eclarationsExportAssignedClassInstance1.js | 19 + ...ationsExportAssignedClassInstance1.js.diff | 17 + ...eclarationsExportAssignedClassInstance2.js | 26 + ...ationsExportAssignedClassInstance2.js.diff | 32 + ...eclarationsExportAssignedClassInstance3.js | 33 + ...ationsExportAssignedClassInstance3.js.diff | 37 + ...ationsExportAssignedConstructorFunction.js | 49 ++ ...sExportAssignedConstructorFunction.js.diff | 40 + ...xportAssignedConstructorFunctionWithSub.js | 43 ++ ...AssignedConstructorFunctionWithSub.js.diff | 33 + .../jsDeclarationsExportAssignedVisibility.js | 67 ++ ...clarationsExportAssignedVisibility.js.diff | 56 ++ ...ExportAssignmentExpressionPlusSecondary.js | 52 ++ ...tAssignmentExpressionPlusSecondary.js.diff | 49 ++ ...arationsExportAssignmentWithKeywordName.js | 32 + ...onsExportAssignmentWithKeywordName.js.diff | 20 + .../jsDeclarationsExportDefinePropertyEmit.js | 151 ++++ ...clarationsExportDefinePropertyEmit.js.diff | 97 +++ ...arationsExportDoubleAssignmentInClosure.js | 34 + ...onsExportDoubleAssignmentInClosure.js.diff | 28 + .../conformance/jsDeclarationsExportForms.js | 295 +++++++ .../jsDeclarationsExportForms.js.diff | 196 +++++ .../jsDeclarationsExportFormsErr.js | 81 ++ .../jsDeclarationsExportFormsErr.js.diff | 40 + .../jsDeclarationsExportSpecifierNonlocal.js | 35 + ...eclarationsExportSpecifierNonlocal.js.diff | 21 + .../jsDeclarationsExportSubAssignments.js | 29 + ...jsDeclarationsExportSubAssignments.js.diff | 32 + .../jsDeclarationsExportedClassAliases.js | 59 ++ ...jsDeclarationsExportedClassAliases.js.diff | 29 + ...tionsFunctionClassesCjsExportAssignment.js | 164 ++++ ...FunctionClassesCjsExportAssignment.js.diff | 178 +++++ .../jsDeclarationsFunctionJSDoc.js | 105 +++ .../jsDeclarationsFunctionJSDoc.js.diff | 33 + .../jsDeclarationsFunctionKeywordProp.js | 29 + .../jsDeclarationsFunctionKeywordProp.js.diff | 22 + ...clarationsFunctionKeywordPropExhaustive.js | 172 +++++ ...tionsFunctionKeywordPropExhaustive.js.diff | 131 ++++ .../jsDeclarationsFunctionLikeClasses.js | 65 ++ .../jsDeclarationsFunctionLikeClasses.js.diff | 39 + .../jsDeclarationsFunctionLikeClasses2.js | 169 ++++ ...jsDeclarationsFunctionLikeClasses2.js.diff | 70 ++ .../jsDeclarationsFunctionPrototypeStatic.js | 59 ++ ...eclarationsFunctionPrototypeStatic.js.diff | 50 ++ ...ationsFunctionWithDefaultAssignedMember.js | 32 + ...sFunctionWithDefaultAssignedMember.js.diff | 30 + .../conformance/jsDeclarationsFunctions.js | 168 ++++ .../jsDeclarationsFunctions.js.diff | 93 +++ .../conformance/jsDeclarationsFunctionsCjs.js | 176 +++++ .../jsDeclarationsFunctionsCjs.js.diff | 161 ++++ .../conformance/jsDeclarationsGetterSetter.js | 273 +++++++ .../jsDeclarationsGetterSetter.js.diff | 75 ++ ...ationsImportAliasExposedWithinNamespace.js | 93 +++ ...sImportAliasExposedWithinNamespace.js.diff | 72 ++ ...onsImportAliasExposedWithinNamespaceCjs.js | 85 +++ ...portAliasExposedWithinNamespaceCjs.js.diff | 67 ++ .../jsDeclarationsImportNamespacedType.js | 20 + ...jsDeclarationsImportNamespacedType.js.diff | 15 + .../conformance/jsDeclarationsInterfaces.js | 241 ++++++ .../jsDeclarationsInterfaces.js.diff | 65 ++ .../jsDeclarationsJSDocRedirectedLookups.js | 90 +++ ...DeclarationsJSDocRedirectedLookups.js.diff | 96 +++ .../conformance/jsDeclarationsJson.js | 43 ++ .../conformance/jsDeclarationsJson.js.diff | 62 ++ .../jsDeclarationsMissingGenerics.js | 32 + .../jsDeclarationsMissingGenerics.js.diff | 13 + .../jsDeclarationsMissingTypeParameters.js | 62 ++ ...sDeclarationsMissingTypeParameters.js.diff | 24 + .../jsDeclarationsModuleReferenceHasEmit.js | 46 ++ ...DeclarationsModuleReferenceHasEmit.js.diff | 22 + .../jsDeclarationsMultipleExportFromMerge.js | 78 ++ ...eclarationsMultipleExportFromMerge.js.diff | 65 ++ .../conformance/jsDeclarationsNestedParams.js | 82 ++ .../jsDeclarationsNestedParams.js.diff | 64 ++ ...sDeclarationsNonIdentifierInferredNames.js | 42 + ...arationsNonIdentifierInferredNames.js.diff | 38 + ...jsDeclarationsOptionalTypeLiteralProps1.js | 50 ++ ...larationsOptionalTypeLiteralProps1.js.diff | 13 + ...jsDeclarationsOptionalTypeLiteralProps2.js | 50 ++ ...larationsOptionalTypeLiteralProps2.js.diff | 21 + .../conformance/jsDeclarationsPackageJson.js | 93 +++ .../jsDeclarationsPackageJson.js.diff | 121 +++ ...tionsParameterTagReusesInputNodeInEmit1.js | 68 ++ ...ParameterTagReusesInputNodeInEmit1.js.diff | 59 ++ ...tionsParameterTagReusesInputNodeInEmit2.js | 55 ++ ...ParameterTagReusesInputNodeInEmit2.js.diff | 35 + .../jsDeclarationsPrivateFields01.js | 32 + .../jsDeclarationsPrivateFields01.js.diff | 12 + .../jsDeclarationsReactComponents.js | 303 ++++++++ .../jsDeclarationsReactComponents.js.diff | 221 ++++++ .../jsDeclarationsReexportAliases.js | 36 + .../jsDeclarationsReexportAliases.js.diff | 23 + .../jsDeclarationsReexportedCjsAlias.js | 79 ++ .../jsDeclarationsReexportedCjsAlias.js.diff | 34 + ...ationsReferenceToClassInstanceCrossFile.js | 67 ++ ...sReferenceToClassInstanceCrossFile.js.diff | 37 + ...ionsRestArgsWithThisTypeInJSDocFunction.js | 31 + ...estArgsWithThisTypeInJSDocFunction.js.diff | 14 + ...onsReusesExistingNodesMappingJSDocTypes.js | 67 ++ ...usesExistingNodesMappingJSDocTypes.js.diff | 31 + ...clarationsReusesExistingTypeAnnotations.js | 238 ++++++ ...tionsReusesExistingTypeAnnotations.js.diff | 59 ++ ...bclassWithExplicitNoArgumentConstructor.js | 48 ++ ...sWithExplicitNoArgumentConstructor.js.diff | 18 + .../conformance/jsDeclarationsThisTypes.js | 41 + .../jsDeclarationsThisTypes.js.diff | 15 + .../conformance/jsDeclarationsTypeAliases.js | 150 ++++ .../jsDeclarationsTypeAliases.js.diff | 85 +++ ...arationsTypeReassignmentFromDeclaration.js | 41 + ...onsTypeReassignmentFromDeclaration.js.diff | 33 + ...rationsTypeReassignmentFromDeclaration2.js | 39 + ...nsTypeReassignmentFromDeclaration2.js.diff | 31 + .../jsDeclarationsTypeReferences.js | 32 + .../jsDeclarationsTypeReferences.js.diff | 13 + .../jsDeclarationsTypeReferences2.js | 44 ++ .../jsDeclarationsTypeReferences2.js.diff | 11 + .../jsDeclarationsTypeReferences3.js | 31 + .../jsDeclarationsTypeReferences3.js.diff | 27 + .../jsDeclarationsTypeReferences4.js | 52 ++ .../jsDeclarationsTypeReferences4.js.diff | 26 + .../jsDeclarationsTypedefAndImportTypes.js | 88 +++ ...sDeclarationsTypedefAndImportTypes.js.diff | 63 ++ ...eclarationsTypedefDescriptionsPreserved.js | 52 ++ ...ationsTypedefDescriptionsPreserved.js.diff | 38 + .../jsDeclarationsTypedefFunction.js | 40 + .../jsDeclarationsTypedefFunction.js.diff | 25 + ...tionsTypedefPropertyAndExportAssignment.js | 140 ++++ ...TypedefPropertyAndExportAssignment.js.diff | 100 +++ .../jsDeclarationsUniqueSymbolUsage.js | 31 + .../jsDeclarationsUniqueSymbolUsage.js.diff | 21 + .../jsdocCatchClauseWithTypeAnnotation.js | 147 ++++ ...jsdocCatchClauseWithTypeAnnotation.js.diff | 7 + .../conformance/jsdocImplements_class.js | 108 +++ .../conformance/jsdocImplements_class.js.diff | 50 ++ .../conformance/jsdocImplements_interface.js | 38 + .../jsdocImplements_interface_multiple.js | 50 ++ .../jsdocImplements_missingType.js | 36 + .../jsdocImplements_missingType.js.diff | 31 + .../jsdocImplements_namespacedInterface.js | 37 + .../conformance/jsdocImplements_properties.js | 35 + .../jsdocImplements_properties.js.diff | 18 + .../conformance/jsdocImplements_signatures.js | 18 + .../conformance/jsdocOuterTypeParameters1.js | 24 + .../jsdocOuterTypeParameters1.js.diff | 28 + .../conformance/jsdocOuterTypeParameters2.js | 24 + .../jsdocOuterTypeParameters2.js.diff | 28 + .../conformance/jsdocOuterTypeParameters3.js | 22 + .../jsdocOuterTypeParameters3.js.diff | 26 + .../jsdocSignatureOnReturnedFunction.js | 80 ++ .../conformance/jsdocTemplateTagDefault.js | 138 ++++ .../jsdocTemplateTagDefault.js.diff | 79 ++ .../jsdocTemplateTagNameResolution.js | 29 + .../jsdocTemplateTagNameResolution.js.diff | 22 + .../submodule/conformance/jsdocTypeTag.js | 176 +++++ .../submodule/conformance/jsdocTypeTagCast.js | 143 ++++ .../conformance/jsdocTypeTagCast.js.diff | 64 ++ ...ocVariableDeclarationWithTypeAnnotation.js | 12 + .../jsxCheckJsxNoTypeArgumentsAllowed.js | 27 + .../jsxCheckJsxNoTypeArgumentsAllowed.js.diff | 14 + .../lateBoundClassMemberAssignmentJS.js | 22 + .../lateBoundClassMemberAssignmentJS.js.diff | 14 + .../lateBoundClassMemberAssignmentJS2.js | 22 + .../lateBoundClassMemberAssignmentJS2.js.diff | 12 + .../lateBoundClassMemberAssignmentJS3.js | 25 + .../lateBoundClassMemberAssignmentJS3.js.diff | 14 + .../conformance/library-reference-11.js | 19 + .../submodule/conformance/linkTagEmit1.js | 58 ++ .../conformance/linkTagEmit1.js.diff | 48 ++ .../submodule/conformance/malformedTags.js | 18 + ...oduleExportAliasElementAccessExpression.js | 48 ++ ...ExportAliasElementAccessExpression.js.diff | 46 ++ .../conformance/moduleExportDuplicateAlias.js | 36 + .../moduleExportDuplicateAlias.js.diff | 26 + .../moduleExportDuplicateAlias2.js | 38 + .../moduleExportDuplicateAlias2.js.diff | 28 + .../moduleExportDuplicateAlias3.js | 48 ++ .../moduleExportDuplicateAlias3.js.diff | 37 + .../moduleExportsElementAccessAssignment.js | 30 + ...duleExportsElementAccessAssignment.js.diff | 33 + .../namespaceAssignmentToRequireAlias.js | 21 + .../nestedDestructuringOfRequire.js | 35 + .../nestedDestructuringOfRequire.js.diff | 26 + ...deAllowJsPackageSelfName(module=node16).js | 77 ++ ...deAllowJsPackageSelfName(module=node18).js | 48 ++ ...owJsPackageSelfName(module=node18).js.diff | 60 ++ ...AllowJsPackageSelfName(module=nodenext).js | 77 ++ .../nodeAllowJsPackageSelfName2.js | 33 + .../nodeAllowJsPackageSelfName2.js.diff | 10 + .../nodeModulesAllowJs1(module=node16).js | 722 ++++++++++++++++++ ...nodeModulesAllowJs1(module=node16).js.diff | 76 ++ .../nodeModulesAllowJs1(module=node18).js | 703 +++++++++++++++++ ...nodeModulesAllowJs1(module=node18).js.diff | 441 +++++++++++ .../nodeModulesAllowJs1(module=nodenext).js | 722 ++++++++++++++++++ ...deModulesAllowJs1(module=nodenext).js.diff | 76 ++ ...onditionalPackageExports(module=node16).js | 215 ++++++ ...onditionalPackageExports(module=node18).js | 186 +++++ ...ionalPackageExports(module=node18).js.diff | 112 +++ ...ditionalPackageExports(module=nodenext).js | 215 ++++++ ...ulesAllowJsDynamicImport(module=node16).js | 46 ++ ...llowJsDynamicImport(module=node16).js.diff | 13 + ...ulesAllowJsDynamicImport(module=node18).js | 49 ++ ...llowJsDynamicImport(module=node18).js.diff | 24 + ...esAllowJsDynamicImport(module=nodenext).js | 46 ++ ...owJsDynamicImport(module=nodenext).js.diff | 13 + ...sAllowJsExportAssignment(module=node16).js | 68 ++ ...wJsExportAssignment(module=node16).js.diff | 39 + ...sAllowJsExportAssignment(module=node18).js | 69 ++ ...wJsExportAssignment(module=node18).js.diff | 56 ++ ...llowJsExportAssignment(module=nodenext).js | 68 ++ ...sExportAssignment(module=nodenext).js.diff | 39 + ...essJsModuleDetectionAuto(module=node16).js | 13 + ...essJsModuleDetectionAuto(module=node18).js | 13 + ...sJsModuleDetectionAuto(module=nodenext).js | 13 + ...sGeneratedNameCollisions(module=node16).js | 66 ++ ...ratedNameCollisions(module=node16).js.diff | 29 + ...sGeneratedNameCollisions(module=node18).js | 71 ++ ...ratedNameCollisions(module=node18).js.diff | 52 ++ ...eneratedNameCollisions(module=nodenext).js | 66 ++ ...tedNameCollisions(module=nodenext).js.diff | 29 + ...sAllowJsImportAssignment(module=node16).js | 65 ++ ...wJsImportAssignment(module=node16).js.diff | 14 + ...sAllowJsImportAssignment(module=node18).js | 63 ++ ...wJsImportAssignment(module=node18).js.diff | 46 ++ ...llowJsImportAssignment(module=nodenext).js | 65 ++ ...sImportAssignment(module=nodenext).js.diff | 14 + ...ImportHelpersCollisions1(module=node16).js | 52 ++ ...ImportHelpersCollisions1(module=node18).js | 53 ++ ...tHelpersCollisions1(module=node18).js.diff | 26 + ...portHelpersCollisions1(module=nodenext).js | 52 ++ ...ImportHelpersCollisions2(module=node16).js | 49 ++ ...tHelpersCollisions2(module=node16).js.diff | 13 + ...ImportHelpersCollisions2(module=node18).js | 53 ++ ...tHelpersCollisions2(module=node18).js.diff | 35 + ...portHelpersCollisions2(module=nodenext).js | 49 ++ ...elpersCollisions2(module=nodenext).js.diff | 13 + ...ImportHelpersCollisions3(module=node16).js | 58 ++ ...tHelpersCollisions3(module=node16).js.diff | 35 + ...ImportHelpersCollisions3(module=node18).js | 63 ++ ...tHelpersCollisions3(module=node18).js.diff | 52 ++ ...portHelpersCollisions3(module=nodenext).js | 58 ++ ...elpersCollisions3(module=nodenext).js.diff | 35 + ...ModulesAllowJsImportMeta(module=node16).js | 42 + ...esAllowJsImportMeta(module=node16).js.diff | 15 + ...ModulesAllowJsImportMeta(module=node18).js | 45 ++ ...esAllowJsImportMeta(module=node18).js.diff | 29 + ...dulesAllowJsImportMeta(module=nodenext).js | 42 + ...AllowJsImportMeta(module=nodenext).js.diff | 15 + ...lesAllowJsPackageExports(module=node16).js | 175 +++++ ...lesAllowJsPackageExports(module=node18).js | 146 ++++ ...lowJsPackageExports(module=node18).js.diff | 104 +++ ...sAllowJsPackageExports(module=nodenext).js | 175 +++++ ...lesAllowJsPackageImports(module=node16).js | 106 +++ ...lesAllowJsPackageImports(module=node18).js | 77 ++ ...lowJsPackageImports(module=node18).js.diff | 77 ++ ...sAllowJsPackageImports(module=nodenext).js | 106 +++ ...wJsPackagePatternExports(module=node16).js | 134 ++++ ...wJsPackagePatternExports(module=node18).js | 105 +++ ...ckagePatternExports(module=node18).js.diff | 77 ++ ...sPackagePatternExports(module=nodenext).js | 134 ++++ ...agePatternExportsExclude(module=node16).js | 137 ++++ ...agePatternExportsExclude(module=node18).js | 108 +++ ...tternExportsExclude(module=node18).js.diff | 77 ++ ...ePatternExportsExclude(module=nodenext).js | 137 ++++ ...gePatternExportsTrailers(module=node16).js | 134 ++++ ...gePatternExportsTrailers(module=node18).js | 105 +++ ...ternExportsTrailers(module=node18).js.diff | 77 ++ ...PatternExportsTrailers(module=nodenext).js | 134 ++++ ...wJsSynchronousCallErrors(module=node16).js | 68 ++ ...nchronousCallErrors(module=node16).js.diff | 11 + ...wJsSynchronousCallErrors(module=node18).js | 69 ++ ...nchronousCallErrors(module=node18).js.diff | 38 + ...sSynchronousCallErrors(module=nodenext).js | 68 ++ ...hronousCallErrors(module=nodenext).js.diff | 11 + ...ulesAllowJsTopLevelAwait(module=node16).js | 46 ++ ...llowJsTopLevelAwait(module=node16).js.diff | 15 + ...ulesAllowJsTopLevelAwait(module=node18).js | 49 ++ ...llowJsTopLevelAwait(module=node18).js.diff | 26 + ...esAllowJsTopLevelAwait(module=nodenext).js | 46 ++ ...owJsTopLevelAwait(module=nodenext).js.diff | 15 + .../nodeModulesCJSEmit1(module=node18).js | 49 ++ ...nodeModulesCJSEmit1(module=node18).js.diff | 36 + .../nodeModulesCJSEmit1(module=nodenext).js | 52 ++ ...deModulesCJSEmit1(module=nodenext).js.diff | 22 + .../submodule/conformance/overloadTag1.js | 127 +++ .../conformance/overloadTag1.js.diff | 60 ++ .../submodule/conformance/overloadTag2.js | 80 ++ .../conformance/overloadTag2.js.diff | 31 + .../parserArrowFunctionExpression10.js | 13 + .../parserArrowFunctionExpression11.js | 13 + .../parserArrowFunctionExpression12.js | 13 + .../parserArrowFunctionExpression13.js | 13 + .../parserArrowFunctionExpression14.js | 13 + .../parserArrowFunctionExpression15.js | 13 + .../parserArrowFunctionExpression16.js | 13 + .../parserArrowFunctionExpression17.js | 13 + .../parserArrowFunctionExpression8.js | 13 + .../parserArrowFunctionExpression9.js | 13 + .../conformance/plainJSBinderErrors.js | 86 +++ .../conformance/plainJSGrammarErrors.js | 410 ++++++++++ .../conformance/plainJSGrammarErrors.js.diff | 57 ++ .../conformance/plainJSGrammarErrors2.js | 22 + .../conformance/plainJSGrammarErrors3.js | 15 + .../conformance/plainJSGrammarErrors4.js | 20 + .../submodule/conformance/plainJSRedeclare.js | 12 + .../conformance/plainJSRedeclare2.js | 12 + .../conformance/plainJSRedeclare3.js | 12 + .../conformance/plainJSReservedStrict.js | 12 + .../conformance/plainJSTypeErrors.js | 15 + .../conformance/privateConstructorFunction.js | 28 + .../privateConstructorFunction.js.diff | 11 + .../conformance/privateIdentifierExpando.js | 11 + .../privateNamesIncompatibleModifiersJs.js | 114 +++ ...rivateNamesIncompatibleModifiersJs.js.diff | 74 ++ .../submodule/conformance/reExportJsFromTs.js | 24 + .../conformance/reExportJsFromTs.js.diff | 19 + .../conformance/recursiveTypeReferences2.js | 79 ++ .../recursiveTypeReferences2.js.diff | 74 ++ .../requireOfESWithPropertyAccess.js | 37 + .../requireOfESWithPropertyAccess.js.diff | 15 + .../conformance/requireTwoPropertyAccesses.js | 27 + .../requireTwoPropertyAccesses.js.diff | 14 + .../submodule/conformance/seeTag3.js | 12 + .../submodule/conformance/seeTag4.js | 27 + .../submodule/conformance/seeTag4.js.diff | 11 + .../conformance/templateInsideCallback.js | 123 +++ .../templateInsideCallback.js.diff | 67 ++ .../conformance/thisPropertyAssignment.js | 34 + .../thisPropertyAssignment.js.diff | 14 + .../thisPropertyAssignmentCircular.js | 30 + .../thisPropertyAssignmentCircular.js.diff | 13 + .../thisPropertyAssignmentInherited.js | 41 + .../thisPropertyAssignmentInherited.js.diff | 28 + .../submodule/conformance/thisTag2.js | 33 + .../submodule/conformance/thisTag2.js.diff | 27 + .../typeFromPrivatePropertyAssignmentJs.js | 29 + .../typeFromPropertyAssignment39.js | 16 + .../typeFromPropertyAssignment39.js.diff | 16 + .../typeFromPropertyAssignmentWithExport.js | 21 + ...peFromPropertyAssignmentWithExport.js.diff | 13 + .../typeFromPrototypeAssignment4.js | 33 + .../typeFromPrototypeAssignment4.js.diff | 19 + .../conformance/typeOnlyMerge2.errors.txt | 24 + .../conformance/typeOnlyMerge2.symbols | 36 + .../conformance/typeOnlyMerge2.types | 35 + .../conformance/typeOnlyMerge3.errors.txt | 39 + .../conformance/typeOnlyMerge3.symbols | 37 + .../conformance/typeOnlyMerge3.symbols.diff | 14 + .../conformance/typeOnlyMerge3.types | 39 + .../submodule/conformance/typeTagNoErasure.js | 24 + .../conformance/typeTagNoErasure.js.diff | 20 + .../typeTagOnFunctionReferencesGeneric.js | 46 ++ ...typeTagOnFunctionReferencesGeneric.js.diff | 28 + .../typedefOnSemicolonClassElement.js | 53 ++ .../typedefOnSemicolonClassElement.js.diff | 49 ++ .../conformance/typedefOnStatements.js | 213 ++++++ .../conformance/typedefOnStatements.js.diff | 102 +++ .../submodule/conformance/typedefScope1.js | 39 + .../conformance/typedefScope1.js.diff | 10 + .../untypedModuleImport_allowJs.js | 15 + .../untypedModuleImport_allowJs.js.diff | 9 + 814 files changed, 39464 insertions(+), 37 deletions(-) create mode 100644 testdata/baselines/reference/conformance/deepElementAccessExpressionInJS.js create mode 100644 testdata/baselines/reference/conformance/typeTagForMultipleVariableDeclarations.js create mode 100644 testdata/baselines/reference/submodule/compiler/accessorDeclarationEmitJs.js create mode 100644 testdata/baselines/reference/submodule/compiler/accessorDeclarationEmitJs.js.diff create mode 100644 testdata/baselines/reference/submodule/compiler/allowJscheckJsTypeParameterNoCrash.js create mode 100644 testdata/baselines/reference/submodule/compiler/allowJscheckJsTypeParameterNoCrash.js.diff create mode 100644 testdata/baselines/reference/submodule/compiler/ambientRequireFunction(module=commonjs).js create mode 100644 testdata/baselines/reference/submodule/compiler/ambientRequireFunction(module=preserve).js create mode 100644 testdata/baselines/reference/submodule/compiler/amdLikeInputDeclarationEmit.js create mode 100644 testdata/baselines/reference/submodule/compiler/amdLikeInputDeclarationEmit.js.diff create mode 100644 testdata/baselines/reference/submodule/compiler/argumentsPropertyNameInJsMode1.js create mode 100644 testdata/baselines/reference/submodule/compiler/argumentsPropertyNameInJsMode1.js.diff create mode 100644 testdata/baselines/reference/submodule/compiler/argumentsPropertyNameInJsMode2.js create mode 100644 testdata/baselines/reference/submodule/compiler/argumentsPropertyNameInJsMode2.js.diff create mode 100644 testdata/baselines/reference/submodule/compiler/argumentsReferenceInConstructor1_Js.js create mode 100644 testdata/baselines/reference/submodule/compiler/argumentsReferenceInConstructor1_Js.js.diff create mode 100644 testdata/baselines/reference/submodule/compiler/argumentsReferenceInConstructor2_Js.js create mode 100644 testdata/baselines/reference/submodule/compiler/argumentsReferenceInConstructor2_Js.js.diff create mode 100644 testdata/baselines/reference/submodule/compiler/argumentsReferenceInConstructor3_Js.js create mode 100644 testdata/baselines/reference/submodule/compiler/argumentsReferenceInConstructor3_Js.js.diff create mode 100644 testdata/baselines/reference/submodule/compiler/argumentsReferenceInConstructor4_Js.js create mode 100644 testdata/baselines/reference/submodule/compiler/argumentsReferenceInConstructor4_Js.js.diff create mode 100644 testdata/baselines/reference/submodule/compiler/argumentsReferenceInConstructor5_Js.js create mode 100644 testdata/baselines/reference/submodule/compiler/argumentsReferenceInConstructor5_Js.js.diff create mode 100644 testdata/baselines/reference/submodule/compiler/argumentsReferenceInConstructor6_Js.js create mode 100644 testdata/baselines/reference/submodule/compiler/argumentsReferenceInConstructor6_Js.js.diff create mode 100644 testdata/baselines/reference/submodule/compiler/argumentsReferenceInConstructor7_Js.js create mode 100644 testdata/baselines/reference/submodule/compiler/argumentsReferenceInConstructor7_Js.js.diff create mode 100644 testdata/baselines/reference/submodule/compiler/argumentsReferenceInMethod1_Js.js create mode 100644 testdata/baselines/reference/submodule/compiler/argumentsReferenceInMethod1_Js.js.diff create mode 100644 testdata/baselines/reference/submodule/compiler/argumentsReferenceInMethod2_Js.js create mode 100644 testdata/baselines/reference/submodule/compiler/argumentsReferenceInMethod2_Js.js.diff create mode 100644 testdata/baselines/reference/submodule/compiler/argumentsReferenceInMethod3_Js.js create mode 100644 testdata/baselines/reference/submodule/compiler/argumentsReferenceInMethod3_Js.js.diff create mode 100644 testdata/baselines/reference/submodule/compiler/argumentsReferenceInMethod4_Js.js create mode 100644 testdata/baselines/reference/submodule/compiler/argumentsReferenceInMethod4_Js.js.diff create mode 100644 testdata/baselines/reference/submodule/compiler/argumentsReferenceInMethod5_Js.js create mode 100644 testdata/baselines/reference/submodule/compiler/argumentsReferenceInMethod5_Js.js.diff create mode 100644 testdata/baselines/reference/submodule/compiler/argumentsReferenceInMethod6_Js.js create mode 100644 testdata/baselines/reference/submodule/compiler/argumentsReferenceInMethod6_Js.js.diff create mode 100644 testdata/baselines/reference/submodule/compiler/argumentsReferenceInMethod7_Js.js create mode 100644 testdata/baselines/reference/submodule/compiler/argumentsReferenceInMethod7_Js.js.diff create mode 100644 testdata/baselines/reference/submodule/compiler/argumentsReferenceInObjectLiteral_Js.js create mode 100644 testdata/baselines/reference/submodule/compiler/checkJsObjectLiteralHasCheckedKeyof.js create mode 100644 testdata/baselines/reference/submodule/compiler/checkJsObjectLiteralIndexSignatures.js create mode 100644 testdata/baselines/reference/submodule/compiler/checkJsdocTypeTagOnExportAssignment1.js create mode 100644 testdata/baselines/reference/submodule/compiler/checkJsdocTypeTagOnExportAssignment1.js.diff create mode 100644 testdata/baselines/reference/submodule/compiler/checkJsdocTypeTagOnExportAssignment2.js create mode 100644 testdata/baselines/reference/submodule/compiler/checkJsdocTypeTagOnExportAssignment2.js.diff create mode 100644 testdata/baselines/reference/submodule/compiler/checkJsdocTypeTagOnExportAssignment3.js create mode 100644 testdata/baselines/reference/submodule/compiler/checkJsdocTypeTagOnExportAssignment3.js.diff create mode 100644 testdata/baselines/reference/submodule/compiler/checkJsdocTypeTagOnExportAssignment4.js create mode 100644 testdata/baselines/reference/submodule/compiler/checkJsdocTypeTagOnExportAssignment4.js.diff create mode 100644 testdata/baselines/reference/submodule/compiler/checkJsdocTypeTagOnExportAssignment5.js create mode 100644 testdata/baselines/reference/submodule/compiler/checkJsdocTypeTagOnExportAssignment5.js.diff create mode 100644 testdata/baselines/reference/submodule/compiler/checkJsdocTypeTagOnExportAssignment6.js create mode 100644 testdata/baselines/reference/submodule/compiler/checkJsdocTypeTagOnExportAssignment6.js.diff create mode 100644 testdata/baselines/reference/submodule/compiler/checkJsdocTypeTagOnExportAssignment7.js create mode 100644 testdata/baselines/reference/submodule/compiler/checkJsdocTypeTagOnExportAssignment7.js.diff create mode 100644 testdata/baselines/reference/submodule/compiler/checkJsdocTypeTagOnExportAssignment8.js create mode 100644 testdata/baselines/reference/submodule/compiler/checkJsdocTypeTagOnExportAssignment8.js.diff create mode 100644 testdata/baselines/reference/submodule/compiler/checkJsxNotSetError.js create mode 100644 testdata/baselines/reference/submodule/compiler/checkJsxNotSetError.js.diff create mode 100644 testdata/baselines/reference/submodule/compiler/checkingObjectDefinePropertyOnFunctionNonexistentPropertyNoCrash1.js create mode 100644 testdata/baselines/reference/submodule/compiler/checkingObjectDefinePropertyOnFunctionNonexistentPropertyNoCrash1.js.diff create mode 100644 testdata/baselines/reference/submodule/compiler/commonJsExportTypeDeclarationError.js create mode 100644 testdata/baselines/reference/submodule/compiler/commonJsExportTypeDeclarationError.js.diff create mode 100644 testdata/baselines/reference/submodule/compiler/commonJsIsolatedModules.js create mode 100644 testdata/baselines/reference/submodule/compiler/commonJsIsolatedModules.js.diff create mode 100644 testdata/baselines/reference/submodule/compiler/constructorPropertyJs.js create mode 100644 testdata/baselines/reference/submodule/compiler/declarationEmitCastReusesTypeNode4(strictnullchecks=false).js create mode 100644 testdata/baselines/reference/submodule/compiler/declarationEmitCastReusesTypeNode4(strictnullchecks=false).js.diff create mode 100644 testdata/baselines/reference/submodule/compiler/declarationEmitCastReusesTypeNode4(strictnullchecks=true).js create mode 100644 testdata/baselines/reference/submodule/compiler/declarationEmitCastReusesTypeNode4(strictnullchecks=true).js.diff create mode 100644 testdata/baselines/reference/submodule/compiler/declarationEmitClassAccessorsJs1.js create mode 100644 testdata/baselines/reference/submodule/compiler/declarationEmitClassAccessorsJs1.js.diff create mode 100644 testdata/baselines/reference/submodule/compiler/declarationEmitClassSetAccessorParamNameInJs.js create mode 100644 testdata/baselines/reference/submodule/compiler/declarationEmitClassSetAccessorParamNameInJs.js.diff create mode 100644 testdata/baselines/reference/submodule/compiler/declarationEmitClassSetAccessorParamNameInJs2.js create mode 100644 testdata/baselines/reference/submodule/compiler/declarationEmitClassSetAccessorParamNameInJs2.js.diff create mode 100644 testdata/baselines/reference/submodule/compiler/declarationEmitClassSetAccessorParamNameInJs3.js create mode 100644 testdata/baselines/reference/submodule/compiler/declarationEmitClassSetAccessorParamNameInJs3.js.diff create mode 100644 testdata/baselines/reference/submodule/compiler/declarationEmitExpressionInExtends6.js create mode 100644 testdata/baselines/reference/submodule/compiler/declarationEmitExpressionInExtends6.js.diff create mode 100644 testdata/baselines/reference/submodule/compiler/declarationEmitInvalidReferenceAllowJs.js create mode 100644 testdata/baselines/reference/submodule/compiler/declarationEmitJsReExportDefault.js create mode 100644 testdata/baselines/reference/submodule/compiler/declarationEmitJsReExportDefault.js.diff create mode 100644 testdata/baselines/reference/submodule/compiler/declarationEmitLateBoundJSAssignments.js create mode 100644 testdata/baselines/reference/submodule/compiler/declarationEmitLateBoundJSAssignments.js.diff create mode 100644 testdata/baselines/reference/submodule/compiler/declarationEmitMethodDeclaration.js create mode 100644 testdata/baselines/reference/submodule/compiler/declarationEmitMethodDeclaration.js.diff create mode 100644 testdata/baselines/reference/submodule/compiler/declarationEmitObjectLiteralAccessorsJs1.js create mode 100644 testdata/baselines/reference/submodule/compiler/declarationEmitObjectLiteralAccessorsJs1.js.diff create mode 100644 testdata/baselines/reference/submodule/compiler/defaultPropsEmptyCurlyBecomesAnyForJs.js create mode 100644 testdata/baselines/reference/submodule/compiler/defaultPropsEmptyCurlyBecomesAnyForJs.js.diff create mode 100644 testdata/baselines/reference/submodule/compiler/elidedJSImport1.js create mode 100644 testdata/baselines/reference/submodule/compiler/elidedJSImport2(module=commonjs).js create mode 100644 testdata/baselines/reference/submodule/compiler/elidedJSImport2(module=commonjs).js.diff create mode 100644 testdata/baselines/reference/submodule/compiler/elidedJSImport2(module=es2022).js create mode 100644 testdata/baselines/reference/submodule/compiler/elidedJSImport2(module=es2022).js.diff create mode 100644 testdata/baselines/reference/submodule/compiler/expandoFunctionSymbolPropertyJs.js create mode 100644 testdata/baselines/reference/submodule/compiler/expandoFunctionSymbolPropertyJs.js.diff create mode 100644 testdata/baselines/reference/submodule/compiler/exportDefaultMarksIdentifierAsUsed.js create mode 100644 testdata/baselines/reference/submodule/compiler/extendedUnicodePlaneIdentifiersJSDoc.js create mode 100644 testdata/baselines/reference/submodule/compiler/extendsJavaScript.js create mode 100644 testdata/baselines/reference/submodule/compiler/fileReferencesWithNoExtensions.js create mode 100644 testdata/baselines/reference/submodule/compiler/fileReferencesWithNoExtensions.js.diff create mode 100644 testdata/baselines/reference/submodule/compiler/fileReferencesWithNoExtensions.symbols create mode 100644 testdata/baselines/reference/submodule/compiler/fileReferencesWithNoExtensions.types create mode 100644 testdata/baselines/reference/submodule/compiler/filesEmittingIntoSameOutput.errors.txt.diff create mode 100644 testdata/baselines/reference/submodule/compiler/filesEmittingIntoSameOutput.symbols create mode 100644 testdata/baselines/reference/submodule/compiler/filesEmittingIntoSameOutput.types create mode 100644 testdata/baselines/reference/submodule/compiler/impliedNodeFormatEmit1(module=amd).js create mode 100644 testdata/baselines/reference/submodule/compiler/impliedNodeFormatEmit1(module=amd).js.diff create mode 100644 testdata/baselines/reference/submodule/compiler/impliedNodeFormatEmit1(module=commonjs).js create mode 100644 testdata/baselines/reference/submodule/compiler/impliedNodeFormatEmit1(module=esnext).js create mode 100644 testdata/baselines/reference/submodule/compiler/impliedNodeFormatEmit1(module=preserve).js create mode 100644 testdata/baselines/reference/submodule/compiler/impliedNodeFormatEmit1(module=system).js create mode 100644 testdata/baselines/reference/submodule/compiler/impliedNodeFormatEmit1(module=system).js.diff create mode 100644 testdata/baselines/reference/submodule/compiler/impliedNodeFormatEmit1(module=umd).js create mode 100644 testdata/baselines/reference/submodule/compiler/impliedNodeFormatEmit1(module=umd).js.diff create mode 100644 testdata/baselines/reference/submodule/compiler/impliedNodeFormatEmit2(module=commonjs).js create mode 100644 testdata/baselines/reference/submodule/compiler/impliedNodeFormatEmit2(module=esnext).js create mode 100644 testdata/baselines/reference/submodule/compiler/impliedNodeFormatEmit2(module=preserve).js create mode 100644 testdata/baselines/reference/submodule/compiler/impliedNodeFormatEmit3(module=commonjs).js create mode 100644 testdata/baselines/reference/submodule/compiler/impliedNodeFormatEmit3(module=esnext).js create mode 100644 testdata/baselines/reference/submodule/compiler/impliedNodeFormatEmit3(module=preserve).js create mode 100644 testdata/baselines/reference/submodule/compiler/impliedNodeFormatEmit4(module=commonjs).js create mode 100644 testdata/baselines/reference/submodule/compiler/impliedNodeFormatEmit4(module=esnext).js create mode 100644 testdata/baselines/reference/submodule/compiler/impliedNodeFormatEmit4(module=preserve).js create mode 100644 testdata/baselines/reference/submodule/compiler/importDeclFromTypeNodeInJsSource.js create mode 100644 testdata/baselines/reference/submodule/compiler/importDeclFromTypeNodeInJsSource.js.diff create mode 100644 testdata/baselines/reference/submodule/compiler/importHelpersCommonJSJavaScript(verbatimmodulesyntax=false).js create mode 100644 testdata/baselines/reference/submodule/compiler/importHelpersCommonJSJavaScript(verbatimmodulesyntax=false).js.diff create mode 100644 testdata/baselines/reference/submodule/compiler/importHelpersCommonJSJavaScript(verbatimmodulesyntax=true).js create mode 100644 testdata/baselines/reference/submodule/compiler/importHelpersCommonJSJavaScript(verbatimmodulesyntax=true).js.diff create mode 100644 testdata/baselines/reference/submodule/compiler/isolatedDeclarationsAllowJs.js create mode 100644 testdata/baselines/reference/submodule/compiler/isolatedDeclarationsAllowJs.js.diff create mode 100644 testdata/baselines/reference/submodule/compiler/javascriptCommonjsModule.js create mode 100644 testdata/baselines/reference/submodule/compiler/javascriptCommonjsModule.js.diff create mode 100644 testdata/baselines/reference/submodule/compiler/javascriptThisAssignmentInStaticBlock.js create mode 100644 testdata/baselines/reference/submodule/compiler/javascriptThisAssignmentInStaticBlock.js.diff create mode 100644 testdata/baselines/reference/submodule/compiler/jsDeclarationEmitDoesNotRenameImport.js create mode 100644 testdata/baselines/reference/submodule/compiler/jsDeclarationEmitDoesNotRenameImport.js.diff create mode 100644 testdata/baselines/reference/submodule/compiler/jsDeclarationEmitExportAssignedArray.js create mode 100644 testdata/baselines/reference/submodule/compiler/jsDeclarationEmitExportAssignedArray.js.diff create mode 100644 testdata/baselines/reference/submodule/compiler/jsDeclarationEmitExportAssignedFunctionWithExtraTypedefsMembers.js create mode 100644 testdata/baselines/reference/submodule/compiler/jsDeclarationEmitExportAssignedFunctionWithExtraTypedefsMembers.js.diff create mode 100644 testdata/baselines/reference/submodule/compiler/jsDeclarationEmitExportedClassWithExtends.js create mode 100644 testdata/baselines/reference/submodule/compiler/jsDeclarationEmitExportedClassWithExtends.js.diff create mode 100644 testdata/baselines/reference/submodule/compiler/jsDeclarationsGlobalFileConstFunction.js create mode 100644 testdata/baselines/reference/submodule/compiler/jsDeclarationsGlobalFileConstFunction.js.diff create mode 100644 testdata/baselines/reference/submodule/compiler/jsDeclarationsGlobalFileConstFunctionNamed.js create mode 100644 testdata/baselines/reference/submodule/compiler/jsDeclarationsGlobalFileConstFunctionNamed.js.diff create mode 100644 testdata/baselines/reference/submodule/compiler/jsDeclarationsInheritedTypes.js create mode 100644 testdata/baselines/reference/submodule/compiler/jsDeclarationsInheritedTypes.js.diff create mode 100644 testdata/baselines/reference/submodule/compiler/jsDeclarationsWithDefaultAsNamespaceLikeMerge.js create mode 100644 testdata/baselines/reference/submodule/compiler/jsDeclarationsWithDefaultAsNamespaceLikeMerge.js.diff create mode 100644 testdata/baselines/reference/submodule/compiler/jsDocDeclarationEmitDoesNotUseNodeModulesPathWithoutError.js create mode 100644 testdata/baselines/reference/submodule/compiler/jsDocDeclarationEmitDoesNotUseNodeModulesPathWithoutError.js.diff create mode 100644 testdata/baselines/reference/submodule/compiler/jsEmitIntersectionProperty.js create mode 100644 testdata/baselines/reference/submodule/compiler/jsEmitIntersectionProperty.js.diff create mode 100644 testdata/baselines/reference/submodule/compiler/jsExportAssignmentNonMutableLocation.js create mode 100644 testdata/baselines/reference/submodule/compiler/jsExportAssignmentNonMutableLocation.js.diff create mode 100644 testdata/baselines/reference/submodule/compiler/jsFileAlternativeUseOfOverloadTag.js create mode 100644 testdata/baselines/reference/submodule/compiler/jsFileAlternativeUseOfOverloadTag.js.diff create mode 100644 testdata/baselines/reference/submodule/compiler/jsFileCompilationAbstractModifier.js create mode 100644 testdata/baselines/reference/submodule/compiler/jsFileCompilationAbstractModifier.js.diff create mode 100644 testdata/baselines/reference/submodule/compiler/jsFileCompilationAmbientVarDeclarationSyntax.js create mode 100644 testdata/baselines/reference/submodule/compiler/jsFileCompilationAmbientVarDeclarationSyntax.js.diff create mode 100644 testdata/baselines/reference/submodule/compiler/jsFileCompilationAwaitModifier.js create mode 100644 testdata/baselines/reference/submodule/compiler/jsFileCompilationAwaitModifier.js.diff create mode 100644 testdata/baselines/reference/submodule/compiler/jsFileCompilationEnumSyntax.js create mode 100644 testdata/baselines/reference/submodule/compiler/jsFileCompilationEnumSyntax.js.diff create mode 100644 testdata/baselines/reference/submodule/compiler/jsFileCompilationErrorOnDeclarationsWithJsFileReferenceWithNoOut.js create mode 100644 testdata/baselines/reference/submodule/compiler/jsFileCompilationErrorOnDeclarationsWithJsFileReferenceWithNoOut.js.diff create mode 100644 testdata/baselines/reference/submodule/compiler/jsFileCompilationErrorOnDeclarationsWithJsFileReferenceWithOutDir.js create mode 100644 testdata/baselines/reference/submodule/compiler/jsFileCompilationExportAssignmentSyntax.js create mode 100644 testdata/baselines/reference/submodule/compiler/jsFileCompilationExportAssignmentSyntax.js.diff create mode 100644 testdata/baselines/reference/submodule/compiler/jsFileCompilationHeritageClauseSyntaxOfClass.js create mode 100644 testdata/baselines/reference/submodule/compiler/jsFileCompilationHeritageClauseSyntaxOfClass.js.diff create mode 100644 testdata/baselines/reference/submodule/compiler/jsFileCompilationImportEqualsSyntax.js create mode 100644 testdata/baselines/reference/submodule/compiler/jsFileCompilationImportEqualsSyntax.js.diff create mode 100644 testdata/baselines/reference/submodule/compiler/jsFileCompilationInterfaceSyntax.js create mode 100644 testdata/baselines/reference/submodule/compiler/jsFileCompilationInterfaceSyntax.js.diff create mode 100644 testdata/baselines/reference/submodule/compiler/jsFileCompilationModuleSyntax.js create mode 100644 testdata/baselines/reference/submodule/compiler/jsFileCompilationModuleSyntax.js.diff create mode 100644 testdata/baselines/reference/submodule/compiler/jsFileCompilationNoErrorWithoutDeclarationsWithJsFileReferenceWithNoOut.js create mode 100644 testdata/baselines/reference/submodule/compiler/jsFileCompilationNoErrorWithoutDeclarationsWithJsFileReferenceWithNoOut.js.diff create mode 100644 testdata/baselines/reference/submodule/compiler/jsFileCompilationOptionalClassElementSyntaxOfClass.js create mode 100644 testdata/baselines/reference/submodule/compiler/jsFileCompilationOptionalClassElementSyntaxOfClass.js.diff create mode 100644 testdata/baselines/reference/submodule/compiler/jsFileCompilationOptionalParameter.js create mode 100644 testdata/baselines/reference/submodule/compiler/jsFileCompilationOptionalParameter.js.diff create mode 100644 testdata/baselines/reference/submodule/compiler/jsFileCompilationPublicMethodSyntaxOfClass.js create mode 100644 testdata/baselines/reference/submodule/compiler/jsFileCompilationPublicMethodSyntaxOfClass.js.diff create mode 100644 testdata/baselines/reference/submodule/compiler/jsFileCompilationPublicParameterModifier.js create mode 100644 testdata/baselines/reference/submodule/compiler/jsFileCompilationPublicParameterModifier.js.diff create mode 100644 testdata/baselines/reference/submodule/compiler/jsFileCompilationReturnTypeSyntaxOfFunction.js create mode 100644 testdata/baselines/reference/submodule/compiler/jsFileCompilationReturnTypeSyntaxOfFunction.js.diff create mode 100644 testdata/baselines/reference/submodule/compiler/jsFileCompilationSyntaxError.js create mode 100644 testdata/baselines/reference/submodule/compiler/jsFileCompilationSyntaxError.js.diff create mode 100644 testdata/baselines/reference/submodule/compiler/jsFileCompilationTypeAliasSyntax.js create mode 100644 testdata/baselines/reference/submodule/compiler/jsFileCompilationTypeAliasSyntax.js.diff create mode 100644 testdata/baselines/reference/submodule/compiler/jsFileCompilationTypeArgumentSyntaxOfCall.js create mode 100644 testdata/baselines/reference/submodule/compiler/jsFileCompilationTypeOfParameter.js create mode 100644 testdata/baselines/reference/submodule/compiler/jsFileCompilationTypeOfParameter.js.diff create mode 100644 testdata/baselines/reference/submodule/compiler/jsFileCompilationTypeParameterSyntaxOfClass.js create mode 100644 testdata/baselines/reference/submodule/compiler/jsFileCompilationTypeParameterSyntaxOfClass.js.diff create mode 100644 testdata/baselines/reference/submodule/compiler/jsFileCompilationTypeParameterSyntaxOfFunction.js create mode 100644 testdata/baselines/reference/submodule/compiler/jsFileCompilationTypeParameterSyntaxOfFunction.js.diff create mode 100644 testdata/baselines/reference/submodule/compiler/jsFileCompilationTypeSyntaxOfVar.js create mode 100644 testdata/baselines/reference/submodule/compiler/jsFileCompilationTypeSyntaxOfVar.js.diff create mode 100644 testdata/baselines/reference/submodule/compiler/jsFileCompilationWithMapFileAsJs.js create mode 100644 testdata/baselines/reference/submodule/compiler/jsFileCompilationWithMapFileAsJs.js.diff create mode 100644 testdata/baselines/reference/submodule/compiler/jsFileCompilationWithMapFileAsJsWithInlineSourceMap.js create mode 100644 testdata/baselines/reference/submodule/compiler/jsFileCompilationWithMapFileAsJsWithInlineSourceMap.js.diff create mode 100644 testdata/baselines/reference/submodule/compiler/jsFileCompilationWithMapFileAsJsWithOutDir.js create mode 100644 testdata/baselines/reference/submodule/compiler/jsFileCompilationWithoutJsExtensions.errors.txt.diff create mode 100644 testdata/baselines/reference/submodule/compiler/jsFileCompilationWithoutOut.js create mode 100644 testdata/baselines/reference/submodule/compiler/jsFileCompilationWithoutOut.js.diff create mode 100644 testdata/baselines/reference/submodule/compiler/jsFileFunctionOverloads.js create mode 100644 testdata/baselines/reference/submodule/compiler/jsFileFunctionOverloads.js.diff create mode 100644 testdata/baselines/reference/submodule/compiler/jsFileFunctionOverloads2.js create mode 100644 testdata/baselines/reference/submodule/compiler/jsFileFunctionOverloads2.js.diff create mode 100644 testdata/baselines/reference/submodule/compiler/jsFileImportPreservedWhenUsed.js create mode 100644 testdata/baselines/reference/submodule/compiler/jsFileMethodOverloads.js create mode 100644 testdata/baselines/reference/submodule/compiler/jsFileMethodOverloads.js.diff create mode 100644 testdata/baselines/reference/submodule/compiler/jsFileMethodOverloads2.js create mode 100644 testdata/baselines/reference/submodule/compiler/jsFileMethodOverloads2.js.diff create mode 100644 testdata/baselines/reference/submodule/compiler/jsFileMethodOverloads4.js create mode 100644 testdata/baselines/reference/submodule/compiler/jsFileMethodOverloads4.js.diff create mode 100644 testdata/baselines/reference/submodule/compiler/jsFileMethodOverloads5.js create mode 100644 testdata/baselines/reference/submodule/compiler/jsFileMethodOverloads5.js.diff create mode 100644 testdata/baselines/reference/submodule/compiler/jsFunctionWithPrototypeNoErrorTruncationNoCrash.js create mode 100644 testdata/baselines/reference/submodule/compiler/jsNoImplicitAnyNoCascadingReferenceErrors.js create mode 100644 testdata/baselines/reference/submodule/compiler/jsNoImplicitAnyNoCascadingReferenceErrors.js.diff create mode 100644 testdata/baselines/reference/submodule/compiler/jsdocFunctionClassPropertiesDeclaration.js create mode 100644 testdata/baselines/reference/submodule/compiler/jsdocFunctionClassPropertiesDeclaration.js.diff create mode 100644 testdata/baselines/reference/submodule/compiler/jsdocTypeCast.js create mode 100644 testdata/baselines/reference/submodule/compiler/jsdocTypeCast.js.diff create mode 100644 testdata/baselines/reference/submodule/compiler/jsdocTypecastNoTypeNoCrash.js create mode 100644 testdata/baselines/reference/submodule/compiler/jsdocTypedefNoCrash.js create mode 100644 testdata/baselines/reference/submodule/compiler/jsdocTypedefNoCrash2.js create mode 100644 testdata/baselines/reference/submodule/compiler/jsxDeclarationsWithEsModuleInteropNoCrash.js create mode 100644 testdata/baselines/reference/submodule/compiler/jsxDeclarationsWithEsModuleInteropNoCrash.js.diff create mode 100644 testdata/baselines/reference/submodule/compiler/jsxPreserveWithJsInput.js create mode 100644 testdata/baselines/reference/submodule/compiler/lateBoundMethodNameAssigmentJS.js create mode 100644 testdata/baselines/reference/submodule/compiler/lateBoundMethodNameAssigmentJS.js.diff create mode 100644 testdata/baselines/reference/submodule/compiler/localRequireFunction.js create mode 100644 testdata/baselines/reference/submodule/compiler/mappedTypeRecursiveInference.errors.txt create mode 100644 testdata/baselines/reference/submodule/compiler/mappedTypeRecursiveInference.js create mode 100644 testdata/baselines/reference/submodule/compiler/mappedTypeRecursiveInference.symbols create mode 100644 testdata/baselines/reference/submodule/compiler/mappedTypeRecursiveInference.symbols.diff create mode 100644 testdata/baselines/reference/submodule/compiler/mappedTypeRecursiveInference.types create mode 100644 testdata/baselines/reference/submodule/compiler/modulePreserve4.js create mode 100644 testdata/baselines/reference/submodule/compiler/modulePreserve4.js.diff create mode 100644 testdata/baselines/reference/submodule/compiler/moduleResolutionWithExtensions_notSupported2.js create mode 100644 testdata/baselines/reference/submodule/compiler/moduleResolutionWithSuffixes_one_externalModule.js create mode 100644 testdata/baselines/reference/submodule/compiler/moduleResolutionWithSuffixes_one_externalModulePath.js create mode 100644 testdata/baselines/reference/submodule/compiler/moduleResolutionWithSuffixes_one_externalModule_withPaths.js create mode 100644 testdata/baselines/reference/submodule/compiler/moduleResolutionWithSuffixes_one_jsModule.js create mode 100644 testdata/baselines/reference/submodule/compiler/moduleResolutionWithSuffixes_one_jsModule.js.diff create mode 100644 testdata/baselines/reference/submodule/compiler/moduleResolution_explicitNodeModulesImport.js create mode 100644 testdata/baselines/reference/submodule/compiler/moduleResolution_explicitNodeModulesImport_implicitAny.js create mode 100644 testdata/baselines/reference/submodule/compiler/narrowingPlainJsNoCrash1.js create mode 100644 testdata/baselines/reference/submodule/compiler/noCrashOnParameterNamedRequire.js create mode 100644 testdata/baselines/reference/submodule/compiler/parseJsxElementInUnaryExpressionNoCrash1.js create mode 100644 testdata/baselines/reference/submodule/compiler/parseJsxElementInUnaryExpressionNoCrash2.js create mode 100644 testdata/baselines/reference/submodule/compiler/parseJsxElementInUnaryExpressionNoCrash3.js create mode 100644 testdata/baselines/reference/submodule/compiler/parserUnparsedTokenCrash1.js create mode 100644 testdata/baselines/reference/submodule/compiler/pathMappingBasedModuleResolution_rootImport_aliasWithRoot.js create mode 100644 testdata/baselines/reference/submodule/compiler/pathMappingBasedModuleResolution_rootImport_aliasWithRoot_differentRootTypes.js create mode 100644 testdata/baselines/reference/submodule/compiler/pathMappingBasedModuleResolution_rootImport_aliasWithRoot_multipleAliases.js create mode 100644 testdata/baselines/reference/submodule/compiler/pathMappingBasedModuleResolution_rootImport_aliasWithRoot_realRootFile.js create mode 100644 testdata/baselines/reference/submodule/compiler/pathMappingBasedModuleResolution_rootImport_noAliasWithRoot.js create mode 100644 testdata/baselines/reference/submodule/compiler/pathMappingBasedModuleResolution_rootImport_noAliasWithRoot_realRootFile.js create mode 100644 testdata/baselines/reference/submodule/compiler/pathMappingBasedModuleResolution_withExtension.js create mode 100644 testdata/baselines/reference/submodule/compiler/pathMappingBasedModuleResolution_withExtension_MapedToNodeModules.js create mode 100644 testdata/baselines/reference/submodule/compiler/reactImportDropped.js create mode 100644 testdata/baselines/reference/submodule/compiler/requireAsFunctionInExternalModule.js create mode 100644 testdata/baselines/reference/submodule/compiler/requireAsFunctionInExternalModule.js.diff create mode 100644 testdata/baselines/reference/submodule/compiler/requireOfJsonFile.js create mode 100644 testdata/baselines/reference/submodule/compiler/requireOfJsonFile.js.diff create mode 100644 testdata/baselines/reference/submodule/compiler/requireOfJsonFileNonRelative.js create mode 100644 testdata/baselines/reference/submodule/compiler/requireOfJsonFileNonRelative.js.diff create mode 100644 testdata/baselines/reference/submodule/compiler/requireOfJsonFileNonRelativeWithoutExtension.js create mode 100644 testdata/baselines/reference/submodule/compiler/requireOfJsonFileNonRelativeWithoutExtensionResolvesToTs.js create mode 100644 testdata/baselines/reference/submodule/compiler/requireOfJsonFileNonRelativeWithoutExtensionResolvesToTs.js.diff create mode 100644 testdata/baselines/reference/submodule/compiler/requireOfJsonFileTypes.js create mode 100644 testdata/baselines/reference/submodule/compiler/requireOfJsonFileTypes.js.diff create mode 100644 testdata/baselines/reference/submodule/compiler/requireOfJsonFileWithAmd.js create mode 100644 testdata/baselines/reference/submodule/compiler/requireOfJsonFileWithAmd.js.diff create mode 100644 testdata/baselines/reference/submodule/compiler/requireOfJsonFileWithEmptyObject.js create mode 100644 testdata/baselines/reference/submodule/compiler/requireOfJsonFileWithEmptyObject.js.diff create mode 100644 testdata/baselines/reference/submodule/compiler/requireOfJsonFileWithEmptyObjectWithErrors.js create mode 100644 testdata/baselines/reference/submodule/compiler/requireOfJsonFileWithEmptyObjectWithErrors.js.diff create mode 100644 testdata/baselines/reference/submodule/compiler/requireOfJsonFileWithErrors.js create mode 100644 testdata/baselines/reference/submodule/compiler/requireOfJsonFileWithErrors.js.diff create mode 100644 testdata/baselines/reference/submodule/compiler/requireOfJsonFileWithNoContent.js create mode 100644 testdata/baselines/reference/submodule/compiler/requireOfJsonFileWithNoContent.js.diff create mode 100644 testdata/baselines/reference/submodule/compiler/requireOfJsonFileWithSourceMap.js create mode 100644 testdata/baselines/reference/submodule/compiler/requireOfJsonFileWithSourceMap.js.diff create mode 100644 testdata/baselines/reference/submodule/compiler/requireOfJsonFileWithTraillingComma.js create mode 100644 testdata/baselines/reference/submodule/compiler/requireOfJsonFileWithTraillingComma.js.diff create mode 100644 testdata/baselines/reference/submodule/compiler/requireOfJsonFileWithoutExtension.js create mode 100644 testdata/baselines/reference/submodule/compiler/requireOfJsonFileWithoutExtension.js.diff create mode 100644 testdata/baselines/reference/submodule/compiler/requireOfJsonFileWithoutExtensionResolvesToTs.js create mode 100644 testdata/baselines/reference/submodule/compiler/requireOfJsonFileWithoutExtensionResolvesToTs.js.diff create mode 100644 testdata/baselines/reference/submodule/compiler/requireOfJsonFileWithoutResolveJsonModule.js create mode 100644 testdata/baselines/reference/submodule/compiler/requireOfJsonFileWithoutResolveJsonModule.js.diff create mode 100644 testdata/baselines/reference/submodule/compiler/requireOfJsonFileWithoutResolveJsonModuleAndPathMapping.js create mode 100644 testdata/baselines/reference/submodule/compiler/requireOfJsonFile_PathMapping.js create mode 100644 testdata/baselines/reference/submodule/compiler/resolveNameWithNamspace.js create mode 100644 testdata/baselines/reference/submodule/compiler/resolveNameWithNamspace.js.diff create mode 100644 testdata/baselines/reference/submodule/compiler/reuseTypeAnnotationImportTypeInGlobalThisTypeArgument.js create mode 100644 testdata/baselines/reference/submodule/compiler/reuseTypeAnnotationImportTypeInGlobalThisTypeArgument.js.diff create mode 100644 testdata/baselines/reference/submodule/compiler/selfReferentialDefaultNoStackOverflow.js create mode 100644 testdata/baselines/reference/submodule/compiler/selfReferentialDefaultNoStackOverflow.js.diff create mode 100644 testdata/baselines/reference/submodule/compiler/sideEffectImports4(nouncheckedsideeffectimports=false).js create mode 100644 testdata/baselines/reference/submodule/compiler/sideEffectImports4(nouncheckedsideeffectimports=true).js create mode 100644 testdata/baselines/reference/submodule/compiler/subclassThisTypeAssignable01.js create mode 100644 testdata/baselines/reference/submodule/compiler/subclassThisTypeAssignable02.js create mode 100644 testdata/baselines/reference/submodule/compiler/subclassThisTypeAssignable02.js.diff create mode 100644 testdata/baselines/reference/submodule/compiler/superNoModifiersCrash.js create mode 100644 testdata/baselines/reference/submodule/compiler/thisAssignmentInNamespaceDeclaration1.js create mode 100644 testdata/baselines/reference/submodule/compiler/thisInObjectJs.js create mode 100644 testdata/baselines/reference/submodule/compiler/unicodeEscapesInJSDoc.js create mode 100644 testdata/baselines/reference/submodule/compiler/unreachableJavascriptChecked.js create mode 100644 testdata/baselines/reference/submodule/compiler/unreachableJavascriptUnchecked.js create mode 100644 testdata/baselines/reference/submodule/compiler/usedImportNotElidedInJs.js create mode 100644 testdata/baselines/reference/submodule/conformance/assertionTypePredicates2.js create mode 100644 testdata/baselines/reference/submodule/conformance/assertionTypePredicates2.js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/assignmentToVoidZero1.js create mode 100644 testdata/baselines/reference/submodule/conformance/assignmentToVoidZero1.js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/assignmentToVoidZero2.js create mode 100644 testdata/baselines/reference/submodule/conformance/assignmentToVoidZero2.js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/bundlerImportTsExtensions(allowimportingtsextensions=false,noemit=false).js create mode 100644 testdata/baselines/reference/submodule/conformance/bundlerImportTsExtensions(allowimportingtsextensions=false,noemit=false).js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/bundlerImportTsExtensions(allowimportingtsextensions=true,noemit=false).js create mode 100644 testdata/baselines/reference/submodule/conformance/bundlerImportTsExtensions(allowimportingtsextensions=true,noemit=false).js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/bundlerSyntaxRestrictions(module=esnext).js create mode 100644 testdata/baselines/reference/submodule/conformance/bundlerSyntaxRestrictions(module=esnext).js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/bundlerSyntaxRestrictions(module=preserve).js create mode 100644 testdata/baselines/reference/submodule/conformance/bundlerSyntaxRestrictions(module=preserve).js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/callbackOnConstructor.js create mode 100644 testdata/baselines/reference/submodule/conformance/callbackOnConstructor.js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/callbackTagNestedParameter.js create mode 100644 testdata/baselines/reference/submodule/conformance/callbackTagNestedParameter.js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/callbackTagVariadicType.js create mode 100644 testdata/baselines/reference/submodule/conformance/callbackTagVariadicType.js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/checkJsdocOptionalParamOrder.js create mode 100644 testdata/baselines/reference/submodule/conformance/checkJsdocParamOnVariableDeclaredFunctionExpression.js create mode 100644 testdata/baselines/reference/submodule/conformance/checkJsdocParamTag1.js create mode 100644 testdata/baselines/reference/submodule/conformance/checkJsdocTypeTag1.js create mode 100644 testdata/baselines/reference/submodule/conformance/checkJsdocTypeTag2.js create mode 100644 testdata/baselines/reference/submodule/conformance/checkJsdocTypeTagOnObjectProperty1.js create mode 100644 testdata/baselines/reference/submodule/conformance/checkJsdocTypeTagOnObjectProperty2.js create mode 100644 testdata/baselines/reference/submodule/conformance/checkJsdocTypedefInParamTag1.js create mode 100644 testdata/baselines/reference/submodule/conformance/checkJsdocTypedefInParamTag1.js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/checkJsdocTypedefOnlySourceFile.js create mode 100644 testdata/baselines/reference/submodule/conformance/checkJsdocTypedefOnlySourceFile.js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/commonJSAliasedExport.js create mode 100644 testdata/baselines/reference/submodule/conformance/commonJSAliasedExport.js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/commonJSImportClassTypeReference.js create mode 100644 testdata/baselines/reference/submodule/conformance/commonJSImportClassTypeReference.js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/commonJSImportExportedClassExpression.js create mode 100644 testdata/baselines/reference/submodule/conformance/commonJSImportExportedClassExpression.js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/commonJSImportNestedClassTypeReference.js create mode 100644 testdata/baselines/reference/submodule/conformance/commonJSImportNestedClassTypeReference.js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/emit(jsx=preserve).js create mode 100644 testdata/baselines/reference/submodule/conformance/emit(jsx=react).js create mode 100644 testdata/baselines/reference/submodule/conformance/emitModuleCommonJS(module=commonjs).js create mode 100644 testdata/baselines/reference/submodule/conformance/emitModuleCommonJS(module=nodenext).js create mode 100644 testdata/baselines/reference/submodule/conformance/emitModuleCommonJS(module=nodenext).js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/expandoOnAlias.js create mode 100644 testdata/baselines/reference/submodule/conformance/expandoOnAlias.js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/exportDefaultInJsFile01.js create mode 100644 testdata/baselines/reference/submodule/conformance/exportDefaultInJsFile01.js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/exportDefaultInJsFile02.js create mode 100644 testdata/baselines/reference/submodule/conformance/exportDefaultInJsFile02.js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/exportNamespace_js.js create mode 100644 testdata/baselines/reference/submodule/conformance/exportNamespace_js.js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/extendsTag2.js create mode 100644 testdata/baselines/reference/submodule/conformance/extendsTag3.js create mode 100644 testdata/baselines/reference/submodule/conformance/extendsTag4.js create mode 100644 testdata/baselines/reference/submodule/conformance/extendsTagEmit.js create mode 100644 testdata/baselines/reference/submodule/conformance/importTag15(module=es2015).js create mode 100644 testdata/baselines/reference/submodule/conformance/importTag15(module=es2015).js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/importTag15(module=esnext).js create mode 100644 testdata/baselines/reference/submodule/conformance/importTag15(module=esnext).js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/importTag16.js create mode 100644 testdata/baselines/reference/submodule/conformance/importTag16.js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/importTag18.js create mode 100644 testdata/baselines/reference/submodule/conformance/importTag18.js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/importTag19.js create mode 100644 testdata/baselines/reference/submodule/conformance/importTag19.js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/importTag20.js create mode 100644 testdata/baselines/reference/submodule/conformance/importTag20.js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/importTag5.js create mode 100644 testdata/baselines/reference/submodule/conformance/importTag5.js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/importTypeInJSDoc.js create mode 100644 testdata/baselines/reference/submodule/conformance/importTypeInJSDoc.js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/instantiateTemplateTagTypeParameterOnVariableStatement.js create mode 100644 testdata/baselines/reference/submodule/conformance/instantiateTemplateTagTypeParameterOnVariableStatement.js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsClassAccessor.js create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsClassAccessor.js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsClassExtendsVisibility.js create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsClassExtendsVisibility.js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsClassImplementsGenericsSerialization.js create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsClassImplementsGenericsSerialization.js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsClassLeadingOptional.js create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsClassLeadingOptional.js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsClassLikeHeuristic.js create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsClassLikeHeuristic.js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsClassMethod.js create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsClassMethod.js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsClassStatic.js create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsClassStatic.js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsClassStatic2.js create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsClassStatic2.js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsClassStaticMethodAugmentation.js create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsClassStaticMethodAugmentation.js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsClasses.js create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsClasses.js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsClassesErr.js create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsClassesErr.js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsCommonjsRelativePath.js create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsCommonjsRelativePath.js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsComputedNames.js create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsComputedNames.js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsConstsAsNamespacesWithReferences.js create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsConstsAsNamespacesWithReferences.js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsCrossfileMerge.js create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsCrossfileMerge.js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsDefault.js create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsDefault.js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsDefaultsErr.js create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsDefaultsErr.js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsDocCommentsOnConsts.js create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsDocCommentsOnConsts.js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsEnumTag.js create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsEnumTag.js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsEnums.js create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsEnums.js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsExportAssignedClassExpression.js create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsExportAssignedClassExpression.js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsExportAssignedClassExpressionAnonymous.js create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsExportAssignedClassExpressionAnonymous.js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsExportAssignedClassExpressionAnonymousWithSub.js create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsExportAssignedClassExpressionAnonymousWithSub.js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsExportAssignedClassExpressionShadowing.js create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsExportAssignedClassExpressionShadowing.js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsExportAssignedClassInstance1.js create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsExportAssignedClassInstance1.js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsExportAssignedClassInstance2.js create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsExportAssignedClassInstance2.js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsExportAssignedClassInstance3.js create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsExportAssignedClassInstance3.js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsExportAssignedConstructorFunction.js create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsExportAssignedConstructorFunction.js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsExportAssignedConstructorFunctionWithSub.js create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsExportAssignedConstructorFunctionWithSub.js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsExportAssignedVisibility.js create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsExportAssignedVisibility.js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsExportAssignmentExpressionPlusSecondary.js create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsExportAssignmentExpressionPlusSecondary.js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsExportAssignmentWithKeywordName.js create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsExportAssignmentWithKeywordName.js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsExportDefinePropertyEmit.js create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsExportDefinePropertyEmit.js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsExportDoubleAssignmentInClosure.js create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsExportDoubleAssignmentInClosure.js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsExportForms.js create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsExportForms.js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsExportFormsErr.js create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsExportFormsErr.js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsExportSpecifierNonlocal.js create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsExportSpecifierNonlocal.js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsExportSubAssignments.js create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsExportSubAssignments.js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsExportedClassAliases.js create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsExportedClassAliases.js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsFunctionClassesCjsExportAssignment.js create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsFunctionClassesCjsExportAssignment.js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsFunctionJSDoc.js create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsFunctionJSDoc.js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsFunctionKeywordProp.js create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsFunctionKeywordProp.js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsFunctionKeywordPropExhaustive.js create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsFunctionKeywordPropExhaustive.js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsFunctionLikeClasses.js create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsFunctionLikeClasses.js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsFunctionLikeClasses2.js create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsFunctionLikeClasses2.js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsFunctionPrototypeStatic.js create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsFunctionPrototypeStatic.js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsFunctionWithDefaultAssignedMember.js create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsFunctionWithDefaultAssignedMember.js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsFunctions.js create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsFunctions.js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsFunctionsCjs.js create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsFunctionsCjs.js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsGetterSetter.js create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsGetterSetter.js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsImportAliasExposedWithinNamespace.js create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsImportAliasExposedWithinNamespace.js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsImportAliasExposedWithinNamespaceCjs.js create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsImportAliasExposedWithinNamespaceCjs.js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsImportNamespacedType.js create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsImportNamespacedType.js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsInterfaces.js create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsInterfaces.js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsJSDocRedirectedLookups.js create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsJSDocRedirectedLookups.js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsJson.js create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsJson.js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsMissingGenerics.js create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsMissingGenerics.js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsMissingTypeParameters.js create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsMissingTypeParameters.js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsModuleReferenceHasEmit.js create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsModuleReferenceHasEmit.js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsMultipleExportFromMerge.js create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsMultipleExportFromMerge.js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsNestedParams.js create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsNestedParams.js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsNonIdentifierInferredNames.js create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsNonIdentifierInferredNames.js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsOptionalTypeLiteralProps1.js create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsOptionalTypeLiteralProps1.js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsOptionalTypeLiteralProps2.js create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsOptionalTypeLiteralProps2.js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsPackageJson.js create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsPackageJson.js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsParameterTagReusesInputNodeInEmit1.js create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsParameterTagReusesInputNodeInEmit1.js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsParameterTagReusesInputNodeInEmit2.js create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsParameterTagReusesInputNodeInEmit2.js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsPrivateFields01.js create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsPrivateFields01.js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsReactComponents.js create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsReactComponents.js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsReexportAliases.js create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsReexportAliases.js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsReexportedCjsAlias.js create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsReexportedCjsAlias.js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsReferenceToClassInstanceCrossFile.js create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsReferenceToClassInstanceCrossFile.js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsRestArgsWithThisTypeInJSDocFunction.js create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsRestArgsWithThisTypeInJSDocFunction.js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsReusesExistingNodesMappingJSDocTypes.js create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsReusesExistingNodesMappingJSDocTypes.js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsReusesExistingTypeAnnotations.js create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsReusesExistingTypeAnnotations.js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsSubclassWithExplicitNoArgumentConstructor.js create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsSubclassWithExplicitNoArgumentConstructor.js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsThisTypes.js create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsThisTypes.js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsTypeAliases.js create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsTypeAliases.js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsTypeReassignmentFromDeclaration.js create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsTypeReassignmentFromDeclaration.js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsTypeReassignmentFromDeclaration2.js create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsTypeReassignmentFromDeclaration2.js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsTypeReferences.js create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsTypeReferences.js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsTypeReferences2.js create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsTypeReferences2.js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsTypeReferences3.js create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsTypeReferences3.js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsTypeReferences4.js create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsTypeReferences4.js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsTypedefAndImportTypes.js create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsTypedefAndImportTypes.js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsTypedefDescriptionsPreserved.js create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsTypedefDescriptionsPreserved.js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsTypedefFunction.js create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsTypedefFunction.js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsTypedefPropertyAndExportAssignment.js create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsTypedefPropertyAndExportAssignment.js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsUniqueSymbolUsage.js create mode 100644 testdata/baselines/reference/submodule/conformance/jsDeclarationsUniqueSymbolUsage.js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/jsdocCatchClauseWithTypeAnnotation.js create mode 100644 testdata/baselines/reference/submodule/conformance/jsdocCatchClauseWithTypeAnnotation.js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/jsdocImplements_class.js create mode 100644 testdata/baselines/reference/submodule/conformance/jsdocImplements_class.js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/jsdocImplements_interface.js create mode 100644 testdata/baselines/reference/submodule/conformance/jsdocImplements_interface_multiple.js create mode 100644 testdata/baselines/reference/submodule/conformance/jsdocImplements_missingType.js create mode 100644 testdata/baselines/reference/submodule/conformance/jsdocImplements_missingType.js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/jsdocImplements_namespacedInterface.js create mode 100644 testdata/baselines/reference/submodule/conformance/jsdocImplements_properties.js create mode 100644 testdata/baselines/reference/submodule/conformance/jsdocImplements_properties.js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/jsdocImplements_signatures.js create mode 100644 testdata/baselines/reference/submodule/conformance/jsdocOuterTypeParameters1.js create mode 100644 testdata/baselines/reference/submodule/conformance/jsdocOuterTypeParameters1.js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/jsdocOuterTypeParameters2.js create mode 100644 testdata/baselines/reference/submodule/conformance/jsdocOuterTypeParameters2.js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/jsdocOuterTypeParameters3.js create mode 100644 testdata/baselines/reference/submodule/conformance/jsdocOuterTypeParameters3.js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/jsdocSignatureOnReturnedFunction.js create mode 100644 testdata/baselines/reference/submodule/conformance/jsdocTemplateTagDefault.js create mode 100644 testdata/baselines/reference/submodule/conformance/jsdocTemplateTagDefault.js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/jsdocTemplateTagNameResolution.js create mode 100644 testdata/baselines/reference/submodule/conformance/jsdocTemplateTagNameResolution.js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/jsdocTypeTag.js create mode 100644 testdata/baselines/reference/submodule/conformance/jsdocTypeTagCast.js create mode 100644 testdata/baselines/reference/submodule/conformance/jsdocTypeTagCast.js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/jsdocVariableDeclarationWithTypeAnnotation.js create mode 100644 testdata/baselines/reference/submodule/conformance/jsxCheckJsxNoTypeArgumentsAllowed.js create mode 100644 testdata/baselines/reference/submodule/conformance/jsxCheckJsxNoTypeArgumentsAllowed.js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/lateBoundClassMemberAssignmentJS.js create mode 100644 testdata/baselines/reference/submodule/conformance/lateBoundClassMemberAssignmentJS.js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/lateBoundClassMemberAssignmentJS2.js create mode 100644 testdata/baselines/reference/submodule/conformance/lateBoundClassMemberAssignmentJS2.js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/lateBoundClassMemberAssignmentJS3.js create mode 100644 testdata/baselines/reference/submodule/conformance/lateBoundClassMemberAssignmentJS3.js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/library-reference-11.js create mode 100644 testdata/baselines/reference/submodule/conformance/linkTagEmit1.js create mode 100644 testdata/baselines/reference/submodule/conformance/linkTagEmit1.js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/malformedTags.js create mode 100644 testdata/baselines/reference/submodule/conformance/moduleExportAliasElementAccessExpression.js create mode 100644 testdata/baselines/reference/submodule/conformance/moduleExportAliasElementAccessExpression.js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/moduleExportDuplicateAlias.js create mode 100644 testdata/baselines/reference/submodule/conformance/moduleExportDuplicateAlias.js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/moduleExportDuplicateAlias2.js create mode 100644 testdata/baselines/reference/submodule/conformance/moduleExportDuplicateAlias2.js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/moduleExportDuplicateAlias3.js create mode 100644 testdata/baselines/reference/submodule/conformance/moduleExportDuplicateAlias3.js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/moduleExportsElementAccessAssignment.js create mode 100644 testdata/baselines/reference/submodule/conformance/moduleExportsElementAccessAssignment.js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/namespaceAssignmentToRequireAlias.js create mode 100644 testdata/baselines/reference/submodule/conformance/nestedDestructuringOfRequire.js create mode 100644 testdata/baselines/reference/submodule/conformance/nestedDestructuringOfRequire.js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/nodeAllowJsPackageSelfName(module=node16).js create mode 100644 testdata/baselines/reference/submodule/conformance/nodeAllowJsPackageSelfName(module=node18).js create mode 100644 testdata/baselines/reference/submodule/conformance/nodeAllowJsPackageSelfName(module=node18).js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/nodeAllowJsPackageSelfName(module=nodenext).js create mode 100644 testdata/baselines/reference/submodule/conformance/nodeAllowJsPackageSelfName2.js create mode 100644 testdata/baselines/reference/submodule/conformance/nodeAllowJsPackageSelfName2.js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/nodeModulesAllowJs1(module=node16).js create mode 100644 testdata/baselines/reference/submodule/conformance/nodeModulesAllowJs1(module=node16).js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/nodeModulesAllowJs1(module=node18).js create mode 100644 testdata/baselines/reference/submodule/conformance/nodeModulesAllowJs1(module=node18).js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/nodeModulesAllowJs1(module=nodenext).js create mode 100644 testdata/baselines/reference/submodule/conformance/nodeModulesAllowJs1(module=nodenext).js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsConditionalPackageExports(module=node16).js create mode 100644 testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsConditionalPackageExports(module=node18).js create mode 100644 testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsConditionalPackageExports(module=node18).js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsConditionalPackageExports(module=nodenext).js create mode 100644 testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsDynamicImport(module=node16).js create mode 100644 testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsDynamicImport(module=node16).js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsDynamicImport(module=node18).js create mode 100644 testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsDynamicImport(module=node18).js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsDynamicImport(module=nodenext).js create mode 100644 testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsDynamicImport(module=nodenext).js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsExportAssignment(module=node16).js create mode 100644 testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsExportAssignment(module=node16).js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsExportAssignment(module=node18).js create mode 100644 testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsExportAssignment(module=node18).js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsExportAssignment(module=nodenext).js create mode 100644 testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsExportAssignment(module=nodenext).js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsExportlessJsModuleDetectionAuto(module=node16).js create mode 100644 testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsExportlessJsModuleDetectionAuto(module=node18).js create mode 100644 testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsExportlessJsModuleDetectionAuto(module=nodenext).js create mode 100644 testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsGeneratedNameCollisions(module=node16).js create mode 100644 testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsGeneratedNameCollisions(module=node16).js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsGeneratedNameCollisions(module=node18).js create mode 100644 testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsGeneratedNameCollisions(module=node18).js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsGeneratedNameCollisions(module=nodenext).js create mode 100644 testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsGeneratedNameCollisions(module=nodenext).js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportAssignment(module=node16).js create mode 100644 testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportAssignment(module=node16).js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportAssignment(module=node18).js create mode 100644 testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportAssignment(module=node18).js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportAssignment(module=nodenext).js create mode 100644 testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportAssignment(module=nodenext).js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportHelpersCollisions1(module=node16).js create mode 100644 testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportHelpersCollisions1(module=node18).js create mode 100644 testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportHelpersCollisions1(module=node18).js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportHelpersCollisions1(module=nodenext).js create mode 100644 testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportHelpersCollisions2(module=node16).js create mode 100644 testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportHelpersCollisions2(module=node16).js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportHelpersCollisions2(module=node18).js create mode 100644 testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportHelpersCollisions2(module=node18).js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportHelpersCollisions2(module=nodenext).js create mode 100644 testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportHelpersCollisions2(module=nodenext).js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportHelpersCollisions3(module=node16).js create mode 100644 testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportHelpersCollisions3(module=node16).js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportHelpersCollisions3(module=node18).js create mode 100644 testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportHelpersCollisions3(module=node18).js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportHelpersCollisions3(module=nodenext).js create mode 100644 testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportHelpersCollisions3(module=nodenext).js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportMeta(module=node16).js create mode 100644 testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportMeta(module=node16).js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportMeta(module=node18).js create mode 100644 testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportMeta(module=node18).js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportMeta(module=nodenext).js create mode 100644 testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportMeta(module=nodenext).js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsPackageExports(module=node16).js create mode 100644 testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsPackageExports(module=node18).js create mode 100644 testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsPackageExports(module=node18).js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsPackageExports(module=nodenext).js create mode 100644 testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsPackageImports(module=node16).js create mode 100644 testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsPackageImports(module=node18).js create mode 100644 testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsPackageImports(module=node18).js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsPackageImports(module=nodenext).js create mode 100644 testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsPackagePatternExports(module=node16).js create mode 100644 testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsPackagePatternExports(module=node18).js create mode 100644 testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsPackagePatternExports(module=node18).js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsPackagePatternExports(module=nodenext).js create mode 100644 testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsPackagePatternExportsExclude(module=node16).js create mode 100644 testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsPackagePatternExportsExclude(module=node18).js create mode 100644 testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsPackagePatternExportsExclude(module=node18).js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsPackagePatternExportsExclude(module=nodenext).js create mode 100644 testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsPackagePatternExportsTrailers(module=node16).js create mode 100644 testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsPackagePatternExportsTrailers(module=node18).js create mode 100644 testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsPackagePatternExportsTrailers(module=node18).js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsPackagePatternExportsTrailers(module=nodenext).js create mode 100644 testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsSynchronousCallErrors(module=node16).js create mode 100644 testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsSynchronousCallErrors(module=node16).js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsSynchronousCallErrors(module=node18).js create mode 100644 testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsSynchronousCallErrors(module=node18).js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsSynchronousCallErrors(module=nodenext).js create mode 100644 testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsSynchronousCallErrors(module=nodenext).js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsTopLevelAwait(module=node16).js create mode 100644 testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsTopLevelAwait(module=node16).js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsTopLevelAwait(module=node18).js create mode 100644 testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsTopLevelAwait(module=node18).js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsTopLevelAwait(module=nodenext).js create mode 100644 testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsTopLevelAwait(module=nodenext).js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/nodeModulesCJSEmit1(module=node18).js create mode 100644 testdata/baselines/reference/submodule/conformance/nodeModulesCJSEmit1(module=node18).js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/nodeModulesCJSEmit1(module=nodenext).js create mode 100644 testdata/baselines/reference/submodule/conformance/nodeModulesCJSEmit1(module=nodenext).js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/overloadTag1.js create mode 100644 testdata/baselines/reference/submodule/conformance/overloadTag1.js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/overloadTag2.js create mode 100644 testdata/baselines/reference/submodule/conformance/overloadTag2.js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/parserArrowFunctionExpression10.js create mode 100644 testdata/baselines/reference/submodule/conformance/parserArrowFunctionExpression11.js create mode 100644 testdata/baselines/reference/submodule/conformance/parserArrowFunctionExpression12.js create mode 100644 testdata/baselines/reference/submodule/conformance/parserArrowFunctionExpression13.js create mode 100644 testdata/baselines/reference/submodule/conformance/parserArrowFunctionExpression14.js create mode 100644 testdata/baselines/reference/submodule/conformance/parserArrowFunctionExpression15.js create mode 100644 testdata/baselines/reference/submodule/conformance/parserArrowFunctionExpression16.js create mode 100644 testdata/baselines/reference/submodule/conformance/parserArrowFunctionExpression17.js create mode 100644 testdata/baselines/reference/submodule/conformance/parserArrowFunctionExpression8.js create mode 100644 testdata/baselines/reference/submodule/conformance/parserArrowFunctionExpression9.js create mode 100644 testdata/baselines/reference/submodule/conformance/plainJSBinderErrors.js create mode 100644 testdata/baselines/reference/submodule/conformance/plainJSGrammarErrors.js create mode 100644 testdata/baselines/reference/submodule/conformance/plainJSGrammarErrors.js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/plainJSGrammarErrors2.js create mode 100644 testdata/baselines/reference/submodule/conformance/plainJSGrammarErrors3.js create mode 100644 testdata/baselines/reference/submodule/conformance/plainJSGrammarErrors4.js create mode 100644 testdata/baselines/reference/submodule/conformance/plainJSRedeclare.js create mode 100644 testdata/baselines/reference/submodule/conformance/plainJSRedeclare2.js create mode 100644 testdata/baselines/reference/submodule/conformance/plainJSRedeclare3.js create mode 100644 testdata/baselines/reference/submodule/conformance/plainJSReservedStrict.js create mode 100644 testdata/baselines/reference/submodule/conformance/plainJSTypeErrors.js create mode 100644 testdata/baselines/reference/submodule/conformance/privateConstructorFunction.js create mode 100644 testdata/baselines/reference/submodule/conformance/privateConstructorFunction.js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/privateIdentifierExpando.js create mode 100644 testdata/baselines/reference/submodule/conformance/privateNamesIncompatibleModifiersJs.js create mode 100644 testdata/baselines/reference/submodule/conformance/privateNamesIncompatibleModifiersJs.js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/reExportJsFromTs.js create mode 100644 testdata/baselines/reference/submodule/conformance/reExportJsFromTs.js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/recursiveTypeReferences2.js create mode 100644 testdata/baselines/reference/submodule/conformance/recursiveTypeReferences2.js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/requireOfESWithPropertyAccess.js create mode 100644 testdata/baselines/reference/submodule/conformance/requireOfESWithPropertyAccess.js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/requireTwoPropertyAccesses.js create mode 100644 testdata/baselines/reference/submodule/conformance/requireTwoPropertyAccesses.js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/seeTag3.js create mode 100644 testdata/baselines/reference/submodule/conformance/seeTag4.js create mode 100644 testdata/baselines/reference/submodule/conformance/seeTag4.js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/templateInsideCallback.js create mode 100644 testdata/baselines/reference/submodule/conformance/templateInsideCallback.js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/thisPropertyAssignment.js create mode 100644 testdata/baselines/reference/submodule/conformance/thisPropertyAssignment.js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/thisPropertyAssignmentCircular.js create mode 100644 testdata/baselines/reference/submodule/conformance/thisPropertyAssignmentCircular.js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/thisPropertyAssignmentInherited.js create mode 100644 testdata/baselines/reference/submodule/conformance/thisPropertyAssignmentInherited.js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/thisTag2.js create mode 100644 testdata/baselines/reference/submodule/conformance/thisTag2.js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/typeFromPrivatePropertyAssignmentJs.js create mode 100644 testdata/baselines/reference/submodule/conformance/typeFromPropertyAssignment39.js create mode 100644 testdata/baselines/reference/submodule/conformance/typeFromPropertyAssignment39.js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/typeFromPropertyAssignmentWithExport.js create mode 100644 testdata/baselines/reference/submodule/conformance/typeFromPropertyAssignmentWithExport.js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/typeFromPrototypeAssignment4.js create mode 100644 testdata/baselines/reference/submodule/conformance/typeFromPrototypeAssignment4.js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/typeOnlyMerge2.errors.txt create mode 100644 testdata/baselines/reference/submodule/conformance/typeOnlyMerge2.symbols create mode 100644 testdata/baselines/reference/submodule/conformance/typeOnlyMerge2.types create mode 100644 testdata/baselines/reference/submodule/conformance/typeOnlyMerge3.errors.txt create mode 100644 testdata/baselines/reference/submodule/conformance/typeOnlyMerge3.symbols create mode 100644 testdata/baselines/reference/submodule/conformance/typeOnlyMerge3.symbols.diff create mode 100644 testdata/baselines/reference/submodule/conformance/typeOnlyMerge3.types create mode 100644 testdata/baselines/reference/submodule/conformance/typeTagNoErasure.js create mode 100644 testdata/baselines/reference/submodule/conformance/typeTagNoErasure.js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/typeTagOnFunctionReferencesGeneric.js create mode 100644 testdata/baselines/reference/submodule/conformance/typeTagOnFunctionReferencesGeneric.js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/typedefOnSemicolonClassElement.js create mode 100644 testdata/baselines/reference/submodule/conformance/typedefOnSemicolonClassElement.js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/typedefOnStatements.js create mode 100644 testdata/baselines/reference/submodule/conformance/typedefOnStatements.js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/typedefScope1.js create mode 100644 testdata/baselines/reference/submodule/conformance/typedefScope1.js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/untypedModuleImport_allowJs.js create mode 100644 testdata/baselines/reference/submodule/conformance/untypedModuleImport_allowJs.js.diff diff --git a/internal/testrunner/compiler_runner.go b/internal/testrunner/compiler_runner.go index 6770a03eb1..920ac47653 100644 --- a/internal/testrunner/compiler_runner.go +++ b/internal/testrunner/compiler_runner.go @@ -11,7 +11,6 @@ import ( "testing" "github.com/microsoft/typescript-go/internal/checker" - "github.com/microsoft/typescript-go/internal/collections" "github.com/microsoft/typescript-go/internal/core" "github.com/microsoft/typescript-go/internal/repo" "github.com/microsoft/typescript-go/internal/testutil" @@ -83,30 +82,20 @@ func (r *CompilerBaselineRunner) EnumerateTestFiles() []string { return files } +var deprecatedTests = []string{ + // Test deprecated `importsNotUsedAsValue` + "preserveUnusedImports.ts", + "noCrashWithVerbatimModuleSyntaxAndImportsNotUsedAsValues.ts", + "verbatimModuleSyntaxCompat.ts", + "preserveValueImports_importsNotUsedAsValues.ts", + "importsNotUsedAsValues_error.ts", +} + func (r *CompilerBaselineRunner) RunTests(t *testing.T) { r.cleanUpLocal(t) files := r.EnumerateTestFiles() - skippedTests := map[string]string{ - "mappedTypeRecursiveInference.ts": "Skipped until we have type printer with truncation limit.", - "jsFileCompilationWithoutJsExtensions.ts": "Skipped until we have proper allowJS support (and errors when not enabled.)", - "fileReferencesWithNoExtensions.ts": "Skipped until we support adding missing extensions in subtasks in fileloader.go", - "typeOnlyMerge2.ts": "Needs investigation", - "typeOnlyMerge3.ts": "Needs investigation", - "filesEmittingIntoSameOutput.ts": "Output order nondeterministic due to collision on filename during parallel emit.", - } - deprecatedTests := []string{ - // Test deprecated `importsNotUsedAsValue` - "preserveUnusedImports.ts", - "noCrashWithVerbatimModuleSyntaxAndImportsNotUsedAsValues.ts", - "verbatimModuleSyntaxCompat.ts", - "preserveValueImports_importsNotUsedAsValues.ts", - "importsNotUsedAsValues_error.ts", - } + for _, filename := range files { - if msg, ok := skippedTests[tspath.GetBaseFileName(filename)]; ok { - t.Run(tspath.GetBaseFileName(filename), func(t *testing.T) { t.Skip(msg) }) - continue - } if slices.Contains(deprecatedTests, tspath.GetBaseFileName(filename)) { continue } @@ -324,19 +313,22 @@ func newCompilerTest( } } -var concurrentSkippedErrorBaselines = collections.NewSetFromItems( - "circular1.ts", - "circular3.ts", - "recursiveExportAssignmentAndFindAliasedType1.ts", - "recursiveExportAssignmentAndFindAliasedType2.ts", - "recursiveExportAssignmentAndFindAliasedType3.ts", - "superInStaticMembers1.ts target=es2015", -) +var concurrentSkippedErrorBaselines = map[string]string{ + "circular1.ts": "Circular error reported in an extra position.", + "circular3.ts": "Circular error reported in an extra position.", + "recursiveExportAssignmentAndFindAliasedType1.ts": "Circular error reported in an extra position.", + "recursiveExportAssignmentAndFindAliasedType2.ts": "Circular error reported in an extra position.", + "recursiveExportAssignmentAndFindAliasedType3.ts": "Circular error reported in an extra position.", + "typeOnlyMerge2.ts": "Type-only merging is not detected when files are checked on different checkers.", + "typeOnlyMerge3.ts": "Type-only merging is not detected when files are checked on different checkers.", +} func (c *compilerTest) verifyDiagnostics(t *testing.T, suiteName string, isSubmodule bool) { t.Run("error", func(t *testing.T) { - if !testutil.TestProgramIsSingleThreaded() && concurrentSkippedErrorBaselines.Has(c.testName) { - t.Skip("Skipping error baseline in concurrent mode") + if !testutil.TestProgramIsSingleThreaded() { + if msg, ok := concurrentSkippedErrorBaselines[c.basename]; ok { + t.Skipf("Skipping in concurrent mode: %s", msg) + } } defer testutil.RecoverAndFail(t, "Panic on creating error baseline for test "+c.filename) @@ -368,12 +360,27 @@ func (c *compilerTest) verifyDiagnostics(t *testing.T, suiteName string, isSubmo }) } +var skippedEmitTests = map[string]string{ + "filesEmittingIntoSameOutput.ts": "Output order nondeterministic due to collision on filename during parallel emit.", + "jsFileCompilationWithJsEmitPathSameAsInput.ts": "Output order nondeterministic due to collision on filename during parallel emit.", + "grammarErrors.ts": "Output order nondeterministic due to collision on filename during parallel emit.", + "jsFileCompilationEmitBlockedCorrectly.ts": "Output order nondeterministic due to collision on filename during parallel emit.", + "jsDeclarationsReexportAliasesEsModuleInterop.ts": "cls.d.ts is missing statements when run concurrently.", + "jsFileCompilationWithoutJsExtensions.ts": "No files are emitted.", + "typeOnlyMerge2.ts": "Nondeterministic contents when run concurrently.", + "typeOnlyMerge3.ts": "Nondeterministic contents when run concurrently.", +} + func (c *compilerTest) verifyJavaScriptOutput(t *testing.T, suiteName string, isSubmodule bool) { if !c.hasNonDtsFiles { return } t.Run("output", func(t *testing.T) { + if msg, ok := skippedEmitTests[c.basename]; ok { + t.Skip(msg) + } + defer testutil.RecoverAndFail(t, "Panic on creating js output for test "+c.filename) headerComponents := tspath.GetPathComponentsRelativeTo(repo.TestDataPath, c.filename, tspath.ComparePathsOptions{}) if isSubmodule { diff --git a/internal/testutil/tsbaseline/js_emit_baseline.go b/internal/testutil/tsbaseline/js_emit_baseline.go index 5e29b07404..eb6c9ab06c 100644 --- a/internal/testutil/tsbaseline/js_emit_baseline.go +++ b/internal/testutil/tsbaseline/js_emit_baseline.go @@ -25,17 +25,13 @@ func DoJSEmitBaseline( harnessSettings *harnessutil.HarnessOptions, opts baseline.Options, ) { - if options.GetAllowJS() { - t.Skip("AllowJS is not supported") - return - } if options.OutFile != "" || options.Out != "" { - t.Skip("OutFile/Out is not supported") + // Just return, no t.Skip; these options are not going to be supported so noting them is not helpful. return } if !options.NoEmit.IsTrue() && !options.EmitDeclarationOnly.IsTrue() && result.JS.Size() == 0 && len(result.Diagnostics) == 0 { - panic("Expected at least one js file to be emitted or at least one error to be created.") + t.Fatal("Expected at least one js file to be emitted or at least one error to be created.") } // check js output diff --git a/testdata/baselines/reference/conformance/deepElementAccessExpressionInJS.js b/testdata/baselines/reference/conformance/deepElementAccessExpressionInJS.js new file mode 100644 index 0000000000..74a48be03c --- /dev/null +++ b/testdata/baselines/reference/conformance/deepElementAccessExpressionInJS.js @@ -0,0 +1,24 @@ +//// [tests/cases/conformance/salsa/deepElementAccessExpressionInJS.ts] //// + +//// [declarations.d.ts] +declare var module: { + exports: { + [key: string]: any; + }; +} +//// [elementAccessExpressionInJS.js] +if (module[calculatePropertyName(1)]) { +} +function calculatePropertyName(index) { + // this would be some webpack index in real life + return `property${index}`; +} + + +//// [elementAccessExpressionInJS.js] +if (module[calculatePropertyName(1)]) { +} +function calculatePropertyName(index) { + // this would be some webpack index in real life + return `property${index}`; +} diff --git a/testdata/baselines/reference/conformance/typeTagForMultipleVariableDeclarations.js b/testdata/baselines/reference/conformance/typeTagForMultipleVariableDeclarations.js new file mode 100644 index 0000000000..e93ed6cebc --- /dev/null +++ b/testdata/baselines/reference/conformance/typeTagForMultipleVariableDeclarations.js @@ -0,0 +1,16 @@ +//// [tests/cases/conformance/typeTagForMultipleVariableDeclarations.ts] //// + +//// [typeTagForMultipleVariableDeclarations.js] +/** @type {number} */ +var x,y,z; +x +y +z + + +//// [typeTagForMultipleVariableDeclarations.js] +/** @type {number} */ +var x, y, z; +x; +y; +z; diff --git a/testdata/baselines/reference/submodule/compiler/accessorDeclarationEmitJs.js b/testdata/baselines/reference/submodule/compiler/accessorDeclarationEmitJs.js new file mode 100644 index 0000000000..a5c4354227 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/accessorDeclarationEmitJs.js @@ -0,0 +1,39 @@ +//// [tests/cases/compiler/accessorDeclarationEmitJs.ts] //// + +//// [a.js] +export const t1 = { + p: 'value', + get getter() { + return 'value'; + }, +} + +export const t2 = { + v: 'value', + set setter(v) {}, +} + +export const t3 = { + p: 'value', + get value() { + return 'value'; + }, + set value(v) {}, +} + + + + +//// [a.d.ts] +export declare const t1: { + p: string; + readonly getter: string; +}; +export declare const t2: { + v: string; + setter: any; +}; +export declare const t3: { + p: string; + value: string; +}; diff --git a/testdata/baselines/reference/submodule/compiler/accessorDeclarationEmitJs.js.diff b/testdata/baselines/reference/submodule/compiler/accessorDeclarationEmitJs.js.diff new file mode 100644 index 0000000000..0aafbc581b --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/accessorDeclarationEmitJs.js.diff @@ -0,0 +1,31 @@ +--- old.accessorDeclarationEmitJs.js ++++ new.accessorDeclarationEmitJs.js +@@= skipped -24, +24 lines =@@ + + + //// [a.d.ts] +-export namespace t1 { +- let p: string; +- const getter: string; +-} +-export namespace t2 { +- let v: string; +- let setter: any; +-} +-export namespace t3 { +- let p_1: string; +- export { p_1 as p }; +- export let value: string; +-} ++export declare const t1: { ++ p: string; ++ readonly getter: string; ++}; ++export declare const t2: { ++ v: string; ++ setter: any; ++}; ++export declare const t3: { ++ p: string; ++ value: string; ++}; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/allowJscheckJsTypeParameterNoCrash.js b/testdata/baselines/reference/submodule/compiler/allowJscheckJsTypeParameterNoCrash.js new file mode 100644 index 0000000000..88e7f5f65f --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/allowJscheckJsTypeParameterNoCrash.js @@ -0,0 +1,40 @@ +//// [tests/cases/compiler/allowJscheckJsTypeParameterNoCrash.ts] //// + +//// [func.ts] +interface ComponentOptions { + watch: Record>; +} +type WatchHandler = (val: T) => void; +declare function extend(options: ComponentOptions<{}>): void; +export var vextend = extend; +//// [app.js] +import {vextend} from './func'; +// hover on vextend +export var a = vextend({ + watch: { + data1(val) { + this.data2 = 1; + }, + data2(val) { }, + } +}); + +//// [func.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.vextend = void 0; +exports.vextend = extend; +//// [app.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.a = void 0; +const func_1 = require("./func"); +// hover on vextend +exports.a = (0, func_1.vextend)({ + watch: { + data1(val) { + this.data2 = 1; + }, + data2(val) { }, + } +}); diff --git a/testdata/baselines/reference/submodule/compiler/allowJscheckJsTypeParameterNoCrash.js.diff b/testdata/baselines/reference/submodule/compiler/allowJscheckJsTypeParameterNoCrash.js.diff new file mode 100644 index 0000000000..44a7593278 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/allowJscheckJsTypeParameterNoCrash.js.diff @@ -0,0 +1,11 @@ +--- old.allowJscheckJsTypeParameterNoCrash.js ++++ new.allowJscheckJsTypeParameterNoCrash.js +@@= skipped -27, +27 lines =@@ + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.a = void 0; +-var func_1 = require("./func"); ++const func_1 = require("./func"); + // hover on vextend + exports.a = (0, func_1.vextend)({ + watch: { \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/ambientRequireFunction(module=commonjs).js b/testdata/baselines/reference/submodule/compiler/ambientRequireFunction(module=commonjs).js new file mode 100644 index 0000000000..430403e508 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/ambientRequireFunction(module=commonjs).js @@ -0,0 +1,19 @@ +//// [tests/cases/compiler/ambientRequireFunction.ts] //// + +//// [node.d.ts] +declare function require(moduleName: string): any; + +declare module "fs" { + export function readFileSync(s: string): string; +} + +//// [app.js] +/// + +const fs = require("fs"); +const text = fs.readFileSync("/a/b/c"); + +//// [app.js] +/// +const fs = require("fs"); +const text = fs.readFileSync("/a/b/c"); diff --git a/testdata/baselines/reference/submodule/compiler/ambientRequireFunction(module=preserve).js b/testdata/baselines/reference/submodule/compiler/ambientRequireFunction(module=preserve).js new file mode 100644 index 0000000000..430403e508 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/ambientRequireFunction(module=preserve).js @@ -0,0 +1,19 @@ +//// [tests/cases/compiler/ambientRequireFunction.ts] //// + +//// [node.d.ts] +declare function require(moduleName: string): any; + +declare module "fs" { + export function readFileSync(s: string): string; +} + +//// [app.js] +/// + +const fs = require("fs"); +const text = fs.readFileSync("/a/b/c"); + +//// [app.js] +/// +const fs = require("fs"); +const text = fs.readFileSync("/a/b/c"); diff --git a/testdata/baselines/reference/submodule/compiler/amdLikeInputDeclarationEmit.js b/testdata/baselines/reference/submodule/compiler/amdLikeInputDeclarationEmit.js new file mode 100644 index 0000000000..7777bb555a --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/amdLikeInputDeclarationEmit.js @@ -0,0 +1,36 @@ +//// [tests/cases/compiler/amdLikeInputDeclarationEmit.ts] //// + +//// [typing.d.ts] +declare function define(name: string, modules: string[], ready: (...modules: unknown[]) => T); +//// [BaseClass.d.ts] +declare module "deps/BaseClass" { + class BaseClass { + static extends(a: A): new () => A & BaseClass; + } + export = BaseClass; +} +//// [ExtendedClass.js] +define("lib/ExtendedClass", ["deps/BaseClass"], +/** + * {typeof import("deps/BaseClass")} + * @param {typeof import("deps/BaseClass")} BaseClass + * @returns + */ +(BaseClass) => { + + const ExtendedClass = BaseClass.extends({ + f: function() { + return "something"; + } + }); + + // Exports the module in a way tsc recognize class export + const module = {}; + module.exports = ExtendedClass + return module.exports; +}); + + + +//// [ExtendedClass.d.ts] +export {}; diff --git a/testdata/baselines/reference/submodule/compiler/amdLikeInputDeclarationEmit.js.diff b/testdata/baselines/reference/submodule/compiler/amdLikeInputDeclarationEmit.js.diff new file mode 100644 index 0000000000..6965dca877 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/amdLikeInputDeclarationEmit.js.diff @@ -0,0 +1,11 @@ +--- old.amdLikeInputDeclarationEmit.js ++++ new.amdLikeInputDeclarationEmit.js +@@= skipped -32, +32 lines =@@ + + + //// [ExtendedClass.d.ts] +-export = ExtendedClass; +-declare const ExtendedClass: new () => { +- f: () => "something"; +-} & import("deps/BaseClass"); ++export {}; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/argumentsPropertyNameInJsMode1.js b/testdata/baselines/reference/submodule/compiler/argumentsPropertyNameInJsMode1.js new file mode 100644 index 0000000000..3f765d41c6 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/argumentsPropertyNameInJsMode1.js @@ -0,0 +1,29 @@ +//// [tests/cases/compiler/argumentsPropertyNameInJsMode1.ts] //// + +//// [a.js] +const foo = { + f1: (params) => { } +} + +function f2(x) { + foo.f1({ x, arguments: [] }); +} + +f2(1, 2, 3); + + +//// [a.js] +const foo = { + f1: (params) => { } +}; +function f2(x) { + foo.f1({ x, arguments: [] }); +} +f2(1, 2, 3); + + +//// [a.d.ts] +declare const foo: { + f1: (params: any) => void; +}; +declare function f2(x: any): void; diff --git a/testdata/baselines/reference/submodule/compiler/argumentsPropertyNameInJsMode1.js.diff b/testdata/baselines/reference/submodule/compiler/argumentsPropertyNameInJsMode1.js.diff new file mode 100644 index 0000000000..814809d520 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/argumentsPropertyNameInJsMode1.js.diff @@ -0,0 +1,13 @@ +--- old.argumentsPropertyNameInJsMode1.js ++++ new.argumentsPropertyNameInJsMode1.js +@@= skipped -22, +22 lines =@@ + + + //// [a.d.ts] ++declare const foo: { ++ f1: (params: any) => void; ++}; + declare function f2(x: any): void; +-declare namespace foo { +- function f1(params: any): void; +-} \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/argumentsPropertyNameInJsMode2.js b/testdata/baselines/reference/submodule/compiler/argumentsPropertyNameInJsMode2.js new file mode 100644 index 0000000000..e3c0e9721a --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/argumentsPropertyNameInJsMode2.js @@ -0,0 +1,19 @@ +//// [tests/cases/compiler/argumentsPropertyNameInJsMode2.ts] //// + +//// [a.js] +function f(x) { + arguments; +} + +f(1, 2, 3); + + +//// [a.js] +function f(x) { + arguments; +} +f(1, 2, 3); + + +//// [a.d.ts] +declare function f(x: any): void; diff --git a/testdata/baselines/reference/submodule/compiler/argumentsPropertyNameInJsMode2.js.diff b/testdata/baselines/reference/submodule/compiler/argumentsPropertyNameInJsMode2.js.diff new file mode 100644 index 0000000000..c08827eb5d --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/argumentsPropertyNameInJsMode2.js.diff @@ -0,0 +1,8 @@ +--- old.argumentsPropertyNameInJsMode2.js ++++ new.argumentsPropertyNameInJsMode2.js +@@= skipped -15, +15 lines =@@ + + + //// [a.d.ts] +-declare function f(x: any, ...args: any[]): void; ++declare function f(x: any): void; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/argumentsReferenceInConstructor1_Js.js b/testdata/baselines/reference/submodule/compiler/argumentsReferenceInConstructor1_Js.js new file mode 100644 index 0000000000..ae927d676e --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/argumentsReferenceInConstructor1_Js.js @@ -0,0 +1,29 @@ +//// [tests/cases/compiler/argumentsReferenceInConstructor1_Js.ts] //// + +//// [a.js] +class A { + /** + * Constructor + * + * @param {object} [foo={}] + */ + constructor(foo = {}) { + /** + * @type object + */ + this.arguments = foo; + } +} + + + + +//// [a.d.ts] +declare class A { + /** + * Constructor + * + * @param {object} [foo={}] + */ + constructor(foo?: object); +} diff --git a/testdata/baselines/reference/submodule/compiler/argumentsReferenceInConstructor1_Js.js.diff b/testdata/baselines/reference/submodule/compiler/argumentsReferenceInConstructor1_Js.js.diff new file mode 100644 index 0000000000..5c4487e994 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/argumentsReferenceInConstructor1_Js.js.diff @@ -0,0 +1,11 @@ +--- old.argumentsReferenceInConstructor1_Js.js ++++ new.argumentsReferenceInConstructor1_Js.js +@@= skipped -25, +25 lines =@@ + * @param {object} [foo={}] + */ + constructor(foo?: object); +- /** +- * @type object +- */ +- arguments: object; + } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/argumentsReferenceInConstructor2_Js.js b/testdata/baselines/reference/submodule/compiler/argumentsReferenceInConstructor2_Js.js new file mode 100644 index 0000000000..d734bb07ad --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/argumentsReferenceInConstructor2_Js.js @@ -0,0 +1,29 @@ +//// [tests/cases/compiler/argumentsReferenceInConstructor2_Js.ts] //// + +//// [a.js] +class A { + /** + * Constructor + * + * @param {object} [foo={}] + */ + constructor(foo = {}) { + /** + * @type object + */ + this["arguments"] = foo; + } +} + + + + +//// [a.d.ts] +declare class A { + /** + * Constructor + * + * @param {object} [foo={}] + */ + constructor(foo?: object); +} diff --git a/testdata/baselines/reference/submodule/compiler/argumentsReferenceInConstructor2_Js.js.diff b/testdata/baselines/reference/submodule/compiler/argumentsReferenceInConstructor2_Js.js.diff new file mode 100644 index 0000000000..c0fa22884c --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/argumentsReferenceInConstructor2_Js.js.diff @@ -0,0 +1,11 @@ +--- old.argumentsReferenceInConstructor2_Js.js ++++ new.argumentsReferenceInConstructor2_Js.js +@@= skipped -25, +25 lines =@@ + * @param {object} [foo={}] + */ + constructor(foo?: object); +- /** +- * @type object +- */ +- arguments: object; + } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/argumentsReferenceInConstructor3_Js.js b/testdata/baselines/reference/submodule/compiler/argumentsReferenceInConstructor3_Js.js new file mode 100644 index 0000000000..b5adf569fa --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/argumentsReferenceInConstructor3_Js.js @@ -0,0 +1,47 @@ +//// [tests/cases/compiler/argumentsReferenceInConstructor3_Js.ts] //// + +//// [a.js] +class A { + get arguments() { + return { bar: {} }; + } +} + +class B extends A { + /** + * Constructor + * + * @param {object} [foo={}] + */ + constructor(foo = {}) { + super(); + + /** + * @type object + */ + this.foo = foo; + + /** + * @type object + */ + this.bar = super.arguments.foo; + } +} + + + + +//// [a.d.ts] +declare class A { + get arguments(): { + bar: {}; + }; +} +declare class B extends A { + /** + * Constructor + * + * @param {object} [foo={}] + */ + constructor(foo?: object); +} diff --git a/testdata/baselines/reference/submodule/compiler/argumentsReferenceInConstructor3_Js.js.diff b/testdata/baselines/reference/submodule/compiler/argumentsReferenceInConstructor3_Js.js.diff new file mode 100644 index 0000000000..ec68c5f732 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/argumentsReferenceInConstructor3_Js.js.diff @@ -0,0 +1,15 @@ +--- old.argumentsReferenceInConstructor3_Js.js ++++ new.argumentsReferenceInConstructor3_Js.js +@@= skipped -43, +43 lines =@@ + * @param {object} [foo={}] + */ + constructor(foo?: object); +- /** +- * @type object +- */ +- foo: object; +- /** +- * @type object +- */ +- bar: object; + } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/argumentsReferenceInConstructor4_Js.js b/testdata/baselines/reference/submodule/compiler/argumentsReferenceInConstructor4_Js.js new file mode 100644 index 0000000000..edf5819c38 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/argumentsReferenceInConstructor4_Js.js @@ -0,0 +1,58 @@ +//// [tests/cases/compiler/argumentsReferenceInConstructor4_Js.ts] //// + +//// [a.js] +class A { + /** + * Constructor + * + * @param {object} [foo={}] + */ + constructor(foo = {}) { + const key = "bar"; + + /** + * @type object + */ + this.foo = foo; + + /** + * @type object + */ + const arguments = this.arguments; + + /** + * @type object + */ + this.bar = arguments.bar; + + /** + * @type object + */ + this.baz = arguments[key]; + + /** + * @type object + */ + this.options = arguments; + } + + get arguments() { + return { bar: {} }; + } +} + + + + +//// [a.d.ts] +declare class A { + /** + * Constructor + * + * @param {object} [foo={}] + */ + constructor(foo?: object); + get arguments(): { + bar: {}; + }; +} diff --git a/testdata/baselines/reference/submodule/compiler/argumentsReferenceInConstructor4_Js.js.diff b/testdata/baselines/reference/submodule/compiler/argumentsReferenceInConstructor4_Js.js.diff new file mode 100644 index 0000000000..66b2aba54e --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/argumentsReferenceInConstructor4_Js.js.diff @@ -0,0 +1,25 @@ +--- old.argumentsReferenceInConstructor4_Js.js ++++ new.argumentsReferenceInConstructor4_Js.js +@@= skipped -51, +51 lines =@@ + * @param {object} [foo={}] + */ + constructor(foo?: object); +- /** +- * @type object +- */ +- foo: object; +- /** +- * @type object +- */ +- bar: object; +- /** +- * @type object +- */ +- baz: object; +- /** +- * @type object +- */ +- options: object; + get arguments(): { + bar: {}; + }; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/argumentsReferenceInConstructor5_Js.js b/testdata/baselines/reference/submodule/compiler/argumentsReferenceInConstructor5_Js.js new file mode 100644 index 0000000000..53debd1f91 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/argumentsReferenceInConstructor5_Js.js @@ -0,0 +1,41 @@ +//// [tests/cases/compiler/argumentsReferenceInConstructor5_Js.ts] //// + +//// [a.js] +const bar = { + arguments: {} +} + +class A { + /** + * Constructor + * + * @param {object} [foo={}] + */ + constructor(foo = {}) { + /** + * @type object + */ + this.foo = foo; + + /** + * @type object + */ + this.bar = bar.arguments; + } +} + + + + +//// [a.d.ts] +declare const bar: { + arguments: {}; +}; +declare class A { + /** + * Constructor + * + * @param {object} [foo={}] + */ + constructor(foo?: object); +} diff --git a/testdata/baselines/reference/submodule/compiler/argumentsReferenceInConstructor5_Js.js.diff b/testdata/baselines/reference/submodule/compiler/argumentsReferenceInConstructor5_Js.js.diff new file mode 100644 index 0000000000..5ac49a9e37 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/argumentsReferenceInConstructor5_Js.js.diff @@ -0,0 +1,28 @@ +--- old.argumentsReferenceInConstructor5_Js.js ++++ new.argumentsReferenceInConstructor5_Js.js +@@= skipped -27, +27 lines =@@ + + + //// [a.d.ts] +-declare namespace bar { +- let arguments: {}; +-} ++declare const bar: { ++ arguments: {}; ++}; + declare class A { + /** + * Constructor +@@= skipped -10, +10 lines =@@ + * @param {object} [foo={}] + */ + constructor(foo?: object); +- /** +- * @type object +- */ +- foo: object; +- /** +- * @type object +- */ +- bar: object; + } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/argumentsReferenceInConstructor6_Js.js b/testdata/baselines/reference/submodule/compiler/argumentsReferenceInConstructor6_Js.js new file mode 100644 index 0000000000..5723085bee --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/argumentsReferenceInConstructor6_Js.js @@ -0,0 +1,19 @@ +//// [tests/cases/compiler/argumentsReferenceInConstructor6_Js.ts] //// + +//// [a.js] +class A { + constructor() { + /** + * @type object + */ + this.foo = arguments; + } +} + + + + +//// [a.d.ts] +declare class A { + constructor(); +} diff --git a/testdata/baselines/reference/submodule/compiler/argumentsReferenceInConstructor6_Js.js.diff b/testdata/baselines/reference/submodule/compiler/argumentsReferenceInConstructor6_Js.js.diff new file mode 100644 index 0000000000..0a341ac40b --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/argumentsReferenceInConstructor6_Js.js.diff @@ -0,0 +1,13 @@ +--- old.argumentsReferenceInConstructor6_Js.js ++++ new.argumentsReferenceInConstructor6_Js.js +@@= skipped -14, +14 lines =@@ + + //// [a.d.ts] + declare class A { +- constructor(...args: any[]); +- /** +- * @type object +- */ +- foo: object; ++ constructor(); + } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/argumentsReferenceInConstructor7_Js.js b/testdata/baselines/reference/submodule/compiler/argumentsReferenceInConstructor7_Js.js new file mode 100644 index 0000000000..4f16e44207 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/argumentsReferenceInConstructor7_Js.js @@ -0,0 +1,19 @@ +//// [tests/cases/compiler/argumentsReferenceInConstructor7_Js.ts] //// + +//// [a.js] +class A { + constructor() { + /** + * @type Function + */ + this.callee = arguments.callee; + } +} + + + + +//// [a.d.ts] +declare class A { + constructor(); +} diff --git a/testdata/baselines/reference/submodule/compiler/argumentsReferenceInConstructor7_Js.js.diff b/testdata/baselines/reference/submodule/compiler/argumentsReferenceInConstructor7_Js.js.diff new file mode 100644 index 0000000000..df56e76ef6 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/argumentsReferenceInConstructor7_Js.js.diff @@ -0,0 +1,13 @@ +--- old.argumentsReferenceInConstructor7_Js.js ++++ new.argumentsReferenceInConstructor7_Js.js +@@= skipped -14, +14 lines =@@ + + //// [a.d.ts] + declare class A { +- constructor(...args: any[]); +- /** +- * @type Function +- */ +- callee: Function; ++ constructor(); + } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/argumentsReferenceInMethod1_Js.js b/testdata/baselines/reference/submodule/compiler/argumentsReferenceInMethod1_Js.js new file mode 100644 index 0000000000..40246c7013 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/argumentsReferenceInMethod1_Js.js @@ -0,0 +1,25 @@ +//// [tests/cases/compiler/argumentsReferenceInMethod1_Js.ts] //// + +//// [a.js] +class A { + /** + * @param {object} [foo={}] + */ + m(foo = {}) { + /** + * @type object + */ + this.arguments = foo; + } +} + + + + +//// [a.d.ts] +declare class A { + /** + * @param {object} [foo={}] + */ + m(foo?: object): void; +} diff --git a/testdata/baselines/reference/submodule/compiler/argumentsReferenceInMethod1_Js.js.diff b/testdata/baselines/reference/submodule/compiler/argumentsReferenceInMethod1_Js.js.diff new file mode 100644 index 0000000000..98ab64c9ea --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/argumentsReferenceInMethod1_Js.js.diff @@ -0,0 +1,11 @@ +--- old.argumentsReferenceInMethod1_Js.js ++++ new.argumentsReferenceInMethod1_Js.js +@@= skipped -21, +21 lines =@@ + * @param {object} [foo={}] + */ + m(foo?: object): void; +- /** +- * @type object +- */ +- arguments: object; + } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/argumentsReferenceInMethod2_Js.js b/testdata/baselines/reference/submodule/compiler/argumentsReferenceInMethod2_Js.js new file mode 100644 index 0000000000..6bb87e101d --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/argumentsReferenceInMethod2_Js.js @@ -0,0 +1,25 @@ +//// [tests/cases/compiler/argumentsReferenceInMethod2_Js.ts] //// + +//// [a.js] +class A { + /** + * @param {object} [foo={}] + */ + m(foo = {}) { + /** + * @type object + */ + this["arguments"] = foo; + } +} + + + + +//// [a.d.ts] +declare class A { + /** + * @param {object} [foo={}] + */ + m(foo?: object): void; +} diff --git a/testdata/baselines/reference/submodule/compiler/argumentsReferenceInMethod2_Js.js.diff b/testdata/baselines/reference/submodule/compiler/argumentsReferenceInMethod2_Js.js.diff new file mode 100644 index 0000000000..2d371db3b7 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/argumentsReferenceInMethod2_Js.js.diff @@ -0,0 +1,11 @@ +--- old.argumentsReferenceInMethod2_Js.js ++++ new.argumentsReferenceInMethod2_Js.js +@@= skipped -21, +21 lines =@@ + * @param {object} [foo={}] + */ + m(foo?: object): void; +- /** +- * @type object +- */ +- arguments: object; + } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/argumentsReferenceInMethod3_Js.js b/testdata/baselines/reference/submodule/compiler/argumentsReferenceInMethod3_Js.js new file mode 100644 index 0000000000..f23e23d350 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/argumentsReferenceInMethod3_Js.js @@ -0,0 +1,41 @@ +//// [tests/cases/compiler/argumentsReferenceInMethod3_Js.ts] //// + +//// [a.js] +class A { + get arguments() { + return { bar: {} }; + } +} + +class B extends A { + /** + * @param {object} [foo={}] + */ + m(foo = {}) { + /** + * @type object + */ + this.x = foo; + + /** + * @type object + */ + this.y = super.arguments.bar; + } +} + + + + +//// [a.d.ts] +declare class A { + get arguments(): { + bar: {}; + }; +} +declare class B extends A { + /** + * @param {object} [foo={}] + */ + m(foo?: object): void; +} diff --git a/testdata/baselines/reference/submodule/compiler/argumentsReferenceInMethod3_Js.js.diff b/testdata/baselines/reference/submodule/compiler/argumentsReferenceInMethod3_Js.js.diff new file mode 100644 index 0000000000..d89c74b240 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/argumentsReferenceInMethod3_Js.js.diff @@ -0,0 +1,15 @@ +--- old.argumentsReferenceInMethod3_Js.js ++++ new.argumentsReferenceInMethod3_Js.js +@@= skipped -37, +37 lines =@@ + * @param {object} [foo={}] + */ + m(foo?: object): void; +- /** +- * @type object +- */ +- x: object; +- /** +- * @type object +- */ +- y: object; + } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/argumentsReferenceInMethod4_Js.js b/testdata/baselines/reference/submodule/compiler/argumentsReferenceInMethod4_Js.js new file mode 100644 index 0000000000..1ed23cc5a4 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/argumentsReferenceInMethod4_Js.js @@ -0,0 +1,54 @@ +//// [tests/cases/compiler/argumentsReferenceInMethod4_Js.ts] //// + +//// [a.js] +class A { + /** + * @param {object} [foo={}] + */ + m(foo = {}) { + const key = "bar"; + + /** + * @type object + */ + this.foo = foo; + + /** + * @type object + */ + const arguments = this.arguments; + + /** + * @type object + */ + this.bar = arguments.bar; + + /** + * @type object + */ + this.baz = arguments[key]; + + /** + * @type object + */ + this.options = arguments; + } + + get arguments() { + return { bar: {} }; + } +} + + + + +//// [a.d.ts] +declare class A { + /** + * @param {object} [foo={}] + */ + m(foo?: object): void; + get arguments(): { + bar: {}; + }; +} diff --git a/testdata/baselines/reference/submodule/compiler/argumentsReferenceInMethod4_Js.js.diff b/testdata/baselines/reference/submodule/compiler/argumentsReferenceInMethod4_Js.js.diff new file mode 100644 index 0000000000..6778d3d0d6 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/argumentsReferenceInMethod4_Js.js.diff @@ -0,0 +1,25 @@ +--- old.argumentsReferenceInMethod4_Js.js ++++ new.argumentsReferenceInMethod4_Js.js +@@= skipped -47, +47 lines =@@ + * @param {object} [foo={}] + */ + m(foo?: object): void; +- /** +- * @type object +- */ +- foo: object; +- /** +- * @type object +- */ +- bar: object; +- /** +- * @type object +- */ +- baz: object; +- /** +- * @type object +- */ +- options: object; + get arguments(): { + bar: {}; + }; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/argumentsReferenceInMethod5_Js.js b/testdata/baselines/reference/submodule/compiler/argumentsReferenceInMethod5_Js.js new file mode 100644 index 0000000000..371c9a31ef --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/argumentsReferenceInMethod5_Js.js @@ -0,0 +1,37 @@ +//// [tests/cases/compiler/argumentsReferenceInMethod5_Js.ts] //// + +//// [a.js] +const bar = { + arguments: {} +} + +class A { + /** + * @param {object} [foo={}] + */ + m(foo = {}) { + /** + * @type object + */ + this.foo = foo; + + /** + * @type object + */ + this.bar = bar.arguments; + } +} + + + + +//// [a.d.ts] +declare const bar: { + arguments: {}; +}; +declare class A { + /** + * @param {object} [foo={}] + */ + m(foo?: object): void; +} diff --git a/testdata/baselines/reference/submodule/compiler/argumentsReferenceInMethod5_Js.js.diff b/testdata/baselines/reference/submodule/compiler/argumentsReferenceInMethod5_Js.js.diff new file mode 100644 index 0000000000..62c7574757 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/argumentsReferenceInMethod5_Js.js.diff @@ -0,0 +1,26 @@ +--- old.argumentsReferenceInMethod5_Js.js ++++ new.argumentsReferenceInMethod5_Js.js +@@= skipped -25, +25 lines =@@ + + + //// [a.d.ts] +-declare namespace bar { +- let arguments: {}; +-} ++declare const bar: { ++ arguments: {}; ++}; + declare class A { + /** + * @param {object} [foo={}] + */ + m(foo?: object): void; +- /** +- * @type object +- */ +- foo: object; +- /** +- * @type object +- */ +- bar: object; + } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/argumentsReferenceInMethod6_Js.js b/testdata/baselines/reference/submodule/compiler/argumentsReferenceInMethod6_Js.js new file mode 100644 index 0000000000..77df4e6229 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/argumentsReferenceInMethod6_Js.js @@ -0,0 +1,19 @@ +//// [tests/cases/compiler/argumentsReferenceInMethod6_Js.ts] //// + +//// [a.js] +class A { + m() { + /** + * @type object + */ + this.foo = arguments; + } +} + + + + +//// [a.d.ts] +declare class A { + m(): void; +} diff --git a/testdata/baselines/reference/submodule/compiler/argumentsReferenceInMethod6_Js.js.diff b/testdata/baselines/reference/submodule/compiler/argumentsReferenceInMethod6_Js.js.diff new file mode 100644 index 0000000000..08885367b8 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/argumentsReferenceInMethod6_Js.js.diff @@ -0,0 +1,13 @@ +--- old.argumentsReferenceInMethod6_Js.js ++++ new.argumentsReferenceInMethod6_Js.js +@@= skipped -14, +14 lines =@@ + + //// [a.d.ts] + declare class A { +- m(...args: any[]): void; +- /** +- * @type object +- */ +- foo: object; ++ m(): void; + } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/argumentsReferenceInMethod7_Js.js b/testdata/baselines/reference/submodule/compiler/argumentsReferenceInMethod7_Js.js new file mode 100644 index 0000000000..b9ade0dabd --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/argumentsReferenceInMethod7_Js.js @@ -0,0 +1,19 @@ +//// [tests/cases/compiler/argumentsReferenceInMethod7_Js.ts] //// + +//// [a.js] +class A { + m() { + /** + * @type Function + */ + this.callee = arguments.callee; + } +} + + + + +//// [a.d.ts] +declare class A { + m(): void; +} diff --git a/testdata/baselines/reference/submodule/compiler/argumentsReferenceInMethod7_Js.js.diff b/testdata/baselines/reference/submodule/compiler/argumentsReferenceInMethod7_Js.js.diff new file mode 100644 index 0000000000..229e94ae61 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/argumentsReferenceInMethod7_Js.js.diff @@ -0,0 +1,13 @@ +--- old.argumentsReferenceInMethod7_Js.js ++++ new.argumentsReferenceInMethod7_Js.js +@@= skipped -14, +14 lines =@@ + + //// [a.d.ts] + declare class A { +- m(...args: any[]): void; +- /** +- * @type Function +- */ +- callee: Function; ++ m(): void; + } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/argumentsReferenceInObjectLiteral_Js.js b/testdata/baselines/reference/submodule/compiler/argumentsReferenceInObjectLiteral_Js.js new file mode 100644 index 0000000000..d2b7a2997e --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/argumentsReferenceInObjectLiteral_Js.js @@ -0,0 +1,53 @@ +//// [tests/cases/compiler/argumentsReferenceInObjectLiteral_Js.ts] //// + +//// [a.js] +const a = () => { + return { + arguments: [], + }; +}; + +const b = () => { + const c = { + arguments: [], + } + return c; +}; + +const c = () => { + return { + arguments, + }; +} + +const d = () => { + const arguments = undefined; + return { + arguments, + }; +} + + +//// [a.js] +const a = () => { + return { + arguments: [], + }; +}; +const b = () => { + const c = { + arguments: [], + }; + return c; +}; +const c = () => { + return { + arguments, + }; +}; +const d = () => { + const arguments = undefined; + return { + arguments, + }; +}; diff --git a/testdata/baselines/reference/submodule/compiler/checkJsObjectLiteralHasCheckedKeyof.js b/testdata/baselines/reference/submodule/compiler/checkJsObjectLiteralHasCheckedKeyof.js new file mode 100644 index 0000000000..19cd46fb0d --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/checkJsObjectLiteralHasCheckedKeyof.js @@ -0,0 +1,27 @@ +//// [tests/cases/compiler/checkJsObjectLiteralHasCheckedKeyof.ts] //// + +//// [file.js] +// @ts-check +const obj = { + x: 1, + y: 2 +}; + +/** + * @type {keyof typeof obj} + */ +let selected = "x"; +selected = "z"; // should fail + + +//// [file.js] +// @ts-check +const obj = { + x: 1, + y: 2 +}; +/** + * @type {keyof typeof obj} + */ +let selected = "x"; +selected = "z"; // should fail diff --git a/testdata/baselines/reference/submodule/compiler/checkJsObjectLiteralIndexSignatures.js b/testdata/baselines/reference/submodule/compiler/checkJsObjectLiteralIndexSignatures.js new file mode 100644 index 0000000000..1cb5b280d0 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/checkJsObjectLiteralIndexSignatures.js @@ -0,0 +1,24 @@ +//// [tests/cases/compiler/checkJsObjectLiteralIndexSignatures.ts] //// + +//// [file.js] +// @ts-check + +let n = Math.random(); +let s = `${n}`; + +const numericIndex = { [n]: 1 }; +numericIndex[n].toFixed(); + +const stringIndex = { [s]: 1 }; +stringIndex[s].toFixed(); + + + +//// [file.js] +// @ts-check +let n = Math.random(); +let s = `${n}`; +const numericIndex = { [n]: 1 }; +numericIndex[n].toFixed(); +const stringIndex = { [s]: 1 }; +stringIndex[s].toFixed(); diff --git a/testdata/baselines/reference/submodule/compiler/checkJsdocTypeTagOnExportAssignment1.js b/testdata/baselines/reference/submodule/compiler/checkJsdocTypeTagOnExportAssignment1.js new file mode 100644 index 0000000000..0a413dc368 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/checkJsdocTypeTagOnExportAssignment1.js @@ -0,0 +1,35 @@ +//// [tests/cases/compiler/checkJsdocTypeTagOnExportAssignment1.ts] //// + +//// [checkJsdocTypeTagOnExportAssignment1.js] + +//// [a.js] +/** + * @typedef {Object} Foo + * @property {boolean} a + * @property {boolean} b + */ + +/** @type {Foo} */ +export default { c: false }; + +//// [b.js] +import a from "./a"; +a; + + +//// [checkJsdocTypeTagOnExportAssignment1.js] +//// [a.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +/** + * @typedef {Object} Foo + * @property {boolean} a + * @property {boolean} b + */ +/** @type {Foo} */ +exports.default = { c: false }; +//// [b.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const a_1 = require("./a"); +a_1.default; diff --git a/testdata/baselines/reference/submodule/compiler/checkJsdocTypeTagOnExportAssignment1.js.diff b/testdata/baselines/reference/submodule/compiler/checkJsdocTypeTagOnExportAssignment1.js.diff new file mode 100644 index 0000000000..cb001a666b --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/checkJsdocTypeTagOnExportAssignment1.js.diff @@ -0,0 +1,21 @@ +--- old.checkJsdocTypeTagOnExportAssignment1.js ++++ new.checkJsdocTypeTagOnExportAssignment1.js +@@= skipped -19, +19 lines =@@ + //// [checkJsdocTypeTagOnExportAssignment1.js] + //// [a.js] + "use strict"; ++Object.defineProperty(exports, "__esModule", { value: true }); + /** + * @typedef {Object} Foo + * @property {boolean} a + * @property {boolean} b + */ +-Object.defineProperty(exports, "__esModule", { value: true }); + /** @type {Foo} */ + exports.default = { c: false }; + //// [b.js] + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); +-var a_1 = require("./a"); ++const a_1 = require("./a"); + a_1.default; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/checkJsdocTypeTagOnExportAssignment2.js b/testdata/baselines/reference/submodule/compiler/checkJsdocTypeTagOnExportAssignment2.js new file mode 100644 index 0000000000..b7428a229c --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/checkJsdocTypeTagOnExportAssignment2.js @@ -0,0 +1,33 @@ +//// [tests/cases/compiler/checkJsdocTypeTagOnExportAssignment2.ts] //// + +//// [checkJsdocTypeTagOnExportAssignment2.js] + +//// [a.ts] +export interface Foo { + a: number; + b: number; +} + +//// [b.js] +/** @type {import("./a").Foo} */ +export default { c: false }; + +//// [c.js] +import b from "./b"; +b; + + +//// [checkJsdocTypeTagOnExportAssignment2.js] +//// [a.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +//// [b.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +/** @type {import("./a").Foo} */ +exports.default = { c: false }; +//// [c.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const b_1 = require("./b"); +b_1.default; diff --git a/testdata/baselines/reference/submodule/compiler/checkJsdocTypeTagOnExportAssignment2.js.diff b/testdata/baselines/reference/submodule/compiler/checkJsdocTypeTagOnExportAssignment2.js.diff new file mode 100644 index 0000000000..f4362a6e7c --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/checkJsdocTypeTagOnExportAssignment2.js.diff @@ -0,0 +1,9 @@ +--- old.checkJsdocTypeTagOnExportAssignment2.js ++++ new.checkJsdocTypeTagOnExportAssignment2.js +@@= skipped -28, +28 lines =@@ + //// [c.js] + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); +-var b_1 = require("./b"); ++const b_1 = require("./b"); + b_1.default; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/checkJsdocTypeTagOnExportAssignment3.js b/testdata/baselines/reference/submodule/compiler/checkJsdocTypeTagOnExportAssignment3.js new file mode 100644 index 0000000000..6bf97fedfe --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/checkJsdocTypeTagOnExportAssignment3.js @@ -0,0 +1,38 @@ +//// [tests/cases/compiler/checkJsdocTypeTagOnExportAssignment3.ts] //// + +//// [checkJsdocTypeTagOnExportAssignment3.js] + +//// [a.js] +/** + * @typedef {Object} Foo + * @property {boolean} a + * @property {boolean} b + */ + +const bar = { c: 1 }; + +/** @type {Foo} */ +export default bar; + +//// [b.js] +import a from "./a"; +a; + + +//// [checkJsdocTypeTagOnExportAssignment3.js] +//// [a.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +/** + * @typedef {Object} Foo + * @property {boolean} a + * @property {boolean} b + */ +const bar = { c: 1 }; +/** @type {Foo} */ +exports.default = bar; +//// [b.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const a_1 = require("./a"); +a_1.default; diff --git a/testdata/baselines/reference/submodule/compiler/checkJsdocTypeTagOnExportAssignment3.js.diff b/testdata/baselines/reference/submodule/compiler/checkJsdocTypeTagOnExportAssignment3.js.diff new file mode 100644 index 0000000000..fc0499aae9 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/checkJsdocTypeTagOnExportAssignment3.js.diff @@ -0,0 +1,22 @@ +--- old.checkJsdocTypeTagOnExportAssignment3.js ++++ new.checkJsdocTypeTagOnExportAssignment3.js +@@= skipped -21, +21 lines =@@ + //// [checkJsdocTypeTagOnExportAssignment3.js] + //// [a.js] + "use strict"; ++Object.defineProperty(exports, "__esModule", { value: true }); + /** + * @typedef {Object} Foo + * @property {boolean} a + * @property {boolean} b + */ +-Object.defineProperty(exports, "__esModule", { value: true }); + const bar = { c: 1 }; + /** @type {Foo} */ + exports.default = bar; + //// [b.js] + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); +-var a_1 = require("./a"); ++const a_1 = require("./a"); + a_1.default; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/checkJsdocTypeTagOnExportAssignment4.js b/testdata/baselines/reference/submodule/compiler/checkJsdocTypeTagOnExportAssignment4.js new file mode 100644 index 0000000000..a4067800e7 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/checkJsdocTypeTagOnExportAssignment4.js @@ -0,0 +1,23 @@ +//// [tests/cases/compiler/checkJsdocTypeTagOnExportAssignment4.ts] //// + +//// [checkJsdocTypeTagOnExportAssignment4.js] + +//// [a.js] +/** + * @typedef {number} Foo + */ + +/** @type {Foo} */ +export default ""; + + + +//// [checkJsdocTypeTagOnExportAssignment4.js] +//// [a.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +/** + * @typedef {number} Foo + */ +/** @type {Foo} */ +exports.default = ""; diff --git a/testdata/baselines/reference/submodule/compiler/checkJsdocTypeTagOnExportAssignment4.js.diff b/testdata/baselines/reference/submodule/compiler/checkJsdocTypeTagOnExportAssignment4.js.diff new file mode 100644 index 0000000000..aa2903966c --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/checkJsdocTypeTagOnExportAssignment4.js.diff @@ -0,0 +1,13 @@ +--- old.checkJsdocTypeTagOnExportAssignment4.js ++++ new.checkJsdocTypeTagOnExportAssignment4.js +@@= skipped -14, +14 lines =@@ + //// [checkJsdocTypeTagOnExportAssignment4.js] + //// [a.js] + "use strict"; ++Object.defineProperty(exports, "__esModule", { value: true }); + /** + * @typedef {number} Foo + */ +-Object.defineProperty(exports, "__esModule", { value: true }); + /** @type {Foo} */ + exports.default = ""; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/checkJsdocTypeTagOnExportAssignment5.js b/testdata/baselines/reference/submodule/compiler/checkJsdocTypeTagOnExportAssignment5.js new file mode 100644 index 0000000000..bd15e36ff4 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/checkJsdocTypeTagOnExportAssignment5.js @@ -0,0 +1,35 @@ +//// [tests/cases/compiler/checkJsdocTypeTagOnExportAssignment5.ts] //// + +//// [checkJsdocTypeTagOnExportAssignment5.js] + +//// [a.js] +/** + * @typedef {Object} Foo + * @property {number} a + * @property {number} b + */ + +/** @type {Foo} */ +export default { a: 1, b: 1 }; + +//// [b.js] +import a from "./a"; +a; + + +//// [checkJsdocTypeTagOnExportAssignment5.js] +//// [a.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +/** + * @typedef {Object} Foo + * @property {number} a + * @property {number} b + */ +/** @type {Foo} */ +exports.default = { a: 1, b: 1 }; +//// [b.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const a_1 = require("./a"); +a_1.default; diff --git a/testdata/baselines/reference/submodule/compiler/checkJsdocTypeTagOnExportAssignment5.js.diff b/testdata/baselines/reference/submodule/compiler/checkJsdocTypeTagOnExportAssignment5.js.diff new file mode 100644 index 0000000000..280223a9e8 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/checkJsdocTypeTagOnExportAssignment5.js.diff @@ -0,0 +1,21 @@ +--- old.checkJsdocTypeTagOnExportAssignment5.js ++++ new.checkJsdocTypeTagOnExportAssignment5.js +@@= skipped -19, +19 lines =@@ + //// [checkJsdocTypeTagOnExportAssignment5.js] + //// [a.js] + "use strict"; ++Object.defineProperty(exports, "__esModule", { value: true }); + /** + * @typedef {Object} Foo + * @property {number} a + * @property {number} b + */ +-Object.defineProperty(exports, "__esModule", { value: true }); + /** @type {Foo} */ + exports.default = { a: 1, b: 1 }; + //// [b.js] + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); +-var a_1 = require("./a"); ++const a_1 = require("./a"); + a_1.default; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/checkJsdocTypeTagOnExportAssignment6.js b/testdata/baselines/reference/submodule/compiler/checkJsdocTypeTagOnExportAssignment6.js new file mode 100644 index 0000000000..e2b514d833 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/checkJsdocTypeTagOnExportAssignment6.js @@ -0,0 +1,35 @@ +//// [tests/cases/compiler/checkJsdocTypeTagOnExportAssignment6.ts] //// + +//// [checkJsdocTypeTagOnExportAssignment6.js] + +//// [a.js] +/** + * @typedef {Object} Foo + * @property {number} a + * @property {number} b + */ + +/** @type {Foo} */ +export default { a: 1, b: 1, c: 1 }; + +//// [b.js] +import a from "./a"; +a; + + +//// [checkJsdocTypeTagOnExportAssignment6.js] +//// [a.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +/** + * @typedef {Object} Foo + * @property {number} a + * @property {number} b + */ +/** @type {Foo} */ +exports.default = { a: 1, b: 1, c: 1 }; +//// [b.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const a_1 = require("./a"); +a_1.default; diff --git a/testdata/baselines/reference/submodule/compiler/checkJsdocTypeTagOnExportAssignment6.js.diff b/testdata/baselines/reference/submodule/compiler/checkJsdocTypeTagOnExportAssignment6.js.diff new file mode 100644 index 0000000000..57ee0893a0 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/checkJsdocTypeTagOnExportAssignment6.js.diff @@ -0,0 +1,21 @@ +--- old.checkJsdocTypeTagOnExportAssignment6.js ++++ new.checkJsdocTypeTagOnExportAssignment6.js +@@= skipped -19, +19 lines =@@ + //// [checkJsdocTypeTagOnExportAssignment6.js] + //// [a.js] + "use strict"; ++Object.defineProperty(exports, "__esModule", { value: true }); + /** + * @typedef {Object} Foo + * @property {number} a + * @property {number} b + */ +-Object.defineProperty(exports, "__esModule", { value: true }); + /** @type {Foo} */ + exports.default = { a: 1, b: 1, c: 1 }; + //// [b.js] + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); +-var a_1 = require("./a"); ++const a_1 = require("./a"); + a_1.default; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/checkJsdocTypeTagOnExportAssignment7.js b/testdata/baselines/reference/submodule/compiler/checkJsdocTypeTagOnExportAssignment7.js new file mode 100644 index 0000000000..481aeef891 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/checkJsdocTypeTagOnExportAssignment7.js @@ -0,0 +1,38 @@ +//// [tests/cases/compiler/checkJsdocTypeTagOnExportAssignment7.ts] //// + +//// [checkJsdocTypeTagOnExportAssignment7.js] + +//// [a.js] +/** + * @typedef {Object} Foo + * @property {number} a + * @property {number} b + */ + +const abc = { a: 1, b: 1, c: 1 }; + +/** @type {Foo} */ +export default abc; + +//// [b.js] +import a from "./a"; +a; + + +//// [checkJsdocTypeTagOnExportAssignment7.js] +//// [a.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +/** + * @typedef {Object} Foo + * @property {number} a + * @property {number} b + */ +const abc = { a: 1, b: 1, c: 1 }; +/** @type {Foo} */ +exports.default = abc; +//// [b.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const a_1 = require("./a"); +a_1.default; diff --git a/testdata/baselines/reference/submodule/compiler/checkJsdocTypeTagOnExportAssignment7.js.diff b/testdata/baselines/reference/submodule/compiler/checkJsdocTypeTagOnExportAssignment7.js.diff new file mode 100644 index 0000000000..d61e82ff4d --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/checkJsdocTypeTagOnExportAssignment7.js.diff @@ -0,0 +1,22 @@ +--- old.checkJsdocTypeTagOnExportAssignment7.js ++++ new.checkJsdocTypeTagOnExportAssignment7.js +@@= skipped -21, +21 lines =@@ + //// [checkJsdocTypeTagOnExportAssignment7.js] + //// [a.js] + "use strict"; ++Object.defineProperty(exports, "__esModule", { value: true }); + /** + * @typedef {Object} Foo + * @property {number} a + * @property {number} b + */ +-Object.defineProperty(exports, "__esModule", { value: true }); + const abc = { a: 1, b: 1, c: 1 }; + /** @type {Foo} */ + exports.default = abc; + //// [b.js] + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); +-var a_1 = require("./a"); ++const a_1 = require("./a"); + a_1.default; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/checkJsdocTypeTagOnExportAssignment8.js b/testdata/baselines/reference/submodule/compiler/checkJsdocTypeTagOnExportAssignment8.js new file mode 100644 index 0000000000..a13517d674 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/checkJsdocTypeTagOnExportAssignment8.js @@ -0,0 +1,32 @@ +//// [tests/cases/compiler/checkJsdocTypeTagOnExportAssignment8.ts] //// + +//// [checkJsdocTypeTagOnExportAssignment8.js] + +//// [a.js] +/** + * @typedef Foo + * @property {string} a + * @property {'b'} b + */ + +/** @type {Foo} */ +export default { + a: 'a', + b: 'b' +} + + +//// [checkJsdocTypeTagOnExportAssignment8.js] +//// [a.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +/** + * @typedef Foo + * @property {string} a + * @property {'b'} b + */ +/** @type {Foo} */ +exports.default = { + a: 'a', + b: 'b' +}; diff --git a/testdata/baselines/reference/submodule/compiler/checkJsdocTypeTagOnExportAssignment8.js.diff b/testdata/baselines/reference/submodule/compiler/checkJsdocTypeTagOnExportAssignment8.js.diff new file mode 100644 index 0000000000..f6124fcb3a --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/checkJsdocTypeTagOnExportAssignment8.js.diff @@ -0,0 +1,16 @@ +--- old.checkJsdocTypeTagOnExportAssignment8.js ++++ new.checkJsdocTypeTagOnExportAssignment8.js +@@= skipped -18, +18 lines =@@ + //// [checkJsdocTypeTagOnExportAssignment8.js] + //// [a.js] + "use strict"; ++Object.defineProperty(exports, "__esModule", { value: true }); + /** + * @typedef Foo + * @property {string} a + * @property {'b'} b + */ +-Object.defineProperty(exports, "__esModule", { value: true }); + /** @type {Foo} */ + exports.default = { + a: 'a', \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/checkJsxNotSetError.js b/testdata/baselines/reference/submodule/compiler/checkJsxNotSetError.js new file mode 100644 index 0000000000..c5c1f56860 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/checkJsxNotSetError.js @@ -0,0 +1,22 @@ +//// [tests/cases/compiler/checkJsxNotSetError.ts] //// + +//// [foo.jsx] +const Foo = () => ( +
foo
+); +export default Foo; + +//// [bar.jsx] +import Foo from '/foo'; +const a = + +//// [foo.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const Foo = () => (
foo
); +exports.default = Foo; +//// [bar.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const foo_1 = require("/foo"); +const a = ; diff --git a/testdata/baselines/reference/submodule/compiler/checkJsxNotSetError.js.diff b/testdata/baselines/reference/submodule/compiler/checkJsxNotSetError.js.diff new file mode 100644 index 0000000000..553d172c82 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/checkJsxNotSetError.js.diff @@ -0,0 +1,9 @@ +--- old.checkJsxNotSetError.js ++++ new.checkJsxNotSetError.js +@@= skipped -17, +17 lines =@@ + //// [bar.js] + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); +-var foo_1 = require("/foo"); ++const foo_1 = require("/foo"); + const a = ; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/checkingObjectDefinePropertyOnFunctionNonexistentPropertyNoCrash1.js b/testdata/baselines/reference/submodule/compiler/checkingObjectDefinePropertyOnFunctionNonexistentPropertyNoCrash1.js new file mode 100644 index 0000000000..1821e57436 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/checkingObjectDefinePropertyOnFunctionNonexistentPropertyNoCrash1.js @@ -0,0 +1,29 @@ +//// [tests/cases/compiler/checkingObjectDefinePropertyOnFunctionNonexistentPropertyNoCrash1.ts] //// + +//// [index.js] +export function test(fn) { + const composed = function (...args) { } + + Object.defineProperty(composed, 'name', { + value: composed.fn + '_test' + }) + + return composed +} + + +//// [index.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.test = test; +function test(fn) { + const composed = function (...args) { }; + Object.defineProperty(composed, 'name', { + value: composed.fn + '_test' + }); + return composed; +} + + +//// [index.d.ts] +export declare function test(fn: any): (...args: any[]) => void; diff --git a/testdata/baselines/reference/submodule/compiler/checkingObjectDefinePropertyOnFunctionNonexistentPropertyNoCrash1.js.diff b/testdata/baselines/reference/submodule/compiler/checkingObjectDefinePropertyOnFunctionNonexistentPropertyNoCrash1.js.diff new file mode 100644 index 0000000000..5f1ffa453b --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/checkingObjectDefinePropertyOnFunctionNonexistentPropertyNoCrash1.js.diff @@ -0,0 +1,11 @@ +--- old.checkingObjectDefinePropertyOnFunctionNonexistentPropertyNoCrash1.js ++++ new.checkingObjectDefinePropertyOnFunctionNonexistentPropertyNoCrash1.js +@@= skipped -25, +25 lines =@@ + + + //// [index.d.ts] +-export function test(fn: any): { +- (...args: any[]): void; +- readonly name: string; +-}; ++export declare function test(fn: any): (...args: any[]) => void; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/commonJsExportTypeDeclarationError.js b/testdata/baselines/reference/submodule/compiler/commonJsExportTypeDeclarationError.js new file mode 100644 index 0000000000..5679730a15 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/commonJsExportTypeDeclarationError.js @@ -0,0 +1,36 @@ +//// [tests/cases/compiler/commonJsExportTypeDeclarationError.ts] //// + +//// [test.js] +module.exports = { + message: "" +} + +//// [types1.ts] +import test from "./test"; +export type test + +//// [types2.ts] +import test from "./test"; +export type test = + +//// [types3.ts] +import test from "./test"; +export type test = test; + + +//// [test.js] +export = { + message: "" +}; +module.exports = { + message: "" +}; +//// [types1.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +//// [types2.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +//// [types3.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/testdata/baselines/reference/submodule/compiler/commonJsExportTypeDeclarationError.js.diff b/testdata/baselines/reference/submodule/compiler/commonJsExportTypeDeclarationError.js.diff new file mode 100644 index 0000000000..699c658648 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/commonJsExportTypeDeclarationError.js.diff @@ -0,0 +1,12 @@ +--- old.commonJsExportTypeDeclarationError.js ++++ new.commonJsExportTypeDeclarationError.js +@@= skipped -18, +18 lines =@@ + + + //// [test.js] ++export = { ++ message: "" ++}; + module.exports = { + message: "" + }; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/commonJsIsolatedModules.js b/testdata/baselines/reference/submodule/compiler/commonJsIsolatedModules.js new file mode 100644 index 0000000000..b716571608 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/commonJsIsolatedModules.js @@ -0,0 +1,11 @@ +//// [tests/cases/compiler/commonJsIsolatedModules.ts] //// + +//// [index.js] +module.exports = {} +var x = 1 + + +//// [index.js] +export = {}; +module.exports = {}; +var x = 1; diff --git a/testdata/baselines/reference/submodule/compiler/commonJsIsolatedModules.js.diff b/testdata/baselines/reference/submodule/compiler/commonJsIsolatedModules.js.diff new file mode 100644 index 0000000000..b1da817386 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/commonJsIsolatedModules.js.diff @@ -0,0 +1,9 @@ +--- old.commonJsIsolatedModules.js ++++ new.commonJsIsolatedModules.js +@@= skipped -5, +5 lines =@@ + + + //// [index.js] ++export = {}; + module.exports = {}; + var x = 1; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/constructorPropertyJs.js b/testdata/baselines/reference/submodule/compiler/constructorPropertyJs.js new file mode 100644 index 0000000000..cce9cddb8d --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/constructorPropertyJs.js @@ -0,0 +1,22 @@ +//// [tests/cases/compiler/constructorPropertyJs.ts] //// + +//// [a.js] +class C { + /** + * @param {any} a + */ + foo(a) { + this.constructor = a; + } +} + + + + +//// [a.d.ts] +declare class C { + /** + * @param {any} a + */ + foo(a: any): void; +} diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitCastReusesTypeNode4(strictnullchecks=false).js b/testdata/baselines/reference/submodule/compiler/declarationEmitCastReusesTypeNode4(strictnullchecks=false).js new file mode 100644 index 0000000000..b8b0aba5fd --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/declarationEmitCastReusesTypeNode4(strictnullchecks=false).js @@ -0,0 +1,100 @@ +//// [tests/cases/compiler/declarationEmitCastReusesTypeNode4.ts] //// + +//// [input.js] +/** + * @typedef {{ } & { name?: string }} P + */ + +const something = /** @type {*} */(null); + +export let vLet = /** @type {P} */(something); +export const vConst = /** @type {P} */(something); + +export function fn(p = /** @type {P} */(something)) {} + +/** @param {number} req */ +export function fnWithRequiredDefaultParam(p = /** @type {P} */(something), req) {} + +export class C { + field = /** @type {P} */(something); + /** @optional */ optField = /** @type {P} */(something); // not a thing + /** @readonly */ roFiled = /** @type {P} */(something); + method(p = /** @type {P} */(something)) {} + /** @param {number} req */ + methodWithRequiredDefault(p = /** @type {P} */(something), req) {} + + constructor(ctorField = /** @type {P} */(something)) {} + + get x() { return /** @type {P} */(something) } + set x(v) { } +} + +export default /** @type {P} */(something); + +// allows `undefined` on the input side, thanks to the initializer +/** + * + * @param {P} x + * @param {number} b + */ +export function fnWithPartialAnnotationOnDefaultparam(x = /** @type {P} */(something), b) {} + + + +//// [input.d.ts] +export type P = {} & { + name?: string; +}; +export declare let vLet: { + name?: string; +}; +export declare const vConst: { + name?: string; +}; +export declare function fn(p?: { + name?: string; +}): void; +/** @param {number} req */ +export declare function fnWithRequiredDefaultParam(p: { + name?: string; +}, req: number): void; +export declare class C { + field: { + name?: string; + }; + /** @optional */ optField: { + name?: string; + }; // not a thing + /** @readonly */ readonly roFiled: { + name?: string; + }; + method(p?: { + name?: string; + }): void; + /** @param {number} req */ + methodWithRequiredDefault(p: { + name?: string; + }, req: number): void; + constructor(ctorField?: { + name?: string; + }); + get x(): { + name?: string; + }; + set x(v: { + name?: string; + }); +} +declare const _default: { + name?: string; +}; +export default /** @type {P} */ _default; +// allows `undefined` on the input side, thanks to the initializer +/** + * + * @param {P} x + * @param {number} b + */ +export declare function fnWithPartialAnnotationOnDefaultparam(x: { + name?: string; +}, b: number): void; diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitCastReusesTypeNode4(strictnullchecks=false).js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitCastReusesTypeNode4(strictnullchecks=false).js.diff new file mode 100644 index 0000000000..f517d0bdc5 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/declarationEmitCastReusesTypeNode4(strictnullchecks=false).js.diff @@ -0,0 +1,82 @@ +--- old.declarationEmitCastReusesTypeNode4(strictnullchecks=false).js ++++ new.declarationEmitCastReusesTypeNode4(strictnullchecks=false).js +@@= skipped -41, +41 lines =@@ + + + //// [input.d.ts] +-export function fn(p?: P): void; ++export type P = {} & { ++ name?: string; ++}; ++export declare let vLet: { ++ name?: string; ++}; ++export declare const vConst: { ++ name?: string; ++}; ++export declare function fn(p?: { ++ name?: string; ++}): void; + /** @param {number} req */ +-export function fnWithRequiredDefaultParam(p: P, req: number): void; ++export declare function fnWithRequiredDefaultParam(p: { ++ name?: string; ++}, req: number): void; ++export declare class C { ++ field: { ++ name?: string; ++ }; ++ /** @optional */ optField: { ++ name?: string; ++ }; // not a thing ++ /** @readonly */ readonly roFiled: { ++ name?: string; ++ }; ++ method(p?: { ++ name?: string; ++ }): void; ++ /** @param {number} req */ ++ methodWithRequiredDefault(p: { ++ name?: string; ++ }, req: number): void; ++ constructor(ctorField?: { ++ name?: string; ++ }); ++ get x(): { ++ name?: string; ++ }; ++ set x(v: { ++ name?: string; ++ }); ++} ++declare const _default: { ++ name?: string; ++}; ++export default /** @type {P} */ _default; ++// allows `undefined` on the input side, thanks to the initializer + /** + * + * @param {P} x + * @param {number} b + */ +-export function fnWithPartialAnnotationOnDefaultparam(x: P, b: number): void; +-export let vLet: P; +-export const vConst: P; +-export class C { +- constructor(ctorField?: P); +- field: P; +- /** @optional */ optField: P; +- /** @readonly */ readonly roFiled: P; +- method(p?: P): void; +- /** @param {number} req */ +- methodWithRequiredDefault(p: P, req: number): void; +- set x(v: P); +- get x(): P; +-} +-declare const _default: P; +-export default _default; +-export type P = {} & { ++export declare function fnWithPartialAnnotationOnDefaultparam(x: { + name?: string; +-}; ++}, b: number): void; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitCastReusesTypeNode4(strictnullchecks=true).js b/testdata/baselines/reference/submodule/compiler/declarationEmitCastReusesTypeNode4(strictnullchecks=true).js new file mode 100644 index 0000000000..c182396ff6 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/declarationEmitCastReusesTypeNode4(strictnullchecks=true).js @@ -0,0 +1,98 @@ +//// [tests/cases/compiler/declarationEmitCastReusesTypeNode4.ts] //// + +//// [input.js] +/** + * @typedef {{ } & { name?: string }} P + */ + +const something = /** @type {*} */(null); + +export let vLet = /** @type {P} */(something); +export const vConst = /** @type {P} */(something); + +export function fn(p = /** @type {P} */(something)) {} + +/** @param {number} req */ +export function fnWithRequiredDefaultParam(p = /** @type {P} */(something), req) {} + +export class C { + field = /** @type {P} */(something); + /** @optional */ optField = /** @type {P} */(something); // not a thing + /** @readonly */ roFiled = /** @type {P} */(something); + method(p = /** @type {P} */(something)) {} + /** @param {number} req */ + methodWithRequiredDefault(p = /** @type {P} */(something), req) {} + + constructor(ctorField = /** @type {P} */(something)) {} + + get x() { return /** @type {P} */(something) } + set x(v) { } +} + +export default /** @type {P} */(something); + +// allows `undefined` on the input side, thanks to the initializer +/** + * + * @param {P} x + * @param {number} b + */ +export function fnWithPartialAnnotationOnDefaultparam(x = /** @type {P} */(something), b) {} + + + +//// [input.d.ts] +export type P = {} & { + name?: string; +}; +export declare let vLet: { + name?: string | undefined; +}; +export declare const vConst: { + name?: string | undefined; +}; +export declare function fn(p?: { + name?: string | undefined; +}): void; +/** @param {number} req */ +export declare function fnWithRequiredDefaultParam(p: { + name?: string | undefined; +}, req: number): void; +export declare class C { + field: { + name?: string | undefined; + }; + /** @optional */ optField: { + name?: string | undefined; + }; // not a thing + /** @readonly */ readonly roFiled: { + name?: string | undefined; + }; + method(p?: { + name?: string | undefined; + }): void; + /** @param {number} req */ + methodWithRequiredDefault(p: { + name?: string | undefined; + }, req: number): void; + constructor(ctorField?: { + name?: string | undefined; + }); + get x(): { + name?: string | undefined; + }; + set x(v: { + name?: string | undefined; + }); +} +declare const _default: { + name?: string | undefined; +}; +export default /** @type {P} */ _default; +// allows `undefined` on the input side, thanks to the initializer +/** + * + * @param {P} x + * @param {number} b + */ +export declare function fnWithPartialAnnotationOnDefaultparam(x: P, b: number): void; diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitCastReusesTypeNode4(strictnullchecks=true).js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitCastReusesTypeNode4(strictnullchecks=true).js.diff new file mode 100644 index 0000000000..fd2e062b86 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/declarationEmitCastReusesTypeNode4(strictnullchecks=true).js.diff @@ -0,0 +1,81 @@ +--- old.declarationEmitCastReusesTypeNode4(strictnullchecks=true).js ++++ new.declarationEmitCastReusesTypeNode4(strictnullchecks=true).js +@@= skipped -41, +41 lines =@@ + + + //// [input.d.ts] +-export function fn(p?: P): void; ++export type P = {} & { ++ name?: string; ++}; ++export declare let vLet: { ++ name?: string | undefined; ++}; ++export declare const vConst: { ++ name?: string | undefined; ++}; ++export declare function fn(p?: { ++ name?: string | undefined; ++}): void; + /** @param {number} req */ +-export function fnWithRequiredDefaultParam(p: P | undefined, req: number): void; ++export declare function fnWithRequiredDefaultParam(p: { ++ name?: string | undefined; ++}, req: number): void; ++export declare class C { ++ field: { ++ name?: string | undefined; ++ }; ++ /** @optional */ optField: { ++ name?: string | undefined; ++ }; // not a thing ++ /** @readonly */ readonly roFiled: { ++ name?: string | undefined; ++ }; ++ method(p?: { ++ name?: string | undefined; ++ }): void; ++ /** @param {number} req */ ++ methodWithRequiredDefault(p: { ++ name?: string | undefined; ++ }, req: number): void; ++ constructor(ctorField?: { ++ name?: string | undefined; ++ }); ++ get x(): { ++ name?: string | undefined; ++ }; ++ set x(v: { ++ name?: string | undefined; ++ }); ++} ++declare const _default: { ++ name?: string | undefined; ++}; ++export default /** @type {P} */ _default; ++// allows `undefined` on the input side, thanks to the initializer + /** + * + * @param {P} x + * @param {number} b + */ +-export function fnWithPartialAnnotationOnDefaultparam(x: P | undefined, b: number): void; +-export let vLet: P; +-export const vConst: P; +-export class C { +- constructor(ctorField?: P); +- field: P; +- /** @optional */ optField: P; +- /** @readonly */ readonly roFiled: P; +- method(p?: P): void; +- /** @param {number} req */ +- methodWithRequiredDefault(p: P | undefined, req: number): void; +- set x(v: P); +- get x(): P; +-} +-declare const _default: P; +-export default _default; +-export type P = {} & { +- name?: string; +-}; ++export declare function fnWithPartialAnnotationOnDefaultparam(x: P, b: number): void; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitClassAccessorsJs1.js b/testdata/baselines/reference/submodule/compiler/declarationEmitClassAccessorsJs1.js new file mode 100644 index 0000000000..4d7dddc9e5 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/declarationEmitClassAccessorsJs1.js @@ -0,0 +1,35 @@ +//// [tests/cases/compiler/declarationEmitClassAccessorsJs1.ts] //// + +//// [index.js] +// https://github.com/microsoft/TypeScript/issues/58167 + +export class VFile { + /** + * @returns {string} + */ + get path() { + return '' + } + + /** + * @param {URL | string} path + */ + set path(path) { + } +} + + + + +//// [index.d.ts] +// https://github.com/microsoft/TypeScript/issues/58167 +export declare class VFile { + /** + * @returns {string} + */ + get path(): string; + /** + * @param {URL | string} path + */ + set path(path: URL | string); +} diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitClassAccessorsJs1.js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitClassAccessorsJs1.js.diff new file mode 100644 index 0000000000..cdaba99bfd --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/declarationEmitClassAccessorsJs1.js.diff @@ -0,0 +1,22 @@ +--- old.declarationEmitClassAccessorsJs1.js ++++ new.declarationEmitClassAccessorsJs1.js +@@= skipped -21, +21 lines =@@ + + + //// [index.d.ts] +-export class VFile { +- /** +- * @param {URL | string} path +- */ +- set path(path: URL | string); ++// https://github.com/microsoft/TypeScript/issues/58167 ++export declare class VFile { + /** + * @returns {string} + */ + get path(): string; ++ /** ++ * @param {URL | string} path ++ */ ++ set path(path: URL | string); + } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitClassSetAccessorParamNameInJs.js b/testdata/baselines/reference/submodule/compiler/declarationEmitClassSetAccessorParamNameInJs.js new file mode 100644 index 0000000000..7ee4b84e7e --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/declarationEmitClassSetAccessorParamNameInJs.js @@ -0,0 +1,27 @@ +//// [tests/cases/compiler/declarationEmitClassSetAccessorParamNameInJs.ts] //// + +//// [foo.js] +// https://github.com/microsoft/TypeScript/issues/55391 + +export class Foo { + /** + * Bar. + * + * @param {string} baz Baz. + */ + set bar(baz) {} +} + + + + +//// [foo.d.ts] +// https://github.com/microsoft/TypeScript/issues/55391 +export declare class Foo { + /** + * Bar. + * + * @param {string} baz Baz. + */ + set bar(baz: string); +} diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitClassSetAccessorParamNameInJs.js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitClassSetAccessorParamNameInJs.js.diff new file mode 100644 index 0000000000..1fadaf7c83 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/declarationEmitClassSetAccessorParamNameInJs.js.diff @@ -0,0 +1,12 @@ +--- old.declarationEmitClassSetAccessorParamNameInJs.js ++++ new.declarationEmitClassSetAccessorParamNameInJs.js +@@= skipped -15, +15 lines =@@ + + + //// [foo.d.ts] +-export class Foo { ++// https://github.com/microsoft/TypeScript/issues/55391 ++export declare class Foo { + /** + * Bar. + * \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitClassSetAccessorParamNameInJs2.js b/testdata/baselines/reference/submodule/compiler/declarationEmitClassSetAccessorParamNameInJs2.js new file mode 100644 index 0000000000..1ffac68391 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/declarationEmitClassSetAccessorParamNameInJs2.js @@ -0,0 +1,24 @@ +//// [tests/cases/compiler/declarationEmitClassSetAccessorParamNameInJs2.ts] //// + +//// [foo.js] +export class Foo { + /** + * Bar. + * + * @param {{ prop: string }} baz Baz. + */ + set bar({}) {} +} + + + + +//// [foo.d.ts] +export declare class Foo { + /** + * Bar. + * + * @param {{ prop: string }} baz Baz. + */ + set bar({}: {}); +} diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitClassSetAccessorParamNameInJs2.js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitClassSetAccessorParamNameInJs2.js.diff new file mode 100644 index 0000000000..11204c7a73 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/declarationEmitClassSetAccessorParamNameInJs2.js.diff @@ -0,0 +1,18 @@ +--- old.declarationEmitClassSetAccessorParamNameInJs2.js ++++ new.declarationEmitClassSetAccessorParamNameInJs2.js +@@= skipped -13, +13 lines =@@ + + + //// [foo.d.ts] +-export class Foo { ++export declare class Foo { + /** + * Bar. + * + * @param {{ prop: string }} baz Baz. + */ +- set bar({}: { +- prop: string; +- }); ++ set bar({}: {}); + } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitClassSetAccessorParamNameInJs3.js b/testdata/baselines/reference/submodule/compiler/declarationEmitClassSetAccessorParamNameInJs3.js new file mode 100644 index 0000000000..cf8fc54afd --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/declarationEmitClassSetAccessorParamNameInJs3.js @@ -0,0 +1,26 @@ +//// [tests/cases/compiler/declarationEmitClassSetAccessorParamNameInJs3.ts] //// + +//// [foo.js] +export class Foo { + /** + * Bar. + * + * @param {{ prop: string | undefined }} baz Baz. + */ + set bar({ prop = 'foo' }) {} +} + + + + +//// [foo.d.ts] +export declare class Foo { + /** + * Bar. + * + * @param {{ prop: string | undefined }} baz Baz. + */ + set bar({ prop }: { + prop?: string; + }); +} diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitClassSetAccessorParamNameInJs3.js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitClassSetAccessorParamNameInJs3.js.diff new file mode 100644 index 0000000000..fb69b41ff0 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/declarationEmitClassSetAccessorParamNameInJs3.js.diff @@ -0,0 +1,18 @@ +--- old.declarationEmitClassSetAccessorParamNameInJs3.js ++++ new.declarationEmitClassSetAccessorParamNameInJs3.js +@@= skipped -13, +13 lines =@@ + + + //// [foo.d.ts] +-export class Foo { ++export declare class Foo { + /** + * Bar. + * + * @param {{ prop: string | undefined }} baz Baz. + */ + set bar({ prop }: { +- prop: string | undefined; ++ prop?: string; + }); + } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitExpressionInExtends6.js b/testdata/baselines/reference/submodule/compiler/declarationEmitExpressionInExtends6.js new file mode 100644 index 0000000000..184a048834 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/declarationEmitExpressionInExtends6.js @@ -0,0 +1,58 @@ +//// [tests/cases/compiler/declarationEmitExpressionInExtends6.ts] //// + +//// [index.d.ts] +declare const require: any; + +//// [a.ts] +export class Foo {} + +//// [b.ts] +import * as A from "./a"; +const { Foo } = A; +export default class extends Foo {} + + +//// [a.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Foo = void 0; +class Foo { +} +exports.Foo = Foo; +//// [b.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const A = require("./a"); +const { Foo } = A; +class default_1 extends Foo { +} +exports.default = default_1; + + +//// [a.d.ts] +export declare class Foo { +} +//// [b.d.ts] +export default class extends Foo { +} + + +//// [DtsFileErrors] + + +/b.d.ts(1,30): error TS2304: Cannot find name 'Foo'. + + +==== /node_modules/@types/node/index.d.ts (0 errors) ==== + declare const require: any; + +==== /a.d.ts (0 errors) ==== + export declare class Foo { + } + +==== /b.d.ts (1 errors) ==== + export default class extends Foo { + ~~~ +!!! error TS2304: Cannot find name 'Foo'. + } + \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitExpressionInExtends6.js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitExpressionInExtends6.js.diff new file mode 100644 index 0000000000..709c3a16d3 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/declarationEmitExpressionInExtends6.js.diff @@ -0,0 +1,41 @@ +--- old.declarationEmitExpressionInExtends6.js ++++ new.declarationEmitExpressionInExtends6.js +@@= skipped -21, +21 lines =@@ + //// [b.js] + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); +-var A = require("./a"); ++const A = require("./a"); + const { Foo } = A; + class default_1 extends Foo { + } +@@= skipped -11, +11 lines =@@ + export declare class Foo { + } + //// [b.d.ts] +-import * as A from "./a"; +-declare const Foo: typeof A.Foo; + export default class extends Foo { + } +-export {}; ++ ++ ++//// [DtsFileErrors] ++ ++ ++/b.d.ts(1,30): error TS2304: Cannot find name 'Foo'. ++ ++ ++==== /node_modules/@types/node/index.d.ts (0 errors) ==== ++ declare const require: any; ++ ++==== /a.d.ts (0 errors) ==== ++ export declare class Foo { ++ } ++ ++==== /b.d.ts (1 errors) ==== ++ export default class extends Foo { ++ ~~~ ++!!! error TS2304: Cannot find name 'Foo'. ++ } ++ \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitInvalidReferenceAllowJs.js b/testdata/baselines/reference/submodule/compiler/declarationEmitInvalidReferenceAllowJs.js new file mode 100644 index 0000000000..846b1decaf --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/declarationEmitInvalidReferenceAllowJs.js @@ -0,0 +1,14 @@ +//// [tests/cases/compiler/declarationEmitInvalidReferenceAllowJs.ts] //// + +//// [declarationEmitInvalidReferenceAllowJs.ts] +/// +var x = 0; + + +//// [declarationEmitInvalidReferenceAllowJs.js] +/// +var x = 0; + + +//// [declarationEmitInvalidReferenceAllowJs.d.ts] +declare var x: number; diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitJsReExportDefault.js b/testdata/baselines/reference/submodule/compiler/declarationEmitJsReExportDefault.js new file mode 100644 index 0000000000..7b284cf5f8 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/declarationEmitJsReExportDefault.js @@ -0,0 +1,15 @@ +//// [tests/cases/compiler/declarationEmitJsReExportDefault.ts] //// + +//// [package.json] +{"name": "a", "version": "0.0.0"} +//// [index.d.ts] +export const a = 123; + +//// [index.mjs] +export {default as mod} from 'a'; + + + + +//// [index.d.mts] +export { default as mod } from 'a'; diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitJsReExportDefault.js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitJsReExportDefault.js.diff new file mode 100644 index 0000000000..a0a06bc96a --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/declarationEmitJsReExportDefault.js.diff @@ -0,0 +1,8 @@ +--- old.declarationEmitJsReExportDefault.js ++++ new.declarationEmitJsReExportDefault.js +@@= skipped -11, +11 lines =@@ + + + //// [index.d.mts] +-export { default as mod } from "a"; ++export { default as mod } from 'a'; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitLateBoundJSAssignments.js b/testdata/baselines/reference/submodule/compiler/declarationEmitLateBoundJSAssignments.js new file mode 100644 index 0000000000..b3e5b3073c --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/declarationEmitLateBoundJSAssignments.js @@ -0,0 +1,28 @@ +//// [tests/cases/compiler/declarationEmitLateBoundJSAssignments.ts] //// + +//// [file.js] +export function foo() {} +foo.bar = 12; +const _private = Symbol(); +foo[_private] = "ok"; +const strMem = "strMemName"; +foo[strMem] = "ok"; +const dashStrMem = "dashed-str-mem"; +foo[dashStrMem] = "ok"; +const numMem = 42; +foo[numMem] = "ok"; + +/** @type {string} */ +const x = foo[_private]; +/** @type {string} */ +const y = foo[strMem]; +/** @type {string} */ +const z = foo[numMem]; +/** @type {string} */ +const a = foo[dashStrMem]; + + + + +//// [file.d.ts] +export declare function foo(): void; diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitLateBoundJSAssignments.js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitLateBoundJSAssignments.js.diff new file mode 100644 index 0000000000..62c383b58d --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/declarationEmitLateBoundJSAssignments.js.diff @@ -0,0 +1,12 @@ +--- old.declarationEmitLateBoundJSAssignments.js ++++ new.declarationEmitLateBoundJSAssignments.js +@@= skipped -24, +24 lines =@@ + + + //// [file.d.ts] +-export function foo(): void; +-export namespace foo { +- let bar: number; +- let strMemName: string; +-} ++export declare function foo(): void; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitMethodDeclaration.js b/testdata/baselines/reference/submodule/compiler/declarationEmitMethodDeclaration.js new file mode 100644 index 0000000000..806f2dbe29 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/declarationEmitMethodDeclaration.js @@ -0,0 +1,19 @@ +//// [tests/cases/compiler/declarationEmitMethodDeclaration.ts] //// + +//// [a.js] +export default { + methods: { + foo() { } + } +} + + + + +//// [a.d.ts] +declare const _default: { + methods: { + foo(): void; + }; +}; +export default _default; diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitMethodDeclaration.js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitMethodDeclaration.js.diff new file mode 100644 index 0000000000..ce16b9b911 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/declarationEmitMethodDeclaration.js.diff @@ -0,0 +1,17 @@ +--- old.declarationEmitMethodDeclaration.js ++++ new.declarationEmitMethodDeclaration.js +@@= skipped -10, +10 lines =@@ + + + //// [a.d.ts] +-declare namespace _default { +- namespace methods { +- function foo(): void; +- } +-} ++declare const _default: { ++ methods: { ++ foo(): void; ++ }; ++}; + export default _default; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitObjectLiteralAccessorsJs1.js b/testdata/baselines/reference/submodule/compiler/declarationEmitObjectLiteralAccessorsJs1.js new file mode 100644 index 0000000000..72b37a745b --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/declarationEmitObjectLiteralAccessorsJs1.js @@ -0,0 +1,92 @@ +//// [tests/cases/compiler/declarationEmitObjectLiteralAccessorsJs1.ts] //// + +//// [index.js] +// same type accessors +export const obj1 = { + /** + * my awesome getter (first in source order) + * @returns {string} + */ + get x() { + return ""; + }, + /** + * my awesome setter (second in source order) + * @param {string} a + */ + set x(a) {}, +}; + +// divergent accessors +export const obj2 = { + /** + * my awesome getter + * @returns {string} + */ + get x() { + return ""; + }, + /** + * my awesome setter + * @param {number} a + */ + set x(a) {}, +}; + +export const obj3 = { + /** + * my awesome getter + * @returns {string} + */ + get x() { + return ""; + }, +}; + +export const obj4 = { + /** + * my awesome setter + * @param {number} a + */ + set x(a) {}, +}; + + + + +//// [index.d.ts] +// same type accessors +export declare const obj1: { + /** + * my awesome getter (first in source order) + * @returns {string} + */ + x: string; +}; +// divergent accessors +export declare const obj2: { + /** + * my awesome getter + * @returns {string} + */ + get x(): string; + /** + * my awesome setter + * @param {number} a + */ + set x(a: number); +}; +export declare const obj3: { + /** + * my awesome getter + * @returns {string} + */ + readonly x: string; +}; +export declare const obj4: { + /** + * my awesome setter + * @param {number} a + */ + x: number; +}; diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitObjectLiteralAccessorsJs1.js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitObjectLiteralAccessorsJs1.js.diff new file mode 100644 index 0000000000..da768af639 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/declarationEmitObjectLiteralAccessorsJs1.js.diff @@ -0,0 +1,49 @@ +--- old.declarationEmitObjectLiteralAccessorsJs1.js ++++ new.declarationEmitObjectLiteralAccessorsJs1.js +@@= skipped -54, +54 lines =@@ + + + //// [index.d.ts] +-export namespace obj1 { +- let x: string; +-} +-export const obj2: { ++// same type accessors ++export declare const obj1: { ++ /** ++ * my awesome getter (first in source order) ++ * @returns {string} ++ */ ++ x: string; ++}; ++// divergent accessors ++export declare const obj2: { + /** + * my awesome getter + * @returns {string} +@@= skipped -15, +21 lines =@@ + */ + set x(a: number); + }; +-export namespace obj3 { +- const x_1: string; +- export { x_1 as x }; +-} +-export namespace obj4 { +- let x_2: number; +- export { x_2 as x }; +-} ++export declare const obj3: { ++ /** ++ * my awesome getter ++ * @returns {string} ++ */ ++ readonly x: string; ++}; ++export declare const obj4: { ++ /** ++ * my awesome setter ++ * @param {number} a ++ */ ++ x: number; ++}; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/defaultPropsEmptyCurlyBecomesAnyForJs.js b/testdata/baselines/reference/submodule/compiler/defaultPropsEmptyCurlyBecomesAnyForJs.js new file mode 100644 index 0000000000..30b3c81da4 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/defaultPropsEmptyCurlyBecomesAnyForJs.js @@ -0,0 +1,51 @@ +//// [tests/cases/compiler/defaultPropsEmptyCurlyBecomesAnyForJs.ts] //// + +//// [library.d.ts] +export class Foo { + props: T; + state: U; + constructor(props: T, state: U); +} + +//// [component.js] +import { Foo } from "./library"; +export class MyFoo extends Foo { + member; +} + +//// [typed_component.ts] +import { MyFoo } from "./component"; +export class TypedFoo extends MyFoo { + constructor() { + super({x: "string", y: 42}, { value: undefined }); + this.props.x; + this.props.y; + this.state.value; + this.member; + } +} + +//// [component.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.MyFoo = void 0; +const library_1 = require("./library"); +class MyFoo extends library_1.Foo { + member; +} +exports.MyFoo = MyFoo; +//// [typed_component.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.TypedFoo = void 0; +const component_1 = require("./component"); +class TypedFoo extends component_1.MyFoo { + constructor() { + super({ x: "string", y: 42 }, { value: undefined }); + this.props.x; + this.props.y; + this.state.value; + this.member; + } +} +exports.TypedFoo = TypedFoo; diff --git a/testdata/baselines/reference/submodule/compiler/defaultPropsEmptyCurlyBecomesAnyForJs.js.diff b/testdata/baselines/reference/submodule/compiler/defaultPropsEmptyCurlyBecomesAnyForJs.js.diff new file mode 100644 index 0000000000..96490a6aa9 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/defaultPropsEmptyCurlyBecomesAnyForJs.js.diff @@ -0,0 +1,21 @@ +--- old.defaultPropsEmptyCurlyBecomesAnyForJs.js ++++ new.defaultPropsEmptyCurlyBecomesAnyForJs.js +@@= skipped -28, +28 lines =@@ + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.MyFoo = void 0; +-var library_1 = require("./library"); ++const library_1 = require("./library"); + class MyFoo extends library_1.Foo { ++ member; + } + exports.MyFoo = MyFoo; + //// [typed_component.js] + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.TypedFoo = void 0; +-var component_1 = require("./component"); ++const component_1 = require("./component"); + class TypedFoo extends component_1.MyFoo { + constructor() { + super({ x: "string", y: 42 }, { value: undefined }); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/elidedJSImport1.js b/testdata/baselines/reference/submodule/compiler/elidedJSImport1.js new file mode 100644 index 0000000000..33b1a1f9a3 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/elidedJSImport1.js @@ -0,0 +1,25 @@ +//// [tests/cases/compiler/elidedJSImport1.ts] //// + +//// [caller.js] +import * as fs from 'fs'; +import TruffleContract from '@truffle/contract'; // Runtime err: this import is elided in transform +console.log(fs); +console.log('TruffleContract is ', typeof TruffleContract, TruffleContract); // `TruffleContract` is considered 'unused' + + +//// [index.d.ts] +declare module "@truffle/contract" { + interface ContractObject { + foo: number; + } + namespace TruffleContract { + export type Contract = ContractObject; + } + export default TruffleContract; +} + +//// [caller.js] +import * as fs from 'fs'; +import TruffleContract from '@truffle/contract'; // Runtime err: this import is elided in transform +console.log(fs); +console.log('TruffleContract is ', typeof TruffleContract, TruffleContract); // `TruffleContract` is considered 'unused' diff --git a/testdata/baselines/reference/submodule/compiler/elidedJSImport2(module=commonjs).js b/testdata/baselines/reference/submodule/compiler/elidedJSImport2(module=commonjs).js new file mode 100644 index 0000000000..13779bbdd1 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/elidedJSImport2(module=commonjs).js @@ -0,0 +1,87 @@ +//// [tests/cases/compiler/elidedJSImport2.ts] //// + +//// [index.js] +import { Foo } from "./other.js"; +import * as other from "./other.js"; +import defaultFoo from "./other.js"; + +const x = new Foo(); +const y = other.Foo(); +const z = new defaultFoo(); + +//// [other.d.ts] +export interface Foo { + bar: number; +} + +export default interface Bar { + foo: number; +} + +//// [other.js] +export class Foo { + bar = 2.4; +} + +export default class Bar { + foo = 1.2; +} + + +//// [index.js] +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || (function () { + var ownKeys = function(o) { + ownKeys = Object.getOwnPropertyNames || function (o) { + var ar = []; + for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k; + return ar; + }; + return ownKeys(o); + }; + return function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]); + __setModuleDefault(result, mod); + return result; + }; +})(); +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const other_js_1 = require("./other.js"); +const other = __importStar(require("./other.js")); +const other_js_2 = __importDefault(require("./other.js")); +const x = new other_js_1.Foo(); +const y = other.Foo(); +const z = new other_js_2.default(); +//// [other.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Foo = void 0; +class Foo { + bar = 2.4; +} +exports.Foo = Foo; +class Bar { + foo = 1.2; +} +exports.default = Bar; diff --git a/testdata/baselines/reference/submodule/compiler/elidedJSImport2(module=commonjs).js.diff b/testdata/baselines/reference/submodule/compiler/elidedJSImport2(module=commonjs).js.diff new file mode 100644 index 0000000000..5568f5f597 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/elidedJSImport2(module=commonjs).js.diff @@ -0,0 +1,32 @@ +--- old.elidedJSImport2(module=commonjs).js ++++ new.elidedJSImport2(module=commonjs).js +@@= skipped -66, +66 lines =@@ + return (mod && mod.__esModule) ? mod : { "default": mod }; + }; + Object.defineProperty(exports, "__esModule", { value: true }); +-var other_js_1 = require("./other.js"); +-var other = __importStar(require("./other.js")); +-var other_js_2 = __importDefault(require("./other.js")); ++const other_js_1 = require("./other.js"); ++const other = __importStar(require("./other.js")); ++const other_js_2 = __importDefault(require("./other.js")); + const x = new other_js_1.Foo(); + const y = other.Foo(); + const z = new other_js_2.default(); +@@= skipped -11, +11 lines =@@ + Object.defineProperty(exports, "__esModule", { value: true }); + exports.Foo = void 0; + class Foo { +- constructor() { +- this.bar = 2.4; +- } ++ bar = 2.4; + } + exports.Foo = Foo; + class Bar { +- constructor() { +- this.foo = 1.2; +- } ++ foo = 1.2; + } + exports.default = Bar; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/elidedJSImport2(module=es2022).js b/testdata/baselines/reference/submodule/compiler/elidedJSImport2(module=es2022).js new file mode 100644 index 0000000000..9922456eca --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/elidedJSImport2(module=es2022).js @@ -0,0 +1,44 @@ +//// [tests/cases/compiler/elidedJSImport2.ts] //// + +//// [index.js] +import { Foo } from "./other.js"; +import * as other from "./other.js"; +import defaultFoo from "./other.js"; + +const x = new Foo(); +const y = other.Foo(); +const z = new defaultFoo(); + +//// [other.d.ts] +export interface Foo { + bar: number; +} + +export default interface Bar { + foo: number; +} + +//// [other.js] +export class Foo { + bar = 2.4; +} + +export default class Bar { + foo = 1.2; +} + + +//// [index.js] +import { Foo } from "./other.js"; +import * as other from "./other.js"; +import defaultFoo from "./other.js"; +const x = new Foo(); +const y = other.Foo(); +const z = new defaultFoo(); +//// [other.js] +export class Foo { + bar = 2.4; +} +export default class Bar { + foo = 1.2; +} diff --git a/testdata/baselines/reference/submodule/compiler/elidedJSImport2(module=es2022).js.diff b/testdata/baselines/reference/submodule/compiler/elidedJSImport2(module=es2022).js.diff new file mode 100644 index 0000000000..b51f16292c --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/elidedJSImport2(module=es2022).js.diff @@ -0,0 +1,17 @@ +--- old.elidedJSImport2(module=es2022).js ++++ new.elidedJSImport2(module=es2022).js +@@= skipped -36, +36 lines =@@ + const z = new defaultFoo(); + //// [other.js] + export class Foo { +- constructor() { +- this.bar = 2.4; +- } ++ bar = 2.4; + } + export default class Bar { +- constructor() { +- this.foo = 1.2; +- } ++ foo = 1.2; + } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/expandoFunctionSymbolPropertyJs.js b/testdata/baselines/reference/submodule/compiler/expandoFunctionSymbolPropertyJs.js new file mode 100644 index 0000000000..4ae2bd512e --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/expandoFunctionSymbolPropertyJs.js @@ -0,0 +1,53 @@ +//// [tests/cases/compiler/expandoFunctionSymbolPropertyJs.ts] //// + +//// [types.ts] +export const symb = Symbol(); + +export interface TestSymb { + (): void; + readonly [symb]: boolean; +} + +//// [a.js] +import { symb } from "./types"; + +/** + * @returns {import("./types").TestSymb} + */ +export function test() { + function inner() {} + inner[symb] = true; + return inner; +} + +//// [types.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.symb = void 0; +exports.symb = Symbol(); +//// [a.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.test = test; +const types_1 = require("./types"); +/** + * @returns {import("./types").TestSymb} + */ +function test() { + function inner() { } + inner[types_1.symb] = true; + return inner; +} + + +//// [types.d.ts] +export declare const symb: unique symbol; +export interface TestSymb { + (): void; + readonly [symb]: boolean; +} +//// [a.d.ts] +/** + * @returns {import("./types").TestSymb} + */ +export declare function test(): import("./types").TestSymb; diff --git a/testdata/baselines/reference/submodule/compiler/expandoFunctionSymbolPropertyJs.js.diff b/testdata/baselines/reference/submodule/compiler/expandoFunctionSymbolPropertyJs.js.diff new file mode 100644 index 0000000000..3c63bfc7f6 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/expandoFunctionSymbolPropertyJs.js.diff @@ -0,0 +1,17 @@ +--- old.expandoFunctionSymbolPropertyJs.js ++++ new.expandoFunctionSymbolPropertyJs.js +@@= skipped -28, +28 lines =@@ + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.test = test; +-var types_1 = require("./types"); ++const types_1 = require("./types"); + /** + * @returns {import("./types").TestSymb} + */ +@@= skipped -21, +21 lines =@@ + /** + * @returns {import("./types").TestSymb} + */ +-export function test(): import("./types").TestSymb; ++export declare function test(): import("./types").TestSymb; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/exportDefaultMarksIdentifierAsUsed.js b/testdata/baselines/reference/submodule/compiler/exportDefaultMarksIdentifierAsUsed.js new file mode 100644 index 0000000000..5772dcfa15 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/exportDefaultMarksIdentifierAsUsed.js @@ -0,0 +1,20 @@ +//// [tests/cases/compiler/exportDefaultMarksIdentifierAsUsed.ts] //// + +//// [a.js] +const Obj = {}; +export default Obj; +//// [b.js] +import Obj from './a'; + +Obj.fn = function() {}; + +//// [a.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const Obj = {}; +exports.default = Obj; +//// [b.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const a_1 = require("./a"); +a_1.default.fn = function () { }; diff --git a/testdata/baselines/reference/submodule/compiler/extendedUnicodePlaneIdentifiersJSDoc.js b/testdata/baselines/reference/submodule/compiler/extendedUnicodePlaneIdentifiersJSDoc.js new file mode 100644 index 0000000000..f852621e8e --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/extendedUnicodePlaneIdentifiersJSDoc.js @@ -0,0 +1,21 @@ +//// [tests/cases/compiler/extendedUnicodePlaneIdentifiersJSDoc.ts] //// + +//// [file.js] +/** + * Adds + * @param {number} 𝑚 + * @param {number} 𝑀 + */ +function foo(𝑚, 𝑀) { + console.log(𝑀 + 𝑚); +} + +//// [file.js] +/** + * Adds + * @param {number} 𝑚 + * @param {number} 𝑀 + */ +function foo(𝑚, 𝑀) { + console.log(𝑀 + 𝑚); +} diff --git a/testdata/baselines/reference/submodule/compiler/extendsJavaScript.js b/testdata/baselines/reference/submodule/compiler/extendsJavaScript.js new file mode 100644 index 0000000000..7b01f9fca9 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/extendsJavaScript.js @@ -0,0 +1,17 @@ +//// [tests/cases/compiler/extendsJavaScript.ts] //// + +//// [extendsJavaScript.js] +/** + * @extends {SomeBase} + */ +class MyClass { + +} + + +//// [extendsJavaScript.js] +/** + * @extends {SomeBase} + */ +class MyClass { +} diff --git a/testdata/baselines/reference/submodule/compiler/fileReferencesWithNoExtensions.js b/testdata/baselines/reference/submodule/compiler/fileReferencesWithNoExtensions.js new file mode 100644 index 0000000000..44cdb16ca0 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/fileReferencesWithNoExtensions.js @@ -0,0 +1,34 @@ +//// [tests/cases/compiler/fileReferencesWithNoExtensions.ts] //// + +//// [t.ts] +/// +/// +/// +var a = aa; // Check that a.ts is referenced +var b = bb; // Check that b.d.ts is referenced +var c = cc; // Check that c.ts has precedence over c.d.ts + +//// [a.ts] +var aa = 1; + +//// [b.d.ts] +declare var bb: number; + +//// [c.ts] +var cc = 1; + +//// [c.d.ts] +declare var xx: number; + + +//// [t.js] +/// +/// +/// +var a = aa; // Check that a.ts is referenced +var b = bb; // Check that b.d.ts is referenced +var c = cc; // Check that c.ts has precedence over c.d.ts +//// [a.js] +var aa = 1; +//// [c.js] +var cc = 1; diff --git a/testdata/baselines/reference/submodule/compiler/fileReferencesWithNoExtensions.js.diff b/testdata/baselines/reference/submodule/compiler/fileReferencesWithNoExtensions.js.diff new file mode 100644 index 0000000000..685c7ae9d1 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/fileReferencesWithNoExtensions.js.diff @@ -0,0 +1,21 @@ +--- old.fileReferencesWithNoExtensions.js ++++ new.fileReferencesWithNoExtensions.js +@@= skipped -20, +20 lines =@@ + declare var xx: number; + + +-//// [a.js] +-var aa = 1; +-//// [c.js] +-var cc = 1; + //// [t.js] + /// + /// +@@= skipped -11, +7 lines =@@ + var a = aa; // Check that a.ts is referenced + var b = bb; // Check that b.d.ts is referenced + var c = cc; // Check that c.ts has precedence over c.d.ts ++//// [a.js] ++var aa = 1; ++//// [c.js] ++var cc = 1; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/fileReferencesWithNoExtensions.symbols b/testdata/baselines/reference/submodule/compiler/fileReferencesWithNoExtensions.symbols new file mode 100644 index 0000000000..eea902cac8 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/fileReferencesWithNoExtensions.symbols @@ -0,0 +1,34 @@ +//// [tests/cases/compiler/fileReferencesWithNoExtensions.ts] //// + +=== t.ts === +/// +/// +/// +var a = aa; // Check that a.ts is referenced +>a : Symbol(a, Decl(t.ts, 3, 3)) +>aa : Symbol(aa, Decl(a.ts, 0, 3)) + +var b = bb; // Check that b.d.ts is referenced +>b : Symbol(b, Decl(t.ts, 4, 3)) +>bb : Symbol(bb, Decl(b.d.ts, 0, 11)) + +var c = cc; // Check that c.ts has precedence over c.d.ts +>c : Symbol(c, Decl(t.ts, 5, 3)) +>cc : Symbol(cc, Decl(c.ts, 0, 3)) + +=== a.ts === +var aa = 1; +>aa : Symbol(aa, Decl(a.ts, 0, 3)) + +=== b.d.ts === +declare var bb: number; +>bb : Symbol(bb, Decl(b.d.ts, 0, 11)) + +=== c.ts === +var cc = 1; +>cc : Symbol(cc, Decl(c.ts, 0, 3)) + +=== c.d.ts === +declare var xx: number; +>xx : Symbol(xx, Decl(c.d.ts, 0, 11)) + diff --git a/testdata/baselines/reference/submodule/compiler/fileReferencesWithNoExtensions.types b/testdata/baselines/reference/submodule/compiler/fileReferencesWithNoExtensions.types new file mode 100644 index 0000000000..e6c46b2ea1 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/fileReferencesWithNoExtensions.types @@ -0,0 +1,36 @@ +//// [tests/cases/compiler/fileReferencesWithNoExtensions.ts] //// + +=== t.ts === +/// +/// +/// +var a = aa; // Check that a.ts is referenced +>a : number +>aa : number + +var b = bb; // Check that b.d.ts is referenced +>b : number +>bb : number + +var c = cc; // Check that c.ts has precedence over c.d.ts +>c : number +>cc : number + +=== a.ts === +var aa = 1; +>aa : number +>1 : 1 + +=== b.d.ts === +declare var bb: number; +>bb : number + +=== c.ts === +var cc = 1; +>cc : number +>1 : 1 + +=== c.d.ts === +declare var xx: number; +>xx : number + diff --git a/testdata/baselines/reference/submodule/compiler/filesEmittingIntoSameOutput.errors.txt.diff b/testdata/baselines/reference/submodule/compiler/filesEmittingIntoSameOutput.errors.txt.diff new file mode 100644 index 0000000000..cbaa2ce260 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/filesEmittingIntoSameOutput.errors.txt.diff @@ -0,0 +1,16 @@ +--- old.filesEmittingIntoSameOutput.errors.txt ++++ new.filesEmittingIntoSameOutput.errors.txt +@@= skipped -0, +0 lines =@@ +-error TS5056: Cannot write file 'a.js' because it would be overwritten by multiple input files. +- +- +-!!! error TS5056: Cannot write file 'a.js' because it would be overwritten by multiple input files. +-==== a.ts (0 errors) ==== +- class c { +- } +- +-==== a.tsx (0 errors) ==== +- function foo() { +- } +- ++ \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/filesEmittingIntoSameOutput.symbols b/testdata/baselines/reference/submodule/compiler/filesEmittingIntoSameOutput.symbols new file mode 100644 index 0000000000..f96c292cc0 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/filesEmittingIntoSameOutput.symbols @@ -0,0 +1,12 @@ +//// [tests/cases/compiler/filesEmittingIntoSameOutput.ts] //// + +=== a.ts === +class c { +>c : Symbol(c, Decl(a.ts, 0, 0)) +} + +=== a.tsx === +function foo() { +>foo : Symbol(foo, Decl(a.tsx, 0, 0)) +} + diff --git a/testdata/baselines/reference/submodule/compiler/filesEmittingIntoSameOutput.types b/testdata/baselines/reference/submodule/compiler/filesEmittingIntoSameOutput.types new file mode 100644 index 0000000000..73a79d474f --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/filesEmittingIntoSameOutput.types @@ -0,0 +1,12 @@ +//// [tests/cases/compiler/filesEmittingIntoSameOutput.ts] //// + +=== a.ts === +class c { +>c : c +} + +=== a.tsx === +function foo() { +>foo : () => void +} + diff --git a/testdata/baselines/reference/submodule/compiler/impliedNodeFormatEmit1(module=amd).js b/testdata/baselines/reference/submodule/compiler/impliedNodeFormatEmit1(module=amd).js new file mode 100644 index 0000000000..358d98e9fe --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/impliedNodeFormatEmit1(module=amd).js @@ -0,0 +1,78 @@ +//// [tests/cases/compiler/impliedNodeFormatEmit1.ts] //// + +//// [a.ts] +export const _ = 0; + +//// [b.mts] +export const _ = 0; + +//// [c.cts] +export const _ = 0; + +//// [d.js] +export const _ = 0; + +//// [e.mjs] +export const _ = 0; + +//// [f.mjs] +export const _ = 0; + +//// [g.ts] +import {} from "./a"; +import a = require("./a"); + +//// [h.mts] +import {} from "./a"; +import a = require("./a"); + +//// [i.cts] +import {} from "./a"; +import a = require("./a"); + +//// [dummy.ts] +export {}; + + +//// [a.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports._ = void 0; +exports._ = 0; +//// [b.mjs] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports._ = void 0; +exports._ = 0; +//// [c.cjs] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports._ = void 0; +exports._ = 0; +//// [d.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports._ = void 0; +exports._ = 0; +//// [e.mjs] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports._ = void 0; +exports._ = 0; +//// [f.mjs] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports._ = void 0; +exports._ = 0; +//// [g.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +//// [h.mjs] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +//// [i.cjs] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +//// [dummy.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/testdata/baselines/reference/submodule/compiler/impliedNodeFormatEmit1(module=amd).js.diff b/testdata/baselines/reference/submodule/compiler/impliedNodeFormatEmit1(module=amd).js.diff new file mode 100644 index 0000000000..db087d89f3 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/impliedNodeFormatEmit1(module=amd).js.diff @@ -0,0 +1,99 @@ +--- old.impliedNodeFormatEmit1(module=amd).js ++++ new.impliedNodeFormatEmit1(module=amd).js +@@= skipped -34, +34 lines =@@ + + + //// [a.js] +-define(["require", "exports"], function (require, exports) { +- "use strict"; +- Object.defineProperty(exports, "__esModule", { value: true }); +- exports._ = void 0; +- exports._ = 0; +-}); ++"use strict"; ++Object.defineProperty(exports, "__esModule", { value: true }); ++exports._ = void 0; ++exports._ = 0; + //// [b.mjs] +-define(["require", "exports"], function (require, exports) { +- "use strict"; +- Object.defineProperty(exports, "__esModule", { value: true }); +- exports._ = void 0; +- exports._ = 0; +-}); ++"use strict"; ++Object.defineProperty(exports, "__esModule", { value: true }); ++exports._ = void 0; ++exports._ = 0; + //// [c.cjs] +-define(["require", "exports"], function (require, exports) { +- "use strict"; +- Object.defineProperty(exports, "__esModule", { value: true }); +- exports._ = void 0; +- exports._ = 0; +-}); ++"use strict"; ++Object.defineProperty(exports, "__esModule", { value: true }); ++exports._ = void 0; ++exports._ = 0; + //// [d.js] +-define(["require", "exports"], function (require, exports) { +- "use strict"; +- Object.defineProperty(exports, "__esModule", { value: true }); +- exports._ = void 0; +- exports._ = 0; +-}); ++"use strict"; ++Object.defineProperty(exports, "__esModule", { value: true }); ++exports._ = void 0; ++exports._ = 0; + //// [e.mjs] +-define(["require", "exports"], function (require, exports) { +- "use strict"; +- Object.defineProperty(exports, "__esModule", { value: true }); +- exports._ = void 0; +- exports._ = 0; +-}); ++"use strict"; ++Object.defineProperty(exports, "__esModule", { value: true }); ++exports._ = void 0; ++exports._ = 0; + //// [f.mjs] +-define(["require", "exports"], function (require, exports) { +- "use strict"; +- Object.defineProperty(exports, "__esModule", { value: true }); +- exports._ = void 0; +- exports._ = 0; +-}); ++"use strict"; ++Object.defineProperty(exports, "__esModule", { value: true }); ++exports._ = void 0; ++exports._ = 0; + //// [g.js] +-define(["require", "exports"], function (require, exports) { +- "use strict"; +- Object.defineProperty(exports, "__esModule", { value: true }); +-}); ++"use strict"; ++Object.defineProperty(exports, "__esModule", { value: true }); + //// [h.mjs] +-define(["require", "exports"], function (require, exports) { +- "use strict"; +- Object.defineProperty(exports, "__esModule", { value: true }); +-}); ++"use strict"; ++Object.defineProperty(exports, "__esModule", { value: true }); + //// [i.cjs] +-define(["require", "exports"], function (require, exports) { +- "use strict"; +- Object.defineProperty(exports, "__esModule", { value: true }); +-}); ++"use strict"; ++Object.defineProperty(exports, "__esModule", { value: true }); + //// [dummy.js] +-define(["require", "exports"], function (require, exports) { +- "use strict"; +- Object.defineProperty(exports, "__esModule", { value: true }); +-}); ++"use strict"; ++Object.defineProperty(exports, "__esModule", { value: true }); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/impliedNodeFormatEmit1(module=commonjs).js b/testdata/baselines/reference/submodule/compiler/impliedNodeFormatEmit1(module=commonjs).js new file mode 100644 index 0000000000..a64b00f718 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/impliedNodeFormatEmit1(module=commonjs).js @@ -0,0 +1,68 @@ +//// [tests/cases/compiler/impliedNodeFormatEmit1.ts] //// + +//// [a.ts] +export const _ = 0; + +//// [b.mts] +export const _ = 0; + +//// [c.cts] +export const _ = 0; + +//// [d.js] +export const _ = 0; + +//// [e.mjs] +export const _ = 0; + +//// [f.mjs] +export const _ = 0; + +//// [g.ts] +import {} from "./a"; +import a = require("./a"); + +//// [h.mts] +import {} from "./a"; +import a = require("./a"); + +//// [i.cts] +import {} from "./a"; +import a = require("./a"); + +//// [dummy.ts] +export {}; + + +//// [a.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports._ = void 0; +exports._ = 0; +//// [b.mjs] +export const _ = 0; +//// [c.cjs] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports._ = void 0; +exports._ = 0; +//// [d.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports._ = void 0; +exports._ = 0; +//// [e.mjs] +export const _ = 0; +//// [f.mjs] +export const _ = 0; +//// [g.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +//// [h.mjs] +export {}; +//// [i.cjs] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +//// [dummy.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/testdata/baselines/reference/submodule/compiler/impliedNodeFormatEmit1(module=esnext).js b/testdata/baselines/reference/submodule/compiler/impliedNodeFormatEmit1(module=esnext).js new file mode 100644 index 0000000000..e7c119f483 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/impliedNodeFormatEmit1(module=esnext).js @@ -0,0 +1,60 @@ +//// [tests/cases/compiler/impliedNodeFormatEmit1.ts] //// + +//// [a.ts] +export const _ = 0; + +//// [b.mts] +export const _ = 0; + +//// [c.cts] +export const _ = 0; + +//// [d.js] +export const _ = 0; + +//// [e.mjs] +export const _ = 0; + +//// [f.mjs] +export const _ = 0; + +//// [g.ts] +import {} from "./a"; +import a = require("./a"); + +//// [h.mts] +import {} from "./a"; +import a = require("./a"); + +//// [i.cts] +import {} from "./a"; +import a = require("./a"); + +//// [dummy.ts] +export {}; + + +//// [a.js] +export const _ = 0; +//// [b.mjs] +export const _ = 0; +//// [c.cjs] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports._ = void 0; +exports._ = 0; +//// [d.js] +export const _ = 0; +//// [e.mjs] +export const _ = 0; +//// [f.mjs] +export const _ = 0; +//// [g.js] +export {}; +//// [h.mjs] +export {}; +//// [i.cjs] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +//// [dummy.js] +export {}; diff --git a/testdata/baselines/reference/submodule/compiler/impliedNodeFormatEmit1(module=preserve).js b/testdata/baselines/reference/submodule/compiler/impliedNodeFormatEmit1(module=preserve).js new file mode 100644 index 0000000000..d2196927f9 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/impliedNodeFormatEmit1(module=preserve).js @@ -0,0 +1,52 @@ +//// [tests/cases/compiler/impliedNodeFormatEmit1.ts] //// + +//// [a.ts] +export const _ = 0; + +//// [b.mts] +export const _ = 0; + +//// [c.cts] +export const _ = 0; + +//// [d.js] +export const _ = 0; + +//// [e.mjs] +export const _ = 0; + +//// [f.mjs] +export const _ = 0; + +//// [g.ts] +import {} from "./a"; +import a = require("./a"); + +//// [h.mts] +import {} from "./a"; +import a = require("./a"); + +//// [i.cts] +import {} from "./a"; +import a = require("./a"); + +//// [dummy.ts] +export {}; + + +//// [a.js] +export const _ = 0; +//// [b.mjs] +export const _ = 0; +//// [c.cjs] +export const _ = 0; +//// [d.js] +export const _ = 0; +//// [e.mjs] +export const _ = 0; +//// [f.mjs] +export const _ = 0; +//// [g.js] +//// [h.mjs] +//// [i.cjs] +//// [dummy.js] diff --git a/testdata/baselines/reference/submodule/compiler/impliedNodeFormatEmit1(module=system).js b/testdata/baselines/reference/submodule/compiler/impliedNodeFormatEmit1(module=system).js new file mode 100644 index 0000000000..358d98e9fe --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/impliedNodeFormatEmit1(module=system).js @@ -0,0 +1,78 @@ +//// [tests/cases/compiler/impliedNodeFormatEmit1.ts] //// + +//// [a.ts] +export const _ = 0; + +//// [b.mts] +export const _ = 0; + +//// [c.cts] +export const _ = 0; + +//// [d.js] +export const _ = 0; + +//// [e.mjs] +export const _ = 0; + +//// [f.mjs] +export const _ = 0; + +//// [g.ts] +import {} from "./a"; +import a = require("./a"); + +//// [h.mts] +import {} from "./a"; +import a = require("./a"); + +//// [i.cts] +import {} from "./a"; +import a = require("./a"); + +//// [dummy.ts] +export {}; + + +//// [a.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports._ = void 0; +exports._ = 0; +//// [b.mjs] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports._ = void 0; +exports._ = 0; +//// [c.cjs] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports._ = void 0; +exports._ = 0; +//// [d.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports._ = void 0; +exports._ = 0; +//// [e.mjs] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports._ = void 0; +exports._ = 0; +//// [f.mjs] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports._ = void 0; +exports._ = 0; +//// [g.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +//// [h.mjs] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +//// [i.cjs] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +//// [dummy.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/testdata/baselines/reference/submodule/compiler/impliedNodeFormatEmit1(module=system).js.diff b/testdata/baselines/reference/submodule/compiler/impliedNodeFormatEmit1(module=system).js.diff new file mode 100644 index 0000000000..475867d6b7 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/impliedNodeFormatEmit1(module=system).js.diff @@ -0,0 +1,149 @@ +--- old.impliedNodeFormatEmit1(module=system).js ++++ new.impliedNodeFormatEmit1(module=system).js +@@= skipped -34, +34 lines =@@ + + + //// [a.js] +-System.register([], function (exports_1, context_1) { +- "use strict"; +- var _; +- var __moduleName = context_1 && context_1.id; +- return { +- setters: [], +- execute: function () { +- exports_1("_", _ = 0); +- } +- }; +-}); ++"use strict"; ++Object.defineProperty(exports, "__esModule", { value: true }); ++exports._ = void 0; ++exports._ = 0; + //// [b.mjs] +-System.register([], function (exports_1, context_1) { +- "use strict"; +- var _; +- var __moduleName = context_1 && context_1.id; +- return { +- setters: [], +- execute: function () { +- exports_1("_", _ = 0); +- } +- }; +-}); ++"use strict"; ++Object.defineProperty(exports, "__esModule", { value: true }); ++exports._ = void 0; ++exports._ = 0; + //// [c.cjs] +-System.register([], function (exports_1, context_1) { +- "use strict"; +- var _; +- var __moduleName = context_1 && context_1.id; +- return { +- setters: [], +- execute: function () { +- exports_1("_", _ = 0); +- } +- }; +-}); ++"use strict"; ++Object.defineProperty(exports, "__esModule", { value: true }); ++exports._ = void 0; ++exports._ = 0; + //// [d.js] +-System.register([], function (exports_1, context_1) { +- "use strict"; +- var _; +- var __moduleName = context_1 && context_1.id; +- return { +- setters: [], +- execute: function () { +- exports_1("_", _ = 0); +- } +- }; +-}); ++"use strict"; ++Object.defineProperty(exports, "__esModule", { value: true }); ++exports._ = void 0; ++exports._ = 0; + //// [e.mjs] +-System.register([], function (exports_1, context_1) { +- "use strict"; +- var _; +- var __moduleName = context_1 && context_1.id; +- return { +- setters: [], +- execute: function () { +- exports_1("_", _ = 0); +- } +- }; +-}); ++"use strict"; ++Object.defineProperty(exports, "__esModule", { value: true }); ++exports._ = void 0; ++exports._ = 0; + //// [f.mjs] +-System.register([], function (exports_1, context_1) { +- "use strict"; +- var _; +- var __moduleName = context_1 && context_1.id; +- return { +- setters: [], +- execute: function () { +- exports_1("_", _ = 0); +- } +- }; +-}); ++"use strict"; ++Object.defineProperty(exports, "__esModule", { value: true }); ++exports._ = void 0; ++exports._ = 0; + //// [g.js] +-System.register([], function (exports_1, context_1) { +- "use strict"; +- var __moduleName = context_1 && context_1.id; +- return { +- setters: [], +- execute: function () { +- } +- }; +-}); ++"use strict"; ++Object.defineProperty(exports, "__esModule", { value: true }); + //// [h.mjs] +-System.register([], function (exports_1, context_1) { +- "use strict"; +- var __moduleName = context_1 && context_1.id; +- return { +- setters: [], +- execute: function () { +- } +- }; +-}); ++"use strict"; ++Object.defineProperty(exports, "__esModule", { value: true }); + //// [i.cjs] +-System.register([], function (exports_1, context_1) { +- "use strict"; +- var __moduleName = context_1 && context_1.id; +- return { +- setters: [], +- execute: function () { +- } +- }; +-}); ++"use strict"; ++Object.defineProperty(exports, "__esModule", { value: true }); + //// [dummy.js] +-System.register([], function (exports_1, context_1) { +- "use strict"; +- var __moduleName = context_1 && context_1.id; +- return { +- setters: [], +- execute: function () { +- } +- }; +-}); ++"use strict"; ++Object.defineProperty(exports, "__esModule", { value: true }); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/impliedNodeFormatEmit1(module=umd).js b/testdata/baselines/reference/submodule/compiler/impliedNodeFormatEmit1(module=umd).js new file mode 100644 index 0000000000..358d98e9fe --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/impliedNodeFormatEmit1(module=umd).js @@ -0,0 +1,78 @@ +//// [tests/cases/compiler/impliedNodeFormatEmit1.ts] //// + +//// [a.ts] +export const _ = 0; + +//// [b.mts] +export const _ = 0; + +//// [c.cts] +export const _ = 0; + +//// [d.js] +export const _ = 0; + +//// [e.mjs] +export const _ = 0; + +//// [f.mjs] +export const _ = 0; + +//// [g.ts] +import {} from "./a"; +import a = require("./a"); + +//// [h.mts] +import {} from "./a"; +import a = require("./a"); + +//// [i.cts] +import {} from "./a"; +import a = require("./a"); + +//// [dummy.ts] +export {}; + + +//// [a.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports._ = void 0; +exports._ = 0; +//// [b.mjs] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports._ = void 0; +exports._ = 0; +//// [c.cjs] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports._ = void 0; +exports._ = 0; +//// [d.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports._ = void 0; +exports._ = 0; +//// [e.mjs] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports._ = void 0; +exports._ = 0; +//// [f.mjs] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports._ = void 0; +exports._ = 0; +//// [g.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +//// [h.mjs] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +//// [i.cjs] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +//// [dummy.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/testdata/baselines/reference/submodule/compiler/impliedNodeFormatEmit1(module=umd).js.diff b/testdata/baselines/reference/submodule/compiler/impliedNodeFormatEmit1(module=umd).js.diff new file mode 100644 index 0000000000..eb85d456d4 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/impliedNodeFormatEmit1(module=umd).js.diff @@ -0,0 +1,179 @@ +--- old.impliedNodeFormatEmit1(module=umd).js ++++ new.impliedNodeFormatEmit1(module=umd).js +@@= skipped -34, +34 lines =@@ + + + //// [a.js] +-(function (factory) { +- if (typeof module === "object" && typeof module.exports === "object") { +- var v = factory(require, exports); +- if (v !== undefined) module.exports = v; +- } +- else if (typeof define === "function" && define.amd) { +- define(["require", "exports"], factory); +- } +-})(function (require, exports) { +- "use strict"; +- Object.defineProperty(exports, "__esModule", { value: true }); +- exports._ = void 0; +- exports._ = 0; +-}); ++"use strict"; ++Object.defineProperty(exports, "__esModule", { value: true }); ++exports._ = void 0; ++exports._ = 0; + //// [b.mjs] +-(function (factory) { +- if (typeof module === "object" && typeof module.exports === "object") { +- var v = factory(require, exports); +- if (v !== undefined) module.exports = v; +- } +- else if (typeof define === "function" && define.amd) { +- define(["require", "exports"], factory); +- } +-})(function (require, exports) { +- "use strict"; +- Object.defineProperty(exports, "__esModule", { value: true }); +- exports._ = void 0; +- exports._ = 0; +-}); ++"use strict"; ++Object.defineProperty(exports, "__esModule", { value: true }); ++exports._ = void 0; ++exports._ = 0; + //// [c.cjs] +-(function (factory) { +- if (typeof module === "object" && typeof module.exports === "object") { +- var v = factory(require, exports); +- if (v !== undefined) module.exports = v; +- } +- else if (typeof define === "function" && define.amd) { +- define(["require", "exports"], factory); +- } +-})(function (require, exports) { +- "use strict"; +- Object.defineProperty(exports, "__esModule", { value: true }); +- exports._ = void 0; +- exports._ = 0; +-}); ++"use strict"; ++Object.defineProperty(exports, "__esModule", { value: true }); ++exports._ = void 0; ++exports._ = 0; + //// [d.js] +-(function (factory) { +- if (typeof module === "object" && typeof module.exports === "object") { +- var v = factory(require, exports); +- if (v !== undefined) module.exports = v; +- } +- else if (typeof define === "function" && define.amd) { +- define(["require", "exports"], factory); +- } +-})(function (require, exports) { +- "use strict"; +- Object.defineProperty(exports, "__esModule", { value: true }); +- exports._ = void 0; +- exports._ = 0; +-}); ++"use strict"; ++Object.defineProperty(exports, "__esModule", { value: true }); ++exports._ = void 0; ++exports._ = 0; + //// [e.mjs] +-(function (factory) { +- if (typeof module === "object" && typeof module.exports === "object") { +- var v = factory(require, exports); +- if (v !== undefined) module.exports = v; +- } +- else if (typeof define === "function" && define.amd) { +- define(["require", "exports"], factory); +- } +-})(function (require, exports) { +- "use strict"; +- Object.defineProperty(exports, "__esModule", { value: true }); +- exports._ = void 0; +- exports._ = 0; +-}); ++"use strict"; ++Object.defineProperty(exports, "__esModule", { value: true }); ++exports._ = void 0; ++exports._ = 0; + //// [f.mjs] +-(function (factory) { +- if (typeof module === "object" && typeof module.exports === "object") { +- var v = factory(require, exports); +- if (v !== undefined) module.exports = v; +- } +- else if (typeof define === "function" && define.amd) { +- define(["require", "exports"], factory); +- } +-})(function (require, exports) { +- "use strict"; +- Object.defineProperty(exports, "__esModule", { value: true }); +- exports._ = void 0; +- exports._ = 0; +-}); ++"use strict"; ++Object.defineProperty(exports, "__esModule", { value: true }); ++exports._ = void 0; ++exports._ = 0; + //// [g.js] +-(function (factory) { +- if (typeof module === "object" && typeof module.exports === "object") { +- var v = factory(require, exports); +- if (v !== undefined) module.exports = v; +- } +- else if (typeof define === "function" && define.amd) { +- define(["require", "exports"], factory); +- } +-})(function (require, exports) { +- "use strict"; +- Object.defineProperty(exports, "__esModule", { value: true }); +-}); ++"use strict"; ++Object.defineProperty(exports, "__esModule", { value: true }); + //// [h.mjs] +-(function (factory) { +- if (typeof module === "object" && typeof module.exports === "object") { +- var v = factory(require, exports); +- if (v !== undefined) module.exports = v; +- } +- else if (typeof define === "function" && define.amd) { +- define(["require", "exports"], factory); +- } +-})(function (require, exports) { +- "use strict"; +- Object.defineProperty(exports, "__esModule", { value: true }); +-}); ++"use strict"; ++Object.defineProperty(exports, "__esModule", { value: true }); + //// [i.cjs] +-(function (factory) { +- if (typeof module === "object" && typeof module.exports === "object") { +- var v = factory(require, exports); +- if (v !== undefined) module.exports = v; +- } +- else if (typeof define === "function" && define.amd) { +- define(["require", "exports"], factory); +- } +-})(function (require, exports) { +- "use strict"; +- Object.defineProperty(exports, "__esModule", { value: true }); +-}); ++"use strict"; ++Object.defineProperty(exports, "__esModule", { value: true }); + //// [dummy.js] +-(function (factory) { +- if (typeof module === "object" && typeof module.exports === "object") { +- var v = factory(require, exports); +- if (v !== undefined) module.exports = v; +- } +- else if (typeof define === "function" && define.amd) { +- define(["require", "exports"], factory); +- } +-})(function (require, exports) { +- "use strict"; +- Object.defineProperty(exports, "__esModule", { value: true }); +-}); ++"use strict"; ++Object.defineProperty(exports, "__esModule", { value: true }); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/impliedNodeFormatEmit2(module=commonjs).js b/testdata/baselines/reference/submodule/compiler/impliedNodeFormatEmit2(module=commonjs).js new file mode 100644 index 0000000000..09acf1f94e --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/impliedNodeFormatEmit2(module=commonjs).js @@ -0,0 +1,71 @@ +//// [tests/cases/compiler/impliedNodeFormatEmit2.ts] //// + +//// [package.json] +{} + +//// [a.ts] +export const _ = 0; + +//// [b.mts] +export const _ = 0; + +//// [c.cts] +export const _ = 0; + +//// [d.js] +export const _ = 0; + +//// [e.mjs] +export const _ = 0; + +//// [f.mjs] +export const _ = 0; + +//// [g.ts] +import {} from "./a"; +import a = require("./a"); + +//// [h.mts] +import {} from "./a"; +import a = require("./a"); + +//// [i.cts] +import {} from "./a"; +import a = require("./a"); + +//// [dummy.ts] +export {}; + + +//// [a.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports._ = void 0; +exports._ = 0; +//// [b.mjs] +export const _ = 0; +//// [c.cjs] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports._ = void 0; +exports._ = 0; +//// [d.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports._ = void 0; +exports._ = 0; +//// [e.mjs] +export const _ = 0; +//// [f.mjs] +export const _ = 0; +//// [g.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +//// [h.mjs] +export {}; +//// [i.cjs] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +//// [dummy.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/testdata/baselines/reference/submodule/compiler/impliedNodeFormatEmit2(module=esnext).js b/testdata/baselines/reference/submodule/compiler/impliedNodeFormatEmit2(module=esnext).js new file mode 100644 index 0000000000..880c8fde2d --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/impliedNodeFormatEmit2(module=esnext).js @@ -0,0 +1,63 @@ +//// [tests/cases/compiler/impliedNodeFormatEmit2.ts] //// + +//// [package.json] +{} + +//// [a.ts] +export const _ = 0; + +//// [b.mts] +export const _ = 0; + +//// [c.cts] +export const _ = 0; + +//// [d.js] +export const _ = 0; + +//// [e.mjs] +export const _ = 0; + +//// [f.mjs] +export const _ = 0; + +//// [g.ts] +import {} from "./a"; +import a = require("./a"); + +//// [h.mts] +import {} from "./a"; +import a = require("./a"); + +//// [i.cts] +import {} from "./a"; +import a = require("./a"); + +//// [dummy.ts] +export {}; + + +//// [a.js] +export const _ = 0; +//// [b.mjs] +export const _ = 0; +//// [c.cjs] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports._ = void 0; +exports._ = 0; +//// [d.js] +export const _ = 0; +//// [e.mjs] +export const _ = 0; +//// [f.mjs] +export const _ = 0; +//// [g.js] +export {}; +//// [h.mjs] +export {}; +//// [i.cjs] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +//// [dummy.js] +export {}; diff --git a/testdata/baselines/reference/submodule/compiler/impliedNodeFormatEmit2(module=preserve).js b/testdata/baselines/reference/submodule/compiler/impliedNodeFormatEmit2(module=preserve).js new file mode 100644 index 0000000000..43c4ded45c --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/impliedNodeFormatEmit2(module=preserve).js @@ -0,0 +1,55 @@ +//// [tests/cases/compiler/impliedNodeFormatEmit2.ts] //// + +//// [package.json] +{} + +//// [a.ts] +export const _ = 0; + +//// [b.mts] +export const _ = 0; + +//// [c.cts] +export const _ = 0; + +//// [d.js] +export const _ = 0; + +//// [e.mjs] +export const _ = 0; + +//// [f.mjs] +export const _ = 0; + +//// [g.ts] +import {} from "./a"; +import a = require("./a"); + +//// [h.mts] +import {} from "./a"; +import a = require("./a"); + +//// [i.cts] +import {} from "./a"; +import a = require("./a"); + +//// [dummy.ts] +export {}; + + +//// [a.js] +export const _ = 0; +//// [b.mjs] +export const _ = 0; +//// [c.cjs] +export const _ = 0; +//// [d.js] +export const _ = 0; +//// [e.mjs] +export const _ = 0; +//// [f.mjs] +export const _ = 0; +//// [g.js] +//// [h.mjs] +//// [i.cjs] +//// [dummy.js] diff --git a/testdata/baselines/reference/submodule/compiler/impliedNodeFormatEmit3(module=commonjs).js b/testdata/baselines/reference/submodule/compiler/impliedNodeFormatEmit3(module=commonjs).js new file mode 100644 index 0000000000..f724c520ee --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/impliedNodeFormatEmit3(module=commonjs).js @@ -0,0 +1,73 @@ +//// [tests/cases/compiler/impliedNodeFormatEmit3.ts] //// + +//// [package.json] +{ + "type": "module" +} + +//// [a.ts] +export const _ = 0; + +//// [b.mts] +export const _ = 0; + +//// [c.cts] +export const _ = 0; + +//// [d.js] +export const _ = 0; + +//// [e.mjs] +export const _ = 0; + +//// [f.mjs] +export const _ = 0; + +//// [g.ts] +import {} from "./a"; +import a = require("./a"); + +//// [h.mts] +import {} from "./a"; +import a = require("./a"); + +//// [i.cts] +import {} from "./a"; +import a = require("./a"); + +//// [dummy.ts] +export {}; + + +//// [a.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports._ = void 0; +exports._ = 0; +//// [b.mjs] +export const _ = 0; +//// [c.cjs] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports._ = void 0; +exports._ = 0; +//// [d.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports._ = void 0; +exports._ = 0; +//// [e.mjs] +export const _ = 0; +//// [f.mjs] +export const _ = 0; +//// [g.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +//// [h.mjs] +export {}; +//// [i.cjs] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +//// [dummy.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/testdata/baselines/reference/submodule/compiler/impliedNodeFormatEmit3(module=esnext).js b/testdata/baselines/reference/submodule/compiler/impliedNodeFormatEmit3(module=esnext).js new file mode 100644 index 0000000000..72745dee81 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/impliedNodeFormatEmit3(module=esnext).js @@ -0,0 +1,65 @@ +//// [tests/cases/compiler/impliedNodeFormatEmit3.ts] //// + +//// [package.json] +{ + "type": "module" +} + +//// [a.ts] +export const _ = 0; + +//// [b.mts] +export const _ = 0; + +//// [c.cts] +export const _ = 0; + +//// [d.js] +export const _ = 0; + +//// [e.mjs] +export const _ = 0; + +//// [f.mjs] +export const _ = 0; + +//// [g.ts] +import {} from "./a"; +import a = require("./a"); + +//// [h.mts] +import {} from "./a"; +import a = require("./a"); + +//// [i.cts] +import {} from "./a"; +import a = require("./a"); + +//// [dummy.ts] +export {}; + + +//// [a.js] +export const _ = 0; +//// [b.mjs] +export const _ = 0; +//// [c.cjs] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports._ = void 0; +exports._ = 0; +//// [d.js] +export const _ = 0; +//// [e.mjs] +export const _ = 0; +//// [f.mjs] +export const _ = 0; +//// [g.js] +export {}; +//// [h.mjs] +export {}; +//// [i.cjs] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +//// [dummy.js] +export {}; diff --git a/testdata/baselines/reference/submodule/compiler/impliedNodeFormatEmit3(module=preserve).js b/testdata/baselines/reference/submodule/compiler/impliedNodeFormatEmit3(module=preserve).js new file mode 100644 index 0000000000..bebc976a01 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/impliedNodeFormatEmit3(module=preserve).js @@ -0,0 +1,57 @@ +//// [tests/cases/compiler/impliedNodeFormatEmit3.ts] //// + +//// [package.json] +{ + "type": "module" +} + +//// [a.ts] +export const _ = 0; + +//// [b.mts] +export const _ = 0; + +//// [c.cts] +export const _ = 0; + +//// [d.js] +export const _ = 0; + +//// [e.mjs] +export const _ = 0; + +//// [f.mjs] +export const _ = 0; + +//// [g.ts] +import {} from "./a"; +import a = require("./a"); + +//// [h.mts] +import {} from "./a"; +import a = require("./a"); + +//// [i.cts] +import {} from "./a"; +import a = require("./a"); + +//// [dummy.ts] +export {}; + + +//// [a.js] +export const _ = 0; +//// [b.mjs] +export const _ = 0; +//// [c.cjs] +export const _ = 0; +//// [d.js] +export const _ = 0; +//// [e.mjs] +export const _ = 0; +//// [f.mjs] +export const _ = 0; +//// [g.js] +//// [h.mjs] +//// [i.cjs] +//// [dummy.js] diff --git a/testdata/baselines/reference/submodule/compiler/impliedNodeFormatEmit4(module=commonjs).js b/testdata/baselines/reference/submodule/compiler/impliedNodeFormatEmit4(module=commonjs).js new file mode 100644 index 0000000000..c2e4b196ab --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/impliedNodeFormatEmit4(module=commonjs).js @@ -0,0 +1,73 @@ +//// [tests/cases/compiler/impliedNodeFormatEmit4.ts] //// + +//// [package.json] +{ + "type": "commonjs" +} + +//// [a.ts] +export const _ = 0; + +//// [b.mts] +export const _ = 0; + +//// [c.cts] +export const _ = 0; + +//// [d.js] +export const _ = 0; + +//// [e.mjs] +export const _ = 0; + +//// [f.mjs] +export const _ = 0; + +//// [g.ts] +import {} from "./a"; +import a = require("./a"); + +//// [h.mts] +import {} from "./a"; +import a = require("./a"); + +//// [i.cts] +import {} from "./a"; +import a = require("./a"); + +//// [dummy.ts] +export {}; + + +//// [a.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports._ = void 0; +exports._ = 0; +//// [b.mjs] +export const _ = 0; +//// [c.cjs] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports._ = void 0; +exports._ = 0; +//// [d.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports._ = void 0; +exports._ = 0; +//// [e.mjs] +export const _ = 0; +//// [f.mjs] +export const _ = 0; +//// [g.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +//// [h.mjs] +export {}; +//// [i.cjs] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +//// [dummy.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/testdata/baselines/reference/submodule/compiler/impliedNodeFormatEmit4(module=esnext).js b/testdata/baselines/reference/submodule/compiler/impliedNodeFormatEmit4(module=esnext).js new file mode 100644 index 0000000000..50870f84f6 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/impliedNodeFormatEmit4(module=esnext).js @@ -0,0 +1,65 @@ +//// [tests/cases/compiler/impliedNodeFormatEmit4.ts] //// + +//// [package.json] +{ + "type": "commonjs" +} + +//// [a.ts] +export const _ = 0; + +//// [b.mts] +export const _ = 0; + +//// [c.cts] +export const _ = 0; + +//// [d.js] +export const _ = 0; + +//// [e.mjs] +export const _ = 0; + +//// [f.mjs] +export const _ = 0; + +//// [g.ts] +import {} from "./a"; +import a = require("./a"); + +//// [h.mts] +import {} from "./a"; +import a = require("./a"); + +//// [i.cts] +import {} from "./a"; +import a = require("./a"); + +//// [dummy.ts] +export {}; + + +//// [a.js] +export const _ = 0; +//// [b.mjs] +export const _ = 0; +//// [c.cjs] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports._ = void 0; +exports._ = 0; +//// [d.js] +export const _ = 0; +//// [e.mjs] +export const _ = 0; +//// [f.mjs] +export const _ = 0; +//// [g.js] +export {}; +//// [h.mjs] +export {}; +//// [i.cjs] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +//// [dummy.js] +export {}; diff --git a/testdata/baselines/reference/submodule/compiler/impliedNodeFormatEmit4(module=preserve).js b/testdata/baselines/reference/submodule/compiler/impliedNodeFormatEmit4(module=preserve).js new file mode 100644 index 0000000000..37802e3127 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/impliedNodeFormatEmit4(module=preserve).js @@ -0,0 +1,57 @@ +//// [tests/cases/compiler/impliedNodeFormatEmit4.ts] //// + +//// [package.json] +{ + "type": "commonjs" +} + +//// [a.ts] +export const _ = 0; + +//// [b.mts] +export const _ = 0; + +//// [c.cts] +export const _ = 0; + +//// [d.js] +export const _ = 0; + +//// [e.mjs] +export const _ = 0; + +//// [f.mjs] +export const _ = 0; + +//// [g.ts] +import {} from "./a"; +import a = require("./a"); + +//// [h.mts] +import {} from "./a"; +import a = require("./a"); + +//// [i.cts] +import {} from "./a"; +import a = require("./a"); + +//// [dummy.ts] +export {}; + + +//// [a.js] +export const _ = 0; +//// [b.mjs] +export const _ = 0; +//// [c.cjs] +export const _ = 0; +//// [d.js] +export const _ = 0; +//// [e.mjs] +export const _ = 0; +//// [f.mjs] +export const _ = 0; +//// [g.js] +//// [h.mjs] +//// [i.cjs] +//// [dummy.js] diff --git a/testdata/baselines/reference/submodule/compiler/importDeclFromTypeNodeInJsSource.js b/testdata/baselines/reference/submodule/compiler/importDeclFromTypeNodeInJsSource.js new file mode 100644 index 0000000000..e34086b539 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/importDeclFromTypeNodeInJsSource.js @@ -0,0 +1,82 @@ +//// [tests/cases/compiler/importDeclFromTypeNodeInJsSource.ts] //// + +//// [index.d.ts] +/// +//// [events.d.ts] +declare module "events" { + namespace EventEmitter { + class EventEmitter { + constructor(); + } + } + export = EventEmitter; +} +declare module "nestNamespaceModule" { + namespace a1.a2 { + class d { } + } + + namespace a1.a2.n3 { + class c { } + } + export = a1.a2; +} +declare module "renameModule" { + namespace a.b { + class c { } + } + import d = a.b; + export = d; +} + +//// [b.js] +import { EventEmitter } from 'events'; +import { n3, d } from 'nestNamespaceModule'; +import { c } from 'renameModule'; + +export class Foo extends EventEmitter { +} + +export class Foo2 extends n3.c { +} + +export class Foo3 extends d { +} + +export class Foo4 extends c { + +} + +//// [b.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Foo4 = exports.Foo3 = exports.Foo2 = exports.Foo = void 0; +const events_1 = require("events"); +const nestNamespaceModule_1 = require("nestNamespaceModule"); +const renameModule_1 = require("renameModule"); +class Foo extends events_1.EventEmitter { +} +exports.Foo = Foo; +class Foo2 extends nestNamespaceModule_1.n3.c { +} +exports.Foo2 = Foo2; +class Foo3 extends nestNamespaceModule_1.d { +} +exports.Foo3 = Foo3; +class Foo4 extends renameModule_1.c { +} +exports.Foo4 = Foo4; + + +//// [b.d.ts] +import { EventEmitter } from 'events'; +import { n3, d } from 'nestNamespaceModule'; +import { c } from 'renameModule'; +export declare class Foo extends EventEmitter { +} +export declare class Foo2 extends n3.c { +} +export declare class Foo3 extends d { +} +export declare class Foo4 extends c { +} diff --git a/testdata/baselines/reference/submodule/compiler/importDeclFromTypeNodeInJsSource.js.diff b/testdata/baselines/reference/submodule/compiler/importDeclFromTypeNodeInJsSource.js.diff new file mode 100644 index 0000000000..a1990bb645 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/importDeclFromTypeNodeInJsSource.js.diff @@ -0,0 +1,27 @@ +--- old.importDeclFromTypeNodeInJsSource.js ++++ new.importDeclFromTypeNodeInJsSource.js +@@= skipped -68, +68 lines =@@ + + + //// [b.d.ts] +-export class Foo extends EventEmitter { +-} +-export class Foo2 extends n3.c { +-} +-export class Foo3 extends d { +-} +-export class Foo4 extends c { +-} + import { EventEmitter } from 'events'; +-import { n3 } from 'nestNamespaceModule'; +-import { d } from 'nestNamespaceModule'; ++import { n3, d } from 'nestNamespaceModule'; + import { c } from 'renameModule'; ++export declare class Foo extends EventEmitter { ++} ++export declare class Foo2 extends n3.c { ++} ++export declare class Foo3 extends d { ++} ++export declare class Foo4 extends c { ++} \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/importHelpersCommonJSJavaScript(verbatimmodulesyntax=false).js b/testdata/baselines/reference/submodule/compiler/importHelpersCommonJSJavaScript(verbatimmodulesyntax=false).js new file mode 100644 index 0000000000..946418741b --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/importHelpersCommonJSJavaScript(verbatimmodulesyntax=false).js @@ -0,0 +1,53 @@ +//// [tests/cases/compiler/importHelpersCommonJSJavaScript.ts] //// + +//// [package.json] +{ + "name": "tslib", + "main": "tslib.js", + "module": "tslib.es6.js", + "jsnext:main": "tslib.es6.js", + "typings": "tslib.d.ts", + "exports": { + ".": { + "module": { + "types": "./modules/index.d.ts", + "default": "./tslib.es6.mjs" + }, + "import": { + "node": "./modules/index.js", + "default": { + "types": "./modules/index.d.ts", + "default": "./tslib.es6.mjs" + } + }, + "default": "./tslib.js" + }, + "./*": "./*", + "./": "./" + } +} + +//// [tslib.d.ts] +export declare var __extends: any; + +//// [package.json] +{ "type": "module" } + +//// [index.d.ts] +export {}; + +//// [index.js] +class Foo {} + +class Bar extends Foo {} + +module.exports = Bar; + + +//// [index.js] +class Foo { +} +class Bar extends Foo { +} +export = Bar; +module.exports = Bar; diff --git a/testdata/baselines/reference/submodule/compiler/importHelpersCommonJSJavaScript(verbatimmodulesyntax=false).js.diff b/testdata/baselines/reference/submodule/compiler/importHelpersCommonJSJavaScript(verbatimmodulesyntax=false).js.diff new file mode 100644 index 0000000000..d22dc7aef7 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/importHelpersCommonJSJavaScript(verbatimmodulesyntax=false).js.diff @@ -0,0 +1,8 @@ +--- old.importHelpersCommonJSJavaScript(verbatimmodulesyntax=false).js ++++ new.importHelpersCommonJSJavaScript(verbatimmodulesyntax=false).js +@@= skipped -48, +48 lines =@@ + } + class Bar extends Foo { + } ++export = Bar; + module.exports = Bar; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/importHelpersCommonJSJavaScript(verbatimmodulesyntax=true).js b/testdata/baselines/reference/submodule/compiler/importHelpersCommonJSJavaScript(verbatimmodulesyntax=true).js new file mode 100644 index 0000000000..946418741b --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/importHelpersCommonJSJavaScript(verbatimmodulesyntax=true).js @@ -0,0 +1,53 @@ +//// [tests/cases/compiler/importHelpersCommonJSJavaScript.ts] //// + +//// [package.json] +{ + "name": "tslib", + "main": "tslib.js", + "module": "tslib.es6.js", + "jsnext:main": "tslib.es6.js", + "typings": "tslib.d.ts", + "exports": { + ".": { + "module": { + "types": "./modules/index.d.ts", + "default": "./tslib.es6.mjs" + }, + "import": { + "node": "./modules/index.js", + "default": { + "types": "./modules/index.d.ts", + "default": "./tslib.es6.mjs" + } + }, + "default": "./tslib.js" + }, + "./*": "./*", + "./": "./" + } +} + +//// [tslib.d.ts] +export declare var __extends: any; + +//// [package.json] +{ "type": "module" } + +//// [index.d.ts] +export {}; + +//// [index.js] +class Foo {} + +class Bar extends Foo {} + +module.exports = Bar; + + +//// [index.js] +class Foo { +} +class Bar extends Foo { +} +export = Bar; +module.exports = Bar; diff --git a/testdata/baselines/reference/submodule/compiler/importHelpersCommonJSJavaScript(verbatimmodulesyntax=true).js.diff b/testdata/baselines/reference/submodule/compiler/importHelpersCommonJSJavaScript(verbatimmodulesyntax=true).js.diff new file mode 100644 index 0000000000..ee2afeda7a --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/importHelpersCommonJSJavaScript(verbatimmodulesyntax=true).js.diff @@ -0,0 +1,8 @@ +--- old.importHelpersCommonJSJavaScript(verbatimmodulesyntax=true).js ++++ new.importHelpersCommonJSJavaScript(verbatimmodulesyntax=true).js +@@= skipped -48, +48 lines =@@ + } + class Bar extends Foo { + } ++export = Bar; + module.exports = Bar; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/isolatedDeclarationsAllowJs.js b/testdata/baselines/reference/submodule/compiler/isolatedDeclarationsAllowJs.js new file mode 100644 index 0000000000..bba02f774a --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/isolatedDeclarationsAllowJs.js @@ -0,0 +1,21 @@ +//// [tests/cases/compiler/isolatedDeclarationsAllowJs.ts] //// + +//// [file1.ts] +export var x; +//// [file2.js] +export var y; + +//// [file1.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.x = void 0; +//// [file2.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.y = void 0; + + +//// [file1.d.ts] +export declare var x: any; +//// [file2.d.ts] +export declare var y: any; diff --git a/testdata/baselines/reference/submodule/compiler/isolatedDeclarationsAllowJs.js.diff b/testdata/baselines/reference/submodule/compiler/isolatedDeclarationsAllowJs.js.diff new file mode 100644 index 0000000000..2bbb199f73 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/isolatedDeclarationsAllowJs.js.diff @@ -0,0 +1,19 @@ +--- old.isolatedDeclarationsAllowJs.js ++++ new.isolatedDeclarationsAllowJs.js +@@= skipped -8, +8 lines =@@ + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.x = void 0; +- +- ++//// [file2.js] ++"use strict"; ++Object.defineProperty(exports, "__esModule", { value: true }); ++exports.y = void 0; ++ ++ ++//// [file1.d.ts] ++export declare var x: any; + //// [file2.d.ts] +-export const y: any; ++export declare var y: any; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/javascriptCommonjsModule.js b/testdata/baselines/reference/submodule/compiler/javascriptCommonjsModule.js new file mode 100644 index 0000000000..7e17b0e274 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/javascriptCommonjsModule.js @@ -0,0 +1,17 @@ +//// [tests/cases/compiler/javascriptCommonjsModule.ts] //// + +//// [index.js] +class Foo {} + +class Bar extends Foo {} + +module.exports = Bar; + + +//// [index.js] +class Foo { +} +class Bar extends Foo { +} +export = Bar; +module.exports = Bar; diff --git a/testdata/baselines/reference/submodule/compiler/javascriptCommonjsModule.js.diff b/testdata/baselines/reference/submodule/compiler/javascriptCommonjsModule.js.diff new file mode 100644 index 0000000000..8f662402ff --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/javascriptCommonjsModule.js.diff @@ -0,0 +1,8 @@ +--- old.javascriptCommonjsModule.js ++++ new.javascriptCommonjsModule.js +@@= skipped -12, +12 lines =@@ + } + class Bar extends Foo { + } ++export = Bar; + module.exports = Bar; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/javascriptThisAssignmentInStaticBlock.js b/testdata/baselines/reference/submodule/compiler/javascriptThisAssignmentInStaticBlock.js new file mode 100644 index 0000000000..92f5754ea2 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/javascriptThisAssignmentInStaticBlock.js @@ -0,0 +1,46 @@ +//// [tests/cases/compiler/javascriptThisAssignmentInStaticBlock.ts] //// + +//// [a.js] +class Thing { + static { + this.doSomething = () => {}; + } +} + +Thing.doSomething(); + +// GH#46468 +class ElementsArray extends Array { + static { + const superisArray = super.isArray; + const customIsArray = (arg)=> superisArray(arg); + this.isArray = customIsArray; + } +} + +ElementsArray.isArray(new ElementsArray()); + +//// [a.js] +class Thing { + static { + this.doSomething = () => { }; + } +} +Thing.doSomething(); +// GH#46468 +class ElementsArray extends Array { + static { + const superisArray = super.isArray; + const customIsArray = (arg) => superisArray(arg); + this.isArray = customIsArray; + } +} +ElementsArray.isArray(new ElementsArray()); + + +//// [a.d.ts] +declare class Thing { +} +// GH#46468 +declare class ElementsArray extends Array { +} diff --git a/testdata/baselines/reference/submodule/compiler/javascriptThisAssignmentInStaticBlock.js.diff b/testdata/baselines/reference/submodule/compiler/javascriptThisAssignmentInStaticBlock.js.diff new file mode 100644 index 0000000000..45f4846554 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/javascriptThisAssignmentInStaticBlock.js.diff @@ -0,0 +1,44 @@ +--- old.javascriptThisAssignmentInStaticBlock.js ++++ new.javascriptThisAssignmentInStaticBlock.js +@@= skipped -20, +20 lines =@@ + ElementsArray.isArray(new ElementsArray()); + + //// [a.js] +-var _a, _b; + class Thing { ++ static { ++ this.doSomething = () => { }; ++ } + } +-_a = Thing; +-(() => { +- _a.doSomething = () => { }; +-})(); + Thing.doSomething(); + // GH#46468 + class ElementsArray extends Array { ++ static { ++ const superisArray = super.isArray; ++ const customIsArray = (arg) => superisArray(arg); ++ this.isArray = customIsArray; ++ } + } +-_b = ElementsArray; +-(() => { +- const superisArray = super.isArray; +- const customIsArray = (arg) => superisArray(arg); +- _b.isArray = customIsArray; +-})(); + ElementsArray.isArray(new ElementsArray()); + + + //// [a.d.ts] + declare class Thing { + } +-declare class ElementsArray extends Array { +- constructor(arrayLength?: number); +- constructor(arrayLength: number); +- constructor(...items: any[]); ++// GH#46468 ++declare class ElementsArray extends Array { + } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/jsDeclarationEmitDoesNotRenameImport.js b/testdata/baselines/reference/submodule/compiler/jsDeclarationEmitDoesNotRenameImport.js new file mode 100644 index 0000000000..1886413452 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/jsDeclarationEmitDoesNotRenameImport.js @@ -0,0 +1,61 @@ +//// [tests/cases/compiler/jsDeclarationEmitDoesNotRenameImport.ts] //// + +//// [Test.js] +/** @module test/Test */ +class Test {} +export default Test; +//// [Test.js] +/** @module Test */ +class Test {} +export default Test; +//// [index.js] +import Test from './test/Test.js' + +/** + * @typedef {Object} Options + * @property {typeof import("./Test.js").default} [test] + */ + +class X extends Test { + /** + * @param {Options} options + */ + constructor(options) { + super(); + if (options.test) { + this.test = new options.test(); + } + } +} + +export default X; + + + + +//// [Test.d.ts] +/** @module test/Test */ +declare class Test { +} +export default Test; +//// [Test.d.ts] +/** @module Test */ +declare class Test { +} +export default Test; +//// [index.d.ts] +import Test from './test/Test.js'; +export type Options = { + test?: typeof import("./Test.js").default; +}; +/** + * @typedef {Object} Options + * @property {typeof import("./Test.js").default} [test] + */ +declare class X extends Test { + /** + * @param {Options} options + */ + constructor(options: Options); +} +export default X; diff --git a/testdata/baselines/reference/submodule/compiler/jsDeclarationEmitDoesNotRenameImport.js.diff b/testdata/baselines/reference/submodule/compiler/jsDeclarationEmitDoesNotRenameImport.js.diff new file mode 100644 index 0000000000..59880c2816 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/jsDeclarationEmitDoesNotRenameImport.js.diff @@ -0,0 +1,34 @@ +--- old.jsDeclarationEmitDoesNotRenameImport.js ++++ new.jsDeclarationEmitDoesNotRenameImport.js +@@= skipped -33, +33 lines =@@ + + + //// [Test.d.ts] +-export default Test; + /** @module test/Test */ + declare class Test { + } ++export default Test; + //// [Test.d.ts] +-export default Test; + /** @module Test */ + declare class Test { + } ++export default Test; + //// [index.d.ts] +-export default X; ++import Test from './test/Test.js'; + export type Options = { +- test?: typeof import("./Test.js").default | undefined; ++ test?: typeof import("./Test.js").default; + }; + /** + * @typedef {Object} Options +@@= skipped -23, +23 lines =@@ + * @param {Options} options + */ + constructor(options: Options); +- test: import("./Test.js").default | undefined; + } +-import Test from './test/Test.js'; ++export default X; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/jsDeclarationEmitExportAssignedArray.js b/testdata/baselines/reference/submodule/compiler/jsDeclarationEmitExportAssignedArray.js new file mode 100644 index 0000000000..9751919826 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/jsDeclarationEmitExportAssignedArray.js @@ -0,0 +1,14 @@ +//// [tests/cases/compiler/jsDeclarationEmitExportAssignedArray.ts] //// + +//// [file.js] +module.exports = [{ name: 'other', displayName: 'Other', defaultEnabled: true }]; + + + +//// [file.d.ts] +declare const _default: { + name: string; + displayName: string; + defaultEnabled: boolean; +}[]; +export = _default; diff --git a/testdata/baselines/reference/submodule/compiler/jsDeclarationEmitExportAssignedArray.js.diff b/testdata/baselines/reference/submodule/compiler/jsDeclarationEmitExportAssignedArray.js.diff new file mode 100644 index 0000000000..44e36dcdbd --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/jsDeclarationEmitExportAssignedArray.js.diff @@ -0,0 +1,14 @@ +--- old.jsDeclarationEmitExportAssignedArray.js ++++ new.jsDeclarationEmitExportAssignedArray.js +@@= skipped -5, +5 lines =@@ + + + //// [file.d.ts] +-declare const _exports: { ++declare const _default: { + name: string; + displayName: string; + defaultEnabled: boolean; + }[]; +-export = _exports; ++export = _default; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/jsDeclarationEmitExportAssignedFunctionWithExtraTypedefsMembers.js b/testdata/baselines/reference/submodule/compiler/jsDeclarationEmitExportAssignedFunctionWithExtraTypedefsMembers.js new file mode 100644 index 0000000000..bf182d3b0a --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/jsDeclarationEmitExportAssignedFunctionWithExtraTypedefsMembers.js @@ -0,0 +1,41 @@ +//// [tests/cases/compiler/jsDeclarationEmitExportAssignedFunctionWithExtraTypedefsMembers.ts] //// + +//// [index.js] +/** + * @typedef Options + * @property {string} opt + */ + +/** + * @param {Options} options + */ +module.exports = function loader(options) {} + + +//// [index.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +/** + * @typedef Options + * @property {string} opt + */ +/** + * @param {Options} options + */ +export = function loader(options) { }; +/** + * @typedef Options + * @property {string} opt + */ +/** + * @param {Options} options + */ +module.exports = function loader(options) { }; + + +//// [index.d.ts] +export type Options = { + opt: string; +}; +declare const _default: (options: any) => void; +export = _default; diff --git a/testdata/baselines/reference/submodule/compiler/jsDeclarationEmitExportAssignedFunctionWithExtraTypedefsMembers.js.diff b/testdata/baselines/reference/submodule/compiler/jsDeclarationEmitExportAssignedFunctionWithExtraTypedefsMembers.js.diff new file mode 100644 index 0000000000..b9cfac184e --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/jsDeclarationEmitExportAssignedFunctionWithExtraTypedefsMembers.js.diff @@ -0,0 +1,33 @@ +--- old.jsDeclarationEmitExportAssignedFunctionWithExtraTypedefsMembers.js ++++ new.jsDeclarationEmitExportAssignedFunctionWithExtraTypedefsMembers.js +@@= skipped -13, +13 lines =@@ + + //// [index.js] + "use strict"; ++Object.defineProperty(exports, "__esModule", { value: true }); ++/** ++ * @typedef Options ++ * @property {string} opt ++ */ ++/** ++ * @param {Options} options ++ */ ++export = function loader(options) { }; + /** + * @typedef Options + * @property {string} opt +@@= skipped -11, +20 lines =@@ + + + //// [index.d.ts] +-declare namespace _exports { +- export { Options }; +-} +-declare function _exports(options: Options): void; +-export = _exports; +-type Options = { ++export type Options = { + opt: string; + }; ++declare const _default: (options: any) => void; ++export = _default; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/jsDeclarationEmitExportedClassWithExtends.js b/testdata/baselines/reference/submodule/compiler/jsDeclarationEmitExportedClassWithExtends.js new file mode 100644 index 0000000000..c83afdcaa3 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/jsDeclarationEmitExportedClassWithExtends.js @@ -0,0 +1,57 @@ +//// [tests/cases/compiler/jsDeclarationEmitExportedClassWithExtends.ts] //// + +//// [package.json] +{ + "name": "lit", + "version": "0.0.1", + "type": "module", + "exports": { + ".": { + "types": "./development/index.d.ts" + } + } +} +//// [index.d.ts] +export * from "lit-element/lit-element.js"; +//// [package.json] +{ + "name": "lit-element", + "version": "0.0.1", + "type": "module", + "exports": { + ".": { + "types": "./development/index.d.ts" + }, + "./lit-element.js": { + "types": "./development/lit-element.d.ts" + } + } +} +//// [index.d.ts] +export * from "./lit-element.js"; +//// [lit-element.d.ts] +export class LitElement {} +//// [package.json] +{ + "type": "module", + "private": true +} +//// [index.js] +import { LitElement, LitElement as LitElement2 } from "lit"; +export class ElementB extends LitElement {} +export class ElementC extends LitElement2 {} + +//// [index.js] +import { LitElement, LitElement as LitElement2 } from "lit"; +export class ElementB extends LitElement { +} +export class ElementC extends LitElement2 { +} + + +//// [index.d.ts] +import { LitElement, LitElement as LitElement2 } from "lit"; +export declare class ElementB extends LitElement { +} +export declare class ElementC extends LitElement2 { +} diff --git a/testdata/baselines/reference/submodule/compiler/jsDeclarationEmitExportedClassWithExtends.js.diff b/testdata/baselines/reference/submodule/compiler/jsDeclarationEmitExportedClassWithExtends.js.diff new file mode 100644 index 0000000000..0db9d018b3 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/jsDeclarationEmitExportedClassWithExtends.js.diff @@ -0,0 +1,16 @@ +--- old.jsDeclarationEmitExportedClassWithExtends.js ++++ new.jsDeclarationEmitExportedClassWithExtends.js +@@= skipped -49, +49 lines =@@ + + + //// [index.d.ts] +-export class ElementB extends LitElement { +-} +-export class ElementC extends LitElement { +-} +-import { LitElement } from "lit"; ++import { LitElement, LitElement as LitElement2 } from "lit"; ++export declare class ElementB extends LitElement { ++} ++export declare class ElementC extends LitElement2 { ++} \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/jsDeclarationsGlobalFileConstFunction.js b/testdata/baselines/reference/submodule/compiler/jsDeclarationsGlobalFileConstFunction.js new file mode 100644 index 0000000000..9d4cfaead5 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/jsDeclarationsGlobalFileConstFunction.js @@ -0,0 +1,29 @@ +//// [tests/cases/compiler/jsDeclarationsGlobalFileConstFunction.ts] //// + +//// [file.js] +const SomeConstructor = function () { + this.x = 1; +}; + +const SomeConstructor2 = function () { +}; +SomeConstructor2.staticMember = "str"; + +const SomeConstructor3 = function () { + this.x = 1; +}; +SomeConstructor3.staticMember = "str"; + + + + +//// [file.d.ts] +declare const SomeConstructor: () => void; +declare const SomeConstructor2: { + (): void; + staticMember: string; +}; +declare const SomeConstructor3: { + (): void; + staticMember: string; +}; diff --git a/testdata/baselines/reference/submodule/compiler/jsDeclarationsGlobalFileConstFunction.js.diff b/testdata/baselines/reference/submodule/compiler/jsDeclarationsGlobalFileConstFunction.js.diff new file mode 100644 index 0000000000..171c3332a5 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/jsDeclarationsGlobalFileConstFunction.js.diff @@ -0,0 +1,31 @@ +--- old.jsDeclarationsGlobalFileConstFunction.js ++++ new.jsDeclarationsGlobalFileConstFunction.js +@@= skipped -17, +17 lines =@@ + + + //// [file.d.ts] +-declare function SomeConstructor(): void; +-declare class SomeConstructor { +- x: number; +-} +-declare function SomeConstructor2(): void; +-declare namespace SomeConstructor2 { +- let staticMember: string; +-} +-declare function SomeConstructor3(): void; +-declare namespace SomeConstructor3 { +- let staticMember_1: string; +- export { staticMember_1 as staticMember }; +-} +-declare class SomeConstructor3 { +- x: number; +-} ++declare const SomeConstructor: () => void; ++declare const SomeConstructor2: { ++ (): void; ++ staticMember: string; ++}; ++declare const SomeConstructor3: { ++ (): void; ++ staticMember: string; ++}; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/jsDeclarationsGlobalFileConstFunctionNamed.js b/testdata/baselines/reference/submodule/compiler/jsDeclarationsGlobalFileConstFunctionNamed.js new file mode 100644 index 0000000000..b4b7986cec --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/jsDeclarationsGlobalFileConstFunctionNamed.js @@ -0,0 +1,39 @@ +//// [tests/cases/compiler/jsDeclarationsGlobalFileConstFunctionNamed.ts] //// + +//// [file.js] +const SomeConstructor = function Named() { + this.x = 1; +}; + +const SomeConstructor2 = function Named() { +}; +SomeConstructor2.staticMember = "str"; + +const SomeConstructor3 = function Named() { + this.x = 1; +}; +SomeConstructor3.staticMember = "str"; + +const SelfReference = function Named() { + if (!(this instanceof Named)) return new Named(); + this.x = 1; +} +SelfReference.staticMember = "str"; + + + + +//// [file.d.ts] +declare const SomeConstructor: () => void; +declare const SomeConstructor2: { + (): void; + staticMember: string; +}; +declare const SomeConstructor3: { + (): void; + staticMember: string; +}; +declare const SelfReference: { + (): any; + staticMember: string; +}; diff --git a/testdata/baselines/reference/submodule/compiler/jsDeclarationsGlobalFileConstFunctionNamed.js.diff b/testdata/baselines/reference/submodule/compiler/jsDeclarationsGlobalFileConstFunctionNamed.js.diff new file mode 100644 index 0000000000..3b57bcf92d --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/jsDeclarationsGlobalFileConstFunctionNamed.js.diff @@ -0,0 +1,43 @@ +--- old.jsDeclarationsGlobalFileConstFunctionNamed.js ++++ new.jsDeclarationsGlobalFileConstFunctionNamed.js +@@= skipped -23, +23 lines =@@ + + + //// [file.d.ts] +-declare function SomeConstructor(): void; +-declare class SomeConstructor { +- x: number; +-} +-declare function SomeConstructor2(): void; +-declare namespace SomeConstructor2 { +- let staticMember: string; +-} +-declare function SomeConstructor3(): void; +-declare namespace SomeConstructor3 { +- let staticMember_1: string; +- export { staticMember_1 as staticMember }; +-} +-declare class SomeConstructor3 { +- x: number; +-} +-declare function SelfReference(): SelfReference; +-declare namespace SelfReference { +- let staticMember_2: string; +- export { staticMember_2 as staticMember }; +-} +-declare class SelfReference { +- x: number; +-} ++declare const SomeConstructor: () => void; ++declare const SomeConstructor2: { ++ (): void; ++ staticMember: string; ++}; ++declare const SomeConstructor3: { ++ (): void; ++ staticMember: string; ++}; ++declare const SelfReference: { ++ (): any; ++ staticMember: string; ++}; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/jsDeclarationsInheritedTypes.js b/testdata/baselines/reference/submodule/compiler/jsDeclarationsInheritedTypes.js new file mode 100644 index 0000000000..efd479b20b --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/jsDeclarationsInheritedTypes.js @@ -0,0 +1,44 @@ +//// [tests/cases/compiler/jsDeclarationsInheritedTypes.ts] //// + +//// [a.js] +/** + * @typedef A + * @property {string} a + */ + +/** + * @typedef B + * @property {number} b + */ + + class C1 { + /** + * @type {A} + */ + value; +} + +class C2 extends C1 { + /** + * @type {A} + */ + value; +} + +class C3 extends C1 { + /** + * @type {A & B} + */ + value; +} + + + + +//// [a.d.ts] +export type A = { + a: string; +}; +export type B = { + b: number; +}; diff --git a/testdata/baselines/reference/submodule/compiler/jsDeclarationsInheritedTypes.js.diff b/testdata/baselines/reference/submodule/compiler/jsDeclarationsInheritedTypes.js.diff new file mode 100644 index 0000000000..0847a31c50 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/jsDeclarationsInheritedTypes.js.diff @@ -0,0 +1,36 @@ +--- old.jsDeclarationsInheritedTypes.js ++++ new.jsDeclarationsInheritedTypes.js +@@= skipped -35, +35 lines =@@ + + + //// [a.d.ts] +-/** +- * @typedef A +- * @property {string} a +- */ +-/** +- * @typedef B +- * @property {number} b +- */ +-declare class C1 { +- /** +- * @type {A} +- */ +- value: A; +-} +-declare class C2 extends C1 { +-} +-declare class C3 extends C1 { +- /** +- * @type {A & B} +- */ +- value: A & B; +-} +-type A = { ++export type A = { + a: string; + }; +-type B = { ++export type B = { + b: number; + }; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/jsDeclarationsWithDefaultAsNamespaceLikeMerge.js b/testdata/baselines/reference/submodule/compiler/jsDeclarationsWithDefaultAsNamespaceLikeMerge.js new file mode 100644 index 0000000000..21c3e870d8 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/jsDeclarationsWithDefaultAsNamespaceLikeMerge.js @@ -0,0 +1,31 @@ +//// [tests/cases/compiler/jsDeclarationsWithDefaultAsNamespaceLikeMerge.ts] //// + +//// [helper.d.ts] +type Computed = () => any; +interface Mapper { + (map: Key[]): { [K in Key]: R }; + >(map: Map): { [K in keyof Map]: R }; +} +interface NamespacedMappers { + mapState: Mapper; +} +export declare function createNamespacedHelpers(): NamespacedMappers; + +//// [index.js] +import { createNamespacedHelpers } from './helper' +const { mapState } = createNamespacedHelpers() +export default { + computed: { + ...mapState(['panels']) + } +} + + + +//// [index.d.ts] +declare const _default: { + computed: { + panels: import("./helper").Computed; + }; +}; +export default _default; diff --git a/testdata/baselines/reference/submodule/compiler/jsDeclarationsWithDefaultAsNamespaceLikeMerge.js.diff b/testdata/baselines/reference/submodule/compiler/jsDeclarationsWithDefaultAsNamespaceLikeMerge.js.diff new file mode 100644 index 0000000000..a629b9307b --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/jsDeclarationsWithDefaultAsNamespaceLikeMerge.js.diff @@ -0,0 +1,17 @@ +--- old.jsDeclarationsWithDefaultAsNamespaceLikeMerge.js ++++ new.jsDeclarationsWithDefaultAsNamespaceLikeMerge.js +@@= skipped -22, +22 lines =@@ + + + //// [index.d.ts] +-declare namespace _default { +- namespace computed { +- let panels: import("./helper").Computed; +- } +-} ++declare const _default: { ++ computed: { ++ panels: import("./helper").Computed; ++ }; ++}; + export default _default; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/jsDocDeclarationEmitDoesNotUseNodeModulesPathWithoutError.js b/testdata/baselines/reference/submodule/compiler/jsDocDeclarationEmitDoesNotUseNodeModulesPathWithoutError.js new file mode 100644 index 0000000000..236608d9bd --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/jsDocDeclarationEmitDoesNotUseNodeModulesPathWithoutError.js @@ -0,0 +1,59 @@ +//// [tests/cases/compiler/jsDocDeclarationEmitDoesNotUseNodeModulesPathWithoutError.ts] //// + +//// [package.json] +{ + "name": "typescript-issue", + "private": true, + "version": "0.0.0", + "type": "module" +} +//// [package.json] +{ + "name": "@lion/ajax", + "version": "2.0.2", + "type": "module", + "exports": { + ".": { + "types": "./dist-types/src/index.d.ts", + "default": "./src/index.js" + }, + "./docs/*": "./docs/*" + } +} +//// [index.d.ts] +export type LionRequestInit = import('../types/types.js').LionRequestInit; +//// [types.d.ts] +export interface LionRequestInit { + body?: null | Object; +} +//// [index.js] +/** + * @typedef {import('@lion/ajax').LionRequestInit} LionRequestInit + */ + +export class NewAjax { + /** + * @param {LionRequestInit} [init] + */ + case5_unexpectedlyResolvesPathToNodeModules(init) {} +} + +/** + * @type {(init?: LionRequestInit) => void} + */ +// @ts-expect-error +NewAjax.prototype.case6_unexpectedlyResolvesPathToNodeModules; + + + +//// [index.d.ts] +export type LionRequestInit = import('@lion/ajax').LionRequestInit; +/** + * @typedef {import('@lion/ajax').LionRequestInit} LionRequestInit + */ +export declare class NewAjax { + /** + * @param {LionRequestInit} [init] + */ + case5_unexpectedlyResolvesPathToNodeModules(init?: LionRequestInit): void; +} diff --git a/testdata/baselines/reference/submodule/compiler/jsDocDeclarationEmitDoesNotUseNodeModulesPathWithoutError.js.diff b/testdata/baselines/reference/submodule/compiler/jsDocDeclarationEmitDoesNotUseNodeModulesPathWithoutError.js.diff new file mode 100644 index 0000000000..7a5027b638 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/jsDocDeclarationEmitDoesNotUseNodeModulesPathWithoutError.js.diff @@ -0,0 +1,22 @@ +--- old.jsDocDeclarationEmitDoesNotUseNodeModulesPathWithoutError.js ++++ new.jsDocDeclarationEmitDoesNotUseNodeModulesPathWithoutError.js +@@= skipped -46, +46 lines =@@ + + + //// [index.d.ts] ++export type LionRequestInit = import('@lion/ajax').LionRequestInit; + /** + * @typedef {import('@lion/ajax').LionRequestInit} LionRequestInit + */ +-export class NewAjax { ++export declare class NewAjax { + /** + * @param {LionRequestInit} [init] + */ + case5_unexpectedlyResolvesPathToNodeModules(init?: LionRequestInit): void; +- /** +- * @type {(init?: LionRequestInit) => void} +- */ +- case6_unexpectedlyResolvesPathToNodeModules: (init?: LionRequestInit) => void; + } +-export type LionRequestInit = import("@lion/ajax").LionRequestInit; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/jsEmitIntersectionProperty.js b/testdata/baselines/reference/submodule/compiler/jsEmitIntersectionProperty.js new file mode 100644 index 0000000000..03093cce0b --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/jsEmitIntersectionProperty.js @@ -0,0 +1,38 @@ +//// [tests/cases/compiler/jsEmitIntersectionProperty.ts] //// + +//// [globals.d.ts] +declare class CoreObject { + static extend< + Statics, + Instance extends B1, + T1, + B1 + >( + this: Statics & { new(): Instance }, + arg1: T1 + ): Readonly & { new(): T1 & Instance }; + + toString(): string; +} + +declare class Mixin { + static create( + args?: T + ): Mixin; +} +declare const Observable: Mixin<{}> +declare class EmberObject extends CoreObject.extend(Observable) {} +declare class CoreView extends EmberObject.extend({}) {} +declare class Component extends CoreView.extend({}) {} + +//// [index.js] +export class MyComponent extends Component { + +} + + + + +//// [index.d.ts] +export declare class MyComponent extends Component { +} diff --git a/testdata/baselines/reference/submodule/compiler/jsEmitIntersectionProperty.js.diff b/testdata/baselines/reference/submodule/compiler/jsEmitIntersectionProperty.js.diff new file mode 100644 index 0000000000..25f4c63e25 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/jsEmitIntersectionProperty.js.diff @@ -0,0 +1,9 @@ +--- old.jsEmitIntersectionProperty.js ++++ new.jsEmitIntersectionProperty.js +@@= skipped -33, +33 lines =@@ + + + //// [index.d.ts] +-export class MyComponent extends Component { ++export declare class MyComponent extends Component { + } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/jsExportAssignmentNonMutableLocation.js b/testdata/baselines/reference/submodule/compiler/jsExportAssignmentNonMutableLocation.js new file mode 100644 index 0000000000..635b4c6367 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/jsExportAssignmentNonMutableLocation.js @@ -0,0 +1,20 @@ +//// [tests/cases/compiler/jsExportAssignmentNonMutableLocation.ts] //// + +//// [file.js] +const customSymbol = Symbol("custom"); + +// This is a common pattern in Node’s built-in modules: +module.exports = { + customSymbol, +}; + +exports.customSymbol2 = Symbol("custom"); + + + +//// [file.d.ts] +declare const _default: { + customSymbol: symbol; +}; +export = _default; +export var customSymbol2 = Symbol("custom"); diff --git a/testdata/baselines/reference/submodule/compiler/jsExportAssignmentNonMutableLocation.js.diff b/testdata/baselines/reference/submodule/compiler/jsExportAssignmentNonMutableLocation.js.diff new file mode 100644 index 0000000000..4094b52ae4 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/jsExportAssignmentNonMutableLocation.js.diff @@ -0,0 +1,13 @@ +--- old.jsExportAssignmentNonMutableLocation.js ++++ new.jsExportAssignmentNonMutableLocation.js +@@= skipped -12, +12 lines =@@ + + + //// [file.d.ts] +-export const customSymbol2: unique symbol; +-export const customSymbol: unique symbol; ++declare const _default: { ++ customSymbol: symbol; ++}; ++export = _default; ++export var customSymbol2 = Symbol("custom"); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/jsFileAlternativeUseOfOverloadTag.js b/testdata/baselines/reference/submodule/compiler/jsFileAlternativeUseOfOverloadTag.js new file mode 100644 index 0000000000..30fd9c4e05 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/jsFileAlternativeUseOfOverloadTag.js @@ -0,0 +1,124 @@ +//// [tests/cases/compiler/jsFileAlternativeUseOfOverloadTag.ts] //// + +//// [jsFileAlternativeUseOfOverloadTag.js] +// These are a few examples of existing alternative uses of @overload tag. +// They will not work as expected with our implementation, but we are +// trying to make sure that our changes do not result in any crashes here. + +const example1 = { + /** + * @overload Example1(value) + * Creates Example1 + * @param value [String] + */ + constructor: function Example1(value, options) {}, +}; + +const example2 = { + /** + * Example 2 + * + * @overload Example2(value) + * Creates Example2 + * @param value [String] + * @param secretAccessKey [String] + * @param sessionToken [String] + * @example Creates with string value + * const example = new Example(''); + * @overload Example2(options) + * Creates Example2 + * @option options value [String] + * @example Creates with options object + * const example = new Example2({ + * value: '', + * }); + */ + constructor: function Example2() {}, +}; + +const example3 = { + /** + * @overload evaluate(options = {}, [callback]) + * Evaluate something + * @note Something interesting + * @param options [map] + * @return [string] returns evaluation result + * @return [null] returns nothing if callback provided + * @callback callback function (error, result) + * If callback is provided it will be called with evaluation result + * @param error [Error] + * @param result [String] + * @see callback + */ + evaluate: function evaluate(options, callback) {}, +}; + + +//// [jsFileAlternativeUseOfOverloadTag.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +// These are a few examples of existing alternative uses of @overload tag. +// They will not work as expected with our implementation, but we are +// trying to make sure that our changes do not result in any crashes here. +const example1 = { + /** + * @overload Example1(value) + * Creates Example1 + * @param value [String] + */ + constructor: function Example1(value, options) { }, +}; +const example2 = { + /** + * Example 2 + * + * @overload Example2(value) + * Creates Example2 + * @param value [String] + * @param secretAccessKey [String] + * @param sessionToken [String] + * @example Creates with string value + * const example = new Example(''); + * @overload Example2(options) + * Creates Example2 + * @option options value [String] + * @example Creates with options object + * const example = new Example2({ + * value: '', + * }); + */ + constructor: function Example2() { }, +}; +const example3 = { + /** + * @overload evaluate(options = {}, [callback]) + * Evaluate something + * @note Something interesting + * @param options [map] + * @return [string] returns evaluation result + * @return [null] returns nothing if callback provided + * @callback callback function (error, result) + * If callback is provided it will be called with evaluation result + * @param error [Error] + * @param result [String] + * @see callback + */ + evaluate: function evaluate(options, callback) { }, +}; + + +//// [jsFileAlternativeUseOfOverloadTag.d.ts] +export type callback = (error: any, result: any) ; + + +//// [DtsFileErrors] + + +dist/jsFileAlternativeUseOfOverloadTag.d.ts(1,50): error TS1005: '=>' expected. + + +==== dist/jsFileAlternativeUseOfOverloadTag.d.ts (1 errors) ==== + export type callback = (error: any, result: any) ; + ~ +!!! error TS1005: '=>' expected. + \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/jsFileAlternativeUseOfOverloadTag.js.diff b/testdata/baselines/reference/submodule/compiler/jsFileAlternativeUseOfOverloadTag.js.diff new file mode 100644 index 0000000000..72bb7b12fe --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/jsFileAlternativeUseOfOverloadTag.js.diff @@ -0,0 +1,99 @@ +--- old.jsFileAlternativeUseOfOverloadTag.js ++++ new.jsFileAlternativeUseOfOverloadTag.js +@@= skipped -54, +54 lines =@@ + + + //// [jsFileAlternativeUseOfOverloadTag.js] ++"use strict"; ++Object.defineProperty(exports, "__esModule", { value: true }); + // These are a few examples of existing alternative uses of @overload tag. + // They will not work as expected with our implementation, but we are + // trying to make sure that our changes do not result in any crashes here. +@@= skipped -51, +53 lines =@@ + + + //// [jsFileAlternativeUseOfOverloadTag.d.ts] +-declare namespace example1 { +- /** +- * @overload Example1(value) +- * Creates Example1 +- * @param value [String] +- */ +- function constructor(value: any): any; +-} +-declare namespace example2 { +- /** +- * Example 2 +- * +- * @overload Example2(value) +- * Creates Example2 +- * @param value [String] +- * @param secretAccessKey [String] +- * @param sessionToken [String] +- * @example Creates with string value +- * const example = new Example(''); +- * @overload Example2(options) +- * Creates Example2 +- * @option options value [String] +- * @example Creates with options object +- * const example = new Example2({ +- * value: '', +- * }); +- */ +- export function constructor_1(value: any, secretAccessKey: any, sessionToken: any): any; +- /** +- * Example 2 +- * +- * @overload Example2(value) +- * Creates Example2 +- * @param value [String] +- * @param secretAccessKey [String] +- * @param sessionToken [String] +- * @example Creates with string value +- * const example = new Example(''); +- * @overload Example2(options) +- * Creates Example2 +- * @option options value [String] +- * @example Creates with options object +- * const example = new Example2({ +- * value: '', +- * }); +- */ +- export function constructor_1(): any; +- export { constructor_1 as constructor }; +-} +-declare namespace example3 { +- /** +- * @overload evaluate(options = {}, [callback]) +- * Evaluate something +- * @note Something interesting +- * @param options [map] +- * @return [string] returns evaluation result +- * @return [null] returns nothing if callback provided +- * @callback callback function (error, result) +- * If callback is provided it will be called with evaluation result +- * @param error [Error] +- * @param result [String] +- * @see callback +- */ +- function evaluate(): any; +-} +-/** +- * function (error, result) +- * If callback is provided it will be called with evaluation result +- */ +-type callback = (error: any, result: any) => any; ++export type callback = (error: any, result: any) ; ++ ++ ++//// [DtsFileErrors] ++ ++ ++dist/jsFileAlternativeUseOfOverloadTag.d.ts(1,50): error TS1005: '=>' expected. ++ ++ ++==== dist/jsFileAlternativeUseOfOverloadTag.d.ts (1 errors) ==== ++ export type callback = (error: any, result: any) ; ++ ~ ++!!! error TS1005: '=>' expected. ++ \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/jsFileCompilationAbstractModifier.js b/testdata/baselines/reference/submodule/compiler/jsFileCompilationAbstractModifier.js new file mode 100644 index 0000000000..ebfa7d78d6 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/jsFileCompilationAbstractModifier.js @@ -0,0 +1,11 @@ +//// [tests/cases/compiler/jsFileCompilationAbstractModifier.ts] //// + +//// [a.js] +abstract class c { + abstract x; +} + +//// [a.js] +class c { + x; +} diff --git a/testdata/baselines/reference/submodule/compiler/jsFileCompilationAbstractModifier.js.diff b/testdata/baselines/reference/submodule/compiler/jsFileCompilationAbstractModifier.js.diff new file mode 100644 index 0000000000..bc627e2070 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/jsFileCompilationAbstractModifier.js.diff @@ -0,0 +1,15 @@ +--- old.jsFileCompilationAbstractModifier.js ++++ new.jsFileCompilationAbstractModifier.js +@@= skipped -0, +0 lines =@@ +- ++//// [tests/cases/compiler/jsFileCompilationAbstractModifier.ts] //// ++ ++//// [a.js] ++abstract class c { ++ abstract x; ++} ++ ++//// [a.js] ++class c { ++ x; ++} \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/jsFileCompilationAmbientVarDeclarationSyntax.js b/testdata/baselines/reference/submodule/compiler/jsFileCompilationAmbientVarDeclarationSyntax.js new file mode 100644 index 0000000000..3a4deaee2b --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/jsFileCompilationAmbientVarDeclarationSyntax.js @@ -0,0 +1,6 @@ +//// [tests/cases/compiler/jsFileCompilationAmbientVarDeclarationSyntax.ts] //// + +//// [a.js] +declare var v; + +//// [a.js] diff --git a/testdata/baselines/reference/submodule/compiler/jsFileCompilationAmbientVarDeclarationSyntax.js.diff b/testdata/baselines/reference/submodule/compiler/jsFileCompilationAmbientVarDeclarationSyntax.js.diff new file mode 100644 index 0000000000..dbba554420 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/jsFileCompilationAmbientVarDeclarationSyntax.js.diff @@ -0,0 +1,10 @@ +--- old.jsFileCompilationAmbientVarDeclarationSyntax.js ++++ new.jsFileCompilationAmbientVarDeclarationSyntax.js +@@= skipped -0, +0 lines =@@ +- ++//// [tests/cases/compiler/jsFileCompilationAmbientVarDeclarationSyntax.ts] //// ++ ++//// [a.js] ++declare var v; ++ ++//// [a.js] \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/jsFileCompilationAwaitModifier.js b/testdata/baselines/reference/submodule/compiler/jsFileCompilationAwaitModifier.js new file mode 100644 index 0000000000..010f7f0779 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/jsFileCompilationAwaitModifier.js @@ -0,0 +1,30 @@ +//// [tests/cases/compiler/jsFileCompilationAwaitModifier.ts] //// + +//// [a.js] +class Foo { + async a() { + await Promise.resolve(1); + } + + b = async () => { + await Promise.resolve(1); + } +} + + +//// [a.js] +class Foo { + async a() { + await Promise.resolve(1); + } + b = async () => { + await Promise.resolve(1); + }; +} + + +//// [a.d.ts] +declare class Foo { + a(): Promise; + b: () => Promise; +} diff --git a/testdata/baselines/reference/submodule/compiler/jsFileCompilationAwaitModifier.js.diff b/testdata/baselines/reference/submodule/compiler/jsFileCompilationAwaitModifier.js.diff new file mode 100644 index 0000000000..3f2cd40883 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/jsFileCompilationAwaitModifier.js.diff @@ -0,0 +1,34 @@ +--- old.jsFileCompilationAwaitModifier.js ++++ new.jsFileCompilationAwaitModifier.js +@@= skipped -12, +12 lines =@@ + + + //// [a.js] +-var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { +- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } +- return new (P || (P = Promise))(function (resolve, reject) { +- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } +- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } +- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } +- step((generator = generator.apply(thisArg, _arguments || [])).next()); +- }); +-}; + class Foo { +- constructor() { +- this.b = () => __awaiter(this, void 0, void 0, function* () { +- yield Promise.resolve(1); +- }); +- } +- a() { +- return __awaiter(this, void 0, void 0, function* () { +- yield Promise.resolve(1); +- }); +- } ++ async a() { ++ await Promise.resolve(1); ++ } ++ b = async () => { ++ await Promise.resolve(1); ++ }; + } + diff --git a/testdata/baselines/reference/submodule/compiler/jsFileCompilationEnumSyntax.js b/testdata/baselines/reference/submodule/compiler/jsFileCompilationEnumSyntax.js new file mode 100644 index 0000000000..9518b07eb9 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/jsFileCompilationEnumSyntax.js @@ -0,0 +1,9 @@ +//// [tests/cases/compiler/jsFileCompilationEnumSyntax.ts] //// + +//// [a.js] +enum E { } + +//// [a.js] +var E; +(function (E) { +})(E || (E = {})); diff --git a/testdata/baselines/reference/submodule/compiler/jsFileCompilationEnumSyntax.js.diff b/testdata/baselines/reference/submodule/compiler/jsFileCompilationEnumSyntax.js.diff new file mode 100644 index 0000000000..1ef4e3950c --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/jsFileCompilationEnumSyntax.js.diff @@ -0,0 +1,13 @@ +--- old.jsFileCompilationEnumSyntax.js ++++ new.jsFileCompilationEnumSyntax.js +@@= skipped -0, +0 lines =@@ +- ++//// [tests/cases/compiler/jsFileCompilationEnumSyntax.ts] //// ++ ++//// [a.js] ++enum E { } ++ ++//// [a.js] ++var E; ++(function (E) { ++})(E || (E = {})); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/jsFileCompilationErrorOnDeclarationsWithJsFileReferenceWithNoOut.js b/testdata/baselines/reference/submodule/compiler/jsFileCompilationErrorOnDeclarationsWithJsFileReferenceWithNoOut.js new file mode 100644 index 0000000000..12261429df --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/jsFileCompilationErrorOnDeclarationsWithJsFileReferenceWithNoOut.js @@ -0,0 +1,37 @@ +//// [tests/cases/compiler/jsFileCompilationErrorOnDeclarationsWithJsFileReferenceWithNoOut.ts] //// + +//// [a.ts] +class c { +} + +//// [b.ts] +/// +// b.d.ts should have c.d.ts as the reference path +function foo() { +} + +//// [c.js] +function bar() { +} + +//// [a.js] +class c { +} +//// [c.js] +function bar() { +} +//// [b.js] +/// +// b.d.ts should have c.d.ts as the reference path +function foo() { +} + + +//// [a.d.ts] +declare class c { +} +//// [c.d.ts] +declare function bar(): void; +//// [b.d.ts] +// b.d.ts should have c.d.ts as the reference path +declare function foo(): void; diff --git a/testdata/baselines/reference/submodule/compiler/jsFileCompilationErrorOnDeclarationsWithJsFileReferenceWithNoOut.js.diff b/testdata/baselines/reference/submodule/compiler/jsFileCompilationErrorOnDeclarationsWithJsFileReferenceWithNoOut.js.diff new file mode 100644 index 0000000000..9bbdc42d51 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/jsFileCompilationErrorOnDeclarationsWithJsFileReferenceWithNoOut.js.diff @@ -0,0 +1,18 @@ +--- old.jsFileCompilationErrorOnDeclarationsWithJsFileReferenceWithNoOut.js ++++ new.jsFileCompilationErrorOnDeclarationsWithJsFileReferenceWithNoOut.js +@@= skipped -16, +16 lines =@@ + //// [a.js] + class c { + } ++//// [c.js] ++function bar() { ++} + //// [b.js] + /// + // b.d.ts should have c.d.ts as the reference path +@@= skipped -13, +16 lines =@@ + //// [c.d.ts] + declare function bar(): void; + //// [b.d.ts] ++// b.d.ts should have c.d.ts as the reference path + declare function foo(): void; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/jsFileCompilationErrorOnDeclarationsWithJsFileReferenceWithOutDir.js b/testdata/baselines/reference/submodule/compiler/jsFileCompilationErrorOnDeclarationsWithJsFileReferenceWithOutDir.js new file mode 100644 index 0000000000..9f4a061d0d --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/jsFileCompilationErrorOnDeclarationsWithJsFileReferenceWithOutDir.js @@ -0,0 +1,34 @@ +//// [tests/cases/compiler/jsFileCompilationErrorOnDeclarationsWithJsFileReferenceWithOutDir.ts] //// + +//// [a.ts] +class c { +} + +//// [b.ts] +/// +function foo() { +} + +//// [c.js] +function bar() { +} + +//// [a.js] +class c { +} +//// [c.js] +function bar() { +} +//// [b.js] +/// +function foo() { +} + + +//// [a.d.ts] +declare class c { +} +//// [c.d.ts] +declare function bar(): void; +//// [b.d.ts] +declare function foo(): void; diff --git a/testdata/baselines/reference/submodule/compiler/jsFileCompilationExportAssignmentSyntax.js b/testdata/baselines/reference/submodule/compiler/jsFileCompilationExportAssignmentSyntax.js new file mode 100644 index 0000000000..571a8c3f33 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/jsFileCompilationExportAssignmentSyntax.js @@ -0,0 +1,8 @@ +//// [tests/cases/compiler/jsFileCompilationExportAssignmentSyntax.ts] //// + +//// [a.js] +export = b; + +//// [a.js] +"use strict"; +module.exports = b; diff --git a/testdata/baselines/reference/submodule/compiler/jsFileCompilationExportAssignmentSyntax.js.diff b/testdata/baselines/reference/submodule/compiler/jsFileCompilationExportAssignmentSyntax.js.diff new file mode 100644 index 0000000000..bdebaef043 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/jsFileCompilationExportAssignmentSyntax.js.diff @@ -0,0 +1,12 @@ +--- old.jsFileCompilationExportAssignmentSyntax.js ++++ new.jsFileCompilationExportAssignmentSyntax.js +@@= skipped -0, +0 lines =@@ +- ++//// [tests/cases/compiler/jsFileCompilationExportAssignmentSyntax.ts] //// ++ ++//// [a.js] ++export = b; ++ ++//// [a.js] ++"use strict"; ++module.exports = b; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/jsFileCompilationHeritageClauseSyntaxOfClass.js b/testdata/baselines/reference/submodule/compiler/jsFileCompilationHeritageClauseSyntaxOfClass.js new file mode 100644 index 0000000000..a4d672121c --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/jsFileCompilationHeritageClauseSyntaxOfClass.js @@ -0,0 +1,8 @@ +//// [tests/cases/compiler/jsFileCompilationHeritageClauseSyntaxOfClass.ts] //// + +//// [a.js] +class C implements D { } + +//// [a.js] +class C { +} diff --git a/testdata/baselines/reference/submodule/compiler/jsFileCompilationHeritageClauseSyntaxOfClass.js.diff b/testdata/baselines/reference/submodule/compiler/jsFileCompilationHeritageClauseSyntaxOfClass.js.diff new file mode 100644 index 0000000000..f7ae8f286c --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/jsFileCompilationHeritageClauseSyntaxOfClass.js.diff @@ -0,0 +1,12 @@ +--- old.jsFileCompilationHeritageClauseSyntaxOfClass.js ++++ new.jsFileCompilationHeritageClauseSyntaxOfClass.js +@@= skipped -0, +0 lines =@@ +- ++//// [tests/cases/compiler/jsFileCompilationHeritageClauseSyntaxOfClass.ts] //// ++ ++//// [a.js] ++class C implements D { } ++ ++//// [a.js] ++class C { ++} \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/jsFileCompilationImportEqualsSyntax.js b/testdata/baselines/reference/submodule/compiler/jsFileCompilationImportEqualsSyntax.js new file mode 100644 index 0000000000..b395972f32 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/jsFileCompilationImportEqualsSyntax.js @@ -0,0 +1,7 @@ +//// [tests/cases/compiler/jsFileCompilationImportEqualsSyntax.ts] //// + +//// [a.js] +import a = b; + +//// [a.js] +var a = b; diff --git a/testdata/baselines/reference/submodule/compiler/jsFileCompilationImportEqualsSyntax.js.diff b/testdata/baselines/reference/submodule/compiler/jsFileCompilationImportEqualsSyntax.js.diff new file mode 100644 index 0000000000..8bf537cf3a --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/jsFileCompilationImportEqualsSyntax.js.diff @@ -0,0 +1,11 @@ +--- old.jsFileCompilationImportEqualsSyntax.js ++++ new.jsFileCompilationImportEqualsSyntax.js +@@= skipped -0, +0 lines =@@ +- ++//// [tests/cases/compiler/jsFileCompilationImportEqualsSyntax.ts] //// ++ ++//// [a.js] ++import a = b; ++ ++//// [a.js] ++var a = b; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/jsFileCompilationInterfaceSyntax.js b/testdata/baselines/reference/submodule/compiler/jsFileCompilationInterfaceSyntax.js new file mode 100644 index 0000000000..6303e9729c --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/jsFileCompilationInterfaceSyntax.js @@ -0,0 +1,6 @@ +//// [tests/cases/compiler/jsFileCompilationInterfaceSyntax.ts] //// + +//// [a.js] +interface I { } + +//// [a.js] diff --git a/testdata/baselines/reference/submodule/compiler/jsFileCompilationInterfaceSyntax.js.diff b/testdata/baselines/reference/submodule/compiler/jsFileCompilationInterfaceSyntax.js.diff new file mode 100644 index 0000000000..b69ca361b7 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/jsFileCompilationInterfaceSyntax.js.diff @@ -0,0 +1,10 @@ +--- old.jsFileCompilationInterfaceSyntax.js ++++ new.jsFileCompilationInterfaceSyntax.js +@@= skipped -0, +0 lines =@@ +- ++//// [tests/cases/compiler/jsFileCompilationInterfaceSyntax.ts] //// ++ ++//// [a.js] ++interface I { } ++ ++//// [a.js] \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/jsFileCompilationModuleSyntax.js b/testdata/baselines/reference/submodule/compiler/jsFileCompilationModuleSyntax.js new file mode 100644 index 0000000000..f74fe30dec --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/jsFileCompilationModuleSyntax.js @@ -0,0 +1,6 @@ +//// [tests/cases/compiler/jsFileCompilationModuleSyntax.ts] //// + +//// [a.js] +module M { } + +//// [a.js] diff --git a/testdata/baselines/reference/submodule/compiler/jsFileCompilationModuleSyntax.js.diff b/testdata/baselines/reference/submodule/compiler/jsFileCompilationModuleSyntax.js.diff new file mode 100644 index 0000000000..3e7cbed5a5 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/jsFileCompilationModuleSyntax.js.diff @@ -0,0 +1,10 @@ +--- old.jsFileCompilationModuleSyntax.js ++++ new.jsFileCompilationModuleSyntax.js +@@= skipped -0, +0 lines =@@ +- ++//// [tests/cases/compiler/jsFileCompilationModuleSyntax.ts] //// ++ ++//// [a.js] ++module M { } ++ ++//// [a.js] \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/jsFileCompilationNoErrorWithoutDeclarationsWithJsFileReferenceWithNoOut.js b/testdata/baselines/reference/submodule/compiler/jsFileCompilationNoErrorWithoutDeclarationsWithJsFileReferenceWithNoOut.js new file mode 100644 index 0000000000..319a16f5d9 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/jsFileCompilationNoErrorWithoutDeclarationsWithJsFileReferenceWithNoOut.js @@ -0,0 +1,27 @@ +//// [tests/cases/compiler/jsFileCompilationNoErrorWithoutDeclarationsWithJsFileReferenceWithNoOut.ts] //// + +//// [a.ts] +class c { +} + +//// [b.ts] +/// +// no error on above reference path since not emitting declarations +function foo() { +} + +//// [c.js] +function bar() { +} + +//// [a.js] +class c { +} +//// [c.js] +function bar() { +} +//// [b.js] +/// +// no error on above reference path since not emitting declarations +function foo() { +} diff --git a/testdata/baselines/reference/submodule/compiler/jsFileCompilationNoErrorWithoutDeclarationsWithJsFileReferenceWithNoOut.js.diff b/testdata/baselines/reference/submodule/compiler/jsFileCompilationNoErrorWithoutDeclarationsWithJsFileReferenceWithNoOut.js.diff new file mode 100644 index 0000000000..d4ae6aad6d --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/jsFileCompilationNoErrorWithoutDeclarationsWithJsFileReferenceWithNoOut.js.diff @@ -0,0 +1,12 @@ +--- old.jsFileCompilationNoErrorWithoutDeclarationsWithJsFileReferenceWithNoOut.js ++++ new.jsFileCompilationNoErrorWithoutDeclarationsWithJsFileReferenceWithNoOut.js +@@= skipped -16, +16 lines =@@ + //// [a.js] + class c { + } ++//// [c.js] ++function bar() { ++} + //// [b.js] + /// + // no error on above reference path since not emitting declarations \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/jsFileCompilationOptionalClassElementSyntaxOfClass.js b/testdata/baselines/reference/submodule/compiler/jsFileCompilationOptionalClassElementSyntaxOfClass.js new file mode 100644 index 0000000000..d3c8038603 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/jsFileCompilationOptionalClassElementSyntaxOfClass.js @@ -0,0 +1,15 @@ +//// [tests/cases/compiler/jsFileCompilationOptionalClassElementSyntaxOfClass.ts] //// + +//// [a.js] +class C { + foo?() { + } + bar? = 1; +} + +//// [a.js] +class C { + foo() { + } + bar = 1; +} diff --git a/testdata/baselines/reference/submodule/compiler/jsFileCompilationOptionalClassElementSyntaxOfClass.js.diff b/testdata/baselines/reference/submodule/compiler/jsFileCompilationOptionalClassElementSyntaxOfClass.js.diff new file mode 100644 index 0000000000..dcacf2ce71 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/jsFileCompilationOptionalClassElementSyntaxOfClass.js.diff @@ -0,0 +1,19 @@ +--- old.jsFileCompilationOptionalClassElementSyntaxOfClass.js ++++ new.jsFileCompilationOptionalClassElementSyntaxOfClass.js +@@= skipped -0, +0 lines =@@ +- ++//// [tests/cases/compiler/jsFileCompilationOptionalClassElementSyntaxOfClass.ts] //// ++ ++//// [a.js] ++class C { ++ foo?() { ++ } ++ bar? = 1; ++} ++ ++//// [a.js] ++class C { ++ foo() { ++ } ++ bar = 1; ++} \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/jsFileCompilationOptionalParameter.js b/testdata/baselines/reference/submodule/compiler/jsFileCompilationOptionalParameter.js new file mode 100644 index 0000000000..0df0796ec9 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/jsFileCompilationOptionalParameter.js @@ -0,0 +1,7 @@ +//// [tests/cases/compiler/jsFileCompilationOptionalParameter.ts] //// + +//// [a.js] +function F(p?) { } + +//// [a.js] +function F(p) { } diff --git a/testdata/baselines/reference/submodule/compiler/jsFileCompilationOptionalParameter.js.diff b/testdata/baselines/reference/submodule/compiler/jsFileCompilationOptionalParameter.js.diff new file mode 100644 index 0000000000..1b63549331 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/jsFileCompilationOptionalParameter.js.diff @@ -0,0 +1,11 @@ +--- old.jsFileCompilationOptionalParameter.js ++++ new.jsFileCompilationOptionalParameter.js +@@= skipped -0, +0 lines =@@ +- ++//// [tests/cases/compiler/jsFileCompilationOptionalParameter.ts] //// ++ ++//// [a.js] ++function F(p?) { } ++ ++//// [a.js] ++function F(p) { } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/jsFileCompilationPublicMethodSyntaxOfClass.js b/testdata/baselines/reference/submodule/compiler/jsFileCompilationPublicMethodSyntaxOfClass.js new file mode 100644 index 0000000000..d80f53375d --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/jsFileCompilationPublicMethodSyntaxOfClass.js @@ -0,0 +1,13 @@ +//// [tests/cases/compiler/jsFileCompilationPublicMethodSyntaxOfClass.ts] //// + +//// [a.js] +class C { + public foo() { + } +} + +//// [a.js] +class C { + foo() { + } +} diff --git a/testdata/baselines/reference/submodule/compiler/jsFileCompilationPublicMethodSyntaxOfClass.js.diff b/testdata/baselines/reference/submodule/compiler/jsFileCompilationPublicMethodSyntaxOfClass.js.diff new file mode 100644 index 0000000000..1e629e6633 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/jsFileCompilationPublicMethodSyntaxOfClass.js.diff @@ -0,0 +1,17 @@ +--- old.jsFileCompilationPublicMethodSyntaxOfClass.js ++++ new.jsFileCompilationPublicMethodSyntaxOfClass.js +@@= skipped -0, +0 lines =@@ +- ++//// [tests/cases/compiler/jsFileCompilationPublicMethodSyntaxOfClass.ts] //// ++ ++//// [a.js] ++class C { ++ public foo() { ++ } ++} ++ ++//// [a.js] ++class C { ++ foo() { ++ } ++} \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/jsFileCompilationPublicParameterModifier.js b/testdata/baselines/reference/submodule/compiler/jsFileCompilationPublicParameterModifier.js new file mode 100644 index 0000000000..b28645af7e --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/jsFileCompilationPublicParameterModifier.js @@ -0,0 +1,12 @@ +//// [tests/cases/compiler/jsFileCompilationPublicParameterModifier.ts] //// + +//// [a.js] +class C { constructor(public x) { }} + +//// [a.js] +class C { + x; + constructor(x) { + this.x = x; + } +} diff --git a/testdata/baselines/reference/submodule/compiler/jsFileCompilationPublicParameterModifier.js.diff b/testdata/baselines/reference/submodule/compiler/jsFileCompilationPublicParameterModifier.js.diff new file mode 100644 index 0000000000..a0dbd90a98 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/jsFileCompilationPublicParameterModifier.js.diff @@ -0,0 +1,16 @@ +--- old.jsFileCompilationPublicParameterModifier.js ++++ new.jsFileCompilationPublicParameterModifier.js +@@= skipped -0, +0 lines =@@ +- ++//// [tests/cases/compiler/jsFileCompilationPublicParameterModifier.ts] //// ++ ++//// [a.js] ++class C { constructor(public x) { }} ++ ++//// [a.js] ++class C { ++ x; ++ constructor(x) { ++ this.x = x; ++ } ++} \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/jsFileCompilationReturnTypeSyntaxOfFunction.js b/testdata/baselines/reference/submodule/compiler/jsFileCompilationReturnTypeSyntaxOfFunction.js new file mode 100644 index 0000000000..857d2d2386 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/jsFileCompilationReturnTypeSyntaxOfFunction.js @@ -0,0 +1,7 @@ +//// [tests/cases/compiler/jsFileCompilationReturnTypeSyntaxOfFunction.ts] //// + +//// [a.js] +function F(): number { } + +//// [a.js] +function F() { } diff --git a/testdata/baselines/reference/submodule/compiler/jsFileCompilationReturnTypeSyntaxOfFunction.js.diff b/testdata/baselines/reference/submodule/compiler/jsFileCompilationReturnTypeSyntaxOfFunction.js.diff new file mode 100644 index 0000000000..9ead4e8edd --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/jsFileCompilationReturnTypeSyntaxOfFunction.js.diff @@ -0,0 +1,11 @@ +--- old.jsFileCompilationReturnTypeSyntaxOfFunction.js ++++ new.jsFileCompilationReturnTypeSyntaxOfFunction.js +@@= skipped -0, +0 lines =@@ +- ++//// [tests/cases/compiler/jsFileCompilationReturnTypeSyntaxOfFunction.ts] //// ++ ++//// [a.js] ++function F(): number { } ++ ++//// [a.js] ++function F() { } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/jsFileCompilationSyntaxError.js b/testdata/baselines/reference/submodule/compiler/jsFileCompilationSyntaxError.js new file mode 100644 index 0000000000..d00d42399b --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/jsFileCompilationSyntaxError.js @@ -0,0 +1,16 @@ +//// [tests/cases/compiler/jsFileCompilationSyntaxError.ts] //// + +//// [a.js] +/** + * @type {number} + * @type {string} + */ +var v; + + +//// [a.js] +/** + * @type {number} + * @type {string} + */ +var v; diff --git a/testdata/baselines/reference/submodule/compiler/jsFileCompilationSyntaxError.js.diff b/testdata/baselines/reference/submodule/compiler/jsFileCompilationSyntaxError.js.diff new file mode 100644 index 0000000000..9b65edd7a0 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/jsFileCompilationSyntaxError.js.diff @@ -0,0 +1,20 @@ +--- old.jsFileCompilationSyntaxError.js ++++ new.jsFileCompilationSyntaxError.js +@@= skipped -0, +0 lines =@@ +- ++//// [tests/cases/compiler/jsFileCompilationSyntaxError.ts] //// ++ ++//// [a.js] ++/** ++ * @type {number} ++ * @type {string} ++ */ ++var v; ++ ++ ++//// [a.js] ++/** ++ * @type {number} ++ * @type {string} ++ */ ++var v; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/jsFileCompilationTypeAliasSyntax.js b/testdata/baselines/reference/submodule/compiler/jsFileCompilationTypeAliasSyntax.js new file mode 100644 index 0000000000..6d9720550a --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/jsFileCompilationTypeAliasSyntax.js @@ -0,0 +1,6 @@ +//// [tests/cases/compiler/jsFileCompilationTypeAliasSyntax.ts] //// + +//// [a.js] +type a = b; + +//// [a.js] diff --git a/testdata/baselines/reference/submodule/compiler/jsFileCompilationTypeAliasSyntax.js.diff b/testdata/baselines/reference/submodule/compiler/jsFileCompilationTypeAliasSyntax.js.diff new file mode 100644 index 0000000000..8de34c2d4c --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/jsFileCompilationTypeAliasSyntax.js.diff @@ -0,0 +1,10 @@ +--- old.jsFileCompilationTypeAliasSyntax.js ++++ new.jsFileCompilationTypeAliasSyntax.js +@@= skipped -0, +0 lines =@@ +- ++//// [tests/cases/compiler/jsFileCompilationTypeAliasSyntax.ts] //// ++ ++//// [a.js] ++type a = b; ++ ++//// [a.js] \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/jsFileCompilationTypeArgumentSyntaxOfCall.js b/testdata/baselines/reference/submodule/compiler/jsFileCompilationTypeArgumentSyntaxOfCall.js new file mode 100644 index 0000000000..83cfef31d1 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/jsFileCompilationTypeArgumentSyntaxOfCall.js @@ -0,0 +1,17 @@ +//// [tests/cases/compiler/jsFileCompilationTypeArgumentSyntaxOfCall.ts] //// + +//// [a.jsx] +Foo(); +Foo(1); +Foo``; +>
; +/>; + + +//// [a.js] +Foo < number > (); +Foo < number > (1); +Foo < number > ``; +, >; +, />; +; diff --git a/testdata/baselines/reference/submodule/compiler/jsFileCompilationTypeOfParameter.js b/testdata/baselines/reference/submodule/compiler/jsFileCompilationTypeOfParameter.js new file mode 100644 index 0000000000..bcfde1ad31 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/jsFileCompilationTypeOfParameter.js @@ -0,0 +1,7 @@ +//// [tests/cases/compiler/jsFileCompilationTypeOfParameter.ts] //// + +//// [a.js] +function F(a: number) { } + +//// [a.js] +function F(a) { } diff --git a/testdata/baselines/reference/submodule/compiler/jsFileCompilationTypeOfParameter.js.diff b/testdata/baselines/reference/submodule/compiler/jsFileCompilationTypeOfParameter.js.diff new file mode 100644 index 0000000000..90d6e39ea5 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/jsFileCompilationTypeOfParameter.js.diff @@ -0,0 +1,11 @@ +--- old.jsFileCompilationTypeOfParameter.js ++++ new.jsFileCompilationTypeOfParameter.js +@@= skipped -0, +0 lines =@@ +- ++//// [tests/cases/compiler/jsFileCompilationTypeOfParameter.ts] //// ++ ++//// [a.js] ++function F(a: number) { } ++ ++//// [a.js] ++function F(a) { } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/jsFileCompilationTypeParameterSyntaxOfClass.js b/testdata/baselines/reference/submodule/compiler/jsFileCompilationTypeParameterSyntaxOfClass.js new file mode 100644 index 0000000000..a07823c973 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/jsFileCompilationTypeParameterSyntaxOfClass.js @@ -0,0 +1,8 @@ +//// [tests/cases/compiler/jsFileCompilationTypeParameterSyntaxOfClass.ts] //// + +//// [a.js] +class C { } + +//// [a.js] +class C { +} diff --git a/testdata/baselines/reference/submodule/compiler/jsFileCompilationTypeParameterSyntaxOfClass.js.diff b/testdata/baselines/reference/submodule/compiler/jsFileCompilationTypeParameterSyntaxOfClass.js.diff new file mode 100644 index 0000000000..3125777634 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/jsFileCompilationTypeParameterSyntaxOfClass.js.diff @@ -0,0 +1,12 @@ +--- old.jsFileCompilationTypeParameterSyntaxOfClass.js ++++ new.jsFileCompilationTypeParameterSyntaxOfClass.js +@@= skipped -0, +0 lines =@@ +- ++//// [tests/cases/compiler/jsFileCompilationTypeParameterSyntaxOfClass.ts] //// ++ ++//// [a.js] ++class C { } ++ ++//// [a.js] ++class C { ++} \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/jsFileCompilationTypeParameterSyntaxOfFunction.js b/testdata/baselines/reference/submodule/compiler/jsFileCompilationTypeParameterSyntaxOfFunction.js new file mode 100644 index 0000000000..acf323e152 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/jsFileCompilationTypeParameterSyntaxOfFunction.js @@ -0,0 +1,7 @@ +//// [tests/cases/compiler/jsFileCompilationTypeParameterSyntaxOfFunction.ts] //// + +//// [a.js] +function F() { } + +//// [a.js] +function F() { } diff --git a/testdata/baselines/reference/submodule/compiler/jsFileCompilationTypeParameterSyntaxOfFunction.js.diff b/testdata/baselines/reference/submodule/compiler/jsFileCompilationTypeParameterSyntaxOfFunction.js.diff new file mode 100644 index 0000000000..b8c1ad21d2 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/jsFileCompilationTypeParameterSyntaxOfFunction.js.diff @@ -0,0 +1,11 @@ +--- old.jsFileCompilationTypeParameterSyntaxOfFunction.js ++++ new.jsFileCompilationTypeParameterSyntaxOfFunction.js +@@= skipped -0, +0 lines =@@ +- ++//// [tests/cases/compiler/jsFileCompilationTypeParameterSyntaxOfFunction.ts] //// ++ ++//// [a.js] ++function F() { } ++ ++//// [a.js] ++function F() { } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/jsFileCompilationTypeSyntaxOfVar.js b/testdata/baselines/reference/submodule/compiler/jsFileCompilationTypeSyntaxOfVar.js new file mode 100644 index 0000000000..e17b15be72 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/jsFileCompilationTypeSyntaxOfVar.js @@ -0,0 +1,7 @@ +//// [tests/cases/compiler/jsFileCompilationTypeSyntaxOfVar.ts] //// + +//// [a.js] +var v: () => number; + +//// [a.js] +var v; diff --git a/testdata/baselines/reference/submodule/compiler/jsFileCompilationTypeSyntaxOfVar.js.diff b/testdata/baselines/reference/submodule/compiler/jsFileCompilationTypeSyntaxOfVar.js.diff new file mode 100644 index 0000000000..223606c635 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/jsFileCompilationTypeSyntaxOfVar.js.diff @@ -0,0 +1,11 @@ +--- old.jsFileCompilationTypeSyntaxOfVar.js ++++ new.jsFileCompilationTypeSyntaxOfVar.js +@@= skipped -0, +0 lines =@@ +- ++//// [tests/cases/compiler/jsFileCompilationTypeSyntaxOfVar.ts] //// ++ ++//// [a.js] ++var v: () => number; ++ ++//// [a.js] ++var v; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/jsFileCompilationWithMapFileAsJs.js b/testdata/baselines/reference/submodule/compiler/jsFileCompilationWithMapFileAsJs.js new file mode 100644 index 0000000000..7b55fe0546 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/jsFileCompilationWithMapFileAsJs.js @@ -0,0 +1,22 @@ +//// [tests/cases/compiler/jsFileCompilationWithMapFileAsJs.ts] //// + +//// [a.ts] +class c { +} + +//// [b.js.map] +function foo() { +} + +//// [b.js] +function bar() { +} + +//// [a.js] +class c { +} +//# sourceMappingURL=a.js.map +//// [b.js] +function bar() { +} +//# sourceMappingURL=b.js.map \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/jsFileCompilationWithMapFileAsJs.js.diff b/testdata/baselines/reference/submodule/compiler/jsFileCompilationWithMapFileAsJs.js.diff new file mode 100644 index 0000000000..1860eab87e --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/jsFileCompilationWithMapFileAsJs.js.diff @@ -0,0 +1,10 @@ +--- old.jsFileCompilationWithMapFileAsJs.js ++++ new.jsFileCompilationWithMapFileAsJs.js +@@= skipped -15, +15 lines =@@ + class c { + } + //# sourceMappingURL=a.js.map ++//// [b.js] ++function bar() { ++} ++//# sourceMappingURL=b.js.map \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/jsFileCompilationWithMapFileAsJsWithInlineSourceMap.js b/testdata/baselines/reference/submodule/compiler/jsFileCompilationWithMapFileAsJsWithInlineSourceMap.js new file mode 100644 index 0000000000..4113b5d025 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/jsFileCompilationWithMapFileAsJsWithInlineSourceMap.js @@ -0,0 +1,22 @@ +//// [tests/cases/compiler/jsFileCompilationWithMapFileAsJsWithInlineSourceMap.ts] //// + +//// [a.ts] +class c { +} + +//// [b.js.map] +function foo() { +} + +//// [b.js] +function bar() { +} + +//// [a.js] +class c { +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDO0NBQ04ifQ== +//// [b.js] +function bar() { +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImIuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsU0FBUyxHQUFHLEdBQUc7QUFBQyxDQUNmIn0= \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/jsFileCompilationWithMapFileAsJsWithInlineSourceMap.js.diff b/testdata/baselines/reference/submodule/compiler/jsFileCompilationWithMapFileAsJsWithInlineSourceMap.js.diff new file mode 100644 index 0000000000..a209cdc5b3 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/jsFileCompilationWithMapFileAsJsWithInlineSourceMap.js.diff @@ -0,0 +1,10 @@ +--- old.jsFileCompilationWithMapFileAsJsWithInlineSourceMap.js ++++ new.jsFileCompilationWithMapFileAsJsWithInlineSourceMap.js +@@= skipped -15, +15 lines =@@ + class c { + } + //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDO0NBQ04ifQ== ++//// [b.js] ++function bar() { ++} ++//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImIuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsU0FBUyxHQUFHLEdBQUc7QUFBQyxDQUNmIn0= \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/jsFileCompilationWithMapFileAsJsWithOutDir.js b/testdata/baselines/reference/submodule/compiler/jsFileCompilationWithMapFileAsJsWithOutDir.js new file mode 100644 index 0000000000..48abc4037a --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/jsFileCompilationWithMapFileAsJsWithOutDir.js @@ -0,0 +1,22 @@ +//// [tests/cases/compiler/jsFileCompilationWithMapFileAsJsWithOutDir.ts] //// + +//// [a.ts] +class c { +} + +//// [b.js.map] +function foo() { +} + +//// [b.js] +function bar() { +} + +//// [a.js] +class c { +} +//# sourceMappingURL=a.js.map +//// [b.js] +function bar() { +} +//# sourceMappingURL=b.js.map \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/jsFileCompilationWithoutJsExtensions.errors.txt.diff b/testdata/baselines/reference/submodule/compiler/jsFileCompilationWithoutJsExtensions.errors.txt.diff new file mode 100644 index 0000000000..aa5135ffa1 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/jsFileCompilationWithoutJsExtensions.errors.txt.diff @@ -0,0 +1,14 @@ +--- old.jsFileCompilationWithoutJsExtensions.errors.txt ++++ new.jsFileCompilationWithoutJsExtensions.errors.txt +@@= skipped -0, +0 lines =@@ +-error TS6504: File 'a.js' is a JavaScript file. Did you mean to enable the 'allowJs' option? +- The file is in the program because: +- Root file specified for compilation +- +- +-!!! error TS6504: File 'a.js' is a JavaScript file. Did you mean to enable the 'allowJs' option? +-!!! error TS6504: The file is in the program because: +-!!! error TS6504: Root file specified for compilation +-==== a.js (0 errors) ==== +- declare var v; ++ \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/jsFileCompilationWithoutOut.js b/testdata/baselines/reference/submodule/compiler/jsFileCompilationWithoutOut.js new file mode 100644 index 0000000000..8dcae4ea8d --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/jsFileCompilationWithoutOut.js @@ -0,0 +1,17 @@ +//// [tests/cases/compiler/jsFileCompilationWithoutOut.ts] //// + +//// [a.ts] +class c { +} + +//// [b.js] +function foo() { +} + + +//// [a.js] +class c { +} +//// [b.js] +function foo() { +} diff --git a/testdata/baselines/reference/submodule/compiler/jsFileCompilationWithoutOut.js.diff b/testdata/baselines/reference/submodule/compiler/jsFileCompilationWithoutOut.js.diff new file mode 100644 index 0000000000..35b44e5ad2 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/jsFileCompilationWithoutOut.js.diff @@ -0,0 +1,9 @@ +--- old.jsFileCompilationWithoutOut.js ++++ new.jsFileCompilationWithoutOut.js +@@= skipped -11, +11 lines =@@ + //// [a.js] + class c { + } ++//// [b.js] ++function foo() { ++} \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/jsFileFunctionOverloads.js b/testdata/baselines/reference/submodule/compiler/jsFileFunctionOverloads.js new file mode 100644 index 0000000000..294ffec347 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/jsFileFunctionOverloads.js @@ -0,0 +1,132 @@ +//// [tests/cases/compiler/jsFileFunctionOverloads.ts] //// + +//// [jsFileFunctionOverloads.js] +/** + * @overload + * @param {number} x + * @returns {'number'} + */ +/** + * @overload + * @param {string} x + * @returns {'string'} + */ +/** + * @overload + * @param {boolean} x + * @returns {'boolean'} + */ +/** + * @param {unknown} x + * @returns {string} + */ + function getTypeName(x) { + return typeof x; +} + +/** + * @template T + * @param {T} x + * @returns {T} + */ +const identity = x => x; + +/** + * @template T + * @template U + * @overload + * @param {T[]} array + * @param {(x: T) => U[]} iterable + * @returns {U[]} + */ +/** + * @template T + * @overload + * @param {T[][]} array + * @returns {T[]} + */ +/** + * @param {unknown[]} array + * @param {(x: unknown) => unknown} iterable + * @returns {unknown[]} + */ +function flatMap(array, iterable = identity) { + /** @type {unknown[]} */ + const result = []; + for (let i = 0; i < array.length; i += 1) { + result.push(.../** @type {unknown[]} */(iterable(array[i]))); + } + return result; +} + + +//// [jsFileFunctionOverloads.js] +/** + * @overload + * @param {number} x + * @returns {'number'} + */ +/** + * @overload + * @param {string} x + * @returns {'string'} + */ +/** + * @overload + * @param {boolean} x + * @returns {'boolean'} + */ +/** + * @param {unknown} x + * @returns {string} + */ +function getTypeName(x) { + return typeof x; +} +/** + * @template T + * @param {T} x + * @returns {T} + */ +const identity = x => x; +/** + * @template T + * @template U + * @overload + * @param {T[]} array + * @param {(x: T) => U[]} iterable + * @returns {U[]} + */ +/** + * @template T + * @overload + * @param {T[][]} array + * @returns {T[]} + */ +/** + * @param {unknown[]} array + * @param {(x: unknown) => unknown} iterable + * @returns {unknown[]} + */ +function flatMap(array, iterable = identity) { + /** @type {unknown[]} */ + const result = []; + for (let i = 0; i < array.length; i += 1) { + result.push(... /** @type {unknown[]} */iterable(array[i])); + } + return result; +} + + +//// [jsFileFunctionOverloads.d.ts] +declare function getTypeName(x: number): 'number'; +declare function getTypeName(x: string): 'string'; +declare function getTypeName(x: boolean): 'boolean'; +/** + * @template T + * @param {T} x + * @returns {T} + */ +declare const identity: (x: T) => T; +declare function flatMap(array: T[], iterable: (x: T) => U[]): U[]; +declare function flatMap(array: T[][]): T[]; diff --git a/testdata/baselines/reference/submodule/compiler/jsFileFunctionOverloads.js.diff b/testdata/baselines/reference/submodule/compiler/jsFileFunctionOverloads.js.diff new file mode 100644 index 0000000000..90f6061451 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/jsFileFunctionOverloads.js.diff @@ -0,0 +1,60 @@ +--- old.jsFileFunctionOverloads.js ++++ new.jsFileFunctionOverloads.js +@@= skipped -111, +111 lines =@@ + /** @type {unknown[]} */ + const result = []; + for (let i = 0; i < array.length; i += 1) { +- result.push(... /** @type {unknown[]} */(iterable(array[i]))); ++ result.push(... /** @type {unknown[]} */iterable(array[i])); + } + return result; + } + + + //// [jsFileFunctionOverloads.d.ts] +-/** +- * @overload +- * @param {number} x +- * @returns {'number'} +- */ +-declare function getTypeName(x: number): "number"; +-/** +- * @overload +- * @param {string} x +- * @returns {'string'} +- */ +-declare function getTypeName(x: string): "string"; +-/** +- * @overload +- * @param {boolean} x +- * @returns {'boolean'} +- */ +-declare function getTypeName(x: boolean): "boolean"; +-/** +- * @template T +- * @template U +- * @overload +- * @param {T[]} array +- * @param {(x: T) => U[]} iterable +- * @returns {U[]} +- */ +-declare function flatMap(array: T[], iterable: (x: T) => U[]): U[]; +-/** +- * @template T +- * @overload +- * @param {T[][]} array +- * @returns {T[]} +- */ +-declare function flatMap(array: T[][]): T[]; ++declare function getTypeName(x: number): 'number'; ++declare function getTypeName(x: string): 'string'; ++declare function getTypeName(x: boolean): 'boolean'; + /** + * @template T + * @param {T} x + * @returns {T} + */ +-declare function identity(x: T): T; ++declare const identity: (x: T) => T; ++declare function flatMap(array: T[], iterable: (x: T) => U[]): U[]; ++declare function flatMap(array: T[][]): T[]; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/jsFileFunctionOverloads2.js b/testdata/baselines/reference/submodule/compiler/jsFileFunctionOverloads2.js new file mode 100644 index 0000000000..91b2848fb0 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/jsFileFunctionOverloads2.js @@ -0,0 +1,148 @@ +//// [tests/cases/compiler/jsFileFunctionOverloads2.ts] //// + +//// [jsFileFunctionOverloads2.js] +// Also works if all @overload tags are combined in one comment. +/** + * @overload + * @param {number} x + * @returns {'number'} + * + * @overload + * @param {string} x + * @returns {'string'} + * + * @overload + * @param {boolean} x + * @returns {'boolean'} + * + * @param {unknown} x + * @returns {string} + */ + function getTypeName(x) { + return typeof x; +} + +/** + * @template T + * @param {T} x + * @returns {T} + */ +const identity = x => x; + +/** + * @template T + * @template U + * @overload + * @param {T[]} array + * @param {(x: T) => U[]} iterable + * @returns {U[]} + * + * @overload + * @param {T[][]} array + * @returns {T[]} + * + * @param {unknown[]} array + * @param {(x: unknown) => unknown} iterable + * @returns {unknown[]} + */ +function flatMap(array, iterable = identity) { + /** @type {unknown[]} */ + const result = []; + for (let i = 0; i < array.length; i += 1) { + result.push(.../** @type {unknown[]} */(iterable(array[i]))); + } + return result; +} + + +//// [jsFileFunctionOverloads2.js] +// Also works if all @overload tags are combined in one comment. +/** + * @overload + * @param {number} x + * @returns {'number'} + * + * @overload + * @param {string} x + * @returns {'string'} + * + * @overload + * @param {boolean} x + * @returns {'boolean'} + * + * @param {unknown} x + * @returns {string} + */ +function getTypeName(x) { + return typeof x; +} +/** + * @template T + * @param {T} x + * @returns {T} + */ +const identity = x => x; +/** + * @template T + * @template U + * @overload + * @param {T[]} array + * @param {(x: T) => U[]} iterable + * @returns {U[]} + * + * @overload + * @param {T[][]} array + * @returns {T[]} + * + * @param {unknown[]} array + * @param {(x: unknown) => unknown} iterable + * @returns {unknown[]} + */ +function flatMap(array, iterable = identity) { + /** @type {unknown[]} */ + const result = []; + for (let i = 0; i < array.length; i += 1) { + result.push(... /** @type {unknown[]} */iterable(array[i])); + } + return result; +} + + +//// [jsFileFunctionOverloads2.d.ts] +declare function getTypeName(x: number): 'number'; +declare function getTypeName(x: string): 'string'; +declare function getTypeName(x: boolean): 'boolean'; +/** + * @template T + * @param {T} x + * @returns {T} + */ +declare const identity: (x: T) => T; +declare function flatMap(array: T[], iterable: (x: T) => U[]): U[]; +declare function flatMap(array: T[][]): T[]; + + +//// [DtsFileErrors] + + +dist/jsFileFunctionOverloads2.d.ts(11,33): error TS2304: Cannot find name 'T'. +dist/jsFileFunctionOverloads2.d.ts(11,41): error TS2304: Cannot find name 'T'. + + +==== dist/jsFileFunctionOverloads2.d.ts (2 errors) ==== + declare function getTypeName(x: number): 'number'; + declare function getTypeName(x: string): 'string'; + declare function getTypeName(x: boolean): 'boolean'; + /** + * @template T + * @param {T} x + * @returns {T} + */ + declare const identity: (x: T) => T; + declare function flatMap(array: T[], iterable: (x: T) => U[]): U[]; + declare function flatMap(array: T[][]): T[]; + ~ +!!! error TS2304: Cannot find name 'T'. + ~ +!!! error TS2304: Cannot find name 'T'. + \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/jsFileFunctionOverloads2.js.diff b/testdata/baselines/reference/submodule/compiler/jsFileFunctionOverloads2.js.diff new file mode 100644 index 0000000000..9356c66d0d --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/jsFileFunctionOverloads2.js.diff @@ -0,0 +1,137 @@ +--- old.jsFileFunctionOverloads2.js ++++ new.jsFileFunctionOverloads2.js +@@= skipped -101, +101 lines =@@ + /** @type {unknown[]} */ + const result = []; + for (let i = 0; i < array.length; i += 1) { +- result.push(... /** @type {unknown[]} */(iterable(array[i]))); ++ result.push(... /** @type {unknown[]} */iterable(array[i])); + } + return result; + } + + + //// [jsFileFunctionOverloads2.d.ts] +-/** +- * @overload +- * @param {number} x +- * @returns {'number'} +- * +- * @overload +- * @param {string} x +- * @returns {'string'} +- * +- * @overload +- * @param {boolean} x +- * @returns {'boolean'} +- * +- * @param {unknown} x +- * @returns {string} +- */ +-declare function getTypeName(x: number): "number"; +-/** +- * @overload +- * @param {number} x +- * @returns {'number'} +- * +- * @overload +- * @param {string} x +- * @returns {'string'} +- * +- * @overload +- * @param {boolean} x +- * @returns {'boolean'} +- * +- * @param {unknown} x +- * @returns {string} +- */ +-declare function getTypeName(x: string): "string"; +-/** +- * @overload +- * @param {number} x +- * @returns {'number'} +- * +- * @overload +- * @param {string} x +- * @returns {'string'} +- * +- * @overload +- * @param {boolean} x +- * @returns {'boolean'} +- * +- * @param {unknown} x +- * @returns {string} +- */ +-declare function getTypeName(x: boolean): "boolean"; +-/** +- * @template T +- * @template U +- * @overload +- * @param {T[]} array +- * @param {(x: T) => U[]} iterable +- * @returns {U[]} +- * +- * @overload +- * @param {T[][]} array +- * @returns {T[]} +- * +- * @param {unknown[]} array +- * @param {(x: unknown) => unknown} iterable +- * @returns {unknown[]} +- */ +-declare function flatMap(array: T[], iterable: (x: T) => U[]): U[]; +-/** +- * @template T +- * @template U +- * @overload +- * @param {T[]} array +- * @param {(x: T) => U[]} iterable +- * @returns {U[]} +- * +- * @overload +- * @param {T[][]} array +- * @returns {T[]} +- * +- * @param {unknown[]} array +- * @param {(x: unknown) => unknown} iterable +- * @returns {unknown[]} +- */ +-declare function flatMap(array: T[][]): T[]; ++declare function getTypeName(x: number): 'number'; ++declare function getTypeName(x: string): 'string'; ++declare function getTypeName(x: boolean): 'boolean'; + /** + * @template T + * @param {T} x + * @returns {T} + */ +-declare function identity(x: T): T; ++declare const identity: (x: T) => T; ++declare function flatMap(array: T[], iterable: (x: T) => U[]): U[]; ++declare function flatMap(array: T[][]): T[]; ++ ++ ++//// [DtsFileErrors] ++ ++ ++dist/jsFileFunctionOverloads2.d.ts(11,33): error TS2304: Cannot find name 'T'. ++dist/jsFileFunctionOverloads2.d.ts(11,41): error TS2304: Cannot find name 'T'. ++ ++ ++==== dist/jsFileFunctionOverloads2.d.ts (2 errors) ==== ++ declare function getTypeName(x: number): 'number'; ++ declare function getTypeName(x: string): 'string'; ++ declare function getTypeName(x: boolean): 'boolean'; ++ /** ++ * @template T ++ * @param {T} x ++ * @returns {T} ++ */ ++ declare const identity: (x: T) => T; ++ declare function flatMap(array: T[], iterable: (x: T) => U[]): U[]; ++ declare function flatMap(array: T[][]): T[]; ++ ~ ++!!! error TS2304: Cannot find name 'T'. ++ ~ ++!!! error TS2304: Cannot find name 'T'. ++ \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/jsFileImportPreservedWhenUsed.js b/testdata/baselines/reference/submodule/compiler/jsFileImportPreservedWhenUsed.js new file mode 100644 index 0000000000..5f4a6d5bb4 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/jsFileImportPreservedWhenUsed.js @@ -0,0 +1,45 @@ +//// [tests/cases/compiler/jsFileImportPreservedWhenUsed.ts] //// + +//// [dash.d.ts] +type ObjectIterator = (value: TObject[keyof TObject], key: string, collection: TObject) => TResult; + +interface LoDashStatic { + mapValues(obj: T | null | undefined, callback: ObjectIterator): { [P in keyof T]: TResult }; +} +declare const _: LoDashStatic; +export = _; +//// [Consts.ts] +export const INDEX_FIELD = '__INDEX'; +//// [index.js] +import * as _ from './dash'; +import { INDEX_FIELD } from './Consts'; + +export class Test { + /** + * @param {object} obj + * @param {object} vm + */ + test(obj, vm) { + let index = 0; + vm.objects = _.mapValues( + obj, + object => ({ ...object, [INDEX_FIELD]: index++ }), + ); + } +} + +//// [Consts.js] +export const INDEX_FIELD = '__INDEX'; +//// [index.js] +import * as _ from './dash'; +import { INDEX_FIELD } from './Consts'; +export class Test { + /** + * @param {object} obj + * @param {object} vm + */ + test(obj, vm) { + let index = 0; + vm.objects = _.mapValues(obj, object => ({ ...object, [INDEX_FIELD]: index++ })); + } +} diff --git a/testdata/baselines/reference/submodule/compiler/jsFileMethodOverloads.js b/testdata/baselines/reference/submodule/compiler/jsFileMethodOverloads.js new file mode 100644 index 0000000000..bc616f891f --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/jsFileMethodOverloads.js @@ -0,0 +1,166 @@ +//// [tests/cases/compiler/jsFileMethodOverloads.ts] //// + +//// [jsFileMethodOverloads.js] +/** + * @template T + */ + class Example { + /** + * @param {T} value + */ + constructor(value) { + this.value = value; + } + + /** + * @overload + * @param {Example} this + * @returns {'number'} + */ + /** + * @overload + * @param {Example} this + * @returns {'string'} + */ + /** + * @returns {string} + */ + getTypeName() { + return typeof this.value; + } + + /** + * @template U + * @overload + * @param {(y: T) => U} fn + * @returns {U} + */ + /** + * @overload + * @returns {T} + */ + /** + * @param {(y: T) => unknown} [fn] + * @returns {unknown} + */ + transform(fn) { + return fn ? fn(this.value) : this.value; + } +} + + +//// [jsFileMethodOverloads.js] +/** + * @template T + */ +class Example { + /** + * @param {T} value + */ + constructor(value) { + this.value = value; + } + /** + * @overload + * @param {Example} this + * @returns {'number'} + */ + /** + * @overload + * @param {Example} this + * @returns {'string'} + */ + /** + * @returns {string} + */ + getTypeName() { + return typeof this.value; + } + /** + * @template U + * @overload + * @param {(y: T) => U} fn + * @returns {U} + */ + /** + * @overload + * @returns {T} + */ + /** + * @param {(y: T) => unknown} [fn] + * @returns {unknown} + */ + transform(fn) { + return fn ? fn(this.value) : this.value; + } +} + + +//// [jsFileMethodOverloads.d.ts] +/** + * @template T + */ +declare class Example { + /** + * @param {T} value + */ + constructor(value: T); + /** + * @overload + * @param {Example} this + * @returns {'number'} + */ + /** + * @overload + * @param {Example} this + * @returns {'string'} + */ + /** + * @returns {string} + */ + getTypeName(this: Example): 'number'; + /** + * @overload + * @param {Example} this + * @returns {'number'} + */ + /** + * @overload + * @param {Example} this + * @returns {'string'} + */ + /** + * @returns {string} + */ + getTypeName(this: Example): 'string'; + /** + * @template U + * @overload + * @param {(y: T) => U} fn + * @returns {U} + */ + /** + * @overload + * @returns {T} + */ + /** + * @param {(y: T) => unknown} [fn] + * @returns {unknown} + */ + transform(fn: (y: T) => U): U; + /** + * @template U + * @overload + * @param {(y: T) => U} fn + * @returns {U} + */ + /** + * @overload + * @returns {T} + */ + /** + * @param {(y: T) => unknown} [fn] + * @returns {unknown} + */ + transform(): T; +} diff --git a/testdata/baselines/reference/submodule/compiler/jsFileMethodOverloads.js.diff b/testdata/baselines/reference/submodule/compiler/jsFileMethodOverloads.js.diff new file mode 100644 index 0000000000..941e442062 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/jsFileMethodOverloads.js.diff @@ -0,0 +1,78 @@ +--- old.jsFileMethodOverloads.js ++++ new.jsFileMethodOverloads.js +@@= skipped -104, +104 lines =@@ + * @param {T} value + */ + constructor(value: T); +- value: T; +- /** +- * @overload +- * @param {Example} this +- * @returns {'number'} +- */ +- getTypeName(this: Example): "number"; +- /** +- * @overload +- * @param {Example} this +- * @returns {'string'} +- */ +- getTypeName(this: Example): "string"; ++ /** ++ * @overload ++ * @param {Example} this ++ * @returns {'number'} ++ */ ++ /** ++ * @overload ++ * @param {Example} this ++ * @returns {'string'} ++ */ ++ /** ++ * @returns {string} ++ */ ++ getTypeName(this: Example): 'number'; ++ /** ++ * @overload ++ * @param {Example} this ++ * @returns {'number'} ++ */ ++ /** ++ * @overload ++ * @param {Example} this ++ * @returns {'string'} ++ */ ++ /** ++ * @returns {string} ++ */ ++ getTypeName(this: Example): 'string'; + /** + * @template U + * @overload + * @param {(y: T) => U} fn + * @returns {U} ++ */ ++ /** ++ * @overload ++ * @returns {T} ++ */ ++ /** ++ * @param {(y: T) => unknown} [fn] ++ * @returns {unknown} + */ + transform(fn: (y: T) => U): U; + /** ++ * @template U ++ * @overload ++ * @param {(y: T) => U} fn ++ * @returns {U} ++ */ ++ /** + * @overload + * @returns {T} ++ */ ++ /** ++ * @param {(y: T) => unknown} [fn] ++ * @returns {unknown} + */ + transform(): T; + } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/jsFileMethodOverloads2.js b/testdata/baselines/reference/submodule/compiler/jsFileMethodOverloads2.js new file mode 100644 index 0000000000..2324bf85d1 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/jsFileMethodOverloads2.js @@ -0,0 +1,153 @@ +//// [tests/cases/compiler/jsFileMethodOverloads2.ts] //// + +//// [jsFileMethodOverloads2.js] +// Also works if all @overload tags are combined in one comment. +/** + * @template T + */ + class Example { + /** + * @param {T} value + */ + constructor(value) { + this.value = value; + } + + /** + * @overload + * @param {Example} this + * @returns {'number'} + * + * @overload + * @param {Example} this + * @returns {'string'} + * + * @returns {string} + */ + getTypeName() { + return typeof this.value; + } + + /** + * @template U + * @overload + * @param {(y: T) => U} fn + * @returns {U} + * + * @overload + * @returns {T} + * + * @param {(y: T) => unknown} [fn] + * @returns {unknown} + */ + transform(fn) { + return fn ? fn(this.value) : this.value; + } +} + + +//// [jsFileMethodOverloads2.js] +// Also works if all @overload tags are combined in one comment. +/** + * @template T + */ +class Example { + /** + * @param {T} value + */ + constructor(value) { + this.value = value; + } + /** + * @overload + * @param {Example} this + * @returns {'number'} + * + * @overload + * @param {Example} this + * @returns {'string'} + * + * @returns {string} + */ + getTypeName() { + return typeof this.value; + } + /** + * @template U + * @overload + * @param {(y: T) => U} fn + * @returns {U} + * + * @overload + * @returns {T} + * + * @param {(y: T) => unknown} [fn] + * @returns {unknown} + */ + transform(fn) { + return fn ? fn(this.value) : this.value; + } +} + + +//// [jsFileMethodOverloads2.d.ts] +// Also works if all @overload tags are combined in one comment. +/** + * @template T + */ +declare class Example { + /** + * @param {T} value + */ + constructor(value: T); + /** + * @overload + * @param {Example} this + * @returns {'number'} + * + * @overload + * @param {Example} this + * @returns {'string'} + * + * @returns {string} + */ + getTypeName(this: Example): 'number'; + /** + * @overload + * @param {Example} this + * @returns {'number'} + * + * @overload + * @param {Example} this + * @returns {'string'} + * + * @returns {string} + */ + getTypeName(this: Example): 'string'; + /** + * @template U + * @overload + * @param {(y: T) => U} fn + * @returns {U} + * + * @overload + * @returns {T} + * + * @param {(y: T) => unknown} [fn] + * @returns {unknown} + */ + transform(fn: (y: T) => U): U; + /** + * @template U + * @overload + * @param {(y: T) => U} fn + * @returns {U} + * + * @overload + * @returns {T} + * + * @param {(y: T) => unknown} [fn] + * @returns {unknown} + */ + transform(): T; +} diff --git a/testdata/baselines/reference/submodule/compiler/jsFileMethodOverloads2.js.diff b/testdata/baselines/reference/submodule/compiler/jsFileMethodOverloads2.js.diff new file mode 100644 index 0000000000..58f522b3ad --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/jsFileMethodOverloads2.js.diff @@ -0,0 +1,73 @@ +--- old.jsFileMethodOverloads2.js ++++ new.jsFileMethodOverloads2.js +@@= skipped -90, +90 lines =@@ + + + //// [jsFileMethodOverloads2.d.ts] ++// Also works if all @overload tags are combined in one comment. + /** + * @template T + */ +@@= skipped -8, +9 lines =@@ + * @param {T} value + */ + constructor(value: T); +- value: T; +- /** +- * @overload +- * @param {Example} this +- * @returns {'number'} +- * +- * @overload +- * @param {Example} this +- * @returns {'string'} +- * +- * @returns {string} +- */ +- getTypeName(this: Example): "number"; +- /** +- * @overload +- * @param {Example} this +- * @returns {'number'} +- * +- * @overload +- * @param {Example} this +- * @returns {'string'} +- * +- * @returns {string} +- */ +- getTypeName(this: Example): "string"; ++ /** ++ * @overload ++ * @param {Example} this ++ * @returns {'number'} ++ * ++ * @overload ++ * @param {Example} this ++ * @returns {'string'} ++ * ++ * @returns {string} ++ */ ++ getTypeName(this: Example): 'number'; ++ /** ++ * @overload ++ * @param {Example} this ++ * @returns {'number'} ++ * ++ * @overload ++ * @param {Example} this ++ * @returns {'string'} ++ * ++ * @returns {string} ++ */ ++ getTypeName(this: Example): 'string'; + /** + * @template U + * @overload +@@= skipped -50, +49 lines =@@ + * @param {(y: T) => unknown} [fn] + * @returns {unknown} + */ +- transform(): T; ++ transform(): T; + } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/jsFileMethodOverloads4.js b/testdata/baselines/reference/submodule/compiler/jsFileMethodOverloads4.js new file mode 100644 index 0000000000..1ad521c844 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/jsFileMethodOverloads4.js @@ -0,0 +1,30 @@ +//// [tests/cases/compiler/jsFileMethodOverloads4.ts] //// + +//// [a.js] +export function Foo() { } + +/** + * @overload + * @param {string} a + * @return {void} + */ + +/** + * @overload + * @param {number} a + * @param {string} b + * @return {void} + */ + +/** + * @param {string | number} a + * @param {string} [b] + * @return {void} + */ +Foo.prototype.bar = function (a, b) { } + + + + +//// [a.d.ts] +export declare function Foo(): void; diff --git a/testdata/baselines/reference/submodule/compiler/jsFileMethodOverloads4.js.diff b/testdata/baselines/reference/submodule/compiler/jsFileMethodOverloads4.js.diff new file mode 100644 index 0000000000..6067dad029 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/jsFileMethodOverloads4.js.diff @@ -0,0 +1,23 @@ +--- old.jsFileMethodOverloads4.js ++++ new.jsFileMethodOverloads4.js +@@= skipped -26, +26 lines =@@ + + + //// [a.d.ts] +-export function Foo(): void; +-export class Foo { +- /** +- * @overload +- * @param {string} a +- * @return {void} +- */ +- bar(a: string): void; +- /** +- * @overload +- * @param {number} a +- * @param {string} b +- * @return {void} +- */ +- bar(a: number, b: string): void; +-} ++export declare function Foo(): void; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/jsFileMethodOverloads5.js b/testdata/baselines/reference/submodule/compiler/jsFileMethodOverloads5.js new file mode 100644 index 0000000000..77afcc7088 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/jsFileMethodOverloads5.js @@ -0,0 +1,42 @@ +//// [tests/cases/compiler/jsFileMethodOverloads5.ts] //// + +//// [a.js] +/** + * @overload + * @param {string} a + * @return {void} + */ + +/** + * @overload + * @param {number} a + * @param {number} [b] + * @return {void} + */ + +/** + * @param {string | number} a + * @param {number} [b] + */ +export const foo = function (a, b) { } + + + + +//// [a.d.ts] +/** + * @overload + * @param {string} a + * @return {void} + */ +/** + * @overload + * @param {number} a + * @param {number} [b] + * @return {void} + */ +/** + * @param {string | number} a + * @param {number} [b] + */ +export declare const foo: (a: string | number, b?: number) => void; diff --git a/testdata/baselines/reference/submodule/compiler/jsFileMethodOverloads5.js.diff b/testdata/baselines/reference/submodule/compiler/jsFileMethodOverloads5.js.diff new file mode 100644 index 0000000000..43d66a80c9 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/jsFileMethodOverloads5.js.diff @@ -0,0 +1,19 @@ +--- old.jsFileMethodOverloads5.js ++++ new.jsFileMethodOverloads5.js +@@= skipped -28, +28 lines =@@ + * @param {string} a + * @return {void} + */ +-export function foo(a: string): void; + /** + * @overload + * @param {number} a + * @param {number} [b] + * @return {void} + */ +-export function foo(a: number, b?: number): void; ++/** ++ * @param {string | number} a ++ * @param {number} [b] ++ */ ++export declare const foo: (a: string | number, b?: number) => void; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/jsFunctionWithPrototypeNoErrorTruncationNoCrash.js b/testdata/baselines/reference/submodule/compiler/jsFunctionWithPrototypeNoErrorTruncationNoCrash.js new file mode 100644 index 0000000000..0fb4576926 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/jsFunctionWithPrototypeNoErrorTruncationNoCrash.js @@ -0,0 +1,36 @@ +//// [tests/cases/compiler/jsFunctionWithPrototypeNoErrorTruncationNoCrash.ts] //// + +//// [index.js] +function Color(obj) { + this.example = true +}; +Color.prototype = { + negate: function () {return this;}, + lighten: function (ratio) {return this;}, + darken: function (ratio) {return this;}, + saturate: function (ratio) {return this;}, + desaturate: function (ratio) {return this;}, + whiten: function (ratio) {return this;}, + blacken: function (ratio) {return this;}, + greyscale: function () {return this;}, + clearer: function (ratio) {return this;}, + toJSON: function () {return this.rgb();}, +}; + +//// [index.js] +function Color(obj) { + this.example = true; +} +; +Color.prototype = { + negate: function () { return this; }, + lighten: function (ratio) { return this; }, + darken: function (ratio) { return this; }, + saturate: function (ratio) { return this; }, + desaturate: function (ratio) { return this; }, + whiten: function (ratio) { return this; }, + blacken: function (ratio) { return this; }, + greyscale: function () { return this; }, + clearer: function (ratio) { return this; }, + toJSON: function () { return this.rgb(); }, +}; diff --git a/testdata/baselines/reference/submodule/compiler/jsNoImplicitAnyNoCascadingReferenceErrors.js b/testdata/baselines/reference/submodule/compiler/jsNoImplicitAnyNoCascadingReferenceErrors.js new file mode 100644 index 0000000000..24b8427db2 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/jsNoImplicitAnyNoCascadingReferenceErrors.js @@ -0,0 +1,27 @@ +//// [tests/cases/compiler/jsNoImplicitAnyNoCascadingReferenceErrors.ts] //// + +//// [somelib.d.ts] +export declare class Foo { + prop: T; +} +//// [index.js] +import {Foo} from "./somelib"; + +class MyFoo extends Foo { + constructor() { + super(); + this.prop.alpha = 12; + } +} + + +//// [index.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const somelib_1 = require("./somelib"); +class MyFoo extends somelib_1.Foo { + constructor() { + super(); + this.prop.alpha = 12; + } +} diff --git a/testdata/baselines/reference/submodule/compiler/jsNoImplicitAnyNoCascadingReferenceErrors.js.diff b/testdata/baselines/reference/submodule/compiler/jsNoImplicitAnyNoCascadingReferenceErrors.js.diff new file mode 100644 index 0000000000..280dbab05a --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/jsNoImplicitAnyNoCascadingReferenceErrors.js.diff @@ -0,0 +1,11 @@ +--- old.jsNoImplicitAnyNoCascadingReferenceErrors.js ++++ new.jsNoImplicitAnyNoCascadingReferenceErrors.js +@@= skipped -17, +17 lines =@@ + //// [index.js] + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); +-var somelib_1 = require("./somelib"); ++const somelib_1 = require("./somelib"); + class MyFoo extends somelib_1.Foo { + constructor() { + super(); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/jsdocFunctionClassPropertiesDeclaration.js b/testdata/baselines/reference/submodule/compiler/jsdocFunctionClassPropertiesDeclaration.js new file mode 100644 index 0000000000..269ce148f2 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/jsdocFunctionClassPropertiesDeclaration.js @@ -0,0 +1,39 @@ +//// [tests/cases/compiler/jsdocFunctionClassPropertiesDeclaration.ts] //// + +//// [a.js] +/** + * @param {number | undefined} x + * @param {number | undefined} y + */ +export function Foo(x, y) { + if (!(this instanceof Foo)) { + return new Foo(x, y); + } + this.x = x; + this.y = y; +} + + +//// [a.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Foo = Foo; +/** + * @param {number | undefined} x + * @param {number | undefined} y + */ +function Foo(x, y) { + if (!(this instanceof Foo)) { + return new Foo(x, y); + } + this.x = x; + this.y = y; +} + + +//// [a.d.ts] +/** + * @param {number | undefined} x + * @param {number | undefined} y + */ +export declare function Foo(x: number | undefined, y: number | undefined): any; diff --git a/testdata/baselines/reference/submodule/compiler/jsdocFunctionClassPropertiesDeclaration.js.diff b/testdata/baselines/reference/submodule/compiler/jsdocFunctionClassPropertiesDeclaration.js.diff new file mode 100644 index 0000000000..073d991672 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/jsdocFunctionClassPropertiesDeclaration.js.diff @@ -0,0 +1,17 @@ +--- old.jsdocFunctionClassPropertiesDeclaration.js ++++ new.jsdocFunctionClassPropertiesDeclaration.js +@@= skipped -35, +35 lines =@@ + * @param {number | undefined} x + * @param {number | undefined} y + */ +-export function Foo(x: number | undefined, y: number | undefined): Foo; +-export class Foo { +- /** +- * @param {number | undefined} x +- * @param {number | undefined} y +- */ +- constructor(x: number | undefined, y: number | undefined); +- x: number | undefined; +- y: number | undefined; +-} ++export declare function Foo(x: number | undefined, y: number | undefined): any; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/jsdocTypeCast.js b/testdata/baselines/reference/submodule/compiler/jsdocTypeCast.js new file mode 100644 index 0000000000..cec149134d --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/jsdocTypeCast.js @@ -0,0 +1,36 @@ +//// [tests/cases/compiler/jsdocTypeCast.ts] //// + +//// [jsdocTypeCast.js] +/** + * @param {string} x + */ + function f(x) { + /** @type {'a' | 'b'} */ + let a = (x); // Error + a; + + /** @type {'a' | 'b'} */ + let b = (((x))); // Error + b; + + /** @type {'a' | 'b'} */ + let c = /** @type {'a' | 'b'} */ (x); // Ok + c; +} + + +//// [jsdocTypeCast.js] +/** + * @param {string} x + */ +function f(x) { + /** @type {'a' | 'b'} */ + let a = (x); // Error + a; + /** @type {'a' | 'b'} */ + let b = (((x))); // Error + b; + /** @type {'a' | 'b'} */ + let c = /** @type {'a' | 'b'} */ x; // Ok + c; +} diff --git a/testdata/baselines/reference/submodule/compiler/jsdocTypeCast.js.diff b/testdata/baselines/reference/submodule/compiler/jsdocTypeCast.js.diff new file mode 100644 index 0000000000..61084e3733 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/jsdocTypeCast.js.diff @@ -0,0 +1,10 @@ +--- old.jsdocTypeCast.js ++++ new.jsdocTypeCast.js +@@= skipped -30, +30 lines =@@ + let b = (((x))); // Error + b; + /** @type {'a' | 'b'} */ +- let c = /** @type {'a' | 'b'} */ (x); // Ok ++ let c = /** @type {'a' | 'b'} */ x; // Ok + c; + } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/jsdocTypecastNoTypeNoCrash.js b/testdata/baselines/reference/submodule/compiler/jsdocTypecastNoTypeNoCrash.js new file mode 100644 index 0000000000..fac9c131cd --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/jsdocTypecastNoTypeNoCrash.js @@ -0,0 +1,10 @@ +//// [tests/cases/compiler/jsdocTypecastNoTypeNoCrash.ts] //// + +//// [index.js] +function Foo() {} +const a = /* @type string */(Foo); + + +//// [index.js] +function Foo() { } +const a = /* @type string */ (Foo); diff --git a/testdata/baselines/reference/submodule/compiler/jsdocTypedefNoCrash.js b/testdata/baselines/reference/submodule/compiler/jsdocTypedefNoCrash.js new file mode 100644 index 0000000000..db7bd21639 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/jsdocTypedefNoCrash.js @@ -0,0 +1,15 @@ +//// [tests/cases/compiler/jsdocTypedefNoCrash.ts] //// + +//// [export.js] +/** + * @typedef {{ + * }} + */ +export const foo = 5; + +//// [export.js] +/** + * @typedef {{ + * }} + */ +export const foo = 5; diff --git a/testdata/baselines/reference/submodule/compiler/jsdocTypedefNoCrash2.js b/testdata/baselines/reference/submodule/compiler/jsdocTypedefNoCrash2.js new file mode 100644 index 0000000000..1daebf6f66 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/jsdocTypedefNoCrash2.js @@ -0,0 +1,16 @@ +//// [tests/cases/compiler/jsdocTypedefNoCrash2.ts] //// + +//// [export.js] +export type foo = 5; +/** + * @typedef {{ + * }} + */ +export const foo = 5; + +//// [export.js] +/** + * @typedef {{ + * }} + */ +export const foo = 5; diff --git a/testdata/baselines/reference/submodule/compiler/jsxDeclarationsWithEsModuleInteropNoCrash.js b/testdata/baselines/reference/submodule/compiler/jsxDeclarationsWithEsModuleInteropNoCrash.js new file mode 100644 index 0000000000..b62c42e7db --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/jsxDeclarationsWithEsModuleInteropNoCrash.js @@ -0,0 +1,47 @@ +//// [tests/cases/compiler/jsxDeclarationsWithEsModuleInteropNoCrash.tsx] //// + +//// [jsxDeclarationsWithEsModuleInteropNoCrash.jsx] +/// +import PropTypes from 'prop-types'; +import React from 'react'; + +const propTypes = { + bar: PropTypes.bool, +}; + +const defaultProps = { + bar: false, +}; + +function Foo({ bar }) { + return
{bar}
; +} + +Foo.propTypes = propTypes; +Foo.defaultProps = defaultProps; + +export default Foo; + + + +//// [jsxDeclarationsWithEsModuleInteropNoCrash.d.ts] +declare function Foo({ bar }: { + bar: any; +}): JSX.Element; +export default Foo; + + +//// [DtsFileErrors] + + +jsxDeclarationsWithEsModuleInteropNoCrash.d.ts(3,5): error TS2503: Cannot find namespace 'JSX'. + + +==== jsxDeclarationsWithEsModuleInteropNoCrash.d.ts (1 errors) ==== + declare function Foo({ bar }: { + bar: any; + }): JSX.Element; + ~~~ +!!! error TS2503: Cannot find namespace 'JSX'. + export default Foo; + \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/jsxDeclarationsWithEsModuleInteropNoCrash.js.diff b/testdata/baselines/reference/submodule/compiler/jsxDeclarationsWithEsModuleInteropNoCrash.js.diff new file mode 100644 index 0000000000..3c315b9637 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/jsxDeclarationsWithEsModuleInteropNoCrash.js.diff @@ -0,0 +1,40 @@ +--- old.jsxDeclarationsWithEsModuleInteropNoCrash.js ++++ new.jsxDeclarationsWithEsModuleInteropNoCrash.js +@@= skipped -24, +24 lines =@@ + + + //// [jsxDeclarationsWithEsModuleInteropNoCrash.d.ts] +-/// +-export default Foo; + declare function Foo({ bar }: { + bar: any; + }): JSX.Element; +-declare namespace Foo { +- export { propTypes }; +- export { defaultProps }; +-} +-declare namespace propTypes { +- let bar: PropTypes.Requireable; +-} +-declare namespace defaultProps { +- let bar_1: boolean; +- export { bar_1 as bar }; +-} +-import PropTypes from 'prop-types'; ++export default Foo; ++ ++ ++//// [DtsFileErrors] ++ ++ ++jsxDeclarationsWithEsModuleInteropNoCrash.d.ts(3,5): error TS2503: Cannot find namespace 'JSX'. ++ ++ ++==== jsxDeclarationsWithEsModuleInteropNoCrash.d.ts (1 errors) ==== ++ declare function Foo({ bar }: { ++ bar: any; ++ }): JSX.Element; ++ ~~~ ++!!! error TS2503: Cannot find namespace 'JSX'. ++ export default Foo; ++ \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/jsxPreserveWithJsInput.js b/testdata/baselines/reference/submodule/compiler/jsxPreserveWithJsInput.js new file mode 100644 index 0000000000..e91d2a0c19 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/jsxPreserveWithJsInput.js @@ -0,0 +1,28 @@ +//// [tests/cases/compiler/jsxPreserveWithJsInput.ts] //// + +//// [a.js] +var elemA = 42; + +//// [b.jsx] +var elemB = {"test"}; + +//// [c.js] +var elemC = {42}; + +//// [d.ts] +var elemD = 42; + +//// [e.tsx] +var elemE = {true}; + + +//// [a.js] +var elemA = 42; +//// [b.jsx] +var elemB = {"test"}; +//// [c.js] +var elemC = {42}; +//// [d.js] +var elemD = 42; +//// [e.jsx] +var elemE = {true}; diff --git a/testdata/baselines/reference/submodule/compiler/lateBoundMethodNameAssigmentJS.js b/testdata/baselines/reference/submodule/compiler/lateBoundMethodNameAssigmentJS.js new file mode 100644 index 0000000000..3302e18851 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/lateBoundMethodNameAssigmentJS.js @@ -0,0 +1,21 @@ +//// [tests/cases/compiler/lateBoundMethodNameAssigmentJS.ts] //// + +//// [lateBoundMethodNameAssigmentJS.js] +const _symbol = Symbol("_sym"); +export class MyClass { + constructor() { + this[_symbol] = this[_symbol].bind(this); + } + + async [_symbol]() { } +} + + + +//// [lateBoundMethodNameAssigmentJS.d.ts] +declare const _symbol: unique symbol; +export declare class MyClass { + constructor(); + [_symbol](): Promise; +} +export {}; diff --git a/testdata/baselines/reference/submodule/compiler/lateBoundMethodNameAssigmentJS.js.diff b/testdata/baselines/reference/submodule/compiler/lateBoundMethodNameAssigmentJS.js.diff new file mode 100644 index 0000000000..53d57d98ab --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/lateBoundMethodNameAssigmentJS.js.diff @@ -0,0 +1,15 @@ +--- old.lateBoundMethodNameAssigmentJS.js ++++ new.lateBoundMethodNameAssigmentJS.js +@@= skipped -12, +12 lines =@@ + + + //// [lateBoundMethodNameAssigmentJS.d.ts] +-export class MyClass { +- [_symbol]: any; +-} + declare const _symbol: unique symbol; ++export declare class MyClass { ++ constructor(); ++ [_symbol](): Promise; ++} + export {}; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/localRequireFunction.js b/testdata/baselines/reference/submodule/compiler/localRequireFunction.js new file mode 100644 index 0000000000..b059a19a1a --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/localRequireFunction.js @@ -0,0 +1,16 @@ +//// [tests/cases/compiler/localRequireFunction.ts] //// + +//// [app.js] +function require(a) { + return a; +} + +const fs = require("fs"); +const text = fs.readFileSync("/a/b/c"); + +//// [app.js] +function require(a) { + return a; +} +const fs = require("fs"); +const text = fs.readFileSync("/a/b/c"); diff --git a/testdata/baselines/reference/submodule/compiler/mappedTypeRecursiveInference.errors.txt b/testdata/baselines/reference/submodule/compiler/mappedTypeRecursiveInference.errors.txt new file mode 100644 index 0000000000..da01dbcd52 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/mappedTypeRecursiveInference.errors.txt @@ -0,0 +1,34 @@ +mappedTypeRecursiveInference.ts(19,18): error TS2345: Argument of type 'XMLHttpRequest' is not assignable to parameter of type 'Deep<{ dispatchEvent: unknown; onreadystatechange: unknown; readonly readyState: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly response: unknown; readonly responseText: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; responseType: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly responseURL: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly responseXML: { readonly URL: any; alinkColor: any; readonly all: any; readonly anchors: any; readonly applets: any; bgColor: any; body: any; readonly characterSet: any; readonly charset: any; readonly compatMode: any; readonly contentType: any; cookie: any; readonly currentScript: any; readonly defaultView: any; designMode: any; dir: any; readonly doctype: any; readonly documentElement: any; readonly documentURI: any; domain: any; readonly embeds: any; fgColor: any; readonly forms: any; readonly fragmentDirective: any; readonly fullscreen: any; readonly fullscreenEnabled: any; readonly head: any; readonly hidden: any; readonly images: any; readonly implementation: any; readonly inputEncoding: any; readonly lastModified: any; linkColor: any; readonly links: any; location: any; onfullscreenchange: any; onfullscreenerror: any; onpointerlockchange: any; onpointerlockerror: any; onreadystatechange: any; onvisibilitychange: any; readonly ownerDocument: any; readonly pictureInPictureEnabled: any; readonly plugins: any; readonly readyState: any; readonly referrer: any; readonly rootElement: any; readonly scripts: any; readonly scrollingElement: any; readonly timeline: any; title: any; readonly visibilityState: any; vlinkColor: any; adoptNode: any; captureEvents: any; caretPositionFromPoint: any; caretRangeFromPoint: any; clear: any; close: any; createAttribute: any; createAttributeNS: any; createCDATASection: any; createComment: any; createDocumentFragment: any; createElement: any; createElementNS: any; createEvent: any; createNodeIterator: any; createProcessingInstruction: any; createRange: any; createTextNode: any; createTreeWalker: any; execCommand: any; exitFullscreen: any; exitPictureInPicture: any; exitPointerLock: any; getElementById: any; getElementsByClassName: any; getElementsByName: any; getElementsByTagName: any; getElementsByTagNameNS: any; getSelection: any; hasFocus: any; hasStorageAccess: any; importNode: any; open: any; queryCommandEnabled: any; queryCommandIndeterm: any; queryCommandState: any; queryCommandSupported: any; queryCommandValue: any; releaseEvents: any; requestStorageAccess: any; startViewTransition: any; write: any; writeln: any; addEventListener: any; removeEventListener: any; readonly activeElement: any; adoptedStyleSheets: any; readonly fullscreenElement: any; readonly pictureInPictureElement: any; readonly pointerLockElement: any; readonly styleSheets: any; elementFromPoint: any; elementsFromPoint: any; getAnimations: any; dispatchEvent: any; readonly fonts: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onbeforeinput: any; onbeforetoggle: any; onblur: any; oncancel: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextlost: any; oncontextmenu: any; oncontextrestored: any; oncopy: any; oncuechange: any; oncut: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpaste: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onscrollend: any; onsecuritypolicyviolation: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onslotchange: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; createExpression: any; createNSResolver: any; evaluate: any; }; readonly status: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly statusText: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; timeout: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly upload: { dispatchEvent: any; onabort: any; onerror: any; onload: any; onloadend: any; onloadstart: any; onprogress: any; ontimeout: any; addEventListener: any; removeEventListener: any; }; withCredentials: { valueOf: any; }; abort: unknown; getAllResponseHeaders: unknown; getResponseHeader: unknown; open: unknown; overrideMimeType: unknown; send: unknown; setRequestHeader: unknown; readonly UNSENT: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly OPENED: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly HEADERS_RECEIVED: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly LOADING: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DONE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; addEventListener: unknown; removeEventListener: unknown; onabort: unknown; onerror: unknown; onload: unknown; onloadend: unknown; onloadstart: unknown; onprogress: unknown; ontimeout: unknown; }>'. + The types of 'responseXML.body.shadowRoot.activeElement.assignedSlot.style.parentRule.parentStyleSheet.ownerNode' are incompatible between these types. + Type 'Element | ProcessingInstruction' is not assignable to type 'Deep<{ ariaAtomic: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaAutoComplete: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaBrailleLabel: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaBrailleRoleDescription: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaBusy: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaChecked: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaColCount: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaColIndex: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaColIndexText: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaColSpan: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaCurrent: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaDescription: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaDisabled: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaExpanded: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaHasPopup: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaHidden: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaInvalid: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaKeyShortcuts: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaLabel: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaLevel: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaLive: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaModal: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaMultiLine: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaMultiSelectable: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaOrientation: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaPlaceholder: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaPosInSet: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaPressed: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaReadOnly: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaRelevant: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaRequired: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaRoleDescription: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaRowCount: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaRowIndex: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaRowIndexText: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaRowSpan: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaSelected: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaSetSize: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaSort: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaValueMax: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaValueMin: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaValueNow: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaValueText: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; role: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; animate: unknown; getAnimations: unknown; after: unknown; before: unknown; remove: unknown; replaceWith: unknown; readonly attributes: { readonly length: any; getNamedItem: any; getNamedItemNS: any; item: any; removeNamedItem: any; removeNamedItemNS: any; setNamedItem: any; setNamedItemNS: any; }; classList: { readonly length: any; value: any; toString: any; add: any; contains: any; item: any; remove: any; replace: any; supports: any; toggle: any; forEach: any; }; className: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly clientHeight: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly clientLeft: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly clientTop: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly clientWidth: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly currentCSSZoom: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; id: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; innerHTML: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly localName: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly namespaceURI: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; onfullscreenchange: unknown; onfullscreenerror: unknown; outerHTML: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly ownerDocument: { readonly URL: any; alinkColor: any; readonly all: any; readonly anchors: any; readonly applets: any; bgColor: any; body: any; readonly characterSet: any; readonly charset: any; readonly compatMode: any; readonly contentType: any; cookie: any; readonly currentScript: any; readonly defaultView: any; designMode: any; dir: any; readonly doctype: any; readonly documentElement: any; readonly documentURI: any; domain: any; readonly embeds: any; fgColor: any; readonly forms: any; readonly fragmentDirective: any; readonly fullscreen: any; readonly fullscreenEnabled: any; readonly head: any; readonly hidden: any; readonly images: any; readonly implementation: any; readonly inputEncoding: any; readonly lastModified: any; linkColor: any; readonly links: any; location: any; onfullscreenchange: any; onfullscreenerror: any; onpointerlockchange: any; onpointerlockerror: any; onreadystatechange: any; onvisibilitychange: any; readonly ownerDocument: any; readonly pictureInPictureEnabled: any; readonly plugins: any; readonly readyState: any; readonly referrer: any; readonly rootElement: any; readonly scripts: any; readonly scrollingElement: any; readonly timeline: any; title: any; readonly visibilityState: any; vlinkColor: any; adoptNode: any; captureEvents: any; caretPositionFromPoint: any; caretRangeFromPoint: any; clear: any; close: any; createAttribute: any; createAttributeNS: any; createCDATASection: any; createComment: any; createDocumentFragment: any; createElement: any; createElementNS: any; createEvent: any; createNodeIterator: any; createProcessingInstruction: any; createRange: any; createTextNode: any; createTreeWalker: any; execCommand: any; exitFullscreen: any; exitPictureInPicture: any; exitPointerLock: any; getElementById: any; getElementsByClassName: any; getElementsByName: any; getElementsByTagName: any; getElementsByTagNameNS: any; getSelection: any; hasFocus: any; hasStorageAccess: any; importNode: any; open: any; queryCommandEnabled: any; queryCommandIndeterm: any; queryCommandState: any; queryCommandSupported: any; queryCommandValue: any; releaseEvents: any; requestStorageAccess: any; startViewTransition: any; write: any; writeln: any; addEventListener: any; removeEventListener: any; readonly activeElement: any; adoptedStyleSheets: any; readonly fullscreenElement: any; readonly pictureInPictureElement: any; readonly pointerLockElement: any; readonly styleSheets: any; elementFromPoint: any; elementsFromPoint: any; getAnimations: any; dispatchEvent: any; readonly fonts: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onbeforeinput: any; onbeforetoggle: any; onblur: any; oncancel: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextlost: any; oncontextmenu: any; oncontextrestored: any; oncopy: any; oncuechange: any; oncut: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpaste: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onscrollend: any; onsecuritypolicyviolation: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onslotchange: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; createExpression: any; createNSResolver: any; evaluate: any; }; part: { readonly length: any; value: any; toString: any; add: any; contains: any; item: any; remove: any; replace: any; supports: any; toggle: any; forEach: any; }; readonly prefix: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly scrollHeight: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; scrollLeft: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; scrollTop: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly scrollWidth: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly shadowRoot: { readonly ownerDocument: any; getElementById: any; readonly activeElement: any; adoptedStyleSheets: any; readonly fullscreenElement: any; readonly pictureInPictureElement: any; readonly pointerLockElement: any; readonly styleSheets: any; elementFromPoint: any; elementsFromPoint: any; getAnimations: any; dispatchEvent: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly clonable: any; readonly delegatesFocus: any; readonly host: any; innerHTML: any; readonly mode: any; onslotchange: any; readonly serializable: any; readonly slotAssignment: any; getHTML: any; setHTMLUnsafe: any; addEventListener: any; removeEventListener: any; }; slot: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly tagName: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; attachShadow: unknown; checkVisibility: unknown; closest: unknown; computedStyleMap: unknown; getAttribute: unknown; getAttributeNS: unknown; getAttributeNames: unknown; getAttributeNode: unknown; getAttributeNodeNS: unknown; getBoundingClientRect: unknown; getClientRects: unknown; getElementsByClassName: unknown; getElementsByTagName: unknown; getElementsByTagNameNS: unknown; getHTML: unknown; hasAttribute: unknown; hasAttributeNS: unknown; hasAttributes: unknown; hasPointerCapture: unknown; insertAdjacentElement: unknown; insertAdjacentHTML: unknown; insertAdjacentText: unknown; matches: unknown; releasePointerCapture: unknown; removeAttribute: unknown; removeAttributeNS: unknown; removeAttributeNode: unknown; requestFullscreen: unknown; requestPointerLock: unknown; scroll: unknown; scrollBy: unknown; scrollIntoView: unknown; scrollTo: unknown; setAttribute: unknown; setAttributeNS: unknown; setAttributeNode: unknown; setAttributeNodeNS: unknown; setHTMLUnsafe: unknown; setPointerCapture: unknown; toggleAttribute: unknown; webkitMatchesSelector: unknown; addEventListener: unknown; removeEventListener: unknown; dispatchEvent: unknown; readonly baseURI: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly childNodes: { readonly length: any; item: any; forEach: any; }; readonly firstChild: { after: any; before: any; remove: any; replaceWith: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; }; readonly isConnected: { valueOf: any; }; readonly lastChild: { after: any; before: any; remove: any; replaceWith: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; }; readonly nextSibling: { after: any; before: any; remove: any; replaceWith: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; }; readonly nodeName: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly nodeType: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; nodeValue: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly parentElement: { ariaAtomic: any; ariaAutoComplete: any; ariaBrailleLabel: any; ariaBrailleRoleDescription: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColIndexText: any; ariaColSpan: any; ariaCurrent: any; ariaDescription: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaInvalid: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRelevant: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowIndexText: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; role: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; readonly attributes: any; classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; readonly currentCSSZoom: any; id: any; innerHTML: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; checkVisibility: any; closest: any; computedStyleMap: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; getHTML: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setHTMLUnsafe: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; readonly attributeStyleMap: any; style: any; contentEditable: any; enterKeyHint: any; inputMode: any; readonly isContentEditable: any; dispatchEvent: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onbeforeinput: any; onbeforetoggle: any; onblur: any; oncancel: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextlost: any; oncontextmenu: any; oncontextrestored: any; oncopy: any; oncuechange: any; oncut: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpaste: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onscrollend: any; onsecuritypolicyviolation: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onslotchange: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; accessKey: any; readonly accessKeyLabel: any; autocapitalize: any; dir: any; draggable: any; hidden: any; inert: any; innerText: any; lang: any; readonly offsetHeight: any; readonly offsetLeft: any; readonly offsetParent: any; readonly offsetTop: any; readonly offsetWidth: any; outerText: any; popover: any; spellcheck: any; title: any; translate: any; writingSuggestions: any; attachInternals: any; click: any; hidePopover: any; showPopover: any; togglePopover: any; addEventListener: any; removeEventListener: any; autofocus: any; readonly dataset: any; nonce?: any; tabIndex: any; blur: any; focus: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly parentNode: { addEventListener: any; dispatchEvent: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; }; readonly previousSibling: { after: any; before: any; remove: any; replaceWith: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; }; textContent: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; appendChild: unknown; cloneNode: unknown; compareDocumentPosition: unknown; contains: unknown; getRootNode: unknown; hasChildNodes: unknown; insertBefore: unknown; isDefaultNamespace: unknown; isEqualNode: unknown; isSameNode: unknown; lookupNamespaceURI: unknown; lookupPrefix: unknown; normalize: unknown; removeChild: unknown; replaceChild: unknown; readonly ELEMENT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly ATTRIBUTE_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly TEXT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly CDATA_SECTION_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly ENTITY_REFERENCE_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly ENTITY_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly PROCESSING_INSTRUCTION_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly COMMENT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_TYPE_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_FRAGMENT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly NOTATION_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_DISCONNECTED: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_PRECEDING: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_FOLLOWING: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_CONTAINS: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_CONTAINED_BY: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly nextElementSibling: { ariaAtomic: any; ariaAutoComplete: any; ariaBrailleLabel: any; ariaBrailleRoleDescription: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColIndexText: any; ariaColSpan: any; ariaCurrent: any; ariaDescription: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaInvalid: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRelevant: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowIndexText: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; role: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; readonly attributes: any; classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; readonly currentCSSZoom: any; id: any; innerHTML: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; checkVisibility: any; closest: any; computedStyleMap: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; getHTML: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setHTMLUnsafe: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; dispatchEvent: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly previousElementSibling: { ariaAtomic: any; ariaAutoComplete: any; ariaBrailleLabel: any; ariaBrailleRoleDescription: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColIndexText: any; ariaColSpan: any; ariaCurrent: any; ariaDescription: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaInvalid: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRelevant: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowIndexText: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; role: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; readonly attributes: any; classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; readonly currentCSSZoom: any; id: any; innerHTML: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; checkVisibility: any; closest: any; computedStyleMap: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; getHTML: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setHTMLUnsafe: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; dispatchEvent: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly childElementCount: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly children: { readonly length: any; item: any; namedItem: any; }; readonly firstElementChild: { ariaAtomic: any; ariaAutoComplete: any; ariaBrailleLabel: any; ariaBrailleRoleDescription: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColIndexText: any; ariaColSpan: any; ariaCurrent: any; ariaDescription: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaInvalid: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRelevant: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowIndexText: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; role: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; readonly attributes: any; classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; readonly currentCSSZoom: any; id: any; innerHTML: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; checkVisibility: any; closest: any; computedStyleMap: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; getHTML: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setHTMLUnsafe: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; dispatchEvent: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly lastElementChild: { ariaAtomic: any; ariaAutoComplete: any; ariaBrailleLabel: any; ariaBrailleRoleDescription: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColIndexText: any; ariaColSpan: any; ariaCurrent: any; ariaDescription: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaInvalid: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRelevant: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowIndexText: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; role: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; readonly attributes: any; classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; readonly currentCSSZoom: any; id: any; innerHTML: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; checkVisibility: any; closest: any; computedStyleMap: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; getHTML: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setHTMLUnsafe: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; dispatchEvent: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; append: unknown; prepend: unknown; querySelector: unknown; querySelectorAll: unknown; replaceChildren: unknown; readonly assignedSlot: { ariaAtomic: any; ariaAutoComplete: any; ariaBrailleLabel: any; ariaBrailleRoleDescription: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColIndexText: any; ariaColSpan: any; ariaCurrent: any; ariaDescription: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaInvalid: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRelevant: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowIndexText: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; role: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; readonly attributes: any; classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; readonly currentCSSZoom: any; id: any; innerHTML: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; checkVisibility: any; closest: any; computedStyleMap: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; getHTML: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setHTMLUnsafe: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; readonly attributeStyleMap: any; style: any; contentEditable: any; enterKeyHint: any; inputMode: any; readonly isContentEditable: any; dispatchEvent: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onbeforeinput: any; onbeforetoggle: any; onblur: any; oncancel: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextlost: any; oncontextmenu: any; oncontextrestored: any; oncopy: any; oncuechange: any; oncut: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpaste: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onscrollend: any; onsecuritypolicyviolation: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onslotchange: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; accessKey: any; readonly accessKeyLabel: any; autocapitalize: any; dir: any; draggable: any; hidden: any; inert: any; innerText: any; lang: any; readonly offsetHeight: any; readonly offsetLeft: any; readonly offsetParent: any; readonly offsetTop: any; readonly offsetWidth: any; outerText: any; popover: any; spellcheck: any; title: any; translate: any; writingSuggestions: any; attachInternals: any; click: any; hidePopover: any; showPopover: any; togglePopover: any; autofocus: any; readonly dataset: any; nonce?: any; tabIndex: any; blur: any; focus: any; name: any; assign: any; assignedElements: any; assignedNodes: any; addEventListener: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; } | { data: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly length: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; appendData: unknown; deleteData: unknown; insertData: unknown; replaceData: unknown; substringData: unknown; after: unknown; before: unknown; remove: unknown; replaceWith: unknown; addEventListener: unknown; dispatchEvent: unknown; removeEventListener: unknown; readonly sheet: { readonly cssRules: any; readonly ownerRule: any; readonly rules: any; addRule: any; deleteRule: any; insertRule: any; removeRule: any; replace: any; replaceSync: any; disabled: any; readonly href: any; media: any; readonly ownerNode: any; readonly parentStyleSheet: any; readonly title: any; readonly type: any; }; readonly baseURI: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly childNodes: { readonly length: any; item: any; forEach: any; }; readonly firstChild: { after: any; before: any; remove: any; replaceWith: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; }; readonly isConnected: { valueOf: any; }; readonly lastChild: { after: any; before: any; remove: any; replaceWith: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; }; readonly nextSibling: { after: any; before: any; remove: any; replaceWith: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; }; readonly nodeName: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly nodeType: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; nodeValue: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly parentElement: { ariaAtomic: any; ariaAutoComplete: any; ariaBrailleLabel: any; ariaBrailleRoleDescription: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColIndexText: any; ariaColSpan: any; ariaCurrent: any; ariaDescription: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaInvalid: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRelevant: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowIndexText: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; role: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; readonly attributes: any; classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; readonly currentCSSZoom: any; id: any; innerHTML: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; checkVisibility: any; closest: any; computedStyleMap: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; getHTML: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setHTMLUnsafe: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; readonly attributeStyleMap: any; style: any; contentEditable: any; enterKeyHint: any; inputMode: any; readonly isContentEditable: any; dispatchEvent: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onbeforeinput: any; onbeforetoggle: any; onblur: any; oncancel: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextlost: any; oncontextmenu: any; oncontextrestored: any; oncopy: any; oncuechange: any; oncut: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpaste: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onscrollend: any; onsecuritypolicyviolation: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onslotchange: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; accessKey: any; readonly accessKeyLabel: any; autocapitalize: any; dir: any; draggable: any; hidden: any; inert: any; innerText: any; lang: any; readonly offsetHeight: any; readonly offsetLeft: any; readonly offsetParent: any; readonly offsetTop: any; readonly offsetWidth: any; outerText: any; popover: any; spellcheck: any; title: any; translate: any; writingSuggestions: any; attachInternals: any; click: any; hidePopover: any; showPopover: any; togglePopover: any; addEventListener: any; removeEventListener: any; autofocus: any; readonly dataset: any; nonce?: any; tabIndex: any; blur: any; focus: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly parentNode: { addEventListener: any; dispatchEvent: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; }; readonly previousSibling: { after: any; before: any; remove: any; replaceWith: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; }; textContent: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; appendChild: unknown; cloneNode: unknown; compareDocumentPosition: unknown; contains: unknown; getRootNode: unknown; hasChildNodes: unknown; insertBefore: unknown; isDefaultNamespace: unknown; isEqualNode: unknown; isSameNode: unknown; lookupNamespaceURI: unknown; lookupPrefix: unknown; normalize: unknown; removeChild: unknown; replaceChild: unknown; readonly ELEMENT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly ATTRIBUTE_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly TEXT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly CDATA_SECTION_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly ENTITY_REFERENCE_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly ENTITY_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly PROCESSING_INSTRUCTION_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly COMMENT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_TYPE_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_FRAGMENT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly NOTATION_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_DISCONNECTED: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_PRECEDING: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_FOLLOWING: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_CONTAINS: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_CONTAINED_BY: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly nextElementSibling: { ariaAtomic: any; ariaAutoComplete: any; ariaBrailleLabel: any; ariaBrailleRoleDescription: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColIndexText: any; ariaColSpan: any; ariaCurrent: any; ariaDescription: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaInvalid: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRelevant: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowIndexText: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; role: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; readonly attributes: any; classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; readonly currentCSSZoom: any; id: any; innerHTML: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; checkVisibility: any; closest: any; computedStyleMap: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; getHTML: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setHTMLUnsafe: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; dispatchEvent: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly previousElementSibling: { ariaAtomic: any; ariaAutoComplete: any; ariaBrailleLabel: any; ariaBrailleRoleDescription: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColIndexText: any; ariaColSpan: any; ariaCurrent: any; ariaDescription: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaInvalid: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRelevant: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowIndexText: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; role: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; readonly attributes: any; classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; readonly currentCSSZoom: any; id: any; innerHTML: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; checkVisibility: any; closest: any; computedStyleMap: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; getHTML: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setHTMLUnsafe: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; dispatchEvent: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly ownerDocument: { readonly URL: any; alinkColor: any; readonly all: any; readonly anchors: any; readonly applets: any; bgColor: any; body: any; readonly characterSet: any; readonly charset: any; readonly compatMode: any; readonly contentType: any; cookie: any; readonly currentScript: any; readonly defaultView: any; designMode: any; dir: any; readonly doctype: any; readonly documentElement: any; readonly documentURI: any; domain: any; readonly embeds: any; fgColor: any; readonly forms: any; readonly fragmentDirective: any; readonly fullscreen: any; readonly fullscreenEnabled: any; readonly head: any; readonly hidden: any; readonly images: any; readonly implementation: any; readonly inputEncoding: any; readonly lastModified: any; linkColor: any; readonly links: any; location: any; onfullscreenchange: any; onfullscreenerror: any; onpointerlockchange: any; onpointerlockerror: any; onreadystatechange: any; onvisibilitychange: any; readonly ownerDocument: any; readonly pictureInPictureEnabled: any; readonly plugins: any; readonly readyState: any; readonly referrer: any; readonly rootElement: any; readonly scripts: any; readonly scrollingElement: any; readonly timeline: any; title: any; readonly visibilityState: any; vlinkColor: any; adoptNode: any; captureEvents: any; caretPositionFromPoint: any; caretRangeFromPoint: any; clear: any; close: any; createAttribute: any; createAttributeNS: any; createCDATASection: any; createComment: any; createDocumentFragment: any; createElement: any; createElementNS: any; createEvent: any; createNodeIterator: any; createProcessingInstruction: any; createRange: any; createTextNode: any; createTreeWalker: any; execCommand: any; exitFullscreen: any; exitPictureInPicture: any; exitPointerLock: any; getElementById: any; getElementsByClassName: any; getElementsByName: any; getElementsByTagName: any; getElementsByTagNameNS: any; getSelection: any; hasFocus: any; hasStorageAccess: any; importNode: any; open: any; queryCommandEnabled: any; queryCommandIndeterm: any; queryCommandState: any; queryCommandSupported: any; queryCommandValue: any; releaseEvents: any; requestStorageAccess: any; startViewTransition: any; write: any; writeln: any; addEventListener: any; removeEventListener: any; readonly activeElement: any; adoptedStyleSheets: any; readonly fullscreenElement: any; readonly pictureInPictureElement: any; readonly pointerLockElement: any; readonly styleSheets: any; elementFromPoint: any; elementsFromPoint: any; getAnimations: any; dispatchEvent: any; readonly fonts: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onbeforeinput: any; onbeforetoggle: any; onblur: any; oncancel: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextlost: any; oncontextmenu: any; oncontextrestored: any; oncopy: any; oncuechange: any; oncut: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpaste: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onscrollend: any; onsecuritypolicyviolation: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onslotchange: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; createExpression: any; createNSResolver: any; evaluate: any; }; readonly target: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; }>'. + Type 'Element' is not assignable to type 'Deep<{ ariaAtomic: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaAutoComplete: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaBrailleLabel: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaBrailleRoleDescription: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaBusy: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaChecked: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaColCount: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaColIndex: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaColIndexText: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaColSpan: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaCurrent: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaDescription: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaDisabled: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaExpanded: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaHasPopup: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaHidden: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaInvalid: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaKeyShortcuts: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaLabel: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaLevel: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaLive: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaModal: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaMultiLine: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaMultiSelectable: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaOrientation: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaPlaceholder: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaPosInSet: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaPressed: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaReadOnly: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaRelevant: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaRequired: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaRoleDescription: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaRowCount: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaRowIndex: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaRowIndexText: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaRowSpan: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaSelected: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaSetSize: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaSort: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaValueMax: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaValueMin: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaValueNow: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaValueText: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; role: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; animate: unknown; getAnimations: unknown; after: unknown; before: unknown; remove: unknown; replaceWith: unknown; readonly attributes: { readonly length: any; getNamedItem: any; getNamedItemNS: any; item: any; removeNamedItem: any; removeNamedItemNS: any; setNamedItem: any; setNamedItemNS: any; }; classList: { readonly length: any; value: any; toString: any; add: any; contains: any; item: any; remove: any; replace: any; supports: any; toggle: any; forEach: any; }; className: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly clientHeight: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly clientLeft: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly clientTop: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly clientWidth: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly currentCSSZoom: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; id: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; innerHTML: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly localName: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly namespaceURI: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; onfullscreenchange: unknown; onfullscreenerror: unknown; outerHTML: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly ownerDocument: { readonly URL: any; alinkColor: any; readonly all: any; readonly anchors: any; readonly applets: any; bgColor: any; body: any; readonly characterSet: any; readonly charset: any; readonly compatMode: any; readonly contentType: any; cookie: any; readonly currentScript: any; readonly defaultView: any; designMode: any; dir: any; readonly doctype: any; readonly documentElement: any; readonly documentURI: any; domain: any; readonly embeds: any; fgColor: any; readonly forms: any; readonly fragmentDirective: any; readonly fullscreen: any; readonly fullscreenEnabled: any; readonly head: any; readonly hidden: any; readonly images: any; readonly implementation: any; readonly inputEncoding: any; readonly lastModified: any; linkColor: any; readonly links: any; location: any; onfullscreenchange: any; onfullscreenerror: any; onpointerlockchange: any; onpointerlockerror: any; onreadystatechange: any; onvisibilitychange: any; readonly ownerDocument: any; readonly pictureInPictureEnabled: any; readonly plugins: any; readonly readyState: any; readonly referrer: any; readonly rootElement: any; readonly scripts: any; readonly scrollingElement: any; readonly timeline: any; title: any; readonly visibilityState: any; vlinkColor: any; adoptNode: any; captureEvents: any; caretPositionFromPoint: any; caretRangeFromPoint: any; clear: any; close: any; createAttribute: any; createAttributeNS: any; createCDATASection: any; createComment: any; createDocumentFragment: any; createElement: any; createElementNS: any; createEvent: any; createNodeIterator: any; createProcessingInstruction: any; createRange: any; createTextNode: any; createTreeWalker: any; execCommand: any; exitFullscreen: any; exitPictureInPicture: any; exitPointerLock: any; getElementById: any; getElementsByClassName: any; getElementsByName: any; getElementsByTagName: any; getElementsByTagNameNS: any; getSelection: any; hasFocus: any; hasStorageAccess: any; importNode: any; open: any; queryCommandEnabled: any; queryCommandIndeterm: any; queryCommandState: any; queryCommandSupported: any; queryCommandValue: any; releaseEvents: any; requestStorageAccess: any; startViewTransition: any; write: any; writeln: any; addEventListener: any; removeEventListener: any; readonly activeElement: any; adoptedStyleSheets: any; readonly fullscreenElement: any; readonly pictureInPictureElement: any; readonly pointerLockElement: any; readonly styleSheets: any; elementFromPoint: any; elementsFromPoint: any; getAnimations: any; dispatchEvent: any; readonly fonts: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onbeforeinput: any; onbeforetoggle: any; onblur: any; oncancel: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextlost: any; oncontextmenu: any; oncontextrestored: any; oncopy: any; oncuechange: any; oncut: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpaste: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onscrollend: any; onsecuritypolicyviolation: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onslotchange: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; createExpression: any; createNSResolver: any; evaluate: any; }; part: { readonly length: any; value: any; toString: any; add: any; contains: any; item: any; remove: any; replace: any; supports: any; toggle: any; forEach: any; }; readonly prefix: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly scrollHeight: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; scrollLeft: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; scrollTop: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly scrollWidth: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly shadowRoot: { readonly ownerDocument: any; getElementById: any; readonly activeElement: any; adoptedStyleSheets: any; readonly fullscreenElement: any; readonly pictureInPictureElement: any; readonly pointerLockElement: any; readonly styleSheets: any; elementFromPoint: any; elementsFromPoint: any; getAnimations: any; dispatchEvent: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly clonable: any; readonly delegatesFocus: any; readonly host: any; innerHTML: any; readonly mode: any; onslotchange: any; readonly serializable: any; readonly slotAssignment: any; getHTML: any; setHTMLUnsafe: any; addEventListener: any; removeEventListener: any; }; slot: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly tagName: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; attachShadow: unknown; checkVisibility: unknown; closest: unknown; computedStyleMap: unknown; getAttribute: unknown; getAttributeNS: unknown; getAttributeNames: unknown; getAttributeNode: unknown; getAttributeNodeNS: unknown; getBoundingClientRect: unknown; getClientRects: unknown; getElementsByClassName: unknown; getElementsByTagName: unknown; getElementsByTagNameNS: unknown; getHTML: unknown; hasAttribute: unknown; hasAttributeNS: unknown; hasAttributes: unknown; hasPointerCapture: unknown; insertAdjacentElement: unknown; insertAdjacentHTML: unknown; insertAdjacentText: unknown; matches: unknown; releasePointerCapture: unknown; removeAttribute: unknown; removeAttributeNS: unknown; removeAttributeNode: unknown; requestFullscreen: unknown; requestPointerLock: unknown; scroll: unknown; scrollBy: unknown; scrollIntoView: unknown; scrollTo: unknown; setAttribute: unknown; setAttributeNS: unknown; setAttributeNode: unknown; setAttributeNodeNS: unknown; setHTMLUnsafe: unknown; setPointerCapture: unknown; toggleAttribute: unknown; webkitMatchesSelector: unknown; addEventListener: unknown; removeEventListener: unknown; dispatchEvent: unknown; readonly baseURI: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly childNodes: { readonly length: any; item: any; forEach: any; }; readonly firstChild: { after: any; before: any; remove: any; replaceWith: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; }; readonly isConnected: { valueOf: any; }; readonly lastChild: { after: any; before: any; remove: any; replaceWith: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; }; readonly nextSibling: { after: any; before: any; remove: any; replaceWith: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; }; readonly nodeName: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly nodeType: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; nodeValue: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly parentElement: { ariaAtomic: any; ariaAutoComplete: any; ariaBrailleLabel: any; ariaBrailleRoleDescription: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColIndexText: any; ariaColSpan: any; ariaCurrent: any; ariaDescription: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaInvalid: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRelevant: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowIndexText: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; role: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; readonly attributes: any; classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; readonly currentCSSZoom: any; id: any; innerHTML: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; checkVisibility: any; closest: any; computedStyleMap: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; getHTML: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setHTMLUnsafe: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; readonly attributeStyleMap: any; style: any; contentEditable: any; enterKeyHint: any; inputMode: any; readonly isContentEditable: any; dispatchEvent: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onbeforeinput: any; onbeforetoggle: any; onblur: any; oncancel: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextlost: any; oncontextmenu: any; oncontextrestored: any; oncopy: any; oncuechange: any; oncut: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpaste: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onscrollend: any; onsecuritypolicyviolation: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onslotchange: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; accessKey: any; readonly accessKeyLabel: any; autocapitalize: any; dir: any; draggable: any; hidden: any; inert: any; innerText: any; lang: any; readonly offsetHeight: any; readonly offsetLeft: any; readonly offsetParent: any; readonly offsetTop: any; readonly offsetWidth: any; outerText: any; popover: any; spellcheck: any; title: any; translate: any; writingSuggestions: any; attachInternals: any; click: any; hidePopover: any; showPopover: any; togglePopover: any; addEventListener: any; removeEventListener: any; autofocus: any; readonly dataset: any; nonce?: any; tabIndex: any; blur: any; focus: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly parentNode: { addEventListener: any; dispatchEvent: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; }; readonly previousSibling: { after: any; before: any; remove: any; replaceWith: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; }; textContent: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; appendChild: unknown; cloneNode: unknown; compareDocumentPosition: unknown; contains: unknown; getRootNode: unknown; hasChildNodes: unknown; insertBefore: unknown; isDefaultNamespace: unknown; isEqualNode: unknown; isSameNode: unknown; lookupNamespaceURI: unknown; lookupPrefix: unknown; normalize: unknown; removeChild: unknown; replaceChild: unknown; readonly ELEMENT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly ATTRIBUTE_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly TEXT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly CDATA_SECTION_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly ENTITY_REFERENCE_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly ENTITY_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly PROCESSING_INSTRUCTION_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly COMMENT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_TYPE_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_FRAGMENT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly NOTATION_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_DISCONNECTED: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_PRECEDING: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_FOLLOWING: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_CONTAINS: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_CONTAINED_BY: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly nextElementSibling: { ariaAtomic: any; ariaAutoComplete: any; ariaBrailleLabel: any; ariaBrailleRoleDescription: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColIndexText: any; ariaColSpan: any; ariaCurrent: any; ariaDescription: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaInvalid: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRelevant: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowIndexText: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; role: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; readonly attributes: any; classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; readonly currentCSSZoom: any; id: any; innerHTML: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; checkVisibility: any; closest: any; computedStyleMap: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; getHTML: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setHTMLUnsafe: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; dispatchEvent: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly previousElementSibling: { ariaAtomic: any; ariaAutoComplete: any; ariaBrailleLabel: any; ariaBrailleRoleDescription: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColIndexText: any; ariaColSpan: any; ariaCurrent: any; ariaDescription: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaInvalid: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRelevant: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowIndexText: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; role: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; readonly attributes: any; classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; readonly currentCSSZoom: any; id: any; innerHTML: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; checkVisibility: any; closest: any; computedStyleMap: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; getHTML: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setHTMLUnsafe: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; dispatchEvent: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly childElementCount: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly children: { readonly length: any; item: any; namedItem: any; }; readonly firstElementChild: { ariaAtomic: any; ariaAutoComplete: any; ariaBrailleLabel: any; ariaBrailleRoleDescription: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColIndexText: any; ariaColSpan: any; ariaCurrent: any; ariaDescription: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaInvalid: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRelevant: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowIndexText: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; role: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; readonly attributes: any; classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; readonly currentCSSZoom: any; id: any; innerHTML: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; checkVisibility: any; closest: any; computedStyleMap: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; getHTML: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setHTMLUnsafe: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; dispatchEvent: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly lastElementChild: { ariaAtomic: any; ariaAutoComplete: any; ariaBrailleLabel: any; ariaBrailleRoleDescription: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColIndexText: any; ariaColSpan: any; ariaCurrent: any; ariaDescription: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaInvalid: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRelevant: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowIndexText: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; role: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; readonly attributes: any; classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; readonly currentCSSZoom: any; id: any; innerHTML: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; checkVisibility: any; closest: any; computedStyleMap: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; getHTML: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setHTMLUnsafe: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; dispatchEvent: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; append: unknown; prepend: unknown; querySelector: unknown; querySelectorAll: unknown; replaceChildren: unknown; readonly assignedSlot: { ariaAtomic: any; ariaAutoComplete: any; ariaBrailleLabel: any; ariaBrailleRoleDescription: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColIndexText: any; ariaColSpan: any; ariaCurrent: any; ariaDescription: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaInvalid: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRelevant: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowIndexText: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; role: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; readonly attributes: any; classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; readonly currentCSSZoom: any; id: any; innerHTML: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; checkVisibility: any; closest: any; computedStyleMap: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; getHTML: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setHTMLUnsafe: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; readonly attributeStyleMap: any; style: any; contentEditable: any; enterKeyHint: any; inputMode: any; readonly isContentEditable: any; dispatchEvent: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onbeforeinput: any; onbeforetoggle: any; onblur: any; oncancel: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextlost: any; oncontextmenu: any; oncontextrestored: any; oncopy: any; oncuechange: any; oncut: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpaste: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onscrollend: any; onsecuritypolicyviolation: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onslotchange: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; accessKey: any; readonly accessKeyLabel: any; autocapitalize: any; dir: any; draggable: any; hidden: any; inert: any; innerText: any; lang: any; readonly offsetHeight: any; readonly offsetLeft: any; readonly offsetParent: any; readonly offsetTop: any; readonly offsetWidth: any; outerText: any; popover: any; spellcheck: any; title: any; translate: any; writingSuggestions: any; attachInternals: any; click: any; hidePopover: any; showPopover: any; togglePopover: any; autofocus: any; readonly dataset: any; nonce?: any; tabIndex: any; blur: any; focus: any; name: any; assign: any; assignedElements: any; assignedNodes: any; addEventListener: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; } | { data: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly length: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; appendData: unknown; deleteData: unknown; insertData: unknown; replaceData: unknown; substringData: unknown; after: unknown; before: unknown; remove: unknown; replaceWith: unknown; addEventListener: unknown; dispatchEvent: unknown; removeEventListener: unknown; readonly sheet: { readonly cssRules: any; readonly ownerRule: any; readonly rules: any; addRule: any; deleteRule: any; insertRule: any; removeRule: any; replace: any; replaceSync: any; disabled: any; readonly href: any; media: any; readonly ownerNode: any; readonly parentStyleSheet: any; readonly title: any; readonly type: any; }; readonly baseURI: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly childNodes: { readonly length: any; item: any; forEach: any; }; readonly firstChild: { after: any; before: any; remove: any; replaceWith: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; }; readonly isConnected: { valueOf: any; }; readonly lastChild: { after: any; before: any; remove: any; replaceWith: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; }; readonly nextSibling: { after: any; before: any; remove: any; replaceWith: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; }; readonly nodeName: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly nodeType: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; nodeValue: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly parentElement: { ariaAtomic: any; ariaAutoComplete: any; ariaBrailleLabel: any; ariaBrailleRoleDescription: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColIndexText: any; ariaColSpan: any; ariaCurrent: any; ariaDescription: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaInvalid: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRelevant: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowIndexText: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; role: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; readonly attributes: any; classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; readonly currentCSSZoom: any; id: any; innerHTML: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; checkVisibility: any; closest: any; computedStyleMap: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; getHTML: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setHTMLUnsafe: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; readonly attributeStyleMap: any; style: any; contentEditable: any; enterKeyHint: any; inputMode: any; readonly isContentEditable: any; dispatchEvent: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onbeforeinput: any; onbeforetoggle: any; onblur: any; oncancel: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextlost: any; oncontextmenu: any; oncontextrestored: any; oncopy: any; oncuechange: any; oncut: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpaste: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onscrollend: any; onsecuritypolicyviolation: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onslotchange: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; accessKey: any; readonly accessKeyLabel: any; autocapitalize: any; dir: any; draggable: any; hidden: any; inert: any; innerText: any; lang: any; readonly offsetHeight: any; readonly offsetLeft: any; readonly offsetParent: any; readonly offsetTop: any; readonly offsetWidth: any; outerText: any; popover: any; spellcheck: any; title: any; translate: any; writingSuggestions: any; attachInternals: any; click: any; hidePopover: any; showPopover: any; togglePopover: any; addEventListener: any; removeEventListener: any; autofocus: any; readonly dataset: any; nonce?: any; tabIndex: any; blur: any; focus: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly parentNode: { addEventListener: any; dispatchEvent: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; }; readonly previousSibling: { after: any; before: any; remove: any; replaceWith: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; }; textContent: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; appendChild: unknown; cloneNode: unknown; compareDocumentPosition: unknown; contains: unknown; getRootNode: unknown; hasChildNodes: unknown; insertBefore: unknown; isDefaultNamespace: unknown; isEqualNode: unknown; isSameNode: unknown; lookupNamespaceURI: unknown; lookupPrefix: unknown; normalize: unknown; removeChild: unknown; replaceChild: unknown; readonly ELEMENT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly ATTRIBUTE_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly TEXT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly CDATA_SECTION_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly ENTITY_REFERENCE_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly ENTITY_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly PROCESSING_INSTRUCTION_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly COMMENT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_TYPE_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_FRAGMENT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly NOTATION_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_DISCONNECTED: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_PRECEDING: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_FOLLOWING: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_CONTAINS: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_CONTAINED_BY: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly nextElementSibling: { ariaAtomic: any; ariaAutoComplete: any; ariaBrailleLabel: any; ariaBrailleRoleDescription: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColIndexText: any; ariaColSpan: any; ariaCurrent: any; ariaDescription: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaInvalid: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRelevant: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowIndexText: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; role: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; readonly attributes: any; classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; readonly currentCSSZoom: any; id: any; innerHTML: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; checkVisibility: any; closest: any; computedStyleMap: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; getHTML: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setHTMLUnsafe: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; dispatchEvent: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly previousElementSibling: { ariaAtomic: any; ariaAutoComplete: any; ariaBrailleLabel: any; ariaBrailleRoleDescription: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColIndexText: any; ariaColSpan: any; ariaCurrent: any; ariaDescription: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaInvalid: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRelevant: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowIndexText: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; role: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; readonly attributes: any; classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; readonly currentCSSZoom: any; id: any; innerHTML: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; checkVisibility: any; closest: any; computedStyleMap: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; getHTML: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setHTMLUnsafe: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; dispatchEvent: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly ownerDocument: { readonly URL: any; alinkColor: any; readonly all: any; readonly anchors: any; readonly applets: any; bgColor: any; body: any; readonly characterSet: any; readonly charset: any; readonly compatMode: any; readonly contentType: any; cookie: any; readonly currentScript: any; readonly defaultView: any; designMode: any; dir: any; readonly doctype: any; readonly documentElement: any; readonly documentURI: any; domain: any; readonly embeds: any; fgColor: any; readonly forms: any; readonly fragmentDirective: any; readonly fullscreen: any; readonly fullscreenEnabled: any; readonly head: any; readonly hidden: any; readonly images: any; readonly implementation: any; readonly inputEncoding: any; readonly lastModified: any; linkColor: any; readonly links: any; location: any; onfullscreenchange: any; onfullscreenerror: any; onpointerlockchange: any; onpointerlockerror: any; onreadystatechange: any; onvisibilitychange: any; readonly ownerDocument: any; readonly pictureInPictureEnabled: any; readonly plugins: any; readonly readyState: any; readonly referrer: any; readonly rootElement: any; readonly scripts: any; readonly scrollingElement: any; readonly timeline: any; title: any; readonly visibilityState: any; vlinkColor: any; adoptNode: any; captureEvents: any; caretPositionFromPoint: any; caretRangeFromPoint: any; clear: any; close: any; createAttribute: any; createAttributeNS: any; createCDATASection: any; createComment: any; createDocumentFragment: any; createElement: any; createElementNS: any; createEvent: any; createNodeIterator: any; createProcessingInstruction: any; createRange: any; createTextNode: any; createTreeWalker: any; execCommand: any; exitFullscreen: any; exitPictureInPicture: any; exitPointerLock: any; getElementById: any; getElementsByClassName: any; getElementsByName: any; getElementsByTagName: any; getElementsByTagNameNS: any; getSelection: any; hasFocus: any; hasStorageAccess: any; importNode: any; open: any; queryCommandEnabled: any; queryCommandIndeterm: any; queryCommandState: any; queryCommandSupported: any; queryCommandValue: any; releaseEvents: any; requestStorageAccess: any; startViewTransition: any; write: any; writeln: any; addEventListener: any; removeEventListener: any; readonly activeElement: any; adoptedStyleSheets: any; readonly fullscreenElement: any; readonly pictureInPictureElement: any; readonly pointerLockElement: any; readonly styleSheets: any; elementFromPoint: any; elementsFromPoint: any; getAnimations: any; dispatchEvent: any; readonly fonts: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onbeforeinput: any; onbeforetoggle: any; onblur: any; oncancel: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextlost: any; oncontextmenu: any; oncontextrestored: any; oncopy: any; oncuechange: any; oncut: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpaste: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onscrollend: any; onsecuritypolicyviolation: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onslotchange: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; createExpression: any; createNSResolver: any; evaluate: any; }; readonly target: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; }>'. + + +==== mappedTypeRecursiveInference.ts (1 errors) ==== + interface A { a: A } + declare let a: A; + type Deep = { [K in keyof T]: Deep } + declare function foo(deep: Deep): T; + const out = foo(a); + out.a + out.a.a + out.a.a.a.a.a.a.a + + + interface B { [s: string]: B } + declare let b: B; + const oub = foo(b); + oub.b + oub.b.b + oub.b.a.n.a.n.a + + let xhr: XMLHttpRequest; + const out2 = foo(xhr); + ~~~ +!!! error TS2345: Argument of type 'XMLHttpRequest' is not assignable to parameter of type 'Deep<{ dispatchEvent: unknown; onreadystatechange: unknown; readonly readyState: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly response: unknown; readonly responseText: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; responseType: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly responseURL: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly responseXML: { readonly URL: any; alinkColor: any; readonly all: any; readonly anchors: any; readonly applets: any; bgColor: any; body: any; readonly characterSet: any; readonly charset: any; readonly compatMode: any; readonly contentType: any; cookie: any; readonly currentScript: any; readonly defaultView: any; designMode: any; dir: any; readonly doctype: any; readonly documentElement: any; readonly documentURI: any; domain: any; readonly embeds: any; fgColor: any; readonly forms: any; readonly fragmentDirective: any; readonly fullscreen: any; readonly fullscreenEnabled: any; readonly head: any; readonly hidden: any; readonly images: any; readonly implementation: any; readonly inputEncoding: any; readonly lastModified: any; linkColor: any; readonly links: any; location: any; onfullscreenchange: any; onfullscreenerror: any; onpointerlockchange: any; onpointerlockerror: any; onreadystatechange: any; onvisibilitychange: any; readonly ownerDocument: any; readonly pictureInPictureEnabled: any; readonly plugins: any; readonly readyState: any; readonly referrer: any; readonly rootElement: any; readonly scripts: any; readonly scrollingElement: any; readonly timeline: any; title: any; readonly visibilityState: any; vlinkColor: any; adoptNode: any; captureEvents: any; caretPositionFromPoint: any; caretRangeFromPoint: any; clear: any; close: any; createAttribute: any; createAttributeNS: any; createCDATASection: any; createComment: any; createDocumentFragment: any; createElement: any; createElementNS: any; createEvent: any; createNodeIterator: any; createProcessingInstruction: any; createRange: any; createTextNode: any; createTreeWalker: any; execCommand: any; exitFullscreen: any; exitPictureInPicture: any; exitPointerLock: any; getElementById: any; getElementsByClassName: any; getElementsByName: any; getElementsByTagName: any; getElementsByTagNameNS: any; getSelection: any; hasFocus: any; hasStorageAccess: any; importNode: any; open: any; queryCommandEnabled: any; queryCommandIndeterm: any; queryCommandState: any; queryCommandSupported: any; queryCommandValue: any; releaseEvents: any; requestStorageAccess: any; startViewTransition: any; write: any; writeln: any; addEventListener: any; removeEventListener: any; readonly activeElement: any; adoptedStyleSheets: any; readonly fullscreenElement: any; readonly pictureInPictureElement: any; readonly pointerLockElement: any; readonly styleSheets: any; elementFromPoint: any; elementsFromPoint: any; getAnimations: any; dispatchEvent: any; readonly fonts: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onbeforeinput: any; onbeforetoggle: any; onblur: any; oncancel: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextlost: any; oncontextmenu: any; oncontextrestored: any; oncopy: any; oncuechange: any; oncut: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpaste: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onscrollend: any; onsecuritypolicyviolation: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onslotchange: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; createExpression: any; createNSResolver: any; evaluate: any; }; readonly status: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly statusText: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; timeout: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly upload: { dispatchEvent: any; onabort: any; onerror: any; onload: any; onloadend: any; onloadstart: any; onprogress: any; ontimeout: any; addEventListener: any; removeEventListener: any; }; withCredentials: { valueOf: any; }; abort: unknown; getAllResponseHeaders: unknown; getResponseHeader: unknown; open: unknown; overrideMimeType: unknown; send: unknown; setRequestHeader: unknown; readonly UNSENT: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly OPENED: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly HEADERS_RECEIVED: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly LOADING: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DONE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; addEventListener: unknown; removeEventListener: unknown; onabort: unknown; onerror: unknown; onload: unknown; onloadend: unknown; onloadstart: unknown; onprogress: unknown; ontimeout: unknown; }>'. +!!! error TS2345: The types of 'responseXML.body.shadowRoot.activeElement.assignedSlot.style.parentRule.parentStyleSheet.ownerNode' are incompatible between these types. +!!! error TS2345: Type 'Element | ProcessingInstruction' is not assignable to type 'Deep<{ ariaAtomic: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaAutoComplete: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaBrailleLabel: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaBrailleRoleDescription: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaBusy: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaChecked: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaColCount: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaColIndex: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaColIndexText: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaColSpan: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaCurrent: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaDescription: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaDisabled: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaExpanded: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaHasPopup: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaHidden: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaInvalid: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaKeyShortcuts: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaLabel: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaLevel: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaLive: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaModal: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaMultiLine: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaMultiSelectable: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaOrientation: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaPlaceholder: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaPosInSet: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaPressed: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaReadOnly: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaRelevant: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaRequired: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaRoleDescription: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaRowCount: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaRowIndex: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaRowIndexText: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaRowSpan: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaSelected: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaSetSize: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaSort: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaValueMax: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaValueMin: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaValueNow: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaValueText: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; role: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; animate: unknown; getAnimations: unknown; after: unknown; before: unknown; remove: unknown; replaceWith: unknown; readonly attributes: { readonly length: any; getNamedItem: any; getNamedItemNS: any; item: any; removeNamedItem: any; removeNamedItemNS: any; setNamedItem: any; setNamedItemNS: any; }; classList: { readonly length: any; value: any; toString: any; add: any; contains: any; item: any; remove: any; replace: any; supports: any; toggle: any; forEach: any; }; className: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly clientHeight: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly clientLeft: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly clientTop: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly clientWidth: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly currentCSSZoom: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; id: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; innerHTML: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly localName: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly namespaceURI: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; onfullscreenchange: unknown; onfullscreenerror: unknown; outerHTML: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly ownerDocument: { readonly URL: any; alinkColor: any; readonly all: any; readonly anchors: any; readonly applets: any; bgColor: any; body: any; readonly characterSet: any; readonly charset: any; readonly compatMode: any; readonly contentType: any; cookie: any; readonly currentScript: any; readonly defaultView: any; designMode: any; dir: any; readonly doctype: any; readonly documentElement: any; readonly documentURI: any; domain: any; readonly embeds: any; fgColor: any; readonly forms: any; readonly fragmentDirective: any; readonly fullscreen: any; readonly fullscreenEnabled: any; readonly head: any; readonly hidden: any; readonly images: any; readonly implementation: any; readonly inputEncoding: any; readonly lastModified: any; linkColor: any; readonly links: any; location: any; onfullscreenchange: any; onfullscreenerror: any; onpointerlockchange: any; onpointerlockerror: any; onreadystatechange: any; onvisibilitychange: any; readonly ownerDocument: any; readonly pictureInPictureEnabled: any; readonly plugins: any; readonly readyState: any; readonly referrer: any; readonly rootElement: any; readonly scripts: any; readonly scrollingElement: any; readonly timeline: any; title: any; readonly visibilityState: any; vlinkColor: any; adoptNode: any; captureEvents: any; caretPositionFromPoint: any; caretRangeFromPoint: any; clear: any; close: any; createAttribute: any; createAttributeNS: any; createCDATASection: any; createComment: any; createDocumentFragment: any; createElement: any; createElementNS: any; createEvent: any; createNodeIterator: any; createProcessingInstruction: any; createRange: any; createTextNode: any; createTreeWalker: any; execCommand: any; exitFullscreen: any; exitPictureInPicture: any; exitPointerLock: any; getElementById: any; getElementsByClassName: any; getElementsByName: any; getElementsByTagName: any; getElementsByTagNameNS: any; getSelection: any; hasFocus: any; hasStorageAccess: any; importNode: any; open: any; queryCommandEnabled: any; queryCommandIndeterm: any; queryCommandState: any; queryCommandSupported: any; queryCommandValue: any; releaseEvents: any; requestStorageAccess: any; startViewTransition: any; write: any; writeln: any; addEventListener: any; removeEventListener: any; readonly activeElement: any; adoptedStyleSheets: any; readonly fullscreenElement: any; readonly pictureInPictureElement: any; readonly pointerLockElement: any; readonly styleSheets: any; elementFromPoint: any; elementsFromPoint: any; getAnimations: any; dispatchEvent: any; readonly fonts: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onbeforeinput: any; onbeforetoggle: any; onblur: any; oncancel: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextlost: any; oncontextmenu: any; oncontextrestored: any; oncopy: any; oncuechange: any; oncut: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpaste: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onscrollend: any; onsecuritypolicyviolation: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onslotchange: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; createExpression: any; createNSResolver: any; evaluate: any; }; part: { readonly length: any; value: any; toString: any; add: any; contains: any; item: any; remove: any; replace: any; supports: any; toggle: any; forEach: any; }; readonly prefix: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly scrollHeight: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; scrollLeft: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; scrollTop: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly scrollWidth: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly shadowRoot: { readonly ownerDocument: any; getElementById: any; readonly activeElement: any; adoptedStyleSheets: any; readonly fullscreenElement: any; readonly pictureInPictureElement: any; readonly pointerLockElement: any; readonly styleSheets: any; elementFromPoint: any; elementsFromPoint: any; getAnimations: any; dispatchEvent: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly clonable: any; readonly delegatesFocus: any; readonly host: any; innerHTML: any; readonly mode: any; onslotchange: any; readonly serializable: any; readonly slotAssignment: any; getHTML: any; setHTMLUnsafe: any; addEventListener: any; removeEventListener: any; }; slot: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly tagName: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; attachShadow: unknown; checkVisibility: unknown; closest: unknown; computedStyleMap: unknown; getAttribute: unknown; getAttributeNS: unknown; getAttributeNames: unknown; getAttributeNode: unknown; getAttributeNodeNS: unknown; getBoundingClientRect: unknown; getClientRects: unknown; getElementsByClassName: unknown; getElementsByTagName: unknown; getElementsByTagNameNS: unknown; getHTML: unknown; hasAttribute: unknown; hasAttributeNS: unknown; hasAttributes: unknown; hasPointerCapture: unknown; insertAdjacentElement: unknown; insertAdjacentHTML: unknown; insertAdjacentText: unknown; matches: unknown; releasePointerCapture: unknown; removeAttribute: unknown; removeAttributeNS: unknown; removeAttributeNode: unknown; requestFullscreen: unknown; requestPointerLock: unknown; scroll: unknown; scrollBy: unknown; scrollIntoView: unknown; scrollTo: unknown; setAttribute: unknown; setAttributeNS: unknown; setAttributeNode: unknown; setAttributeNodeNS: unknown; setHTMLUnsafe: unknown; setPointerCapture: unknown; toggleAttribute: unknown; webkitMatchesSelector: unknown; addEventListener: unknown; removeEventListener: unknown; dispatchEvent: unknown; readonly baseURI: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly childNodes: { readonly length: any; item: any; forEach: any; }; readonly firstChild: { after: any; before: any; remove: any; replaceWith: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; }; readonly isConnected: { valueOf: any; }; readonly lastChild: { after: any; before: any; remove: any; replaceWith: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; }; readonly nextSibling: { after: any; before: any; remove: any; replaceWith: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; }; readonly nodeName: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly nodeType: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; nodeValue: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly parentElement: { ariaAtomic: any; ariaAutoComplete: any; ariaBrailleLabel: any; ariaBrailleRoleDescription: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColIndexText: any; ariaColSpan: any; ariaCurrent: any; ariaDescription: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaInvalid: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRelevant: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowIndexText: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; role: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; readonly attributes: any; classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; readonly currentCSSZoom: any; id: any; innerHTML: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; checkVisibility: any; closest: any; computedStyleMap: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; getHTML: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setHTMLUnsafe: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; readonly attributeStyleMap: any; style: any; contentEditable: any; enterKeyHint: any; inputMode: any; readonly isContentEditable: any; dispatchEvent: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onbeforeinput: any; onbeforetoggle: any; onblur: any; oncancel: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextlost: any; oncontextmenu: any; oncontextrestored: any; oncopy: any; oncuechange: any; oncut: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpaste: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onscrollend: any; onsecuritypolicyviolation: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onslotchange: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; accessKey: any; readonly accessKeyLabel: any; autocapitalize: any; dir: any; draggable: any; hidden: any; inert: any; innerText: any; lang: any; readonly offsetHeight: any; readonly offsetLeft: any; readonly offsetParent: any; readonly offsetTop: any; readonly offsetWidth: any; outerText: any; popover: any; spellcheck: any; title: any; translate: any; writingSuggestions: any; attachInternals: any; click: any; hidePopover: any; showPopover: any; togglePopover: any; addEventListener: any; removeEventListener: any; autofocus: any; readonly dataset: any; nonce?: any; tabIndex: any; blur: any; focus: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly parentNode: { addEventListener: any; dispatchEvent: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; }; readonly previousSibling: { after: any; before: any; remove: any; replaceWith: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; }; textContent: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; appendChild: unknown; cloneNode: unknown; compareDocumentPosition: unknown; contains: unknown; getRootNode: unknown; hasChildNodes: unknown; insertBefore: unknown; isDefaultNamespace: unknown; isEqualNode: unknown; isSameNode: unknown; lookupNamespaceURI: unknown; lookupPrefix: unknown; normalize: unknown; removeChild: unknown; replaceChild: unknown; readonly ELEMENT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly ATTRIBUTE_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly TEXT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly CDATA_SECTION_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly ENTITY_REFERENCE_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly ENTITY_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly PROCESSING_INSTRUCTION_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly COMMENT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_TYPE_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_FRAGMENT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly NOTATION_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_DISCONNECTED: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_PRECEDING: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_FOLLOWING: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_CONTAINS: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_CONTAINED_BY: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly nextElementSibling: { ariaAtomic: any; ariaAutoComplete: any; ariaBrailleLabel: any; ariaBrailleRoleDescription: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColIndexText: any; ariaColSpan: any; ariaCurrent: any; ariaDescription: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaInvalid: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRelevant: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowIndexText: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; role: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; readonly attributes: any; classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; readonly currentCSSZoom: any; id: any; innerHTML: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; checkVisibility: any; closest: any; computedStyleMap: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; getHTML: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setHTMLUnsafe: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; dispatchEvent: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly previousElementSibling: { ariaAtomic: any; ariaAutoComplete: any; ariaBrailleLabel: any; ariaBrailleRoleDescription: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColIndexText: any; ariaColSpan: any; ariaCurrent: any; ariaDescription: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaInvalid: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRelevant: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowIndexText: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; role: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; readonly attributes: any; classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; readonly currentCSSZoom: any; id: any; innerHTML: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; checkVisibility: any; closest: any; computedStyleMap: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; getHTML: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setHTMLUnsafe: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; dispatchEvent: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly childElementCount: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly children: { readonly length: any; item: any; namedItem: any; }; readonly firstElementChild: { ariaAtomic: any; ariaAutoComplete: any; ariaBrailleLabel: any; ariaBrailleRoleDescription: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColIndexText: any; ariaColSpan: any; ariaCurrent: any; ariaDescription: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaInvalid: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRelevant: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowIndexText: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; role: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; readonly attributes: any; classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; readonly currentCSSZoom: any; id: any; innerHTML: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; checkVisibility: any; closest: any; computedStyleMap: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; getHTML: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setHTMLUnsafe: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; dispatchEvent: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly lastElementChild: { ariaAtomic: any; ariaAutoComplete: any; ariaBrailleLabel: any; ariaBrailleRoleDescription: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColIndexText: any; ariaColSpan: any; ariaCurrent: any; ariaDescription: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaInvalid: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRelevant: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowIndexText: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; role: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; readonly attributes: any; classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; readonly currentCSSZoom: any; id: any; innerHTML: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; checkVisibility: any; closest: any; computedStyleMap: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; getHTML: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setHTMLUnsafe: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; dispatchEvent: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; append: unknown; prepend: unknown; querySelector: unknown; querySelectorAll: unknown; replaceChildren: unknown; readonly assignedSlot: { ariaAtomic: any; ariaAutoComplete: any; ariaBrailleLabel: any; ariaBrailleRoleDescription: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColIndexText: any; ariaColSpan: any; ariaCurrent: any; ariaDescription: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaInvalid: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRelevant: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowIndexText: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; role: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; readonly attributes: any; classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; readonly currentCSSZoom: any; id: any; innerHTML: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; checkVisibility: any; closest: any; computedStyleMap: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; getHTML: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setHTMLUnsafe: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; readonly attributeStyleMap: any; style: any; contentEditable: any; enterKeyHint: any; inputMode: any; readonly isContentEditable: any; dispatchEvent: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onbeforeinput: any; onbeforetoggle: any; onblur: any; oncancel: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextlost: any; oncontextmenu: any; oncontextrestored: any; oncopy: any; oncuechange: any; oncut: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpaste: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onscrollend: any; onsecuritypolicyviolation: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onslotchange: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; accessKey: any; readonly accessKeyLabel: any; autocapitalize: any; dir: any; draggable: any; hidden: any; inert: any; innerText: any; lang: any; readonly offsetHeight: any; readonly offsetLeft: any; readonly offsetParent: any; readonly offsetTop: any; readonly offsetWidth: any; outerText: any; popover: any; spellcheck: any; title: any; translate: any; writingSuggestions: any; attachInternals: any; click: any; hidePopover: any; showPopover: any; togglePopover: any; autofocus: any; readonly dataset: any; nonce?: any; tabIndex: any; blur: any; focus: any; name: any; assign: any; assignedElements: any; assignedNodes: any; addEventListener: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; } | { data: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly length: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; appendData: unknown; deleteData: unknown; insertData: unknown; replaceData: unknown; substringData: unknown; after: unknown; before: unknown; remove: unknown; replaceWith: unknown; addEventListener: unknown; dispatchEvent: unknown; removeEventListener: unknown; readonly sheet: { readonly cssRules: any; readonly ownerRule: any; readonly rules: any; addRule: any; deleteRule: any; insertRule: any; removeRule: any; replace: any; replaceSync: any; disabled: any; readonly href: any; media: any; readonly ownerNode: any; readonly parentStyleSheet: any; readonly title: any; readonly type: any; }; readonly baseURI: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly childNodes: { readonly length: any; item: any; forEach: any; }; readonly firstChild: { after: any; before: any; remove: any; replaceWith: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; }; readonly isConnected: { valueOf: any; }; readonly lastChild: { after: any; before: any; remove: any; replaceWith: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; }; readonly nextSibling: { after: any; before: any; remove: any; replaceWith: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; }; readonly nodeName: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly nodeType: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; nodeValue: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly parentElement: { ariaAtomic: any; ariaAutoComplete: any; ariaBrailleLabel: any; ariaBrailleRoleDescription: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColIndexText: any; ariaColSpan: any; ariaCurrent: any; ariaDescription: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaInvalid: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRelevant: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowIndexText: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; role: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; readonly attributes: any; classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; readonly currentCSSZoom: any; id: any; innerHTML: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; checkVisibility: any; closest: any; computedStyleMap: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; getHTML: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setHTMLUnsafe: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; readonly attributeStyleMap: any; style: any; contentEditable: any; enterKeyHint: any; inputMode: any; readonly isContentEditable: any; dispatchEvent: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onbeforeinput: any; onbeforetoggle: any; onblur: any; oncancel: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextlost: any; oncontextmenu: any; oncontextrestored: any; oncopy: any; oncuechange: any; oncut: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpaste: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onscrollend: any; onsecuritypolicyviolation: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onslotchange: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; accessKey: any; readonly accessKeyLabel: any; autocapitalize: any; dir: any; draggable: any; hidden: any; inert: any; innerText: any; lang: any; readonly offsetHeight: any; readonly offsetLeft: any; readonly offsetParent: any; readonly offsetTop: any; readonly offsetWidth: any; outerText: any; popover: any; spellcheck: any; title: any; translate: any; writingSuggestions: any; attachInternals: any; click: any; hidePopover: any; showPopover: any; togglePopover: any; addEventListener: any; removeEventListener: any; autofocus: any; readonly dataset: any; nonce?: any; tabIndex: any; blur: any; focus: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly parentNode: { addEventListener: any; dispatchEvent: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; }; readonly previousSibling: { after: any; before: any; remove: any; replaceWith: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; }; textContent: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; appendChild: unknown; cloneNode: unknown; compareDocumentPosition: unknown; contains: unknown; getRootNode: unknown; hasChildNodes: unknown; insertBefore: unknown; isDefaultNamespace: unknown; isEqualNode: unknown; isSameNode: unknown; lookupNamespaceURI: unknown; lookupPrefix: unknown; normalize: unknown; removeChild: unknown; replaceChild: unknown; readonly ELEMENT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly ATTRIBUTE_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly TEXT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly CDATA_SECTION_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly ENTITY_REFERENCE_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly ENTITY_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly PROCESSING_INSTRUCTION_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly COMMENT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_TYPE_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_FRAGMENT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly NOTATION_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_DISCONNECTED: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_PRECEDING: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_FOLLOWING: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_CONTAINS: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_CONTAINED_BY: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly nextElementSibling: { ariaAtomic: any; ariaAutoComplete: any; ariaBrailleLabel: any; ariaBrailleRoleDescription: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColIndexText: any; ariaColSpan: any; ariaCurrent: any; ariaDescription: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaInvalid: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRelevant: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowIndexText: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; role: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; readonly attributes: any; classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; readonly currentCSSZoom: any; id: any; innerHTML: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; checkVisibility: any; closest: any; computedStyleMap: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; getHTML: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setHTMLUnsafe: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; dispatchEvent: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly previousElementSibling: { ariaAtomic: any; ariaAutoComplete: any; ariaBrailleLabel: any; ariaBrailleRoleDescription: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColIndexText: any; ariaColSpan: any; ariaCurrent: any; ariaDescription: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaInvalid: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRelevant: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowIndexText: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; role: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; readonly attributes: any; classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; readonly currentCSSZoom: any; id: any; innerHTML: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; checkVisibility: any; closest: any; computedStyleMap: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; getHTML: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setHTMLUnsafe: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; dispatchEvent: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly ownerDocument: { readonly URL: any; alinkColor: any; readonly all: any; readonly anchors: any; readonly applets: any; bgColor: any; body: any; readonly characterSet: any; readonly charset: any; readonly compatMode: any; readonly contentType: any; cookie: any; readonly currentScript: any; readonly defaultView: any; designMode: any; dir: any; readonly doctype: any; readonly documentElement: any; readonly documentURI: any; domain: any; readonly embeds: any; fgColor: any; readonly forms: any; readonly fragmentDirective: any; readonly fullscreen: any; readonly fullscreenEnabled: any; readonly head: any; readonly hidden: any; readonly images: any; readonly implementation: any; readonly inputEncoding: any; readonly lastModified: any; linkColor: any; readonly links: any; location: any; onfullscreenchange: any; onfullscreenerror: any; onpointerlockchange: any; onpointerlockerror: any; onreadystatechange: any; onvisibilitychange: any; readonly ownerDocument: any; readonly pictureInPictureEnabled: any; readonly plugins: any; readonly readyState: any; readonly referrer: any; readonly rootElement: any; readonly scripts: any; readonly scrollingElement: any; readonly timeline: any; title: any; readonly visibilityState: any; vlinkColor: any; adoptNode: any; captureEvents: any; caretPositionFromPoint: any; caretRangeFromPoint: any; clear: any; close: any; createAttribute: any; createAttributeNS: any; createCDATASection: any; createComment: any; createDocumentFragment: any; createElement: any; createElementNS: any; createEvent: any; createNodeIterator: any; createProcessingInstruction: any; createRange: any; createTextNode: any; createTreeWalker: any; execCommand: any; exitFullscreen: any; exitPictureInPicture: any; exitPointerLock: any; getElementById: any; getElementsByClassName: any; getElementsByName: any; getElementsByTagName: any; getElementsByTagNameNS: any; getSelection: any; hasFocus: any; hasStorageAccess: any; importNode: any; open: any; queryCommandEnabled: any; queryCommandIndeterm: any; queryCommandState: any; queryCommandSupported: any; queryCommandValue: any; releaseEvents: any; requestStorageAccess: any; startViewTransition: any; write: any; writeln: any; addEventListener: any; removeEventListener: any; readonly activeElement: any; adoptedStyleSheets: any; readonly fullscreenElement: any; readonly pictureInPictureElement: any; readonly pointerLockElement: any; readonly styleSheets: any; elementFromPoint: any; elementsFromPoint: any; getAnimations: any; dispatchEvent: any; readonly fonts: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onbeforeinput: any; onbeforetoggle: any; onblur: any; oncancel: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextlost: any; oncontextmenu: any; oncontextrestored: any; oncopy: any; oncuechange: any; oncut: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpaste: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onscrollend: any; onsecuritypolicyviolation: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onslotchange: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; createExpression: any; createNSResolver: any; evaluate: any; }; readonly target: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; }>'. +!!! error TS2345: Type 'Element' is not assignable to type 'Deep<{ ariaAtomic: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaAutoComplete: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaBrailleLabel: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaBrailleRoleDescription: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaBusy: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaChecked: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaColCount: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaColIndex: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaColIndexText: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaColSpan: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaCurrent: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaDescription: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaDisabled: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaExpanded: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaHasPopup: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaHidden: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaInvalid: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaKeyShortcuts: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaLabel: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaLevel: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaLive: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaModal: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaMultiLine: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaMultiSelectable: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaOrientation: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaPlaceholder: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaPosInSet: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaPressed: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaReadOnly: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaRelevant: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaRequired: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaRoleDescription: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaRowCount: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaRowIndex: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaRowIndexText: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaRowSpan: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaSelected: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaSetSize: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaSort: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaValueMax: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaValueMin: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaValueNow: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaValueText: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; role: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; animate: unknown; getAnimations: unknown; after: unknown; before: unknown; remove: unknown; replaceWith: unknown; readonly attributes: { readonly length: any; getNamedItem: any; getNamedItemNS: any; item: any; removeNamedItem: any; removeNamedItemNS: any; setNamedItem: any; setNamedItemNS: any; }; classList: { readonly length: any; value: any; toString: any; add: any; contains: any; item: any; remove: any; replace: any; supports: any; toggle: any; forEach: any; }; className: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly clientHeight: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly clientLeft: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly clientTop: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly clientWidth: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly currentCSSZoom: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; id: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; innerHTML: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly localName: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly namespaceURI: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; onfullscreenchange: unknown; onfullscreenerror: unknown; outerHTML: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly ownerDocument: { readonly URL: any; alinkColor: any; readonly all: any; readonly anchors: any; readonly applets: any; bgColor: any; body: any; readonly characterSet: any; readonly charset: any; readonly compatMode: any; readonly contentType: any; cookie: any; readonly currentScript: any; readonly defaultView: any; designMode: any; dir: any; readonly doctype: any; readonly documentElement: any; readonly documentURI: any; domain: any; readonly embeds: any; fgColor: any; readonly forms: any; readonly fragmentDirective: any; readonly fullscreen: any; readonly fullscreenEnabled: any; readonly head: any; readonly hidden: any; readonly images: any; readonly implementation: any; readonly inputEncoding: any; readonly lastModified: any; linkColor: any; readonly links: any; location: any; onfullscreenchange: any; onfullscreenerror: any; onpointerlockchange: any; onpointerlockerror: any; onreadystatechange: any; onvisibilitychange: any; readonly ownerDocument: any; readonly pictureInPictureEnabled: any; readonly plugins: any; readonly readyState: any; readonly referrer: any; readonly rootElement: any; readonly scripts: any; readonly scrollingElement: any; readonly timeline: any; title: any; readonly visibilityState: any; vlinkColor: any; adoptNode: any; captureEvents: any; caretPositionFromPoint: any; caretRangeFromPoint: any; clear: any; close: any; createAttribute: any; createAttributeNS: any; createCDATASection: any; createComment: any; createDocumentFragment: any; createElement: any; createElementNS: any; createEvent: any; createNodeIterator: any; createProcessingInstruction: any; createRange: any; createTextNode: any; createTreeWalker: any; execCommand: any; exitFullscreen: any; exitPictureInPicture: any; exitPointerLock: any; getElementById: any; getElementsByClassName: any; getElementsByName: any; getElementsByTagName: any; getElementsByTagNameNS: any; getSelection: any; hasFocus: any; hasStorageAccess: any; importNode: any; open: any; queryCommandEnabled: any; queryCommandIndeterm: any; queryCommandState: any; queryCommandSupported: any; queryCommandValue: any; releaseEvents: any; requestStorageAccess: any; startViewTransition: any; write: any; writeln: any; addEventListener: any; removeEventListener: any; readonly activeElement: any; adoptedStyleSheets: any; readonly fullscreenElement: any; readonly pictureInPictureElement: any; readonly pointerLockElement: any; readonly styleSheets: any; elementFromPoint: any; elementsFromPoint: any; getAnimations: any; dispatchEvent: any; readonly fonts: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onbeforeinput: any; onbeforetoggle: any; onblur: any; oncancel: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextlost: any; oncontextmenu: any; oncontextrestored: any; oncopy: any; oncuechange: any; oncut: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpaste: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onscrollend: any; onsecuritypolicyviolation: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onslotchange: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; createExpression: any; createNSResolver: any; evaluate: any; }; part: { readonly length: any; value: any; toString: any; add: any; contains: any; item: any; remove: any; replace: any; supports: any; toggle: any; forEach: any; }; readonly prefix: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly scrollHeight: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; scrollLeft: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; scrollTop: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly scrollWidth: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly shadowRoot: { readonly ownerDocument: any; getElementById: any; readonly activeElement: any; adoptedStyleSheets: any; readonly fullscreenElement: any; readonly pictureInPictureElement: any; readonly pointerLockElement: any; readonly styleSheets: any; elementFromPoint: any; elementsFromPoint: any; getAnimations: any; dispatchEvent: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly clonable: any; readonly delegatesFocus: any; readonly host: any; innerHTML: any; readonly mode: any; onslotchange: any; readonly serializable: any; readonly slotAssignment: any; getHTML: any; setHTMLUnsafe: any; addEventListener: any; removeEventListener: any; }; slot: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly tagName: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; attachShadow: unknown; checkVisibility: unknown; closest: unknown; computedStyleMap: unknown; getAttribute: unknown; getAttributeNS: unknown; getAttributeNames: unknown; getAttributeNode: unknown; getAttributeNodeNS: unknown; getBoundingClientRect: unknown; getClientRects: unknown; getElementsByClassName: unknown; getElementsByTagName: unknown; getElementsByTagNameNS: unknown; getHTML: unknown; hasAttribute: unknown; hasAttributeNS: unknown; hasAttributes: unknown; hasPointerCapture: unknown; insertAdjacentElement: unknown; insertAdjacentHTML: unknown; insertAdjacentText: unknown; matches: unknown; releasePointerCapture: unknown; removeAttribute: unknown; removeAttributeNS: unknown; removeAttributeNode: unknown; requestFullscreen: unknown; requestPointerLock: unknown; scroll: unknown; scrollBy: unknown; scrollIntoView: unknown; scrollTo: unknown; setAttribute: unknown; setAttributeNS: unknown; setAttributeNode: unknown; setAttributeNodeNS: unknown; setHTMLUnsafe: unknown; setPointerCapture: unknown; toggleAttribute: unknown; webkitMatchesSelector: unknown; addEventListener: unknown; removeEventListener: unknown; dispatchEvent: unknown; readonly baseURI: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly childNodes: { readonly length: any; item: any; forEach: any; }; readonly firstChild: { after: any; before: any; remove: any; replaceWith: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; }; readonly isConnected: { valueOf: any; }; readonly lastChild: { after: any; before: any; remove: any; replaceWith: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; }; readonly nextSibling: { after: any; before: any; remove: any; replaceWith: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; }; readonly nodeName: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly nodeType: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; nodeValue: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly parentElement: { ariaAtomic: any; ariaAutoComplete: any; ariaBrailleLabel: any; ariaBrailleRoleDescription: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColIndexText: any; ariaColSpan: any; ariaCurrent: any; ariaDescription: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaInvalid: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRelevant: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowIndexText: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; role: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; readonly attributes: any; classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; readonly currentCSSZoom: any; id: any; innerHTML: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; checkVisibility: any; closest: any; computedStyleMap: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; getHTML: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setHTMLUnsafe: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; readonly attributeStyleMap: any; style: any; contentEditable: any; enterKeyHint: any; inputMode: any; readonly isContentEditable: any; dispatchEvent: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onbeforeinput: any; onbeforetoggle: any; onblur: any; oncancel: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextlost: any; oncontextmenu: any; oncontextrestored: any; oncopy: any; oncuechange: any; oncut: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpaste: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onscrollend: any; onsecuritypolicyviolation: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onslotchange: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; accessKey: any; readonly accessKeyLabel: any; autocapitalize: any; dir: any; draggable: any; hidden: any; inert: any; innerText: any; lang: any; readonly offsetHeight: any; readonly offsetLeft: any; readonly offsetParent: any; readonly offsetTop: any; readonly offsetWidth: any; outerText: any; popover: any; spellcheck: any; title: any; translate: any; writingSuggestions: any; attachInternals: any; click: any; hidePopover: any; showPopover: any; togglePopover: any; addEventListener: any; removeEventListener: any; autofocus: any; readonly dataset: any; nonce?: any; tabIndex: any; blur: any; focus: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly parentNode: { addEventListener: any; dispatchEvent: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; }; readonly previousSibling: { after: any; before: any; remove: any; replaceWith: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; }; textContent: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; appendChild: unknown; cloneNode: unknown; compareDocumentPosition: unknown; contains: unknown; getRootNode: unknown; hasChildNodes: unknown; insertBefore: unknown; isDefaultNamespace: unknown; isEqualNode: unknown; isSameNode: unknown; lookupNamespaceURI: unknown; lookupPrefix: unknown; normalize: unknown; removeChild: unknown; replaceChild: unknown; readonly ELEMENT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly ATTRIBUTE_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly TEXT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly CDATA_SECTION_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly ENTITY_REFERENCE_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly ENTITY_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly PROCESSING_INSTRUCTION_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly COMMENT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_TYPE_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_FRAGMENT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly NOTATION_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_DISCONNECTED: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_PRECEDING: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_FOLLOWING: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_CONTAINS: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_CONTAINED_BY: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly nextElementSibling: { ariaAtomic: any; ariaAutoComplete: any; ariaBrailleLabel: any; ariaBrailleRoleDescription: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColIndexText: any; ariaColSpan: any; ariaCurrent: any; ariaDescription: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaInvalid: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRelevant: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowIndexText: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; role: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; readonly attributes: any; classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; readonly currentCSSZoom: any; id: any; innerHTML: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; checkVisibility: any; closest: any; computedStyleMap: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; getHTML: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setHTMLUnsafe: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; dispatchEvent: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly previousElementSibling: { ariaAtomic: any; ariaAutoComplete: any; ariaBrailleLabel: any; ariaBrailleRoleDescription: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColIndexText: any; ariaColSpan: any; ariaCurrent: any; ariaDescription: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaInvalid: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRelevant: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowIndexText: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; role: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; readonly attributes: any; classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; readonly currentCSSZoom: any; id: any; innerHTML: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; checkVisibility: any; closest: any; computedStyleMap: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; getHTML: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setHTMLUnsafe: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; dispatchEvent: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly childElementCount: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly children: { readonly length: any; item: any; namedItem: any; }; readonly firstElementChild: { ariaAtomic: any; ariaAutoComplete: any; ariaBrailleLabel: any; ariaBrailleRoleDescription: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColIndexText: any; ariaColSpan: any; ariaCurrent: any; ariaDescription: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaInvalid: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRelevant: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowIndexText: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; role: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; readonly attributes: any; classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; readonly currentCSSZoom: any; id: any; innerHTML: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; checkVisibility: any; closest: any; computedStyleMap: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; getHTML: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setHTMLUnsafe: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; dispatchEvent: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly lastElementChild: { ariaAtomic: any; ariaAutoComplete: any; ariaBrailleLabel: any; ariaBrailleRoleDescription: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColIndexText: any; ariaColSpan: any; ariaCurrent: any; ariaDescription: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaInvalid: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRelevant: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowIndexText: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; role: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; readonly attributes: any; classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; readonly currentCSSZoom: any; id: any; innerHTML: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; checkVisibility: any; closest: any; computedStyleMap: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; getHTML: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setHTMLUnsafe: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; dispatchEvent: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; append: unknown; prepend: unknown; querySelector: unknown; querySelectorAll: unknown; replaceChildren: unknown; readonly assignedSlot: { ariaAtomic: any; ariaAutoComplete: any; ariaBrailleLabel: any; ariaBrailleRoleDescription: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColIndexText: any; ariaColSpan: any; ariaCurrent: any; ariaDescription: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaInvalid: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRelevant: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowIndexText: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; role: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; readonly attributes: any; classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; readonly currentCSSZoom: any; id: any; innerHTML: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; checkVisibility: any; closest: any; computedStyleMap: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; getHTML: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setHTMLUnsafe: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; readonly attributeStyleMap: any; style: any; contentEditable: any; enterKeyHint: any; inputMode: any; readonly isContentEditable: any; dispatchEvent: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onbeforeinput: any; onbeforetoggle: any; onblur: any; oncancel: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextlost: any; oncontextmenu: any; oncontextrestored: any; oncopy: any; oncuechange: any; oncut: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpaste: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onscrollend: any; onsecuritypolicyviolation: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onslotchange: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; accessKey: any; readonly accessKeyLabel: any; autocapitalize: any; dir: any; draggable: any; hidden: any; inert: any; innerText: any; lang: any; readonly offsetHeight: any; readonly offsetLeft: any; readonly offsetParent: any; readonly offsetTop: any; readonly offsetWidth: any; outerText: any; popover: any; spellcheck: any; title: any; translate: any; writingSuggestions: any; attachInternals: any; click: any; hidePopover: any; showPopover: any; togglePopover: any; autofocus: any; readonly dataset: any; nonce?: any; tabIndex: any; blur: any; focus: any; name: any; assign: any; assignedElements: any; assignedNodes: any; addEventListener: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; } | { data: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly length: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; appendData: unknown; deleteData: unknown; insertData: unknown; replaceData: unknown; substringData: unknown; after: unknown; before: unknown; remove: unknown; replaceWith: unknown; addEventListener: unknown; dispatchEvent: unknown; removeEventListener: unknown; readonly sheet: { readonly cssRules: any; readonly ownerRule: any; readonly rules: any; addRule: any; deleteRule: any; insertRule: any; removeRule: any; replace: any; replaceSync: any; disabled: any; readonly href: any; media: any; readonly ownerNode: any; readonly parentStyleSheet: any; readonly title: any; readonly type: any; }; readonly baseURI: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly childNodes: { readonly length: any; item: any; forEach: any; }; readonly firstChild: { after: any; before: any; remove: any; replaceWith: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; }; readonly isConnected: { valueOf: any; }; readonly lastChild: { after: any; before: any; remove: any; replaceWith: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; }; readonly nextSibling: { after: any; before: any; remove: any; replaceWith: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; }; readonly nodeName: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly nodeType: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; nodeValue: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly parentElement: { ariaAtomic: any; ariaAutoComplete: any; ariaBrailleLabel: any; ariaBrailleRoleDescription: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColIndexText: any; ariaColSpan: any; ariaCurrent: any; ariaDescription: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaInvalid: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRelevant: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowIndexText: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; role: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; readonly attributes: any; classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; readonly currentCSSZoom: any; id: any; innerHTML: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; checkVisibility: any; closest: any; computedStyleMap: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; getHTML: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setHTMLUnsafe: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; readonly attributeStyleMap: any; style: any; contentEditable: any; enterKeyHint: any; inputMode: any; readonly isContentEditable: any; dispatchEvent: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onbeforeinput: any; onbeforetoggle: any; onblur: any; oncancel: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextlost: any; oncontextmenu: any; oncontextrestored: any; oncopy: any; oncuechange: any; oncut: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpaste: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onscrollend: any; onsecuritypolicyviolation: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onslotchange: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; accessKey: any; readonly accessKeyLabel: any; autocapitalize: any; dir: any; draggable: any; hidden: any; inert: any; innerText: any; lang: any; readonly offsetHeight: any; readonly offsetLeft: any; readonly offsetParent: any; readonly offsetTop: any; readonly offsetWidth: any; outerText: any; popover: any; spellcheck: any; title: any; translate: any; writingSuggestions: any; attachInternals: any; click: any; hidePopover: any; showPopover: any; togglePopover: any; addEventListener: any; removeEventListener: any; autofocus: any; readonly dataset: any; nonce?: any; tabIndex: any; blur: any; focus: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly parentNode: { addEventListener: any; dispatchEvent: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; }; readonly previousSibling: { after: any; before: any; remove: any; replaceWith: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; }; textContent: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; appendChild: unknown; cloneNode: unknown; compareDocumentPosition: unknown; contains: unknown; getRootNode: unknown; hasChildNodes: unknown; insertBefore: unknown; isDefaultNamespace: unknown; isEqualNode: unknown; isSameNode: unknown; lookupNamespaceURI: unknown; lookupPrefix: unknown; normalize: unknown; removeChild: unknown; replaceChild: unknown; readonly ELEMENT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly ATTRIBUTE_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly TEXT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly CDATA_SECTION_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly ENTITY_REFERENCE_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly ENTITY_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly PROCESSING_INSTRUCTION_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly COMMENT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_TYPE_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_FRAGMENT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly NOTATION_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_DISCONNECTED: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_PRECEDING: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_FOLLOWING: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_CONTAINS: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_CONTAINED_BY: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly nextElementSibling: { ariaAtomic: any; ariaAutoComplete: any; ariaBrailleLabel: any; ariaBrailleRoleDescription: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColIndexText: any; ariaColSpan: any; ariaCurrent: any; ariaDescription: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaInvalid: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRelevant: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowIndexText: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; role: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; readonly attributes: any; classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; readonly currentCSSZoom: any; id: any; innerHTML: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; checkVisibility: any; closest: any; computedStyleMap: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; getHTML: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setHTMLUnsafe: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; dispatchEvent: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly previousElementSibling: { ariaAtomic: any; ariaAutoComplete: any; ariaBrailleLabel: any; ariaBrailleRoleDescription: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColIndexText: any; ariaColSpan: any; ariaCurrent: any; ariaDescription: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaInvalid: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRelevant: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowIndexText: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; role: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; readonly attributes: any; classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; readonly currentCSSZoom: any; id: any; innerHTML: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; checkVisibility: any; closest: any; computedStyleMap: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; getHTML: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setHTMLUnsafe: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; dispatchEvent: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly ownerDocument: { readonly URL: any; alinkColor: any; readonly all: any; readonly anchors: any; readonly applets: any; bgColor: any; body: any; readonly characterSet: any; readonly charset: any; readonly compatMode: any; readonly contentType: any; cookie: any; readonly currentScript: any; readonly defaultView: any; designMode: any; dir: any; readonly doctype: any; readonly documentElement: any; readonly documentURI: any; domain: any; readonly embeds: any; fgColor: any; readonly forms: any; readonly fragmentDirective: any; readonly fullscreen: any; readonly fullscreenEnabled: any; readonly head: any; readonly hidden: any; readonly images: any; readonly implementation: any; readonly inputEncoding: any; readonly lastModified: any; linkColor: any; readonly links: any; location: any; onfullscreenchange: any; onfullscreenerror: any; onpointerlockchange: any; onpointerlockerror: any; onreadystatechange: any; onvisibilitychange: any; readonly ownerDocument: any; readonly pictureInPictureEnabled: any; readonly plugins: any; readonly readyState: any; readonly referrer: any; readonly rootElement: any; readonly scripts: any; readonly scrollingElement: any; readonly timeline: any; title: any; readonly visibilityState: any; vlinkColor: any; adoptNode: any; captureEvents: any; caretPositionFromPoint: any; caretRangeFromPoint: any; clear: any; close: any; createAttribute: any; createAttributeNS: any; createCDATASection: any; createComment: any; createDocumentFragment: any; createElement: any; createElementNS: any; createEvent: any; createNodeIterator: any; createProcessingInstruction: any; createRange: any; createTextNode: any; createTreeWalker: any; execCommand: any; exitFullscreen: any; exitPictureInPicture: any; exitPointerLock: any; getElementById: any; getElementsByClassName: any; getElementsByName: any; getElementsByTagName: any; getElementsByTagNameNS: any; getSelection: any; hasFocus: any; hasStorageAccess: any; importNode: any; open: any; queryCommandEnabled: any; queryCommandIndeterm: any; queryCommandState: any; queryCommandSupported: any; queryCommandValue: any; releaseEvents: any; requestStorageAccess: any; startViewTransition: any; write: any; writeln: any; addEventListener: any; removeEventListener: any; readonly activeElement: any; adoptedStyleSheets: any; readonly fullscreenElement: any; readonly pictureInPictureElement: any; readonly pointerLockElement: any; readonly styleSheets: any; elementFromPoint: any; elementsFromPoint: any; getAnimations: any; dispatchEvent: any; readonly fonts: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onbeforeinput: any; onbeforetoggle: any; onblur: any; oncancel: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextlost: any; oncontextmenu: any; oncontextrestored: any; oncopy: any; oncuechange: any; oncut: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpaste: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onscrollend: any; onsecuritypolicyviolation: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onslotchange: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; createExpression: any; createNSResolver: any; evaluate: any; }; readonly target: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; }>'. + out2.responseXML + out2.responseXML.activeElement.className.length + \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/mappedTypeRecursiveInference.js b/testdata/baselines/reference/submodule/compiler/mappedTypeRecursiveInference.js new file mode 100644 index 0000000000..a7fda27bc8 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/mappedTypeRecursiveInference.js @@ -0,0 +1,39 @@ +//// [tests/cases/compiler/mappedTypeRecursiveInference.ts] //// + +//// [mappedTypeRecursiveInference.ts] +interface A { a: A } +declare let a: A; +type Deep = { [K in keyof T]: Deep } +declare function foo(deep: Deep): T; +const out = foo(a); +out.a +out.a.a +out.a.a.a.a.a.a.a + + +interface B { [s: string]: B } +declare let b: B; +const oub = foo(b); +oub.b +oub.b.b +oub.b.a.n.a.n.a + +let xhr: XMLHttpRequest; +const out2 = foo(xhr); +out2.responseXML +out2.responseXML.activeElement.className.length + + +//// [mappedTypeRecursiveInference.js] +const out = foo(a); +out.a; +out.a.a; +out.a.a.a.a.a.a.a; +const oub = foo(b); +oub.b; +oub.b.b; +oub.b.a.n.a.n.a; +let xhr; +const out2 = foo(xhr); +out2.responseXML; +out2.responseXML.activeElement.className.length; diff --git a/testdata/baselines/reference/submodule/compiler/mappedTypeRecursiveInference.symbols b/testdata/baselines/reference/submodule/compiler/mappedTypeRecursiveInference.symbols new file mode 100644 index 0000000000..bdc57040df --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/mappedTypeRecursiveInference.symbols @@ -0,0 +1,112 @@ +//// [tests/cases/compiler/mappedTypeRecursiveInference.ts] //// + +=== mappedTypeRecursiveInference.ts === +interface A { a: A } +>A : Symbol(A, Decl(mappedTypeRecursiveInference.ts, 0, 0)) +>a : Symbol(a, Decl(mappedTypeRecursiveInference.ts, 0, 13)) +>A : Symbol(A, Decl(mappedTypeRecursiveInference.ts, 0, 0)) + +declare let a: A; +>a : Symbol(a, Decl(mappedTypeRecursiveInference.ts, 1, 11)) +>A : Symbol(A, Decl(mappedTypeRecursiveInference.ts, 0, 0)) + +type Deep = { [K in keyof T]: Deep } +>Deep : Symbol(Deep, Decl(mappedTypeRecursiveInference.ts, 1, 17)) +>T : Symbol(T, Decl(mappedTypeRecursiveInference.ts, 2, 10)) +>K : Symbol(K, Decl(mappedTypeRecursiveInference.ts, 2, 18)) +>T : Symbol(T, Decl(mappedTypeRecursiveInference.ts, 2, 10)) +>Deep : Symbol(Deep, Decl(mappedTypeRecursiveInference.ts, 1, 17)) +>T : Symbol(T, Decl(mappedTypeRecursiveInference.ts, 2, 10)) +>K : Symbol(K, Decl(mappedTypeRecursiveInference.ts, 2, 18)) + +declare function foo(deep: Deep): T; +>foo : Symbol(foo, Decl(mappedTypeRecursiveInference.ts, 2, 45)) +>T : Symbol(T, Decl(mappedTypeRecursiveInference.ts, 3, 21)) +>deep : Symbol(deep, Decl(mappedTypeRecursiveInference.ts, 3, 24)) +>Deep : Symbol(Deep, Decl(mappedTypeRecursiveInference.ts, 1, 17)) +>T : Symbol(T, Decl(mappedTypeRecursiveInference.ts, 3, 21)) +>T : Symbol(T, Decl(mappedTypeRecursiveInference.ts, 3, 21)) + +const out = foo(a); +>out : Symbol(out, Decl(mappedTypeRecursiveInference.ts, 4, 5)) +>foo : Symbol(foo, Decl(mappedTypeRecursiveInference.ts, 2, 45)) +>a : Symbol(a, Decl(mappedTypeRecursiveInference.ts, 1, 11)) + +out.a +>out.a : Symbol(a, Decl(mappedTypeRecursiveInference.ts, 0, 13)) +>out : Symbol(out, Decl(mappedTypeRecursiveInference.ts, 4, 5)) +>a : Symbol(a, Decl(mappedTypeRecursiveInference.ts, 0, 13)) + +out.a.a +>out.a.a : Symbol(a, Decl(mappedTypeRecursiveInference.ts, 0, 13)) +>out.a : Symbol(a, Decl(mappedTypeRecursiveInference.ts, 0, 13)) +>out : Symbol(out, Decl(mappedTypeRecursiveInference.ts, 4, 5)) +>a : Symbol(a, Decl(mappedTypeRecursiveInference.ts, 0, 13)) +>a : Symbol(a, Decl(mappedTypeRecursiveInference.ts, 0, 13)) + +out.a.a.a.a.a.a.a +>out.a.a.a.a.a.a.a : Symbol(a, Decl(mappedTypeRecursiveInference.ts, 0, 13)) +>out.a.a.a.a.a.a : Symbol(a, Decl(mappedTypeRecursiveInference.ts, 0, 13)) +>out.a.a.a.a.a : Symbol(a, Decl(mappedTypeRecursiveInference.ts, 0, 13)) +>out.a.a.a.a : Symbol(a, Decl(mappedTypeRecursiveInference.ts, 0, 13)) +>out.a.a.a : Symbol(a, Decl(mappedTypeRecursiveInference.ts, 0, 13)) +>out.a.a : Symbol(a, Decl(mappedTypeRecursiveInference.ts, 0, 13)) +>out.a : Symbol(a, Decl(mappedTypeRecursiveInference.ts, 0, 13)) +>out : Symbol(out, Decl(mappedTypeRecursiveInference.ts, 4, 5)) +>a : Symbol(a, Decl(mappedTypeRecursiveInference.ts, 0, 13)) +>a : Symbol(a, Decl(mappedTypeRecursiveInference.ts, 0, 13)) +>a : Symbol(a, Decl(mappedTypeRecursiveInference.ts, 0, 13)) +>a : Symbol(a, Decl(mappedTypeRecursiveInference.ts, 0, 13)) +>a : Symbol(a, Decl(mappedTypeRecursiveInference.ts, 0, 13)) +>a : Symbol(a, Decl(mappedTypeRecursiveInference.ts, 0, 13)) +>a : Symbol(a, Decl(mappedTypeRecursiveInference.ts, 0, 13)) + + +interface B { [s: string]: B } +>B : Symbol(B, Decl(mappedTypeRecursiveInference.ts, 7, 17)) +>s : Symbol(s, Decl(mappedTypeRecursiveInference.ts, 10, 15)) +>B : Symbol(B, Decl(mappedTypeRecursiveInference.ts, 7, 17)) + +declare let b: B; +>b : Symbol(b, Decl(mappedTypeRecursiveInference.ts, 11, 11)) +>B : Symbol(B, Decl(mappedTypeRecursiveInference.ts, 7, 17)) + +const oub = foo(b); +>oub : Symbol(oub, Decl(mappedTypeRecursiveInference.ts, 12, 5)) +>foo : Symbol(foo, Decl(mappedTypeRecursiveInference.ts, 2, 45)) +>b : Symbol(b, Decl(mappedTypeRecursiveInference.ts, 11, 11)) + +oub.b +>oub : Symbol(oub, Decl(mappedTypeRecursiveInference.ts, 12, 5)) + +oub.b.b +>oub : Symbol(oub, Decl(mappedTypeRecursiveInference.ts, 12, 5)) + +oub.b.a.n.a.n.a +>oub : Symbol(oub, Decl(mappedTypeRecursiveInference.ts, 12, 5)) + +let xhr: XMLHttpRequest; +>xhr : Symbol(xhr, Decl(mappedTypeRecursiveInference.ts, 17, 3)) +>XMLHttpRequest : Symbol(XMLHttpRequest, Decl(lib.dom.d.ts, --, --), Decl(lib.dom.d.ts, --, --)) + +const out2 = foo(xhr); +>out2 : Symbol(out2, Decl(mappedTypeRecursiveInference.ts, 18, 5)) +>foo : Symbol(foo, Decl(mappedTypeRecursiveInference.ts, 2, 45)) +>xhr : Symbol(xhr, Decl(mappedTypeRecursiveInference.ts, 17, 3)) + +out2.responseXML +>out2.responseXML : Symbol(responseXML, Decl(lib.dom.d.ts, --, --)) +>out2 : Symbol(out2, Decl(mappedTypeRecursiveInference.ts, 18, 5)) +>responseXML : Symbol(responseXML, Decl(lib.dom.d.ts, --, --)) + +out2.responseXML.activeElement.className.length +>out2.responseXML.activeElement.className.length : Symbol(length, Decl(lib.es5.d.ts, --, --)) +>out2.responseXML.activeElement.className : Symbol(className, Decl(lib.dom.d.ts, --, --)) +>out2.responseXML.activeElement : Symbol(activeElement, Decl(lib.dom.d.ts, --, --)) +>out2.responseXML : Symbol(responseXML, Decl(lib.dom.d.ts, --, --)) +>out2 : Symbol(out2, Decl(mappedTypeRecursiveInference.ts, 18, 5)) +>responseXML : Symbol(responseXML, Decl(lib.dom.d.ts, --, --)) +>activeElement : Symbol(activeElement, Decl(lib.dom.d.ts, --, --)) +>className : Symbol(className, Decl(lib.dom.d.ts, --, --)) +>length : Symbol(length, Decl(lib.es5.d.ts, --, --)) + diff --git a/testdata/baselines/reference/submodule/compiler/mappedTypeRecursiveInference.symbols.diff b/testdata/baselines/reference/submodule/compiler/mappedTypeRecursiveInference.symbols.diff new file mode 100644 index 0000000000..3c2b02eaa0 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/mappedTypeRecursiveInference.symbols.diff @@ -0,0 +1,11 @@ +--- old.mappedTypeRecursiveInference.symbols ++++ new.mappedTypeRecursiveInference.symbols +@@= skipped -2, +2 lines =@@ + === mappedTypeRecursiveInference.ts === + interface A { a: A } + >A : Symbol(A, Decl(mappedTypeRecursiveInference.ts, 0, 0)) +->a : Symbol(A.a, Decl(mappedTypeRecursiveInference.ts, 0, 13)) ++>a : Symbol(a, Decl(mappedTypeRecursiveInference.ts, 0, 13)) + >A : Symbol(A, Decl(mappedTypeRecursiveInference.ts, 0, 0)) + + declare let a: A; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/mappedTypeRecursiveInference.types b/testdata/baselines/reference/submodule/compiler/mappedTypeRecursiveInference.types new file mode 100644 index 0000000000..48e0211a1e --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/mappedTypeRecursiveInference.types @@ -0,0 +1,116 @@ +//// [tests/cases/compiler/mappedTypeRecursiveInference.ts] //// + +=== mappedTypeRecursiveInference.ts === +interface A { a: A } +>a : A + +declare let a: A; +>a : A + +type Deep = { [K in keyof T]: Deep } +>Deep : Deep + +declare function foo(deep: Deep): T; +>foo : (deep: Deep) => T +>deep : Deep + +const out = foo(a); +>out : { a: { a: any; }; } +>foo(a) : { a: { a: any; }; } +>foo : (deep: Deep) => T +>a : A + +out.a +>out.a : { a: { a: any; }; } +>out : { a: { a: any; }; } +>a : { a: { a: any; }; } + +out.a.a +>out.a.a : { a: { a: any; }; } +>out.a : { a: { a: any; }; } +>out : { a: { a: any; }; } +>a : { a: { a: any; }; } +>a : { a: { a: any; }; } + +out.a.a.a.a.a.a.a +>out.a.a.a.a.a.a.a : { a: { a: any; }; } +>out.a.a.a.a.a.a : { a: { a: any; }; } +>out.a.a.a.a.a : { a: { a: any; }; } +>out.a.a.a.a : { a: { a: any; }; } +>out.a.a.a : { a: { a: any; }; } +>out.a.a : { a: { a: any; }; } +>out.a : { a: { a: any; }; } +>out : { a: { a: any; }; } +>a : { a: { a: any; }; } +>a : { a: { a: any; }; } +>a : { a: { a: any; }; } +>a : { a: { a: any; }; } +>a : { a: { a: any; }; } +>a : { a: { a: any; }; } +>a : { a: { a: any; }; } + + +interface B { [s: string]: B } +>s : string + +declare let b: B; +>b : B + +const oub = foo(b); +>oub : { [x: string]: any; } +>foo(b) : { [x: string]: any; } +>foo : (deep: Deep) => T +>b : B + +oub.b +>oub.b : { [x: string]: any; } +>oub : { [x: string]: any; } +>b : { [x: string]: any; } + +oub.b.b +>oub.b.b : { [x: string]: any; } +>oub.b : { [x: string]: any; } +>oub : { [x: string]: any; } +>b : { [x: string]: any; } +>b : { [x: string]: any; } + +oub.b.a.n.a.n.a +>oub.b.a.n.a.n.a : { [x: string]: any; } +>oub.b.a.n.a.n : { [x: string]: any; } +>oub.b.a.n.a : { [x: string]: any; } +>oub.b.a.n : { [x: string]: any; } +>oub.b.a : { [x: string]: any; } +>oub.b : { [x: string]: any; } +>oub : { [x: string]: any; } +>b : { [x: string]: any; } +>a : { [x: string]: any; } +>n : { [x: string]: any; } +>a : { [x: string]: any; } +>n : { [x: string]: any; } +>a : { [x: string]: any; } + +let xhr: XMLHttpRequest; +>xhr : XMLHttpRequest + +const out2 = foo(xhr); +>out2 : { dispatchEvent: unknown; onreadystatechange: unknown; readonly readyState: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly response: unknown; readonly responseText: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; responseType: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly responseURL: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly responseXML: { readonly URL: any; alinkColor: any; readonly all: any; readonly anchors: any; readonly applets: any; bgColor: any; body: any; readonly characterSet: any; readonly charset: any; readonly compatMode: any; readonly contentType: any; cookie: any; readonly currentScript: any; readonly defaultView: any; designMode: any; dir: any; readonly doctype: any; readonly documentElement: any; readonly documentURI: any; domain: any; readonly embeds: any; fgColor: any; readonly forms: any; readonly fragmentDirective: any; readonly fullscreen: any; readonly fullscreenEnabled: any; readonly head: any; readonly hidden: any; readonly images: any; readonly implementation: any; readonly inputEncoding: any; readonly lastModified: any; linkColor: any; readonly links: any; location: any; onfullscreenchange: any; onfullscreenerror: any; onpointerlockchange: any; onpointerlockerror: any; onreadystatechange: any; onvisibilitychange: any; readonly ownerDocument: any; readonly pictureInPictureEnabled: any; readonly plugins: any; readonly readyState: any; readonly referrer: any; readonly rootElement: any; readonly scripts: any; readonly scrollingElement: any; readonly timeline: any; title: any; readonly visibilityState: any; vlinkColor: any; adoptNode: any; captureEvents: any; caretPositionFromPoint: any; caretRangeFromPoint: any; clear: any; close: any; createAttribute: any; createAttributeNS: any; createCDATASection: any; createComment: any; createDocumentFragment: any; createElement: any; createElementNS: any; createEvent: any; createNodeIterator: any; createProcessingInstruction: any; createRange: any; createTextNode: any; createTreeWalker: any; execCommand: any; exitFullscreen: any; exitPictureInPicture: any; exitPointerLock: any; getElementById: any; getElementsByClassName: any; getElementsByName: any; getElementsByTagName: any; getElementsByTagNameNS: any; getSelection: any; hasFocus: any; hasStorageAccess: any; importNode: any; open: any; queryCommandEnabled: any; queryCommandIndeterm: any; queryCommandState: any; queryCommandSupported: any; queryCommandValue: any; releaseEvents: any; requestStorageAccess: any; startViewTransition: any; write: any; writeln: any; addEventListener: any; removeEventListener: any; readonly activeElement: any; adoptedStyleSheets: any; readonly fullscreenElement: any; readonly pictureInPictureElement: any; readonly pointerLockElement: any; readonly styleSheets: any; elementFromPoint: any; elementsFromPoint: any; getAnimations: any; dispatchEvent: any; readonly fonts: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onbeforeinput: any; onbeforetoggle: any; onblur: any; oncancel: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextlost: any; oncontextmenu: any; oncontextrestored: any; oncopy: any; oncuechange: any; oncut: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpaste: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onscrollend: any; onsecuritypolicyviolation: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onslotchange: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; createExpression: any; createNSResolver: any; evaluate: any; }; readonly status: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly statusText: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; timeout: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly upload: { dispatchEvent: any; onabort: any; onerror: any; onload: any; onloadend: any; onloadstart: any; onprogress: any; ontimeout: any; addEventListener: any; removeEventListener: any; }; withCredentials: { valueOf: any; }; abort: unknown; getAllResponseHeaders: unknown; getResponseHeader: unknown; open: unknown; overrideMimeType: unknown; send: unknown; setRequestHeader: unknown; readonly UNSENT: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly OPENED: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly HEADERS_RECEIVED: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly LOADING: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DONE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; addEventListener: unknown; removeEventListener: unknown; onabort: unknown; onerror: unknown; onload: unknown; onloadend: unknown; onloadstart: unknown; onprogress: unknown; ontimeout: unknown; } +>foo(xhr) : { dispatchEvent: unknown; onreadystatechange: unknown; readonly readyState: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly response: unknown; readonly responseText: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; responseType: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly responseURL: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly responseXML: { readonly URL: any; alinkColor: any; readonly all: any; readonly anchors: any; readonly applets: any; bgColor: any; body: any; readonly characterSet: any; readonly charset: any; readonly compatMode: any; readonly contentType: any; cookie: any; readonly currentScript: any; readonly defaultView: any; designMode: any; dir: any; readonly doctype: any; readonly documentElement: any; readonly documentURI: any; domain: any; readonly embeds: any; fgColor: any; readonly forms: any; readonly fragmentDirective: any; readonly fullscreen: any; readonly fullscreenEnabled: any; readonly head: any; readonly hidden: any; readonly images: any; readonly implementation: any; readonly inputEncoding: any; readonly lastModified: any; linkColor: any; readonly links: any; location: any; onfullscreenchange: any; onfullscreenerror: any; onpointerlockchange: any; onpointerlockerror: any; onreadystatechange: any; onvisibilitychange: any; readonly ownerDocument: any; readonly pictureInPictureEnabled: any; readonly plugins: any; readonly readyState: any; readonly referrer: any; readonly rootElement: any; readonly scripts: any; readonly scrollingElement: any; readonly timeline: any; title: any; readonly visibilityState: any; vlinkColor: any; adoptNode: any; captureEvents: any; caretPositionFromPoint: any; caretRangeFromPoint: any; clear: any; close: any; createAttribute: any; createAttributeNS: any; createCDATASection: any; createComment: any; createDocumentFragment: any; createElement: any; createElementNS: any; createEvent: any; createNodeIterator: any; createProcessingInstruction: any; createRange: any; createTextNode: any; createTreeWalker: any; execCommand: any; exitFullscreen: any; exitPictureInPicture: any; exitPointerLock: any; getElementById: any; getElementsByClassName: any; getElementsByName: any; getElementsByTagName: any; getElementsByTagNameNS: any; getSelection: any; hasFocus: any; hasStorageAccess: any; importNode: any; open: any; queryCommandEnabled: any; queryCommandIndeterm: any; queryCommandState: any; queryCommandSupported: any; queryCommandValue: any; releaseEvents: any; requestStorageAccess: any; startViewTransition: any; write: any; writeln: any; addEventListener: any; removeEventListener: any; readonly activeElement: any; adoptedStyleSheets: any; readonly fullscreenElement: any; readonly pictureInPictureElement: any; readonly pointerLockElement: any; readonly styleSheets: any; elementFromPoint: any; elementsFromPoint: any; getAnimations: any; dispatchEvent: any; readonly fonts: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onbeforeinput: any; onbeforetoggle: any; onblur: any; oncancel: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextlost: any; oncontextmenu: any; oncontextrestored: any; oncopy: any; oncuechange: any; oncut: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpaste: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onscrollend: any; onsecuritypolicyviolation: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onslotchange: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; createExpression: any; createNSResolver: any; evaluate: any; }; readonly status: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly statusText: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; timeout: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly upload: { dispatchEvent: any; onabort: any; onerror: any; onload: any; onloadend: any; onloadstart: any; onprogress: any; ontimeout: any; addEventListener: any; removeEventListener: any; }; withCredentials: { valueOf: any; }; abort: unknown; getAllResponseHeaders: unknown; getResponseHeader: unknown; open: unknown; overrideMimeType: unknown; send: unknown; setRequestHeader: unknown; readonly UNSENT: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly OPENED: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly HEADERS_RECEIVED: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly LOADING: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DONE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; addEventListener: unknown; removeEventListener: unknown; onabort: unknown; onerror: unknown; onload: unknown; onloadend: unknown; onloadstart: unknown; onprogress: unknown; ontimeout: unknown; } +>foo : (deep: Deep) => T +>xhr : XMLHttpRequest + +out2.responseXML +>out2.responseXML : { readonly URL: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; alinkColor: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly all: { readonly length: any; item: any; namedItem: any; }; readonly anchors: { readonly length: any; item: any; namedItem: any; }; readonly applets: { readonly length: any; item: any; namedItem: any; }; bgColor: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; body: { ariaAtomic: any; ariaAutoComplete: any; ariaBrailleLabel: any; ariaBrailleRoleDescription: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColIndexText: any; ariaColSpan: any; ariaCurrent: any; ariaDescription: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaInvalid: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRelevant: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowIndexText: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; role: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; readonly attributes: any; classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; readonly currentCSSZoom: any; id: any; innerHTML: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; checkVisibility: any; closest: any; computedStyleMap: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; getHTML: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setHTMLUnsafe: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; readonly attributeStyleMap: any; style: any; contentEditable: any; enterKeyHint: any; inputMode: any; readonly isContentEditable: any; dispatchEvent: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onbeforeinput: any; onbeforetoggle: any; onblur: any; oncancel: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextlost: any; oncontextmenu: any; oncontextrestored: any; oncopy: any; oncuechange: any; oncut: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpaste: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onscrollend: any; onsecuritypolicyviolation: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onslotchange: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; accessKey: any; readonly accessKeyLabel: any; autocapitalize: any; dir: any; draggable: any; hidden: any; inert: any; innerText: any; lang: any; readonly offsetHeight: any; readonly offsetLeft: any; readonly offsetParent: any; readonly offsetTop: any; readonly offsetWidth: any; outerText: any; popover: any; spellcheck: any; title: any; translate: any; writingSuggestions: any; attachInternals: any; click: any; hidePopover: any; showPopover: any; togglePopover: any; addEventListener: any; removeEventListener: any; autofocus: any; readonly dataset: any; nonce?: any; tabIndex: any; blur: any; focus: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly characterSet: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly charset: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly compatMode: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly contentType: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; cookie: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly currentScript: { ariaAtomic: any; ariaAutoComplete: any; ariaBrailleLabel: any; ariaBrailleRoleDescription: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColIndexText: any; ariaColSpan: any; ariaCurrent: any; ariaDescription: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaInvalid: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRelevant: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowIndexText: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; role: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; readonly attributes: any; classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; readonly currentCSSZoom: any; id: any; innerHTML: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; checkVisibility: any; closest: any; computedStyleMap: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; getHTML: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setHTMLUnsafe: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; readonly attributeStyleMap: any; style: any; contentEditable: any; enterKeyHint: any; inputMode: any; readonly isContentEditable: any; dispatchEvent: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onbeforeinput: any; onbeforetoggle: any; onblur: any; oncancel: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextlost: any; oncontextmenu: any; oncontextrestored: any; oncopy: any; oncuechange: any; oncut: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpaste: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onscrollend: any; onsecuritypolicyviolation: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onslotchange: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; accessKey: any; readonly accessKeyLabel: any; autocapitalize: any; dir: any; draggable: any; hidden: any; inert: any; innerText: any; lang: any; readonly offsetHeight: any; readonly offsetLeft: any; readonly offsetParent: any; readonly offsetTop: any; readonly offsetWidth: any; outerText: any; popover: any; spellcheck: any; title: any; translate: any; writingSuggestions: any; attachInternals: any; click: any; hidePopover: any; showPopover: any; togglePopover: any; autofocus: any; readonly dataset: any; nonce?: any; tabIndex: any; blur: any; focus: any; async: any; blocking: any; charset: any; crossOrigin: any; defer: any; event: any; fetchPriority: any; htmlFor: any; integrity: any; noModule: any; referrerPolicy: any; src: any; text: any; type: any; addEventListener: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; } | { ariaAtomic: any; ariaAutoComplete: any; ariaBrailleLabel: any; ariaBrailleRoleDescription: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColIndexText: any; ariaColSpan: any; ariaCurrent: any; ariaDescription: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaInvalid: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRelevant: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowIndexText: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; role: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; readonly attributes: any; classList: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; readonly currentCSSZoom: any; id: any; innerHTML: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; checkVisibility: any; closest: any; computedStyleMap: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; getHTML: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setHTMLUnsafe: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; readonly attributeStyleMap: any; style: any; dispatchEvent: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onbeforeinput: any; onbeforetoggle: any; onblur: any; oncancel: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextlost: any; oncontextmenu: any; oncontextrestored: any; oncopy: any; oncuechange: any; oncut: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpaste: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onscrollend: any; onsecuritypolicyviolation: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onslotchange: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; autofocus: any; readonly dataset: any; nonce?: any; tabIndex: any; blur: any; focus: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly className: any; readonly ownerSVGElement: any; readonly viewportElement: any; type: any; addEventListener: any; removeEventListener: any; readonly href: any; readonly assignedSlot: any; }; readonly defaultView: { NaN: any; Infinity: any; eval: any; parseInt: any; parseFloat: any; isNaN: any; isFinite: any; decodeURI: any; decodeURIComponent: any; encodeURI: any; encodeURIComponent: any; escape: any; unescape: any; Symbol: any; Object: any; Function: any; String: any; Boolean: any; Number: any; Math: any; Date: any; RegExp: any; Error: any; EvalError: any; RangeError: any; ReferenceError: any; SyntaxError: any; TypeError: any; URIError: any; JSON: any; Array: any; Promise: any; ArrayBuffer: any; DataView: any; Int8Array: any; Uint8Array: any; Uint8ClampedArray: any; Int16Array: any; Uint16Array: any; Int32Array: any; Uint32Array: any; Float32Array: any; Float64Array: any; Intl: any; NodeFilter: any; AbortController: any; AbortSignal: any; AbstractRange: any; AnalyserNode: any; Animation: any; AnimationEffect: any; AnimationEvent: any; cancelAnimationFrame: any; requestAnimationFrame: any; AnimationPlaybackEvent: any; AnimationTimeline: any; Attr: any; AudioBuffer: any; AudioBufferSourceNode: any; AudioContext: any; AudioData: any; AudioDecoder: any; AudioDestinationNode: any; AudioEncoder: any; AudioListener: any; AudioNode: any; AudioParam: any; AudioParamMap: any; AudioProcessingEvent: any; AudioScheduledSourceNode: any; AudioWorklet: any; AudioWorkletNode: any; AuthenticatorAssertionResponse: any; AuthenticatorAttestationResponse: any; AuthenticatorResponse: any; BarProp: any; BaseAudioContext: any; BeforeUnloadEvent: any; BiquadFilterNode: any; Blob: any; BlobEvent: any; BroadcastChannel: any; ByteLengthQueuingStrategy: any; CDATASection: any; CSSAnimation: any; CSSConditionRule: any; CSSContainerRule: any; CSSCounterStyleRule: any; CSSFontFaceRule: any; CSSFontFeatureValuesRule: any; CSSFontPaletteValuesRule: any; CSSGroupingRule: any; CSSImageValue: any; CSSImportRule: any; CSSKeyframeRule: any; CSSKeyframesRule: any; CSSKeywordValue: any; CSSLayerBlockRule: any; CSSLayerStatementRule: any; CSSMathClamp: any; CSSMathInvert: any; CSSMathMax: any; CSSMathMin: any; CSSMathNegate: any; CSSMathProduct: any; CSSMathSum: any; CSSMathValue: any; CSSMatrixComponent: any; CSSMediaRule: any; CSSNamespaceRule: any; CSSNestedDeclarations: any; CSSNumericArray: any; CSSNumericValue: any; CSSPageRule: any; CSSPerspective: any; CSSPropertyRule: any; CSSRotate: any; CSSRule: any; CSSRuleList: any; CSSScale: any; CSSScopeRule: any; CSSSkew: any; CSSSkewX: any; CSSSkewY: any; CSSStartingStyleRule: any; CSSStyleDeclaration: any; CSSStyleRule: any; CSSStyleSheet: any; CSSStyleValue: any; CSSSupportsRule: any; CSSTransformComponent: any; CSSTransformValue: any; CSSTransition: any; CSSTranslate: any; CSSUnitValue: any; CSSUnparsedValue: any; CSSVariableReferenceValue: any; CSSViewTransitionRule: any; Cache: any; CacheStorage: any; CanvasCaptureMediaStreamTrack: any; CanvasGradient: any; CanvasPattern: any; CanvasRenderingContext2D: any; CaretPosition: any; ChannelMergerNode: any; ChannelSplitterNode: any; CharacterData: any; Clipboard: any; ClipboardEvent: any; ClipboardItem: any; CloseEvent: any; Comment: any; CompositionEvent: any; CompressionStream: any; ConstantSourceNode: any; ContentVisibilityAutoStateChangeEvent: any; ConvolverNode: any; CountQueuingStrategy: any; Credential: any; CredentialsContainer: any; Crypto: any; CryptoKey: any; CustomElementRegistry: any; CustomEvent: any; CustomStateSet: any; DOMException: any; DOMImplementation: any; DOMMatrix: any; SVGMatrix: any; WebKitCSSMatrix: any; DOMMatrixReadOnly: any; DOMParser: any; DOMPoint: any; SVGPoint: any; DOMPointReadOnly: any; DOMQuad: any; DOMRect: any; SVGRect: any; DOMRectList: any; DOMRectReadOnly: any; DOMStringList: any; DOMStringMap: any; DOMTokenList: any; DataTransfer: any; DataTransferItem: any; DataTransferItemList: any; DecompressionStream: any; DelayNode: any; DeviceMotionEvent: any; DeviceOrientationEvent: any; Document: any; DocumentFragment: any; DocumentTimeline: any; DocumentType: any; DragEvent: any; DynamicsCompressorNode: any; Element: any; ElementInternals: any; EncodedAudioChunk: any; EncodedVideoChunk: any; ErrorEvent: any; Event: any; EventCounts: any; EventSource: any; EventTarget: any; dispatchEvent: any; External: any; File: any; FileList: any; FileReader: any; FileSystem: any; FileSystemDirectoryEntry: any; FileSystemDirectoryHandle: any; FileSystemDirectoryReader: any; FileSystemEntry: any; FileSystemFileEntry: any; FileSystemFileHandle: any; FileSystemHandle: any; FileSystemWritableFileStream: any; FocusEvent: any; FontFace: any; FontFaceSet: any; FontFaceSetLoadEvent: any; FormData: any; FormDataEvent: any; FragmentDirective: any; GainNode: any; Gamepad: any; GamepadButton: any; GamepadEvent: any; GamepadHapticActuator: any; Geolocation: any; GeolocationCoordinates: any; GeolocationPosition: any; GeolocationPositionError: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onbeforeinput: any; onbeforetoggle: any; onblur: any; oncancel: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextlost: any; oncontextmenu: any; oncontextrestored: any; oncopy: any; oncuechange: any; oncut: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpaste: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onscrollend: any; onsecuritypolicyviolation: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onslotchange: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; HTMLAllCollection: any; HTMLAnchorElement: any; HTMLAreaElement: any; HTMLAudioElement: any; HTMLBRElement: any; HTMLBaseElement: any; HTMLBodyElement: any; HTMLButtonElement: any; HTMLCanvasElement: any; HTMLCollection: any; HTMLDListElement: any; HTMLDataElement: any; HTMLDataListElement: any; HTMLDetailsElement: any; HTMLDialogElement: any; HTMLDirectoryElement: any; HTMLDivElement: any; HTMLDocument: any; HTMLElement: any; HTMLEmbedElement: any; HTMLFieldSetElement: any; HTMLFontElement: any; HTMLFormControlsCollection: any; HTMLFormElement: any; HTMLFrameElement: any; HTMLFrameSetElement: any; HTMLHRElement: any; HTMLHeadElement: any; HTMLHeadingElement: any; HTMLHtmlElement: any; HTMLIFrameElement: any; HTMLImageElement: any; HTMLInputElement: any; HTMLLIElement: any; HTMLLabelElement: any; HTMLLegendElement: any; HTMLLinkElement: any; HTMLMapElement: any; HTMLMarqueeElement: any; HTMLMediaElement: any; HTMLMenuElement: any; HTMLMetaElement: any; HTMLMeterElement: any; HTMLModElement: any; HTMLOListElement: any; HTMLObjectElement: any; HTMLOptGroupElement: any; HTMLOptionElement: any; HTMLOptionsCollection: any; HTMLOutputElement: any; HTMLParagraphElement: any; HTMLParamElement: any; HTMLPictureElement: any; HTMLPreElement: any; HTMLProgressElement: any; HTMLQuoteElement: any; HTMLScriptElement: any; HTMLSelectElement: any; HTMLSlotElement: any; HTMLSourceElement: any; HTMLSpanElement: any; HTMLStyleElement: any; HTMLTableCaptionElement: any; HTMLTableCellElement: any; HTMLTableColElement: any; HTMLTableElement: any; HTMLTableRowElement: any; HTMLTableSectionElement: any; HTMLTemplateElement: any; HTMLTextAreaElement: any; HTMLTimeElement: any; HTMLTitleElement: any; HTMLTrackElement: any; HTMLUListElement: any; HTMLUnknownElement: any; HTMLVideoElement: any; HashChangeEvent: any; Headers: any; Highlight: any; HighlightRegistry: any; History: any; IDBCursor: any; IDBCursorWithValue: any; IDBDatabase: any; IDBFactory: any; IDBIndex: any; IDBKeyRange: any; IDBObjectStore: any; IDBOpenDBRequest: any; IDBRequest: any; IDBTransaction: any; IDBVersionChangeEvent: any; IIRFilterNode: any; IdleDeadline: any; ImageBitmap: any; ImageBitmapRenderingContext: any; ImageData: any; ImageDecoder: any; ImageTrack: any; ImageTrackList: any; InputDeviceInfo: any; InputEvent: any; IntersectionObserver: any; IntersectionObserverEntry: any; KeyboardEvent: any; KeyframeEffect: any; LargestContentfulPaint: any; Location: any; Lock: any; LockManager: any; MIDIAccess: any; MIDIConnectionEvent: any; MIDIInput: any; MIDIInputMap: any; MIDIMessageEvent: any; MIDIOutput: any; MIDIOutputMap: any; MIDIPort: any; MathMLElement: any; MediaCapabilities: any; MediaDeviceInfo: any; MediaDevices: any; MediaElementAudioSourceNode: any; MediaEncryptedEvent: any; MediaError: any; MediaKeyMessageEvent: any; MediaKeySession: any; MediaKeyStatusMap: any; MediaKeySystemAccess: any; MediaKeys: any; MediaList: any; MediaMetadata: any; MediaQueryList: any; MediaQueryListEvent: any; MediaRecorder: any; MediaSession: any; MediaSource: any; MediaSourceHandle: any; MediaStream: any; MediaStreamAudioDestinationNode: any; MediaStreamAudioSourceNode: any; MediaStreamTrack: any; MediaStreamTrackEvent: any; MessageChannel: any; MessageEvent: any; MessagePort: any; MimeType: any; MimeTypeArray: any; MouseEvent: any; MutationObserver: any; MutationRecord: any; NamedNodeMap: any; NavigationActivation: any; NavigationHistoryEntry: any; NavigationPreloadManager: any; Navigator: any; Node: any; NodeIterator: any; NodeList: any; Notification: any; OfflineAudioCompletionEvent: any; OfflineAudioContext: any; OffscreenCanvas: any; OffscreenCanvasRenderingContext2D: any; OscillatorNode: any; OverconstrainedError: any; PageRevealEvent: any; PageSwapEvent: any; PageTransitionEvent: any; PannerNode: any; Path2D: any; PaymentAddress: any; PaymentMethodChangeEvent: any; PaymentRequest: any; PaymentRequestUpdateEvent: any; PaymentResponse: any; Performance: any; PerformanceEntry: any; PerformanceEventTiming: any; PerformanceMark: any; PerformanceMeasure: any; PerformanceNavigation: any; PerformanceNavigationTiming: any; PerformanceObserver: any; PerformanceObserverEntryList: any; PerformancePaintTiming: any; PerformanceResourceTiming: any; PerformanceServerTiming: any; PerformanceTiming: any; PeriodicWave: any; PermissionStatus: any; Permissions: any; PictureInPictureEvent: any; PictureInPictureWindow: any; Plugin: any; PluginArray: any; PointerEvent: any; PopStateEvent: any; ProcessingInstruction: any; ProgressEvent: any; PromiseRejectionEvent: any; PublicKeyCredential: any; PushManager: any; PushSubscription: any; PushSubscriptionOptions: any; RTCCertificate: any; RTCDTMFSender: any; RTCDTMFToneChangeEvent: any; RTCDataChannel: any; RTCDataChannelEvent: any; RTCDtlsTransport: any; RTCEncodedAudioFrame: any; RTCEncodedVideoFrame: any; RTCError: any; RTCErrorEvent: any; RTCIceCandidate: any; RTCIceTransport: any; RTCPeerConnection: any; RTCPeerConnectionIceErrorEvent: any; RTCPeerConnectionIceEvent: any; RTCRtpReceiver: any; RTCRtpScriptTransform: any; RTCRtpSender: any; RTCRtpTransceiver: any; RTCSctpTransport: any; RTCSessionDescription: any; RTCStatsReport: any; RTCTrackEvent: any; RadioNodeList: any; Range: any; ReadableByteStreamController: any; ReadableStream: any; ReadableStreamBYOBReader: any; ReadableStreamBYOBRequest: any; ReadableStreamDefaultController: any; ReadableStreamDefaultReader: any; RemotePlayback: any; Report: any; ReportBody: any; ReportingObserver: any; Request: any; ResizeObserver: any; ResizeObserverEntry: any; ResizeObserverSize: any; Response: any; SVGAElement: any; SVGAngle: any; SVGAnimateElement: any; SVGAnimateMotionElement: any; SVGAnimateTransformElement: any; SVGAnimatedAngle: any; SVGAnimatedBoolean: any; SVGAnimatedEnumeration: any; SVGAnimatedInteger: any; SVGAnimatedLength: any; SVGAnimatedLengthList: any; SVGAnimatedNumber: any; SVGAnimatedNumberList: any; SVGAnimatedPreserveAspectRatio: any; SVGAnimatedRect: any; SVGAnimatedString: any; SVGAnimatedTransformList: any; SVGAnimationElement: any; SVGCircleElement: any; SVGClipPathElement: any; SVGComponentTransferFunctionElement: any; SVGDefsElement: any; SVGDescElement: any; SVGElement: any; SVGEllipseElement: any; SVGFEBlendElement: any; SVGFEColorMatrixElement: any; SVGFEComponentTransferElement: any; SVGFECompositeElement: any; SVGFEConvolveMatrixElement: any; SVGFEDiffuseLightingElement: any; SVGFEDisplacementMapElement: any; SVGFEDistantLightElement: any; SVGFEDropShadowElement: any; SVGFEFloodElement: any; SVGFEFuncAElement: any; SVGFEFuncBElement: any; SVGFEFuncGElement: any; SVGFEFuncRElement: any; SVGFEGaussianBlurElement: any; SVGFEImageElement: any; SVGFEMergeElement: any; SVGFEMergeNodeElement: any; SVGFEMorphologyElement: any; SVGFEOffsetElement: any; SVGFEPointLightElement: any; SVGFESpecularLightingElement: any; SVGFESpotLightElement: any; SVGFETileElement: any; SVGFETurbulenceElement: any; SVGFilterElement: any; SVGForeignObjectElement: any; SVGGElement: any; SVGGeometryElement: any; SVGGradientElement: any; SVGGraphicsElement: any; SVGImageElement: any; SVGLength: any; SVGLengthList: any; SVGLineElement: any; SVGLinearGradientElement: any; SVGMPathElement: any; SVGMarkerElement: any; SVGMaskElement: any; SVGMetadataElement: any; SVGNumber: any; SVGNumberList: any; SVGPathElement: any; SVGPatternElement: any; SVGPointList: any; SVGPolygonElement: any; SVGPolylineElement: any; SVGPreserveAspectRatio: any; SVGRadialGradientElement: any; SVGRectElement: any; SVGSVGElement: any; SVGScriptElement: any; SVGSetElement: any; SVGStopElement: any; SVGStringList: any; SVGStyleElement: any; SVGSwitchElement: any; SVGSymbolElement: any; SVGTSpanElement: any; SVGTextContentElement: any; SVGTextElement: any; SVGTextPathElement: any; SVGTextPositioningElement: any; SVGTitleElement: any; SVGTransform: any; SVGTransformList: any; SVGUnitTypes: any; SVGUseElement: any; SVGViewElement: any; Screen: any; ScreenOrientation: any; ScriptProcessorNode: any; SecurityPolicyViolationEvent: any; Selection: any; ServiceWorker: any; ServiceWorkerContainer: any; ServiceWorkerRegistration: any; ShadowRoot: any; SharedWorker: any; SourceBuffer: any; SourceBufferList: any; SpeechRecognitionAlternative: any; SpeechRecognitionResult: any; SpeechRecognitionResultList: any; SpeechSynthesis: any; SpeechSynthesisErrorEvent: any; SpeechSynthesisEvent: any; SpeechSynthesisUtterance: any; SpeechSynthesisVoice: any; StaticRange: any; StereoPannerNode: any; Storage: any; StorageEvent: any; StorageManager: any; StylePropertyMap: any; StylePropertyMapReadOnly: any; StyleSheet: any; StyleSheetList: any; SubmitEvent: any; SubtleCrypto: any; Text: any; TextDecoder: any; TextDecoderStream: any; TextEncoder: any; TextEncoderStream: any; TextEvent: any; TextMetrics: any; TextTrack: any; TextTrackCue: any; TextTrackCueList: any; TextTrackList: any; TimeRanges: any; ToggleEvent: any; Touch: any; TouchEvent: any; TouchList: any; TrackEvent: any; TransformStream: any; TransformStreamDefaultController: any; TransitionEvent: any; TreeWalker: any; UIEvent: any; URL: any; webkitURL: any; URLSearchParams: any; UserActivation: any; VTTCue: any; VTTRegion: any; ValidityState: any; VideoColorSpace: any; VideoDecoder: any; VideoEncoder: any; VideoFrame: any; VideoPlaybackQuality: any; ViewTransition: any; ViewTransitionTypeSet: any; VisualViewport: any; WakeLock: any; WakeLockSentinel: any; WaveShaperNode: any; WebGL2RenderingContext: any; WebGLActiveInfo: any; WebGLBuffer: any; WebGLContextEvent: any; WebGLFramebuffer: any; WebGLProgram: any; WebGLQuery: any; WebGLRenderbuffer: any; WebGLRenderingContext: any; WebGLSampler: any; WebGLShader: any; WebGLShaderPrecisionFormat: any; WebGLSync: any; WebGLTexture: any; WebGLTransformFeedback: any; WebGLUniformLocation: any; WebGLVertexArrayObject: any; WebSocket: any; WebTransport: any; WebTransportBidirectionalStream: any; WebTransportDatagramDuplexStream: any; WebTransportError: any; WheelEvent: any; Window: any; clientInformation: any; closed: any; customElements: any; devicePixelRatio: any; document: any; event: any; external: any; frameElement: any; frames: any; history: any; innerHeight: any; innerWidth: any; length: any; location: any; locationbar: any; menubar: any; name: any; navigator: any; ondevicemotion: any; ondeviceorientation: any; ondeviceorientationabsolute: any; onorientationchange: any; opener: any; orientation: any; outerHeight: any; outerWidth: any; pageXOffset: any; pageYOffset: any; parent: any; personalbar: any; screen: any; screenLeft: any; screenTop: any; screenX: any; screenY: any; scrollX: any; scrollY: any; scrollbars: any; self: any; speechSynthesis: any; status: any; statusbar: any; toolbar: any; top: any; visualViewport: any; window: any; alert: any; blur: any; cancelIdleCallback: any; captureEvents: any; close: any; confirm: any; focus: any; getComputedStyle: any; getSelection: any; matchMedia: any; moveBy: any; moveTo: any; open: any; postMessage: any; print: any; prompt: any; releaseEvents: any; requestIdleCallback: any; resizeBy: any; resizeTo: any; scroll: any; scrollBy: any; scrollTo: any; stop: any; addEventListener: any; removeEventListener: any; onafterprint: any; onbeforeprint: any; onbeforeunload: any; ongamepadconnected: any; ongamepaddisconnected: any; onhashchange: any; onlanguagechange: any; onmessage: any; onmessageerror: any; onoffline: any; ononline: any; onpagehide: any; onpagereveal: any; onpageshow: any; onpageswap: any; onpopstate: any; onrejectionhandled: any; onstorage: any; onunhandledrejection: any; onunload: any; localStorage: any; caches: any; crossOriginIsolated: any; crypto: any; indexedDB: any; isSecureContext: any; origin: any; performance: any; atob: any; btoa: any; clearInterval: any; clearTimeout: any; createImageBitmap: any; fetch: any; queueMicrotask: any; reportError: any; setInterval: any; setTimeout: any; structuredClone: any; sessionStorage: any; Worker: any; Worklet: any; WritableStream: any; WritableStreamDefaultController: any; WritableStreamDefaultWriter: any; XMLDocument: any; XMLHttpRequest: any; XMLHttpRequestEventTarget: any; XMLHttpRequestUpload: any; XMLSerializer: any; XPathEvaluator: any; XPathExpression: any; XPathResult: any; XSLTProcessor: any; console: any; CSS: any; WebAssembly: any; Audio: any; Image: any; Option: any; toString: any; Map: any; WeakMap: any; Set: any; WeakSet: any; Proxy: any; Reflect: any; foo: any; readonly globalThis: any; undefined: any; }; designMode: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; dir: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly doctype: { after: any; before: any; remove: any; replaceWith: any; readonly name: any; readonly ownerDocument: any; readonly publicId: any; readonly systemId: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; }; readonly documentElement: { ariaAtomic: any; ariaAutoComplete: any; ariaBrailleLabel: any; ariaBrailleRoleDescription: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColIndexText: any; ariaColSpan: any; ariaCurrent: any; ariaDescription: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaInvalid: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRelevant: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowIndexText: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; role: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; readonly attributes: any; classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; readonly currentCSSZoom: any; id: any; innerHTML: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; checkVisibility: any; closest: any; computedStyleMap: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; getHTML: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setHTMLUnsafe: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; readonly attributeStyleMap: any; style: any; contentEditable: any; enterKeyHint: any; inputMode: any; readonly isContentEditable: any; dispatchEvent: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onbeforeinput: any; onbeforetoggle: any; onblur: any; oncancel: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextlost: any; oncontextmenu: any; oncontextrestored: any; oncopy: any; oncuechange: any; oncut: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpaste: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onscrollend: any; onsecuritypolicyviolation: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onslotchange: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; accessKey: any; readonly accessKeyLabel: any; autocapitalize: any; dir: any; draggable: any; hidden: any; inert: any; innerText: any; lang: any; readonly offsetHeight: any; readonly offsetLeft: any; readonly offsetParent: any; readonly offsetTop: any; readonly offsetWidth: any; outerText: any; popover: any; spellcheck: any; title: any; translate: any; writingSuggestions: any; attachInternals: any; click: any; hidePopover: any; showPopover: any; togglePopover: any; addEventListener: any; removeEventListener: any; autofocus: any; readonly dataset: any; nonce?: any; tabIndex: any; blur: any; focus: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly documentURI: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; domain: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly embeds: { readonly length: any; item: any; namedItem: any; }; fgColor: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly forms: { readonly length: any; item: any; namedItem: any; }; readonly fragmentDirective: unknown; readonly fullscreen: { valueOf: any; }; readonly fullscreenEnabled: { valueOf: any; }; readonly head: { ariaAtomic: any; ariaAutoComplete: any; ariaBrailleLabel: any; ariaBrailleRoleDescription: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColIndexText: any; ariaColSpan: any; ariaCurrent: any; ariaDescription: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaInvalid: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRelevant: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowIndexText: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; role: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; readonly attributes: any; classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; readonly currentCSSZoom: any; id: any; innerHTML: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; checkVisibility: any; closest: any; computedStyleMap: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; getHTML: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setHTMLUnsafe: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; readonly attributeStyleMap: any; style: any; contentEditable: any; enterKeyHint: any; inputMode: any; readonly isContentEditable: any; dispatchEvent: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onbeforeinput: any; onbeforetoggle: any; onblur: any; oncancel: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextlost: any; oncontextmenu: any; oncontextrestored: any; oncopy: any; oncuechange: any; oncut: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpaste: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onscrollend: any; onsecuritypolicyviolation: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onslotchange: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; accessKey: any; readonly accessKeyLabel: any; autocapitalize: any; dir: any; draggable: any; hidden: any; inert: any; innerText: any; lang: any; readonly offsetHeight: any; readonly offsetLeft: any; readonly offsetParent: any; readonly offsetTop: any; readonly offsetWidth: any; outerText: any; popover: any; spellcheck: any; title: any; translate: any; writingSuggestions: any; attachInternals: any; click: any; hidePopover: any; showPopover: any; togglePopover: any; addEventListener: any; removeEventListener: any; autofocus: any; readonly dataset: any; nonce?: any; tabIndex: any; blur: any; focus: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly hidden: { valueOf: any; }; readonly images: { readonly length: any; item: any; namedItem: any; }; readonly implementation: { createDocument: any; createDocumentType: any; createHTMLDocument: any; hasFeature: any; }; readonly inputEncoding: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly lastModified: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; linkColor: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly links: { readonly length: any; item: any; namedItem: any; }; location: { readonly ancestorOrigins: any; hash: any; host: any; hostname: any; href: any; toString: any; readonly origin: any; pathname: any; port: any; protocol: any; search: any; assign: any; reload: any; replace: any; }; onfullscreenchange: unknown; onfullscreenerror: unknown; onpointerlockchange: unknown; onpointerlockerror: unknown; onreadystatechange: unknown; onvisibilitychange: unknown; readonly ownerDocument: unknown; readonly pictureInPictureEnabled: { valueOf: any; }; readonly plugins: { readonly length: any; item: any; namedItem: any; }; readonly readyState: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly referrer: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly rootElement: { ariaAtomic: any; ariaAutoComplete: any; ariaBrailleLabel: any; ariaBrailleRoleDescription: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColIndexText: any; ariaColSpan: any; ariaCurrent: any; ariaDescription: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaInvalid: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRelevant: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowIndexText: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; role: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; readonly attributes: any; classList: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; readonly currentCSSZoom: any; id: any; innerHTML: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; checkVisibility: any; closest: any; computedStyleMap: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; getHTML: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setHTMLUnsafe: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; readonly attributeStyleMap: any; style: any; dispatchEvent: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onbeforeinput: any; onbeforetoggle: any; onblur: any; oncancel: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextlost: any; oncontextmenu: any; oncontextrestored: any; oncopy: any; oncuechange: any; oncut: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpaste: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onscrollend: any; onsecuritypolicyviolation: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onslotchange: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; autofocus: any; readonly dataset: any; nonce?: any; tabIndex: any; blur: any; focus: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly className: any; readonly ownerSVGElement: any; readonly viewportElement: any; readonly preserveAspectRatio: any; readonly viewBox: any; readonly transform: any; getBBox: any; getCTM: any; getScreenCTM: any; currentScale: any; readonly currentTranslate: any; readonly height: any; readonly width: any; readonly x: any; readonly y: any; animationsPaused: any; checkEnclosure: any; checkIntersection: any; createSVGAngle: any; createSVGLength: any; createSVGMatrix: any; createSVGNumber: any; createSVGPoint: any; createSVGRect: any; createSVGTransform: any; createSVGTransformFromMatrix: any; deselectAll: any; forceRedraw: any; getCurrentTime: any; getElementById: any; getEnclosureList: any; getIntersectionList: any; pauseAnimations: any; setCurrentTime: any; suspendRedraw: any; unpauseAnimations: any; unsuspendRedraw: any; unsuspendRedrawAll: any; addEventListener: any; removeEventListener: any; readonly requiredExtensions: any; readonly systemLanguage: any; readonly assignedSlot: any; onafterprint: any; onbeforeprint: any; onbeforeunload: any; ongamepadconnected: any; ongamepaddisconnected: any; onhashchange: any; onlanguagechange: any; onmessage: any; onmessageerror: any; onoffline: any; ononline: any; onpagehide: any; onpagereveal: any; onpageshow: any; onpageswap: any; onpopstate: any; onrejectionhandled: any; onstorage: any; onunhandledrejection: any; onunload: any; }; readonly scripts: { readonly length: any; item: any; namedItem: any; }; readonly scrollingElement: { ariaAtomic: any; ariaAutoComplete: any; ariaBrailleLabel: any; ariaBrailleRoleDescription: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColIndexText: any; ariaColSpan: any; ariaCurrent: any; ariaDescription: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaInvalid: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRelevant: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowIndexText: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; role: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; readonly attributes: any; classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; readonly currentCSSZoom: any; id: any; innerHTML: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; checkVisibility: any; closest: any; computedStyleMap: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; getHTML: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setHTMLUnsafe: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; dispatchEvent: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly timeline: { readonly currentTime: any; }; title: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly visibilityState: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; vlinkColor: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; adoptNode: unknown; captureEvents: unknown; caretPositionFromPoint: unknown; caretRangeFromPoint: unknown; clear: unknown; close: unknown; createAttribute: unknown; createAttributeNS: unknown; createCDATASection: unknown; createComment: unknown; createDocumentFragment: unknown; createElement: unknown; createElementNS: unknown; createEvent: unknown; createNodeIterator: unknown; createProcessingInstruction: unknown; createRange: unknown; createTextNode: unknown; createTreeWalker: unknown; execCommand: unknown; exitFullscreen: unknown; exitPictureInPicture: unknown; exitPointerLock: unknown; getElementById: unknown; getElementsByClassName: unknown; getElementsByName: unknown; getElementsByTagName: unknown; getElementsByTagNameNS: unknown; getSelection: unknown; hasFocus: unknown; hasStorageAccess: unknown; importNode: unknown; open: unknown; queryCommandEnabled: unknown; queryCommandIndeterm: unknown; queryCommandState: unknown; queryCommandSupported: unknown; queryCommandValue: unknown; releaseEvents: unknown; requestStorageAccess: unknown; startViewTransition: unknown; write: unknown; writeln: unknown; addEventListener: unknown; removeEventListener: unknown; readonly activeElement: { ariaAtomic: any; ariaAutoComplete: any; ariaBrailleLabel: any; ariaBrailleRoleDescription: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColIndexText: any; ariaColSpan: any; ariaCurrent: any; ariaDescription: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaInvalid: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRelevant: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowIndexText: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; role: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; readonly attributes: any; classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; readonly currentCSSZoom: any; id: any; innerHTML: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; checkVisibility: any; closest: any; computedStyleMap: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; getHTML: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setHTMLUnsafe: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; dispatchEvent: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; adoptedStyleSheets: { readonly cssRules: any; readonly ownerRule: any; readonly rules: any; addRule: any; deleteRule: any; insertRule: any; removeRule: any; replace: any; replaceSync: any; disabled: any; readonly href: any; media: any; readonly ownerNode: any; readonly parentStyleSheet: any; readonly title: any; readonly type: any; }[]; readonly fullscreenElement: { ariaAtomic: any; ariaAutoComplete: any; ariaBrailleLabel: any; ariaBrailleRoleDescription: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColIndexText: any; ariaColSpan: any; ariaCurrent: any; ariaDescription: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaInvalid: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRelevant: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowIndexText: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; role: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; readonly attributes: any; classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; readonly currentCSSZoom: any; id: any; innerHTML: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; checkVisibility: any; closest: any; computedStyleMap: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; getHTML: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setHTMLUnsafe: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; dispatchEvent: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly pictureInPictureElement: { ariaAtomic: any; ariaAutoComplete: any; ariaBrailleLabel: any; ariaBrailleRoleDescription: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColIndexText: any; ariaColSpan: any; ariaCurrent: any; ariaDescription: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaInvalid: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRelevant: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowIndexText: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; role: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; readonly attributes: any; classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; readonly currentCSSZoom: any; id: any; innerHTML: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; checkVisibility: any; closest: any; computedStyleMap: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; getHTML: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setHTMLUnsafe: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; dispatchEvent: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly pointerLockElement: { ariaAtomic: any; ariaAutoComplete: any; ariaBrailleLabel: any; ariaBrailleRoleDescription: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColIndexText: any; ariaColSpan: any; ariaCurrent: any; ariaDescription: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaInvalid: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRelevant: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowIndexText: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; role: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; readonly attributes: any; classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; readonly currentCSSZoom: any; id: any; innerHTML: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; checkVisibility: any; closest: any; computedStyleMap: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; getHTML: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setHTMLUnsafe: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; dispatchEvent: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly styleSheets: { readonly length: any; item: any; }; elementFromPoint: unknown; elementsFromPoint: unknown; getAnimations: unknown; dispatchEvent: unknown; readonly fonts: { dispatchEvent: any; onloading: any; onloadingdone: any; onloadingerror: any; readonly ready: any; readonly status: any; check: any; load: any; forEach: any; addEventListener: any; removeEventListener: any; }; onabort: unknown; onanimationcancel: unknown; onanimationend: unknown; onanimationiteration: unknown; onanimationstart: unknown; onauxclick: unknown; onbeforeinput: unknown; onbeforetoggle: unknown; onblur: unknown; oncancel: unknown; oncanplay: unknown; oncanplaythrough: unknown; onchange: unknown; onclick: unknown; onclose: unknown; oncontextlost: unknown; oncontextmenu: unknown; oncontextrestored: unknown; oncopy: unknown; oncuechange: unknown; oncut: unknown; ondblclick: unknown; ondrag: unknown; ondragend: unknown; ondragenter: unknown; ondragleave: unknown; ondragover: unknown; ondragstart: unknown; ondrop: unknown; ondurationchange: unknown; onemptied: unknown; onended: unknown; onerror: unknown; onfocus: unknown; onformdata: unknown; ongotpointercapture: unknown; oninput: unknown; oninvalid: unknown; onkeydown: unknown; onkeypress: unknown; onkeyup: unknown; onload: unknown; onloadeddata: unknown; onloadedmetadata: unknown; onloadstart: unknown; onlostpointercapture: unknown; onmousedown: unknown; onmouseenter: unknown; onmouseleave: unknown; onmousemove: unknown; onmouseout: unknown; onmouseover: unknown; onmouseup: unknown; onpaste: unknown; onpause: unknown; onplay: unknown; onplaying: unknown; onpointercancel: unknown; onpointerdown: unknown; onpointerenter: unknown; onpointerleave: unknown; onpointermove: unknown; onpointerout: unknown; onpointerover: unknown; onpointerup: unknown; onprogress: unknown; onratechange: unknown; onreset: unknown; onresize: unknown; onscroll: unknown; onscrollend: unknown; onsecuritypolicyviolation: unknown; onseeked: unknown; onseeking: unknown; onselect: unknown; onselectionchange: unknown; onselectstart: unknown; onslotchange: unknown; onstalled: unknown; onsubmit: unknown; onsuspend: unknown; ontimeupdate: unknown; ontoggle: unknown; ontouchcancel?: unknown; ontouchend?: unknown; ontouchmove?: unknown; ontouchstart?: unknown; ontransitioncancel: unknown; ontransitionend: unknown; ontransitionrun: unknown; ontransitionstart: unknown; onvolumechange: unknown; onwaiting: unknown; onwebkitanimationend: unknown; onwebkitanimationiteration: unknown; onwebkitanimationstart: unknown; onwebkittransitionend: unknown; onwheel: unknown; readonly baseURI: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly childNodes: { readonly length: any; item: any; forEach: any; }; readonly firstChild: { after: any; before: any; remove: any; replaceWith: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; }; readonly isConnected: { valueOf: any; }; readonly lastChild: { after: any; before: any; remove: any; replaceWith: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; }; readonly nextSibling: { after: any; before: any; remove: any; replaceWith: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; }; readonly nodeName: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly nodeType: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; nodeValue: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly parentElement: { ariaAtomic: any; ariaAutoComplete: any; ariaBrailleLabel: any; ariaBrailleRoleDescription: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColIndexText: any; ariaColSpan: any; ariaCurrent: any; ariaDescription: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaInvalid: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRelevant: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowIndexText: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; role: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; readonly attributes: any; classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; readonly currentCSSZoom: any; id: any; innerHTML: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; checkVisibility: any; closest: any; computedStyleMap: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; getHTML: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setHTMLUnsafe: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; readonly attributeStyleMap: any; style: any; contentEditable: any; enterKeyHint: any; inputMode: any; readonly isContentEditable: any; dispatchEvent: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onbeforeinput: any; onbeforetoggle: any; onblur: any; oncancel: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextlost: any; oncontextmenu: any; oncontextrestored: any; oncopy: any; oncuechange: any; oncut: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpaste: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onscrollend: any; onsecuritypolicyviolation: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onslotchange: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; accessKey: any; readonly accessKeyLabel: any; autocapitalize: any; dir: any; draggable: any; hidden: any; inert: any; innerText: any; lang: any; readonly offsetHeight: any; readonly offsetLeft: any; readonly offsetParent: any; readonly offsetTop: any; readonly offsetWidth: any; outerText: any; popover: any; spellcheck: any; title: any; translate: any; writingSuggestions: any; attachInternals: any; click: any; hidePopover: any; showPopover: any; togglePopover: any; addEventListener: any; removeEventListener: any; autofocus: any; readonly dataset: any; nonce?: any; tabIndex: any; blur: any; focus: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly parentNode: { addEventListener: any; dispatchEvent: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; }; readonly previousSibling: { after: any; before: any; remove: any; replaceWith: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; }; textContent: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; appendChild: unknown; cloneNode: unknown; compareDocumentPosition: unknown; contains: unknown; getRootNode: unknown; hasChildNodes: unknown; insertBefore: unknown; isDefaultNamespace: unknown; isEqualNode: unknown; isSameNode: unknown; lookupNamespaceURI: unknown; lookupPrefix: unknown; normalize: unknown; removeChild: unknown; replaceChild: unknown; readonly ELEMENT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly ATTRIBUTE_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly TEXT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly CDATA_SECTION_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly ENTITY_REFERENCE_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly ENTITY_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly PROCESSING_INSTRUCTION_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly COMMENT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_TYPE_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_FRAGMENT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly NOTATION_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_DISCONNECTED: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_PRECEDING: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_FOLLOWING: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_CONTAINS: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_CONTAINED_BY: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly childElementCount: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly children: { readonly length: any; item: any; namedItem: any; }; readonly firstElementChild: { ariaAtomic: any; ariaAutoComplete: any; ariaBrailleLabel: any; ariaBrailleRoleDescription: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColIndexText: any; ariaColSpan: any; ariaCurrent: any; ariaDescription: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaInvalid: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRelevant: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowIndexText: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; role: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; readonly attributes: any; classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; readonly currentCSSZoom: any; id: any; innerHTML: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; checkVisibility: any; closest: any; computedStyleMap: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; getHTML: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setHTMLUnsafe: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; dispatchEvent: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly lastElementChild: { ariaAtomic: any; ariaAutoComplete: any; ariaBrailleLabel: any; ariaBrailleRoleDescription: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColIndexText: any; ariaColSpan: any; ariaCurrent: any; ariaDescription: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaInvalid: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRelevant: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowIndexText: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; role: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; readonly attributes: any; classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; readonly currentCSSZoom: any; id: any; innerHTML: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; checkVisibility: any; closest: any; computedStyleMap: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; getHTML: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setHTMLUnsafe: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; dispatchEvent: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; append: unknown; prepend: unknown; querySelector: unknown; querySelectorAll: unknown; replaceChildren: unknown; createExpression: unknown; createNSResolver: unknown; evaluate: unknown; } +>out2 : { dispatchEvent: unknown; onreadystatechange: unknown; readonly readyState: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly response: unknown; readonly responseText: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; responseType: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly responseURL: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly responseXML: { readonly URL: any; alinkColor: any; readonly all: any; readonly anchors: any; readonly applets: any; bgColor: any; body: any; readonly characterSet: any; readonly charset: any; readonly compatMode: any; readonly contentType: any; cookie: any; readonly currentScript: any; readonly defaultView: any; designMode: any; dir: any; readonly doctype: any; readonly documentElement: any; readonly documentURI: any; domain: any; readonly embeds: any; fgColor: any; readonly forms: any; readonly fragmentDirective: any; readonly fullscreen: any; readonly fullscreenEnabled: any; readonly head: any; readonly hidden: any; readonly images: any; readonly implementation: any; readonly inputEncoding: any; readonly lastModified: any; linkColor: any; readonly links: any; location: any; onfullscreenchange: any; onfullscreenerror: any; onpointerlockchange: any; onpointerlockerror: any; onreadystatechange: any; onvisibilitychange: any; readonly ownerDocument: any; readonly pictureInPictureEnabled: any; readonly plugins: any; readonly readyState: any; readonly referrer: any; readonly rootElement: any; readonly scripts: any; readonly scrollingElement: any; readonly timeline: any; title: any; readonly visibilityState: any; vlinkColor: any; adoptNode: any; captureEvents: any; caretPositionFromPoint: any; caretRangeFromPoint: any; clear: any; close: any; createAttribute: any; createAttributeNS: any; createCDATASection: any; createComment: any; createDocumentFragment: any; createElement: any; createElementNS: any; createEvent: any; createNodeIterator: any; createProcessingInstruction: any; createRange: any; createTextNode: any; createTreeWalker: any; execCommand: any; exitFullscreen: any; exitPictureInPicture: any; exitPointerLock: any; getElementById: any; getElementsByClassName: any; getElementsByName: any; getElementsByTagName: any; getElementsByTagNameNS: any; getSelection: any; hasFocus: any; hasStorageAccess: any; importNode: any; open: any; queryCommandEnabled: any; queryCommandIndeterm: any; queryCommandState: any; queryCommandSupported: any; queryCommandValue: any; releaseEvents: any; requestStorageAccess: any; startViewTransition: any; write: any; writeln: any; addEventListener: any; removeEventListener: any; readonly activeElement: any; adoptedStyleSheets: any; readonly fullscreenElement: any; readonly pictureInPictureElement: any; readonly pointerLockElement: any; readonly styleSheets: any; elementFromPoint: any; elementsFromPoint: any; getAnimations: any; dispatchEvent: any; readonly fonts: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onbeforeinput: any; onbeforetoggle: any; onblur: any; oncancel: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextlost: any; oncontextmenu: any; oncontextrestored: any; oncopy: any; oncuechange: any; oncut: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpaste: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onscrollend: any; onsecuritypolicyviolation: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onslotchange: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; createExpression: any; createNSResolver: any; evaluate: any; }; readonly status: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly statusText: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; timeout: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly upload: { dispatchEvent: any; onabort: any; onerror: any; onload: any; onloadend: any; onloadstart: any; onprogress: any; ontimeout: any; addEventListener: any; removeEventListener: any; }; withCredentials: { valueOf: any; }; abort: unknown; getAllResponseHeaders: unknown; getResponseHeader: unknown; open: unknown; overrideMimeType: unknown; send: unknown; setRequestHeader: unknown; readonly UNSENT: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly OPENED: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly HEADERS_RECEIVED: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly LOADING: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DONE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; addEventListener: unknown; removeEventListener: unknown; onabort: unknown; onerror: unknown; onload: unknown; onloadend: unknown; onloadstart: unknown; onprogress: unknown; ontimeout: unknown; } +>responseXML : { readonly URL: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; alinkColor: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly all: { readonly length: any; item: any; namedItem: any; }; readonly anchors: { readonly length: any; item: any; namedItem: any; }; readonly applets: { readonly length: any; item: any; namedItem: any; }; bgColor: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; body: { ariaAtomic: any; ariaAutoComplete: any; ariaBrailleLabel: any; ariaBrailleRoleDescription: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColIndexText: any; ariaColSpan: any; ariaCurrent: any; ariaDescription: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaInvalid: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRelevant: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowIndexText: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; role: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; readonly attributes: any; classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; readonly currentCSSZoom: any; id: any; innerHTML: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; checkVisibility: any; closest: any; computedStyleMap: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; getHTML: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setHTMLUnsafe: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; readonly attributeStyleMap: any; style: any; contentEditable: any; enterKeyHint: any; inputMode: any; readonly isContentEditable: any; dispatchEvent: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onbeforeinput: any; onbeforetoggle: any; onblur: any; oncancel: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextlost: any; oncontextmenu: any; oncontextrestored: any; oncopy: any; oncuechange: any; oncut: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpaste: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onscrollend: any; onsecuritypolicyviolation: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onslotchange: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; accessKey: any; readonly accessKeyLabel: any; autocapitalize: any; dir: any; draggable: any; hidden: any; inert: any; innerText: any; lang: any; readonly offsetHeight: any; readonly offsetLeft: any; readonly offsetParent: any; readonly offsetTop: any; readonly offsetWidth: any; outerText: any; popover: any; spellcheck: any; title: any; translate: any; writingSuggestions: any; attachInternals: any; click: any; hidePopover: any; showPopover: any; togglePopover: any; addEventListener: any; removeEventListener: any; autofocus: any; readonly dataset: any; nonce?: any; tabIndex: any; blur: any; focus: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly characterSet: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly charset: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly compatMode: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly contentType: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; cookie: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly currentScript: { ariaAtomic: any; ariaAutoComplete: any; ariaBrailleLabel: any; ariaBrailleRoleDescription: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColIndexText: any; ariaColSpan: any; ariaCurrent: any; ariaDescription: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaInvalid: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRelevant: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowIndexText: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; role: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; readonly attributes: any; classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; readonly currentCSSZoom: any; id: any; innerHTML: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; checkVisibility: any; closest: any; computedStyleMap: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; getHTML: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setHTMLUnsafe: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; readonly attributeStyleMap: any; style: any; contentEditable: any; enterKeyHint: any; inputMode: any; readonly isContentEditable: any; dispatchEvent: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onbeforeinput: any; onbeforetoggle: any; onblur: any; oncancel: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextlost: any; oncontextmenu: any; oncontextrestored: any; oncopy: any; oncuechange: any; oncut: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpaste: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onscrollend: any; onsecuritypolicyviolation: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onslotchange: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; accessKey: any; readonly accessKeyLabel: any; autocapitalize: any; dir: any; draggable: any; hidden: any; inert: any; innerText: any; lang: any; readonly offsetHeight: any; readonly offsetLeft: any; readonly offsetParent: any; readonly offsetTop: any; readonly offsetWidth: any; outerText: any; popover: any; spellcheck: any; title: any; translate: any; writingSuggestions: any; attachInternals: any; click: any; hidePopover: any; showPopover: any; togglePopover: any; autofocus: any; readonly dataset: any; nonce?: any; tabIndex: any; blur: any; focus: any; async: any; blocking: any; charset: any; crossOrigin: any; defer: any; event: any; fetchPriority: any; htmlFor: any; integrity: any; noModule: any; referrerPolicy: any; src: any; text: any; type: any; addEventListener: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; } | { ariaAtomic: any; ariaAutoComplete: any; ariaBrailleLabel: any; ariaBrailleRoleDescription: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColIndexText: any; ariaColSpan: any; ariaCurrent: any; ariaDescription: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaInvalid: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRelevant: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowIndexText: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; role: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; readonly attributes: any; classList: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; readonly currentCSSZoom: any; id: any; innerHTML: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; checkVisibility: any; closest: any; computedStyleMap: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; getHTML: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setHTMLUnsafe: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; readonly attributeStyleMap: any; style: any; dispatchEvent: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onbeforeinput: any; onbeforetoggle: any; onblur: any; oncancel: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextlost: any; oncontextmenu: any; oncontextrestored: any; oncopy: any; oncuechange: any; oncut: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpaste: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onscrollend: any; onsecuritypolicyviolation: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onslotchange: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; autofocus: any; readonly dataset: any; nonce?: any; tabIndex: any; blur: any; focus: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly className: any; readonly ownerSVGElement: any; readonly viewportElement: any; type: any; addEventListener: any; removeEventListener: any; readonly href: any; readonly assignedSlot: any; }; readonly defaultView: { NaN: any; Infinity: any; eval: any; parseInt: any; parseFloat: any; isNaN: any; isFinite: any; decodeURI: any; decodeURIComponent: any; encodeURI: any; encodeURIComponent: any; escape: any; unescape: any; Symbol: any; Object: any; Function: any; String: any; Boolean: any; Number: any; Math: any; Date: any; RegExp: any; Error: any; EvalError: any; RangeError: any; ReferenceError: any; SyntaxError: any; TypeError: any; URIError: any; JSON: any; Array: any; Promise: any; ArrayBuffer: any; DataView: any; Int8Array: any; Uint8Array: any; Uint8ClampedArray: any; Int16Array: any; Uint16Array: any; Int32Array: any; Uint32Array: any; Float32Array: any; Float64Array: any; Intl: any; NodeFilter: any; AbortController: any; AbortSignal: any; AbstractRange: any; AnalyserNode: any; Animation: any; AnimationEffect: any; AnimationEvent: any; cancelAnimationFrame: any; requestAnimationFrame: any; AnimationPlaybackEvent: any; AnimationTimeline: any; Attr: any; AudioBuffer: any; AudioBufferSourceNode: any; AudioContext: any; AudioData: any; AudioDecoder: any; AudioDestinationNode: any; AudioEncoder: any; AudioListener: any; AudioNode: any; AudioParam: any; AudioParamMap: any; AudioProcessingEvent: any; AudioScheduledSourceNode: any; AudioWorklet: any; AudioWorkletNode: any; AuthenticatorAssertionResponse: any; AuthenticatorAttestationResponse: any; AuthenticatorResponse: any; BarProp: any; BaseAudioContext: any; BeforeUnloadEvent: any; BiquadFilterNode: any; Blob: any; BlobEvent: any; BroadcastChannel: any; ByteLengthQueuingStrategy: any; CDATASection: any; CSSAnimation: any; CSSConditionRule: any; CSSContainerRule: any; CSSCounterStyleRule: any; CSSFontFaceRule: any; CSSFontFeatureValuesRule: any; CSSFontPaletteValuesRule: any; CSSGroupingRule: any; CSSImageValue: any; CSSImportRule: any; CSSKeyframeRule: any; CSSKeyframesRule: any; CSSKeywordValue: any; CSSLayerBlockRule: any; CSSLayerStatementRule: any; CSSMathClamp: any; CSSMathInvert: any; CSSMathMax: any; CSSMathMin: any; CSSMathNegate: any; CSSMathProduct: any; CSSMathSum: any; CSSMathValue: any; CSSMatrixComponent: any; CSSMediaRule: any; CSSNamespaceRule: any; CSSNestedDeclarations: any; CSSNumericArray: any; CSSNumericValue: any; CSSPageRule: any; CSSPerspective: any; CSSPropertyRule: any; CSSRotate: any; CSSRule: any; CSSRuleList: any; CSSScale: any; CSSScopeRule: any; CSSSkew: any; CSSSkewX: any; CSSSkewY: any; CSSStartingStyleRule: any; CSSStyleDeclaration: any; CSSStyleRule: any; CSSStyleSheet: any; CSSStyleValue: any; CSSSupportsRule: any; CSSTransformComponent: any; CSSTransformValue: any; CSSTransition: any; CSSTranslate: any; CSSUnitValue: any; CSSUnparsedValue: any; CSSVariableReferenceValue: any; CSSViewTransitionRule: any; Cache: any; CacheStorage: any; CanvasCaptureMediaStreamTrack: any; CanvasGradient: any; CanvasPattern: any; CanvasRenderingContext2D: any; CaretPosition: any; ChannelMergerNode: any; ChannelSplitterNode: any; CharacterData: any; Clipboard: any; ClipboardEvent: any; ClipboardItem: any; CloseEvent: any; Comment: any; CompositionEvent: any; CompressionStream: any; ConstantSourceNode: any; ContentVisibilityAutoStateChangeEvent: any; ConvolverNode: any; CountQueuingStrategy: any; Credential: any; CredentialsContainer: any; Crypto: any; CryptoKey: any; CustomElementRegistry: any; CustomEvent: any; CustomStateSet: any; DOMException: any; DOMImplementation: any; DOMMatrix: any; SVGMatrix: any; WebKitCSSMatrix: any; DOMMatrixReadOnly: any; DOMParser: any; DOMPoint: any; SVGPoint: any; DOMPointReadOnly: any; DOMQuad: any; DOMRect: any; SVGRect: any; DOMRectList: any; DOMRectReadOnly: any; DOMStringList: any; DOMStringMap: any; DOMTokenList: any; DataTransfer: any; DataTransferItem: any; DataTransferItemList: any; DecompressionStream: any; DelayNode: any; DeviceMotionEvent: any; DeviceOrientationEvent: any; Document: any; DocumentFragment: any; DocumentTimeline: any; DocumentType: any; DragEvent: any; DynamicsCompressorNode: any; Element: any; ElementInternals: any; EncodedAudioChunk: any; EncodedVideoChunk: any; ErrorEvent: any; Event: any; EventCounts: any; EventSource: any; EventTarget: any; dispatchEvent: any; External: any; File: any; FileList: any; FileReader: any; FileSystem: any; FileSystemDirectoryEntry: any; FileSystemDirectoryHandle: any; FileSystemDirectoryReader: any; FileSystemEntry: any; FileSystemFileEntry: any; FileSystemFileHandle: any; FileSystemHandle: any; FileSystemWritableFileStream: any; FocusEvent: any; FontFace: any; FontFaceSet: any; FontFaceSetLoadEvent: any; FormData: any; FormDataEvent: any; FragmentDirective: any; GainNode: any; Gamepad: any; GamepadButton: any; GamepadEvent: any; GamepadHapticActuator: any; Geolocation: any; GeolocationCoordinates: any; GeolocationPosition: any; GeolocationPositionError: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onbeforeinput: any; onbeforetoggle: any; onblur: any; oncancel: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextlost: any; oncontextmenu: any; oncontextrestored: any; oncopy: any; oncuechange: any; oncut: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpaste: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onscrollend: any; onsecuritypolicyviolation: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onslotchange: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; HTMLAllCollection: any; HTMLAnchorElement: any; HTMLAreaElement: any; HTMLAudioElement: any; HTMLBRElement: any; HTMLBaseElement: any; HTMLBodyElement: any; HTMLButtonElement: any; HTMLCanvasElement: any; HTMLCollection: any; HTMLDListElement: any; HTMLDataElement: any; HTMLDataListElement: any; HTMLDetailsElement: any; HTMLDialogElement: any; HTMLDirectoryElement: any; HTMLDivElement: any; HTMLDocument: any; HTMLElement: any; HTMLEmbedElement: any; HTMLFieldSetElement: any; HTMLFontElement: any; HTMLFormControlsCollection: any; HTMLFormElement: any; HTMLFrameElement: any; HTMLFrameSetElement: any; HTMLHRElement: any; HTMLHeadElement: any; HTMLHeadingElement: any; HTMLHtmlElement: any; HTMLIFrameElement: any; HTMLImageElement: any; HTMLInputElement: any; HTMLLIElement: any; HTMLLabelElement: any; HTMLLegendElement: any; HTMLLinkElement: any; HTMLMapElement: any; HTMLMarqueeElement: any; HTMLMediaElement: any; HTMLMenuElement: any; HTMLMetaElement: any; HTMLMeterElement: any; HTMLModElement: any; HTMLOListElement: any; HTMLObjectElement: any; HTMLOptGroupElement: any; HTMLOptionElement: any; HTMLOptionsCollection: any; HTMLOutputElement: any; HTMLParagraphElement: any; HTMLParamElement: any; HTMLPictureElement: any; HTMLPreElement: any; HTMLProgressElement: any; HTMLQuoteElement: any; HTMLScriptElement: any; HTMLSelectElement: any; HTMLSlotElement: any; HTMLSourceElement: any; HTMLSpanElement: any; HTMLStyleElement: any; HTMLTableCaptionElement: any; HTMLTableCellElement: any; HTMLTableColElement: any; HTMLTableElement: any; HTMLTableRowElement: any; HTMLTableSectionElement: any; HTMLTemplateElement: any; HTMLTextAreaElement: any; HTMLTimeElement: any; HTMLTitleElement: any; HTMLTrackElement: any; HTMLUListElement: any; HTMLUnknownElement: any; HTMLVideoElement: any; HashChangeEvent: any; Headers: any; Highlight: any; HighlightRegistry: any; History: any; IDBCursor: any; IDBCursorWithValue: any; IDBDatabase: any; IDBFactory: any; IDBIndex: any; IDBKeyRange: any; IDBObjectStore: any; IDBOpenDBRequest: any; IDBRequest: any; IDBTransaction: any; IDBVersionChangeEvent: any; IIRFilterNode: any; IdleDeadline: any; ImageBitmap: any; ImageBitmapRenderingContext: any; ImageData: any; ImageDecoder: any; ImageTrack: any; ImageTrackList: any; InputDeviceInfo: any; InputEvent: any; IntersectionObserver: any; IntersectionObserverEntry: any; KeyboardEvent: any; KeyframeEffect: any; LargestContentfulPaint: any; Location: any; Lock: any; LockManager: any; MIDIAccess: any; MIDIConnectionEvent: any; MIDIInput: any; MIDIInputMap: any; MIDIMessageEvent: any; MIDIOutput: any; MIDIOutputMap: any; MIDIPort: any; MathMLElement: any; MediaCapabilities: any; MediaDeviceInfo: any; MediaDevices: any; MediaElementAudioSourceNode: any; MediaEncryptedEvent: any; MediaError: any; MediaKeyMessageEvent: any; MediaKeySession: any; MediaKeyStatusMap: any; MediaKeySystemAccess: any; MediaKeys: any; MediaList: any; MediaMetadata: any; MediaQueryList: any; MediaQueryListEvent: any; MediaRecorder: any; MediaSession: any; MediaSource: any; MediaSourceHandle: any; MediaStream: any; MediaStreamAudioDestinationNode: any; MediaStreamAudioSourceNode: any; MediaStreamTrack: any; MediaStreamTrackEvent: any; MessageChannel: any; MessageEvent: any; MessagePort: any; MimeType: any; MimeTypeArray: any; MouseEvent: any; MutationObserver: any; MutationRecord: any; NamedNodeMap: any; NavigationActivation: any; NavigationHistoryEntry: any; NavigationPreloadManager: any; Navigator: any; Node: any; NodeIterator: any; NodeList: any; Notification: any; OfflineAudioCompletionEvent: any; OfflineAudioContext: any; OffscreenCanvas: any; OffscreenCanvasRenderingContext2D: any; OscillatorNode: any; OverconstrainedError: any; PageRevealEvent: any; PageSwapEvent: any; PageTransitionEvent: any; PannerNode: any; Path2D: any; PaymentAddress: any; PaymentMethodChangeEvent: any; PaymentRequest: any; PaymentRequestUpdateEvent: any; PaymentResponse: any; Performance: any; PerformanceEntry: any; PerformanceEventTiming: any; PerformanceMark: any; PerformanceMeasure: any; PerformanceNavigation: any; PerformanceNavigationTiming: any; PerformanceObserver: any; PerformanceObserverEntryList: any; PerformancePaintTiming: any; PerformanceResourceTiming: any; PerformanceServerTiming: any; PerformanceTiming: any; PeriodicWave: any; PermissionStatus: any; Permissions: any; PictureInPictureEvent: any; PictureInPictureWindow: any; Plugin: any; PluginArray: any; PointerEvent: any; PopStateEvent: any; ProcessingInstruction: any; ProgressEvent: any; PromiseRejectionEvent: any; PublicKeyCredential: any; PushManager: any; PushSubscription: any; PushSubscriptionOptions: any; RTCCertificate: any; RTCDTMFSender: any; RTCDTMFToneChangeEvent: any; RTCDataChannel: any; RTCDataChannelEvent: any; RTCDtlsTransport: any; RTCEncodedAudioFrame: any; RTCEncodedVideoFrame: any; RTCError: any; RTCErrorEvent: any; RTCIceCandidate: any; RTCIceTransport: any; RTCPeerConnection: any; RTCPeerConnectionIceErrorEvent: any; RTCPeerConnectionIceEvent: any; RTCRtpReceiver: any; RTCRtpScriptTransform: any; RTCRtpSender: any; RTCRtpTransceiver: any; RTCSctpTransport: any; RTCSessionDescription: any; RTCStatsReport: any; RTCTrackEvent: any; RadioNodeList: any; Range: any; ReadableByteStreamController: any; ReadableStream: any; ReadableStreamBYOBReader: any; ReadableStreamBYOBRequest: any; ReadableStreamDefaultController: any; ReadableStreamDefaultReader: any; RemotePlayback: any; Report: any; ReportBody: any; ReportingObserver: any; Request: any; ResizeObserver: any; ResizeObserverEntry: any; ResizeObserverSize: any; Response: any; SVGAElement: any; SVGAngle: any; SVGAnimateElement: any; SVGAnimateMotionElement: any; SVGAnimateTransformElement: any; SVGAnimatedAngle: any; SVGAnimatedBoolean: any; SVGAnimatedEnumeration: any; SVGAnimatedInteger: any; SVGAnimatedLength: any; SVGAnimatedLengthList: any; SVGAnimatedNumber: any; SVGAnimatedNumberList: any; SVGAnimatedPreserveAspectRatio: any; SVGAnimatedRect: any; SVGAnimatedString: any; SVGAnimatedTransformList: any; SVGAnimationElement: any; SVGCircleElement: any; SVGClipPathElement: any; SVGComponentTransferFunctionElement: any; SVGDefsElement: any; SVGDescElement: any; SVGElement: any; SVGEllipseElement: any; SVGFEBlendElement: any; SVGFEColorMatrixElement: any; SVGFEComponentTransferElement: any; SVGFECompositeElement: any; SVGFEConvolveMatrixElement: any; SVGFEDiffuseLightingElement: any; SVGFEDisplacementMapElement: any; SVGFEDistantLightElement: any; SVGFEDropShadowElement: any; SVGFEFloodElement: any; SVGFEFuncAElement: any; SVGFEFuncBElement: any; SVGFEFuncGElement: any; SVGFEFuncRElement: any; SVGFEGaussianBlurElement: any; SVGFEImageElement: any; SVGFEMergeElement: any; SVGFEMergeNodeElement: any; SVGFEMorphologyElement: any; SVGFEOffsetElement: any; SVGFEPointLightElement: any; SVGFESpecularLightingElement: any; SVGFESpotLightElement: any; SVGFETileElement: any; SVGFETurbulenceElement: any; SVGFilterElement: any; SVGForeignObjectElement: any; SVGGElement: any; SVGGeometryElement: any; SVGGradientElement: any; SVGGraphicsElement: any; SVGImageElement: any; SVGLength: any; SVGLengthList: any; SVGLineElement: any; SVGLinearGradientElement: any; SVGMPathElement: any; SVGMarkerElement: any; SVGMaskElement: any; SVGMetadataElement: any; SVGNumber: any; SVGNumberList: any; SVGPathElement: any; SVGPatternElement: any; SVGPointList: any; SVGPolygonElement: any; SVGPolylineElement: any; SVGPreserveAspectRatio: any; SVGRadialGradientElement: any; SVGRectElement: any; SVGSVGElement: any; SVGScriptElement: any; SVGSetElement: any; SVGStopElement: any; SVGStringList: any; SVGStyleElement: any; SVGSwitchElement: any; SVGSymbolElement: any; SVGTSpanElement: any; SVGTextContentElement: any; SVGTextElement: any; SVGTextPathElement: any; SVGTextPositioningElement: any; SVGTitleElement: any; SVGTransform: any; SVGTransformList: any; SVGUnitTypes: any; SVGUseElement: any; SVGViewElement: any; Screen: any; ScreenOrientation: any; ScriptProcessorNode: any; SecurityPolicyViolationEvent: any; Selection: any; ServiceWorker: any; ServiceWorkerContainer: any; ServiceWorkerRegistration: any; ShadowRoot: any; SharedWorker: any; SourceBuffer: any; SourceBufferList: any; SpeechRecognitionAlternative: any; SpeechRecognitionResult: any; SpeechRecognitionResultList: any; SpeechSynthesis: any; SpeechSynthesisErrorEvent: any; SpeechSynthesisEvent: any; SpeechSynthesisUtterance: any; SpeechSynthesisVoice: any; StaticRange: any; StereoPannerNode: any; Storage: any; StorageEvent: any; StorageManager: any; StylePropertyMap: any; StylePropertyMapReadOnly: any; StyleSheet: any; StyleSheetList: any; SubmitEvent: any; SubtleCrypto: any; Text: any; TextDecoder: any; TextDecoderStream: any; TextEncoder: any; TextEncoderStream: any; TextEvent: any; TextMetrics: any; TextTrack: any; TextTrackCue: any; TextTrackCueList: any; TextTrackList: any; TimeRanges: any; ToggleEvent: any; Touch: any; TouchEvent: any; TouchList: any; TrackEvent: any; TransformStream: any; TransformStreamDefaultController: any; TransitionEvent: any; TreeWalker: any; UIEvent: any; URL: any; webkitURL: any; URLSearchParams: any; UserActivation: any; VTTCue: any; VTTRegion: any; ValidityState: any; VideoColorSpace: any; VideoDecoder: any; VideoEncoder: any; VideoFrame: any; VideoPlaybackQuality: any; ViewTransition: any; ViewTransitionTypeSet: any; VisualViewport: any; WakeLock: any; WakeLockSentinel: any; WaveShaperNode: any; WebGL2RenderingContext: any; WebGLActiveInfo: any; WebGLBuffer: any; WebGLContextEvent: any; WebGLFramebuffer: any; WebGLProgram: any; WebGLQuery: any; WebGLRenderbuffer: any; WebGLRenderingContext: any; WebGLSampler: any; WebGLShader: any; WebGLShaderPrecisionFormat: any; WebGLSync: any; WebGLTexture: any; WebGLTransformFeedback: any; WebGLUniformLocation: any; WebGLVertexArrayObject: any; WebSocket: any; WebTransport: any; WebTransportBidirectionalStream: any; WebTransportDatagramDuplexStream: any; WebTransportError: any; WheelEvent: any; Window: any; clientInformation: any; closed: any; customElements: any; devicePixelRatio: any; document: any; event: any; external: any; frameElement: any; frames: any; history: any; innerHeight: any; innerWidth: any; length: any; location: any; locationbar: any; menubar: any; name: any; navigator: any; ondevicemotion: any; ondeviceorientation: any; ondeviceorientationabsolute: any; onorientationchange: any; opener: any; orientation: any; outerHeight: any; outerWidth: any; pageXOffset: any; pageYOffset: any; parent: any; personalbar: any; screen: any; screenLeft: any; screenTop: any; screenX: any; screenY: any; scrollX: any; scrollY: any; scrollbars: any; self: any; speechSynthesis: any; status: any; statusbar: any; toolbar: any; top: any; visualViewport: any; window: any; alert: any; blur: any; cancelIdleCallback: any; captureEvents: any; close: any; confirm: any; focus: any; getComputedStyle: any; getSelection: any; matchMedia: any; moveBy: any; moveTo: any; open: any; postMessage: any; print: any; prompt: any; releaseEvents: any; requestIdleCallback: any; resizeBy: any; resizeTo: any; scroll: any; scrollBy: any; scrollTo: any; stop: any; addEventListener: any; removeEventListener: any; onafterprint: any; onbeforeprint: any; onbeforeunload: any; ongamepadconnected: any; ongamepaddisconnected: any; onhashchange: any; onlanguagechange: any; onmessage: any; onmessageerror: any; onoffline: any; ononline: any; onpagehide: any; onpagereveal: any; onpageshow: any; onpageswap: any; onpopstate: any; onrejectionhandled: any; onstorage: any; onunhandledrejection: any; onunload: any; localStorage: any; caches: any; crossOriginIsolated: any; crypto: any; indexedDB: any; isSecureContext: any; origin: any; performance: any; atob: any; btoa: any; clearInterval: any; clearTimeout: any; createImageBitmap: any; fetch: any; queueMicrotask: any; reportError: any; setInterval: any; setTimeout: any; structuredClone: any; sessionStorage: any; Worker: any; Worklet: any; WritableStream: any; WritableStreamDefaultController: any; WritableStreamDefaultWriter: any; XMLDocument: any; XMLHttpRequest: any; XMLHttpRequestEventTarget: any; XMLHttpRequestUpload: any; XMLSerializer: any; XPathEvaluator: any; XPathExpression: any; XPathResult: any; XSLTProcessor: any; console: any; CSS: any; WebAssembly: any; Audio: any; Image: any; Option: any; toString: any; Map: any; WeakMap: any; Set: any; WeakSet: any; Proxy: any; Reflect: any; foo: any; readonly globalThis: any; undefined: any; }; designMode: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; dir: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly doctype: { after: any; before: any; remove: any; replaceWith: any; readonly name: any; readonly ownerDocument: any; readonly publicId: any; readonly systemId: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; }; readonly documentElement: { ariaAtomic: any; ariaAutoComplete: any; ariaBrailleLabel: any; ariaBrailleRoleDescription: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColIndexText: any; ariaColSpan: any; ariaCurrent: any; ariaDescription: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaInvalid: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRelevant: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowIndexText: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; role: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; readonly attributes: any; classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; readonly currentCSSZoom: any; id: any; innerHTML: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; checkVisibility: any; closest: any; computedStyleMap: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; getHTML: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setHTMLUnsafe: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; readonly attributeStyleMap: any; style: any; contentEditable: any; enterKeyHint: any; inputMode: any; readonly isContentEditable: any; dispatchEvent: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onbeforeinput: any; onbeforetoggle: any; onblur: any; oncancel: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextlost: any; oncontextmenu: any; oncontextrestored: any; oncopy: any; oncuechange: any; oncut: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpaste: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onscrollend: any; onsecuritypolicyviolation: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onslotchange: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; accessKey: any; readonly accessKeyLabel: any; autocapitalize: any; dir: any; draggable: any; hidden: any; inert: any; innerText: any; lang: any; readonly offsetHeight: any; readonly offsetLeft: any; readonly offsetParent: any; readonly offsetTop: any; readonly offsetWidth: any; outerText: any; popover: any; spellcheck: any; title: any; translate: any; writingSuggestions: any; attachInternals: any; click: any; hidePopover: any; showPopover: any; togglePopover: any; addEventListener: any; removeEventListener: any; autofocus: any; readonly dataset: any; nonce?: any; tabIndex: any; blur: any; focus: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly documentURI: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; domain: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly embeds: { readonly length: any; item: any; namedItem: any; }; fgColor: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly forms: { readonly length: any; item: any; namedItem: any; }; readonly fragmentDirective: unknown; readonly fullscreen: { valueOf: any; }; readonly fullscreenEnabled: { valueOf: any; }; readonly head: { ariaAtomic: any; ariaAutoComplete: any; ariaBrailleLabel: any; ariaBrailleRoleDescription: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColIndexText: any; ariaColSpan: any; ariaCurrent: any; ariaDescription: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaInvalid: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRelevant: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowIndexText: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; role: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; readonly attributes: any; classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; readonly currentCSSZoom: any; id: any; innerHTML: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; checkVisibility: any; closest: any; computedStyleMap: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; getHTML: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setHTMLUnsafe: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; readonly attributeStyleMap: any; style: any; contentEditable: any; enterKeyHint: any; inputMode: any; readonly isContentEditable: any; dispatchEvent: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onbeforeinput: any; onbeforetoggle: any; onblur: any; oncancel: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextlost: any; oncontextmenu: any; oncontextrestored: any; oncopy: any; oncuechange: any; oncut: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpaste: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onscrollend: any; onsecuritypolicyviolation: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onslotchange: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; accessKey: any; readonly accessKeyLabel: any; autocapitalize: any; dir: any; draggable: any; hidden: any; inert: any; innerText: any; lang: any; readonly offsetHeight: any; readonly offsetLeft: any; readonly offsetParent: any; readonly offsetTop: any; readonly offsetWidth: any; outerText: any; popover: any; spellcheck: any; title: any; translate: any; writingSuggestions: any; attachInternals: any; click: any; hidePopover: any; showPopover: any; togglePopover: any; addEventListener: any; removeEventListener: any; autofocus: any; readonly dataset: any; nonce?: any; tabIndex: any; blur: any; focus: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly hidden: { valueOf: any; }; readonly images: { readonly length: any; item: any; namedItem: any; }; readonly implementation: { createDocument: any; createDocumentType: any; createHTMLDocument: any; hasFeature: any; }; readonly inputEncoding: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly lastModified: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; linkColor: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly links: { readonly length: any; item: any; namedItem: any; }; location: { readonly ancestorOrigins: any; hash: any; host: any; hostname: any; href: any; toString: any; readonly origin: any; pathname: any; port: any; protocol: any; search: any; assign: any; reload: any; replace: any; }; onfullscreenchange: unknown; onfullscreenerror: unknown; onpointerlockchange: unknown; onpointerlockerror: unknown; onreadystatechange: unknown; onvisibilitychange: unknown; readonly ownerDocument: unknown; readonly pictureInPictureEnabled: { valueOf: any; }; readonly plugins: { readonly length: any; item: any; namedItem: any; }; readonly readyState: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly referrer: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly rootElement: { ariaAtomic: any; ariaAutoComplete: any; ariaBrailleLabel: any; ariaBrailleRoleDescription: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColIndexText: any; ariaColSpan: any; ariaCurrent: any; ariaDescription: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaInvalid: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRelevant: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowIndexText: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; role: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; readonly attributes: any; classList: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; readonly currentCSSZoom: any; id: any; innerHTML: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; checkVisibility: any; closest: any; computedStyleMap: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; getHTML: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setHTMLUnsafe: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; readonly attributeStyleMap: any; style: any; dispatchEvent: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onbeforeinput: any; onbeforetoggle: any; onblur: any; oncancel: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextlost: any; oncontextmenu: any; oncontextrestored: any; oncopy: any; oncuechange: any; oncut: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpaste: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onscrollend: any; onsecuritypolicyviolation: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onslotchange: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; autofocus: any; readonly dataset: any; nonce?: any; tabIndex: any; blur: any; focus: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly className: any; readonly ownerSVGElement: any; readonly viewportElement: any; readonly preserveAspectRatio: any; readonly viewBox: any; readonly transform: any; getBBox: any; getCTM: any; getScreenCTM: any; currentScale: any; readonly currentTranslate: any; readonly height: any; readonly width: any; readonly x: any; readonly y: any; animationsPaused: any; checkEnclosure: any; checkIntersection: any; createSVGAngle: any; createSVGLength: any; createSVGMatrix: any; createSVGNumber: any; createSVGPoint: any; createSVGRect: any; createSVGTransform: any; createSVGTransformFromMatrix: any; deselectAll: any; forceRedraw: any; getCurrentTime: any; getElementById: any; getEnclosureList: any; getIntersectionList: any; pauseAnimations: any; setCurrentTime: any; suspendRedraw: any; unpauseAnimations: any; unsuspendRedraw: any; unsuspendRedrawAll: any; addEventListener: any; removeEventListener: any; readonly requiredExtensions: any; readonly systemLanguage: any; readonly assignedSlot: any; onafterprint: any; onbeforeprint: any; onbeforeunload: any; ongamepadconnected: any; ongamepaddisconnected: any; onhashchange: any; onlanguagechange: any; onmessage: any; onmessageerror: any; onoffline: any; ononline: any; onpagehide: any; onpagereveal: any; onpageshow: any; onpageswap: any; onpopstate: any; onrejectionhandled: any; onstorage: any; onunhandledrejection: any; onunload: any; }; readonly scripts: { readonly length: any; item: any; namedItem: any; }; readonly scrollingElement: { ariaAtomic: any; ariaAutoComplete: any; ariaBrailleLabel: any; ariaBrailleRoleDescription: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColIndexText: any; ariaColSpan: any; ariaCurrent: any; ariaDescription: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaInvalid: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRelevant: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowIndexText: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; role: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; readonly attributes: any; classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; readonly currentCSSZoom: any; id: any; innerHTML: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; checkVisibility: any; closest: any; computedStyleMap: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; getHTML: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setHTMLUnsafe: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; dispatchEvent: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly timeline: { readonly currentTime: any; }; title: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly visibilityState: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; vlinkColor: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; adoptNode: unknown; captureEvents: unknown; caretPositionFromPoint: unknown; caretRangeFromPoint: unknown; clear: unknown; close: unknown; createAttribute: unknown; createAttributeNS: unknown; createCDATASection: unknown; createComment: unknown; createDocumentFragment: unknown; createElement: unknown; createElementNS: unknown; createEvent: unknown; createNodeIterator: unknown; createProcessingInstruction: unknown; createRange: unknown; createTextNode: unknown; createTreeWalker: unknown; execCommand: unknown; exitFullscreen: unknown; exitPictureInPicture: unknown; exitPointerLock: unknown; getElementById: unknown; getElementsByClassName: unknown; getElementsByName: unknown; getElementsByTagName: unknown; getElementsByTagNameNS: unknown; getSelection: unknown; hasFocus: unknown; hasStorageAccess: unknown; importNode: unknown; open: unknown; queryCommandEnabled: unknown; queryCommandIndeterm: unknown; queryCommandState: unknown; queryCommandSupported: unknown; queryCommandValue: unknown; releaseEvents: unknown; requestStorageAccess: unknown; startViewTransition: unknown; write: unknown; writeln: unknown; addEventListener: unknown; removeEventListener: unknown; readonly activeElement: { ariaAtomic: any; ariaAutoComplete: any; ariaBrailleLabel: any; ariaBrailleRoleDescription: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColIndexText: any; ariaColSpan: any; ariaCurrent: any; ariaDescription: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaInvalid: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRelevant: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowIndexText: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; role: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; readonly attributes: any; classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; readonly currentCSSZoom: any; id: any; innerHTML: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; checkVisibility: any; closest: any; computedStyleMap: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; getHTML: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setHTMLUnsafe: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; dispatchEvent: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; adoptedStyleSheets: { readonly cssRules: any; readonly ownerRule: any; readonly rules: any; addRule: any; deleteRule: any; insertRule: any; removeRule: any; replace: any; replaceSync: any; disabled: any; readonly href: any; media: any; readonly ownerNode: any; readonly parentStyleSheet: any; readonly title: any; readonly type: any; }[]; readonly fullscreenElement: { ariaAtomic: any; ariaAutoComplete: any; ariaBrailleLabel: any; ariaBrailleRoleDescription: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColIndexText: any; ariaColSpan: any; ariaCurrent: any; ariaDescription: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaInvalid: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRelevant: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowIndexText: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; role: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; readonly attributes: any; classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; readonly currentCSSZoom: any; id: any; innerHTML: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; checkVisibility: any; closest: any; computedStyleMap: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; getHTML: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setHTMLUnsafe: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; dispatchEvent: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly pictureInPictureElement: { ariaAtomic: any; ariaAutoComplete: any; ariaBrailleLabel: any; ariaBrailleRoleDescription: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColIndexText: any; ariaColSpan: any; ariaCurrent: any; ariaDescription: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaInvalid: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRelevant: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowIndexText: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; role: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; readonly attributes: any; classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; readonly currentCSSZoom: any; id: any; innerHTML: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; checkVisibility: any; closest: any; computedStyleMap: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; getHTML: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setHTMLUnsafe: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; dispatchEvent: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly pointerLockElement: { ariaAtomic: any; ariaAutoComplete: any; ariaBrailleLabel: any; ariaBrailleRoleDescription: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColIndexText: any; ariaColSpan: any; ariaCurrent: any; ariaDescription: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaInvalid: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRelevant: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowIndexText: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; role: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; readonly attributes: any; classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; readonly currentCSSZoom: any; id: any; innerHTML: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; checkVisibility: any; closest: any; computedStyleMap: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; getHTML: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setHTMLUnsafe: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; dispatchEvent: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly styleSheets: { readonly length: any; item: any; }; elementFromPoint: unknown; elementsFromPoint: unknown; getAnimations: unknown; dispatchEvent: unknown; readonly fonts: { dispatchEvent: any; onloading: any; onloadingdone: any; onloadingerror: any; readonly ready: any; readonly status: any; check: any; load: any; forEach: any; addEventListener: any; removeEventListener: any; }; onabort: unknown; onanimationcancel: unknown; onanimationend: unknown; onanimationiteration: unknown; onanimationstart: unknown; onauxclick: unknown; onbeforeinput: unknown; onbeforetoggle: unknown; onblur: unknown; oncancel: unknown; oncanplay: unknown; oncanplaythrough: unknown; onchange: unknown; onclick: unknown; onclose: unknown; oncontextlost: unknown; oncontextmenu: unknown; oncontextrestored: unknown; oncopy: unknown; oncuechange: unknown; oncut: unknown; ondblclick: unknown; ondrag: unknown; ondragend: unknown; ondragenter: unknown; ondragleave: unknown; ondragover: unknown; ondragstart: unknown; ondrop: unknown; ondurationchange: unknown; onemptied: unknown; onended: unknown; onerror: unknown; onfocus: unknown; onformdata: unknown; ongotpointercapture: unknown; oninput: unknown; oninvalid: unknown; onkeydown: unknown; onkeypress: unknown; onkeyup: unknown; onload: unknown; onloadeddata: unknown; onloadedmetadata: unknown; onloadstart: unknown; onlostpointercapture: unknown; onmousedown: unknown; onmouseenter: unknown; onmouseleave: unknown; onmousemove: unknown; onmouseout: unknown; onmouseover: unknown; onmouseup: unknown; onpaste: unknown; onpause: unknown; onplay: unknown; onplaying: unknown; onpointercancel: unknown; onpointerdown: unknown; onpointerenter: unknown; onpointerleave: unknown; onpointermove: unknown; onpointerout: unknown; onpointerover: unknown; onpointerup: unknown; onprogress: unknown; onratechange: unknown; onreset: unknown; onresize: unknown; onscroll: unknown; onscrollend: unknown; onsecuritypolicyviolation: unknown; onseeked: unknown; onseeking: unknown; onselect: unknown; onselectionchange: unknown; onselectstart: unknown; onslotchange: unknown; onstalled: unknown; onsubmit: unknown; onsuspend: unknown; ontimeupdate: unknown; ontoggle: unknown; ontouchcancel?: unknown; ontouchend?: unknown; ontouchmove?: unknown; ontouchstart?: unknown; ontransitioncancel: unknown; ontransitionend: unknown; ontransitionrun: unknown; ontransitionstart: unknown; onvolumechange: unknown; onwaiting: unknown; onwebkitanimationend: unknown; onwebkitanimationiteration: unknown; onwebkitanimationstart: unknown; onwebkittransitionend: unknown; onwheel: unknown; readonly baseURI: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly childNodes: { readonly length: any; item: any; forEach: any; }; readonly firstChild: { after: any; before: any; remove: any; replaceWith: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; }; readonly isConnected: { valueOf: any; }; readonly lastChild: { after: any; before: any; remove: any; replaceWith: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; }; readonly nextSibling: { after: any; before: any; remove: any; replaceWith: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; }; readonly nodeName: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly nodeType: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; nodeValue: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly parentElement: { ariaAtomic: any; ariaAutoComplete: any; ariaBrailleLabel: any; ariaBrailleRoleDescription: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColIndexText: any; ariaColSpan: any; ariaCurrent: any; ariaDescription: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaInvalid: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRelevant: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowIndexText: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; role: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; readonly attributes: any; classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; readonly currentCSSZoom: any; id: any; innerHTML: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; checkVisibility: any; closest: any; computedStyleMap: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; getHTML: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setHTMLUnsafe: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; readonly attributeStyleMap: any; style: any; contentEditable: any; enterKeyHint: any; inputMode: any; readonly isContentEditable: any; dispatchEvent: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onbeforeinput: any; onbeforetoggle: any; onblur: any; oncancel: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextlost: any; oncontextmenu: any; oncontextrestored: any; oncopy: any; oncuechange: any; oncut: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpaste: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onscrollend: any; onsecuritypolicyviolation: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onslotchange: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; accessKey: any; readonly accessKeyLabel: any; autocapitalize: any; dir: any; draggable: any; hidden: any; inert: any; innerText: any; lang: any; readonly offsetHeight: any; readonly offsetLeft: any; readonly offsetParent: any; readonly offsetTop: any; readonly offsetWidth: any; outerText: any; popover: any; spellcheck: any; title: any; translate: any; writingSuggestions: any; attachInternals: any; click: any; hidePopover: any; showPopover: any; togglePopover: any; addEventListener: any; removeEventListener: any; autofocus: any; readonly dataset: any; nonce?: any; tabIndex: any; blur: any; focus: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly parentNode: { addEventListener: any; dispatchEvent: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; }; readonly previousSibling: { after: any; before: any; remove: any; replaceWith: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; }; textContent: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; appendChild: unknown; cloneNode: unknown; compareDocumentPosition: unknown; contains: unknown; getRootNode: unknown; hasChildNodes: unknown; insertBefore: unknown; isDefaultNamespace: unknown; isEqualNode: unknown; isSameNode: unknown; lookupNamespaceURI: unknown; lookupPrefix: unknown; normalize: unknown; removeChild: unknown; replaceChild: unknown; readonly ELEMENT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly ATTRIBUTE_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly TEXT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly CDATA_SECTION_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly ENTITY_REFERENCE_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly ENTITY_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly PROCESSING_INSTRUCTION_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly COMMENT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_TYPE_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_FRAGMENT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly NOTATION_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_DISCONNECTED: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_PRECEDING: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_FOLLOWING: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_CONTAINS: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_CONTAINED_BY: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly childElementCount: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly children: { readonly length: any; item: any; namedItem: any; }; readonly firstElementChild: { ariaAtomic: any; ariaAutoComplete: any; ariaBrailleLabel: any; ariaBrailleRoleDescription: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColIndexText: any; ariaColSpan: any; ariaCurrent: any; ariaDescription: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaInvalid: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRelevant: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowIndexText: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; role: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; readonly attributes: any; classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; readonly currentCSSZoom: any; id: any; innerHTML: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; checkVisibility: any; closest: any; computedStyleMap: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; getHTML: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setHTMLUnsafe: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; dispatchEvent: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly lastElementChild: { ariaAtomic: any; ariaAutoComplete: any; ariaBrailleLabel: any; ariaBrailleRoleDescription: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColIndexText: any; ariaColSpan: any; ariaCurrent: any; ariaDescription: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaInvalid: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRelevant: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowIndexText: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; role: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; readonly attributes: any; classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; readonly currentCSSZoom: any; id: any; innerHTML: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; checkVisibility: any; closest: any; computedStyleMap: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; getHTML: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setHTMLUnsafe: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; dispatchEvent: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; append: unknown; prepend: unknown; querySelector: unknown; querySelectorAll: unknown; replaceChildren: unknown; createExpression: unknown; createNSResolver: unknown; evaluate: unknown; } + +out2.responseXML.activeElement.className.length +>out2.responseXML.activeElement.className.length : { toString: unknown; toFixed: unknown; toExponential: unknown; toPrecision: unknown; valueOf: unknown; toLocaleString: unknown; } +>out2.responseXML.activeElement.className : { toString: unknown; charAt: unknown; charCodeAt: unknown; concat: unknown; indexOf: unknown; lastIndexOf: unknown; localeCompare: unknown; match: unknown; replace: unknown; search: unknown; slice: unknown; split: unknown; substring: unknown; toLowerCase: unknown; toLocaleLowerCase: unknown; toUpperCase: unknown; toLocaleUpperCase: unknown; trim: unknown; readonly length: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; substr: unknown; valueOf: unknown; codePointAt: unknown; includes: unknown; endsWith: unknown; normalize: unknown; repeat: unknown; startsWith: unknown; anchor: unknown; big: unknown; blink: unknown; bold: unknown; fixed: unknown; fontcolor: unknown; fontsize: unknown; italics: unknown; link: unknown; small: unknown; strike: unknown; sub: unknown; sup: unknown; [Symbol.iterator]: unknown; } +>out2.responseXML.activeElement : { ariaAtomic: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaAutoComplete: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaBrailleLabel: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaBrailleRoleDescription: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaBusy: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaChecked: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaColCount: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaColIndex: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaColIndexText: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaColSpan: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaCurrent: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaDescription: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaDisabled: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaExpanded: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaHasPopup: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaHidden: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaInvalid: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaKeyShortcuts: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaLabel: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaLevel: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaLive: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaModal: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaMultiLine: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaMultiSelectable: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaOrientation: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaPlaceholder: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaPosInSet: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaPressed: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaReadOnly: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaRelevant: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaRequired: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaRoleDescription: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaRowCount: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaRowIndex: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaRowIndexText: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaRowSpan: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaSelected: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaSetSize: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaSort: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaValueMax: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaValueMin: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaValueNow: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaValueText: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; role: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; animate: unknown; getAnimations: unknown; after: unknown; before: unknown; remove: unknown; replaceWith: unknown; readonly attributes: { readonly length: any; getNamedItem: any; getNamedItemNS: any; item: any; removeNamedItem: any; removeNamedItemNS: any; setNamedItem: any; setNamedItemNS: any; }; classList: { readonly length: any; value: any; toString: any; add: any; contains: any; item: any; remove: any; replace: any; supports: any; toggle: any; forEach: any; }; className: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly clientHeight: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly clientLeft: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly clientTop: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly clientWidth: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly currentCSSZoom: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; id: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; innerHTML: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly localName: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly namespaceURI: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; onfullscreenchange: unknown; onfullscreenerror: unknown; outerHTML: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly ownerDocument: { readonly URL: any; alinkColor: any; readonly all: any; readonly anchors: any; readonly applets: any; bgColor: any; body: any; readonly characterSet: any; readonly charset: any; readonly compatMode: any; readonly contentType: any; cookie: any; readonly currentScript: any; readonly defaultView: any; designMode: any; dir: any; readonly doctype: any; readonly documentElement: any; readonly documentURI: any; domain: any; readonly embeds: any; fgColor: any; readonly forms: any; readonly fragmentDirective: any; readonly fullscreen: any; readonly fullscreenEnabled: any; readonly head: any; readonly hidden: any; readonly images: any; readonly implementation: any; readonly inputEncoding: any; readonly lastModified: any; linkColor: any; readonly links: any; location: any; onfullscreenchange: any; onfullscreenerror: any; onpointerlockchange: any; onpointerlockerror: any; onreadystatechange: any; onvisibilitychange: any; readonly ownerDocument: any; readonly pictureInPictureEnabled: any; readonly plugins: any; readonly readyState: any; readonly referrer: any; readonly rootElement: any; readonly scripts: any; readonly scrollingElement: any; readonly timeline: any; title: any; readonly visibilityState: any; vlinkColor: any; adoptNode: any; captureEvents: any; caretPositionFromPoint: any; caretRangeFromPoint: any; clear: any; close: any; createAttribute: any; createAttributeNS: any; createCDATASection: any; createComment: any; createDocumentFragment: any; createElement: any; createElementNS: any; createEvent: any; createNodeIterator: any; createProcessingInstruction: any; createRange: any; createTextNode: any; createTreeWalker: any; execCommand: any; exitFullscreen: any; exitPictureInPicture: any; exitPointerLock: any; getElementById: any; getElementsByClassName: any; getElementsByName: any; getElementsByTagName: any; getElementsByTagNameNS: any; getSelection: any; hasFocus: any; hasStorageAccess: any; importNode: any; open: any; queryCommandEnabled: any; queryCommandIndeterm: any; queryCommandState: any; queryCommandSupported: any; queryCommandValue: any; releaseEvents: any; requestStorageAccess: any; startViewTransition: any; write: any; writeln: any; addEventListener: any; removeEventListener: any; readonly activeElement: any; adoptedStyleSheets: any; readonly fullscreenElement: any; readonly pictureInPictureElement: any; readonly pointerLockElement: any; readonly styleSheets: any; elementFromPoint: any; elementsFromPoint: any; getAnimations: any; dispatchEvent: any; readonly fonts: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onbeforeinput: any; onbeforetoggle: any; onblur: any; oncancel: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextlost: any; oncontextmenu: any; oncontextrestored: any; oncopy: any; oncuechange: any; oncut: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpaste: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onscrollend: any; onsecuritypolicyviolation: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onslotchange: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; createExpression: any; createNSResolver: any; evaluate: any; }; part: { readonly length: any; value: any; toString: any; add: any; contains: any; item: any; remove: any; replace: any; supports: any; toggle: any; forEach: any; }; readonly prefix: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly scrollHeight: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; scrollLeft: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; scrollTop: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly scrollWidth: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly shadowRoot: { readonly ownerDocument: any; getElementById: any; readonly activeElement: any; adoptedStyleSheets: any; readonly fullscreenElement: any; readonly pictureInPictureElement: any; readonly pointerLockElement: any; readonly styleSheets: any; elementFromPoint: any; elementsFromPoint: any; getAnimations: any; dispatchEvent: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly clonable: any; readonly delegatesFocus: any; readonly host: any; innerHTML: any; readonly mode: any; onslotchange: any; readonly serializable: any; readonly slotAssignment: any; getHTML: any; setHTMLUnsafe: any; addEventListener: any; removeEventListener: any; }; slot: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly tagName: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; attachShadow: unknown; checkVisibility: unknown; closest: unknown; computedStyleMap: unknown; getAttribute: unknown; getAttributeNS: unknown; getAttributeNames: unknown; getAttributeNode: unknown; getAttributeNodeNS: unknown; getBoundingClientRect: unknown; getClientRects: unknown; getElementsByClassName: unknown; getElementsByTagName: unknown; getElementsByTagNameNS: unknown; getHTML: unknown; hasAttribute: unknown; hasAttributeNS: unknown; hasAttributes: unknown; hasPointerCapture: unknown; insertAdjacentElement: unknown; insertAdjacentHTML: unknown; insertAdjacentText: unknown; matches: unknown; releasePointerCapture: unknown; removeAttribute: unknown; removeAttributeNS: unknown; removeAttributeNode: unknown; requestFullscreen: unknown; requestPointerLock: unknown; scroll: unknown; scrollBy: unknown; scrollIntoView: unknown; scrollTo: unknown; setAttribute: unknown; setAttributeNS: unknown; setAttributeNode: unknown; setAttributeNodeNS: unknown; setHTMLUnsafe: unknown; setPointerCapture: unknown; toggleAttribute: unknown; webkitMatchesSelector: unknown; addEventListener: unknown; removeEventListener: unknown; dispatchEvent: unknown; readonly baseURI: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly childNodes: { readonly length: any; item: any; forEach: any; }; readonly firstChild: { after: any; before: any; remove: any; replaceWith: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; }; readonly isConnected: { valueOf: any; }; readonly lastChild: { after: any; before: any; remove: any; replaceWith: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; }; readonly nextSibling: { after: any; before: any; remove: any; replaceWith: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; }; readonly nodeName: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly nodeType: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; nodeValue: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly parentElement: { ariaAtomic: any; ariaAutoComplete: any; ariaBrailleLabel: any; ariaBrailleRoleDescription: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColIndexText: any; ariaColSpan: any; ariaCurrent: any; ariaDescription: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaInvalid: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRelevant: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowIndexText: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; role: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; readonly attributes: any; classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; readonly currentCSSZoom: any; id: any; innerHTML: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; checkVisibility: any; closest: any; computedStyleMap: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; getHTML: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setHTMLUnsafe: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; readonly attributeStyleMap: any; style: any; contentEditable: any; enterKeyHint: any; inputMode: any; readonly isContentEditable: any; dispatchEvent: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onbeforeinput: any; onbeforetoggle: any; onblur: any; oncancel: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextlost: any; oncontextmenu: any; oncontextrestored: any; oncopy: any; oncuechange: any; oncut: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpaste: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onscrollend: any; onsecuritypolicyviolation: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onslotchange: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; accessKey: any; readonly accessKeyLabel: any; autocapitalize: any; dir: any; draggable: any; hidden: any; inert: any; innerText: any; lang: any; readonly offsetHeight: any; readonly offsetLeft: any; readonly offsetParent: any; readonly offsetTop: any; readonly offsetWidth: any; outerText: any; popover: any; spellcheck: any; title: any; translate: any; writingSuggestions: any; attachInternals: any; click: any; hidePopover: any; showPopover: any; togglePopover: any; addEventListener: any; removeEventListener: any; autofocus: any; readonly dataset: any; nonce?: any; tabIndex: any; blur: any; focus: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly parentNode: { addEventListener: any; dispatchEvent: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; }; readonly previousSibling: { after: any; before: any; remove: any; replaceWith: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; }; textContent: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; appendChild: unknown; cloneNode: unknown; compareDocumentPosition: unknown; contains: unknown; getRootNode: unknown; hasChildNodes: unknown; insertBefore: unknown; isDefaultNamespace: unknown; isEqualNode: unknown; isSameNode: unknown; lookupNamespaceURI: unknown; lookupPrefix: unknown; normalize: unknown; removeChild: unknown; replaceChild: unknown; readonly ELEMENT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly ATTRIBUTE_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly TEXT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly CDATA_SECTION_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly ENTITY_REFERENCE_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly ENTITY_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly PROCESSING_INSTRUCTION_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly COMMENT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_TYPE_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_FRAGMENT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly NOTATION_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_DISCONNECTED: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_PRECEDING: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_FOLLOWING: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_CONTAINS: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_CONTAINED_BY: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly nextElementSibling: { ariaAtomic: any; ariaAutoComplete: any; ariaBrailleLabel: any; ariaBrailleRoleDescription: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColIndexText: any; ariaColSpan: any; ariaCurrent: any; ariaDescription: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaInvalid: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRelevant: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowIndexText: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; role: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; readonly attributes: any; classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; readonly currentCSSZoom: any; id: any; innerHTML: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; checkVisibility: any; closest: any; computedStyleMap: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; getHTML: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setHTMLUnsafe: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; dispatchEvent: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly previousElementSibling: { ariaAtomic: any; ariaAutoComplete: any; ariaBrailleLabel: any; ariaBrailleRoleDescription: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColIndexText: any; ariaColSpan: any; ariaCurrent: any; ariaDescription: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaInvalid: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRelevant: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowIndexText: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; role: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; readonly attributes: any; classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; readonly currentCSSZoom: any; id: any; innerHTML: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; checkVisibility: any; closest: any; computedStyleMap: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; getHTML: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setHTMLUnsafe: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; dispatchEvent: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly childElementCount: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly children: { readonly length: any; item: any; namedItem: any; }; readonly firstElementChild: { ariaAtomic: any; ariaAutoComplete: any; ariaBrailleLabel: any; ariaBrailleRoleDescription: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColIndexText: any; ariaColSpan: any; ariaCurrent: any; ariaDescription: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaInvalid: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRelevant: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowIndexText: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; role: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; readonly attributes: any; classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; readonly currentCSSZoom: any; id: any; innerHTML: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; checkVisibility: any; closest: any; computedStyleMap: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; getHTML: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setHTMLUnsafe: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; dispatchEvent: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly lastElementChild: { ariaAtomic: any; ariaAutoComplete: any; ariaBrailleLabel: any; ariaBrailleRoleDescription: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColIndexText: any; ariaColSpan: any; ariaCurrent: any; ariaDescription: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaInvalid: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRelevant: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowIndexText: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; role: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; readonly attributes: any; classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; readonly currentCSSZoom: any; id: any; innerHTML: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; checkVisibility: any; closest: any; computedStyleMap: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; getHTML: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setHTMLUnsafe: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; dispatchEvent: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; append: unknown; prepend: unknown; querySelector: unknown; querySelectorAll: unknown; replaceChildren: unknown; readonly assignedSlot: { ariaAtomic: any; ariaAutoComplete: any; ariaBrailleLabel: any; ariaBrailleRoleDescription: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColIndexText: any; ariaColSpan: any; ariaCurrent: any; ariaDescription: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaInvalid: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRelevant: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowIndexText: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; role: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; readonly attributes: any; classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; readonly currentCSSZoom: any; id: any; innerHTML: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; checkVisibility: any; closest: any; computedStyleMap: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; getHTML: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setHTMLUnsafe: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; readonly attributeStyleMap: any; style: any; contentEditable: any; enterKeyHint: any; inputMode: any; readonly isContentEditable: any; dispatchEvent: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onbeforeinput: any; onbeforetoggle: any; onblur: any; oncancel: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextlost: any; oncontextmenu: any; oncontextrestored: any; oncopy: any; oncuechange: any; oncut: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpaste: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onscrollend: any; onsecuritypolicyviolation: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onslotchange: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; accessKey: any; readonly accessKeyLabel: any; autocapitalize: any; dir: any; draggable: any; hidden: any; inert: any; innerText: any; lang: any; readonly offsetHeight: any; readonly offsetLeft: any; readonly offsetParent: any; readonly offsetTop: any; readonly offsetWidth: any; outerText: any; popover: any; spellcheck: any; title: any; translate: any; writingSuggestions: any; attachInternals: any; click: any; hidePopover: any; showPopover: any; togglePopover: any; autofocus: any; readonly dataset: any; nonce?: any; tabIndex: any; blur: any; focus: any; name: any; assign: any; assignedElements: any; assignedNodes: any; addEventListener: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; } +>out2.responseXML : { readonly URL: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; alinkColor: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly all: { readonly length: any; item: any; namedItem: any; }; readonly anchors: { readonly length: any; item: any; namedItem: any; }; readonly applets: { readonly length: any; item: any; namedItem: any; }; bgColor: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; body: { ariaAtomic: any; ariaAutoComplete: any; ariaBrailleLabel: any; ariaBrailleRoleDescription: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColIndexText: any; ariaColSpan: any; ariaCurrent: any; ariaDescription: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaInvalid: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRelevant: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowIndexText: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; role: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; readonly attributes: any; classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; readonly currentCSSZoom: any; id: any; innerHTML: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; checkVisibility: any; closest: any; computedStyleMap: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; getHTML: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setHTMLUnsafe: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; readonly attributeStyleMap: any; style: any; contentEditable: any; enterKeyHint: any; inputMode: any; readonly isContentEditable: any; dispatchEvent: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onbeforeinput: any; onbeforetoggle: any; onblur: any; oncancel: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextlost: any; oncontextmenu: any; oncontextrestored: any; oncopy: any; oncuechange: any; oncut: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpaste: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onscrollend: any; onsecuritypolicyviolation: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onslotchange: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; accessKey: any; readonly accessKeyLabel: any; autocapitalize: any; dir: any; draggable: any; hidden: any; inert: any; innerText: any; lang: any; readonly offsetHeight: any; readonly offsetLeft: any; readonly offsetParent: any; readonly offsetTop: any; readonly offsetWidth: any; outerText: any; popover: any; spellcheck: any; title: any; translate: any; writingSuggestions: any; attachInternals: any; click: any; hidePopover: any; showPopover: any; togglePopover: any; addEventListener: any; removeEventListener: any; autofocus: any; readonly dataset: any; nonce?: any; tabIndex: any; blur: any; focus: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly characterSet: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly charset: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly compatMode: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly contentType: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; cookie: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly currentScript: { ariaAtomic: any; ariaAutoComplete: any; ariaBrailleLabel: any; ariaBrailleRoleDescription: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColIndexText: any; ariaColSpan: any; ariaCurrent: any; ariaDescription: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaInvalid: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRelevant: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowIndexText: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; role: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; readonly attributes: any; classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; readonly currentCSSZoom: any; id: any; innerHTML: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; checkVisibility: any; closest: any; computedStyleMap: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; getHTML: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setHTMLUnsafe: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; readonly attributeStyleMap: any; style: any; contentEditable: any; enterKeyHint: any; inputMode: any; readonly isContentEditable: any; dispatchEvent: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onbeforeinput: any; onbeforetoggle: any; onblur: any; oncancel: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextlost: any; oncontextmenu: any; oncontextrestored: any; oncopy: any; oncuechange: any; oncut: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpaste: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onscrollend: any; onsecuritypolicyviolation: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onslotchange: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; accessKey: any; readonly accessKeyLabel: any; autocapitalize: any; dir: any; draggable: any; hidden: any; inert: any; innerText: any; lang: any; readonly offsetHeight: any; readonly offsetLeft: any; readonly offsetParent: any; readonly offsetTop: any; readonly offsetWidth: any; outerText: any; popover: any; spellcheck: any; title: any; translate: any; writingSuggestions: any; attachInternals: any; click: any; hidePopover: any; showPopover: any; togglePopover: any; autofocus: any; readonly dataset: any; nonce?: any; tabIndex: any; blur: any; focus: any; async: any; blocking: any; charset: any; crossOrigin: any; defer: any; event: any; fetchPriority: any; htmlFor: any; integrity: any; noModule: any; referrerPolicy: any; src: any; text: any; type: any; addEventListener: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; } | { ariaAtomic: any; ariaAutoComplete: any; ariaBrailleLabel: any; ariaBrailleRoleDescription: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColIndexText: any; ariaColSpan: any; ariaCurrent: any; ariaDescription: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaInvalid: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRelevant: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowIndexText: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; role: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; readonly attributes: any; classList: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; readonly currentCSSZoom: any; id: any; innerHTML: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; checkVisibility: any; closest: any; computedStyleMap: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; getHTML: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setHTMLUnsafe: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; readonly attributeStyleMap: any; style: any; dispatchEvent: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onbeforeinput: any; onbeforetoggle: any; onblur: any; oncancel: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextlost: any; oncontextmenu: any; oncontextrestored: any; oncopy: any; oncuechange: any; oncut: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpaste: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onscrollend: any; onsecuritypolicyviolation: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onslotchange: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; autofocus: any; readonly dataset: any; nonce?: any; tabIndex: any; blur: any; focus: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly className: any; readonly ownerSVGElement: any; readonly viewportElement: any; type: any; addEventListener: any; removeEventListener: any; readonly href: any; readonly assignedSlot: any; }; readonly defaultView: { NaN: any; Infinity: any; eval: any; parseInt: any; parseFloat: any; isNaN: any; isFinite: any; decodeURI: any; decodeURIComponent: any; encodeURI: any; encodeURIComponent: any; escape: any; unescape: any; Symbol: any; Object: any; Function: any; String: any; Boolean: any; Number: any; Math: any; Date: any; RegExp: any; Error: any; EvalError: any; RangeError: any; ReferenceError: any; SyntaxError: any; TypeError: any; URIError: any; JSON: any; Array: any; Promise: any; ArrayBuffer: any; DataView: any; Int8Array: any; Uint8Array: any; Uint8ClampedArray: any; Int16Array: any; Uint16Array: any; Int32Array: any; Uint32Array: any; Float32Array: any; Float64Array: any; Intl: any; NodeFilter: any; AbortController: any; AbortSignal: any; AbstractRange: any; AnalyserNode: any; Animation: any; AnimationEffect: any; AnimationEvent: any; cancelAnimationFrame: any; requestAnimationFrame: any; AnimationPlaybackEvent: any; AnimationTimeline: any; Attr: any; AudioBuffer: any; AudioBufferSourceNode: any; AudioContext: any; AudioData: any; AudioDecoder: any; AudioDestinationNode: any; AudioEncoder: any; AudioListener: any; AudioNode: any; AudioParam: any; AudioParamMap: any; AudioProcessingEvent: any; AudioScheduledSourceNode: any; AudioWorklet: any; AudioWorkletNode: any; AuthenticatorAssertionResponse: any; AuthenticatorAttestationResponse: any; AuthenticatorResponse: any; BarProp: any; BaseAudioContext: any; BeforeUnloadEvent: any; BiquadFilterNode: any; Blob: any; BlobEvent: any; BroadcastChannel: any; ByteLengthQueuingStrategy: any; CDATASection: any; CSSAnimation: any; CSSConditionRule: any; CSSContainerRule: any; CSSCounterStyleRule: any; CSSFontFaceRule: any; CSSFontFeatureValuesRule: any; CSSFontPaletteValuesRule: any; CSSGroupingRule: any; CSSImageValue: any; CSSImportRule: any; CSSKeyframeRule: any; CSSKeyframesRule: any; CSSKeywordValue: any; CSSLayerBlockRule: any; CSSLayerStatementRule: any; CSSMathClamp: any; CSSMathInvert: any; CSSMathMax: any; CSSMathMin: any; CSSMathNegate: any; CSSMathProduct: any; CSSMathSum: any; CSSMathValue: any; CSSMatrixComponent: any; CSSMediaRule: any; CSSNamespaceRule: any; CSSNestedDeclarations: any; CSSNumericArray: any; CSSNumericValue: any; CSSPageRule: any; CSSPerspective: any; CSSPropertyRule: any; CSSRotate: any; CSSRule: any; CSSRuleList: any; CSSScale: any; CSSScopeRule: any; CSSSkew: any; CSSSkewX: any; CSSSkewY: any; CSSStartingStyleRule: any; CSSStyleDeclaration: any; CSSStyleRule: any; CSSStyleSheet: any; CSSStyleValue: any; CSSSupportsRule: any; CSSTransformComponent: any; CSSTransformValue: any; CSSTransition: any; CSSTranslate: any; CSSUnitValue: any; CSSUnparsedValue: any; CSSVariableReferenceValue: any; CSSViewTransitionRule: any; Cache: any; CacheStorage: any; CanvasCaptureMediaStreamTrack: any; CanvasGradient: any; CanvasPattern: any; CanvasRenderingContext2D: any; CaretPosition: any; ChannelMergerNode: any; ChannelSplitterNode: any; CharacterData: any; Clipboard: any; ClipboardEvent: any; ClipboardItem: any; CloseEvent: any; Comment: any; CompositionEvent: any; CompressionStream: any; ConstantSourceNode: any; ContentVisibilityAutoStateChangeEvent: any; ConvolverNode: any; CountQueuingStrategy: any; Credential: any; CredentialsContainer: any; Crypto: any; CryptoKey: any; CustomElementRegistry: any; CustomEvent: any; CustomStateSet: any; DOMException: any; DOMImplementation: any; DOMMatrix: any; SVGMatrix: any; WebKitCSSMatrix: any; DOMMatrixReadOnly: any; DOMParser: any; DOMPoint: any; SVGPoint: any; DOMPointReadOnly: any; DOMQuad: any; DOMRect: any; SVGRect: any; DOMRectList: any; DOMRectReadOnly: any; DOMStringList: any; DOMStringMap: any; DOMTokenList: any; DataTransfer: any; DataTransferItem: any; DataTransferItemList: any; DecompressionStream: any; DelayNode: any; DeviceMotionEvent: any; DeviceOrientationEvent: any; Document: any; DocumentFragment: any; DocumentTimeline: any; DocumentType: any; DragEvent: any; DynamicsCompressorNode: any; Element: any; ElementInternals: any; EncodedAudioChunk: any; EncodedVideoChunk: any; ErrorEvent: any; Event: any; EventCounts: any; EventSource: any; EventTarget: any; dispatchEvent: any; External: any; File: any; FileList: any; FileReader: any; FileSystem: any; FileSystemDirectoryEntry: any; FileSystemDirectoryHandle: any; FileSystemDirectoryReader: any; FileSystemEntry: any; FileSystemFileEntry: any; FileSystemFileHandle: any; FileSystemHandle: any; FileSystemWritableFileStream: any; FocusEvent: any; FontFace: any; FontFaceSet: any; FontFaceSetLoadEvent: any; FormData: any; FormDataEvent: any; FragmentDirective: any; GainNode: any; Gamepad: any; GamepadButton: any; GamepadEvent: any; GamepadHapticActuator: any; Geolocation: any; GeolocationCoordinates: any; GeolocationPosition: any; GeolocationPositionError: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onbeforeinput: any; onbeforetoggle: any; onblur: any; oncancel: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextlost: any; oncontextmenu: any; oncontextrestored: any; oncopy: any; oncuechange: any; oncut: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpaste: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onscrollend: any; onsecuritypolicyviolation: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onslotchange: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; HTMLAllCollection: any; HTMLAnchorElement: any; HTMLAreaElement: any; HTMLAudioElement: any; HTMLBRElement: any; HTMLBaseElement: any; HTMLBodyElement: any; HTMLButtonElement: any; HTMLCanvasElement: any; HTMLCollection: any; HTMLDListElement: any; HTMLDataElement: any; HTMLDataListElement: any; HTMLDetailsElement: any; HTMLDialogElement: any; HTMLDirectoryElement: any; HTMLDivElement: any; HTMLDocument: any; HTMLElement: any; HTMLEmbedElement: any; HTMLFieldSetElement: any; HTMLFontElement: any; HTMLFormControlsCollection: any; HTMLFormElement: any; HTMLFrameElement: any; HTMLFrameSetElement: any; HTMLHRElement: any; HTMLHeadElement: any; HTMLHeadingElement: any; HTMLHtmlElement: any; HTMLIFrameElement: any; HTMLImageElement: any; HTMLInputElement: any; HTMLLIElement: any; HTMLLabelElement: any; HTMLLegendElement: any; HTMLLinkElement: any; HTMLMapElement: any; HTMLMarqueeElement: any; HTMLMediaElement: any; HTMLMenuElement: any; HTMLMetaElement: any; HTMLMeterElement: any; HTMLModElement: any; HTMLOListElement: any; HTMLObjectElement: any; HTMLOptGroupElement: any; HTMLOptionElement: any; HTMLOptionsCollection: any; HTMLOutputElement: any; HTMLParagraphElement: any; HTMLParamElement: any; HTMLPictureElement: any; HTMLPreElement: any; HTMLProgressElement: any; HTMLQuoteElement: any; HTMLScriptElement: any; HTMLSelectElement: any; HTMLSlotElement: any; HTMLSourceElement: any; HTMLSpanElement: any; HTMLStyleElement: any; HTMLTableCaptionElement: any; HTMLTableCellElement: any; HTMLTableColElement: any; HTMLTableElement: any; HTMLTableRowElement: any; HTMLTableSectionElement: any; HTMLTemplateElement: any; HTMLTextAreaElement: any; HTMLTimeElement: any; HTMLTitleElement: any; HTMLTrackElement: any; HTMLUListElement: any; HTMLUnknownElement: any; HTMLVideoElement: any; HashChangeEvent: any; Headers: any; Highlight: any; HighlightRegistry: any; History: any; IDBCursor: any; IDBCursorWithValue: any; IDBDatabase: any; IDBFactory: any; IDBIndex: any; IDBKeyRange: any; IDBObjectStore: any; IDBOpenDBRequest: any; IDBRequest: any; IDBTransaction: any; IDBVersionChangeEvent: any; IIRFilterNode: any; IdleDeadline: any; ImageBitmap: any; ImageBitmapRenderingContext: any; ImageData: any; ImageDecoder: any; ImageTrack: any; ImageTrackList: any; InputDeviceInfo: any; InputEvent: any; IntersectionObserver: any; IntersectionObserverEntry: any; KeyboardEvent: any; KeyframeEffect: any; LargestContentfulPaint: any; Location: any; Lock: any; LockManager: any; MIDIAccess: any; MIDIConnectionEvent: any; MIDIInput: any; MIDIInputMap: any; MIDIMessageEvent: any; MIDIOutput: any; MIDIOutputMap: any; MIDIPort: any; MathMLElement: any; MediaCapabilities: any; MediaDeviceInfo: any; MediaDevices: any; MediaElementAudioSourceNode: any; MediaEncryptedEvent: any; MediaError: any; MediaKeyMessageEvent: any; MediaKeySession: any; MediaKeyStatusMap: any; MediaKeySystemAccess: any; MediaKeys: any; MediaList: any; MediaMetadata: any; MediaQueryList: any; MediaQueryListEvent: any; MediaRecorder: any; MediaSession: any; MediaSource: any; MediaSourceHandle: any; MediaStream: any; MediaStreamAudioDestinationNode: any; MediaStreamAudioSourceNode: any; MediaStreamTrack: any; MediaStreamTrackEvent: any; MessageChannel: any; MessageEvent: any; MessagePort: any; MimeType: any; MimeTypeArray: any; MouseEvent: any; MutationObserver: any; MutationRecord: any; NamedNodeMap: any; NavigationActivation: any; NavigationHistoryEntry: any; NavigationPreloadManager: any; Navigator: any; Node: any; NodeIterator: any; NodeList: any; Notification: any; OfflineAudioCompletionEvent: any; OfflineAudioContext: any; OffscreenCanvas: any; OffscreenCanvasRenderingContext2D: any; OscillatorNode: any; OverconstrainedError: any; PageRevealEvent: any; PageSwapEvent: any; PageTransitionEvent: any; PannerNode: any; Path2D: any; PaymentAddress: any; PaymentMethodChangeEvent: any; PaymentRequest: any; PaymentRequestUpdateEvent: any; PaymentResponse: any; Performance: any; PerformanceEntry: any; PerformanceEventTiming: any; PerformanceMark: any; PerformanceMeasure: any; PerformanceNavigation: any; PerformanceNavigationTiming: any; PerformanceObserver: any; PerformanceObserverEntryList: any; PerformancePaintTiming: any; PerformanceResourceTiming: any; PerformanceServerTiming: any; PerformanceTiming: any; PeriodicWave: any; PermissionStatus: any; Permissions: any; PictureInPictureEvent: any; PictureInPictureWindow: any; Plugin: any; PluginArray: any; PointerEvent: any; PopStateEvent: any; ProcessingInstruction: any; ProgressEvent: any; PromiseRejectionEvent: any; PublicKeyCredential: any; PushManager: any; PushSubscription: any; PushSubscriptionOptions: any; RTCCertificate: any; RTCDTMFSender: any; RTCDTMFToneChangeEvent: any; RTCDataChannel: any; RTCDataChannelEvent: any; RTCDtlsTransport: any; RTCEncodedAudioFrame: any; RTCEncodedVideoFrame: any; RTCError: any; RTCErrorEvent: any; RTCIceCandidate: any; RTCIceTransport: any; RTCPeerConnection: any; RTCPeerConnectionIceErrorEvent: any; RTCPeerConnectionIceEvent: any; RTCRtpReceiver: any; RTCRtpScriptTransform: any; RTCRtpSender: any; RTCRtpTransceiver: any; RTCSctpTransport: any; RTCSessionDescription: any; RTCStatsReport: any; RTCTrackEvent: any; RadioNodeList: any; Range: any; ReadableByteStreamController: any; ReadableStream: any; ReadableStreamBYOBReader: any; ReadableStreamBYOBRequest: any; ReadableStreamDefaultController: any; ReadableStreamDefaultReader: any; RemotePlayback: any; Report: any; ReportBody: any; ReportingObserver: any; Request: any; ResizeObserver: any; ResizeObserverEntry: any; ResizeObserverSize: any; Response: any; SVGAElement: any; SVGAngle: any; SVGAnimateElement: any; SVGAnimateMotionElement: any; SVGAnimateTransformElement: any; SVGAnimatedAngle: any; SVGAnimatedBoolean: any; SVGAnimatedEnumeration: any; SVGAnimatedInteger: any; SVGAnimatedLength: any; SVGAnimatedLengthList: any; SVGAnimatedNumber: any; SVGAnimatedNumberList: any; SVGAnimatedPreserveAspectRatio: any; SVGAnimatedRect: any; SVGAnimatedString: any; SVGAnimatedTransformList: any; SVGAnimationElement: any; SVGCircleElement: any; SVGClipPathElement: any; SVGComponentTransferFunctionElement: any; SVGDefsElement: any; SVGDescElement: any; SVGElement: any; SVGEllipseElement: any; SVGFEBlendElement: any; SVGFEColorMatrixElement: any; SVGFEComponentTransferElement: any; SVGFECompositeElement: any; SVGFEConvolveMatrixElement: any; SVGFEDiffuseLightingElement: any; SVGFEDisplacementMapElement: any; SVGFEDistantLightElement: any; SVGFEDropShadowElement: any; SVGFEFloodElement: any; SVGFEFuncAElement: any; SVGFEFuncBElement: any; SVGFEFuncGElement: any; SVGFEFuncRElement: any; SVGFEGaussianBlurElement: any; SVGFEImageElement: any; SVGFEMergeElement: any; SVGFEMergeNodeElement: any; SVGFEMorphologyElement: any; SVGFEOffsetElement: any; SVGFEPointLightElement: any; SVGFESpecularLightingElement: any; SVGFESpotLightElement: any; SVGFETileElement: any; SVGFETurbulenceElement: any; SVGFilterElement: any; SVGForeignObjectElement: any; SVGGElement: any; SVGGeometryElement: any; SVGGradientElement: any; SVGGraphicsElement: any; SVGImageElement: any; SVGLength: any; SVGLengthList: any; SVGLineElement: any; SVGLinearGradientElement: any; SVGMPathElement: any; SVGMarkerElement: any; SVGMaskElement: any; SVGMetadataElement: any; SVGNumber: any; SVGNumberList: any; SVGPathElement: any; SVGPatternElement: any; SVGPointList: any; SVGPolygonElement: any; SVGPolylineElement: any; SVGPreserveAspectRatio: any; SVGRadialGradientElement: any; SVGRectElement: any; SVGSVGElement: any; SVGScriptElement: any; SVGSetElement: any; SVGStopElement: any; SVGStringList: any; SVGStyleElement: any; SVGSwitchElement: any; SVGSymbolElement: any; SVGTSpanElement: any; SVGTextContentElement: any; SVGTextElement: any; SVGTextPathElement: any; SVGTextPositioningElement: any; SVGTitleElement: any; SVGTransform: any; SVGTransformList: any; SVGUnitTypes: any; SVGUseElement: any; SVGViewElement: any; Screen: any; ScreenOrientation: any; ScriptProcessorNode: any; SecurityPolicyViolationEvent: any; Selection: any; ServiceWorker: any; ServiceWorkerContainer: any; ServiceWorkerRegistration: any; ShadowRoot: any; SharedWorker: any; SourceBuffer: any; SourceBufferList: any; SpeechRecognitionAlternative: any; SpeechRecognitionResult: any; SpeechRecognitionResultList: any; SpeechSynthesis: any; SpeechSynthesisErrorEvent: any; SpeechSynthesisEvent: any; SpeechSynthesisUtterance: any; SpeechSynthesisVoice: any; StaticRange: any; StereoPannerNode: any; Storage: any; StorageEvent: any; StorageManager: any; StylePropertyMap: any; StylePropertyMapReadOnly: any; StyleSheet: any; StyleSheetList: any; SubmitEvent: any; SubtleCrypto: any; Text: any; TextDecoder: any; TextDecoderStream: any; TextEncoder: any; TextEncoderStream: any; TextEvent: any; TextMetrics: any; TextTrack: any; TextTrackCue: any; TextTrackCueList: any; TextTrackList: any; TimeRanges: any; ToggleEvent: any; Touch: any; TouchEvent: any; TouchList: any; TrackEvent: any; TransformStream: any; TransformStreamDefaultController: any; TransitionEvent: any; TreeWalker: any; UIEvent: any; URL: any; webkitURL: any; URLSearchParams: any; UserActivation: any; VTTCue: any; VTTRegion: any; ValidityState: any; VideoColorSpace: any; VideoDecoder: any; VideoEncoder: any; VideoFrame: any; VideoPlaybackQuality: any; ViewTransition: any; ViewTransitionTypeSet: any; VisualViewport: any; WakeLock: any; WakeLockSentinel: any; WaveShaperNode: any; WebGL2RenderingContext: any; WebGLActiveInfo: any; WebGLBuffer: any; WebGLContextEvent: any; WebGLFramebuffer: any; WebGLProgram: any; WebGLQuery: any; WebGLRenderbuffer: any; WebGLRenderingContext: any; WebGLSampler: any; WebGLShader: any; WebGLShaderPrecisionFormat: any; WebGLSync: any; WebGLTexture: any; WebGLTransformFeedback: any; WebGLUniformLocation: any; WebGLVertexArrayObject: any; WebSocket: any; WebTransport: any; WebTransportBidirectionalStream: any; WebTransportDatagramDuplexStream: any; WebTransportError: any; WheelEvent: any; Window: any; clientInformation: any; closed: any; customElements: any; devicePixelRatio: any; document: any; event: any; external: any; frameElement: any; frames: any; history: any; innerHeight: any; innerWidth: any; length: any; location: any; locationbar: any; menubar: any; name: any; navigator: any; ondevicemotion: any; ondeviceorientation: any; ondeviceorientationabsolute: any; onorientationchange: any; opener: any; orientation: any; outerHeight: any; outerWidth: any; pageXOffset: any; pageYOffset: any; parent: any; personalbar: any; screen: any; screenLeft: any; screenTop: any; screenX: any; screenY: any; scrollX: any; scrollY: any; scrollbars: any; self: any; speechSynthesis: any; status: any; statusbar: any; toolbar: any; top: any; visualViewport: any; window: any; alert: any; blur: any; cancelIdleCallback: any; captureEvents: any; close: any; confirm: any; focus: any; getComputedStyle: any; getSelection: any; matchMedia: any; moveBy: any; moveTo: any; open: any; postMessage: any; print: any; prompt: any; releaseEvents: any; requestIdleCallback: any; resizeBy: any; resizeTo: any; scroll: any; scrollBy: any; scrollTo: any; stop: any; addEventListener: any; removeEventListener: any; onafterprint: any; onbeforeprint: any; onbeforeunload: any; ongamepadconnected: any; ongamepaddisconnected: any; onhashchange: any; onlanguagechange: any; onmessage: any; onmessageerror: any; onoffline: any; ononline: any; onpagehide: any; onpagereveal: any; onpageshow: any; onpageswap: any; onpopstate: any; onrejectionhandled: any; onstorage: any; onunhandledrejection: any; onunload: any; localStorage: any; caches: any; crossOriginIsolated: any; crypto: any; indexedDB: any; isSecureContext: any; origin: any; performance: any; atob: any; btoa: any; clearInterval: any; clearTimeout: any; createImageBitmap: any; fetch: any; queueMicrotask: any; reportError: any; setInterval: any; setTimeout: any; structuredClone: any; sessionStorage: any; Worker: any; Worklet: any; WritableStream: any; WritableStreamDefaultController: any; WritableStreamDefaultWriter: any; XMLDocument: any; XMLHttpRequest: any; XMLHttpRequestEventTarget: any; XMLHttpRequestUpload: any; XMLSerializer: any; XPathEvaluator: any; XPathExpression: any; XPathResult: any; XSLTProcessor: any; console: any; CSS: any; WebAssembly: any; Audio: any; Image: any; Option: any; toString: any; Map: any; WeakMap: any; Set: any; WeakSet: any; Proxy: any; Reflect: any; foo: any; readonly globalThis: any; undefined: any; }; designMode: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; dir: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly doctype: { after: any; before: any; remove: any; replaceWith: any; readonly name: any; readonly ownerDocument: any; readonly publicId: any; readonly systemId: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; }; readonly documentElement: { ariaAtomic: any; ariaAutoComplete: any; ariaBrailleLabel: any; ariaBrailleRoleDescription: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColIndexText: any; ariaColSpan: any; ariaCurrent: any; ariaDescription: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaInvalid: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRelevant: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowIndexText: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; role: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; readonly attributes: any; classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; readonly currentCSSZoom: any; id: any; innerHTML: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; checkVisibility: any; closest: any; computedStyleMap: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; getHTML: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setHTMLUnsafe: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; readonly attributeStyleMap: any; style: any; contentEditable: any; enterKeyHint: any; inputMode: any; readonly isContentEditable: any; dispatchEvent: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onbeforeinput: any; onbeforetoggle: any; onblur: any; oncancel: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextlost: any; oncontextmenu: any; oncontextrestored: any; oncopy: any; oncuechange: any; oncut: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpaste: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onscrollend: any; onsecuritypolicyviolation: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onslotchange: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; accessKey: any; readonly accessKeyLabel: any; autocapitalize: any; dir: any; draggable: any; hidden: any; inert: any; innerText: any; lang: any; readonly offsetHeight: any; readonly offsetLeft: any; readonly offsetParent: any; readonly offsetTop: any; readonly offsetWidth: any; outerText: any; popover: any; spellcheck: any; title: any; translate: any; writingSuggestions: any; attachInternals: any; click: any; hidePopover: any; showPopover: any; togglePopover: any; addEventListener: any; removeEventListener: any; autofocus: any; readonly dataset: any; nonce?: any; tabIndex: any; blur: any; focus: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly documentURI: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; domain: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly embeds: { readonly length: any; item: any; namedItem: any; }; fgColor: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly forms: { readonly length: any; item: any; namedItem: any; }; readonly fragmentDirective: unknown; readonly fullscreen: { valueOf: any; }; readonly fullscreenEnabled: { valueOf: any; }; readonly head: { ariaAtomic: any; ariaAutoComplete: any; ariaBrailleLabel: any; ariaBrailleRoleDescription: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColIndexText: any; ariaColSpan: any; ariaCurrent: any; ariaDescription: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaInvalid: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRelevant: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowIndexText: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; role: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; readonly attributes: any; classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; readonly currentCSSZoom: any; id: any; innerHTML: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; checkVisibility: any; closest: any; computedStyleMap: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; getHTML: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setHTMLUnsafe: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; readonly attributeStyleMap: any; style: any; contentEditable: any; enterKeyHint: any; inputMode: any; readonly isContentEditable: any; dispatchEvent: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onbeforeinput: any; onbeforetoggle: any; onblur: any; oncancel: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextlost: any; oncontextmenu: any; oncontextrestored: any; oncopy: any; oncuechange: any; oncut: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpaste: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onscrollend: any; onsecuritypolicyviolation: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onslotchange: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; accessKey: any; readonly accessKeyLabel: any; autocapitalize: any; dir: any; draggable: any; hidden: any; inert: any; innerText: any; lang: any; readonly offsetHeight: any; readonly offsetLeft: any; readonly offsetParent: any; readonly offsetTop: any; readonly offsetWidth: any; outerText: any; popover: any; spellcheck: any; title: any; translate: any; writingSuggestions: any; attachInternals: any; click: any; hidePopover: any; showPopover: any; togglePopover: any; addEventListener: any; removeEventListener: any; autofocus: any; readonly dataset: any; nonce?: any; tabIndex: any; blur: any; focus: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly hidden: { valueOf: any; }; readonly images: { readonly length: any; item: any; namedItem: any; }; readonly implementation: { createDocument: any; createDocumentType: any; createHTMLDocument: any; hasFeature: any; }; readonly inputEncoding: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly lastModified: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; linkColor: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly links: { readonly length: any; item: any; namedItem: any; }; location: { readonly ancestorOrigins: any; hash: any; host: any; hostname: any; href: any; toString: any; readonly origin: any; pathname: any; port: any; protocol: any; search: any; assign: any; reload: any; replace: any; }; onfullscreenchange: unknown; onfullscreenerror: unknown; onpointerlockchange: unknown; onpointerlockerror: unknown; onreadystatechange: unknown; onvisibilitychange: unknown; readonly ownerDocument: unknown; readonly pictureInPictureEnabled: { valueOf: any; }; readonly plugins: { readonly length: any; item: any; namedItem: any; }; readonly readyState: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly referrer: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly rootElement: { ariaAtomic: any; ariaAutoComplete: any; ariaBrailleLabel: any; ariaBrailleRoleDescription: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColIndexText: any; ariaColSpan: any; ariaCurrent: any; ariaDescription: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaInvalid: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRelevant: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowIndexText: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; role: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; readonly attributes: any; classList: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; readonly currentCSSZoom: any; id: any; innerHTML: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; checkVisibility: any; closest: any; computedStyleMap: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; getHTML: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setHTMLUnsafe: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; readonly attributeStyleMap: any; style: any; dispatchEvent: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onbeforeinput: any; onbeforetoggle: any; onblur: any; oncancel: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextlost: any; oncontextmenu: any; oncontextrestored: any; oncopy: any; oncuechange: any; oncut: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpaste: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onscrollend: any; onsecuritypolicyviolation: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onslotchange: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; autofocus: any; readonly dataset: any; nonce?: any; tabIndex: any; blur: any; focus: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly className: any; readonly ownerSVGElement: any; readonly viewportElement: any; readonly preserveAspectRatio: any; readonly viewBox: any; readonly transform: any; getBBox: any; getCTM: any; getScreenCTM: any; currentScale: any; readonly currentTranslate: any; readonly height: any; readonly width: any; readonly x: any; readonly y: any; animationsPaused: any; checkEnclosure: any; checkIntersection: any; createSVGAngle: any; createSVGLength: any; createSVGMatrix: any; createSVGNumber: any; createSVGPoint: any; createSVGRect: any; createSVGTransform: any; createSVGTransformFromMatrix: any; deselectAll: any; forceRedraw: any; getCurrentTime: any; getElementById: any; getEnclosureList: any; getIntersectionList: any; pauseAnimations: any; setCurrentTime: any; suspendRedraw: any; unpauseAnimations: any; unsuspendRedraw: any; unsuspendRedrawAll: any; addEventListener: any; removeEventListener: any; readonly requiredExtensions: any; readonly systemLanguage: any; readonly assignedSlot: any; onafterprint: any; onbeforeprint: any; onbeforeunload: any; ongamepadconnected: any; ongamepaddisconnected: any; onhashchange: any; onlanguagechange: any; onmessage: any; onmessageerror: any; onoffline: any; ononline: any; onpagehide: any; onpagereveal: any; onpageshow: any; onpageswap: any; onpopstate: any; onrejectionhandled: any; onstorage: any; onunhandledrejection: any; onunload: any; }; readonly scripts: { readonly length: any; item: any; namedItem: any; }; readonly scrollingElement: { ariaAtomic: any; ariaAutoComplete: any; ariaBrailleLabel: any; ariaBrailleRoleDescription: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColIndexText: any; ariaColSpan: any; ariaCurrent: any; ariaDescription: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaInvalid: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRelevant: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowIndexText: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; role: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; readonly attributes: any; classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; readonly currentCSSZoom: any; id: any; innerHTML: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; checkVisibility: any; closest: any; computedStyleMap: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; getHTML: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setHTMLUnsafe: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; dispatchEvent: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly timeline: { readonly currentTime: any; }; title: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly visibilityState: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; vlinkColor: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; adoptNode: unknown; captureEvents: unknown; caretPositionFromPoint: unknown; caretRangeFromPoint: unknown; clear: unknown; close: unknown; createAttribute: unknown; createAttributeNS: unknown; createCDATASection: unknown; createComment: unknown; createDocumentFragment: unknown; createElement: unknown; createElementNS: unknown; createEvent: unknown; createNodeIterator: unknown; createProcessingInstruction: unknown; createRange: unknown; createTextNode: unknown; createTreeWalker: unknown; execCommand: unknown; exitFullscreen: unknown; exitPictureInPicture: unknown; exitPointerLock: unknown; getElementById: unknown; getElementsByClassName: unknown; getElementsByName: unknown; getElementsByTagName: unknown; getElementsByTagNameNS: unknown; getSelection: unknown; hasFocus: unknown; hasStorageAccess: unknown; importNode: unknown; open: unknown; queryCommandEnabled: unknown; queryCommandIndeterm: unknown; queryCommandState: unknown; queryCommandSupported: unknown; queryCommandValue: unknown; releaseEvents: unknown; requestStorageAccess: unknown; startViewTransition: unknown; write: unknown; writeln: unknown; addEventListener: unknown; removeEventListener: unknown; readonly activeElement: { ariaAtomic: any; ariaAutoComplete: any; ariaBrailleLabel: any; ariaBrailleRoleDescription: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColIndexText: any; ariaColSpan: any; ariaCurrent: any; ariaDescription: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaInvalid: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRelevant: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowIndexText: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; role: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; readonly attributes: any; classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; readonly currentCSSZoom: any; id: any; innerHTML: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; checkVisibility: any; closest: any; computedStyleMap: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; getHTML: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setHTMLUnsafe: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; dispatchEvent: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; adoptedStyleSheets: { readonly cssRules: any; readonly ownerRule: any; readonly rules: any; addRule: any; deleteRule: any; insertRule: any; removeRule: any; replace: any; replaceSync: any; disabled: any; readonly href: any; media: any; readonly ownerNode: any; readonly parentStyleSheet: any; readonly title: any; readonly type: any; }[]; readonly fullscreenElement: { ariaAtomic: any; ariaAutoComplete: any; ariaBrailleLabel: any; ariaBrailleRoleDescription: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColIndexText: any; ariaColSpan: any; ariaCurrent: any; ariaDescription: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaInvalid: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRelevant: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowIndexText: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; role: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; readonly attributes: any; classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; readonly currentCSSZoom: any; id: any; innerHTML: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; checkVisibility: any; closest: any; computedStyleMap: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; getHTML: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setHTMLUnsafe: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; dispatchEvent: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly pictureInPictureElement: { ariaAtomic: any; ariaAutoComplete: any; ariaBrailleLabel: any; ariaBrailleRoleDescription: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColIndexText: any; ariaColSpan: any; ariaCurrent: any; ariaDescription: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaInvalid: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRelevant: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowIndexText: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; role: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; readonly attributes: any; classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; readonly currentCSSZoom: any; id: any; innerHTML: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; checkVisibility: any; closest: any; computedStyleMap: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; getHTML: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setHTMLUnsafe: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; dispatchEvent: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly pointerLockElement: { ariaAtomic: any; ariaAutoComplete: any; ariaBrailleLabel: any; ariaBrailleRoleDescription: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColIndexText: any; ariaColSpan: any; ariaCurrent: any; ariaDescription: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaInvalid: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRelevant: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowIndexText: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; role: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; readonly attributes: any; classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; readonly currentCSSZoom: any; id: any; innerHTML: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; checkVisibility: any; closest: any; computedStyleMap: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; getHTML: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setHTMLUnsafe: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; dispatchEvent: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly styleSheets: { readonly length: any; item: any; }; elementFromPoint: unknown; elementsFromPoint: unknown; getAnimations: unknown; dispatchEvent: unknown; readonly fonts: { dispatchEvent: any; onloading: any; onloadingdone: any; onloadingerror: any; readonly ready: any; readonly status: any; check: any; load: any; forEach: any; addEventListener: any; removeEventListener: any; }; onabort: unknown; onanimationcancel: unknown; onanimationend: unknown; onanimationiteration: unknown; onanimationstart: unknown; onauxclick: unknown; onbeforeinput: unknown; onbeforetoggle: unknown; onblur: unknown; oncancel: unknown; oncanplay: unknown; oncanplaythrough: unknown; onchange: unknown; onclick: unknown; onclose: unknown; oncontextlost: unknown; oncontextmenu: unknown; oncontextrestored: unknown; oncopy: unknown; oncuechange: unknown; oncut: unknown; ondblclick: unknown; ondrag: unknown; ondragend: unknown; ondragenter: unknown; ondragleave: unknown; ondragover: unknown; ondragstart: unknown; ondrop: unknown; ondurationchange: unknown; onemptied: unknown; onended: unknown; onerror: unknown; onfocus: unknown; onformdata: unknown; ongotpointercapture: unknown; oninput: unknown; oninvalid: unknown; onkeydown: unknown; onkeypress: unknown; onkeyup: unknown; onload: unknown; onloadeddata: unknown; onloadedmetadata: unknown; onloadstart: unknown; onlostpointercapture: unknown; onmousedown: unknown; onmouseenter: unknown; onmouseleave: unknown; onmousemove: unknown; onmouseout: unknown; onmouseover: unknown; onmouseup: unknown; onpaste: unknown; onpause: unknown; onplay: unknown; onplaying: unknown; onpointercancel: unknown; onpointerdown: unknown; onpointerenter: unknown; onpointerleave: unknown; onpointermove: unknown; onpointerout: unknown; onpointerover: unknown; onpointerup: unknown; onprogress: unknown; onratechange: unknown; onreset: unknown; onresize: unknown; onscroll: unknown; onscrollend: unknown; onsecuritypolicyviolation: unknown; onseeked: unknown; onseeking: unknown; onselect: unknown; onselectionchange: unknown; onselectstart: unknown; onslotchange: unknown; onstalled: unknown; onsubmit: unknown; onsuspend: unknown; ontimeupdate: unknown; ontoggle: unknown; ontouchcancel?: unknown; ontouchend?: unknown; ontouchmove?: unknown; ontouchstart?: unknown; ontransitioncancel: unknown; ontransitionend: unknown; ontransitionrun: unknown; ontransitionstart: unknown; onvolumechange: unknown; onwaiting: unknown; onwebkitanimationend: unknown; onwebkitanimationiteration: unknown; onwebkitanimationstart: unknown; onwebkittransitionend: unknown; onwheel: unknown; readonly baseURI: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly childNodes: { readonly length: any; item: any; forEach: any; }; readonly firstChild: { after: any; before: any; remove: any; replaceWith: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; }; readonly isConnected: { valueOf: any; }; readonly lastChild: { after: any; before: any; remove: any; replaceWith: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; }; readonly nextSibling: { after: any; before: any; remove: any; replaceWith: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; }; readonly nodeName: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly nodeType: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; nodeValue: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly parentElement: { ariaAtomic: any; ariaAutoComplete: any; ariaBrailleLabel: any; ariaBrailleRoleDescription: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColIndexText: any; ariaColSpan: any; ariaCurrent: any; ariaDescription: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaInvalid: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRelevant: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowIndexText: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; role: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; readonly attributes: any; classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; readonly currentCSSZoom: any; id: any; innerHTML: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; checkVisibility: any; closest: any; computedStyleMap: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; getHTML: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setHTMLUnsafe: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; readonly attributeStyleMap: any; style: any; contentEditable: any; enterKeyHint: any; inputMode: any; readonly isContentEditable: any; dispatchEvent: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onbeforeinput: any; onbeforetoggle: any; onblur: any; oncancel: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextlost: any; oncontextmenu: any; oncontextrestored: any; oncopy: any; oncuechange: any; oncut: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpaste: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onscrollend: any; onsecuritypolicyviolation: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onslotchange: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; accessKey: any; readonly accessKeyLabel: any; autocapitalize: any; dir: any; draggable: any; hidden: any; inert: any; innerText: any; lang: any; readonly offsetHeight: any; readonly offsetLeft: any; readonly offsetParent: any; readonly offsetTop: any; readonly offsetWidth: any; outerText: any; popover: any; spellcheck: any; title: any; translate: any; writingSuggestions: any; attachInternals: any; click: any; hidePopover: any; showPopover: any; togglePopover: any; addEventListener: any; removeEventListener: any; autofocus: any; readonly dataset: any; nonce?: any; tabIndex: any; blur: any; focus: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly parentNode: { addEventListener: any; dispatchEvent: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; }; readonly previousSibling: { after: any; before: any; remove: any; replaceWith: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; }; textContent: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; appendChild: unknown; cloneNode: unknown; compareDocumentPosition: unknown; contains: unknown; getRootNode: unknown; hasChildNodes: unknown; insertBefore: unknown; isDefaultNamespace: unknown; isEqualNode: unknown; isSameNode: unknown; lookupNamespaceURI: unknown; lookupPrefix: unknown; normalize: unknown; removeChild: unknown; replaceChild: unknown; readonly ELEMENT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly ATTRIBUTE_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly TEXT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly CDATA_SECTION_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly ENTITY_REFERENCE_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly ENTITY_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly PROCESSING_INSTRUCTION_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly COMMENT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_TYPE_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_FRAGMENT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly NOTATION_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_DISCONNECTED: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_PRECEDING: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_FOLLOWING: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_CONTAINS: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_CONTAINED_BY: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly childElementCount: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly children: { readonly length: any; item: any; namedItem: any; }; readonly firstElementChild: { ariaAtomic: any; ariaAutoComplete: any; ariaBrailleLabel: any; ariaBrailleRoleDescription: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColIndexText: any; ariaColSpan: any; ariaCurrent: any; ariaDescription: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaInvalid: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRelevant: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowIndexText: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; role: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; readonly attributes: any; classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; readonly currentCSSZoom: any; id: any; innerHTML: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; checkVisibility: any; closest: any; computedStyleMap: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; getHTML: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setHTMLUnsafe: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; dispatchEvent: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly lastElementChild: { ariaAtomic: any; ariaAutoComplete: any; ariaBrailleLabel: any; ariaBrailleRoleDescription: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColIndexText: any; ariaColSpan: any; ariaCurrent: any; ariaDescription: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaInvalid: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRelevant: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowIndexText: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; role: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; readonly attributes: any; classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; readonly currentCSSZoom: any; id: any; innerHTML: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; checkVisibility: any; closest: any; computedStyleMap: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; getHTML: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setHTMLUnsafe: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; dispatchEvent: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; append: unknown; prepend: unknown; querySelector: unknown; querySelectorAll: unknown; replaceChildren: unknown; createExpression: unknown; createNSResolver: unknown; evaluate: unknown; } +>out2 : { dispatchEvent: unknown; onreadystatechange: unknown; readonly readyState: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly response: unknown; readonly responseText: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; responseType: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly responseURL: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly responseXML: { readonly URL: any; alinkColor: any; readonly all: any; readonly anchors: any; readonly applets: any; bgColor: any; body: any; readonly characterSet: any; readonly charset: any; readonly compatMode: any; readonly contentType: any; cookie: any; readonly currentScript: any; readonly defaultView: any; designMode: any; dir: any; readonly doctype: any; readonly documentElement: any; readonly documentURI: any; domain: any; readonly embeds: any; fgColor: any; readonly forms: any; readonly fragmentDirective: any; readonly fullscreen: any; readonly fullscreenEnabled: any; readonly head: any; readonly hidden: any; readonly images: any; readonly implementation: any; readonly inputEncoding: any; readonly lastModified: any; linkColor: any; readonly links: any; location: any; onfullscreenchange: any; onfullscreenerror: any; onpointerlockchange: any; onpointerlockerror: any; onreadystatechange: any; onvisibilitychange: any; readonly ownerDocument: any; readonly pictureInPictureEnabled: any; readonly plugins: any; readonly readyState: any; readonly referrer: any; readonly rootElement: any; readonly scripts: any; readonly scrollingElement: any; readonly timeline: any; title: any; readonly visibilityState: any; vlinkColor: any; adoptNode: any; captureEvents: any; caretPositionFromPoint: any; caretRangeFromPoint: any; clear: any; close: any; createAttribute: any; createAttributeNS: any; createCDATASection: any; createComment: any; createDocumentFragment: any; createElement: any; createElementNS: any; createEvent: any; createNodeIterator: any; createProcessingInstruction: any; createRange: any; createTextNode: any; createTreeWalker: any; execCommand: any; exitFullscreen: any; exitPictureInPicture: any; exitPointerLock: any; getElementById: any; getElementsByClassName: any; getElementsByName: any; getElementsByTagName: any; getElementsByTagNameNS: any; getSelection: any; hasFocus: any; hasStorageAccess: any; importNode: any; open: any; queryCommandEnabled: any; queryCommandIndeterm: any; queryCommandState: any; queryCommandSupported: any; queryCommandValue: any; releaseEvents: any; requestStorageAccess: any; startViewTransition: any; write: any; writeln: any; addEventListener: any; removeEventListener: any; readonly activeElement: any; adoptedStyleSheets: any; readonly fullscreenElement: any; readonly pictureInPictureElement: any; readonly pointerLockElement: any; readonly styleSheets: any; elementFromPoint: any; elementsFromPoint: any; getAnimations: any; dispatchEvent: any; readonly fonts: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onbeforeinput: any; onbeforetoggle: any; onblur: any; oncancel: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextlost: any; oncontextmenu: any; oncontextrestored: any; oncopy: any; oncuechange: any; oncut: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpaste: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onscrollend: any; onsecuritypolicyviolation: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onslotchange: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; createExpression: any; createNSResolver: any; evaluate: any; }; readonly status: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly statusText: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; timeout: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly upload: { dispatchEvent: any; onabort: any; onerror: any; onload: any; onloadend: any; onloadstart: any; onprogress: any; ontimeout: any; addEventListener: any; removeEventListener: any; }; withCredentials: { valueOf: any; }; abort: unknown; getAllResponseHeaders: unknown; getResponseHeader: unknown; open: unknown; overrideMimeType: unknown; send: unknown; setRequestHeader: unknown; readonly UNSENT: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly OPENED: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly HEADERS_RECEIVED: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly LOADING: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DONE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; addEventListener: unknown; removeEventListener: unknown; onabort: unknown; onerror: unknown; onload: unknown; onloadend: unknown; onloadstart: unknown; onprogress: unknown; ontimeout: unknown; } +>responseXML : { readonly URL: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; alinkColor: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly all: { readonly length: any; item: any; namedItem: any; }; readonly anchors: { readonly length: any; item: any; namedItem: any; }; readonly applets: { readonly length: any; item: any; namedItem: any; }; bgColor: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; body: { ariaAtomic: any; ariaAutoComplete: any; ariaBrailleLabel: any; ariaBrailleRoleDescription: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColIndexText: any; ariaColSpan: any; ariaCurrent: any; ariaDescription: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaInvalid: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRelevant: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowIndexText: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; role: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; readonly attributes: any; classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; readonly currentCSSZoom: any; id: any; innerHTML: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; checkVisibility: any; closest: any; computedStyleMap: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; getHTML: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setHTMLUnsafe: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; readonly attributeStyleMap: any; style: any; contentEditable: any; enterKeyHint: any; inputMode: any; readonly isContentEditable: any; dispatchEvent: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onbeforeinput: any; onbeforetoggle: any; onblur: any; oncancel: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextlost: any; oncontextmenu: any; oncontextrestored: any; oncopy: any; oncuechange: any; oncut: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpaste: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onscrollend: any; onsecuritypolicyviolation: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onslotchange: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; accessKey: any; readonly accessKeyLabel: any; autocapitalize: any; dir: any; draggable: any; hidden: any; inert: any; innerText: any; lang: any; readonly offsetHeight: any; readonly offsetLeft: any; readonly offsetParent: any; readonly offsetTop: any; readonly offsetWidth: any; outerText: any; popover: any; spellcheck: any; title: any; translate: any; writingSuggestions: any; attachInternals: any; click: any; hidePopover: any; showPopover: any; togglePopover: any; addEventListener: any; removeEventListener: any; autofocus: any; readonly dataset: any; nonce?: any; tabIndex: any; blur: any; focus: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly characterSet: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly charset: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly compatMode: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly contentType: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; cookie: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly currentScript: { ariaAtomic: any; ariaAutoComplete: any; ariaBrailleLabel: any; ariaBrailleRoleDescription: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColIndexText: any; ariaColSpan: any; ariaCurrent: any; ariaDescription: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaInvalid: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRelevant: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowIndexText: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; role: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; readonly attributes: any; classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; readonly currentCSSZoom: any; id: any; innerHTML: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; checkVisibility: any; closest: any; computedStyleMap: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; getHTML: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setHTMLUnsafe: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; readonly attributeStyleMap: any; style: any; contentEditable: any; enterKeyHint: any; inputMode: any; readonly isContentEditable: any; dispatchEvent: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onbeforeinput: any; onbeforetoggle: any; onblur: any; oncancel: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextlost: any; oncontextmenu: any; oncontextrestored: any; oncopy: any; oncuechange: any; oncut: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpaste: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onscrollend: any; onsecuritypolicyviolation: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onslotchange: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; accessKey: any; readonly accessKeyLabel: any; autocapitalize: any; dir: any; draggable: any; hidden: any; inert: any; innerText: any; lang: any; readonly offsetHeight: any; readonly offsetLeft: any; readonly offsetParent: any; readonly offsetTop: any; readonly offsetWidth: any; outerText: any; popover: any; spellcheck: any; title: any; translate: any; writingSuggestions: any; attachInternals: any; click: any; hidePopover: any; showPopover: any; togglePopover: any; autofocus: any; readonly dataset: any; nonce?: any; tabIndex: any; blur: any; focus: any; async: any; blocking: any; charset: any; crossOrigin: any; defer: any; event: any; fetchPriority: any; htmlFor: any; integrity: any; noModule: any; referrerPolicy: any; src: any; text: any; type: any; addEventListener: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; } | { ariaAtomic: any; ariaAutoComplete: any; ariaBrailleLabel: any; ariaBrailleRoleDescription: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColIndexText: any; ariaColSpan: any; ariaCurrent: any; ariaDescription: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaInvalid: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRelevant: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowIndexText: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; role: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; readonly attributes: any; classList: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; readonly currentCSSZoom: any; id: any; innerHTML: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; checkVisibility: any; closest: any; computedStyleMap: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; getHTML: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setHTMLUnsafe: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; readonly attributeStyleMap: any; style: any; dispatchEvent: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onbeforeinput: any; onbeforetoggle: any; onblur: any; oncancel: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextlost: any; oncontextmenu: any; oncontextrestored: any; oncopy: any; oncuechange: any; oncut: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpaste: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onscrollend: any; onsecuritypolicyviolation: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onslotchange: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; autofocus: any; readonly dataset: any; nonce?: any; tabIndex: any; blur: any; focus: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly className: any; readonly ownerSVGElement: any; readonly viewportElement: any; type: any; addEventListener: any; removeEventListener: any; readonly href: any; readonly assignedSlot: any; }; readonly defaultView: { NaN: any; Infinity: any; eval: any; parseInt: any; parseFloat: any; isNaN: any; isFinite: any; decodeURI: any; decodeURIComponent: any; encodeURI: any; encodeURIComponent: any; escape: any; unescape: any; Symbol: any; Object: any; Function: any; String: any; Boolean: any; Number: any; Math: any; Date: any; RegExp: any; Error: any; EvalError: any; RangeError: any; ReferenceError: any; SyntaxError: any; TypeError: any; URIError: any; JSON: any; Array: any; Promise: any; ArrayBuffer: any; DataView: any; Int8Array: any; Uint8Array: any; Uint8ClampedArray: any; Int16Array: any; Uint16Array: any; Int32Array: any; Uint32Array: any; Float32Array: any; Float64Array: any; Intl: any; NodeFilter: any; AbortController: any; AbortSignal: any; AbstractRange: any; AnalyserNode: any; Animation: any; AnimationEffect: any; AnimationEvent: any; cancelAnimationFrame: any; requestAnimationFrame: any; AnimationPlaybackEvent: any; AnimationTimeline: any; Attr: any; AudioBuffer: any; AudioBufferSourceNode: any; AudioContext: any; AudioData: any; AudioDecoder: any; AudioDestinationNode: any; AudioEncoder: any; AudioListener: any; AudioNode: any; AudioParam: any; AudioParamMap: any; AudioProcessingEvent: any; AudioScheduledSourceNode: any; AudioWorklet: any; AudioWorkletNode: any; AuthenticatorAssertionResponse: any; AuthenticatorAttestationResponse: any; AuthenticatorResponse: any; BarProp: any; BaseAudioContext: any; BeforeUnloadEvent: any; BiquadFilterNode: any; Blob: any; BlobEvent: any; BroadcastChannel: any; ByteLengthQueuingStrategy: any; CDATASection: any; CSSAnimation: any; CSSConditionRule: any; CSSContainerRule: any; CSSCounterStyleRule: any; CSSFontFaceRule: any; CSSFontFeatureValuesRule: any; CSSFontPaletteValuesRule: any; CSSGroupingRule: any; CSSImageValue: any; CSSImportRule: any; CSSKeyframeRule: any; CSSKeyframesRule: any; CSSKeywordValue: any; CSSLayerBlockRule: any; CSSLayerStatementRule: any; CSSMathClamp: any; CSSMathInvert: any; CSSMathMax: any; CSSMathMin: any; CSSMathNegate: any; CSSMathProduct: any; CSSMathSum: any; CSSMathValue: any; CSSMatrixComponent: any; CSSMediaRule: any; CSSNamespaceRule: any; CSSNestedDeclarations: any; CSSNumericArray: any; CSSNumericValue: any; CSSPageRule: any; CSSPerspective: any; CSSPropertyRule: any; CSSRotate: any; CSSRule: any; CSSRuleList: any; CSSScale: any; CSSScopeRule: any; CSSSkew: any; CSSSkewX: any; CSSSkewY: any; CSSStartingStyleRule: any; CSSStyleDeclaration: any; CSSStyleRule: any; CSSStyleSheet: any; CSSStyleValue: any; CSSSupportsRule: any; CSSTransformComponent: any; CSSTransformValue: any; CSSTransition: any; CSSTranslate: any; CSSUnitValue: any; CSSUnparsedValue: any; CSSVariableReferenceValue: any; CSSViewTransitionRule: any; Cache: any; CacheStorage: any; CanvasCaptureMediaStreamTrack: any; CanvasGradient: any; CanvasPattern: any; CanvasRenderingContext2D: any; CaretPosition: any; ChannelMergerNode: any; ChannelSplitterNode: any; CharacterData: any; Clipboard: any; ClipboardEvent: any; ClipboardItem: any; CloseEvent: any; Comment: any; CompositionEvent: any; CompressionStream: any; ConstantSourceNode: any; ContentVisibilityAutoStateChangeEvent: any; ConvolverNode: any; CountQueuingStrategy: any; Credential: any; CredentialsContainer: any; Crypto: any; CryptoKey: any; CustomElementRegistry: any; CustomEvent: any; CustomStateSet: any; DOMException: any; DOMImplementation: any; DOMMatrix: any; SVGMatrix: any; WebKitCSSMatrix: any; DOMMatrixReadOnly: any; DOMParser: any; DOMPoint: any; SVGPoint: any; DOMPointReadOnly: any; DOMQuad: any; DOMRect: any; SVGRect: any; DOMRectList: any; DOMRectReadOnly: any; DOMStringList: any; DOMStringMap: any; DOMTokenList: any; DataTransfer: any; DataTransferItem: any; DataTransferItemList: any; DecompressionStream: any; DelayNode: any; DeviceMotionEvent: any; DeviceOrientationEvent: any; Document: any; DocumentFragment: any; DocumentTimeline: any; DocumentType: any; DragEvent: any; DynamicsCompressorNode: any; Element: any; ElementInternals: any; EncodedAudioChunk: any; EncodedVideoChunk: any; ErrorEvent: any; Event: any; EventCounts: any; EventSource: any; EventTarget: any; dispatchEvent: any; External: any; File: any; FileList: any; FileReader: any; FileSystem: any; FileSystemDirectoryEntry: any; FileSystemDirectoryHandle: any; FileSystemDirectoryReader: any; FileSystemEntry: any; FileSystemFileEntry: any; FileSystemFileHandle: any; FileSystemHandle: any; FileSystemWritableFileStream: any; FocusEvent: any; FontFace: any; FontFaceSet: any; FontFaceSetLoadEvent: any; FormData: any; FormDataEvent: any; FragmentDirective: any; GainNode: any; Gamepad: any; GamepadButton: any; GamepadEvent: any; GamepadHapticActuator: any; Geolocation: any; GeolocationCoordinates: any; GeolocationPosition: any; GeolocationPositionError: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onbeforeinput: any; onbeforetoggle: any; onblur: any; oncancel: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextlost: any; oncontextmenu: any; oncontextrestored: any; oncopy: any; oncuechange: any; oncut: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpaste: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onscrollend: any; onsecuritypolicyviolation: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onslotchange: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; HTMLAllCollection: any; HTMLAnchorElement: any; HTMLAreaElement: any; HTMLAudioElement: any; HTMLBRElement: any; HTMLBaseElement: any; HTMLBodyElement: any; HTMLButtonElement: any; HTMLCanvasElement: any; HTMLCollection: any; HTMLDListElement: any; HTMLDataElement: any; HTMLDataListElement: any; HTMLDetailsElement: any; HTMLDialogElement: any; HTMLDirectoryElement: any; HTMLDivElement: any; HTMLDocument: any; HTMLElement: any; HTMLEmbedElement: any; HTMLFieldSetElement: any; HTMLFontElement: any; HTMLFormControlsCollection: any; HTMLFormElement: any; HTMLFrameElement: any; HTMLFrameSetElement: any; HTMLHRElement: any; HTMLHeadElement: any; HTMLHeadingElement: any; HTMLHtmlElement: any; HTMLIFrameElement: any; HTMLImageElement: any; HTMLInputElement: any; HTMLLIElement: any; HTMLLabelElement: any; HTMLLegendElement: any; HTMLLinkElement: any; HTMLMapElement: any; HTMLMarqueeElement: any; HTMLMediaElement: any; HTMLMenuElement: any; HTMLMetaElement: any; HTMLMeterElement: any; HTMLModElement: any; HTMLOListElement: any; HTMLObjectElement: any; HTMLOptGroupElement: any; HTMLOptionElement: any; HTMLOptionsCollection: any; HTMLOutputElement: any; HTMLParagraphElement: any; HTMLParamElement: any; HTMLPictureElement: any; HTMLPreElement: any; HTMLProgressElement: any; HTMLQuoteElement: any; HTMLScriptElement: any; HTMLSelectElement: any; HTMLSlotElement: any; HTMLSourceElement: any; HTMLSpanElement: any; HTMLStyleElement: any; HTMLTableCaptionElement: any; HTMLTableCellElement: any; HTMLTableColElement: any; HTMLTableElement: any; HTMLTableRowElement: any; HTMLTableSectionElement: any; HTMLTemplateElement: any; HTMLTextAreaElement: any; HTMLTimeElement: any; HTMLTitleElement: any; HTMLTrackElement: any; HTMLUListElement: any; HTMLUnknownElement: any; HTMLVideoElement: any; HashChangeEvent: any; Headers: any; Highlight: any; HighlightRegistry: any; History: any; IDBCursor: any; IDBCursorWithValue: any; IDBDatabase: any; IDBFactory: any; IDBIndex: any; IDBKeyRange: any; IDBObjectStore: any; IDBOpenDBRequest: any; IDBRequest: any; IDBTransaction: any; IDBVersionChangeEvent: any; IIRFilterNode: any; IdleDeadline: any; ImageBitmap: any; ImageBitmapRenderingContext: any; ImageData: any; ImageDecoder: any; ImageTrack: any; ImageTrackList: any; InputDeviceInfo: any; InputEvent: any; IntersectionObserver: any; IntersectionObserverEntry: any; KeyboardEvent: any; KeyframeEffect: any; LargestContentfulPaint: any; Location: any; Lock: any; LockManager: any; MIDIAccess: any; MIDIConnectionEvent: any; MIDIInput: any; MIDIInputMap: any; MIDIMessageEvent: any; MIDIOutput: any; MIDIOutputMap: any; MIDIPort: any; MathMLElement: any; MediaCapabilities: any; MediaDeviceInfo: any; MediaDevices: any; MediaElementAudioSourceNode: any; MediaEncryptedEvent: any; MediaError: any; MediaKeyMessageEvent: any; MediaKeySession: any; MediaKeyStatusMap: any; MediaKeySystemAccess: any; MediaKeys: any; MediaList: any; MediaMetadata: any; MediaQueryList: any; MediaQueryListEvent: any; MediaRecorder: any; MediaSession: any; MediaSource: any; MediaSourceHandle: any; MediaStream: any; MediaStreamAudioDestinationNode: any; MediaStreamAudioSourceNode: any; MediaStreamTrack: any; MediaStreamTrackEvent: any; MessageChannel: any; MessageEvent: any; MessagePort: any; MimeType: any; MimeTypeArray: any; MouseEvent: any; MutationObserver: any; MutationRecord: any; NamedNodeMap: any; NavigationActivation: any; NavigationHistoryEntry: any; NavigationPreloadManager: any; Navigator: any; Node: any; NodeIterator: any; NodeList: any; Notification: any; OfflineAudioCompletionEvent: any; OfflineAudioContext: any; OffscreenCanvas: any; OffscreenCanvasRenderingContext2D: any; OscillatorNode: any; OverconstrainedError: any; PageRevealEvent: any; PageSwapEvent: any; PageTransitionEvent: any; PannerNode: any; Path2D: any; PaymentAddress: any; PaymentMethodChangeEvent: any; PaymentRequest: any; PaymentRequestUpdateEvent: any; PaymentResponse: any; Performance: any; PerformanceEntry: any; PerformanceEventTiming: any; PerformanceMark: any; PerformanceMeasure: any; PerformanceNavigation: any; PerformanceNavigationTiming: any; PerformanceObserver: any; PerformanceObserverEntryList: any; PerformancePaintTiming: any; PerformanceResourceTiming: any; PerformanceServerTiming: any; PerformanceTiming: any; PeriodicWave: any; PermissionStatus: any; Permissions: any; PictureInPictureEvent: any; PictureInPictureWindow: any; Plugin: any; PluginArray: any; PointerEvent: any; PopStateEvent: any; ProcessingInstruction: any; ProgressEvent: any; PromiseRejectionEvent: any; PublicKeyCredential: any; PushManager: any; PushSubscription: any; PushSubscriptionOptions: any; RTCCertificate: any; RTCDTMFSender: any; RTCDTMFToneChangeEvent: any; RTCDataChannel: any; RTCDataChannelEvent: any; RTCDtlsTransport: any; RTCEncodedAudioFrame: any; RTCEncodedVideoFrame: any; RTCError: any; RTCErrorEvent: any; RTCIceCandidate: any; RTCIceTransport: any; RTCPeerConnection: any; RTCPeerConnectionIceErrorEvent: any; RTCPeerConnectionIceEvent: any; RTCRtpReceiver: any; RTCRtpScriptTransform: any; RTCRtpSender: any; RTCRtpTransceiver: any; RTCSctpTransport: any; RTCSessionDescription: any; RTCStatsReport: any; RTCTrackEvent: any; RadioNodeList: any; Range: any; ReadableByteStreamController: any; ReadableStream: any; ReadableStreamBYOBReader: any; ReadableStreamBYOBRequest: any; ReadableStreamDefaultController: any; ReadableStreamDefaultReader: any; RemotePlayback: any; Report: any; ReportBody: any; ReportingObserver: any; Request: any; ResizeObserver: any; ResizeObserverEntry: any; ResizeObserverSize: any; Response: any; SVGAElement: any; SVGAngle: any; SVGAnimateElement: any; SVGAnimateMotionElement: any; SVGAnimateTransformElement: any; SVGAnimatedAngle: any; SVGAnimatedBoolean: any; SVGAnimatedEnumeration: any; SVGAnimatedInteger: any; SVGAnimatedLength: any; SVGAnimatedLengthList: any; SVGAnimatedNumber: any; SVGAnimatedNumberList: any; SVGAnimatedPreserveAspectRatio: any; SVGAnimatedRect: any; SVGAnimatedString: any; SVGAnimatedTransformList: any; SVGAnimationElement: any; SVGCircleElement: any; SVGClipPathElement: any; SVGComponentTransferFunctionElement: any; SVGDefsElement: any; SVGDescElement: any; SVGElement: any; SVGEllipseElement: any; SVGFEBlendElement: any; SVGFEColorMatrixElement: any; SVGFEComponentTransferElement: any; SVGFECompositeElement: any; SVGFEConvolveMatrixElement: any; SVGFEDiffuseLightingElement: any; SVGFEDisplacementMapElement: any; SVGFEDistantLightElement: any; SVGFEDropShadowElement: any; SVGFEFloodElement: any; SVGFEFuncAElement: any; SVGFEFuncBElement: any; SVGFEFuncGElement: any; SVGFEFuncRElement: any; SVGFEGaussianBlurElement: any; SVGFEImageElement: any; SVGFEMergeElement: any; SVGFEMergeNodeElement: any; SVGFEMorphologyElement: any; SVGFEOffsetElement: any; SVGFEPointLightElement: any; SVGFESpecularLightingElement: any; SVGFESpotLightElement: any; SVGFETileElement: any; SVGFETurbulenceElement: any; SVGFilterElement: any; SVGForeignObjectElement: any; SVGGElement: any; SVGGeometryElement: any; SVGGradientElement: any; SVGGraphicsElement: any; SVGImageElement: any; SVGLength: any; SVGLengthList: any; SVGLineElement: any; SVGLinearGradientElement: any; SVGMPathElement: any; SVGMarkerElement: any; SVGMaskElement: any; SVGMetadataElement: any; SVGNumber: any; SVGNumberList: any; SVGPathElement: any; SVGPatternElement: any; SVGPointList: any; SVGPolygonElement: any; SVGPolylineElement: any; SVGPreserveAspectRatio: any; SVGRadialGradientElement: any; SVGRectElement: any; SVGSVGElement: any; SVGScriptElement: any; SVGSetElement: any; SVGStopElement: any; SVGStringList: any; SVGStyleElement: any; SVGSwitchElement: any; SVGSymbolElement: any; SVGTSpanElement: any; SVGTextContentElement: any; SVGTextElement: any; SVGTextPathElement: any; SVGTextPositioningElement: any; SVGTitleElement: any; SVGTransform: any; SVGTransformList: any; SVGUnitTypes: any; SVGUseElement: any; SVGViewElement: any; Screen: any; ScreenOrientation: any; ScriptProcessorNode: any; SecurityPolicyViolationEvent: any; Selection: any; ServiceWorker: any; ServiceWorkerContainer: any; ServiceWorkerRegistration: any; ShadowRoot: any; SharedWorker: any; SourceBuffer: any; SourceBufferList: any; SpeechRecognitionAlternative: any; SpeechRecognitionResult: any; SpeechRecognitionResultList: any; SpeechSynthesis: any; SpeechSynthesisErrorEvent: any; SpeechSynthesisEvent: any; SpeechSynthesisUtterance: any; SpeechSynthesisVoice: any; StaticRange: any; StereoPannerNode: any; Storage: any; StorageEvent: any; StorageManager: any; StylePropertyMap: any; StylePropertyMapReadOnly: any; StyleSheet: any; StyleSheetList: any; SubmitEvent: any; SubtleCrypto: any; Text: any; TextDecoder: any; TextDecoderStream: any; TextEncoder: any; TextEncoderStream: any; TextEvent: any; TextMetrics: any; TextTrack: any; TextTrackCue: any; TextTrackCueList: any; TextTrackList: any; TimeRanges: any; ToggleEvent: any; Touch: any; TouchEvent: any; TouchList: any; TrackEvent: any; TransformStream: any; TransformStreamDefaultController: any; TransitionEvent: any; TreeWalker: any; UIEvent: any; URL: any; webkitURL: any; URLSearchParams: any; UserActivation: any; VTTCue: any; VTTRegion: any; ValidityState: any; VideoColorSpace: any; VideoDecoder: any; VideoEncoder: any; VideoFrame: any; VideoPlaybackQuality: any; ViewTransition: any; ViewTransitionTypeSet: any; VisualViewport: any; WakeLock: any; WakeLockSentinel: any; WaveShaperNode: any; WebGL2RenderingContext: any; WebGLActiveInfo: any; WebGLBuffer: any; WebGLContextEvent: any; WebGLFramebuffer: any; WebGLProgram: any; WebGLQuery: any; WebGLRenderbuffer: any; WebGLRenderingContext: any; WebGLSampler: any; WebGLShader: any; WebGLShaderPrecisionFormat: any; WebGLSync: any; WebGLTexture: any; WebGLTransformFeedback: any; WebGLUniformLocation: any; WebGLVertexArrayObject: any; WebSocket: any; WebTransport: any; WebTransportBidirectionalStream: any; WebTransportDatagramDuplexStream: any; WebTransportError: any; WheelEvent: any; Window: any; clientInformation: any; closed: any; customElements: any; devicePixelRatio: any; document: any; event: any; external: any; frameElement: any; frames: any; history: any; innerHeight: any; innerWidth: any; length: any; location: any; locationbar: any; menubar: any; name: any; navigator: any; ondevicemotion: any; ondeviceorientation: any; ondeviceorientationabsolute: any; onorientationchange: any; opener: any; orientation: any; outerHeight: any; outerWidth: any; pageXOffset: any; pageYOffset: any; parent: any; personalbar: any; screen: any; screenLeft: any; screenTop: any; screenX: any; screenY: any; scrollX: any; scrollY: any; scrollbars: any; self: any; speechSynthesis: any; status: any; statusbar: any; toolbar: any; top: any; visualViewport: any; window: any; alert: any; blur: any; cancelIdleCallback: any; captureEvents: any; close: any; confirm: any; focus: any; getComputedStyle: any; getSelection: any; matchMedia: any; moveBy: any; moveTo: any; open: any; postMessage: any; print: any; prompt: any; releaseEvents: any; requestIdleCallback: any; resizeBy: any; resizeTo: any; scroll: any; scrollBy: any; scrollTo: any; stop: any; addEventListener: any; removeEventListener: any; onafterprint: any; onbeforeprint: any; onbeforeunload: any; ongamepadconnected: any; ongamepaddisconnected: any; onhashchange: any; onlanguagechange: any; onmessage: any; onmessageerror: any; onoffline: any; ononline: any; onpagehide: any; onpagereveal: any; onpageshow: any; onpageswap: any; onpopstate: any; onrejectionhandled: any; onstorage: any; onunhandledrejection: any; onunload: any; localStorage: any; caches: any; crossOriginIsolated: any; crypto: any; indexedDB: any; isSecureContext: any; origin: any; performance: any; atob: any; btoa: any; clearInterval: any; clearTimeout: any; createImageBitmap: any; fetch: any; queueMicrotask: any; reportError: any; setInterval: any; setTimeout: any; structuredClone: any; sessionStorage: any; Worker: any; Worklet: any; WritableStream: any; WritableStreamDefaultController: any; WritableStreamDefaultWriter: any; XMLDocument: any; XMLHttpRequest: any; XMLHttpRequestEventTarget: any; XMLHttpRequestUpload: any; XMLSerializer: any; XPathEvaluator: any; XPathExpression: any; XPathResult: any; XSLTProcessor: any; console: any; CSS: any; WebAssembly: any; Audio: any; Image: any; Option: any; toString: any; Map: any; WeakMap: any; Set: any; WeakSet: any; Proxy: any; Reflect: any; foo: any; readonly globalThis: any; undefined: any; }; designMode: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; dir: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly doctype: { after: any; before: any; remove: any; replaceWith: any; readonly name: any; readonly ownerDocument: any; readonly publicId: any; readonly systemId: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; }; readonly documentElement: { ariaAtomic: any; ariaAutoComplete: any; ariaBrailleLabel: any; ariaBrailleRoleDescription: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColIndexText: any; ariaColSpan: any; ariaCurrent: any; ariaDescription: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaInvalid: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRelevant: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowIndexText: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; role: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; readonly attributes: any; classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; readonly currentCSSZoom: any; id: any; innerHTML: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; checkVisibility: any; closest: any; computedStyleMap: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; getHTML: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setHTMLUnsafe: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; readonly attributeStyleMap: any; style: any; contentEditable: any; enterKeyHint: any; inputMode: any; readonly isContentEditable: any; dispatchEvent: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onbeforeinput: any; onbeforetoggle: any; onblur: any; oncancel: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextlost: any; oncontextmenu: any; oncontextrestored: any; oncopy: any; oncuechange: any; oncut: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpaste: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onscrollend: any; onsecuritypolicyviolation: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onslotchange: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; accessKey: any; readonly accessKeyLabel: any; autocapitalize: any; dir: any; draggable: any; hidden: any; inert: any; innerText: any; lang: any; readonly offsetHeight: any; readonly offsetLeft: any; readonly offsetParent: any; readonly offsetTop: any; readonly offsetWidth: any; outerText: any; popover: any; spellcheck: any; title: any; translate: any; writingSuggestions: any; attachInternals: any; click: any; hidePopover: any; showPopover: any; togglePopover: any; addEventListener: any; removeEventListener: any; autofocus: any; readonly dataset: any; nonce?: any; tabIndex: any; blur: any; focus: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly documentURI: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; domain: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly embeds: { readonly length: any; item: any; namedItem: any; }; fgColor: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly forms: { readonly length: any; item: any; namedItem: any; }; readonly fragmentDirective: unknown; readonly fullscreen: { valueOf: any; }; readonly fullscreenEnabled: { valueOf: any; }; readonly head: { ariaAtomic: any; ariaAutoComplete: any; ariaBrailleLabel: any; ariaBrailleRoleDescription: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColIndexText: any; ariaColSpan: any; ariaCurrent: any; ariaDescription: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaInvalid: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRelevant: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowIndexText: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; role: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; readonly attributes: any; classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; readonly currentCSSZoom: any; id: any; innerHTML: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; checkVisibility: any; closest: any; computedStyleMap: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; getHTML: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setHTMLUnsafe: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; readonly attributeStyleMap: any; style: any; contentEditable: any; enterKeyHint: any; inputMode: any; readonly isContentEditable: any; dispatchEvent: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onbeforeinput: any; onbeforetoggle: any; onblur: any; oncancel: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextlost: any; oncontextmenu: any; oncontextrestored: any; oncopy: any; oncuechange: any; oncut: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpaste: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onscrollend: any; onsecuritypolicyviolation: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onslotchange: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; accessKey: any; readonly accessKeyLabel: any; autocapitalize: any; dir: any; draggable: any; hidden: any; inert: any; innerText: any; lang: any; readonly offsetHeight: any; readonly offsetLeft: any; readonly offsetParent: any; readonly offsetTop: any; readonly offsetWidth: any; outerText: any; popover: any; spellcheck: any; title: any; translate: any; writingSuggestions: any; attachInternals: any; click: any; hidePopover: any; showPopover: any; togglePopover: any; addEventListener: any; removeEventListener: any; autofocus: any; readonly dataset: any; nonce?: any; tabIndex: any; blur: any; focus: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly hidden: { valueOf: any; }; readonly images: { readonly length: any; item: any; namedItem: any; }; readonly implementation: { createDocument: any; createDocumentType: any; createHTMLDocument: any; hasFeature: any; }; readonly inputEncoding: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly lastModified: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; linkColor: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly links: { readonly length: any; item: any; namedItem: any; }; location: { readonly ancestorOrigins: any; hash: any; host: any; hostname: any; href: any; toString: any; readonly origin: any; pathname: any; port: any; protocol: any; search: any; assign: any; reload: any; replace: any; }; onfullscreenchange: unknown; onfullscreenerror: unknown; onpointerlockchange: unknown; onpointerlockerror: unknown; onreadystatechange: unknown; onvisibilitychange: unknown; readonly ownerDocument: unknown; readonly pictureInPictureEnabled: { valueOf: any; }; readonly plugins: { readonly length: any; item: any; namedItem: any; }; readonly readyState: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly referrer: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly rootElement: { ariaAtomic: any; ariaAutoComplete: any; ariaBrailleLabel: any; ariaBrailleRoleDescription: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColIndexText: any; ariaColSpan: any; ariaCurrent: any; ariaDescription: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaInvalid: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRelevant: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowIndexText: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; role: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; readonly attributes: any; classList: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; readonly currentCSSZoom: any; id: any; innerHTML: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; checkVisibility: any; closest: any; computedStyleMap: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; getHTML: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setHTMLUnsafe: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; readonly attributeStyleMap: any; style: any; dispatchEvent: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onbeforeinput: any; onbeforetoggle: any; onblur: any; oncancel: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextlost: any; oncontextmenu: any; oncontextrestored: any; oncopy: any; oncuechange: any; oncut: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpaste: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onscrollend: any; onsecuritypolicyviolation: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onslotchange: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; autofocus: any; readonly dataset: any; nonce?: any; tabIndex: any; blur: any; focus: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly className: any; readonly ownerSVGElement: any; readonly viewportElement: any; readonly preserveAspectRatio: any; readonly viewBox: any; readonly transform: any; getBBox: any; getCTM: any; getScreenCTM: any; currentScale: any; readonly currentTranslate: any; readonly height: any; readonly width: any; readonly x: any; readonly y: any; animationsPaused: any; checkEnclosure: any; checkIntersection: any; createSVGAngle: any; createSVGLength: any; createSVGMatrix: any; createSVGNumber: any; createSVGPoint: any; createSVGRect: any; createSVGTransform: any; createSVGTransformFromMatrix: any; deselectAll: any; forceRedraw: any; getCurrentTime: any; getElementById: any; getEnclosureList: any; getIntersectionList: any; pauseAnimations: any; setCurrentTime: any; suspendRedraw: any; unpauseAnimations: any; unsuspendRedraw: any; unsuspendRedrawAll: any; addEventListener: any; removeEventListener: any; readonly requiredExtensions: any; readonly systemLanguage: any; readonly assignedSlot: any; onafterprint: any; onbeforeprint: any; onbeforeunload: any; ongamepadconnected: any; ongamepaddisconnected: any; onhashchange: any; onlanguagechange: any; onmessage: any; onmessageerror: any; onoffline: any; ononline: any; onpagehide: any; onpagereveal: any; onpageshow: any; onpageswap: any; onpopstate: any; onrejectionhandled: any; onstorage: any; onunhandledrejection: any; onunload: any; }; readonly scripts: { readonly length: any; item: any; namedItem: any; }; readonly scrollingElement: { ariaAtomic: any; ariaAutoComplete: any; ariaBrailleLabel: any; ariaBrailleRoleDescription: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColIndexText: any; ariaColSpan: any; ariaCurrent: any; ariaDescription: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaInvalid: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRelevant: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowIndexText: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; role: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; readonly attributes: any; classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; readonly currentCSSZoom: any; id: any; innerHTML: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; checkVisibility: any; closest: any; computedStyleMap: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; getHTML: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setHTMLUnsafe: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; dispatchEvent: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly timeline: { readonly currentTime: any; }; title: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly visibilityState: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; vlinkColor: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; adoptNode: unknown; captureEvents: unknown; caretPositionFromPoint: unknown; caretRangeFromPoint: unknown; clear: unknown; close: unknown; createAttribute: unknown; createAttributeNS: unknown; createCDATASection: unknown; createComment: unknown; createDocumentFragment: unknown; createElement: unknown; createElementNS: unknown; createEvent: unknown; createNodeIterator: unknown; createProcessingInstruction: unknown; createRange: unknown; createTextNode: unknown; createTreeWalker: unknown; execCommand: unknown; exitFullscreen: unknown; exitPictureInPicture: unknown; exitPointerLock: unknown; getElementById: unknown; getElementsByClassName: unknown; getElementsByName: unknown; getElementsByTagName: unknown; getElementsByTagNameNS: unknown; getSelection: unknown; hasFocus: unknown; hasStorageAccess: unknown; importNode: unknown; open: unknown; queryCommandEnabled: unknown; queryCommandIndeterm: unknown; queryCommandState: unknown; queryCommandSupported: unknown; queryCommandValue: unknown; releaseEvents: unknown; requestStorageAccess: unknown; startViewTransition: unknown; write: unknown; writeln: unknown; addEventListener: unknown; removeEventListener: unknown; readonly activeElement: { ariaAtomic: any; ariaAutoComplete: any; ariaBrailleLabel: any; ariaBrailleRoleDescription: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColIndexText: any; ariaColSpan: any; ariaCurrent: any; ariaDescription: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaInvalid: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRelevant: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowIndexText: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; role: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; readonly attributes: any; classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; readonly currentCSSZoom: any; id: any; innerHTML: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; checkVisibility: any; closest: any; computedStyleMap: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; getHTML: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setHTMLUnsafe: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; dispatchEvent: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; adoptedStyleSheets: { readonly cssRules: any; readonly ownerRule: any; readonly rules: any; addRule: any; deleteRule: any; insertRule: any; removeRule: any; replace: any; replaceSync: any; disabled: any; readonly href: any; media: any; readonly ownerNode: any; readonly parentStyleSheet: any; readonly title: any; readonly type: any; }[]; readonly fullscreenElement: { ariaAtomic: any; ariaAutoComplete: any; ariaBrailleLabel: any; ariaBrailleRoleDescription: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColIndexText: any; ariaColSpan: any; ariaCurrent: any; ariaDescription: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaInvalid: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRelevant: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowIndexText: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; role: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; readonly attributes: any; classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; readonly currentCSSZoom: any; id: any; innerHTML: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; checkVisibility: any; closest: any; computedStyleMap: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; getHTML: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setHTMLUnsafe: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; dispatchEvent: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly pictureInPictureElement: { ariaAtomic: any; ariaAutoComplete: any; ariaBrailleLabel: any; ariaBrailleRoleDescription: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColIndexText: any; ariaColSpan: any; ariaCurrent: any; ariaDescription: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaInvalid: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRelevant: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowIndexText: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; role: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; readonly attributes: any; classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; readonly currentCSSZoom: any; id: any; innerHTML: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; checkVisibility: any; closest: any; computedStyleMap: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; getHTML: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setHTMLUnsafe: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; dispatchEvent: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly pointerLockElement: { ariaAtomic: any; ariaAutoComplete: any; ariaBrailleLabel: any; ariaBrailleRoleDescription: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColIndexText: any; ariaColSpan: any; ariaCurrent: any; ariaDescription: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaInvalid: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRelevant: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowIndexText: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; role: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; readonly attributes: any; classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; readonly currentCSSZoom: any; id: any; innerHTML: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; checkVisibility: any; closest: any; computedStyleMap: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; getHTML: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setHTMLUnsafe: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; dispatchEvent: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly styleSheets: { readonly length: any; item: any; }; elementFromPoint: unknown; elementsFromPoint: unknown; getAnimations: unknown; dispatchEvent: unknown; readonly fonts: { dispatchEvent: any; onloading: any; onloadingdone: any; onloadingerror: any; readonly ready: any; readonly status: any; check: any; load: any; forEach: any; addEventListener: any; removeEventListener: any; }; onabort: unknown; onanimationcancel: unknown; onanimationend: unknown; onanimationiteration: unknown; onanimationstart: unknown; onauxclick: unknown; onbeforeinput: unknown; onbeforetoggle: unknown; onblur: unknown; oncancel: unknown; oncanplay: unknown; oncanplaythrough: unknown; onchange: unknown; onclick: unknown; onclose: unknown; oncontextlost: unknown; oncontextmenu: unknown; oncontextrestored: unknown; oncopy: unknown; oncuechange: unknown; oncut: unknown; ondblclick: unknown; ondrag: unknown; ondragend: unknown; ondragenter: unknown; ondragleave: unknown; ondragover: unknown; ondragstart: unknown; ondrop: unknown; ondurationchange: unknown; onemptied: unknown; onended: unknown; onerror: unknown; onfocus: unknown; onformdata: unknown; ongotpointercapture: unknown; oninput: unknown; oninvalid: unknown; onkeydown: unknown; onkeypress: unknown; onkeyup: unknown; onload: unknown; onloadeddata: unknown; onloadedmetadata: unknown; onloadstart: unknown; onlostpointercapture: unknown; onmousedown: unknown; onmouseenter: unknown; onmouseleave: unknown; onmousemove: unknown; onmouseout: unknown; onmouseover: unknown; onmouseup: unknown; onpaste: unknown; onpause: unknown; onplay: unknown; onplaying: unknown; onpointercancel: unknown; onpointerdown: unknown; onpointerenter: unknown; onpointerleave: unknown; onpointermove: unknown; onpointerout: unknown; onpointerover: unknown; onpointerup: unknown; onprogress: unknown; onratechange: unknown; onreset: unknown; onresize: unknown; onscroll: unknown; onscrollend: unknown; onsecuritypolicyviolation: unknown; onseeked: unknown; onseeking: unknown; onselect: unknown; onselectionchange: unknown; onselectstart: unknown; onslotchange: unknown; onstalled: unknown; onsubmit: unknown; onsuspend: unknown; ontimeupdate: unknown; ontoggle: unknown; ontouchcancel?: unknown; ontouchend?: unknown; ontouchmove?: unknown; ontouchstart?: unknown; ontransitioncancel: unknown; ontransitionend: unknown; ontransitionrun: unknown; ontransitionstart: unknown; onvolumechange: unknown; onwaiting: unknown; onwebkitanimationend: unknown; onwebkitanimationiteration: unknown; onwebkitanimationstart: unknown; onwebkittransitionend: unknown; onwheel: unknown; readonly baseURI: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly childNodes: { readonly length: any; item: any; forEach: any; }; readonly firstChild: { after: any; before: any; remove: any; replaceWith: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; }; readonly isConnected: { valueOf: any; }; readonly lastChild: { after: any; before: any; remove: any; replaceWith: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; }; readonly nextSibling: { after: any; before: any; remove: any; replaceWith: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; }; readonly nodeName: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly nodeType: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; nodeValue: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly parentElement: { ariaAtomic: any; ariaAutoComplete: any; ariaBrailleLabel: any; ariaBrailleRoleDescription: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColIndexText: any; ariaColSpan: any; ariaCurrent: any; ariaDescription: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaInvalid: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRelevant: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowIndexText: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; role: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; readonly attributes: any; classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; readonly currentCSSZoom: any; id: any; innerHTML: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; checkVisibility: any; closest: any; computedStyleMap: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; getHTML: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setHTMLUnsafe: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; readonly attributeStyleMap: any; style: any; contentEditable: any; enterKeyHint: any; inputMode: any; readonly isContentEditable: any; dispatchEvent: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onbeforeinput: any; onbeforetoggle: any; onblur: any; oncancel: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextlost: any; oncontextmenu: any; oncontextrestored: any; oncopy: any; oncuechange: any; oncut: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpaste: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onscrollend: any; onsecuritypolicyviolation: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onslotchange: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; accessKey: any; readonly accessKeyLabel: any; autocapitalize: any; dir: any; draggable: any; hidden: any; inert: any; innerText: any; lang: any; readonly offsetHeight: any; readonly offsetLeft: any; readonly offsetParent: any; readonly offsetTop: any; readonly offsetWidth: any; outerText: any; popover: any; spellcheck: any; title: any; translate: any; writingSuggestions: any; attachInternals: any; click: any; hidePopover: any; showPopover: any; togglePopover: any; addEventListener: any; removeEventListener: any; autofocus: any; readonly dataset: any; nonce?: any; tabIndex: any; blur: any; focus: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly parentNode: { addEventListener: any; dispatchEvent: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; }; readonly previousSibling: { after: any; before: any; remove: any; replaceWith: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; }; textContent: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; appendChild: unknown; cloneNode: unknown; compareDocumentPosition: unknown; contains: unknown; getRootNode: unknown; hasChildNodes: unknown; insertBefore: unknown; isDefaultNamespace: unknown; isEqualNode: unknown; isSameNode: unknown; lookupNamespaceURI: unknown; lookupPrefix: unknown; normalize: unknown; removeChild: unknown; replaceChild: unknown; readonly ELEMENT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly ATTRIBUTE_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly TEXT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly CDATA_SECTION_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly ENTITY_REFERENCE_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly ENTITY_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly PROCESSING_INSTRUCTION_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly COMMENT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_TYPE_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_FRAGMENT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly NOTATION_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_DISCONNECTED: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_PRECEDING: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_FOLLOWING: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_CONTAINS: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_CONTAINED_BY: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly childElementCount: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly children: { readonly length: any; item: any; namedItem: any; }; readonly firstElementChild: { ariaAtomic: any; ariaAutoComplete: any; ariaBrailleLabel: any; ariaBrailleRoleDescription: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColIndexText: any; ariaColSpan: any; ariaCurrent: any; ariaDescription: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaInvalid: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRelevant: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowIndexText: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; role: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; readonly attributes: any; classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; readonly currentCSSZoom: any; id: any; innerHTML: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; checkVisibility: any; closest: any; computedStyleMap: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; getHTML: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setHTMLUnsafe: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; dispatchEvent: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly lastElementChild: { ariaAtomic: any; ariaAutoComplete: any; ariaBrailleLabel: any; ariaBrailleRoleDescription: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColIndexText: any; ariaColSpan: any; ariaCurrent: any; ariaDescription: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaInvalid: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRelevant: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowIndexText: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; role: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; readonly attributes: any; classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; readonly currentCSSZoom: any; id: any; innerHTML: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; checkVisibility: any; closest: any; computedStyleMap: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; getHTML: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setHTMLUnsafe: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; dispatchEvent: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; append: unknown; prepend: unknown; querySelector: unknown; querySelectorAll: unknown; replaceChildren: unknown; createExpression: unknown; createNSResolver: unknown; evaluate: unknown; } +>activeElement : { ariaAtomic: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaAutoComplete: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaBrailleLabel: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaBrailleRoleDescription: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaBusy: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaChecked: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaColCount: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaColIndex: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaColIndexText: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaColSpan: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaCurrent: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaDescription: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaDisabled: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaExpanded: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaHasPopup: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaHidden: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaInvalid: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaKeyShortcuts: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaLabel: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaLevel: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaLive: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaModal: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaMultiLine: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaMultiSelectable: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaOrientation: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaPlaceholder: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaPosInSet: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaPressed: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaReadOnly: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaRelevant: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaRequired: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaRoleDescription: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaRowCount: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaRowIndex: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaRowIndexText: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaRowSpan: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaSelected: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaSetSize: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaSort: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaValueMax: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaValueMin: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaValueNow: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaValueText: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; role: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; animate: unknown; getAnimations: unknown; after: unknown; before: unknown; remove: unknown; replaceWith: unknown; readonly attributes: { readonly length: any; getNamedItem: any; getNamedItemNS: any; item: any; removeNamedItem: any; removeNamedItemNS: any; setNamedItem: any; setNamedItemNS: any; }; classList: { readonly length: any; value: any; toString: any; add: any; contains: any; item: any; remove: any; replace: any; supports: any; toggle: any; forEach: any; }; className: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly clientHeight: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly clientLeft: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly clientTop: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly clientWidth: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly currentCSSZoom: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; id: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; innerHTML: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly localName: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly namespaceURI: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; onfullscreenchange: unknown; onfullscreenerror: unknown; outerHTML: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly ownerDocument: { readonly URL: any; alinkColor: any; readonly all: any; readonly anchors: any; readonly applets: any; bgColor: any; body: any; readonly characterSet: any; readonly charset: any; readonly compatMode: any; readonly contentType: any; cookie: any; readonly currentScript: any; readonly defaultView: any; designMode: any; dir: any; readonly doctype: any; readonly documentElement: any; readonly documentURI: any; domain: any; readonly embeds: any; fgColor: any; readonly forms: any; readonly fragmentDirective: any; readonly fullscreen: any; readonly fullscreenEnabled: any; readonly head: any; readonly hidden: any; readonly images: any; readonly implementation: any; readonly inputEncoding: any; readonly lastModified: any; linkColor: any; readonly links: any; location: any; onfullscreenchange: any; onfullscreenerror: any; onpointerlockchange: any; onpointerlockerror: any; onreadystatechange: any; onvisibilitychange: any; readonly ownerDocument: any; readonly pictureInPictureEnabled: any; readonly plugins: any; readonly readyState: any; readonly referrer: any; readonly rootElement: any; readonly scripts: any; readonly scrollingElement: any; readonly timeline: any; title: any; readonly visibilityState: any; vlinkColor: any; adoptNode: any; captureEvents: any; caretPositionFromPoint: any; caretRangeFromPoint: any; clear: any; close: any; createAttribute: any; createAttributeNS: any; createCDATASection: any; createComment: any; createDocumentFragment: any; createElement: any; createElementNS: any; createEvent: any; createNodeIterator: any; createProcessingInstruction: any; createRange: any; createTextNode: any; createTreeWalker: any; execCommand: any; exitFullscreen: any; exitPictureInPicture: any; exitPointerLock: any; getElementById: any; getElementsByClassName: any; getElementsByName: any; getElementsByTagName: any; getElementsByTagNameNS: any; getSelection: any; hasFocus: any; hasStorageAccess: any; importNode: any; open: any; queryCommandEnabled: any; queryCommandIndeterm: any; queryCommandState: any; queryCommandSupported: any; queryCommandValue: any; releaseEvents: any; requestStorageAccess: any; startViewTransition: any; write: any; writeln: any; addEventListener: any; removeEventListener: any; readonly activeElement: any; adoptedStyleSheets: any; readonly fullscreenElement: any; readonly pictureInPictureElement: any; readonly pointerLockElement: any; readonly styleSheets: any; elementFromPoint: any; elementsFromPoint: any; getAnimations: any; dispatchEvent: any; readonly fonts: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onbeforeinput: any; onbeforetoggle: any; onblur: any; oncancel: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextlost: any; oncontextmenu: any; oncontextrestored: any; oncopy: any; oncuechange: any; oncut: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpaste: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onscrollend: any; onsecuritypolicyviolation: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onslotchange: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; createExpression: any; createNSResolver: any; evaluate: any; }; part: { readonly length: any; value: any; toString: any; add: any; contains: any; item: any; remove: any; replace: any; supports: any; toggle: any; forEach: any; }; readonly prefix: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly scrollHeight: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; scrollLeft: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; scrollTop: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly scrollWidth: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly shadowRoot: { readonly ownerDocument: any; getElementById: any; readonly activeElement: any; adoptedStyleSheets: any; readonly fullscreenElement: any; readonly pictureInPictureElement: any; readonly pointerLockElement: any; readonly styleSheets: any; elementFromPoint: any; elementsFromPoint: any; getAnimations: any; dispatchEvent: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly clonable: any; readonly delegatesFocus: any; readonly host: any; innerHTML: any; readonly mode: any; onslotchange: any; readonly serializable: any; readonly slotAssignment: any; getHTML: any; setHTMLUnsafe: any; addEventListener: any; removeEventListener: any; }; slot: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly tagName: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; attachShadow: unknown; checkVisibility: unknown; closest: unknown; computedStyleMap: unknown; getAttribute: unknown; getAttributeNS: unknown; getAttributeNames: unknown; getAttributeNode: unknown; getAttributeNodeNS: unknown; getBoundingClientRect: unknown; getClientRects: unknown; getElementsByClassName: unknown; getElementsByTagName: unknown; getElementsByTagNameNS: unknown; getHTML: unknown; hasAttribute: unknown; hasAttributeNS: unknown; hasAttributes: unknown; hasPointerCapture: unknown; insertAdjacentElement: unknown; insertAdjacentHTML: unknown; insertAdjacentText: unknown; matches: unknown; releasePointerCapture: unknown; removeAttribute: unknown; removeAttributeNS: unknown; removeAttributeNode: unknown; requestFullscreen: unknown; requestPointerLock: unknown; scroll: unknown; scrollBy: unknown; scrollIntoView: unknown; scrollTo: unknown; setAttribute: unknown; setAttributeNS: unknown; setAttributeNode: unknown; setAttributeNodeNS: unknown; setHTMLUnsafe: unknown; setPointerCapture: unknown; toggleAttribute: unknown; webkitMatchesSelector: unknown; addEventListener: unknown; removeEventListener: unknown; dispatchEvent: unknown; readonly baseURI: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly childNodes: { readonly length: any; item: any; forEach: any; }; readonly firstChild: { after: any; before: any; remove: any; replaceWith: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; }; readonly isConnected: { valueOf: any; }; readonly lastChild: { after: any; before: any; remove: any; replaceWith: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; }; readonly nextSibling: { after: any; before: any; remove: any; replaceWith: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; }; readonly nodeName: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly nodeType: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; nodeValue: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly parentElement: { ariaAtomic: any; ariaAutoComplete: any; ariaBrailleLabel: any; ariaBrailleRoleDescription: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColIndexText: any; ariaColSpan: any; ariaCurrent: any; ariaDescription: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaInvalid: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRelevant: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowIndexText: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; role: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; readonly attributes: any; classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; readonly currentCSSZoom: any; id: any; innerHTML: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; checkVisibility: any; closest: any; computedStyleMap: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; getHTML: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setHTMLUnsafe: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; readonly attributeStyleMap: any; style: any; contentEditable: any; enterKeyHint: any; inputMode: any; readonly isContentEditable: any; dispatchEvent: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onbeforeinput: any; onbeforetoggle: any; onblur: any; oncancel: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextlost: any; oncontextmenu: any; oncontextrestored: any; oncopy: any; oncuechange: any; oncut: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpaste: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onscrollend: any; onsecuritypolicyviolation: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onslotchange: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; accessKey: any; readonly accessKeyLabel: any; autocapitalize: any; dir: any; draggable: any; hidden: any; inert: any; innerText: any; lang: any; readonly offsetHeight: any; readonly offsetLeft: any; readonly offsetParent: any; readonly offsetTop: any; readonly offsetWidth: any; outerText: any; popover: any; spellcheck: any; title: any; translate: any; writingSuggestions: any; attachInternals: any; click: any; hidePopover: any; showPopover: any; togglePopover: any; addEventListener: any; removeEventListener: any; autofocus: any; readonly dataset: any; nonce?: any; tabIndex: any; blur: any; focus: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly parentNode: { addEventListener: any; dispatchEvent: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; }; readonly previousSibling: { after: any; before: any; remove: any; replaceWith: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; }; textContent: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; appendChild: unknown; cloneNode: unknown; compareDocumentPosition: unknown; contains: unknown; getRootNode: unknown; hasChildNodes: unknown; insertBefore: unknown; isDefaultNamespace: unknown; isEqualNode: unknown; isSameNode: unknown; lookupNamespaceURI: unknown; lookupPrefix: unknown; normalize: unknown; removeChild: unknown; replaceChild: unknown; readonly ELEMENT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly ATTRIBUTE_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly TEXT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly CDATA_SECTION_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly ENTITY_REFERENCE_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly ENTITY_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly PROCESSING_INSTRUCTION_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly COMMENT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_TYPE_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_FRAGMENT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly NOTATION_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_DISCONNECTED: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_PRECEDING: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_FOLLOWING: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_CONTAINS: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_CONTAINED_BY: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly nextElementSibling: { ariaAtomic: any; ariaAutoComplete: any; ariaBrailleLabel: any; ariaBrailleRoleDescription: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColIndexText: any; ariaColSpan: any; ariaCurrent: any; ariaDescription: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaInvalid: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRelevant: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowIndexText: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; role: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; readonly attributes: any; classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; readonly currentCSSZoom: any; id: any; innerHTML: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; checkVisibility: any; closest: any; computedStyleMap: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; getHTML: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setHTMLUnsafe: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; dispatchEvent: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly previousElementSibling: { ariaAtomic: any; ariaAutoComplete: any; ariaBrailleLabel: any; ariaBrailleRoleDescription: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColIndexText: any; ariaColSpan: any; ariaCurrent: any; ariaDescription: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaInvalid: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRelevant: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowIndexText: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; role: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; readonly attributes: any; classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; readonly currentCSSZoom: any; id: any; innerHTML: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; checkVisibility: any; closest: any; computedStyleMap: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; getHTML: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setHTMLUnsafe: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; dispatchEvent: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly childElementCount: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly children: { readonly length: any; item: any; namedItem: any; }; readonly firstElementChild: { ariaAtomic: any; ariaAutoComplete: any; ariaBrailleLabel: any; ariaBrailleRoleDescription: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColIndexText: any; ariaColSpan: any; ariaCurrent: any; ariaDescription: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaInvalid: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRelevant: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowIndexText: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; role: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; readonly attributes: any; classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; readonly currentCSSZoom: any; id: any; innerHTML: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; checkVisibility: any; closest: any; computedStyleMap: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; getHTML: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setHTMLUnsafe: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; dispatchEvent: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly lastElementChild: { ariaAtomic: any; ariaAutoComplete: any; ariaBrailleLabel: any; ariaBrailleRoleDescription: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColIndexText: any; ariaColSpan: any; ariaCurrent: any; ariaDescription: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaInvalid: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRelevant: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowIndexText: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; role: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; readonly attributes: any; classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; readonly currentCSSZoom: any; id: any; innerHTML: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; checkVisibility: any; closest: any; computedStyleMap: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; getHTML: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setHTMLUnsafe: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; dispatchEvent: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; append: unknown; prepend: unknown; querySelector: unknown; querySelectorAll: unknown; replaceChildren: unknown; readonly assignedSlot: { ariaAtomic: any; ariaAutoComplete: any; ariaBrailleLabel: any; ariaBrailleRoleDescription: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColIndexText: any; ariaColSpan: any; ariaCurrent: any; ariaDescription: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaInvalid: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRelevant: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowIndexText: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; role: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; readonly attributes: any; classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; readonly currentCSSZoom: any; id: any; innerHTML: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; checkVisibility: any; closest: any; computedStyleMap: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; getHTML: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setHTMLUnsafe: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; readonly attributeStyleMap: any; style: any; contentEditable: any; enterKeyHint: any; inputMode: any; readonly isContentEditable: any; dispatchEvent: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onbeforeinput: any; onbeforetoggle: any; onblur: any; oncancel: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextlost: any; oncontextmenu: any; oncontextrestored: any; oncopy: any; oncuechange: any; oncut: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpaste: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onscrollend: any; onsecuritypolicyviolation: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onslotchange: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; accessKey: any; readonly accessKeyLabel: any; autocapitalize: any; dir: any; draggable: any; hidden: any; inert: any; innerText: any; lang: any; readonly offsetHeight: any; readonly offsetLeft: any; readonly offsetParent: any; readonly offsetTop: any; readonly offsetWidth: any; outerText: any; popover: any; spellcheck: any; title: any; translate: any; writingSuggestions: any; attachInternals: any; click: any; hidePopover: any; showPopover: any; togglePopover: any; autofocus: any; readonly dataset: any; nonce?: any; tabIndex: any; blur: any; focus: any; name: any; assign: any; assignedElements: any; assignedNodes: any; addEventListener: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; } +>className : { toString: unknown; charAt: unknown; charCodeAt: unknown; concat: unknown; indexOf: unknown; lastIndexOf: unknown; localeCompare: unknown; match: unknown; replace: unknown; search: unknown; slice: unknown; split: unknown; substring: unknown; toLowerCase: unknown; toLocaleLowerCase: unknown; toUpperCase: unknown; toLocaleUpperCase: unknown; trim: unknown; readonly length: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; substr: unknown; valueOf: unknown; codePointAt: unknown; includes: unknown; endsWith: unknown; normalize: unknown; repeat: unknown; startsWith: unknown; anchor: unknown; big: unknown; blink: unknown; bold: unknown; fixed: unknown; fontcolor: unknown; fontsize: unknown; italics: unknown; link: unknown; small: unknown; strike: unknown; sub: unknown; sup: unknown; [Symbol.iterator]: unknown; } +>length : { toString: unknown; toFixed: unknown; toExponential: unknown; toPrecision: unknown; valueOf: unknown; toLocaleString: unknown; } + diff --git a/testdata/baselines/reference/submodule/compiler/modulePreserve4.js b/testdata/baselines/reference/submodule/compiler/modulePreserve4.js new file mode 100644 index 0000000000..bd958b8391 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/modulePreserve4.js @@ -0,0 +1,232 @@ +//// [tests/cases/compiler/modulePreserve4.ts] //// + +//// [a.js] +export const x = 0; +module.exports.y = 0; // Error + +//// [b.ts] +export default 0; + +//// [c.ts] +export = { + default: function() {} +}; + +//// [d.ts] +export = function() {}; + +//// [e.mts] +export = 0; + +//// [f.cts] +export default 0; + +//// [g.js] +exports.default = 0; + +//// [main1.ts] +import { x, y } from "./a"; // No y +import a1 = require("./a"); // { x: 0 } +const a2 = require("./a"); // Error in TS +const a3 = await import("./a"); // { x: 0 } +a3.x; + +import b1 from "./b"; // 0 +import b2 = require("./b"); // { default: 0 } +b2.default; +const b3 = await import("./b"); // { default: 0 } +b3.default; + +import c1 from "./c"; // { default: [Function: default] } +import c2 = require("./c"); // { default: [Function: default] } +c2.default; +import d1 from "./d"; // [Function: default] +import d2 = require("./d"); // [Function: default] +d2(); +d2.default(); // Error +const d3 = await import("./d"); // { default: [Function: default] } +d3.default(); + +import e1 from "./e.mjs"; // 0 +import e2 = require("./e.mjs"); // 0 +import f1 from "./f.cjs"; // 0 +import f2 = require("./f.cjs"); // { default: 0 } +f2.default; + +import g1 from "./g"; // { default: 0 } +g1.default; +import g2 = require("./g"); // { default: 0 } +g2.default; + +//// [main2.mts] +import { x, y } from "./a"; // No y +import a1 = require("./a"); // { x: 0 } +a1.x; +a1.default.x; // Arguably should exist but doesn't +const a2 = require("./a"); // Error in TS + +import b1 from "./b"; // 0 +import b2 = require("./b"); // { default: 0 } + +import c1 from "./c"; // { default: [Function: default] } +import c2 = require("./c"); // { default: [Function: default] } +import d1 from "./d"; // [Function: default] +import d2 = require("./d"); // [Function: default] +import e1 from "./e.mjs"; // 0 +import e2 = require("./e.mjs"); // 0 +import f1 from "./f.cjs"; // 0 +import f2 = require("./f.cjs"); // { default: 0 } + +import g1 from "./g"; // { default: 0 } +import g2 = require("./g"); // { default: 0 } + +//// [main3.cjs] +import { x, y } from "./a"; // No y +import a1 = require("./a"); // Error in JS +const a2 = require("./a"); // { x: 0 } + +import b1 from "./b"; // 0 +const b2 = require("./b"); // { default: 0 } + +import c1 from "./c"; // { default: [Function: default] } +const c2 = require("./c"); // { default: [Function: default] } +import d1 from "./d"; // [Function: default] +const d2 = require("./d"); // [Function: default] +import e1 from "./e.mjs"; // 0 +const e2 = require("./e.mjs"); // 0 +import f1 from "./f.cjs"; // 0 +const f2 = require("./f.cjs"); // { default: 0 } + +import g1 from "./g"; // { default: 0 } +const g2 = require("./g"); // { default: 0 } + +//// [main4.cjs] +exports.x = require("./g"); + +//// [dummy.ts] +export {}; // Silly test harness + + +//// [a.js] +export const x = 0; +export var y = 0; +module.exports.y = 0; // Error +//// [b.js] +export default 0; +//// [c.js] +module.exports = { + default: function () { } +}; +//// [d.js] +module.exports = function () { }; +//// [e.mjs] +module.exports = 0; +//// [f.cjs] +export default 0; +//// [g.js] +export var default = 0; +exports.default = 0; +//// [main1.js] +import { x, y } from "./a"; // No y +const a1 = require("./a"); // { x: 0 } +const a2 = require("./a"); // Error in TS +const a3 = await import("./a"); // { x: 0 } +a3.x; +import b1 from "./b"; // 0 +const b2 = require("./b"); // { default: 0 } +b2.default; +const b3 = await import("./b"); // { default: 0 } +b3.default; +import c1 from "./c"; // { default: [Function: default] } +const c2 = require("./c"); // { default: [Function: default] } +c2.default; +import d1 from "./d"; // [Function: default] +const d2 = require("./d"); // [Function: default] +d2(); +d2.default(); // Error +const d3 = await import("./d"); // { default: [Function: default] } +d3.default(); +import e1 from "./e.mjs"; // 0 +const e2 = require("./e.mjs"); // 0 +import f1 from "./f.cjs"; // 0 +const f2 = require("./f.cjs"); // { default: 0 } +f2.default; +import g1 from "./g"; // { default: 0 } +g1.default; +const g2 = require("./g"); // { default: 0 } +g2.default; +//// [main2.mjs] +import { x, y } from "./a"; // No y +const a1 = require("./a"); // { x: 0 } +a1.x; +a1.default.x; // Arguably should exist but doesn't +const a2 = require("./a"); // Error in TS +import b1 from "./b"; // 0 +const b2 = require("./b"); // { default: 0 } +import c1 from "./c"; // { default: [Function: default] } +const c2 = require("./c"); // { default: [Function: default] } +import d1 from "./d"; // [Function: default] +const d2 = require("./d"); // [Function: default] +import e1 from "./e.mjs"; // 0 +const e2 = require("./e.mjs"); // 0 +import f1 from "./f.cjs"; // 0 +const f2 = require("./f.cjs"); // { default: 0 } +import g1 from "./g"; // { default: 0 } +const g2 = require("./g"); // { default: 0 } +//// [main3.cjs] +import { x, y } from "./a"; // No y +const a1 = require("./a"); // Error in JS +const a2 = require("./a"); // { x: 0 } +import b1 from "./b"; // 0 +const b2 = require("./b"); // { default: 0 } +import c1 from "./c"; // { default: [Function: default] } +const c2 = require("./c"); // { default: [Function: default] } +import d1 from "./d"; // [Function: default] +const d2 = require("./d"); // [Function: default] +import e1 from "./e.mjs"; // 0 +const e2 = require("./e.mjs"); // 0 +import f1 from "./f.cjs"; // 0 +const f2 = require("./f.cjs"); // { default: 0 } +import g1 from "./g"; // { default: 0 } +const g2 = require("./g"); // { default: 0 } +//// [main4.cjs] +export var x = require("./g"); +exports.x = require("./g"); +//// [dummy.js] +export {}; // Silly test harness + + +//// [a.d.ts] +export declare const x = 0; +export var y = 0; +//// [b.d.ts] +declare const _default: number; +export default _default; +//// [c.d.ts] +declare const _default: { + default: () => void; +}; +export = _default; +//// [d.d.ts] +declare const _default: () => void; +export = _default; +//// [e.d.mts] +declare const _default: number; +export = _default; +//// [f.d.cts] +declare const _default: number; +export default _default; +//// [g.d.ts] +export var default = 0; +export {}; +//// [main1.d.ts] +export {}; +//// [main2.d.mts] +export {}; +//// [main3.d.cts] +export {}; +//// [main4.d.cts] +export var x = require("./g"); +export {}; +//// [dummy.d.ts] +export {}; // Silly test harness diff --git a/testdata/baselines/reference/submodule/compiler/modulePreserve4.js.diff b/testdata/baselines/reference/submodule/compiler/modulePreserve4.js.diff new file mode 100644 index 0000000000..eba7308563 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/modulePreserve4.js.diff @@ -0,0 +1,68 @@ +--- old.modulePreserve4.js ++++ new.modulePreserve4.js +@@= skipped -108, +108 lines =@@ + + //// [a.js] + export const x = 0; ++export var y = 0; + module.exports.y = 0; // Error + //// [b.js] + export default 0; +@@= skipped -14, +15 lines =@@ + //// [f.cjs] + export default 0; + //// [g.js] +-"use strict"; ++export var default = 0; + exports.default = 0; + //// [main1.js] + import { x, y } from "./a"; // No y +@@= skipped -66, +66 lines =@@ + import g1 from "./g"; // { default: 0 } + const g2 = require("./g"); // { default: 0 } + //// [main4.cjs] ++export var x = require("./g"); + exports.x = require("./g"); + //// [dummy.js] + export {}; // Silly test harness + + + //// [a.d.ts] +-export const x: 0; ++export declare const x = 0; ++export var y = 0; + //// [b.d.ts] +-declare const _default: 0; ++declare const _default: number; + export default _default; + //// [c.d.ts] + declare const _default: { +@@= skipped -19, +21 lines =@@ + declare const _default: () => void; + export = _default; + //// [e.d.mts] +-declare const _default: 0; ++declare const _default: number; + export = _default; + //// [f.d.cts] +-declare const _default: 0; ++declare const _default: number; + export default _default; + //// [g.d.ts] +-declare const _default: 0; +-export default _default; ++export var default = 0; ++export {}; + //// [main1.d.ts] + export {}; + //// [main2.d.mts] +@@= skipped -15, +15 lines =@@ + //// [main3.d.cts] + export {}; + //// [main4.d.cts] +-export const x: typeof import("./g"); ++export var x = require("./g"); ++export {}; + //// [dummy.d.ts] +-export {}; ++export {}; // Silly test harness \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/moduleResolutionWithExtensions_notSupported2.js b/testdata/baselines/reference/submodule/compiler/moduleResolutionWithExtensions_notSupported2.js new file mode 100644 index 0000000000..df9c726924 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/moduleResolutionWithExtensions_notSupported2.js @@ -0,0 +1,11 @@ +//// [tests/cases/compiler/moduleResolutionWithExtensions_notSupported2.ts] //// + +//// [jsx.jsx] + +//// [a.ts] +import jsx from "./jsx"; + + +//// [a.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/testdata/baselines/reference/submodule/compiler/moduleResolutionWithSuffixes_one_externalModule.js b/testdata/baselines/reference/submodule/compiler/moduleResolutionWithSuffixes_one_externalModule.js new file mode 100644 index 0000000000..941ca24626 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/moduleResolutionWithSuffixes_one_externalModule.js @@ -0,0 +1,24 @@ +//// [tests/cases/compiler/moduleResolutionWithSuffixes_one_externalModule.ts] //// + +//// [index.ios.js] +"use strict"; +exports.__esModule = true; +function ios() {} +exports.ios = ios; +//// [index.ios.d.ts] +export declare function ios(): void; +//// [index.js] +"use strict"; +exports.__esModule = true; +function base() {} +exports.base = base; +//// [index.d.ts] +export declare function base(): void; + +//// [index.ts] +import { ios } from "some-library"; + + +//// [/bin/index.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/testdata/baselines/reference/submodule/compiler/moduleResolutionWithSuffixes_one_externalModulePath.js b/testdata/baselines/reference/submodule/compiler/moduleResolutionWithSuffixes_one_externalModulePath.js new file mode 100644 index 0000000000..d3f78b40b3 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/moduleResolutionWithSuffixes_one_externalModulePath.js @@ -0,0 +1,24 @@ +//// [tests/cases/compiler/moduleResolutionWithSuffixes_one_externalModulePath.ts] //// + +//// [foo.ios.js] +"use strict"; +exports.__esModule = true; +function iosfoo() {} +exports.iosfoo = iosfoo; +//// [foo.ios.d.ts] +export declare function iosfoo(): void; +//// [foo.js] +"use strict"; +exports.__esModule = true; +function basefoo() {} +exports.basefoo = basefoo; +//// [foo.d.ts] +export declare function basefoo(): void; + +//// [index.ts] +import { iosfoo } from "some-library/foo"; + + +//// [/bin/index.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/testdata/baselines/reference/submodule/compiler/moduleResolutionWithSuffixes_one_externalModule_withPaths.js b/testdata/baselines/reference/submodule/compiler/moduleResolutionWithSuffixes_one_externalModule_withPaths.js new file mode 100644 index 0000000000..afa58b8bd3 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/moduleResolutionWithSuffixes_one_externalModule_withPaths.js @@ -0,0 +1,26 @@ +//// [tests/cases/compiler/moduleResolutionWithSuffixes_one_externalModule_withPaths.ts] //// + +//// [index.ios.js] +"use strict"; +exports.__esModule = true; +function ios() {} +exports.ios = ios; +//// [index.ios.d.ts] +export declare function ios(): void; +//// [index.js] +"use strict"; +exports.__esModule = true; +function base() {} +exports.base = base; +//// [index.d.ts] +export declare function base(): void; + +//// [test.ts] +import { ios } from "some-library"; +import { ios as ios2 } from "some-library/index"; +import { ios as ios3 } from "some-library/index.js"; + + +//// [/bin/test.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/testdata/baselines/reference/submodule/compiler/moduleResolutionWithSuffixes_one_jsModule.js b/testdata/baselines/reference/submodule/compiler/moduleResolutionWithSuffixes_one_jsModule.js new file mode 100644 index 0000000000..654acf2465 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/moduleResolutionWithSuffixes_one_jsModule.js @@ -0,0 +1,35 @@ +//// [tests/cases/compiler/moduleResolutionWithSuffixes_one_jsModule.ts] //// + +//// [index.ts] +import { ios } from "./foo.js"; +//// [foo.ios.js] +"use strict"; +exports.__esModule = true; +function ios() {} +exports.ios = ios; +//// [foo.js] +"use strict"; +exports.__esModule = true; +function base() {} +exports.base = base; + + +//// [/bin/foo.ios.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +export var __esModule = true; +exports.__esModule = true; +function ios() { } +export var ios = ios; +exports.ios = ios; +//// [/bin/index.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +//// [/bin/foo.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +export var __esModule = true; +exports.__esModule = true; +function base() { } +export var base = base; +exports.base = base; diff --git a/testdata/baselines/reference/submodule/compiler/moduleResolutionWithSuffixes_one_jsModule.js.diff b/testdata/baselines/reference/submodule/compiler/moduleResolutionWithSuffixes_one_jsModule.js.diff new file mode 100644 index 0000000000..3a918de7c9 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/moduleResolutionWithSuffixes_one_jsModule.js.diff @@ -0,0 +1,23 @@ +--- old.moduleResolutionWithSuffixes_one_jsModule.js ++++ new.moduleResolutionWithSuffixes_one_jsModule.js +@@= skipped -15, +15 lines =@@ + + //// [/bin/foo.ios.js] + "use strict"; ++Object.defineProperty(exports, "__esModule", { value: true }); ++export var __esModule = true; + exports.__esModule = true; + function ios() { } ++export var ios = ios; + exports.ios = ios; + //// [/bin/index.js] + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + //// [/bin/foo.js] + "use strict"; ++Object.defineProperty(exports, "__esModule", { value: true }); ++export var __esModule = true; + exports.__esModule = true; + function base() { } ++export var base = base; + exports.base = base; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/moduleResolution_explicitNodeModulesImport.js b/testdata/baselines/reference/submodule/compiler/moduleResolution_explicitNodeModulesImport.js new file mode 100644 index 0000000000..05778dcd57 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/moduleResolution_explicitNodeModulesImport.js @@ -0,0 +1,12 @@ +//// [tests/cases/compiler/moduleResolution_explicitNodeModulesImport.ts] //// + +//// [index.js] +exports.x = 0; + +//// [index.ts] +import { x } from "../node_modules/foo"; + + +//// [index.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/testdata/baselines/reference/submodule/compiler/moduleResolution_explicitNodeModulesImport_implicitAny.js b/testdata/baselines/reference/submodule/compiler/moduleResolution_explicitNodeModulesImport_implicitAny.js new file mode 100644 index 0000000000..ef451aa341 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/moduleResolution_explicitNodeModulesImport_implicitAny.js @@ -0,0 +1,12 @@ +//// [tests/cases/compiler/moduleResolution_explicitNodeModulesImport_implicitAny.ts] //// + +//// [index.js] +exports.x = 0; + +//// [index.ts] +import { y } from "../node_modules/foo"; + + +//// [index.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/testdata/baselines/reference/submodule/compiler/narrowingPlainJsNoCrash1.js b/testdata/baselines/reference/submodule/compiler/narrowingPlainJsNoCrash1.js new file mode 100644 index 0000000000..f83a5c5c01 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/narrowingPlainJsNoCrash1.js @@ -0,0 +1,21 @@ +//// [tests/cases/compiler/narrowingPlainJsNoCrash1.ts] //// + +//// [index.js] +// https://github.com/microsoft/TypeScript/issues/59594 + +var a$b = {}; +var c, d; +d = a$b; +while (d !== a$b); +while ((c = a$b != a$b)) c.e; + + +//// [index.js] +// https://github.com/microsoft/TypeScript/issues/59594 +var a$b = {}; +var c, d; +d = a$b; +while (d !== a$b) + ; +while ((c = a$b != a$b)) + c.e; diff --git a/testdata/baselines/reference/submodule/compiler/noCrashOnParameterNamedRequire.js b/testdata/baselines/reference/submodule/compiler/noCrashOnParameterNamedRequire.js new file mode 100644 index 0000000000..f86cea73d0 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/noCrashOnParameterNamedRequire.js @@ -0,0 +1,13 @@ +//// [tests/cases/compiler/noCrashOnParameterNamedRequire.ts] //// + +//// [index.js] +(function(require, module, exports){ + const mod = require("./mod"); + mod.foo; +})(null, null, null); + +//// [index.js] +(function (require, module, exports) { + const mod = require("./mod"); + mod.foo; +})(null, null, null); diff --git a/testdata/baselines/reference/submodule/compiler/parseJsxElementInUnaryExpressionNoCrash1.js b/testdata/baselines/reference/submodule/compiler/parseJsxElementInUnaryExpressionNoCrash1.js new file mode 100644 index 0000000000..21d8bda92c --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/parseJsxElementInUnaryExpressionNoCrash1.js @@ -0,0 +1,9 @@ +//// [tests/cases/compiler/parseJsxElementInUnaryExpressionNoCrash1.ts] //// + +//// [a.js] +~< < + + +//// [a.js] +~< /> < +; diff --git a/testdata/baselines/reference/submodule/compiler/parseJsxElementInUnaryExpressionNoCrash2.js b/testdata/baselines/reference/submodule/compiler/parseJsxElementInUnaryExpressionNoCrash2.js new file mode 100644 index 0000000000..4fdcf29d85 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/parseJsxElementInUnaryExpressionNoCrash2.js @@ -0,0 +1,9 @@ +//// [tests/cases/compiler/parseJsxElementInUnaryExpressionNoCrash2.ts] //// + +//// [a.js] +~<> < + + +//// [a.js] +~<> < +; diff --git a/testdata/baselines/reference/submodule/compiler/parseJsxElementInUnaryExpressionNoCrash3.js b/testdata/baselines/reference/submodule/compiler/parseJsxElementInUnaryExpressionNoCrash3.js new file mode 100644 index 0000000000..4c36c8ba17 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/parseJsxElementInUnaryExpressionNoCrash3.js @@ -0,0 +1,11 @@ +//// [tests/cases/compiler/parseJsxElementInUnaryExpressionNoCrash3.ts] //// + +//// [a.js] +!< {:> + + + +//// [a.js] +!< {...}> + +; diff --git a/testdata/baselines/reference/submodule/compiler/parserUnparsedTokenCrash1.js b/testdata/baselines/reference/submodule/compiler/parserUnparsedTokenCrash1.js new file mode 100644 index 0000000000..710a2126e3 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/parserUnparsedTokenCrash1.js @@ -0,0 +1,9 @@ +//// [tests/cases/compiler/parserUnparsedTokenCrash1.ts] //// + +//// [a.js] +( y = 1 ; 2 ) + + +//// [a.js] +(y = 1); +2; diff --git a/testdata/baselines/reference/submodule/compiler/pathMappingBasedModuleResolution_rootImport_aliasWithRoot.js b/testdata/baselines/reference/submodule/compiler/pathMappingBasedModuleResolution_rootImport_aliasWithRoot.js new file mode 100644 index 0000000000..5d30186345 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/pathMappingBasedModuleResolution_rootImport_aliasWithRoot.js @@ -0,0 +1,26 @@ +//// [tests/cases/compiler/pathMappingBasedModuleResolution_rootImport_aliasWithRoot.ts] //// + +//// [foo.ts] +export function foo() {} + +//// [bar.js] +export function bar() {} + +//// [a.ts] +import { foo } from "/foo"; +import { bar } from "/bar"; + + +//// [foo.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.foo = foo; +function foo() { } +//// [bar.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.bar = bar; +function bar() { } +//// [a.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/testdata/baselines/reference/submodule/compiler/pathMappingBasedModuleResolution_rootImport_aliasWithRoot_differentRootTypes.js b/testdata/baselines/reference/submodule/compiler/pathMappingBasedModuleResolution_rootImport_aliasWithRoot_differentRootTypes.js new file mode 100644 index 0000000000..3a328d664b --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/pathMappingBasedModuleResolution_rootImport_aliasWithRoot_differentRootTypes.js @@ -0,0 +1,42 @@ +//// [tests/cases/compiler/pathMappingBasedModuleResolution_rootImport_aliasWithRoot_differentRootTypes.ts] //// + +//// [foo.ts] +export function foo() {} + +//// [bar.js] +export function bar() {} + +//// [a.ts] +import { foo as foo1 } from "/foo"; +import { bar as bar1 } from "/bar"; +import { foo as foo2 } from "c:/foo"; +import { bar as bar2 } from "c:/bar"; +import { foo as foo3 } from "c:\\foo"; +import { bar as bar3 } from "c:\\bar"; +import { foo as foo4 } from "//server/foo"; +import { bar as bar4 } from "//server/bar"; +import { foo as foo5 } from "\\\\server\\foo"; +import { bar as bar5 } from "\\\\server\\bar"; +import { foo as foo6 } from "file:///foo"; +import { bar as bar6 } from "file:///bar"; +import { foo as foo7 } from "file://c:/foo"; +import { bar as bar7 } from "file://c:/bar"; +import { foo as foo8 } from "file://server/foo"; +import { bar as bar8 } from "file://server/bar"; +import { foo as foo9 } from "http://server/foo"; +import { bar as bar9 } from "http://server/bar"; + + +//// [foo.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.foo = foo; +function foo() { } +//// [bar.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.bar = bar; +function bar() { } +//// [a.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/testdata/baselines/reference/submodule/compiler/pathMappingBasedModuleResolution_rootImport_aliasWithRoot_multipleAliases.js b/testdata/baselines/reference/submodule/compiler/pathMappingBasedModuleResolution_rootImport_aliasWithRoot_multipleAliases.js new file mode 100644 index 0000000000..1e82815314 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/pathMappingBasedModuleResolution_rootImport_aliasWithRoot_multipleAliases.js @@ -0,0 +1,26 @@ +//// [tests/cases/compiler/pathMappingBasedModuleResolution_rootImport_aliasWithRoot_multipleAliases.ts] //// + +//// [foo.ts] +export function foo() {} + +//// [bar.js] +export function bar() {} + +//// [a.ts] +import { foo } from "/import/foo"; +import { bar } from "/client/bar"; + + +//// [foo.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.foo = foo; +function foo() { } +//// [bar.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.bar = bar; +function bar() { } +//// [a.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/testdata/baselines/reference/submodule/compiler/pathMappingBasedModuleResolution_rootImport_aliasWithRoot_realRootFile.js b/testdata/baselines/reference/submodule/compiler/pathMappingBasedModuleResolution_rootImport_aliasWithRoot_realRootFile.js new file mode 100644 index 0000000000..194e02979d --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/pathMappingBasedModuleResolution_rootImport_aliasWithRoot_realRootFile.js @@ -0,0 +1,26 @@ +//// [tests/cases/compiler/pathMappingBasedModuleResolution_rootImport_aliasWithRoot_realRootFile.ts] //// + +//// [foo.ts] +export function foo() {} + +//// [bar.js] +export function bar() {} + +//// [a.ts] +import { foo } from "/foo"; +import { bar } from "/bar"; + + +//// [foo.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.foo = foo; +function foo() { } +//// [bar.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.bar = bar; +function bar() { } +//// [a.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/testdata/baselines/reference/submodule/compiler/pathMappingBasedModuleResolution_rootImport_noAliasWithRoot.js b/testdata/baselines/reference/submodule/compiler/pathMappingBasedModuleResolution_rootImport_noAliasWithRoot.js new file mode 100644 index 0000000000..aa1d13db71 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/pathMappingBasedModuleResolution_rootImport_noAliasWithRoot.js @@ -0,0 +1,26 @@ +//// [tests/cases/compiler/pathMappingBasedModuleResolution_rootImport_noAliasWithRoot.ts] //// + +//// [foo.ts] +export function foo() {} + +//// [bar.js] +export function bar() {} + +//// [a.ts] +import { foo } from "/foo"; +import { bar } from "/bar"; + + +//// [foo.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.foo = foo; +function foo() { } +//// [bar.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.bar = bar; +function bar() { } +//// [a.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/testdata/baselines/reference/submodule/compiler/pathMappingBasedModuleResolution_rootImport_noAliasWithRoot_realRootFile.js b/testdata/baselines/reference/submodule/compiler/pathMappingBasedModuleResolution_rootImport_noAliasWithRoot_realRootFile.js new file mode 100644 index 0000000000..27ea060dd7 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/pathMappingBasedModuleResolution_rootImport_noAliasWithRoot_realRootFile.js @@ -0,0 +1,26 @@ +//// [tests/cases/compiler/pathMappingBasedModuleResolution_rootImport_noAliasWithRoot_realRootFile.ts] //// + +//// [foo.ts] +export function foo() {} + +//// [bar.js] +export function bar() {} + +//// [a.ts] +import { foo } from "/foo"; +import { bar } from "/bar"; + + +//// [foo.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.foo = foo; +function foo() { } +//// [bar.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.bar = bar; +function bar() { } +//// [a.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/testdata/baselines/reference/submodule/compiler/pathMappingBasedModuleResolution_withExtension.js b/testdata/baselines/reference/submodule/compiler/pathMappingBasedModuleResolution_withExtension.js new file mode 100644 index 0000000000..bf7852b116 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/pathMappingBasedModuleResolution_withExtension.js @@ -0,0 +1,26 @@ +//// [tests/cases/compiler/pathMappingBasedModuleResolution_withExtension.ts] //// + +//// [foo.ts] +export function foo() {} + +//// [bar.js] +export function bar() {} + +//// [a.ts] +import { foo } from "foo"; +import { bar } from "bar"; + + +//// [foo.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.foo = foo; +function foo() { } +//// [bar.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.bar = bar; +function bar() { } +//// [a.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/testdata/baselines/reference/submodule/compiler/pathMappingBasedModuleResolution_withExtension_MapedToNodeModules.js b/testdata/baselines/reference/submodule/compiler/pathMappingBasedModuleResolution_withExtension_MapedToNodeModules.js new file mode 100644 index 0000000000..520f8bf8d8 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/pathMappingBasedModuleResolution_withExtension_MapedToNodeModules.js @@ -0,0 +1,12 @@ +//// [tests/cases/compiler/pathMappingBasedModuleResolution_withExtension_MapedToNodeModules.ts] //// + +//// [foobar.js] +module.exports = { a: 10 }; + +//// [a.ts] +import foobar from "foo/bar/foobar.js"; + + +//// [/bin/a.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/testdata/baselines/reference/submodule/compiler/reactImportDropped.js b/testdata/baselines/reference/submodule/compiler/reactImportDropped.js new file mode 100644 index 0000000000..53ff422fa6 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/reactImportDropped.js @@ -0,0 +1,47 @@ +//// [tests/cases/compiler/reactImportDropped.ts] //// + +//// [react.d.ts] +export = React; +export as namespace React; + +declare namespace React { + + function createClass(spec: any): ClassicComponentClass; + + interface ClassicComponentClass { + new (props?: any): ClassicComponentClass; + } +} + +declare global { + namespace JSX { + interface ElementAttributesProperty { } + } +} + + +//// [TabBar.js] +export default React.createClass({ + render() { + return ( + null + ); + } +}); + +//// [NavigationView.js] +import TabBar from '../../components/TabBar'; +import {layout} from '../../utils/theme'; // <- DO NOT DROP this import +const x = ; + + +//// [TabBar.js] +export default React.createClass({ + render() { + return (null); + } +}); +//// [NavigationView.js] +import TabBar from '../../components/TabBar'; +import { layout } from '../../utils/theme'; // <- DO NOT DROP this import +const x = React.createElement(TabBar, { height: layout.footerHeight }); diff --git a/testdata/baselines/reference/submodule/compiler/requireAsFunctionInExternalModule.js b/testdata/baselines/reference/submodule/compiler/requireAsFunctionInExternalModule.js new file mode 100644 index 0000000000..268febfd36 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/requireAsFunctionInExternalModule.js @@ -0,0 +1,39 @@ +//// [tests/cases/compiler/requireAsFunctionInExternalModule.ts] //// + +//// [c.js] +export default function require(a) { } +export function has(a) { return true } + +//// [m.js] +import require, { has } from "./c" +export function hello() { } +if (has('ember-debug')) { + require('ember-debug'); +} + +//// [m2.ts] +import { hello } from "./m"; +hello(); + + +//// [c.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = require; +exports.has = has; +function require(a) { } +function has(a) { return true; } +//// [m.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.hello = hello; +const c_1 = require("./c"); +function hello() { } +if ((0, c_1.has)('ember-debug')) { + (0, c_1.default)('ember-debug'); +} +//// [m2.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const m_1 = require("./m"); +(0, m_1.hello)(); diff --git a/testdata/baselines/reference/submodule/compiler/requireAsFunctionInExternalModule.js.diff b/testdata/baselines/reference/submodule/compiler/requireAsFunctionInExternalModule.js.diff new file mode 100644 index 0000000000..93d1ef728f --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/requireAsFunctionInExternalModule.js.diff @@ -0,0 +1,18 @@ +--- old.requireAsFunctionInExternalModule.js ++++ new.requireAsFunctionInExternalModule.js +@@= skipped -26, +26 lines =@@ + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.hello = hello; +-var c_1 = require("./c"); ++const c_1 = require("./c"); + function hello() { } + if ((0, c_1.has)('ember-debug')) { + (0, c_1.default)('ember-debug'); +@@= skipped -8, +8 lines =@@ + //// [m2.js] + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); +-var m_1 = require("./m"); ++const m_1 = require("./m"); + (0, m_1.hello)(); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/requireOfJsonFile.js b/testdata/baselines/reference/submodule/compiler/requireOfJsonFile.js new file mode 100644 index 0000000000..6150d5a791 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/requireOfJsonFile.js @@ -0,0 +1,27 @@ +//// [tests/cases/compiler/requireOfJsonFile.ts] //// + +//// [file1.ts] +import b1 = require('./b.json'); +let x = b1.a; +import b2 = require('./b.json'); +if (x) { + let b = b2.b; + x = (b1.b === b); +} + +//// [b.json] +{ + "a": true, + "b": "hello" +} + +//// [out/file1.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const b1 = require("./b.json"); +let x = b1.a; +const b2 = require("./b.json"); +if (x) { + let b = b2.b; + x = (b1.b === b); +} diff --git a/testdata/baselines/reference/submodule/compiler/requireOfJsonFile.js.diff b/testdata/baselines/reference/submodule/compiler/requireOfJsonFile.js.diff new file mode 100644 index 0000000000..e5933c989d --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/requireOfJsonFile.js.diff @@ -0,0 +1,22 @@ +--- old.requireOfJsonFile.js ++++ new.requireOfJsonFile.js +@@= skipped -14, +14 lines =@@ + "b": "hello" + } + +-//// [out/b.json] +-{ +- "a": true, +- "b": "hello" +-} + //// [out/file1.js] + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); +-var b1 = require("./b.json"); ++const b1 = require("./b.json"); + let x = b1.a; +-var b2 = require("./b.json"); ++const b2 = require("./b.json"); + if (x) { + let b = b2.b; + x = (b1.b === b); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/requireOfJsonFileNonRelative.js b/testdata/baselines/reference/submodule/compiler/requireOfJsonFileNonRelative.js new file mode 100644 index 0000000000..a293441e5a --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/requireOfJsonFileNonRelative.js @@ -0,0 +1,34 @@ +//// [tests/cases/compiler/requireOfJsonFileNonRelative.ts] //// + +//// [file1.ts] +import b1 = require('b.json'); +let x = b1.a; +import b2 = require('c.json'); +if (x) { + let b = b2.b; + x = (b1.b === b); +} + +//// [b.json] +{ + "a": true, + "b": "hello" +} + +//// [c.json] +{ + "a": true, + "b": "hello" +} + + +//// [out/file1.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const b1 = require("b.json"); +let x = b1.a; +const b2 = require("c.json"); +if (x) { + let b = b2.b; + x = (b1.b === b); +} diff --git a/testdata/baselines/reference/submodule/compiler/requireOfJsonFileNonRelative.js.diff b/testdata/baselines/reference/submodule/compiler/requireOfJsonFileNonRelative.js.diff new file mode 100644 index 0000000000..490255b5bd --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/requireOfJsonFileNonRelative.js.diff @@ -0,0 +1,14 @@ +--- old.requireOfJsonFileNonRelative.js ++++ new.requireOfJsonFileNonRelative.js +@@= skipped -24, +24 lines =@@ + //// [out/file1.js] + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); +-var b1 = require("b.json"); ++const b1 = require("b.json"); + let x = b1.a; +-var b2 = require("c.json"); ++const b2 = require("c.json"); + if (x) { + let b = b2.b; + x = (b1.b === b); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/requireOfJsonFileNonRelativeWithoutExtension.js b/testdata/baselines/reference/submodule/compiler/requireOfJsonFileNonRelativeWithoutExtension.js new file mode 100644 index 0000000000..1092bd8955 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/requireOfJsonFileNonRelativeWithoutExtension.js @@ -0,0 +1,27 @@ +//// [tests/cases/compiler/requireOfJsonFileNonRelativeWithoutExtension.ts] //// + +//// [file1.ts] +import d = require("d.json"); // Should fail +import e = require("e"); // Should fail + +//// [b.json] +{ + "a": true, + "b": "hello" +} + +//// [e.json] +{ + "a": true, + "b": "hello" +} + +//// [c.json] +{ + "a": true, + "b": "hello" +} + +//// [out/file1.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/testdata/baselines/reference/submodule/compiler/requireOfJsonFileNonRelativeWithoutExtensionResolvesToTs.js b/testdata/baselines/reference/submodule/compiler/requireOfJsonFileNonRelativeWithoutExtensionResolvesToTs.js new file mode 100644 index 0000000000..a6256ccc6b --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/requireOfJsonFileNonRelativeWithoutExtensionResolvesToTs.js @@ -0,0 +1,21 @@ +//// [tests/cases/compiler/requireOfJsonFileNonRelativeWithoutExtensionResolvesToTs.ts] //// + +//// [file1.ts] +import f = require("f"); // should work to f.ts +let fnumber: number = f; + +//// [f.json] +{ + "a": true, + "b": "hello" +} + +//// [f.ts] +export = 10; + + +//// [out/file1.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const f = require("f"); // should work to f.ts +let fnumber = f; diff --git a/testdata/baselines/reference/submodule/compiler/requireOfJsonFileNonRelativeWithoutExtensionResolvesToTs.js.diff b/testdata/baselines/reference/submodule/compiler/requireOfJsonFileNonRelativeWithoutExtensionResolvesToTs.js.diff new file mode 100644 index 0000000000..d909de317c --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/requireOfJsonFileNonRelativeWithoutExtensionResolvesToTs.js.diff @@ -0,0 +1,16 @@ +--- old.requireOfJsonFileNonRelativeWithoutExtensionResolvesToTs.js ++++ new.requireOfJsonFileNonRelativeWithoutExtensionResolvesToTs.js +@@= skipped -13, +13 lines =@@ + export = 10; + + +-//// [out/node_modules/f.js] +-"use strict"; +-module.exports = 10; +-//// [out/projects/file1.js] ++//// [out/file1.js] + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); +-var f = require("f"); // should work to f.ts ++const f = require("f"); // should work to f.ts + let fnumber = f; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/requireOfJsonFileTypes.js b/testdata/baselines/reference/submodule/compiler/requireOfJsonFileTypes.js new file mode 100644 index 0000000000..492f338fc4 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/requireOfJsonFileTypes.js @@ -0,0 +1,72 @@ +//// [tests/cases/compiler/requireOfJsonFileTypes.ts] //// + +//// [file1.ts] +import b = require('./b.json'); +import c = require('./c.json'); +import d = require('./d.json'); +import e = require('./e.json'); +import f = require('./f.json'); +import g = require('./g.json'); + +let booleanLiteral: boolean, nullLiteral: null; +let stringLiteral: string; +let numberLiteral: number; + +booleanLiteral = b.a; +stringLiteral = b.b; +nullLiteral = b.c; +booleanLiteral = b.d; +const stringOrNumberOrNull: string | number | null = c[0]; +stringLiteral = d; +numberLiteral = e; +numberLiteral = f[0]; +booleanLiteral = g[0]; + +//// [b.json] +{ + "a": true, + "b": "hello", + "c": null, + "d": false +} + +//// [c.json] +["a", null, "string"] + +//// [d.json] +"dConfig" + +//// [e.json] +-10 + +//// [f.json] +[-10, 30] + +//// [g.json] +[true, false] + +//// [out/file1.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const b = require("./b.json"); +const c = require("./c.json"); +const d = require("./d.json"); +const e = require("./e.json"); +const f = require("./f.json"); +const g = require("./g.json"); +let booleanLiteral, nullLiteral; +let stringLiteral; +let numberLiteral; +booleanLiteral = b.a; +stringLiteral = b.b; +nullLiteral = b.c; +booleanLiteral = b.d; +const stringOrNumberOrNull = c[0]; +stringLiteral = d; +numberLiteral = e; +numberLiteral = f[0]; +booleanLiteral = g[0]; + + +//// [out/file1.d.ts] +export {}; diff --git a/testdata/baselines/reference/submodule/compiler/requireOfJsonFileTypes.js.diff b/testdata/baselines/reference/submodule/compiler/requireOfJsonFileTypes.js.diff new file mode 100644 index 0000000000..e29d374bad --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/requireOfJsonFileTypes.js.diff @@ -0,0 +1,41 @@ +--- old.requireOfJsonFileTypes.js ++++ new.requireOfJsonFileTypes.js +@@= skipped -44, +44 lines =@@ + //// [g.json] + [true, false] + +-//// [out/b.json] +-{ +- "a": true, +- "b": "hello", +- "c": null, +- "d": false +-} +-//// [out/c.json] +-["a", null, "string"] +-//// [out/d.json] +-"dConfig" +-//// [out/e.json] +--10 +-//// [out/f.json] +-[-10, 30] +-//// [out/g.json] +-[true, false] + //// [out/file1.js] + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); +-var b = require("./b.json"); +-var c = require("./c.json"); +-var d = require("./d.json"); +-var e = require("./e.json"); +-var f = require("./f.json"); +-var g = require("./g.json"); ++const b = require("./b.json"); ++const c = require("./c.json"); ++const d = require("./d.json"); ++const e = require("./e.json"); ++const f = require("./f.json"); ++const g = require("./g.json"); + let booleanLiteral, nullLiteral; + let stringLiteral; + let numberLiteral; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/requireOfJsonFileWithAmd.js b/testdata/baselines/reference/submodule/compiler/requireOfJsonFileWithAmd.js new file mode 100644 index 0000000000..e053f51daf --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/requireOfJsonFileWithAmd.js @@ -0,0 +1,27 @@ +//// [tests/cases/compiler/requireOfJsonFileWithAmd.ts] //// + +//// [file1.ts] +import b1 = require('./b'); +let x = b1.a; +import b2 = require('./b.json'); +if (x) { + let b = b2.b; + x = (b1.b === b); +} + +//// [b.json] +{ + "a": true, + "b": "hello" +} + +//// [out/file1.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const b1 = require("./b"); +let x = b1.a; +const b2 = require("./b.json"); +if (x) { + let b = b2.b; + x = (b1.b === b); +} diff --git a/testdata/baselines/reference/submodule/compiler/requireOfJsonFileWithAmd.js.diff b/testdata/baselines/reference/submodule/compiler/requireOfJsonFileWithAmd.js.diff new file mode 100644 index 0000000000..c62a38a5de --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/requireOfJsonFileWithAmd.js.diff @@ -0,0 +1,30 @@ +--- old.requireOfJsonFileWithAmd.js ++++ new.requireOfJsonFileWithAmd.js +@@= skipped -14, +14 lines =@@ + "b": "hello" + } + +-//// [out/b.json] +-{ +- "a": true, +- "b": "hello" +-} + //// [out/file1.js] +-define(["require", "exports", "./b", "./b.json"], function (require, exports, b1, b2) { +- "use strict"; +- Object.defineProperty(exports, "__esModule", { value: true }); +- let x = b1.a; +- if (x) { +- let b = b2.b; +- x = (b1.b === b); +- } +-}); ++"use strict"; ++Object.defineProperty(exports, "__esModule", { value: true }); ++const b1 = require("./b"); ++let x = b1.a; ++const b2 = require("./b.json"); ++if (x) { ++ let b = b2.b; ++ x = (b1.b === b); ++} \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/requireOfJsonFileWithEmptyObject.js b/testdata/baselines/reference/submodule/compiler/requireOfJsonFileWithEmptyObject.js new file mode 100644 index 0000000000..cac6e3862e --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/requireOfJsonFileWithEmptyObject.js @@ -0,0 +1,23 @@ +//// [tests/cases/compiler/requireOfJsonFileWithEmptyObject.ts] //// + +//// [file1.ts] +import b1 = require('./b.json'); +let x = b1; +import b2 = require('./b.json'); +if (x) { + x = b2; +} + +//// [b.json] +{ +} + +//// [out/file1.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const b1 = require("./b.json"); +let x = b1; +const b2 = require("./b.json"); +if (x) { + x = b2; +} diff --git a/testdata/baselines/reference/submodule/compiler/requireOfJsonFileWithEmptyObject.js.diff b/testdata/baselines/reference/submodule/compiler/requireOfJsonFileWithEmptyObject.js.diff new file mode 100644 index 0000000000..4cfc8325b6 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/requireOfJsonFileWithEmptyObject.js.diff @@ -0,0 +1,19 @@ +--- old.requireOfJsonFileWithEmptyObject.js ++++ new.requireOfJsonFileWithEmptyObject.js +@@= skipped -11, +11 lines =@@ + { + } + +-//// [out/b.json] +-{} + //// [out/file1.js] + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); +-var b1 = require("./b.json"); ++const b1 = require("./b.json"); + let x = b1; +-var b2 = require("./b.json"); ++const b2 = require("./b.json"); + if (x) { + x = b2; + } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/requireOfJsonFileWithEmptyObjectWithErrors.js b/testdata/baselines/reference/submodule/compiler/requireOfJsonFileWithEmptyObjectWithErrors.js new file mode 100644 index 0000000000..4d992bbfde --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/requireOfJsonFileWithEmptyObjectWithErrors.js @@ -0,0 +1,25 @@ +//// [tests/cases/compiler/requireOfJsonFileWithEmptyObjectWithErrors.ts] //// + +//// [file1.ts] +import b1 = require('./b.json'); +let x = b1.a; +import b2 = require('./b.json'); +if (x) { + let b = b2.b; + x = (b1.b === b); +} + +//// [b.json] +{ +} + +//// [out/file1.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const b1 = require("./b.json"); +let x = b1.a; +const b2 = require("./b.json"); +if (x) { + let b = b2.b; + x = (b1.b === b); +} diff --git a/testdata/baselines/reference/submodule/compiler/requireOfJsonFileWithEmptyObjectWithErrors.js.diff b/testdata/baselines/reference/submodule/compiler/requireOfJsonFileWithEmptyObjectWithErrors.js.diff new file mode 100644 index 0000000000..7793e904dd --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/requireOfJsonFileWithEmptyObjectWithErrors.js.diff @@ -0,0 +1,19 @@ +--- old.requireOfJsonFileWithEmptyObjectWithErrors.js ++++ new.requireOfJsonFileWithEmptyObjectWithErrors.js +@@= skipped -12, +12 lines =@@ + { + } + +-//// [out/b.json] +-{} + //// [out/file1.js] + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); +-var b1 = require("./b.json"); ++const b1 = require("./b.json"); + let x = b1.a; +-var b2 = require("./b.json"); ++const b2 = require("./b.json"); + if (x) { + let b = b2.b; + x = (b1.b === b); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/requireOfJsonFileWithErrors.js b/testdata/baselines/reference/submodule/compiler/requireOfJsonFileWithErrors.js new file mode 100644 index 0000000000..9dffbcbd1c --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/requireOfJsonFileWithErrors.js @@ -0,0 +1,27 @@ +//// [tests/cases/compiler/requireOfJsonFileWithErrors.ts] //// + +//// [file1.ts] +import b1 = require('./b.json'); +let x = b1.a; +import b2 = require('./b.json'); +if (x) { + let b = b2.b; + x = (b1.b === b); +} + +//// [b.json] +{ + 'a': true, + "b": "hello" +} + +//// [out/file1.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const b1 = require("./b.json"); +let x = b1.a; +const b2 = require("./b.json"); +if (x) { + let b = b2.b; + x = (b1.b === b); +} diff --git a/testdata/baselines/reference/submodule/compiler/requireOfJsonFileWithErrors.js.diff b/testdata/baselines/reference/submodule/compiler/requireOfJsonFileWithErrors.js.diff new file mode 100644 index 0000000000..e0589f9ba3 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/requireOfJsonFileWithErrors.js.diff @@ -0,0 +1,22 @@ +--- old.requireOfJsonFileWithErrors.js ++++ new.requireOfJsonFileWithErrors.js +@@= skipped -14, +14 lines =@@ + "b": "hello" + } + +-//// [out/b.json] +-{ +- 'a': true, +- "b": "hello" +-} + //// [out/file1.js] + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); +-var b1 = require("./b.json"); ++const b1 = require("./b.json"); + let x = b1.a; +-var b2 = require("./b.json"); ++const b2 = require("./b.json"); + if (x) { + let b = b2.b; + x = (b1.b === b); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/requireOfJsonFileWithNoContent.js b/testdata/baselines/reference/submodule/compiler/requireOfJsonFileWithNoContent.js new file mode 100644 index 0000000000..719ee0b40c --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/requireOfJsonFileWithNoContent.js @@ -0,0 +1,24 @@ +//// [tests/cases/compiler/requireOfJsonFileWithNoContent.ts] //// + +//// [file1.ts] +import b1 = require('./b.json'); +let x = b1.a; +import b2 = require('./b.json'); +if (x) { + let b = b2.b; + x = (b1.b === b); +} + +//// [b.json] + + +//// [out/file1.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const b1 = require("./b.json"); +let x = b1.a; +const b2 = require("./b.json"); +if (x) { + let b = b2.b; + x = (b1.b === b); +} diff --git a/testdata/baselines/reference/submodule/compiler/requireOfJsonFileWithNoContent.js.diff b/testdata/baselines/reference/submodule/compiler/requireOfJsonFileWithNoContent.js.diff new file mode 100644 index 0000000000..63396fbcb4 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/requireOfJsonFileWithNoContent.js.diff @@ -0,0 +1,18 @@ +--- old.requireOfJsonFileWithNoContent.js ++++ new.requireOfJsonFileWithNoContent.js +@@= skipped -11, +11 lines =@@ + //// [b.json] + + +-//// [out/b.json] + //// [out/file1.js] + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); +-var b1 = require("./b.json"); ++const b1 = require("./b.json"); + let x = b1.a; +-var b2 = require("./b.json"); ++const b2 = require("./b.json"); + if (x) { + let b = b2.b; + x = (b1.b === b); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/requireOfJsonFileWithSourceMap.js b/testdata/baselines/reference/submodule/compiler/requireOfJsonFileWithSourceMap.js new file mode 100644 index 0000000000..6558b86562 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/requireOfJsonFileWithSourceMap.js @@ -0,0 +1,28 @@ +//// [tests/cases/compiler/requireOfJsonFileWithSourceMap.ts] //// + +//// [file1.ts] +import b1 = require('./b.json'); +let x = b1.a; +import b2 = require('./b.json'); +if (x) { + let b = b2.b; + x = (b1.b === b); +} + +//// [b.json] +{ + "a": true, + "b": "hello" +} + +//// [out/file1.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const b1 = require("./b.json"); +let x = b1.a; +const b2 = require("./b.json"); +if (x) { + let b = b2.b; + x = (b1.b === b); +} +//# sourceMappingURL=file1.js.map \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/requireOfJsonFileWithSourceMap.js.diff b/testdata/baselines/reference/submodule/compiler/requireOfJsonFileWithSourceMap.js.diff new file mode 100644 index 0000000000..a94fac3f62 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/requireOfJsonFileWithSourceMap.js.diff @@ -0,0 +1,22 @@ +--- old.requireOfJsonFileWithSourceMap.js ++++ new.requireOfJsonFileWithSourceMap.js +@@= skipped -14, +14 lines =@@ + "b": "hello" + } + +-//// [out/b.json] +-{ +- "a": true, +- "b": "hello" +-} + //// [out/file1.js] + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); +-var b1 = require("./b.json"); ++const b1 = require("./b.json"); + let x = b1.a; +-var b2 = require("./b.json"); ++const b2 = require("./b.json"); + if (x) { + let b = b2.b; + x = (b1.b === b); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/requireOfJsonFileWithTraillingComma.js b/testdata/baselines/reference/submodule/compiler/requireOfJsonFileWithTraillingComma.js new file mode 100644 index 0000000000..fa92110dda --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/requireOfJsonFileWithTraillingComma.js @@ -0,0 +1,27 @@ +//// [tests/cases/compiler/requireOfJsonFileWithTraillingComma.ts] //// + +//// [file1.ts] +import b1 = require('./b.json'); +let x = b1.a; +import b2 = require('./b.json'); +if (x) { + let b = b2.b; + x = (b1.b === b); +} + +//// [b.json] +{ + "a": true, + "b": "hello", +} + +//// [out/file1.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const b1 = require("./b.json"); +let x = b1.a; +const b2 = require("./b.json"); +if (x) { + let b = b2.b; + x = (b1.b === b); +} diff --git a/testdata/baselines/reference/submodule/compiler/requireOfJsonFileWithTraillingComma.js.diff b/testdata/baselines/reference/submodule/compiler/requireOfJsonFileWithTraillingComma.js.diff new file mode 100644 index 0000000000..8f82ca06a5 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/requireOfJsonFileWithTraillingComma.js.diff @@ -0,0 +1,22 @@ +--- old.requireOfJsonFileWithTraillingComma.js ++++ new.requireOfJsonFileWithTraillingComma.js +@@= skipped -14, +14 lines =@@ + "b": "hello", + } + +-//// [out/b.json] +-{ +- "a": true, +- "b": "hello" +-} + //// [out/file1.js] + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); +-var b1 = require("./b.json"); ++const b1 = require("./b.json"); + let x = b1.a; +-var b2 = require("./b.json"); ++const b2 = require("./b.json"); + if (x) { + let b = b2.b; + x = (b1.b === b); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/requireOfJsonFileWithoutExtension.js b/testdata/baselines/reference/submodule/compiler/requireOfJsonFileWithoutExtension.js new file mode 100644 index 0000000000..9666a920b9 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/requireOfJsonFileWithoutExtension.js @@ -0,0 +1,27 @@ +//// [tests/cases/compiler/requireOfJsonFileWithoutExtension.ts] //// + +//// [file1.ts] +import b1 = require('./b'); // This should not resolve +let x = b1.a; +import b2 = require('./b.json'); +if (x) { + let b = b2.b; + x = (b1.b === b); +} + +//// [b.json] +{ + "a": true, + "b": "hello" +} + +//// [out/file1.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const b1 = require("./b"); // This should not resolve +let x = b1.a; +const b2 = require("./b.json"); +if (x) { + let b = b2.b; + x = (b1.b === b); +} diff --git a/testdata/baselines/reference/submodule/compiler/requireOfJsonFileWithoutExtension.js.diff b/testdata/baselines/reference/submodule/compiler/requireOfJsonFileWithoutExtension.js.diff new file mode 100644 index 0000000000..6dd37976ab --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/requireOfJsonFileWithoutExtension.js.diff @@ -0,0 +1,22 @@ +--- old.requireOfJsonFileWithoutExtension.js ++++ new.requireOfJsonFileWithoutExtension.js +@@= skipped -14, +14 lines =@@ + "b": "hello" + } + +-//// [out/b.json] +-{ +- "a": true, +- "b": "hello" +-} + //// [out/file1.js] + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); +-var b1 = require("./b"); // This should not resolve ++const b1 = require("./b"); // This should not resolve + let x = b1.a; +-var b2 = require("./b.json"); ++const b2 = require("./b.json"); + if (x) { + let b = b2.b; + x = (b1.b === b); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/requireOfJsonFileWithoutExtensionResolvesToTs.js b/testdata/baselines/reference/submodule/compiler/requireOfJsonFileWithoutExtensionResolvesToTs.js new file mode 100644 index 0000000000..f3bda962af --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/requireOfJsonFileWithoutExtensionResolvesToTs.js @@ -0,0 +1,39 @@ +//// [tests/cases/compiler/requireOfJsonFileWithoutExtensionResolvesToTs.ts] //// + +//// [file1.ts] +import c1 = require('./c'); // resolves to c.ts +let x2 = c1.a; +import c2 = require('./c.json'); // resolves to c.json +if (x2) { + let b = c2.b; + let x = (c1.b === b); +} + +//// [b.json] +{ + "a": true, + "b": "hello" +} + +//// [c.json] +{ + "a": true, + "b": "hello" +} + +//// [c.ts] +export = { a: true, b: "hello" }; + +//// [out/c.js] +"use strict"; +module.exports = { a: true, b: "hello" }; +//// [out/file1.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const c1 = require("./c"); // resolves to c.ts +let x2 = c1.a; +const c2 = require("./c.json"); // resolves to c.json +if (x2) { + let b = c2.b; + let x = (c1.b === b); +} diff --git a/testdata/baselines/reference/submodule/compiler/requireOfJsonFileWithoutExtensionResolvesToTs.js.diff b/testdata/baselines/reference/submodule/compiler/requireOfJsonFileWithoutExtensionResolvesToTs.js.diff new file mode 100644 index 0000000000..87c8912fae --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/requireOfJsonFileWithoutExtensionResolvesToTs.js.diff @@ -0,0 +1,22 @@ +--- old.requireOfJsonFileWithoutExtensionResolvesToTs.js ++++ new.requireOfJsonFileWithoutExtensionResolvesToTs.js +@@= skipped -26, +26 lines =@@ + //// [out/c.js] + "use strict"; + module.exports = { a: true, b: "hello" }; +-//// [out/c.json] +-{ +- "a": true, +- "b": "hello" +-} + //// [out/file1.js] + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); +-var c1 = require("./c"); // resolves to c.ts ++const c1 = require("./c"); // resolves to c.ts + let x2 = c1.a; +-var c2 = require("./c.json"); // resolves to c.json ++const c2 = require("./c.json"); // resolves to c.json + if (x2) { + let b = c2.b; + let x = (c1.b === b); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/requireOfJsonFileWithoutResolveJsonModule.js b/testdata/baselines/reference/submodule/compiler/requireOfJsonFileWithoutResolveJsonModule.js new file mode 100644 index 0000000000..6acd4e0f6b --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/requireOfJsonFileWithoutResolveJsonModule.js @@ -0,0 +1,24 @@ +//// [tests/cases/compiler/requireOfJsonFileWithoutResolveJsonModule.ts] //// + +//// [file1.ts] +import b1 = require('./b.json'); // error +let x = b1.a; +import b2 = require('./b.json'); // error +if (x) { + let b = b2.b; + x = (b1.b === b); +} + +//// [b.json] +contents Not read + +//// [out/file1.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const b1 = require("./b.json"); // error +let x = b1.a; +const b2 = require("./b.json"); // error +if (x) { + let b = b2.b; + x = (b1.b === b); +} diff --git a/testdata/baselines/reference/submodule/compiler/requireOfJsonFileWithoutResolveJsonModule.js.diff b/testdata/baselines/reference/submodule/compiler/requireOfJsonFileWithoutResolveJsonModule.js.diff new file mode 100644 index 0000000000..144f05cf5c --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/requireOfJsonFileWithoutResolveJsonModule.js.diff @@ -0,0 +1,14 @@ +--- old.requireOfJsonFileWithoutResolveJsonModule.js ++++ new.requireOfJsonFileWithoutResolveJsonModule.js +@@= skipped -14, +14 lines =@@ + //// [out/file1.js] + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); +-var b1 = require("./b.json"); // error ++const b1 = require("./b.json"); // error + let x = b1.a; +-var b2 = require("./b.json"); // error ++const b2 = require("./b.json"); // error + if (x) { + let b = b2.b; + x = (b1.b === b); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/requireOfJsonFileWithoutResolveJsonModuleAndPathMapping.js b/testdata/baselines/reference/submodule/compiler/requireOfJsonFileWithoutResolveJsonModuleAndPathMapping.js new file mode 100644 index 0000000000..93cfba254a --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/requireOfJsonFileWithoutResolveJsonModuleAndPathMapping.js @@ -0,0 +1,12 @@ +//// [tests/cases/compiler/requireOfJsonFileWithoutResolveJsonModuleAndPathMapping.ts] //// + +//// [foobar.json] +{ "a": 10 } + +//// [a.ts] +import foobar from "foo/bar/foobar.json"; + + +//// [/bin/a.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/testdata/baselines/reference/submodule/compiler/requireOfJsonFile_PathMapping.js b/testdata/baselines/reference/submodule/compiler/requireOfJsonFile_PathMapping.js new file mode 100644 index 0000000000..88eb73fa87 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/requireOfJsonFile_PathMapping.js @@ -0,0 +1,12 @@ +//// [tests/cases/compiler/requireOfJsonFile_PathMapping.ts] //// + +//// [foobar.json] +{ "a": 10 } + +//// [a.ts] +import foobar from "foo/bar/foobar.json"; + + +//// [/bin/a.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/testdata/baselines/reference/submodule/compiler/resolveNameWithNamspace.js b/testdata/baselines/reference/submodule/compiler/resolveNameWithNamspace.js new file mode 100644 index 0000000000..08eb0d9824 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/resolveNameWithNamspace.js @@ -0,0 +1,29 @@ +//// [tests/cases/compiler/resolveNameWithNamspace.ts] //// + +//// [node.d.ts] +declare function require(moduleName: string): any; + +declare module "assert" { + export function equal(actual: any, expected: any, message?: string | Error): void; +} + +//// [ns.ts] +/// +namespace myAssert { + export type cool = 'cool' +} +var myAssert = require('assert') + +//// [app.js] +exports.equal = myAssert.equal +exports.equal() + +//// [ns.js] +/// +var myAssert = require('assert'); +//// [app.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +export var equal = myAssert.equal; +exports.equal = myAssert.equal; +exports.equal(); diff --git a/testdata/baselines/reference/submodule/compiler/resolveNameWithNamspace.js.diff b/testdata/baselines/reference/submodule/compiler/resolveNameWithNamspace.js.diff new file mode 100644 index 0000000000..ed275fe236 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/resolveNameWithNamspace.js.diff @@ -0,0 +1,11 @@ +--- old.resolveNameWithNamspace.js ++++ new.resolveNameWithNamspace.js +@@= skipped -21, +21 lines =@@ + /// + var myAssert = require('assert'); + //// [app.js] ++"use strict"; ++Object.defineProperty(exports, "__esModule", { value: true }); ++export var equal = myAssert.equal; + exports.equal = myAssert.equal; + exports.equal(); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/reuseTypeAnnotationImportTypeInGlobalThisTypeArgument.js b/testdata/baselines/reference/submodule/compiler/reuseTypeAnnotationImportTypeInGlobalThisTypeArgument.js new file mode 100644 index 0000000000..2ae2909b75 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/reuseTypeAnnotationImportTypeInGlobalThisTypeArgument.js @@ -0,0 +1,46 @@ +//// [tests/cases/compiler/reuseTypeAnnotationImportTypeInGlobalThisTypeArgument.ts] //// + +//// [contractHelper.d.ts] +export function handleParamGovernance(zcf: any): { + publicMixin: { + getGovernedParams: () => globalThis.ERef; + }; +}; + +//// [exported.d.ts] +type _ERef = T | Promise; +import { ParamStateRecord as _ParamStateRecord } from './types.js'; +declare global { + // @ts-ignore TS2666 + export { + _ERef as ERef, + _ParamStateRecord as ParamStateRecord, + }; +} + +//// [types.js] +export {}; +/** + * @typedef {Record} ParamStateRecord a Record containing + * keyword pairs with descriptions of parameters under governance. + */ + +//// [index.js] +import { handleParamGovernance } from './contractHelper.js'; +export const blah = handleParamGovernance({}); + + + + +//// [types.d.ts] +export {}; +/** + * @typedef {Record} ParamStateRecord a Record containing + * keyword pairs with descriptions of parameters under governance. + */ +//// [index.d.ts] +export declare const blah: { + publicMixin: { + getGovernedParams: () => any; + }; +}; diff --git a/testdata/baselines/reference/submodule/compiler/reuseTypeAnnotationImportTypeInGlobalThisTypeArgument.js.diff b/testdata/baselines/reference/submodule/compiler/reuseTypeAnnotationImportTypeInGlobalThisTypeArgument.js.diff new file mode 100644 index 0000000000..5237df289e --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/reuseTypeAnnotationImportTypeInGlobalThisTypeArgument.js.diff @@ -0,0 +1,21 @@ +--- old.reuseTypeAnnotationImportTypeInGlobalThisTypeArgument.js ++++ new.reuseTypeAnnotationImportTypeInGlobalThisTypeArgument.js +@@= skipped -32, +32 lines =@@ + + + //// [types.d.ts] ++export {}; + /** +- * a Record containing ++ * @typedef {Record} ParamStateRecord a Record containing + * keyword pairs with descriptions of parameters under governance. + */ +-export type ParamStateRecord = Record; + //// [index.d.ts] +-export const blah: { ++export declare const blah: { + publicMixin: { +- getGovernedParams: () => globalThis.ERef; ++ getGovernedParams: () => any; + }; + }; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/selfReferentialDefaultNoStackOverflow.js b/testdata/baselines/reference/submodule/compiler/selfReferentialDefaultNoStackOverflow.js new file mode 100644 index 0000000000..f032036b05 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/selfReferentialDefaultNoStackOverflow.js @@ -0,0 +1,19 @@ +//// [tests/cases/compiler/selfReferentialDefaultNoStackOverflow.ts] //// + +//// [QSpinner.js] +import DefaultSpinner from './QSpinner' + +export default { + mixins: [DefaultSpinner], + name: 'QSpinner' +} + + +//// [QSpinner.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const QSpinner_1 = require("./QSpinner"); +exports.default = { + mixins: [QSpinner_1.default], + name: 'QSpinner' +}; diff --git a/testdata/baselines/reference/submodule/compiler/selfReferentialDefaultNoStackOverflow.js.diff b/testdata/baselines/reference/submodule/compiler/selfReferentialDefaultNoStackOverflow.js.diff new file mode 100644 index 0000000000..a5edb40db3 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/selfReferentialDefaultNoStackOverflow.js.diff @@ -0,0 +1,11 @@ +--- old.selfReferentialDefaultNoStackOverflow.js ++++ new.selfReferentialDefaultNoStackOverflow.js +@@= skipped -11, +11 lines =@@ + //// [QSpinner.js] + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); +-var QSpinner_1 = require("./QSpinner"); ++const QSpinner_1 = require("./QSpinner"); + exports.default = { + mixins: [QSpinner_1.default], + name: 'QSpinner' \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/sideEffectImports4(nouncheckedsideeffectimports=false).js b/testdata/baselines/reference/submodule/compiler/sideEffectImports4(nouncheckedsideeffectimports=false).js new file mode 100644 index 0000000000..4dd388e90f --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/sideEffectImports4(nouncheckedsideeffectimports=false).js @@ -0,0 +1,33 @@ +//// [tests/cases/compiler/sideEffectImports4.ts] //// + +//// [package.json] +{ + "name": "server-only", + "version": "0.0.1", + "main": "index.js", + "exports": { + ".": { + "react-server": "./empty.js", + "default": "./index.js" + } + } +} + +//// [index.js] +throw new Error(); + +//// [empty.js] +// Empty + +//// [package.json] +{ + "name": "root", + "type": "module" +} + +//// [index.ts] +import "server-only"; + + +//// [index.js] +import "server-only"; diff --git a/testdata/baselines/reference/submodule/compiler/sideEffectImports4(nouncheckedsideeffectimports=true).js b/testdata/baselines/reference/submodule/compiler/sideEffectImports4(nouncheckedsideeffectimports=true).js new file mode 100644 index 0000000000..4dd388e90f --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/sideEffectImports4(nouncheckedsideeffectimports=true).js @@ -0,0 +1,33 @@ +//// [tests/cases/compiler/sideEffectImports4.ts] //// + +//// [package.json] +{ + "name": "server-only", + "version": "0.0.1", + "main": "index.js", + "exports": { + ".": { + "react-server": "./empty.js", + "default": "./index.js" + } + } +} + +//// [index.js] +throw new Error(); + +//// [empty.js] +// Empty + +//// [package.json] +{ + "name": "root", + "type": "module" +} + +//// [index.ts] +import "server-only"; + + +//// [index.js] +import "server-only"; diff --git a/testdata/baselines/reference/submodule/compiler/subclassThisTypeAssignable01.js b/testdata/baselines/reference/submodule/compiler/subclassThisTypeAssignable01.js new file mode 100644 index 0000000000..290192cd2e --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/subclassThisTypeAssignable01.js @@ -0,0 +1,40 @@ +//// [tests/cases/compiler/subclassThisTypeAssignable01.ts] //// + +//// [tile1.ts] +interface Lifecycle { + oninit?(vnode: Vnode): number; + [_: number]: any; +} + +interface Vnode = Lifecycle> { + tag: Component; +} + +interface Component { + view(this: State, vnode: Vnode): number; +} + +interface ClassComponent
extends Lifecycle> { + oninit?(vnode: Vnode): number; + view(vnode: Vnode): number; +} + +interface MyAttrs { id: number } +class C implements ClassComponent { + view(v: Vnode) { return 0; } +} + +const test8: ClassComponent = new C(); +//// [file1.js] +/** @type {ClassComponent} */ +const test9 = new C(); + + +//// [tile1.js] +class C { + view(v) { return 0; } +} +const test8 = new C(); +//// [file1.js] +/** @type {ClassComponent} */ +const test9 = new C(); diff --git a/testdata/baselines/reference/submodule/compiler/subclassThisTypeAssignable02.js b/testdata/baselines/reference/submodule/compiler/subclassThisTypeAssignable02.js new file mode 100644 index 0000000000..7c4894d69d --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/subclassThisTypeAssignable02.js @@ -0,0 +1,44 @@ +//// [tests/cases/compiler/subclassThisTypeAssignable02.ts] //// + +//// [tile1.ts] +interface Lifecycle> { + oninit?(vnode: Vnode): number; + [_: number]: any; +} + +interface Vnode> { + tag: Component; +} + +interface Component> { + view(this: State, vnode: Vnode): number; +} + +interface ClassComponent extends Lifecycle> { + oninit?(vnode: Vnode): number; + view(vnode: Vnode): number; +} + +interface MyAttrs { id: number } +class C implements ClassComponent { + view(v: Vnode) { return 0; } + + // Must declare a compatible-ish index signature or else + // we won't correctly implement ClassComponent. + [_: number]: unknown; +} + +const test8: ClassComponent = new C(); +//// [file1.js] +/** @type {ClassComponent} */ +const test9 = new C(); + + +//// [tile1.js] +class C { + view(v) { return 0; } +} +const test8 = new C(); +//// [file1.js] +/** @type {ClassComponent} */ +const test9 = new C(); diff --git a/testdata/baselines/reference/submodule/compiler/subclassThisTypeAssignable02.js.diff b/testdata/baselines/reference/submodule/compiler/subclassThisTypeAssignable02.js.diff new file mode 100644 index 0000000000..241e4ca1cf --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/subclassThisTypeAssignable02.js.diff @@ -0,0 +1,15 @@ +--- old.subclassThisTypeAssignable02.js ++++ new.subclassThisTypeAssignable02.js +@@= skipped -34, +34 lines =@@ + + + //// [tile1.js] +-"use strict"; + class C { + view(v) { return 0; } + } + const test8 = new C(); + //// [file1.js] +-"use strict"; + /** @type {ClassComponent} */ + const test9 = new C(); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/superNoModifiersCrash.js b/testdata/baselines/reference/submodule/compiler/superNoModifiersCrash.js new file mode 100644 index 0000000000..949e0a870d --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/superNoModifiersCrash.js @@ -0,0 +1,26 @@ +//// [tests/cases/compiler/superNoModifiersCrash.ts] //// + +//// [File.js] +class Parent { + initialize() { + super.initialize(...arguments) + return this.asdf = '' + } + } + +class Child extends Parent { + initialize() { + } +} + +//// [File.js] +class Parent { + initialize() { + super.initialize(...arguments); + return this.asdf = ''; + } +} +class Child extends Parent { + initialize() { + } +} diff --git a/testdata/baselines/reference/submodule/compiler/thisAssignmentInNamespaceDeclaration1.js b/testdata/baselines/reference/submodule/compiler/thisAssignmentInNamespaceDeclaration1.js new file mode 100644 index 0000000000..4735d38fde --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/thisAssignmentInNamespaceDeclaration1.js @@ -0,0 +1,23 @@ +//// [tests/cases/compiler/thisAssignmentInNamespaceDeclaration1.ts] //// + +//// [a.js] +module foo { + this.bar = 4; +} + +//// [b.js] +namespace blah { + this.prop = 42; +} + + +//// [a.js] +var foo; +(function (foo) { + this.bar = 4; +})(foo || (foo = {})); +//// [b.js] +var blah; +(function (blah) { + this.prop = 42; +})(blah || (blah = {})); diff --git a/testdata/baselines/reference/submodule/compiler/thisInObjectJs.js b/testdata/baselines/reference/submodule/compiler/thisInObjectJs.js new file mode 100644 index 0000000000..cca482b9b6 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/thisInObjectJs.js @@ -0,0 +1,41 @@ +//// [tests/cases/compiler/thisInObjectJs.ts] //// + +//// [index.js] +export { } +let obj = { + x: 10, + y: [1], + fun: function() { + this.x = 1 + this/*1*/ + }, + f2: function() { + this.x + this/*2*/ + }, + f3: (function() { + this.x = 1 + this/*3*/ + }), +} + + +//// [index.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +let obj = { + x: 10, + y: [1], + fun: function () { + this.x = 1; + this; /*1*/ + }, + f2: function () { + this.x; + this; /*2*/ + }, + f3: (function () { + this.x = 1; + this; /*3*/ + }), +}; diff --git a/testdata/baselines/reference/submodule/compiler/unicodeEscapesInJSDoc.js b/testdata/baselines/reference/submodule/compiler/unicodeEscapesInJSDoc.js new file mode 100644 index 0000000000..76aca7f818 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/unicodeEscapesInJSDoc.js @@ -0,0 +1,35 @@ +//// [tests/cases/compiler/unicodeEscapesInJSDoc.ts] //// + +//// [file.js] +/** + * @param {number} \u0061 + * @param {number} a\u0061 + */ +function foo(a, aa) { + console.log(a + aa); +} + +/** + * @param {number} \u{0061} + * @param {number} a\u{0061} + */ +function bar(a, aa) { + console.log(a + aa); +} + + +//// [file.js] +/** + * @param {number} \u0061 + * @param {number} a\u0061 + */ +function foo(a, aa) { + console.log(a + aa); +} +/** + * @param {number} \u{0061} + * @param {number} a\u{0061} + */ +function bar(a, aa) { + console.log(a + aa); +} diff --git a/testdata/baselines/reference/submodule/compiler/unreachableJavascriptChecked.js b/testdata/baselines/reference/submodule/compiler/unreachableJavascriptChecked.js new file mode 100644 index 0000000000..d7aa8a115e --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/unreachableJavascriptChecked.js @@ -0,0 +1,20 @@ +//// [tests/cases/compiler/unreachableJavascriptChecked.ts] //// + +//// [unreachable.js] +function unreachable() { + return f(); + return 2; + return 3; + function f() {} + return 4; +} + + +//// [unreachable.js] +function unreachable() { + return f(); + return 2; + return 3; + function f() { } + return 4; +} diff --git a/testdata/baselines/reference/submodule/compiler/unreachableJavascriptUnchecked.js b/testdata/baselines/reference/submodule/compiler/unreachableJavascriptUnchecked.js new file mode 100644 index 0000000000..fe542112f8 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/unreachableJavascriptUnchecked.js @@ -0,0 +1,13 @@ +//// [tests/cases/compiler/unreachableJavascriptUnchecked.ts] //// + +//// [unreachable.js] +function unreachable() { + return 1; + return 2; +} + +//// [unreachable.js] +function unreachable() { + return 1; + return 2; +} diff --git a/testdata/baselines/reference/submodule/compiler/usedImportNotElidedInJs.js b/testdata/baselines/reference/submodule/compiler/usedImportNotElidedInJs.js new file mode 100644 index 0000000000..2433999eec --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/usedImportNotElidedInJs.js @@ -0,0 +1,12 @@ +//// [tests/cases/compiler/usedImportNotElidedInJs.ts] //// + +//// [test.js] +import * as moment from 'moment'; +import rollupMoment__default from 'moment'; +export const moment = rollupMoment__default || moment; + + +//// [test.js] +import * as moment from 'moment'; +import rollupMoment__default from 'moment'; +export const moment = rollupMoment__default || moment; diff --git a/testdata/baselines/reference/submodule/conformance/assertionTypePredicates2.js b/testdata/baselines/reference/submodule/conformance/assertionTypePredicates2.js new file mode 100644 index 0000000000..b0320bf6dd --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/assertionTypePredicates2.js @@ -0,0 +1,52 @@ +//// [tests/cases/conformance/controlFlow/assertionTypePredicates2.ts] //// + +//// [assertionTypePredicates2.js] +/** + * @typedef {{ x: number }} A + */ + +/** + * @typedef { A & { y: number } } B + */ + +/** + * @param {A} a + * @returns { asserts a is B } + */ +const foo = (a) => { + if (/** @type { B } */ (a).y !== 0) throw TypeError(); + return undefined; +}; + +export const main = () => { + /** @type { A } */ + const a = { x: 1 }; + foo(a); +}; + + +//// [assertionTypePredicates2.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.main = void 0; +/** + * @typedef {{ x: number }} A + */ +/** + * @typedef { A & { y: number } } B + */ +/** + * @param {A} a + * @returns { asserts a is B } + */ +const foo = (a) => { + if ( /** @type { B } */a.y !== 0) + throw TypeError(); + return undefined; +}; +const main = () => { + /** @type { A } */ + const a = { x: 1 }; + foo(a); +}; +exports.main = main; diff --git a/testdata/baselines/reference/submodule/conformance/assertionTypePredicates2.js.diff b/testdata/baselines/reference/submodule/conformance/assertionTypePredicates2.js.diff new file mode 100644 index 0000000000..ae9f8f494d --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/assertionTypePredicates2.js.diff @@ -0,0 +1,27 @@ +--- old.assertionTypePredicates2.js ++++ new.assertionTypePredicates2.js +@@= skipped -26, +26 lines =@@ + + //// [assertionTypePredicates2.js] + "use strict"; +-/** +- * @typedef {{ x: number }} A +- */ + Object.defineProperty(exports, "__esModule", { value: true }); + exports.main = void 0; + /** ++ * @typedef {{ x: number }} A ++ */ ++/** + * @typedef { A & { y: number } } B + */ + /** +@@= skipped -13, +13 lines =@@ + * @returns { asserts a is B } + */ + const foo = (a) => { +- if ( /** @type { B } */(a).y !== 0) ++ if ( /** @type { B } */a.y !== 0) + throw TypeError(); + return undefined; + }; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/assignmentToVoidZero1.js b/testdata/baselines/reference/submodule/conformance/assignmentToVoidZero1.js new file mode 100644 index 0000000000..699e13f260 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/assignmentToVoidZero1.js @@ -0,0 +1,28 @@ +//// [tests/cases/conformance/salsa/assignmentToVoidZero1.ts] //// + +//// [assignmentToVoidZero1.js] +// #38552 +exports.y = exports.x = void 0; +exports.x = 1; +exports.y = 2; + + +//// [assignmentToVoidZero1.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +// #38552 +export var y = exports.x = void 0; +// #38552 +exports.y = exports.x = void 0; +export var x = 1; +exports.x = 1; +export var y = 2; +exports.y = 2; + + +//// [assignmentToVoidZero1.d.ts] +// #38552 +export var y = exports.x = void 0; +export var x = 1; +export var y = 2; +export {}; diff --git a/testdata/baselines/reference/submodule/conformance/assignmentToVoidZero1.js.diff b/testdata/baselines/reference/submodule/conformance/assignmentToVoidZero1.js.diff new file mode 100644 index 0000000000..6b0f45d4bc --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/assignmentToVoidZero1.js.diff @@ -0,0 +1,26 @@ +--- old.assignmentToVoidZero1.js ++++ new.assignmentToVoidZero1.js +@@= skipped -7, +7 lines =@@ + + + //// [assignmentToVoidZero1.js] ++"use strict"; ++Object.defineProperty(exports, "__esModule", { value: true }); ++// #38552 ++export var y = exports.x = void 0; + // #38552 + exports.y = exports.x = void 0; ++export var x = 1; + exports.x = 1; ++export var y = 2; + exports.y = 2; + + + //// [assignmentToVoidZero1.d.ts] +-export const x: 1; +-export const y: 2; ++// #38552 ++export var y = exports.x = void 0; ++export var x = 1; ++export var y = 2; ++export {}; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/assignmentToVoidZero2.js b/testdata/baselines/reference/submodule/conformance/assignmentToVoidZero2.js new file mode 100644 index 0000000000..38bfb25afb --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/assignmentToVoidZero2.js @@ -0,0 +1,52 @@ +//// [tests/cases/conformance/salsa/assignmentToVoidZero2.ts] //// + +//// [assignmentToVoidZero2.js] +exports.j = 1; +exports.k = void 0; +var o = {} +o.x = 1 +o.y = void 0 +o.x + o.y + +function C() { + this.p = 1 + this.q = void 0 +} +var c = new C() +c.p + c.q + +//// [importer.js] +import { j, k } from './assignmentToVoidZero2' +j + k + + +//// [assignmentToVoidZero2.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +export var j = 1; +exports.j = 1; +export var k = void 0; +exports.k = void 0; +var o = {}; +o.x = 1; +o.y = void 0; +o.x + o.y; +function C() { + this.p = 1; + this.q = void 0; +} +var c = new C(); +c.p + c.q; +//// [importer.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const assignmentToVoidZero2_1 = require("./assignmentToVoidZero2"); +assignmentToVoidZero2_1.j + assignmentToVoidZero2_1.k; + + +//// [assignmentToVoidZero2.d.ts] +export var j = 1; +export var k = void 0; +export {}; +//// [importer.d.ts] +export {}; diff --git a/testdata/baselines/reference/submodule/conformance/assignmentToVoidZero2.js.diff b/testdata/baselines/reference/submodule/conformance/assignmentToVoidZero2.js.diff new file mode 100644 index 0000000000..828b31c77b --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/assignmentToVoidZero2.js.diff @@ -0,0 +1,30 @@ +--- old.assignmentToVoidZero2.js ++++ new.assignmentToVoidZero2.js +@@= skipped -20, +20 lines =@@ + + + //// [assignmentToVoidZero2.js] ++"use strict"; ++Object.defineProperty(exports, "__esModule", { value: true }); ++export var j = 1; + exports.j = 1; ++export var k = void 0; + exports.k = void 0; + var o = {}; + o.x = 1; +@@= skipped -15, +19 lines =@@ + //// [importer.js] + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); +-var assignmentToVoidZero2_1 = require("./assignmentToVoidZero2"); ++const assignmentToVoidZero2_1 = require("./assignmentToVoidZero2"); + assignmentToVoidZero2_1.j + assignmentToVoidZero2_1.k; + + + //// [assignmentToVoidZero2.d.ts] +-export const j: 1; ++export var j = 1; ++export var k = void 0; ++export {}; + //// [importer.d.ts] + export {}; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/bundlerImportTsExtensions(allowimportingtsextensions=false,noemit=false).js b/testdata/baselines/reference/submodule/conformance/bundlerImportTsExtensions(allowimportingtsextensions=false,noemit=false).js new file mode 100644 index 0000000000..69212e50e8 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/bundlerImportTsExtensions(allowimportingtsextensions=false,noemit=false).js @@ -0,0 +1,81 @@ +//// [tests/cases/conformance/moduleResolution/bundler/bundlerImportTsExtensions.ts] //// + +//// [a.ts] +export {}; + +//// [b.ts] +export {}; + +//// [b.js] +export {}; + +//// [b.d.ts] +export {}; + +//// [c.ts] +export {}; + +//// [c.tsx] +export {}; + +//// [index.ts] +export {}; + +//// [e] +WOMP WOMP BINARY DATA + +//// [e.ts] +export {}; + +//// [e.txt] +The letter e is for elephant +This poem is not about elephants +It is about the letter e +- Authored by GitHub Copilot, Nov 2022 + +//// [e.txt.ts] +export {}; + +//// [main.ts] +import {} from "./a"; +import {} from "./a.js"; +import {} from "./a.ts"; + +import {} from "./b"; +import {} from "./b.js"; +import {} from "./b.ts"; +import {} from "./b.d.ts"; +import type {} from "./b.d.ts"; + +import {} from "./c.ts"; +import {} from "./c.tsx"; + +import {} from "./d"; +import {} from "./d/index"; +import {} from "./d/index.ts"; + +// These should not resolve, but preventing them has +// relatively little utility compared to the cost of +// the filesystem hits. +import {} from "./e"; +import {} from "./e.txt"; + +//// [types.d.ts] +import {} from "./a.ts"; +import {} from "./a.d.ts"; +import type {} from "./a.d.ts"; + +//// [a.js] +export {}; +//// [b.js] +export {}; +//// [c.js] +export {}; +//// [index.js] +export {}; +//// [e.js] +export {}; +//// [e.txt.js] +export {}; +//// [main.js] +export {}; diff --git a/testdata/baselines/reference/submodule/conformance/bundlerImportTsExtensions(allowimportingtsextensions=false,noemit=false).js.diff b/testdata/baselines/reference/submodule/conformance/bundlerImportTsExtensions(allowimportingtsextensions=false,noemit=false).js.diff new file mode 100644 index 0000000000..80b6c46b59 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/bundlerImportTsExtensions(allowimportingtsextensions=false,noemit=false).js.diff @@ -0,0 +1,13 @@ +--- old.bundlerImportTsExtensions(allowimportingtsextensions=false,noemit=false).js ++++ new.bundlerImportTsExtensions(allowimportingtsextensions=false,noemit=false).js +@@= skipped -66, +66 lines =@@ + + //// [a.js] + export {}; ++//// [b.js] ++export {}; ++//// [c.js] ++export {}; + //// [index.js] + export {}; + //// [e.js] \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/bundlerImportTsExtensions(allowimportingtsextensions=true,noemit=false).js b/testdata/baselines/reference/submodule/conformance/bundlerImportTsExtensions(allowimportingtsextensions=true,noemit=false).js new file mode 100644 index 0000000000..69212e50e8 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/bundlerImportTsExtensions(allowimportingtsextensions=true,noemit=false).js @@ -0,0 +1,81 @@ +//// [tests/cases/conformance/moduleResolution/bundler/bundlerImportTsExtensions.ts] //// + +//// [a.ts] +export {}; + +//// [b.ts] +export {}; + +//// [b.js] +export {}; + +//// [b.d.ts] +export {}; + +//// [c.ts] +export {}; + +//// [c.tsx] +export {}; + +//// [index.ts] +export {}; + +//// [e] +WOMP WOMP BINARY DATA + +//// [e.ts] +export {}; + +//// [e.txt] +The letter e is for elephant +This poem is not about elephants +It is about the letter e +- Authored by GitHub Copilot, Nov 2022 + +//// [e.txt.ts] +export {}; + +//// [main.ts] +import {} from "./a"; +import {} from "./a.js"; +import {} from "./a.ts"; + +import {} from "./b"; +import {} from "./b.js"; +import {} from "./b.ts"; +import {} from "./b.d.ts"; +import type {} from "./b.d.ts"; + +import {} from "./c.ts"; +import {} from "./c.tsx"; + +import {} from "./d"; +import {} from "./d/index"; +import {} from "./d/index.ts"; + +// These should not resolve, but preventing them has +// relatively little utility compared to the cost of +// the filesystem hits. +import {} from "./e"; +import {} from "./e.txt"; + +//// [types.d.ts] +import {} from "./a.ts"; +import {} from "./a.d.ts"; +import type {} from "./a.d.ts"; + +//// [a.js] +export {}; +//// [b.js] +export {}; +//// [c.js] +export {}; +//// [index.js] +export {}; +//// [e.js] +export {}; +//// [e.txt.js] +export {}; +//// [main.js] +export {}; diff --git a/testdata/baselines/reference/submodule/conformance/bundlerImportTsExtensions(allowimportingtsextensions=true,noemit=false).js.diff b/testdata/baselines/reference/submodule/conformance/bundlerImportTsExtensions(allowimportingtsextensions=true,noemit=false).js.diff new file mode 100644 index 0000000000..3d6554f127 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/bundlerImportTsExtensions(allowimportingtsextensions=true,noemit=false).js.diff @@ -0,0 +1,13 @@ +--- old.bundlerImportTsExtensions(allowimportingtsextensions=true,noemit=false).js ++++ new.bundlerImportTsExtensions(allowimportingtsextensions=true,noemit=false).js +@@= skipped -66, +66 lines =@@ + + //// [a.js] + export {}; ++//// [b.js] ++export {}; ++//// [c.js] ++export {}; + //// [index.js] + export {}; + //// [e.js] \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/bundlerSyntaxRestrictions(module=esnext).js b/testdata/baselines/reference/submodule/conformance/bundlerSyntaxRestrictions(module=esnext).js new file mode 100644 index 0000000000..04690c98d9 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/bundlerSyntaxRestrictions(module=esnext).js @@ -0,0 +1,42 @@ +//// [tests/cases/conformance/moduleResolution/bundler/bundlerSyntaxRestrictions.ts] //// + +//// [index.d.ts] +declare var require: (...args: any[]) => any; + +//// [ambient.d.ts] +declare module "fs" { + export function readFileSync(path: string, encoding?: string): string; +} +declare module "path" { + import fs = require("fs"); // ok + namespace path { + export const sep: string; + } + export = path; // ok +} + +//// [mainJs.js] +import {} from "./a"; +import("./a"); +const _ = require("./a"); +_.a; // any + +//// [main.ts] +import {} from "./a"; +import _ = require("./a"); // Error in esnext +export = {}; // Error +export {}; + +//// [a.ts] +export const a = "a"; + + +//// [a.js] +export const a = "a"; +//// [mainJs.js] +import {} from "./a"; +import("./a"); +const _ = require("./a"); +_.a; // any +//// [main.js] +export {}; diff --git a/testdata/baselines/reference/submodule/conformance/bundlerSyntaxRestrictions(module=esnext).js.diff b/testdata/baselines/reference/submodule/conformance/bundlerSyntaxRestrictions(module=esnext).js.diff new file mode 100644 index 0000000000..56bea43eda --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/bundlerSyntaxRestrictions(module=esnext).js.diff @@ -0,0 +1,13 @@ +--- old.bundlerSyntaxRestrictions(module=esnext).js ++++ new.bundlerSyntaxRestrictions(module=esnext).js +@@= skipped -33, +33 lines =@@ + //// [a.js] + export const a = "a"; + //// [mainJs.js] ++import {} from "./a"; + import("./a"); + const _ = require("./a"); + _.a; // any +-export {}; + //// [main.js] + export {}; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/bundlerSyntaxRestrictions(module=preserve).js b/testdata/baselines/reference/submodule/conformance/bundlerSyntaxRestrictions(module=preserve).js new file mode 100644 index 0000000000..013767234d --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/bundlerSyntaxRestrictions(module=preserve).js @@ -0,0 +1,42 @@ +//// [tests/cases/conformance/moduleResolution/bundler/bundlerSyntaxRestrictions.ts] //// + +//// [index.d.ts] +declare var require: (...args: any[]) => any; + +//// [ambient.d.ts] +declare module "fs" { + export function readFileSync(path: string, encoding?: string): string; +} +declare module "path" { + import fs = require("fs"); // ok + namespace path { + export const sep: string; + } + export = path; // ok +} + +//// [mainJs.js] +import {} from "./a"; +import("./a"); +const _ = require("./a"); +_.a; // any + +//// [main.ts] +import {} from "./a"; +import _ = require("./a"); // Error in esnext +export = {}; // Error +export {}; + +//// [a.ts] +export const a = "a"; + + +//// [a.js] +export const a = "a"; +//// [mainJs.js] +import {} from "./a"; +import("./a"); +const _ = require("./a"); +_.a; // any +//// [main.js] +module.exports = {}; diff --git a/testdata/baselines/reference/submodule/conformance/bundlerSyntaxRestrictions(module=preserve).js.diff b/testdata/baselines/reference/submodule/conformance/bundlerSyntaxRestrictions(module=preserve).js.diff new file mode 100644 index 0000000000..2a95c9a16e --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/bundlerSyntaxRestrictions(module=preserve).js.diff @@ -0,0 +1,10 @@ +--- old.bundlerSyntaxRestrictions(module=preserve).js ++++ new.bundlerSyntaxRestrictions(module=preserve).js +@@= skipped -33, +33 lines =@@ + //// [a.js] + export const a = "a"; + //// [mainJs.js] ++import {} from "./a"; + import("./a"); + const _ = require("./a"); + _.a; // any \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/callbackOnConstructor.js b/testdata/baselines/reference/submodule/conformance/callbackOnConstructor.js new file mode 100644 index 0000000000..431cb909b3 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/callbackOnConstructor.js @@ -0,0 +1,47 @@ +//// [tests/cases/conformance/jsdoc/callbackOnConstructor.ts] //// + +//// [callbackOnConstructor.js] +export class Preferences { + assignability = "no" + /** + * @callback ValueGetter_2 + * @param {string} name + * @returns {boolean|number|string|undefined} + */ + constructor() {} +} + + +/** @type {ValueGetter_2} */ +var ooscope2 = s => s.length > 0 + + +//// [callbackOnConstructor.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Preferences = void 0; +class Preferences { + assignability = "no"; + /** + * @callback ValueGetter_2 + * @param {string} name + * @returns {boolean|number|string|undefined} + */ + constructor() { } +} +exports.Preferences = Preferences; +/** @type {ValueGetter_2} */ +var ooscope2 = s => s.length > 0; + + +//// [callbackOnConstructor.d.ts] +export declare class Preferences { + assignability: string; + export type ValueGetter_2 = (name: string) => boolean | number | string | undefined; + /** + * @callback ValueGetter_2 + * @param {string} name + * @returns {boolean|number|string|undefined} + */ + constructor(); +} diff --git a/testdata/baselines/reference/submodule/conformance/callbackOnConstructor.js.diff b/testdata/baselines/reference/submodule/conformance/callbackOnConstructor.js.diff new file mode 100644 index 0000000000..45a701f8e7 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/callbackOnConstructor.js.diff @@ -0,0 +1,34 @@ +--- old.callbackOnConstructor.js ++++ new.callbackOnConstructor.js +@@= skipped -20, +20 lines =@@ + Object.defineProperty(exports, "__esModule", { value: true }); + exports.Preferences = void 0; + class Preferences { ++ assignability = "no"; + /** + * @callback ValueGetter_2 + * @param {string} name + * @returns {boolean|number|string|undefined} + */ +- constructor() { +- this.assignability = "no"; +- } ++ constructor() { } + } + exports.Preferences = Preferences; + /** @type {ValueGetter_2} */ +@@= skipped -15, +14 lines =@@ + + + //// [callbackOnConstructor.d.ts] +-export class Preferences { ++export declare class Preferences { + assignability: string; ++ export type ValueGetter_2 = (name: string) => boolean | number | string | undefined; ++ /** ++ * @callback ValueGetter_2 ++ * @param {string} name ++ * @returns {boolean|number|string|undefined} ++ */ ++ constructor(); + } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/callbackTagNestedParameter.js b/testdata/baselines/reference/submodule/conformance/callbackTagNestedParameter.js new file mode 100644 index 0000000000..e8bfcd3d8f --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/callbackTagNestedParameter.js @@ -0,0 +1,28 @@ +//// [tests/cases/conformance/jsdoc/callbackTagNestedParameter.ts] //// + +//// [cb_nested.js] +/** + * @callback WorksWithPeopleCallback + * @param {Object} person + * @param {string} person.name + * @param {number} [person.age] + * @returns {void} + */ + +/** + * For each person, calls your callback. + * @param {WorksWithPeopleCallback} callback + * @returns {void} + */ +function eachPerson(callback) { + callback({ name: "Empty" }); +} + + + + +//// [cb_nested.d.ts] +export type WorksWithPeopleCallback = (person: { + name: string; + age?: number; +}) => void; diff --git a/testdata/baselines/reference/submodule/conformance/callbackTagNestedParameter.js.diff b/testdata/baselines/reference/submodule/conformance/callbackTagNestedParameter.js.diff new file mode 100644 index 0000000000..734963ee5a --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/callbackTagNestedParameter.js.diff @@ -0,0 +1,24 @@ +--- old.callbackTagNestedParameter.js ++++ new.callbackTagNestedParameter.js +@@= skipped -21, +21 lines =@@ + + + //// [cb_nested.d.ts] +-/** +- * @callback WorksWithPeopleCallback +- * @param {Object} person +- * @param {string} person.name +- * @param {number} [person.age] +- * @returns {void} +- */ +-/** +- * For each person, calls your callback. +- * @param {WorksWithPeopleCallback} callback +- * @returns {void} +- */ +-declare function eachPerson(callback: WorksWithPeopleCallback): void; +-type WorksWithPeopleCallback = (person: { ++export type WorksWithPeopleCallback = (person: { + name: string; + age?: number; + }) => void; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/callbackTagVariadicType.js b/testdata/baselines/reference/submodule/conformance/callbackTagVariadicType.js new file mode 100644 index 0000000000..1f01695a33 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/callbackTagVariadicType.js @@ -0,0 +1,38 @@ +//// [tests/cases/conformance/jsdoc/callbackTagVariadicType.ts] //// + +//// [callbackTagVariadicType.js] +/** + * @callback Foo + * @param {...string} args + * @returns {number} + */ + +/** @type {Foo} */ +export const x = () => 1 +var res = x('a', 'b') + + +//// [callbackTagVariadicType.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.x = void 0; +/** + * @callback Foo + * @param {...string} args + * @returns {number} + */ +/** @type {Foo} */ +const x = () => 1; +exports.x = x; +var res = (0, exports.x)('a', 'b'); + + +//// [callbackTagVariadicType.d.ts] +export type Foo = (args: string[]) => number; +/** + * @callback Foo + * @param {...string} args + * @returns {number} + */ +/** @type {Foo} */ +export declare const x: Foo; diff --git a/testdata/baselines/reference/submodule/conformance/callbackTagVariadicType.js.diff b/testdata/baselines/reference/submodule/conformance/callbackTagVariadicType.js.diff new file mode 100644 index 0000000000..5b8112946f --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/callbackTagVariadicType.js.diff @@ -0,0 +1,35 @@ +--- old.callbackTagVariadicType.js ++++ new.callbackTagVariadicType.js +@@= skipped -13, +13 lines =@@ + + //// [callbackTagVariadicType.js] + "use strict"; +-/** +- * @callback Foo +- * @param {...string} args +- * @returns {number} +- */ + Object.defineProperty(exports, "__esModule", { value: true }); + exports.x = void 0; ++/** ++ * @callback Foo ++ * @param {...string} args ++ * @returns {number} ++ */ + /** @type {Foo} */ + const x = () => 1; + exports.x = x; +@@= skipped -14, +14 lines =@@ + + + //// [callbackTagVariadicType.d.ts] ++export type Foo = (args: string[]) => number; + /** + * @callback Foo + * @param {...string} args + * @returns {number} + */ + /** @type {Foo} */ +-export const x: Foo; +-export type Foo = (...args: string[]) => number; ++export declare const x: Foo; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/checkJsdocOptionalParamOrder.js b/testdata/baselines/reference/submodule/conformance/checkJsdocOptionalParamOrder.js new file mode 100644 index 0000000000..fb8c21dabd --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/checkJsdocOptionalParamOrder.js @@ -0,0 +1,20 @@ +//// [tests/cases/conformance/jsdoc/checkJsdocOptionalParamOrder.ts] //// + +//// [0.js] +// @ts-check +/** + * @param {number} a + * @param {number} [b] + * @param {number} c + */ +function foo(a, b, c) {} + + +//// [0.js] +// @ts-check +/** + * @param {number} a + * @param {number} [b] + * @param {number} c + */ +function foo(a, b, c) { } diff --git a/testdata/baselines/reference/submodule/conformance/checkJsdocParamOnVariableDeclaredFunctionExpression.js b/testdata/baselines/reference/submodule/conformance/checkJsdocParamOnVariableDeclaredFunctionExpression.js new file mode 100644 index 0000000000..fc3748709e --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/checkJsdocParamOnVariableDeclaredFunctionExpression.js @@ -0,0 +1,37 @@ +//// [tests/cases/conformance/jsdoc/checkJsdocParamOnVariableDeclaredFunctionExpression.ts] //// + +//// [0.js] +// @ts-check +/** + * @param {number=} n + * @param {string} [s] + */ +var x = function foo(n, s) {} +var y; +/** + * @param {boolean!} b + */ +y = function bar(b) {} + +/** + * @param {string} s + */ +var one = function (s) { }, two = function (untyped) { }; + + +//// [0.js] +// @ts-check +/** + * @param {number=} n + * @param {string} [s] + */ +var x = function foo(n, s) { }; +var y; +/** + * @param {boolean!} b + */ +y = function bar(b) { }; +/** + * @param {string} s + */ +var one = function (s) { }, two = function (untyped) { }; diff --git a/testdata/baselines/reference/submodule/conformance/checkJsdocParamTag1.js b/testdata/baselines/reference/submodule/conformance/checkJsdocParamTag1.js new file mode 100644 index 0000000000..495daf0bca --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/checkJsdocParamTag1.js @@ -0,0 +1,24 @@ +//// [tests/cases/conformance/jsdoc/checkJsdocParamTag1.ts] //// + +//// [0.js] +// @ts-check +/** + * @param {number=} n + * @param {string} [s] + */ +function foo(n, s) {} + +foo(); +foo(1); +foo(1, "hi"); + +//// [0.js] +// @ts-check +/** + * @param {number=} n + * @param {string} [s] + */ +function foo(n, s) { } +foo(); +foo(1); +foo(1, "hi"); diff --git a/testdata/baselines/reference/submodule/conformance/checkJsdocTypeTag1.js b/testdata/baselines/reference/submodule/conformance/checkJsdocTypeTag1.js new file mode 100644 index 0000000000..a154f9d89a --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/checkJsdocTypeTag1.js @@ -0,0 +1,77 @@ +//// [tests/cases/conformance/jsdoc/checkJsdocTypeTag1.ts] //// + +//// [0.js] +// @ts-check +/** @type {String} */ +var S = "hello world"; + +/** @type {number} */ +var n = 10; + +/** @type {*} */ +var anyT = 2; +anyT = "hello"; + +/** @type {?} */ +var anyT1 = 2; +anyT1 = "hi"; + +/** @type {Function} */ +const x = (a) => a + 1; +x(1); + +/** @type {function} */ +const y = (a) => a + 1; +y(1); + +/** @type {function (number)} */ +const x1 = (a) => a + 1; +x1(0); + +/** @type {function (number): number} */ +const x2 = (a) => a + 1; +x2(0); + +/** + * @type {object} + */ +var props = {}; + +/** + * @type {Object} + */ +var props = {}; + + +//// [0.js] +// @ts-check +/** @type {String} */ +var S = "hello world"; +/** @type {number} */ +var n = 10; +/** @type {*} */ +var anyT = 2; +anyT = "hello"; +/** @type {?} */ +var anyT1 = 2; +anyT1 = "hi"; +/** @type {Function} */ +const x = (a) => a + 1; +x(1); +/** @type {function} */ +const y = (a) => a + 1; +y(1); +/** @type {function (number)} */ +const x1 = (a) => a + 1; +x1(0); +/** @type {function (number): number} */ +const x2 = (a) => a + 1; +x2(0); +/** + * @type {object} + */ +var props = {}; +/** + * @type {Object} + */ +var props = {}; diff --git a/testdata/baselines/reference/submodule/conformance/checkJsdocTypeTag2.js b/testdata/baselines/reference/submodule/conformance/checkJsdocTypeTag2.js new file mode 100644 index 0000000000..ee542d60a9 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/checkJsdocTypeTag2.js @@ -0,0 +1,49 @@ +//// [tests/cases/conformance/jsdoc/checkJsdocTypeTag2.ts] //// + +//// [0.js] +// @ts-check +/** @type {String} */ +var S = true; + +/** @type {number} */ +var n = "hello"; + +/** @type {function (number)} */ +const x1 = (a) => a + 1; +x1("string"); + +/** @type {function (number): number} */ +const x2 = (a) => a + 1; + +/** @type {string} */ +var a; +a = x2(0); + +/** @type {function (number): number} */ +const x3 = (a) => a.concat("hi"); +x3(0); + +/** @type {function (number): string} */ +const x4 = (a) => a + 1; +x4(0); + +//// [0.js] +// @ts-check +/** @type {String} */ +var S = true; +/** @type {number} */ +var n = "hello"; +/** @type {function (number)} */ +const x1 = (a) => a + 1; +x1("string"); +/** @type {function (number): number} */ +const x2 = (a) => a + 1; +/** @type {string} */ +var a; +a = x2(0); +/** @type {function (number): number} */ +const x3 = (a) => a.concat("hi"); +x3(0); +/** @type {function (number): string} */ +const x4 = (a) => a + 1; +x4(0); diff --git a/testdata/baselines/reference/submodule/conformance/checkJsdocTypeTagOnObjectProperty1.js b/testdata/baselines/reference/submodule/conformance/checkJsdocTypeTagOnObjectProperty1.js new file mode 100644 index 0000000000..015c24d006 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/checkJsdocTypeTagOnObjectProperty1.js @@ -0,0 +1,53 @@ +//// [tests/cases/conformance/jsdoc/checkJsdocTypeTagOnObjectProperty1.ts] //// + +//// [0.js] +// @ts-check +var lol = "hello Lol" +const obj = { + /** @type {string|undefined} */ + foo: undefined, + /** @type {string|undefined} */ + bar: "42", + /** @type {function(number): number} */ + method1(n1) { + return n1 + 42; + }, + /** @type {string} */ + lol, + /** @type {number} */ + ['b' + 'ar1']: 42, + /** @type {function(number): number} */ + arrowFunc: (num) => num + 42 +} +obj.foo = 'string' +obj.lol +obj.bar = undefined; +var k = obj.method1(0); +obj.bar1 = "42"; +obj.arrowFunc(0); + +//// [0.js] +// @ts-check +var lol = "hello Lol"; +const obj = { + /** @type {string|undefined} */ + foo: undefined, + /** @type {string|undefined} */ + bar: "42", + /** @type {function(number): number} */ + method1(n1) { + return n1 + 42; + }, + /** @type {string} */ + lol, + /** @type {number} */ + ['b' + 'ar1']: 42, + /** @type {function(number): number} */ + arrowFunc: (num) => num + 42 +}; +obj.foo = 'string'; +obj.lol; +obj.bar = undefined; +var k = obj.method1(0); +obj.bar1 = "42"; +obj.arrowFunc(0); diff --git a/testdata/baselines/reference/submodule/conformance/checkJsdocTypeTagOnObjectProperty2.js b/testdata/baselines/reference/submodule/conformance/checkJsdocTypeTagOnObjectProperty2.js new file mode 100644 index 0000000000..a2333e6b99 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/checkJsdocTypeTagOnObjectProperty2.js @@ -0,0 +1,48 @@ +//// [tests/cases/conformance/jsdoc/checkJsdocTypeTagOnObjectProperty2.ts] //// + +//// [0.js] +// @ts-check +var lol; +const obj = { + /** @type {string|undefined} */ + bar: 42, + /** @type {function(number): number} */ + method1(n1) { + return "42"; + }, + /** @type {function(number): number} */ + method2: (n1) => "lol", + /** @type {function(number): number} */ + arrowFunc: (num="0") => num + 42, + /** @type {string} */ + lol +} +lol = "string" +/** @type {string} */ +var s = obj.method1(0); + +/** @type {string} */ +var s1 = obj.method2("0"); + +//// [0.js] +// @ts-check +var lol; +const obj = { + /** @type {string|undefined} */ + bar: 42, + /** @type {function(number): number} */ + method1(n1) { + return "42"; + }, + /** @type {function(number): number} */ + method2: (n1) => "lol", + /** @type {function(number): number} */ + arrowFunc: (num = "0") => num + 42, + /** @type {string} */ + lol +}; +lol = "string"; +/** @type {string} */ +var s = obj.method1(0); +/** @type {string} */ +var s1 = obj.method2("0"); diff --git a/testdata/baselines/reference/submodule/conformance/checkJsdocTypedefInParamTag1.js b/testdata/baselines/reference/submodule/conformance/checkJsdocTypedefInParamTag1.js new file mode 100644 index 0000000000..059f8faab4 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/checkJsdocTypedefInParamTag1.js @@ -0,0 +1,88 @@ +//// [tests/cases/conformance/jsdoc/checkJsdocTypedefInParamTag1.ts] //// + +//// [0.js] +// @ts-check +/** + * @typedef {Object} Opts + * @property {string} x + * @property {string=} y + * @property {string} [z] + * @property {string} [w="hi"] + * + * @param {Opts} opts + */ +function foo(opts) { + opts.x; +} + +foo({x: 'abc'}); + +/** + * @typedef {Object} AnotherOpts + * @property anotherX {string} + * @property anotherY {string=} + * + * @param {AnotherOpts} opts + */ +function foo1(opts) { + opts.anotherX; +} + +foo1({anotherX: "world"}); + +/** + * @typedef {object} Opts1 + * @property {string} x + * @property {string=} y + * @property {string} [z] + * @property {string} [w="hi"] + * + * @param {Opts1} opts + */ +function foo2(opts) { + opts.x; +} +foo2({x: 'abc'}); + + +//// [0.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +// @ts-check +/** + * @typedef {Object} Opts + * @property {string} x + * @property {string=} y + * @property {string} [z] + * @property {string} [w="hi"] + * + * @param {Opts} opts + */ +function foo(opts) { + opts.x; +} +foo({ x: 'abc' }); +/** + * @typedef {Object} AnotherOpts + * @property anotherX {string} + * @property anotherY {string=} + * + * @param {AnotherOpts} opts + */ +function foo1(opts) { + opts.anotherX; +} +foo1({ anotherX: "world" }); +/** + * @typedef {object} Opts1 + * @property {string} x + * @property {string=} y + * @property {string} [z] + * @property {string} [w="hi"] + * + * @param {Opts1} opts + */ +function foo2(opts) { + opts.x; +} +foo2({ x: 'abc' }); diff --git a/testdata/baselines/reference/submodule/conformance/checkJsdocTypedefInParamTag1.js.diff b/testdata/baselines/reference/submodule/conformance/checkJsdocTypedefInParamTag1.js.diff new file mode 100644 index 0000000000..bb54fa92fb --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/checkJsdocTypedefInParamTag1.js.diff @@ -0,0 +1,11 @@ +--- old.checkJsdocTypedefInParamTag1.js ++++ new.checkJsdocTypedefInParamTag1.js +@@= skipped -45, +45 lines =@@ + + + //// [0.js] ++"use strict"; ++Object.defineProperty(exports, "__esModule", { value: true }); + // @ts-check + /** + * @typedef {Object} Opts \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/checkJsdocTypedefOnlySourceFile.js b/testdata/baselines/reference/submodule/conformance/checkJsdocTypedefOnlySourceFile.js new file mode 100644 index 0000000000..89a04a9d59 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/checkJsdocTypedefOnlySourceFile.js @@ -0,0 +1,27 @@ +//// [tests/cases/conformance/jsdoc/checkJsdocTypedefOnlySourceFile.ts] //// + +//// [0.js] +// @ts-check + +var exports = {}; + +/** + * @typedef {string} + */ +exports.SomeName; + +/** @type {exports.SomeName} */ +const myString = 'str'; + + +//// [0.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +// @ts-check +var exports = {}; +/** + * @typedef {string} + */ +exports.SomeName; +/** @type {exports.SomeName} */ +const myString = 'str'; diff --git a/testdata/baselines/reference/submodule/conformance/checkJsdocTypedefOnlySourceFile.js.diff b/testdata/baselines/reference/submodule/conformance/checkJsdocTypedefOnlySourceFile.js.diff new file mode 100644 index 0000000000..c8f32fd793 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/checkJsdocTypedefOnlySourceFile.js.diff @@ -0,0 +1,11 @@ +--- old.checkJsdocTypedefOnlySourceFile.js ++++ new.checkJsdocTypedefOnlySourceFile.js +@@= skipped -14, +14 lines =@@ + + + //// [0.js] ++"use strict"; ++Object.defineProperty(exports, "__esModule", { value: true }); + // @ts-check + var exports = {}; + /** \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/commonJSAliasedExport.js b/testdata/baselines/reference/submodule/conformance/commonJSAliasedExport.js new file mode 100644 index 0000000000..239db68d84 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/commonJSAliasedExport.js @@ -0,0 +1,42 @@ +//// [tests/cases/conformance/salsa/commonJSAliasedExport.ts] //// + +//// [commonJSAliasedExport.js] +const donkey = (ast) => ast; + +function funky(declaration) { + return false; +} +module.exports = donkey; +module.exports.funky = funky; + +//// [bug43713.js] +const { funky } = require('./commonJSAliasedExport'); +/** @type {boolean} */ +var diddy +var diddy = funky(1) + + + +//// [commonJSAliasedExport.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const donkey = (ast) => ast; +function funky(declaration) { + return false; +} +export = donkey; +module.exports = donkey; +export var funky = funky; +module.exports.funky = funky; +//// [bug43713.js] +const { funky } = require('./commonJSAliasedExport'); +/** @type {boolean} */ +var diddy; +var diddy = funky(1); + + +//// [commonJSAliasedExport.d.ts] +export = donkey; +export var funky = funky; +//// [bug43713.d.ts] +export {}; diff --git a/testdata/baselines/reference/submodule/conformance/commonJSAliasedExport.js.diff b/testdata/baselines/reference/submodule/conformance/commonJSAliasedExport.js.diff new file mode 100644 index 0000000000..3d91b41bc0 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/commonJSAliasedExport.js.diff @@ -0,0 +1,30 @@ +--- old.commonJSAliasedExport.js ++++ new.commonJSAliasedExport.js +@@= skipped -17, +17 lines =@@ + + + //// [commonJSAliasedExport.js] ++"use strict"; ++Object.defineProperty(exports, "__esModule", { value: true }); + const donkey = (ast) => ast; + function funky(declaration) { + return false; + } ++export = donkey; + module.exports = donkey; ++export var funky = funky; + module.exports.funky = funky; + //// [bug43713.js] + const { funky } = require('./commonJSAliasedExport'); +@@= skipped -15, +19 lines =@@ + + //// [commonJSAliasedExport.d.ts] + export = donkey; +-declare function donkey(ast: any): any; +-declare namespace donkey { +- export { funky }; +-} +-declare function funky(declaration: any): boolean; ++export var funky = funky; + //// [bug43713.d.ts] + export {}; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/commonJSImportClassTypeReference.js b/testdata/baselines/reference/submodule/conformance/commonJSImportClassTypeReference.js new file mode 100644 index 0000000000..eb041a90a1 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/commonJSImportClassTypeReference.js @@ -0,0 +1,42 @@ +//// [tests/cases/conformance/salsa/commonJSImportClassTypeReference.ts] //// + +//// [main.js] +const { K } = require("./mod1"); +/** @param {K} k */ +function f(k) { + k.values() +} + +//// [mod1.js] +class K { + values() { + return new K() + } +} +exports.K = K; + + +//// [mod1.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +class K { + values() { + return new K(); + } +} +export var K = K; +exports.K = K; +//// [main.js] +"use strict"; +const { K } = require("./mod1"); +/** @param {K} k */ +function f(k) { + k.values(); +} + + +//// [mod1.d.ts] +export var K = K; +export {}; +//// [main.d.ts] +export {}; diff --git a/testdata/baselines/reference/submodule/conformance/commonJSImportClassTypeReference.js.diff b/testdata/baselines/reference/submodule/conformance/commonJSImportClassTypeReference.js.diff new file mode 100644 index 0000000000..9c2c311535 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/commonJSImportClassTypeReference.js.diff @@ -0,0 +1,27 @@ +--- old.commonJSImportClassTypeReference.js ++++ new.commonJSImportClassTypeReference.js +@@= skipped -17, +17 lines =@@ + + //// [mod1.js] + "use strict"; ++Object.defineProperty(exports, "__esModule", { value: true }); + class K { + values() { + return new K(); + } + } ++export var K = K; + exports.K = K; + //// [main.js] + "use strict"; +@@= skipped -16, +18 lines =@@ + + + //// [mod1.d.ts] +-export class K { +- values(): K; +-} ++export var K = K; ++export {}; + //// [main.d.ts] + export {}; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/commonJSImportExportedClassExpression.js b/testdata/baselines/reference/submodule/conformance/commonJSImportExportedClassExpression.js new file mode 100644 index 0000000000..da4ecfbfd1 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/commonJSImportExportedClassExpression.js @@ -0,0 +1,43 @@ +//// [tests/cases/conformance/salsa/commonJSImportExportedClassExpression.ts] //// + +//// [main.js] +const { K } = require("./mod1"); +/** @param {K} k */ +function f(k) { + k.values() +} + +//// [mod1.js] +exports.K = class K { + values() { + } +}; + + +//// [mod1.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +export var K = class K { + values() { + } +}; +exports.K = class K { + values() { + } +}; +//// [main.js] +"use strict"; +const { K } = require("./mod1"); +/** @param {K} k */ +function f(k) { + k.values(); +} + + +//// [mod1.d.ts] +export var K = class K { + values(): void; +}; +export {}; +//// [main.d.ts] +export {}; diff --git a/testdata/baselines/reference/submodule/conformance/commonJSImportExportedClassExpression.js.diff b/testdata/baselines/reference/submodule/conformance/commonJSImportExportedClassExpression.js.diff new file mode 100644 index 0000000000..259e8b473a --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/commonJSImportExportedClassExpression.js.diff @@ -0,0 +1,26 @@ +--- old.commonJSImportExportedClassExpression.js ++++ new.commonJSImportExportedClassExpression.js +@@= skipped -15, +15 lines =@@ + + //// [mod1.js] + "use strict"; ++Object.defineProperty(exports, "__esModule", { value: true }); ++export var K = class K { ++ values() { ++ } ++}; + exports.K = class K { + values() { + } +@@= skipped -14, +19 lines =@@ + + + //// [mod1.d.ts] +-export class K { ++export var K = class K { + values(): void; +-} ++}; ++export {}; + //// [main.d.ts] + export {}; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/commonJSImportNestedClassTypeReference.js b/testdata/baselines/reference/submodule/conformance/commonJSImportNestedClassTypeReference.js new file mode 100644 index 0000000000..7334c82bde --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/commonJSImportNestedClassTypeReference.js @@ -0,0 +1,44 @@ +//// [tests/cases/conformance/salsa/commonJSImportNestedClassTypeReference.ts] //// + +//// [main.js] +const { K } = require("./mod1"); +/** @param {K} k */ +function f(k) { + k.values() +} + +//// [mod1.js] +var NS = {} +NS.K =class { + values() { + return new NS.K() + } +} +exports.K = NS.K; + + +//// [mod1.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var NS = {}; +NS.K = class { + values() { + return new NS.K(); + } +}; +export var K = NS.K; +exports.K = NS.K; +//// [main.js] +"use strict"; +const { K } = require("./mod1"); +/** @param {K} k */ +function f(k) { + k.values(); +} + + +//// [mod1.d.ts] +export var K = NS.K; +export {}; +//// [main.d.ts] +export {}; diff --git a/testdata/baselines/reference/submodule/conformance/commonJSImportNestedClassTypeReference.js.diff b/testdata/baselines/reference/submodule/conformance/commonJSImportNestedClassTypeReference.js.diff new file mode 100644 index 0000000000..7951efe1d6 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/commonJSImportNestedClassTypeReference.js.diff @@ -0,0 +1,30 @@ +--- old.commonJSImportNestedClassTypeReference.js ++++ new.commonJSImportNestedClassTypeReference.js +@@= skipped -18, +18 lines =@@ + + //// [mod1.js] + "use strict"; ++Object.defineProperty(exports, "__esModule", { value: true }); + var NS = {}; + NS.K = class { + values() { + return new NS.K(); + } + }; ++export var K = NS.K; + exports.K = NS.K; + //// [main.js] + "use strict"; +@@= skipped -17, +19 lines =@@ + + + //// [mod1.d.ts] +-export var K: { +- new (): { +- values(): /*elided*/ any; +- }; +-}; ++export var K = NS.K; ++export {}; + //// [main.d.ts] + export {}; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/emit(jsx=preserve).js b/testdata/baselines/reference/submodule/conformance/emit(jsx=preserve).js new file mode 100644 index 0000000000..46da467f6a --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/emit(jsx=preserve).js @@ -0,0 +1,121 @@ +//// [tests/cases/conformance/externalModules/rewriteRelativeImportExtensions/emit.ts] //// + +//// [globals.d.ts] +declare function require(module: string): any; + +//// [main.ts] +// Rewrite +import {} from "./foo.ts"; +import {} from "../foo.mts"; +import {} from "../../foo.cts"; +import {} from "./foo.tsx"; +import foo = require("./foo.ts"); +import "./foo.ts"; +export * from "./foo.ts"; +//Shim +import("./foo.ts"); +import("./foo.ts").then(() => {}); +function acceptAny(arg: any) {} +acceptAny(import("./foo.ts")); +import("./foo.ts", { with: { attr: "value" } }); +import("" + "./foo.ts"); +//// [js.js] +// Rewrite +import {} from "./foo.ts"; +import {} from "../foo.mts"; +import {} from "../../foo.cts"; +import {} from "./foo.tsx"; +import "./foo.ts"; +export * from "./foo.ts"; +// Shim +import("./foo.ts"); +import("./foo.ts", { with: { attr: "value" } }); +require("./foo.ts"); +{ + require("./foo.ts"); + require(getPath()); +} + +// No rewrite or shim +//// [no.ts] +import {} from "./foo.ts/foo.js"; +import {} from "foo.ts"; +import {} from "pkg/foo.ts"; +import {} from ".foo.ts"; +import {} from "./foo.d.ts"; +import {} from "./foo.d.mts"; +import {} from "./foo.d.css.ts"; +import {} from "#internal/foo.ts"; +import {} from "node:foo.ts"; +(require)("./foo.ts"); +import("node:path"); +require("node:path"); + +//// [lol.ts] +// Sad face https://github.com/microsoft/TypeScript/blob/6b04f5039429b9d412696fe2febe39ecc69ad365/src/testRunner/compilerRunner.ts#L207 + + +//// [main.js] +var __rewriteRelativeImportExtension = (this && this.__rewriteRelativeImportExtension) || function (path, preserveJsx) { + if (typeof path === "string" && /^\.\.?\//.test(path)) { + return path.replace(/\.(tsx)$|((?:\.d)?)((?:\.[^./]+?)?)\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) { + return tsx ? preserveJsx ? ".jsx" : ".js" : d && (!ext || !cm) ? m : (d + ext + "." + cm.toLowerCase() + "js"); + }); + } + return path; +}; +// Rewrite +import {} from "./foo.js"; +import {} from "../foo.mjs"; +import {} from "../../foo.cjs"; +import {} from "./foo.jsx"; +const foo = require("./foo.js"); +import "./foo.js"; +export * from "./foo.js"; +//Shim +import("./foo.js"); +import("./foo.js").then(() => { }); +function acceptAny(arg) { } +acceptAny(import("./foo.js")); +import("./foo.js", { with: { attr: "value" } }); +import(__rewriteRelativeImportExtension("" + "./foo.ts", true)); +//// [js.js] +var __rewriteRelativeImportExtension = (this && this.__rewriteRelativeImportExtension) || function (path, preserveJsx) { + if (typeof path === "string" && /^\.\.?\//.test(path)) { + return path.replace(/\.(tsx)$|((?:\.d)?)((?:\.[^./]+?)?)\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) { + return tsx ? preserveJsx ? ".jsx" : ".js" : d && (!ext || !cm) ? m : (d + ext + "." + cm.toLowerCase() + "js"); + }); + } + return path; +}; +// Rewrite +import {} from "./foo.js"; +import {} from "../foo.mjs"; +import {} from "../../foo.cjs"; +import {} from "./foo.jsx"; +import "./foo.js"; +export * from "./foo.js"; +// Shim +import("./foo.js"); +import("./foo.js", { with: { attr: "value" } }); +require("./foo.js"); +{ + require("./foo.js"); + require(__rewriteRelativeImportExtension(getPath(), true)); +} +// No rewrite or shim +//// [no.js] +import {} from "./foo.ts/foo.js"; +import {} from "foo.ts"; +import {} from "pkg/foo.ts"; +import {} from ".foo.ts"; +import {} from "./foo.d.ts"; +import {} from "./foo.d.mts"; +import {} from "./foo.d.css.ts"; +import {} from "#internal/foo.ts"; +import {} from "node:foo.ts"; +(require)("./foo.ts"); +import("node:path"); +require("node:path"); +//// [lol.js] +// Sad face https://github.com/microsoft/TypeScript/blob/6b04f5039429b9d412696fe2febe39ecc69ad365/src/testRunner/compilerRunner.ts#L207 diff --git a/testdata/baselines/reference/submodule/conformance/emit(jsx=react).js b/testdata/baselines/reference/submodule/conformance/emit(jsx=react).js new file mode 100644 index 0000000000..a3074c3e2f --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/emit(jsx=react).js @@ -0,0 +1,121 @@ +//// [tests/cases/conformance/externalModules/rewriteRelativeImportExtensions/emit.ts] //// + +//// [globals.d.ts] +declare function require(module: string): any; + +//// [main.ts] +// Rewrite +import {} from "./foo.ts"; +import {} from "../foo.mts"; +import {} from "../../foo.cts"; +import {} from "./foo.tsx"; +import foo = require("./foo.ts"); +import "./foo.ts"; +export * from "./foo.ts"; +//Shim +import("./foo.ts"); +import("./foo.ts").then(() => {}); +function acceptAny(arg: any) {} +acceptAny(import("./foo.ts")); +import("./foo.ts", { with: { attr: "value" } }); +import("" + "./foo.ts"); +//// [js.js] +// Rewrite +import {} from "./foo.ts"; +import {} from "../foo.mts"; +import {} from "../../foo.cts"; +import {} from "./foo.tsx"; +import "./foo.ts"; +export * from "./foo.ts"; +// Shim +import("./foo.ts"); +import("./foo.ts", { with: { attr: "value" } }); +require("./foo.ts"); +{ + require("./foo.ts"); + require(getPath()); +} + +// No rewrite or shim +//// [no.ts] +import {} from "./foo.ts/foo.js"; +import {} from "foo.ts"; +import {} from "pkg/foo.ts"; +import {} from ".foo.ts"; +import {} from "./foo.d.ts"; +import {} from "./foo.d.mts"; +import {} from "./foo.d.css.ts"; +import {} from "#internal/foo.ts"; +import {} from "node:foo.ts"; +(require)("./foo.ts"); +import("node:path"); +require("node:path"); + +//// [lol.ts] +// Sad face https://github.com/microsoft/TypeScript/blob/6b04f5039429b9d412696fe2febe39ecc69ad365/src/testRunner/compilerRunner.ts#L207 + + +//// [main.js] +var __rewriteRelativeImportExtension = (this && this.__rewriteRelativeImportExtension) || function (path, preserveJsx) { + if (typeof path === "string" && /^\.\.?\//.test(path)) { + return path.replace(/\.(tsx)$|((?:\.d)?)((?:\.[^./]+?)?)\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) { + return tsx ? preserveJsx ? ".jsx" : ".js" : d && (!ext || !cm) ? m : (d + ext + "." + cm.toLowerCase() + "js"); + }); + } + return path; +}; +// Rewrite +import {} from "./foo.js"; +import {} from "../foo.mjs"; +import {} from "../../foo.cjs"; +import {} from "./foo.js"; +const foo = require("./foo.js"); +import "./foo.js"; +export * from "./foo.js"; +//Shim +import("./foo.js"); +import("./foo.js").then(() => { }); +function acceptAny(arg) { } +acceptAny(import("./foo.js")); +import("./foo.js", { with: { attr: "value" } }); +import(__rewriteRelativeImportExtension("" + "./foo.ts")); +//// [js.js] +var __rewriteRelativeImportExtension = (this && this.__rewriteRelativeImportExtension) || function (path, preserveJsx) { + if (typeof path === "string" && /^\.\.?\//.test(path)) { + return path.replace(/\.(tsx)$|((?:\.d)?)((?:\.[^./]+?)?)\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) { + return tsx ? preserveJsx ? ".jsx" : ".js" : d && (!ext || !cm) ? m : (d + ext + "." + cm.toLowerCase() + "js"); + }); + } + return path; +}; +// Rewrite +import {} from "./foo.js"; +import {} from "../foo.mjs"; +import {} from "../../foo.cjs"; +import {} from "./foo.js"; +import "./foo.js"; +export * from "./foo.js"; +// Shim +import("./foo.js"); +import("./foo.js", { with: { attr: "value" } }); +require("./foo.js"); +{ + require("./foo.js"); + require(__rewriteRelativeImportExtension(getPath())); +} +// No rewrite or shim +//// [no.js] +import {} from "./foo.ts/foo.js"; +import {} from "foo.ts"; +import {} from "pkg/foo.ts"; +import {} from ".foo.ts"; +import {} from "./foo.d.ts"; +import {} from "./foo.d.mts"; +import {} from "./foo.d.css.ts"; +import {} from "#internal/foo.ts"; +import {} from "node:foo.ts"; +(require)("./foo.ts"); +import("node:path"); +require("node:path"); +//// [lol.js] +// Sad face https://github.com/microsoft/TypeScript/blob/6b04f5039429b9d412696fe2febe39ecc69ad365/src/testRunner/compilerRunner.ts#L207 diff --git a/testdata/baselines/reference/submodule/conformance/emitModuleCommonJS(module=commonjs).js b/testdata/baselines/reference/submodule/conformance/emitModuleCommonJS(module=commonjs).js new file mode 100644 index 0000000000..a539507bd5 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/emitModuleCommonJS(module=commonjs).js @@ -0,0 +1,45 @@ +//// [tests/cases/conformance/externalModules/rewriteRelativeImportExtensions/emitModuleCommonJS.ts] //// + +//// [a.js] +{ + require("" + "./foo.ts"); + import("" + "./foo.ts"); + require("./foo.ts"); + import("./foo.ts"); +} + +//// [b.ts] +{ + import("" + "./foo.ts"); + import("./foo.ts"); +} + + +//// [a.js] +var __rewriteRelativeImportExtension = (this && this.__rewriteRelativeImportExtension) || function (path, preserveJsx) { + if (typeof path === "string" && /^\.\.?\//.test(path)) { + return path.replace(/\.(tsx)$|((?:\.d)?)((?:\.[^./]+?)?)\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) { + return tsx ? preserveJsx ? ".jsx" : ".js" : d && (!ext || !cm) ? m : (d + ext + "." + cm.toLowerCase() + "js"); + }); + } + return path; +}; +{ + require(__rewriteRelativeImportExtension("" + "./foo.ts")); + Promise.resolve(`${__rewriteRelativeImportExtension("" + "./foo.ts")}`).then(s => require(s)); + require("./foo.js"); + Promise.resolve().then(() => require("./foo.js")); +} +//// [b.js] +var __rewriteRelativeImportExtension = (this && this.__rewriteRelativeImportExtension) || function (path, preserveJsx) { + if (typeof path === "string" && /^\.\.?\//.test(path)) { + return path.replace(/\.(tsx)$|((?:\.d)?)((?:\.[^./]+?)?)\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) { + return tsx ? preserveJsx ? ".jsx" : ".js" : d && (!ext || !cm) ? m : (d + ext + "." + cm.toLowerCase() + "js"); + }); + } + return path; +}; +{ + Promise.resolve(`${__rewriteRelativeImportExtension("" + "./foo.ts")}`).then(s => require(s)); + Promise.resolve().then(() => require("./foo.js")); +} diff --git a/testdata/baselines/reference/submodule/conformance/emitModuleCommonJS(module=nodenext).js b/testdata/baselines/reference/submodule/conformance/emitModuleCommonJS(module=nodenext).js new file mode 100644 index 0000000000..9911f4cbc8 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/emitModuleCommonJS(module=nodenext).js @@ -0,0 +1,49 @@ +//// [tests/cases/conformance/externalModules/rewriteRelativeImportExtensions/emitModuleCommonJS.ts] //// + +//// [a.js] +{ + require("" + "./foo.ts"); + import("" + "./foo.ts"); + require("./foo.ts"); + import("./foo.ts"); +} + +//// [b.ts] +{ + import("" + "./foo.ts"); + import("./foo.ts"); +} + + +//// [a.js] +"use strict"; +var __rewriteRelativeImportExtension = (this && this.__rewriteRelativeImportExtension) || function (path, preserveJsx) { + if (typeof path === "string" && /^\.\.?\//.test(path)) { + return path.replace(/\.(tsx)$|((?:\.d)?)((?:\.[^./]+?)?)\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) { + return tsx ? preserveJsx ? ".jsx" : ".js" : d && (!ext || !cm) ? m : (d + ext + "." + cm.toLowerCase() + "js"); + }); + } + return path; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +{ + require(__rewriteRelativeImportExtension("" + "./foo.ts")); + import(__rewriteRelativeImportExtension("" + "./foo.ts")); + require("./foo.js"); + import("./foo.js"); +} +//// [b.js] +"use strict"; +var __rewriteRelativeImportExtension = (this && this.__rewriteRelativeImportExtension) || function (path, preserveJsx) { + if (typeof path === "string" && /^\.\.?\//.test(path)) { + return path.replace(/\.(tsx)$|((?:\.d)?)((?:\.[^./]+?)?)\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) { + return tsx ? preserveJsx ? ".jsx" : ".js" : d && (!ext || !cm) ? m : (d + ext + "." + cm.toLowerCase() + "js"); + }); + } + return path; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +{ + import(__rewriteRelativeImportExtension("" + "./foo.ts")); + import("./foo.js"); +} diff --git a/testdata/baselines/reference/submodule/conformance/emitModuleCommonJS(module=nodenext).js.diff b/testdata/baselines/reference/submodule/conformance/emitModuleCommonJS(module=nodenext).js.diff new file mode 100644 index 0000000000..764495c4e8 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/emitModuleCommonJS(module=nodenext).js.diff @@ -0,0 +1,10 @@ +--- old.emitModuleCommonJS(module=nodenext).js ++++ new.emitModuleCommonJS(module=nodenext).js +@@= skipped -24, +24 lines =@@ + } + return path; + }; ++Object.defineProperty(exports, "__esModule", { value: true }); + { + require(__rewriteRelativeImportExtension("" + "./foo.ts")); + import(__rewriteRelativeImportExtension("" + "./foo.ts")); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/expandoOnAlias.js b/testdata/baselines/reference/submodule/conformance/expandoOnAlias.js new file mode 100644 index 0000000000..71d0e58eaa --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/expandoOnAlias.js @@ -0,0 +1,33 @@ +//// [tests/cases/conformance/salsa/expandoOnAlias.ts] //// + +//// [vue.js] +export class Vue {} +export const config = { x: 0 }; + +//// [test.js] +import { Vue, config } from "./vue"; + +// Expando declarations aren't allowed on aliases. +Vue.config = {}; +new Vue(); + +// This is not an expando declaration; it's just a plain property assignment. +config.x = 1; + +// This is not an expando declaration; it works because non-strict JS allows +// loosey goosey assignment on objects. +config.y = {}; +config.x; +config.y; + + + + +//// [vue.d.ts] +export declare class Vue { +} +export declare const config: { + x: number; +}; +//// [test.d.ts] +export {}; diff --git a/testdata/baselines/reference/submodule/conformance/expandoOnAlias.js.diff b/testdata/baselines/reference/submodule/conformance/expandoOnAlias.js.diff new file mode 100644 index 0000000000..c2a88f5c52 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/expandoOnAlias.js.diff @@ -0,0 +1,18 @@ +--- old.expandoOnAlias.js ++++ new.expandoOnAlias.js +@@= skipped -23, +23 lines =@@ + + + //// [vue.d.ts] +-export class Vue { +-} +-export namespace config { +- let x: number; +-} ++export declare class Vue { ++} ++export declare const config: { ++ x: number; ++}; + //// [test.d.ts] + export {}; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/exportDefaultInJsFile01.js b/testdata/baselines/reference/submodule/conformance/exportDefaultInJsFile01.js new file mode 100644 index 0000000000..7cd5e8b6d2 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/exportDefaultInJsFile01.js @@ -0,0 +1,9 @@ +//// [tests/cases/conformance/salsa/exportDefaultInJsFile01.ts] //// + +//// [myFile01.js] +export default "hello"; + +//// [myFile01.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = "hello"; diff --git a/testdata/baselines/reference/submodule/conformance/exportDefaultInJsFile01.js.diff b/testdata/baselines/reference/submodule/conformance/exportDefaultInJsFile01.js.diff new file mode 100644 index 0000000000..38ae877992 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/exportDefaultInJsFile01.js.diff @@ -0,0 +1,13 @@ +--- old.exportDefaultInJsFile01.js ++++ new.exportDefaultInJsFile01.js +@@= skipped -0, +0 lines =@@ +- ++//// [tests/cases/conformance/salsa/exportDefaultInJsFile01.ts] //// ++ ++//// [myFile01.js] ++export default "hello"; ++ ++//// [myFile01.js] ++"use strict"; ++Object.defineProperty(exports, "__esModule", { value: true }); ++exports.default = "hello"; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/exportDefaultInJsFile02.js b/testdata/baselines/reference/submodule/conformance/exportDefaultInJsFile02.js new file mode 100644 index 0000000000..59129ebbbd --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/exportDefaultInJsFile02.js @@ -0,0 +1,7 @@ +//// [tests/cases/conformance/salsa/exportDefaultInJsFile02.ts] //// + +//// [myFile02.js] +export default "hello"; + +//// [myFile02.js] +export default "hello"; diff --git a/testdata/baselines/reference/submodule/conformance/exportDefaultInJsFile02.js.diff b/testdata/baselines/reference/submodule/conformance/exportDefaultInJsFile02.js.diff new file mode 100644 index 0000000000..1c96a0bcc5 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/exportDefaultInJsFile02.js.diff @@ -0,0 +1,11 @@ +--- old.exportDefaultInJsFile02.js ++++ new.exportDefaultInJsFile02.js +@@= skipped -0, +0 lines =@@ +- ++//// [tests/cases/conformance/salsa/exportDefaultInJsFile02.ts] //// ++ ++//// [myFile02.js] ++export default "hello"; ++ ++//// [myFile02.js] ++export default "hello"; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/exportNamespace_js.js b/testdata/baselines/reference/submodule/conformance/exportNamespace_js.js new file mode 100644 index 0000000000..5508138bfd --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/exportNamespace_js.js @@ -0,0 +1,37 @@ +//// [tests/cases/conformance/externalModules/typeOnly/exportNamespace_js.ts] //// + +//// [a.js] +export class A {} + +//// [b.js] +export type * from './a'; + +//// [c.js] +import { A } from './b'; +A; + + +//// [a.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.A = void 0; +class A { +} +exports.A = A; +//// [b.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +//// [c.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const b_1 = require("./b"); +b_1.A; + + +//// [a.d.ts] +export declare class A { +} +//// [b.d.ts] +export type * from './a'; +//// [c.d.ts] +export {}; diff --git a/testdata/baselines/reference/submodule/conformance/exportNamespace_js.js.diff b/testdata/baselines/reference/submodule/conformance/exportNamespace_js.js.diff new file mode 100644 index 0000000000..2f3c34faac --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/exportNamespace_js.js.diff @@ -0,0 +1,21 @@ +--- old.exportNamespace_js.js ++++ new.exportNamespace_js.js +@@= skipped -23, +23 lines =@@ + //// [c.js] + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); +-var b_1 = require("./b"); +-A; ++const b_1 = require("./b"); ++b_1.A; + + + //// [a.d.ts] +-export class A { ++export declare class A { + } + //// [b.d.ts] +-export type * from "./a"; ++export type * from './a'; + //// [c.d.ts] + export {}; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/extendsTag2.js b/testdata/baselines/reference/submodule/conformance/extendsTag2.js new file mode 100644 index 0000000000..cc4ae15cae --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/extendsTag2.js @@ -0,0 +1,42 @@ +//// [tests/cases/conformance/jsdoc/extendsTag2.ts] //// + +//// [foo.js] +/** + * @constructor + */ +class A { + constructor() {} +} + +/** + * @extends {A} + */ + +/** + * @constructor + */ +class B extends A { + constructor() { + super(); + } +} + + +//// [foo.js] +/** + * @constructor + */ +class A { + constructor() { } +} +/** + * @extends {A} + */ +/** + * @constructor + */ +class B extends A { + constructor() { + super(); + } +} diff --git a/testdata/baselines/reference/submodule/conformance/extendsTag3.js b/testdata/baselines/reference/submodule/conformance/extendsTag3.js new file mode 100644 index 0000000000..68180aa621 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/extendsTag3.js @@ -0,0 +1,56 @@ +//// [tests/cases/conformance/jsdoc/extendsTag3.ts] //// + +//// [foo.js] +/** + * @constructor + */ +class A { + constructor() {} +} + +/** + * @extends {A} + * @constructor + */ +class B extends A { + constructor() { + super(); + } +} + +/** + * @extends { A } + * @constructor + */ +class C extends A { + constructor() { + super(); + } +} + + +//// [foo.js] +/** + * @constructor + */ +class A { + constructor() { } +} +/** + * @extends {A} + * @constructor + */ +class B extends A { + constructor() { + super(); + } +} +/** + * @extends { A } + * @constructor + */ +class C extends A { + constructor() { + super(); + } +} diff --git a/testdata/baselines/reference/submodule/conformance/extendsTag4.js b/testdata/baselines/reference/submodule/conformance/extendsTag4.js new file mode 100644 index 0000000000..1adcbb9ceb --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/extendsTag4.js @@ -0,0 +1,25 @@ +//// [tests/cases/conformance/jsdoc/extendsTag4.ts] //// + +//// [foo.js] +/** + * @constructor + */ +class A { + constructor() {} +} + +/** + * @extends {A} + */ + + +//// [foo.js] +/** + * @constructor + */ +class A { + constructor() { } +} +/** + * @extends {A} + */ diff --git a/testdata/baselines/reference/submodule/conformance/extendsTagEmit.js b/testdata/baselines/reference/submodule/conformance/extendsTagEmit.js new file mode 100644 index 0000000000..e359eb0c83 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/extendsTagEmit.js @@ -0,0 +1,20 @@ +//// [tests/cases/conformance/jsdoc/extendsTagEmit.ts] //// + +//// [super.js] +export class B { } + +//// [main.js] +import { B } from './super' +/** @extends {Mismatch} */ +class C extends B { } + + + +//// [super.js] +export class B { +} +//// [main.js] +import { B } from './super'; +/** @extends {Mismatch} */ +class C extends B { +} diff --git a/testdata/baselines/reference/submodule/conformance/importTag15(module=es2015).js b/testdata/baselines/reference/submodule/conformance/importTag15(module=es2015).js new file mode 100644 index 0000000000..856ebcde69 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/importTag15(module=es2015).js @@ -0,0 +1,24 @@ +//// [tests/cases/conformance/jsdoc/importTag15.ts] //// + +//// [0.ts] +export interface I { } + +//// [1.js] +/** @import { I } from './0' with { type: "json" } */ +/** @import * as foo from './0' with { type: "json" } */ + +/** @param {I} a */ +function f(a) {} + + + + +//// [0.d.ts] +export interface I { +} +//// [1.d.ts] +import type { I } from './0'; +/** @import { I } from './0' with { type: "json" } */ +/** @import * as foo from './0' with { type: "json" } */ +/** @param {I} a */ +declare function f(a: I): void; diff --git a/testdata/baselines/reference/submodule/conformance/importTag15(module=es2015).js.diff b/testdata/baselines/reference/submodule/conformance/importTag15(module=es2015).js.diff new file mode 100644 index 0000000000..66ad5dfade --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/importTag15(module=es2015).js.diff @@ -0,0 +1,13 @@ +--- old.importTag15(module=es2015).js ++++ new.importTag15(module=es2015).js +@@= skipped -16, +16 lines =@@ + export interface I { + } + //// [1.d.ts] ++import type { I } from './0'; + /** @import { I } from './0' with { type: "json" } */ + /** @import * as foo from './0' with { type: "json" } */ + /** @param {I} a */ + declare function f(a: I): void; +-import type { I } from './0' with { type: "json" }; +-import type * as foo from './0'; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/importTag15(module=esnext).js b/testdata/baselines/reference/submodule/conformance/importTag15(module=esnext).js new file mode 100644 index 0000000000..856ebcde69 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/importTag15(module=esnext).js @@ -0,0 +1,24 @@ +//// [tests/cases/conformance/jsdoc/importTag15.ts] //// + +//// [0.ts] +export interface I { } + +//// [1.js] +/** @import { I } from './0' with { type: "json" } */ +/** @import * as foo from './0' with { type: "json" } */ + +/** @param {I} a */ +function f(a) {} + + + + +//// [0.d.ts] +export interface I { +} +//// [1.d.ts] +import type { I } from './0'; +/** @import { I } from './0' with { type: "json" } */ +/** @import * as foo from './0' with { type: "json" } */ +/** @param {I} a */ +declare function f(a: I): void; diff --git a/testdata/baselines/reference/submodule/conformance/importTag15(module=esnext).js.diff b/testdata/baselines/reference/submodule/conformance/importTag15(module=esnext).js.diff new file mode 100644 index 0000000000..761ef7b0ca --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/importTag15(module=esnext).js.diff @@ -0,0 +1,13 @@ +--- old.importTag15(module=esnext).js ++++ new.importTag15(module=esnext).js +@@= skipped -16, +16 lines =@@ + export interface I { + } + //// [1.d.ts] ++import type { I } from './0'; + /** @import { I } from './0' with { type: "json" } */ + /** @import * as foo from './0' with { type: "json" } */ + /** @param {I} a */ + declare function f(a: I): void; +-import type { I } from './0' with { type: "json" }; +-import type * as foo from './0'; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/importTag16.js b/testdata/baselines/reference/submodule/conformance/importTag16.js new file mode 100644 index 0000000000..b086bf0a00 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/importTag16.js @@ -0,0 +1,56 @@ +//// [tests/cases/conformance/jsdoc/importTag16.ts] //// + +//// [a.ts] +export default interface Foo {} +export interface I {} + +//// [b.js] +/** @import Foo, { I } from "./a" */ + +/** + * @param {Foo} a + * @param {I} b + */ +export function foo(a, b) {} + + + + +//// [a.d.ts] +export default interface Foo { +} +export interface I { +} +//// [b.d.ts] +import type Foo, { I } from "./a"; +/** @import Foo, { I } from "./a" */ +/** + * @param {Foo} a + * @param {I} b + */ +export declare function foo(a: Foo, b: I): void; + + +//// [DtsFileErrors] + + +b.d.ts(1,8): error TS1363: A type-only import can specify a default import or named bindings, but not both. + + +==== a.d.ts (0 errors) ==== + export default interface Foo { + } + export interface I { + } + +==== b.d.ts (1 errors) ==== + import type Foo, { I } from "./a"; + ~~~~~~~~~~~~~~~ +!!! error TS1363: A type-only import can specify a default import or named bindings, but not both. + /** @import Foo, { I } from "./a" */ + /** + * @param {Foo} a + * @param {I} b + */ + export declare function foo(a: Foo, b: I): void; + \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/importTag16.js.diff b/testdata/baselines/reference/submodule/conformance/importTag16.js.diff new file mode 100644 index 0000000000..72602ad3cf --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/importTag16.js.diff @@ -0,0 +1,41 @@ +--- old.importTag16.js ++++ new.importTag16.js +@@= skipped -21, +21 lines =@@ + export interface I { + } + //// [b.d.ts] ++import type Foo, { I } from "./a"; + /** @import Foo, { I } from "./a" */ + /** + * @param {Foo} a + * @param {I} b + */ +-export function foo(a: Foo, b: I): void; +-import type Foo from "./a"; +-import type { I } from "./a"; ++export declare function foo(a: Foo, b: I): void; ++ ++ ++//// [DtsFileErrors] ++ ++ ++b.d.ts(1,8): error TS1363: A type-only import can specify a default import or named bindings, but not both. ++ ++ ++==== a.d.ts (0 errors) ==== ++ export default interface Foo { ++ } ++ export interface I { ++ } ++ ++==== b.d.ts (1 errors) ==== ++ import type Foo, { I } from "./a"; ++ ~~~~~~~~~~~~~~~ ++!!! error TS1363: A type-only import can specify a default import or named bindings, but not both. ++ /** @import Foo, { I } from "./a" */ ++ /** ++ * @param {Foo} a ++ * @param {I} b ++ */ ++ export declare function foo(a: Foo, b: I): void; ++ \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/importTag18.js b/testdata/baselines/reference/submodule/conformance/importTag18.js new file mode 100644 index 0000000000..b249671c46 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/importTag18.js @@ -0,0 +1,34 @@ +//// [tests/cases/conformance/jsdoc/importTag18.ts] //// + +//// [a.ts] +export interface Foo {} + +//// [b.js] +/** + * @import { + * Foo + * } from "./a" + */ + +/** + * @param {Foo} a + */ +export function foo(a) {} + + + + +//// [a.d.ts] +export interface Foo { +} +//// [b.d.ts] +import type { Foo } from "./a"; +/** + * @import { + * Foo + * } from "./a" + */ +/** + * @param {Foo} a + */ +export declare function foo(a: Foo): void; diff --git a/testdata/baselines/reference/submodule/conformance/importTag18.js.diff b/testdata/baselines/reference/submodule/conformance/importTag18.js.diff new file mode 100644 index 0000000000..473045a560 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/importTag18.js.diff @@ -0,0 +1,17 @@ +--- old.importTag18.js ++++ new.importTag18.js +@@= skipped -21, +21 lines =@@ + export interface Foo { + } + //// [b.d.ts] ++import type { Foo } from "./a"; + /** + * @import { + * Foo +@@= skipped -8, +9 lines =@@ + /** + * @param {Foo} a + */ +-export function foo(a: Foo): void; +-import type { Foo } from "./a"; ++export declare function foo(a: Foo): void; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/importTag19.js b/testdata/baselines/reference/submodule/conformance/importTag19.js new file mode 100644 index 0000000000..cb2b97586d --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/importTag19.js @@ -0,0 +1,32 @@ +//// [tests/cases/conformance/jsdoc/importTag19.ts] //// + +//// [a.ts] +export interface Foo {} + +//// [b.js] +/** + * @import { Foo } + * from "./a" + */ + +/** + * @param {Foo} a + */ +export function foo(a) {} + + + + +//// [a.d.ts] +export interface Foo { +} +//// [b.d.ts] +import type { Foo } from "./a"; +/** + * @import { Foo } + * from "./a" + */ +/** + * @param {Foo} a + */ +export declare function foo(a: Foo): void; diff --git a/testdata/baselines/reference/submodule/conformance/importTag19.js.diff b/testdata/baselines/reference/submodule/conformance/importTag19.js.diff new file mode 100644 index 0000000000..68d5444ae9 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/importTag19.js.diff @@ -0,0 +1,17 @@ +--- old.importTag19.js ++++ new.importTag19.js +@@= skipped -20, +20 lines =@@ + export interface Foo { + } + //// [b.d.ts] ++import type { Foo } from "./a"; + /** + * @import { Foo } + * from "./a" +@@= skipped -7, +8 lines =@@ + /** + * @param {Foo} a + */ +-export function foo(a: Foo): void; +-import type { Foo } from "./a"; ++export declare function foo(a: Foo): void; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/importTag20.js b/testdata/baselines/reference/submodule/conformance/importTag20.js new file mode 100644 index 0000000000..650725ac77 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/importTag20.js @@ -0,0 +1,34 @@ +//// [tests/cases/conformance/jsdoc/importTag20.ts] //// + +//// [a.ts] +export interface Foo {} + +//// [b.js] +/** + * @import + * { Foo + * } from './a' + */ + +/** + * @param {Foo} a + */ +export function foo(a) {} + + + + +//// [a.d.ts] +export interface Foo { +} +//// [b.d.ts] +import type { Foo } from './a'; +/** + * @import + * { Foo + * } from './a' + */ +/** + * @param {Foo} a + */ +export declare function foo(a: Foo): void; diff --git a/testdata/baselines/reference/submodule/conformance/importTag20.js.diff b/testdata/baselines/reference/submodule/conformance/importTag20.js.diff new file mode 100644 index 0000000000..3553717498 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/importTag20.js.diff @@ -0,0 +1,17 @@ +--- old.importTag20.js ++++ new.importTag20.js +@@= skipped -21, +21 lines =@@ + export interface Foo { + } + //// [b.d.ts] ++import type { Foo } from './a'; + /** + * @import + * { Foo +@@= skipped -8, +9 lines =@@ + /** + * @param {Foo} a + */ +-export function foo(a: Foo): void; +-import type { Foo } from './a'; ++export declare function foo(a: Foo): void; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/importTag5.js b/testdata/baselines/reference/submodule/conformance/importTag5.js new file mode 100644 index 0000000000..282eb62aa9 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/importTag5.js @@ -0,0 +1,33 @@ +//// [tests/cases/conformance/jsdoc/importTag5.ts] //// + +//// [types.ts] +export interface Foo { + a: number; +} + +//// [foo.js] +/** + * @import { Foo } from "./types" + */ + +/** + * @param { Foo } foo + */ +function f(foo) {} + + + + +//// [types.d.ts] +export interface Foo { + a: number; +} +//// [foo.d.ts] +import type { Foo } from "./types"; +/** + * @import { Foo } from "./types" + */ +/** + * @param { Foo } foo + */ +declare function f(foo: Foo): void; diff --git a/testdata/baselines/reference/submodule/conformance/importTag5.js.diff b/testdata/baselines/reference/submodule/conformance/importTag5.js.diff new file mode 100644 index 0000000000..fe5d43d4e0 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/importTag5.js.diff @@ -0,0 +1,15 @@ +--- old.importTag5.js ++++ new.importTag5.js +@@= skipped -22, +22 lines =@@ + a: number; + } + //// [foo.d.ts] ++import type { Foo } from "./types"; + /** + * @import { Foo } from "./types" + */ +@@= skipped -7, +8 lines =@@ + * @param { Foo } foo + */ + declare function f(foo: Foo): void; +-import type { Foo } from "./types"; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/importTypeInJSDoc.js b/testdata/baselines/reference/submodule/conformance/importTypeInJSDoc.js new file mode 100644 index 0000000000..4a2d016979 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/importTypeInJSDoc.js @@ -0,0 +1,37 @@ +//// [tests/cases/conformance/types/import/importTypeInJSDoc.ts] //// + +//// [externs.d.ts] +declare namespace MyClass { + export interface Bar { + doer: (x: string) => void; + } +} +declare class MyClass { + field: string; + static Bar: (x: string, y?: number) => void; + constructor(x: MyClass.Bar); +} +declare global { + const Foo: typeof MyClass; +} +export = MyClass; +//// [index.js] +/** + * @typedef {import("./externs")} Foo + */ + +let a = /** @type {Foo} */(/** @type {*} */(undefined)); +a = new Foo({doer: Foo.Bar}); +const q = /** @type {import("./externs").Bar} */({ doer: q => q }); +const r = /** @type {typeof import("./externs").Bar} */(r => r); + + +//// [index.js] +/** + * @typedef {import("./externs")} Foo + */ +let a = /** @type {Foo} */ undefined; +a = new Foo({ doer: Foo.Bar }); +const q = /** @type {import("./externs").Bar} */ { doer: q => q }; +const r = /** @type {typeof import("./externs").Bar} */ r => r; +export {}; diff --git a/testdata/baselines/reference/submodule/conformance/importTypeInJSDoc.js.diff b/testdata/baselines/reference/submodule/conformance/importTypeInJSDoc.js.diff new file mode 100644 index 0000000000..3a0756b51b --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/importTypeInJSDoc.js.diff @@ -0,0 +1,14 @@ +--- old.importTypeInJSDoc.js ++++ new.importTypeInJSDoc.js +@@= skipped -29, +29 lines =@@ + /** + * @typedef {import("./externs")} Foo + */ +-let a = /** @type {Foo} */ ( /** @type {*} */(undefined)); ++let a = /** @type {Foo} */ undefined; + a = new Foo({ doer: Foo.Bar }); +-const q = /** @type {import("./externs").Bar} */ ({ doer: q => q }); +-const r = /** @type {typeof import("./externs").Bar} */ (r => r); ++const q = /** @type {import("./externs").Bar} */ { doer: q => q }; ++const r = /** @type {typeof import("./externs").Bar} */ r => r; ++export {}; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/instantiateTemplateTagTypeParameterOnVariableStatement.js b/testdata/baselines/reference/submodule/conformance/instantiateTemplateTagTypeParameterOnVariableStatement.js new file mode 100644 index 0000000000..4b61359719 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/instantiateTemplateTagTypeParameterOnVariableStatement.js @@ -0,0 +1,30 @@ +//// [tests/cases/conformance/jsdoc/instantiateTemplateTagTypeParameterOnVariableStatement.ts] //// + +//// [instantiateTemplateTagTypeParameterOnVariableStatement.js] +/** + * @template T + * @param {T} a + * @returns {(b: T) => T} + */ +const seq = a => b => b; + +const text1 = "hello"; +const text2 = "world"; + +/** @type {string} */ +var text3 = seq(text1)(text2); + + + + +//// [instantiateTemplateTagTypeParameterOnVariableStatement.d.ts] +/** + * @template T + * @param {T} a + * @returns {(b: T) => T} + */ +declare const seq: (a: T) => (b: T) => T; +declare const text1 = "hello"; +declare const text2 = "world"; +/** @type {string} */ +declare var text3: string; diff --git a/testdata/baselines/reference/submodule/conformance/instantiateTemplateTagTypeParameterOnVariableStatement.js.diff b/testdata/baselines/reference/submodule/conformance/instantiateTemplateTagTypeParameterOnVariableStatement.js.diff new file mode 100644 index 0000000000..6398002b9c --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/instantiateTemplateTagTypeParameterOnVariableStatement.js.diff @@ -0,0 +1,14 @@ +--- old.instantiateTemplateTagTypeParameterOnVariableStatement.js ++++ new.instantiateTemplateTagTypeParameterOnVariableStatement.js +@@= skipped -22, +22 lines =@@ + * @param {T} a + * @returns {(b: T) => T} + */ +-declare function seq(a: T): (b: T) => T; +-declare const text1: "hello"; +-declare const text2: "world"; ++declare const seq: (a: T) => (b: T) => T; ++declare const text1 = "hello"; ++declare const text2 = "world"; + /** @type {string} */ + declare var text3: string; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsClassAccessor.js b/testdata/baselines/reference/submodule/conformance/jsDeclarationsClassAccessor.js new file mode 100644 index 0000000000..147058c104 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsClassAccessor.js @@ -0,0 +1,88 @@ +//// [tests/cases/conformance/jsdoc/declarations/jsDeclarationsClassAccessor.ts] //// + +//// [supplement.d.ts] +export { }; +declare module "./argument.js" { + interface Argument { + idlType: any; + default: null; + } +} +//// [base.js] +export class Base { + constructor() { } + + toJSON() { + const json = { type: undefined, name: undefined, inheritance: undefined }; + return json; + } +} +//// [argument.js] +import { Base } from "./base.js"; +export class Argument extends Base { + /** + * @param {*} tokeniser + */ + static parse(tokeniser) { + return; + } + + get type() { + return "argument"; + } + + /** + * @param {*} defs + */ + *validate(defs) { } +} + +//// [base.js] +export class Base { + constructor() { } + toJSON() { + const json = { type: undefined, name: undefined, inheritance: undefined }; + return json; + } +} +//// [argument.js] +import { Base } from "./base.js"; +export class Argument extends Base { + /** + * @param {*} tokeniser + */ + static parse(tokeniser) { + return; + } + get type() { + return "argument"; + } + /** + * @param {*} defs + */ + *validate(defs) { } +} + + +//// [base.d.ts] +export declare class Base { + constructor(); + toJSON(): { + type: any; + name: any; + inheritance: any; + }; +} +//// [argument.d.ts] +import { Base } from "./base.js"; +export declare class Argument extends Base { + /** + * @param {*} tokeniser + */ + static parse(tokeniser: any): void; + get type(): string; + /** + * @param {*} defs + */ + validate(defs: any): Generator; +} diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsClassAccessor.js.diff b/testdata/baselines/reference/submodule/conformance/jsDeclarationsClassAccessor.js.diff new file mode 100644 index 0000000000..6f0ce085de --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsClassAccessor.js.diff @@ -0,0 +1,32 @@ +--- old.jsDeclarationsClassAccessor.js ++++ new.jsDeclarationsClassAccessor.js +@@= skipped -64, +64 lines =@@ + + + //// [base.d.ts] +-export class Base { ++export declare class Base { ++ constructor(); + toJSON(): { + type: any; + name: any; +@@= skipped -8, +9 lines =@@ + }; + } + //// [argument.d.ts] +-export class Argument extends Base { ++import { Base } from "./base.js"; ++export declare class Argument extends Base { + /** + * @param {*} tokeniser + */ + static parse(tokeniser: any): void; +- idlType: any; +- default: null; + get type(): string; + /** + * @param {*} defs + */ + validate(defs: any): Generator; + } +-import { Base } from "./base.js"; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsClassExtendsVisibility.js b/testdata/baselines/reference/submodule/conformance/jsDeclarationsClassExtendsVisibility.js new file mode 100644 index 0000000000..873919cc36 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsClassExtendsVisibility.js @@ -0,0 +1,41 @@ +//// [tests/cases/conformance/jsdoc/declarations/jsDeclarationsClassExtendsVisibility.ts] //// + +//// [bar.js] +class Bar {} +module.exports = Bar; +//// [cls.js] +const Bar = require("./bar"); +const Strings = { + a: "A", + b: "B" +}; +class Foo extends Bar {} +module.exports = Foo; +module.exports.Strings = Strings; + +//// [bar.js] +class Bar { +} +export = Bar; +module.exports = Bar; +//// [cls.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const Bar = require("./bar"); +const Strings = { + a: "A", + b: "B" +}; +class Foo extends Bar { +} +export = Foo; +module.exports = Foo; +export var Strings = Strings; +module.exports.Strings = Strings; + + +//// [bar.d.ts] +export = Bar; +//// [cls.d.ts] +export = Foo; +export var Strings = Strings; diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsClassExtendsVisibility.js.diff b/testdata/baselines/reference/submodule/conformance/jsDeclarationsClassExtendsVisibility.js.diff new file mode 100644 index 0000000000..8d3685964a --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsClassExtendsVisibility.js.diff @@ -0,0 +1,41 @@ +--- old.jsDeclarationsClassExtendsVisibility.js ++++ new.jsDeclarationsClassExtendsVisibility.js +@@= skipped -15, +15 lines =@@ + //// [bar.js] + class Bar { + } ++export = Bar; + module.exports = Bar; + //// [cls.js] ++"use strict"; ++Object.defineProperty(exports, "__esModule", { value: true }); + const Bar = require("./bar"); + const Strings = { + a: "A", +@@= skipped -9, +12 lines =@@ + }; + class Foo extends Bar { + } ++export = Foo; + module.exports = Foo; ++export var Strings = Strings; + module.exports.Strings = Strings; + + + //// [bar.d.ts] + export = Bar; +-declare class Bar { +-} + //// [cls.d.ts] + export = Foo; +-declare class Foo extends Bar { +-} +-declare namespace Foo { +- export { Strings }; +-} +-import Bar = require("./bar"); +-declare namespace Strings { +- let a: string; +- let b: string; +-} ++export var Strings = Strings; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsClassImplementsGenericsSerialization.js b/testdata/baselines/reference/submodule/conformance/jsDeclarationsClassImplementsGenericsSerialization.js new file mode 100644 index 0000000000..be704163a5 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsClassImplementsGenericsSerialization.js @@ -0,0 +1,71 @@ +//// [tests/cases/conformance/jsdoc/declarations/jsDeclarationsClassImplementsGenericsSerialization.ts] //// + +//// [interface.ts] +export interface Encoder { + encode(value: T): Uint8Array +} +//// [lib.js] +/** + * @template T + * @implements {IEncoder} + */ +export class Encoder { + /** + * @param {T} value + */ + encode(value) { + return new Uint8Array(0) + } +} + + +/** + * @template T + * @typedef {import('./interface').Encoder} IEncoder + */ + +//// [interface.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +//// [lib.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Encoder = void 0; +/** + * @template T + * @implements {IEncoder} + */ +class Encoder { + /** + * @param {T} value + */ + encode(value) { + return new Uint8Array(0); + } +} +exports.Encoder = Encoder; +/** + * @template T + * @typedef {import('./interface').Encoder} IEncoder + */ + + +//// [interface.d.ts] +export interface Encoder { + encode(value: T): Uint8Array; +} +//// [lib.d.ts] +/** + * @template T + * @implements {IEncoder} + */ +export declare class Encoder implements IEncoder { + /** + * @param {T} value + */ + encode(value: T): Uint8Array; +} +/** + * @template T + * @typedef {import('./interface').Encoder} IEncoder + */ diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsClassImplementsGenericsSerialization.js.diff b/testdata/baselines/reference/submodule/conformance/jsDeclarationsClassImplementsGenericsSerialization.js.diff new file mode 100644 index 0000000000..e0bb03baef --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsClassImplementsGenericsSerialization.js.diff @@ -0,0 +1,18 @@ +--- old.jsDeclarationsClassImplementsGenericsSerialization.js ++++ new.jsDeclarationsClassImplementsGenericsSerialization.js +@@= skipped -58, +58 lines =@@ + * @template T + * @implements {IEncoder} + */ +-export class Encoder implements IEncoder { ++export declare class Encoder implements IEncoder { + /** + * @param {T} value + */ + encode(value: T): Uint8Array; + } +-export type IEncoder = import("./interface").Encoder; ++/** ++ * @template T ++ * @typedef {import('./interface').Encoder} IEncoder ++ */ \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsClassLeadingOptional.js b/testdata/baselines/reference/submodule/conformance/jsDeclarationsClassLeadingOptional.js new file mode 100644 index 0000000000..e02f2f980e --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsClassLeadingOptional.js @@ -0,0 +1,25 @@ +//// [tests/cases/conformance/jsdoc/declarations/jsDeclarationsClassLeadingOptional.ts] //// + +//// [bar.js] +export class Z { + f(x = 1, y) { + return [x, y]; + } +} + +//// [bar.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Z = void 0; +class Z { + f(x = 1, y) { + return [x, y]; + } +} +exports.Z = Z; + + +//// [bar.d.ts] +export declare class Z { + f(x: number, y: any): any[]; +} diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsClassLeadingOptional.js.diff b/testdata/baselines/reference/submodule/conformance/jsDeclarationsClassLeadingOptional.js.diff new file mode 100644 index 0000000000..5548e7963e --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsClassLeadingOptional.js.diff @@ -0,0 +1,10 @@ +--- old.jsDeclarationsClassLeadingOptional.js ++++ new.jsDeclarationsClassLeadingOptional.js +@@= skipped -19, +19 lines =@@ + + + //// [bar.d.ts] +-export class Z { ++export declare class Z { + f(x: number, y: any): any[]; + } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsClassLikeHeuristic.js b/testdata/baselines/reference/submodule/conformance/jsDeclarationsClassLikeHeuristic.js new file mode 100644 index 0000000000..a8f92ae69c --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsClassLikeHeuristic.js @@ -0,0 +1,18 @@ +//// [tests/cases/conformance/jsdoc/declarations/jsDeclarationsClassLikeHeuristic.ts] //// + +//// [index.js] +// https://github.com/microsoft/TypeScript/issues/35801 +let A; +A = {}; +A.prototype.b = {}; + +//// [index.js] +// https://github.com/microsoft/TypeScript/issues/35801 +let A; +A = {}; +A.prototype.b = {}; + + +//// [index.d.ts] +// https://github.com/microsoft/TypeScript/issues/35801 +declare let A: any; diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsClassLikeHeuristic.js.diff b/testdata/baselines/reference/submodule/conformance/jsDeclarationsClassLikeHeuristic.js.diff new file mode 100644 index 0000000000..cd9f2058e4 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsClassLikeHeuristic.js.diff @@ -0,0 +1,12 @@ +--- old.jsDeclarationsClassLikeHeuristic.js ++++ new.jsDeclarationsClassLikeHeuristic.js +@@= skipped -13, +13 lines =@@ + + + //// [index.d.ts] +-declare class A { +- private constructor(); +- b: {}; +-} ++// https://github.com/microsoft/TypeScript/issues/35801 ++declare let A: any; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsClassMethod.js b/testdata/baselines/reference/submodule/conformance/jsDeclarationsClassMethod.js new file mode 100644 index 0000000000..291c26285d --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsClassMethod.js @@ -0,0 +1,140 @@ +//// [tests/cases/conformance/jsdoc/declarations/jsDeclarationsClassMethod.ts] //// + +//// [jsDeclarationsClassMethod.js] +function C1() { + /** + * A comment prop + * @param {number} x + * @param {number} y + * @returns {number} + */ + this.prop = function (x, y) { + return x + y; + } +} + +/** + * A comment method + * @param {number} x + * @param {number} y + * @returns {number} + */ +C1.prototype.method = function (x, y) { + return x + y; +} + +/** + * A comment staticProp + * @param {number} x + * @param {number} y + * @returns {number} + */ +C1.staticProp = function (x, y) { + return x + y; +} + +class C2 { + /** + * A comment method1 + * @param {number} x + * @param {number} y + * @returns {number} + */ + method1(x, y) { + return x + y; + } +} + +/** + * A comment method2 + * @param {number} x + * @param {number} y + * @returns {number} + */ +C2.prototype.method2 = function (x, y) { + return x + y; +} + +/** + * A comment staticProp + * @param {number} x + * @param {number} y + * @returns {number} + */ +C2.staticProp = function (x, y) { + return x + y; +} + + +//// [jsDeclarationsClassMethod.js] +function C1() { + /** + * A comment prop + * @param {number} x + * @param {number} y + * @returns {number} + */ + this.prop = function (x, y) { + return x + y; + }; +} +/** + * A comment method + * @param {number} x + * @param {number} y + * @returns {number} + */ +C1.prototype.method = function (x, y) { + return x + y; +}; +/** + * A comment staticProp + * @param {number} x + * @param {number} y + * @returns {number} + */ +C1.staticProp = function (x, y) { + return x + y; +}; +class C2 { + /** + * A comment method1 + * @param {number} x + * @param {number} y + * @returns {number} + */ + method1(x, y) { + return x + y; + } +} +/** + * A comment method2 + * @param {number} x + * @param {number} y + * @returns {number} + */ +C2.prototype.method2 = function (x, y) { + return x + y; +}; +/** + * A comment staticProp + * @param {number} x + * @param {number} y + * @returns {number} + */ +C2.staticProp = function (x, y) { + return x + y; +}; + + +//// [jsDeclarationsClassMethod.d.ts] +declare function C1(): void; +declare class C2 { + /** + * A comment method1 + * @param {number} x + * @param {number} y + * @returns {number} + */ + method1(x: number, y: number): number; +} diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsClassMethod.js.diff b/testdata/baselines/reference/submodule/conformance/jsDeclarationsClassMethod.js.diff new file mode 100644 index 0000000000..1520c1ddf2 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsClassMethod.js.diff @@ -0,0 +1,55 @@ +--- old.jsDeclarationsClassMethod.js ++++ new.jsDeclarationsClassMethod.js +@@= skipped -128, +128 lines =@@ + + //// [jsDeclarationsClassMethod.d.ts] + declare function C1(): void; +-declare class C1 { +- /** +- * A comment prop +- * @param {number} x +- * @param {number} y +- * @returns {number} +- */ +- prop: (x: number, y: number) => number; +- /** +- * A comment method +- * @param {number} x +- * @param {number} y +- * @returns {number} +- */ +- method(x: number, y: number): number; +-} +-declare namespace C1 { +- /** +- * A comment staticProp +- * @param {number} x +- * @param {number} y +- * @returns {number} +- */ +- function staticProp(x: number, y: number): number; +-} + declare class C2 { + /** + * A comment method1 +@@= skipped -33, +8 lines =@@ + * @returns {number} + */ + method1(x: number, y: number): number; +- /** +- * A comment method2 +- * @param {number} x +- * @param {number} y +- * @returns {number} +- */ +- method2(x: number, y: number): number; +-} +-declare namespace C2 { +- /** +- * A comment staticProp +- * @param {number} x +- * @param {number} y +- * @returns {number} +- */ +- function staticProp(x: number, y: number): number; + } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsClassStatic.js b/testdata/baselines/reference/submodule/conformance/jsDeclarationsClassStatic.js new file mode 100644 index 0000000000..1aab631323 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsClassStatic.js @@ -0,0 +1,61 @@ +//// [tests/cases/conformance/jsdoc/declarations/jsDeclarationsClassStatic.ts] //// + +//// [source.js] +class Handler { + static get OPTIONS() { + return 1; + } + + process() { + } +} +Handler.statische = function() { } +const Strings = { + a: "A", + b: "B" +} + +module.exports = Handler; +module.exports.Strings = Strings + +/** + * @typedef {Object} HandlerOptions + * @property {String} name + * Should be able to export a type alias at the same time. + */ + + +//// [source.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +class Handler { + static get OPTIONS() { + return 1; + } + process() { + } +} +Handler.statische = function () { }; +const Strings = { + a: "A", + b: "B" +}; +export = Handler; +module.exports = Handler; +export var Strings = Strings; +module.exports.Strings = Strings; +/** + * @typedef {Object} HandlerOptions + * @property {String} name + * Should be able to export a type alias at the same time. + */ + + +//// [source.d.ts] +export = Handler; +export var Strings = Strings; +/** + * @typedef {Object} HandlerOptions + * @property {String} name + * Should be able to export a type alias at the same time. + */ diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsClassStatic.js.diff b/testdata/baselines/reference/submodule/conformance/jsDeclarationsClassStatic.js.diff new file mode 100644 index 0000000000..40f0a73c85 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsClassStatic.js.diff @@ -0,0 +1,49 @@ +--- old.jsDeclarationsClassStatic.js ++++ new.jsDeclarationsClassStatic.js +@@= skipped -25, +25 lines =@@ + + + //// [source.js] ++"use strict"; ++Object.defineProperty(exports, "__esModule", { value: true }); + class Handler { + static get OPTIONS() { + return 1; +@@= skipped -12, +14 lines =@@ + a: "A", + b: "B" + }; ++export = Handler; + module.exports = Handler; ++export var Strings = Strings; + module.exports.Strings = Strings; + /** + * @typedef {Object} HandlerOptions +@@= skipped -11, +13 lines =@@ + + //// [source.d.ts] + export = Handler; +-declare class Handler { +- static get OPTIONS(): number; +- process(): void; +-} +-declare namespace Handler { +- export { statische, Strings, HandlerOptions }; +-} +-declare function statische(): void; +-declare namespace Strings { +- let a: string; +- let b: string; +-} +-type HandlerOptions = { +- /** +- * Should be able to export a type alias at the same time. +- */ +- name: string; +-}; ++export var Strings = Strings; ++/** ++ * @typedef {Object} HandlerOptions ++ * @property {String} name ++ * Should be able to export a type alias at the same time. ++ */ \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsClassStatic2.js b/testdata/baselines/reference/submodule/conformance/jsDeclarationsClassStatic2.js new file mode 100644 index 0000000000..96bb98ab89 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsClassStatic2.js @@ -0,0 +1,27 @@ +//// [tests/cases/conformance/jsdoc/declarations/jsDeclarationsClassStatic2.ts] //// + +//// [Foo.js] +class Base { + static foo = ""; +} +export class Foo extends Base {} +Foo.foo = "foo"; + +//// [Bar.ts] +import { Foo } from "./Foo.js"; + +class Bar extends Foo {} +Bar.foo = "foo"; + + + + +//// [Foo.d.ts] +declare class Base { + static foo: string; +} +export declare class Foo extends Base { +} +export {}; +//// [Bar.d.ts] +export {}; diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsClassStatic2.js.diff b/testdata/baselines/reference/submodule/conformance/jsDeclarationsClassStatic2.js.diff new file mode 100644 index 0000000000..f0e6cd5301 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsClassStatic2.js.diff @@ -0,0 +1,18 @@ +--- old.jsDeclarationsClassStatic2.js ++++ new.jsDeclarationsClassStatic2.js +@@= skipped -16, +16 lines =@@ + + + //// [Foo.d.ts] +-export class Foo extends Base { +-} +-export namespace Foo { +- let foo: string; +-} + declare class Base { + static foo: string; ++} ++export declare class Foo extends Base { + } + export {}; + //// [Bar.d.ts] \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsClassStaticMethodAugmentation.js b/testdata/baselines/reference/submodule/conformance/jsDeclarationsClassStaticMethodAugmentation.js new file mode 100644 index 0000000000..364a14e58c --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsClassStaticMethodAugmentation.js @@ -0,0 +1,24 @@ +//// [tests/cases/conformance/jsdoc/declarations/jsDeclarationsClassStaticMethodAugmentation.ts] //// + +//// [source.js] +export class Clazz { + static method() { } +} + +Clazz.method.prop = 5; + +//// [source.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Clazz = void 0; +class Clazz { + static method() { } +} +exports.Clazz = Clazz; +Clazz.method.prop = 5; + + +//// [source.d.ts] +export declare class Clazz { + static method(): void; +} diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsClassStaticMethodAugmentation.js.diff b/testdata/baselines/reference/submodule/conformance/jsDeclarationsClassStaticMethodAugmentation.js.diff new file mode 100644 index 0000000000..b679adb7ef --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsClassStaticMethodAugmentation.js.diff @@ -0,0 +1,16 @@ +--- old.jsDeclarationsClassStaticMethodAugmentation.js ++++ new.jsDeclarationsClassStaticMethodAugmentation.js +@@= skipped -18, +18 lines =@@ + + + //// [source.d.ts] +-export class Clazz { +-} +-export namespace Clazz { +- function method(): void; +- namespace method { +- let prop: number; +- } ++export declare class Clazz { ++ static method(): void; + } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsClasses.js b/testdata/baselines/reference/submodule/conformance/jsDeclarationsClasses.js new file mode 100644 index 0000000000..7564b45da1 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsClasses.js @@ -0,0 +1,533 @@ +//// [tests/cases/conformance/jsdoc/declarations/jsDeclarationsClasses.ts] //// + +//// [index.js] +export class A {} + +export class B { + static cat = "cat"; +} + +export class C { + static Cls = class {} +} + +export class D { + /** + * @param {number} a + * @param {number} b + */ + constructor(a, b) {} +} + +/** + * @template T,U + */ +export class E { + /** + * @type {T & U} + */ + field; + + // @readonly is currently unsupported, it seems - included here just in case that changes + /** + * @type {T & U} + * @readonly + */ + readonlyField; + + initializedField = 12; + + /** + * @return {U} + */ + get f1() { return /** @type {*} */(null); } + + /** + * @param {U} _p + */ + set f1(_p) {} + + /** + * @return {U} + */ + get f2() { return /** @type {*} */(null); } + + /** + * @param {U} _p + */ + set f3(_p) {} + + /** + * @param {T} a + * @param {U} b + */ + constructor(a, b) {} + + + /** + * @type {string} + */ + static staticField; + + // @readonly is currently unsupported, it seems - included here just in case that changes + /** + * @type {string} + * @readonly + */ + static staticReadonlyField; + + static staticInitializedField = 12; + + /** + * @return {string} + */ + static get s1() { return ""; } + + /** + * @param {string} _p + */ + static set s1(_p) {} + + /** + * @return {string} + */ + static get s2() { return ""; } + + /** + * @param {string} _p + */ + static set s3(_p) {} +} + +/** + * @template T,U + */ +export class F { + /** + * @type {T & U} + */ + field; + /** + * @param {T} a + * @param {U} b + */ + constructor(a, b) {} + + /** + * @template A,B + * @param {A} a + * @param {B} b + */ + static create(a, b) { return new F(a, b); } +} + +class G {} + +export { G }; + +class HH {} + +export { HH as H }; + +export class I {} +export { I as II }; + +export { J as JJ }; +export class J {} + + +export class K { + constructor() { + this.p1 = 12; + this.p2 = "ok"; + } + + method() { + return this.p1; + } +} + +export class L extends K {} + +export class M extends null { + constructor() { + this.prop = 12; + } +} + + +/** + * @template T + */ +export class N extends L { + /** + * @param {T} param + */ + constructor(param) { + super(); + this.another = param; + } +} + +/** + * @template U + * @extends {N} + */ +export class O extends N { + /** + * @param {U} param + */ + constructor(param) { + super(param); + this.another2 = param; + } +} + +var x = /** @type {*} */(null); + +export class VariableBase extends x {} + +export class HasStatics { + static staticMethod() {} +} + +export class ExtendsStatics extends HasStatics { + static also() {} +} + + +//// [index.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.ExtendsStatics = exports.HasStatics = exports.VariableBase = exports.O = exports.N = exports.M = exports.L = exports.K = exports.J = exports.JJ = exports.II = exports.I = exports.H = exports.G = exports.F = exports.E = exports.D = exports.C = exports.B = exports.A = void 0; +class A { +} +exports.A = A; +class B { + static cat = "cat"; +} +exports.B = B; +class C { + static Cls = class { + }; +} +exports.C = C; +class D { + /** + * @param {number} a + * @param {number} b + */ + constructor(a, b) { } +} +exports.D = D; +/** + * @template T,U + */ +class E { + /** + * @type {T & U} + */ + field; + // @readonly is currently unsupported, it seems - included here just in case that changes + /** + * @type {T & U} + * @readonly + */ + readonlyField; + initializedField = 12; + /** + * @return {U} + */ + get f1() { return /** @type {*} */ null; } + /** + * @param {U} _p + */ + set f1(_p) { } + /** + * @return {U} + */ + get f2() { return /** @type {*} */ null; } + /** + * @param {U} _p + */ + set f3(_p) { } + /** + * @param {T} a + * @param {U} b + */ + constructor(a, b) { } + /** + * @type {string} + */ + static staticField; + // @readonly is currently unsupported, it seems - included here just in case that changes + /** + * @type {string} + * @readonly + */ + static staticReadonlyField; + static staticInitializedField = 12; + /** + * @return {string} + */ + static get s1() { return ""; } + /** + * @param {string} _p + */ + static set s1(_p) { } + /** + * @return {string} + */ + static get s2() { return ""; } + /** + * @param {string} _p + */ + static set s3(_p) { } +} +exports.E = E; +/** + * @template T,U + */ +class F { + /** + * @type {T & U} + */ + field; + /** + * @param {T} a + * @param {U} b + */ + constructor(a, b) { } + /** + * @template A,B + * @param {A} a + * @param {B} b + */ + static create(a, b) { return new F(a, b); } +} +exports.F = F; +class G { +} +exports.G = G; +class HH { +} +exports.H = HH; +class I { +} +exports.I = I; +exports.II = I; +class J { +} +exports.J = J; +exports.JJ = J; +class K { + constructor() { + this.p1 = 12; + this.p2 = "ok"; + } + method() { + return this.p1; + } +} +exports.K = K; +class L extends K { +} +exports.L = L; +class M extends null { + constructor() { + this.prop = 12; + } +} +exports.M = M; +/** + * @template T + */ +class N extends L { + /** + * @param {T} param + */ + constructor(param) { + super(); + this.another = param; + } +} +exports.N = N; +/** + * @template U + * @extends {N} + */ +class O extends N { + /** + * @param {U} param + */ + constructor(param) { + super(param); + this.another2 = param; + } +} +exports.O = O; +var x = /** @type {*} */ null; +class VariableBase extends x { +} +exports.VariableBase = VariableBase; +class HasStatics { + static staticMethod() { } +} +exports.HasStatics = HasStatics; +class ExtendsStatics extends HasStatics { + static also() { } +} +exports.ExtendsStatics = ExtendsStatics; + + +//// [index.d.ts] +export declare class A { +} +export declare class B { + static cat: string; +} +export declare class C { + static Cls: { + new (): {}; + }; +} +export declare class D { + /** + * @param {number} a + * @param {number} b + */ + constructor(a: number, b: number); +} +/** + * @template T,U + */ +export declare class E { + /** + * @type {T & U} + */ + field: T & U; + // @readonly is currently unsupported, it seems - included here just in case that changes + /** + * @type {T & U} + * @readonly + */ + readonly readonlyField: T & U; + initializedField: number; + /** + * @return {U} + */ + get f1(): U; + /** + * @param {U} _p + */ + set f1(_p: U); + /** + * @return {U} + */ + get f2(): U; + /** + * @param {U} _p + */ + set f3(_p: U); + /** + * @param {T} a + * @param {U} b + */ + constructor(a: T, b: U); + /** + * @type {string} + */ + static staticField: string; + // @readonly is currently unsupported, it seems - included here just in case that changes + /** + * @type {string} + * @readonly + */ + static readonly staticReadonlyField: string; + static staticInitializedField: number; + /** + * @return {string} + */ + static get s1(): string; + /** + * @param {string} _p + */ + static set s1(_p: string); + /** + * @return {string} + */ + static get s2(): string; + /** + * @param {string} _p + */ + static set s3(_p: string); +} +/** + * @template T,U + */ +export declare class F { + /** + * @type {T & U} + */ + field: T & U; + /** + * @param {T} a + * @param {U} b + */ + constructor(a: T, b: U); + /** + * @template A,B + * @param {A} a + * @param {B} b + */ + static create(a: A, b: B): F; +} +declare class G { +} +export { G }; +declare class HH { +} +export { HH as H }; +export declare class I { +} +export { I as II }; +export { J as JJ }; +export declare class J { +} +export declare class K { + constructor(); + method(): number; +} +export declare class L extends K { +} +export declare class M extends null { + constructor(); +} +/** + * @template T + */ +export declare class N extends L { + /** + * @param {T} param + */ + constructor(param: T); +} +/** + * @template U + * @extends {N} + */ +export declare class O extends N { + /** + * @param {U} param + */ + constructor(param: U); +} +declare var x: any; +export declare class VariableBase extends x { +} +export declare class HasStatics { + static staticMethod(): void; +} +export declare class ExtendsStatics extends HasStatics { + static also(): void; +} diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsClasses.js.diff b/testdata/baselines/reference/submodule/conformance/jsDeclarationsClasses.js.diff new file mode 100644 index 0000000000..fd04bc3d31 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsClasses.js.diff @@ -0,0 +1,390 @@ +--- old.jsDeclarationsClasses.js ++++ new.jsDeclarationsClasses.js +@@= skipped -202, +202 lines =@@ + class A { + } + exports.A = A; +-let B = (() => { +- class B { +- } +- B.cat = "cat"; +- return B; +-})(); ++class B { ++ static cat = "cat"; ++} + exports.B = B; +-let C = (() => { +- class C { +- } +- C.Cls = class { ++class C { ++ static Cls = class { + }; +- return C; +-})(); ++} + exports.C = C; + class D { + /** +@@= skipped -26, +20 lines =@@ + /** + * @template T,U + */ +-let E = (() => { +- class E { +- /** +- * @return {U} +- */ +- get f1() { return /** @type {*} */ (null); } +- /** +- * @param {U} _p +- */ +- set f1(_p) { } +- /** +- * @return {U} +- */ +- get f2() { return /** @type {*} */ (null); } +- /** +- * @param {U} _p +- */ +- set f3(_p) { } +- /** +- * @param {T} a +- * @param {U} b +- */ +- constructor(a, b) { +- this.initializedField = 12; +- } +- /** +- * @return {string} +- */ +- static get s1() { return ""; } +- /** +- * @param {string} _p +- */ +- static set s1(_p) { } +- /** +- * @return {string} +- */ +- static get s2() { return ""; } +- /** +- * @param {string} _p +- */ +- static set s3(_p) { } +- } +- E.staticInitializedField = 12; +- return E; +-})(); ++class E { ++ /** ++ * @type {T & U} ++ */ ++ field; ++ // @readonly is currently unsupported, it seems - included here just in case that changes ++ /** ++ * @type {T & U} ++ * @readonly ++ */ ++ readonlyField; ++ initializedField = 12; ++ /** ++ * @return {U} ++ */ ++ get f1() { return /** @type {*} */ null; } ++ /** ++ * @param {U} _p ++ */ ++ set f1(_p) { } ++ /** ++ * @return {U} ++ */ ++ get f2() { return /** @type {*} */ null; } ++ /** ++ * @param {U} _p ++ */ ++ set f3(_p) { } ++ /** ++ * @param {T} a ++ * @param {U} b ++ */ ++ constructor(a, b) { } ++ /** ++ * @type {string} ++ */ ++ static staticField; ++ // @readonly is currently unsupported, it seems - included here just in case that changes ++ /** ++ * @type {string} ++ * @readonly ++ */ ++ static staticReadonlyField; ++ static staticInitializedField = 12; ++ /** ++ * @return {string} ++ */ ++ static get s1() { return ""; } ++ /** ++ * @param {string} _p ++ */ ++ static set s1(_p) { } ++ /** ++ * @return {string} ++ */ ++ static get s2() { return ""; } ++ /** ++ * @param {string} _p ++ */ ++ static set s3(_p) { } ++} + exports.E = E; + /** + * @template T,U + */ + class F { + /** ++ * @type {T & U} ++ */ ++ field; ++ /** + * @param {T} a + * @param {U} b + */ +@@= skipped -123, +143 lines =@@ + } + } + exports.O = O; +-var x = /** @type {*} */ (null); ++var x = /** @type {*} */ null; + class VariableBase extends x { + } + exports.VariableBase = VariableBase; +@@= skipped -15, +15 lines =@@ + + + //// [index.d.ts] +-export class A { ++export declare class A { + } +-export class B { ++export declare class B { + static cat: string; + } +-export class C { ++export declare class C { + static Cls: { + new (): {}; + }; + } +-export class D { ++export declare class D { + /** + * @param {number} a + * @param {number} b +@@= skipped -20, +20 lines =@@ + /** + * @template T,U + */ +-export class E { ++export declare class E { ++ /** ++ * @type {T & U} ++ */ ++ field: T & U; ++ // @readonly is currently unsupported, it seems - included here just in case that changes ++ /** ++ * @type {T & U} ++ * @readonly ++ */ ++ readonly readonlyField: T & U; ++ initializedField: number; ++ /** ++ * @return {U} ++ */ ++ get f1(): U; ++ /** ++ * @param {U} _p ++ */ ++ set f1(_p: U); ++ /** ++ * @return {U} ++ */ ++ get f2(): U; ++ /** ++ * @param {U} _p ++ */ ++ set f3(_p: U); ++ /** ++ * @param {T} a ++ * @param {U} b ++ */ ++ constructor(a: T, b: U); + /** + * @type {string} + */ + static staticField: string; ++ // @readonly is currently unsupported, it seems - included here just in case that changes + /** + * @type {string} + * @readonly +@@= skipped -12, +45 lines =@@ + static readonly staticReadonlyField: string; + static staticInitializedField: number; + /** +- * @param {string} _p +- */ +- static set s1(_p: string); +- /** + * @return {string} + */ + static get s1(): string; + /** ++ * @param {string} _p ++ */ ++ static set s1(_p: string); ++ /** + * @return {string} + */ + static get s2(): string; +@@= skipped -15, +15 lines =@@ + * @param {string} _p + */ + static set s3(_p: string); +- /** +- * @param {T} a +- * @param {U} b +- */ +- constructor(a: T, b: U); +- /** +- * @type {T & U} +- */ +- field: T & U; +- /** +- * @type {T & U} +- * @readonly +- */ +- readonly readonlyField: T & U; +- initializedField: number; +- /** +- * @param {U} _p +- */ +- set f1(_p: U); +- /** +- * @return {U} +- */ +- get f1(): U; +- /** +- * @return {U} +- */ +- get f2(): U; +- /** +- * @param {U} _p +- */ +- set f3(_p: U); + } + /** + * @template T,U + */ +-export class F { ++export declare class F { ++ /** ++ * @type {T & U} ++ */ ++ field: T & U; ++ /** ++ * @param {T} a ++ * @param {U} b ++ */ ++ constructor(a: T, b: U); + /** + * @template A,B + * @param {A} a + * @param {B} b + */ + static create(a: A, b: B): F; +- /** +- * @param {T} a +- * @param {U} b +- */ +- constructor(a: T, b: U); +- /** +- * @type {T & U} +- */ +- field: T & U; +-} +-export class I { +-} +-export class J { +-} +-export class K { +- p1: number; +- p2: string; ++} ++declare class G { ++} ++export { G }; ++declare class HH { ++} ++export { HH as H }; ++export declare class I { ++} ++export { I as II }; ++export { J as JJ }; ++export declare class J { ++} ++export declare class K { ++ constructor(); + method(): number; + } +-export class L extends K { ++export declare class L extends K { + } +-export class M { +- prop: number; ++export declare class M extends null { ++ constructor(); + } + /** + * @template T + */ +-export class N extends L { ++export declare class N extends L { + /** + * @param {T} param + */ + constructor(param: T); +- another: T; + } + /** + * @template U + * @extends {N} + */ +-export class O extends N { +- another2: U; +-} +-declare const VariableBase_base: any; +-export class VariableBase extends VariableBase_base { +- [x: string]: any; +-} +-export class HasStatics { ++export declare class O extends N { ++ /** ++ * @param {U} param ++ */ ++ constructor(param: U); ++} ++declare var x: any; ++export declare class VariableBase extends x { ++} ++export declare class HasStatics { + static staticMethod(): void; + } +-export class ExtendsStatics extends HasStatics { ++export declare class ExtendsStatics extends HasStatics { + static also(): void; + } +-export class G { +-} +-declare class HH { +-} +-export { HH as H, I as II, J as JJ }; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsClassesErr.js b/testdata/baselines/reference/submodule/conformance/jsDeclarationsClassesErr.js new file mode 100644 index 0000000000..5b6bf64ef7 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsClassesErr.js @@ -0,0 +1,207 @@ +//// [tests/cases/conformance/jsdoc/declarations/jsDeclarationsClassesErr.ts] //// + +//// [index.js] +// Pretty much all of this should be an error, (since index signatures and generics are forbidden in js), +// but we should be able to synthesize declarations from the symbols regardless + +export class M { + field: T; +} + +export class N extends M { + other: U; +} + +export class O { + [idx: string]: string; +} + +export class P extends O {} + +export class Q extends O { + [idx: string]: "ok"; +} + +export class R extends O { + [idx: number]: "ok"; +} + +export class S extends O { + [idx: string]: "ok"; + [idx: number]: never; +} + +export class T { + [idx: number]: string; +} + +export class U extends T {} + + +export class V extends T { + [idx: string]: string; +} + +export class W extends T { + [idx: number]: "ok"; +} + +export class X extends T { + [idx: string]: string; + [idx: number]: "ok"; +} + +export class Y { + [idx: string]: {x: number}; + [idx: number]: {x: number, y: number}; +} + +export class Z extends Y {} + +export class AA extends Y { + [idx: string]: {x: number, y: number}; +} + +export class BB extends Y { + [idx: number]: {x: 0, y: 0}; +} + +export class CC extends Y { + [idx: string]: {x: number, y: number}; + [idx: number]: {x: 0, y: 0}; +} + + +//// [index.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.CC = exports.BB = exports.AA = exports.Z = exports.Y = exports.X = exports.W = exports.V = exports.U = exports.T = exports.S = exports.R = exports.Q = exports.P = exports.O = exports.N = exports.M = void 0; +// Pretty much all of this should be an error, (since index signatures and generics are forbidden in js), +// but we should be able to synthesize declarations from the symbols regardless +class M { + field; +} +exports.M = M; +class N extends M { + other; +} +exports.N = N; +class O { +} +exports.O = O; +class P extends O { +} +exports.P = P; +class Q extends O { +} +exports.Q = Q; +class R extends O { +} +exports.R = R; +class S extends O { +} +exports.S = S; +class T { +} +exports.T = T; +class U extends T { +} +exports.U = U; +class V extends T { +} +exports.V = V; +class W extends T { +} +exports.W = W; +class X extends T { +} +exports.X = X; +class Y { +} +exports.Y = Y; +class Z extends Y { +} +exports.Z = Z; +class AA extends Y { +} +exports.AA = AA; +class BB extends Y { +} +exports.BB = BB; +class CC extends Y { +} +exports.CC = CC; + + +//// [index.d.ts] +// Pretty much all of this should be an error, (since index signatures and generics are forbidden in js), +// but we should be able to synthesize declarations from the symbols regardless +export declare class M { + field: T; +} +export declare class N extends M { + other: U; +} +export declare class O { + [idx: string]: string; +} +export declare class P extends O { +} +export declare class Q extends O { + [idx: string]: "ok"; +} +export declare class R extends O { + [idx: number]: "ok"; +} +export declare class S extends O { + [idx: string]: "ok"; + [idx: number]: never; +} +export declare class T { + [idx: number]: string; +} +export declare class U extends T { +} +export declare class V extends T { + [idx: string]: string; +} +export declare class W extends T { + [idx: number]: "ok"; +} +export declare class X extends T { + [idx: string]: string; + [idx: number]: "ok"; +} +export declare class Y { + [idx: string]: { + x: number; + }; + [idx: number]: { + x: number; + y: number; + }; +} +export declare class Z extends Y { +} +export declare class AA extends Y { + [idx: string]: { + x: number; + y: number; + }; +} +export declare class BB extends Y { + [idx: number]: { + x: 0; + y: 0; + }; +} +export declare class CC extends Y { + [idx: string]: { + x: number; + y: number; + }; + [idx: number]: { + x: 0; + y: 0; + }; +} diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsClassesErr.js.diff b/testdata/baselines/reference/submodule/conformance/jsDeclarationsClassesErr.js.diff new file mode 100644 index 0000000000..51902592b1 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsClassesErr.js.diff @@ -0,0 +1,114 @@ +--- old.jsDeclarationsClassesErr.js ++++ new.jsDeclarationsClassesErr.js +@@= skipped -73, +73 lines =@@ + + //// [index.js] + "use strict"; +-// Pretty much all of this should be an error, (since index signatures and generics are forbidden in js), +-// but we should be able to synthesize declarations from the symbols regardless + Object.defineProperty(exports, "__esModule", { value: true }); + exports.CC = exports.BB = exports.AA = exports.Z = exports.Y = exports.X = exports.W = exports.V = exports.U = exports.T = exports.S = exports.R = exports.Q = exports.P = exports.O = exports.N = exports.M = void 0; ++// Pretty much all of this should be an error, (since index signatures and generics are forbidden in js), ++// but we should be able to synthesize declarations from the symbols regardless + class M { ++ field; + } + exports.M = M; + class N extends M { ++ other; + } + exports.N = N; + class O { +@@= skipped -58, +60 lines =@@ + + + //// [index.d.ts] +-export class M { ++// Pretty much all of this should be an error, (since index signatures and generics are forbidden in js), ++// but we should be able to synthesize declarations from the symbols regardless ++export declare class M { + field: T; + } +-export class N extends M { ++export declare class N extends M { + other: U; + } +-export class O { ++export declare class O { + [idx: string]: string; + } +-export class P extends O { ++export declare class P extends O { + } +-export class Q extends O { ++export declare class Q extends O { + [idx: string]: "ok"; + } +-export class R extends O { ++export declare class R extends O { + [idx: number]: "ok"; + } +-export class S extends O { ++export declare class S extends O { + [idx: string]: "ok"; + [idx: number]: never; + } +-export class T { ++export declare class T { + [idx: number]: string; + } +-export class U extends T { +-} +-export class V extends T { +- [idx: string]: string; +-} +-export class W extends T { +- [idx: number]: "ok"; +-} +-export class X extends T { +- [idx: string]: string; +- [idx: number]: "ok"; +-} +-export class Y { ++export declare class U extends T { ++} ++export declare class V extends T { ++ [idx: string]: string; ++} ++export declare class W extends T { ++ [idx: number]: "ok"; ++} ++export declare class X extends T { ++ [idx: string]: string; ++ [idx: number]: "ok"; ++} ++export declare class Y { + [idx: string]: { + x: number; + }; +@@= skipped -45, +47 lines =@@ + y: number; + }; + } +-export class Z extends Y { ++export declare class Z extends Y { + } +-export class AA extends Y { ++export declare class AA extends Y { + [idx: string]: { + x: number; + y: number; + }; + } +-export class BB extends Y { ++export declare class BB extends Y { + [idx: number]: { + x: 0; + y: 0; + }; + } +-export class CC extends Y { ++export declare class CC extends Y { + [idx: string]: { + x: number; + y: number; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsCommonjsRelativePath.js b/testdata/baselines/reference/submodule/conformance/jsDeclarationsCommonjsRelativePath.js new file mode 100644 index 0000000000..45f98704ba --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsCommonjsRelativePath.js @@ -0,0 +1,29 @@ +//// [tests/cases/conformance/jsdoc/declarations/jsDeclarationsCommonjsRelativePath.ts] //// + +//// [thing.js] +'use strict'; +class Thing {} +module.exports = { Thing } + +//// [reexport.js] +'use strict'; +const Thing = require('./thing').Thing +module.exports = { Thing } + + + + +//// [thing.d.ts] +declare class Thing { +} +declare const _default: { + Thing: typeof Thing; +}; +export = _default; +//// [reexport.d.ts] +declare const _default: { + Thing: { + new (): {}; + }; +}; +export = _default; diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsCommonjsRelativePath.js.diff b/testdata/baselines/reference/submodule/conformance/jsDeclarationsCommonjsRelativePath.js.diff new file mode 100644 index 0000000000..e230b77856 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsCommonjsRelativePath.js.diff @@ -0,0 +1,23 @@ +--- old.jsDeclarationsCommonjsRelativePath.js ++++ new.jsDeclarationsCommonjsRelativePath.js +@@= skipped -13, +13 lines =@@ + + + //// [thing.d.ts] +-export class Thing { ++declare class Thing { + } ++declare const _default: { ++ Thing: typeof Thing; ++}; ++export = _default; + //// [reexport.d.ts] +-export { Thing }; +-import Thing_1 = require("./thing"); +-import Thing = Thing_1.Thing; ++declare const _default: { ++ Thing: { ++ new (): {}; ++ }; ++}; ++export = _default; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsComputedNames.js b/testdata/baselines/reference/submodule/conformance/jsDeclarationsComputedNames.js new file mode 100644 index 0000000000..60432607d2 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsComputedNames.js @@ -0,0 +1,92 @@ +//// [tests/cases/conformance/jsdoc/declarations/jsDeclarationsComputedNames.ts] //// + +//// [index.js] +const TopLevelSym = Symbol(); +const InnerSym = Symbol(); +module.exports = { + [TopLevelSym](x = 12) { + return x; + }, + items: { + [InnerSym]: (arg = {x: 12}) => arg.x + } +} + +//// [index2.js] +const TopLevelSym = Symbol(); +const InnerSym = Symbol(); + +export class MyClass { + static [TopLevelSym] = 12; + [InnerSym] = "ok"; + /** + * @param {typeof TopLevelSym | typeof InnerSym} _p + */ + constructor(_p = InnerSym) { + // switch on _p + } +} + + +//// [index.js] +const TopLevelSym = Symbol(); +const InnerSym = Symbol(); +export = { + [TopLevelSym](x = 12) { + return x; + }, + items: { + [InnerSym]: (arg = { x: 12 }) => arg.x + } +}; +module.exports = { + [TopLevelSym](x = 12) { + return x; + }, + items: { + [InnerSym]: (arg = { x: 12 }) => arg.x + } +}; +//// [index2.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.MyClass = void 0; +const TopLevelSym = Symbol(); +const InnerSym = Symbol(); +class MyClass { + static [TopLevelSym] = 12; + [InnerSym] = "ok"; + /** + * @param {typeof TopLevelSym | typeof InnerSym} _p + */ + constructor(_p = InnerSym) { + // switch on _p + } +} +exports.MyClass = MyClass; + + +//// [index.d.ts] +declare const TopLevelSym: unique symbol; +declare const InnerSym: unique symbol; +declare const _default: { + [TopLevelSym](x?: number): number; + items: { + [InnerSym]: (arg?: { + x: number; + }) => number; + }; +}; +export = _default; +//// [index2.d.ts] +declare const TopLevelSym: unique symbol; +declare const InnerSym: unique symbol; +export declare class MyClass { + static [TopLevelSym]: number; + [InnerSym]: string; + /** + * @param {typeof TopLevelSym | typeof InnerSym} _p + */ + constructor(_p?: typeof TopLevelSym | typeof InnerSym); +} +export {}; diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsComputedNames.js.diff b/testdata/baselines/reference/submodule/conformance/jsDeclarationsComputedNames.js.diff new file mode 100644 index 0000000000..1927549a0f --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsComputedNames.js.diff @@ -0,0 +1,83 @@ +--- old.jsDeclarationsComputedNames.js ++++ new.jsDeclarationsComputedNames.js +@@= skipped -30, +30 lines =@@ + //// [index.js] + const TopLevelSym = Symbol(); + const InnerSym = Symbol(); ++export = { ++ [TopLevelSym](x = 12) { ++ return x; ++ }, ++ items: { ++ [InnerSym]: (arg = { x: 12 }) => arg.x ++ } ++}; + module.exports = { + [TopLevelSym](x = 12) { + return x; +@@= skipped -14, +22 lines =@@ + exports.MyClass = void 0; + const TopLevelSym = Symbol(); + const InnerSym = Symbol(); +-let MyClass = (() => { +- var _a, _b; +- class MyClass { +- /** +- * @param {typeof TopLevelSym | typeof InnerSym} _p +- */ +- constructor(_p = InnerSym) { +- this[_b] = "ok"; +- // switch on _p +- } ++class MyClass { ++ static [TopLevelSym] = 12; ++ [InnerSym] = "ok"; ++ /** ++ * @param {typeof TopLevelSym | typeof InnerSym} _p ++ */ ++ constructor(_p = InnerSym) { ++ // switch on _p + } +- _a = TopLevelSym, _b = InnerSym; +- MyClass[_a] = 12; +- return MyClass; +-})(); ++} + exports.MyClass = MyClass; + + + //// [index.d.ts] +-declare const _exports: { ++declare const TopLevelSym: unique symbol; ++declare const InnerSym: unique symbol; ++declare const _default: { + [TopLevelSym](x?: number): number; + items: { + [InnerSym]: (arg?: { +@@= skipped -27, +24 lines =@@ + }) => number; + }; + }; +-export = _exports; +-declare const TopLevelSym: unique symbol; +-declare const InnerSym: unique symbol; ++export = _default; + //// [index2.d.ts] +-export class MyClass { ++declare const TopLevelSym: unique symbol; ++declare const InnerSym: unique symbol; ++export declare class MyClass { + static [TopLevelSym]: number; +- /** +- * @param {typeof TopLevelSym | typeof InnerSym} _p +- */ +- constructor(_p?: typeof TopLevelSym | typeof InnerSym); + [InnerSym]: string; ++ /** ++ * @param {typeof TopLevelSym | typeof InnerSym} _p ++ */ ++ constructor(_p?: typeof TopLevelSym | typeof InnerSym); + } +-declare const InnerSym: unique symbol; +-declare const TopLevelSym: unique symbol; + export {}; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsConstsAsNamespacesWithReferences.js b/testdata/baselines/reference/submodule/conformance/jsDeclarationsConstsAsNamespacesWithReferences.js new file mode 100644 index 0000000000..243121a7bf --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsConstsAsNamespacesWithReferences.js @@ -0,0 +1,27 @@ +//// [tests/cases/conformance/jsdoc/declarations/jsDeclarationsConstsAsNamespacesWithReferences.ts] //// + +//// [index.js] +export const colors = { + royalBlue: "#6400e4", +}; + +export const brandColors = { + purple: colors.royalBlue, +}; + +//// [index.js] +export const colors = { + royalBlue: "#6400e4", +}; +export const brandColors = { + purple: colors.royalBlue, +}; + + +//// [index.d.ts] +export declare const colors: { + royalBlue: string; +}; +export declare const brandColors: { + purple: string; +}; diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsConstsAsNamespacesWithReferences.js.diff b/testdata/baselines/reference/submodule/conformance/jsDeclarationsConstsAsNamespacesWithReferences.js.diff new file mode 100644 index 0000000000..ed968a212a --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsConstsAsNamespacesWithReferences.js.diff @@ -0,0 +1,19 @@ +--- old.jsDeclarationsConstsAsNamespacesWithReferences.js ++++ new.jsDeclarationsConstsAsNamespacesWithReferences.js +@@= skipped -18, +18 lines =@@ + + + //// [index.d.ts] +-export namespace colors { +- let royalBlue: string; +-} +-export namespace brandColors { +- import purple = colors.royalBlue; +- export { purple }; +-} ++export declare const colors: { ++ royalBlue: string; ++}; ++export declare const brandColors: { ++ purple: string; ++}; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsCrossfileMerge.js b/testdata/baselines/reference/submodule/conformance/jsDeclarationsCrossfileMerge.js new file mode 100644 index 0000000000..43d7d8a23b --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsCrossfileMerge.js @@ -0,0 +1,37 @@ +//// [tests/cases/conformance/jsdoc/declarations/jsDeclarationsCrossfileMerge.ts] //// + +//// [index.js] +const m = require("./exporter"); + +module.exports = m.default; +module.exports.memberName = "thing"; + +//// [exporter.js] +function validate() {} + +export default validate; + + +//// [exporter.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +function validate() { } +exports.default = validate; +//// [index.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const m = require("./exporter"); +export = m.default; +module.exports = m.default; +export var memberName = "thing"; +module.exports.memberName = "thing"; + + +//// [exporter.d.ts] +declare function validate(): void; +export default validate; +//// [index.d.ts] +declare const m: typeof m; +declare const _default: typeof m.default; +export = _default; +export var memberName = "thing"; diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsCrossfileMerge.js.diff b/testdata/baselines/reference/submodule/conformance/jsDeclarationsCrossfileMerge.js.diff new file mode 100644 index 0000000000..3c0477cb71 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsCrossfileMerge.js.diff @@ -0,0 +1,31 @@ +--- old.jsDeclarationsCrossfileMerge.js ++++ new.jsDeclarationsCrossfileMerge.js +@@= skipped -17, +17 lines =@@ + function validate() { } + exports.default = validate; + //// [index.js] ++"use strict"; ++Object.defineProperty(exports, "__esModule", { value: true }); + const m = require("./exporter"); ++export = m.default; + module.exports = m.default; ++export var memberName = "thing"; + module.exports.memberName = "thing"; + + +-//// [index.d.ts] +-declare const _exports: typeof m.default; +-export = _exports; +-import m = require("./exporter"); +- +- +-!!!! File out/exporter.d.ts missing from original emit, but present in noCheck emit + //// [exporter.d.ts] +-export default validate; + declare function validate(): void; ++export default validate; ++//// [index.d.ts] ++declare const m: typeof m; ++declare const _default: typeof m.default; ++export = _default; ++export var memberName = "thing"; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsDefault.js b/testdata/baselines/reference/submodule/conformance/jsDeclarationsDefault.js new file mode 100644 index 0000000000..505f0d529a --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsDefault.js @@ -0,0 +1,125 @@ +//// [tests/cases/conformance/jsdoc/declarations/jsDeclarationsDefault.ts] //// + +//// [index1.js] +export default 12; + +//// [index2.js] +export default function foo() { + return foo; +} +export const x = foo; +export { foo as bar }; + +//// [index3.js] +export default class Foo { + a = /** @type {Foo} */(null); +}; +export const X = Foo; +export { Foo as Bar }; + +//// [index4.js] +import Fab from "./index3"; +class Bar extends Fab { + x = /** @type {Bar} */(null); +} +export default Bar; + +//// [index5.js] +// merge type alias and const (OK) +export default 12; +/** + * @typedef {string | number} default + */ + +//// [index6.js] +// merge type alias and function (OK) +export default function func() {}; +/** + * @typedef {string | number} default + */ + + +//// [index1.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = 12; +//// [index2.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.x = void 0; +exports.default = foo; +exports.bar = foo; +function foo() { + return foo; +} +exports.x = foo; +//// [index3.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Bar = exports.X = void 0; +class Foo { + a = /** @type {Foo} */ null; +} +exports.default = Foo; +exports.Bar = Foo; +; +exports.X = Foo; +//// [index4.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const index3_1 = require("./index3"); +class Bar extends index3_1.default { + x = /** @type {Bar} */ null; +} +exports.default = Bar; +//// [index5.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +// merge type alias and const (OK) +exports.default = 12; +/** + * @typedef {string | number} default + */ +//// [index6.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = func; +// merge type alias and function (OK) +function func() { } +; +/** + * @typedef {string | number} default + */ + + +//// [index1.d.ts] +declare const _default: number; +export default _default; +//// [index2.d.ts] +export default function foo(): typeof foo; +export declare const x: typeof foo; +export { foo as bar }; +//// [index3.d.ts] +export default class Foo { + a: Foo; +} +export declare const X: typeof Foo; +export { Foo as Bar }; +//// [index4.d.ts] +import Fab from "./index3"; +declare class Bar extends Fab { + x: Bar; +} +export default Bar; +//// [index5.d.ts] +declare const _default: number; +export default _default; +/** + * @typedef {string | number} default + */ +//// [index6.d.ts] +// merge type alias and function (OK) +export default function func(): void; +/** + * @typedef {string | number} default + */ diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsDefault.js.diff b/testdata/baselines/reference/submodule/conformance/jsDeclarationsDefault.js.diff new file mode 100644 index 0000000000..694467df49 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsDefault.js.diff @@ -0,0 +1,72 @@ +--- old.jsDeclarationsDefault.js ++++ new.jsDeclarationsDefault.js +@@= skipped -57, +57 lines =@@ + Object.defineProperty(exports, "__esModule", { value: true }); + exports.Bar = exports.X = void 0; + class Foo { +- constructor() { +- this.a = (null); +- } ++ a = /** @type {Foo} */ null; + } + exports.default = Foo; + exports.Bar = Foo; +@@= skipped -11, +9 lines =@@ + //// [index4.js] + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); +-var index3_1 = require("./index3"); ++const index3_1 = require("./index3"); + class Bar extends index3_1.default { +- constructor() { +- super(...arguments); +- this.x = (null); +- } ++ x = /** @type {Bar} */ null; + } + exports.default = Bar; + //// [index5.js] +@@= skipped -29, +26 lines =@@ + + + //// [index1.d.ts] +-declare const _default: 12; ++declare const _default: number; + export default _default; + //// [index2.d.ts] + export default function foo(): typeof foo; +-export function x(): typeof foo; ++export declare const x: typeof foo; + export { foo as bar }; + //// [index3.d.ts] + export default class Foo { + a: Foo; + } +-export const X: typeof Foo; ++export declare const X: typeof Foo; + export { Foo as Bar }; + //// [index4.d.ts] +-export default Bar; ++import Fab from "./index3"; + declare class Bar extends Fab { + x: Bar; + } +-import Fab from "./index3"; ++export default Bar; + //// [index5.d.ts] +-type _default = string | number; +-declare const _default: 12; ++declare const _default: number; + export default _default; ++/** ++ * @typedef {string | number} default ++ */ + //// [index6.d.ts] +-declare function func(): void; +-type func = string | number; +-export default func; ++// merge type alias and function (OK) ++export default function func(): void; ++/** ++ * @typedef {string | number} default ++ */ \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsDefaultsErr.js b/testdata/baselines/reference/submodule/conformance/jsDeclarationsDefaultsErr.js new file mode 100644 index 0000000000..ec5a2262cc --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsDefaultsErr.js @@ -0,0 +1,88 @@ +//// [tests/cases/conformance/jsdoc/declarations/jsDeclarationsDefaultsErr.ts] //// + +//// [index1.js] +// merge type alias and alias (should error, see #32367) +class Cls { + x = 12; + static y = "ok" +} +export default Cls; +/** + * @typedef {string | number} default + */ + +//// [index2.js] +// merge type alias and class (error message improvement needed, see #32368) +export default class C {}; +/** + * @typedef {string | number} default + */ + +//// [index3.js] +// merge type alias and variable (behavior is borked, see #32366) +const x = 12; +export {x as default}; +/** + * @typedef {string | number} default + */ + + +//// [index1.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +// merge type alias and alias (should error, see #32367) +class Cls { + x = 12; + static y = "ok"; +} +exports.default = Cls; +/** + * @typedef {string | number} default + */ +//// [index2.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +// merge type alias and class (error message improvement needed, see #32368) +class C { +} +exports.default = C; +; +/** + * @typedef {string | number} default + */ +//// [index3.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = void 0; +// merge type alias and variable (behavior is borked, see #32366) +const x = 12; +exports.default = x; +/** + * @typedef {string | number} default + */ + + +//// [index1.d.ts] +// merge type alias and alias (should error, see #32367) +declare class Cls { + x: number; + static y: string; +} +export default Cls; +/** + * @typedef {string | number} default + */ +//// [index2.d.ts] +// merge type alias and class (error message improvement needed, see #32368) +export default class C { +} +/** + * @typedef {string | number} default + */ +//// [index3.d.ts] +// merge type alias and variable (behavior is borked, see #32366) +declare const x = 12; +export { x as default }; +/** + * @typedef {string | number} default + */ diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsDefaultsErr.js.diff b/testdata/baselines/reference/submodule/conformance/jsDeclarationsDefaultsErr.js.diff new file mode 100644 index 0000000000..cb00d47a58 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsDefaultsErr.js.diff @@ -0,0 +1,54 @@ +--- old.jsDeclarationsDefaultsErr.js ++++ new.jsDeclarationsDefaultsErr.js +@@= skipped -30, +30 lines =@@ + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + // merge type alias and alias (should error, see #32367) +-let Cls = (() => { +- class Cls { +- constructor() { +- this.x = 12; +- } +- } +- Cls.y = "ok"; +- return Cls; +-})(); ++class Cls { ++ x = 12; ++ static y = "ok"; ++} + exports.default = Cls; + /** + * @typedef {string | number} default +@@= skipped -37, +32 lines =@@ + + + //// [index1.d.ts] +-export type Cls = string | number; +-export default Cls; ++// merge type alias and alias (should error, see #32367) + declare class Cls { +- static y: string; + x: number; ++ static y: string; + } ++export default Cls; ++/** ++ * @typedef {string | number} default ++ */ + //// [index2.d.ts] ++// merge type alias and class (error message improvement needed, see #32368) + export default class C { + } ++/** ++ * @typedef {string | number} default ++ */ + //// [index3.d.ts] +-export type _default = string | number; ++// merge type alias and variable (behavior is borked, see #32366) ++declare const x = 12; + export { x as default }; +-declare const x: 12; ++/** ++ * @typedef {string | number} default ++ */ \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsDocCommentsOnConsts.js b/testdata/baselines/reference/submodule/conformance/jsDeclarationsDocCommentsOnConsts.js new file mode 100644 index 0000000000..dfd3ae0f2b --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsDocCommentsOnConsts.js @@ -0,0 +1,45 @@ +//// [tests/cases/conformance/jsdoc/declarations/jsDeclarationsDocCommentsOnConsts.ts] //// + +//// [index1.js] +/** + * const doc comment + */ +const x = (a) => { + return ''; +}; + +/** + * function doc comment + */ +function b() { + return 0; +} + +module.exports = {x, b} + +//// [index1.js] +/** + * const doc comment + */ +const x = (a) => { + return ''; +}; +/** + * function doc comment + */ +function b() { + return 0; +} +module.exports = { x, b }; + + +//// [index1.d.ts] +/** + * function doc comment + */ +declare function b(): number; +declare const _default: { + x: (a: any) => string; + b: typeof b; +}; +export = _default; diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsDocCommentsOnConsts.js.diff b/testdata/baselines/reference/submodule/conformance/jsDeclarationsDocCommentsOnConsts.js.diff new file mode 100644 index 0000000000..8ba1a315db --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsDocCommentsOnConsts.js.diff @@ -0,0 +1,19 @@ +--- old.jsDeclarationsDocCommentsOnConsts.js ++++ new.jsDeclarationsDocCommentsOnConsts.js +@@= skipped -34, +34 lines =@@ + + //// [index1.d.ts] + /** +- * const doc comment +- */ +-export function x(a: any): string; +-/** + * function doc comment + */ +-export function b(): number; ++declare function b(): number; ++declare const _default: { ++ x: (a: any) => string; ++ b: typeof b; ++}; ++export = _default; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsEnumTag.js b/testdata/baselines/reference/submodule/conformance/jsDeclarationsEnumTag.js new file mode 100644 index 0000000000..fb5a994b83 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsEnumTag.js @@ -0,0 +1,135 @@ +//// [tests/cases/conformance/jsdoc/declarations/jsDeclarationsEnumTag.ts] //// + +//// [index.js] +/** @enum {string} */ +export const Target = { + START: "start", + MIDDLE: "middle", + END: "end", + /** @type {number} */ + OK_I_GUESS: 2 +} +/** @enum number */ +export const Second = { + OK: 1, + /** @type {number} */ + FINE: 2, +} +/** @enum {function(number): number} */ +export const Fs = { + ADD1: n => n + 1, + ID: n => n, + SUB1: n => n - 1 +} + +/** + * @param {Target} t + * @param {Second} s + * @param {Fs} f + */ +export function consume(t,s,f) { + /** @type {string} */ + var str = t + /** @type {number} */ + var num = s + /** @type {(n: number) => number} */ + var fun = f + /** @type {Target} */ + var v = Target.START + v = 'something else' // allowed, like Typescript's classic enums and unlike its string enums +} +/** @param {string} s */ +export function ff(s) { + // element access with arbitrary string is an error only with noImplicitAny + if (!Target[s]) { + return null + } + else { + return Target[s] + } +} + + +//// [index.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Fs = exports.Second = exports.Target = void 0; +exports.consume = consume; +exports.ff = ff; +/** @enum {string} */ +exports.Target = { + START: "start", + MIDDLE: "middle", + END: "end", + /** @type {number} */ + OK_I_GUESS: 2 +}; +/** @enum number */ +exports.Second = { + OK: 1, + /** @type {number} */ + FINE: 2, +}; +/** @enum {function(number): number} */ +exports.Fs = { + ADD1: n => n + 1, + ID: n => n, + SUB1: n => n - 1 +}; +/** + * @param {Target} t + * @param {Second} s + * @param {Fs} f + */ +function consume(t, s, f) { + /** @type {string} */ + var str = t; + /** @type {number} */ + var num = s; + /** @type {(n: number) => number} */ + var fun = f; + /** @type {Target} */ + var v = exports.Target.START; + v = 'something else'; // allowed, like Typescript's classic enums and unlike its string enums +} +/** @param {string} s */ +function ff(s) { + // element access with arbitrary string is an error only with noImplicitAny + if (!exports.Target[s]) { + return null; + } + else { + return exports.Target[s]; + } +} + + +//// [index.d.ts] +/** @enum {string} */ +export declare const Target: { + START: string; + MIDDLE: string; + END: string; + /** @type {number} */ + OK_I_GUESS: number; +}; +/** @enum number */ +export declare const Second: { + OK: number; + /** @type {number} */ + FINE: number; +}; +/** @enum {function(number): number} */ +export declare const Fs: { + ADD1: (n: any) => any; + ID: (n: any) => any; + SUB1: (n: any) => number; +}; +/** + * @param {Target} t + * @param {Second} s + * @param {Fs} f + */ +export declare function consume(t: Target, s: Second, f: Fs): void; +/** @param {string} s */ +export declare function ff(s: string): any; diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsEnumTag.js.diff b/testdata/baselines/reference/submodule/conformance/jsDeclarationsEnumTag.js.diff new file mode 100644 index 0000000000..0a63b1a868 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsEnumTag.js.diff @@ -0,0 +1,54 @@ +--- old.jsDeclarationsEnumTag.js ++++ new.jsDeclarationsEnumTag.js +@@= skipped -104, +104 lines =@@ + + + //// [index.d.ts] ++/** @enum {string} */ ++export declare const Target: { ++ START: string; ++ MIDDLE: string; ++ END: string; ++ /** @type {number} */ ++ OK_I_GUESS: number; ++}; ++/** @enum number */ ++export declare const Second: { ++ OK: number; ++ /** @type {number} */ ++ FINE: number; ++}; ++/** @enum {function(number): number} */ ++export declare const Fs: { ++ ADD1: (n: any) => any; ++ ID: (n: any) => any; ++ SUB1: (n: any) => number; ++}; + /** + * @param {Target} t + * @param {Second} s + * @param {Fs} f + */ +-export function consume(t: Target, s: Second, f: Fs): void; ++export declare function consume(t: Target, s: Second, f: Fs): void; + /** @param {string} s */ +-export function ff(s: string): any; +-export type Target = string; +-export namespace Target { +- let START: string; +- let MIDDLE: string; +- let END: string; +- let OK_I_GUESS: number; +-} +-export type Second = number; +-export namespace Second { +- let OK: number; +- let FINE: number; +-} +-export type Fs = (arg0: number) => number; +-export namespace Fs { +- function ADD1(n: any): any; +- function ID(n: any): any; +- function SUB1(n: any): number; +-} ++export declare function ff(s: string): any; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsEnums.js b/testdata/baselines/reference/submodule/conformance/jsDeclarationsEnums.js new file mode 100644 index 0000000000..96865717dc --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsEnums.js @@ -0,0 +1,185 @@ +//// [tests/cases/conformance/jsdoc/declarations/jsDeclarationsEnums.ts] //// + +//// [index.js] +// Pretty much all of this should be an error, (since enums are forbidden in js), +// but we should be able to synthesize declarations from the symbols regardless + +export enum A {} + +export enum B { + Member +} + +enum C {} + +export { C }; + +enum DD {} + +export { DD as D }; + +export enum E {} +export { E as EE }; + +export { F as FF }; +export enum F {} + +export enum G { + A = 1, + B, + C +} + +export enum H { + A = "a", + B = "b" +} + +export enum I { + A = "a", + B = 0, + C +} + +export const enum J { + A = 1, + B, + C +} + +export enum K { + None = 0, + A = 1 << 0, + B = 1 << 1, + C = 1 << 2, + Mask = A | B | C, +} + +export const enum L { + None = 0, + A = 1 << 0, + B = 1 << 1, + C = 1 << 2, + Mask = A | B | C, +} + + +//// [index.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.L = exports.K = exports.J = exports.I = exports.H = exports.G = exports.F = exports.FF = exports.EE = exports.E = exports.D = exports.C = exports.B = exports.A = void 0; +// Pretty much all of this should be an error, (since enums are forbidden in js), +// but we should be able to synthesize declarations from the symbols regardless +var A; +(function (A) { +})(A || (exports.A = A = {})); +var B; +(function (B) { + B[B["Member"] = 0] = "Member"; +})(B || (exports.B = B = {})); +var C; +(function (C) { +})(C || (exports.C = C = {})); +var DD; +(function (DD) { +})(DD || (exports.D = DD = {})); +var E; +(function (E) { +})(E || (exports.EE = exports.E = E = {})); +var F; +(function (F) { +})(F || (exports.F = exports.FF = F = {})); +var G; +(function (G) { + G[G["A"] = 1] = "A"; + G[G["B"] = 2] = "B"; + G[G["C"] = 3] = "C"; +})(G || (exports.G = G = {})); +var H; +(function (H) { + H["A"] = "a"; + H["B"] = "b"; +})(H || (exports.H = H = {})); +var I; +(function (I) { + I["A"] = "a"; + I[I["B"] = 0] = "B"; + I[I["C"] = 1] = "C"; +})(I || (exports.I = I = {})); +var J; +(function (J) { + J[J["A"] = 1] = "A"; + J[J["B"] = 2] = "B"; + J[J["C"] = 3] = "C"; +})(J || (exports.J = J = {})); +var K; +(function (K) { + K[K["None"] = 0] = "None"; + K[K["A"] = 1] = "A"; + K[K["B"] = 2] = "B"; + K[K["C"] = 4] = "C"; + K[K["Mask"] = 7] = "Mask"; +})(K || (exports.K = K = {})); +var L; +(function (L) { + L[L["None"] = 0] = "None"; + L[L["A"] = 1] = "A"; + L[L["B"] = 2] = "B"; + L[L["C"] = 4] = "C"; + L[L["Mask"] = 7] = "Mask"; +})(L || (exports.L = L = {})); + + +//// [index.d.ts] +// Pretty much all of this should be an error, (since enums are forbidden in js), +// but we should be able to synthesize declarations from the symbols regardless +export declare enum A { +} +export declare enum B { + Member = 0 +} +declare enum C { +} +export { C }; +declare enum DD { +} +export { DD as D }; +export declare enum E { +} +export { E as EE }; +export { F as FF }; +export declare enum F { +} +export declare enum G { + A = 1, + B = 2, + C = 3 +} +export declare enum H { + A = "a", + B = "b" +} +export declare enum I { + A = "a", + B = 0, + C = 1 +} +export declare const enum J { + A = 1, + B = 2, + C = 3 +} +export declare enum K { + None = 0, + A = 1, + B = 2, + C = 4, + Mask = 7 +} +export declare const enum L { + None = 0, + A = 1, + B = 2, + C = 4, + Mask = 7 +} diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsEnums.js.diff b/testdata/baselines/reference/submodule/conformance/jsDeclarationsEnums.js.diff new file mode 100644 index 0000000000..4120026b81 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsEnums.js.diff @@ -0,0 +1,125 @@ +--- old.jsDeclarationsEnums.js ++++ new.jsDeclarationsEnums.js +@@= skipped -65, +65 lines =@@ + + //// [index.js] + "use strict"; +-// Pretty much all of this should be an error, (since enums are forbidden in js), +-// but we should be able to synthesize declarations from the symbols regardless + Object.defineProperty(exports, "__esModule", { value: true }); +-exports.K = exports.I = exports.H = exports.G = exports.F = exports.FF = exports.EE = exports.E = exports.D = exports.C = exports.B = exports.A = void 0; ++exports.L = exports.K = exports.J = exports.I = exports.H = exports.G = exports.F = exports.FF = exports.EE = exports.E = exports.D = exports.C = exports.B = exports.A = void 0; ++// Pretty much all of this should be an error, (since enums are forbidden in js), ++// but we should be able to synthesize declarations from the symbols regardless + var A; + (function (A) { + })(A || (exports.A = A = {})); +@@= skipped -40, +40 lines =@@ + I[I["B"] = 0] = "B"; + I[I["C"] = 1] = "C"; + })(I || (exports.I = I = {})); ++var J; ++(function (J) { ++ J[J["A"] = 1] = "A"; ++ J[J["B"] = 2] = "B"; ++ J[J["C"] = 3] = "C"; ++})(J || (exports.J = J = {})); + var K; + (function (K) { + K[K["None"] = 0] = "None"; +@@= skipped -8, +14 lines =@@ + K[K["C"] = 4] = "C"; + K[K["Mask"] = 7] = "Mask"; + })(K || (exports.K = K = {})); ++var L; ++(function (L) { ++ L[L["None"] = 0] = "None"; ++ L[L["A"] = 1] = "A"; ++ L[L["B"] = 2] = "B"; ++ L[L["C"] = 4] = "C"; ++ L[L["Mask"] = 7] = "Mask"; ++})(L || (exports.L = L = {})); + + + //// [index.d.ts] +-export enum A { ++// Pretty much all of this should be an error, (since enums are forbidden in js), ++// but we should be able to synthesize declarations from the symbols regardless ++export declare enum A { + } +-export enum B { ++export declare enum B { + Member = 0 + } +-export enum E { +-} +-export enum F { +-} +-export enum G { ++declare enum C { ++} ++export { C }; ++declare enum DD { ++} ++export { DD as D }; ++export declare enum E { ++} ++export { E as EE }; ++export { F as FF }; ++export declare enum F { ++} ++export declare enum G { + A = 1, + B = 2, + C = 3 + } +-export enum H { ++export declare enum H { + A = "a", + B = "b" + } +-export enum I { ++export declare enum I { + A = "a", + B = 0, + C = 1 + } +-export const enum J { ++export declare const enum J { + A = 1, + B = 2, + C = 3 + } +-export enum K { +- None = 0, +- A = 1, +- B = 2, +- C = 4, +- Mask = 7 +-} +-export const enum L { +- None = 0, +- A = 1, +- B = 2, +- C = 4, +- Mask = 7 +-} +-export enum C { +-} +-declare enum DD { +-} +-export { DD as D, E as EE, F as FF }; ++export declare enum K { ++ None = 0, ++ A = 1, ++ B = 2, ++ C = 4, ++ Mask = 7 ++} ++export declare const enum L { ++ None = 0, ++ A = 1, ++ B = 2, ++ C = 4, ++ Mask = 7 ++} \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportAssignedClassExpression.js b/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportAssignedClassExpression.js new file mode 100644 index 0000000000..57400ad02e --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportAssignedClassExpression.js @@ -0,0 +1,44 @@ +//// [tests/cases/conformance/jsdoc/declarations/jsDeclarationsExportAssignedClassExpression.ts] //// + +//// [index.js] +module.exports = class Thing { + /** + * @param {number} p + */ + constructor(p) { + this.t = 12 + p; + } +} + +//// [index.js] +module.exports = class Thing { + /** + * @param {number} p + */ + constructor(p) { + this.t = 12 + p; + } +}; + + +//// [index.d.ts] +declare const _default: { + new (p: number): import("."); +}; +export = _default; + + +//// [DtsFileErrors] + + +out/index.d.ts(2,22): error TS1340: Module '.' does not refer to a type, but is used as a type here. Did you mean 'typeof import('.')'? + + +==== out/index.d.ts (1 errors) ==== + declare const _default: { + new (p: number): import("."); + ~~~~~~~~~~~ +!!! error TS1340: Module '.' does not refer to a type, but is used as a type here. Did you mean 'typeof import('.')'? + }; + export = _default; + \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportAssignedClassExpression.js.diff b/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportAssignedClassExpression.js.diff new file mode 100644 index 0000000000..d30ea0a4a7 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportAssignedClassExpression.js.diff @@ -0,0 +1,34 @@ +--- old.jsDeclarationsExportAssignedClassExpression.js ++++ new.jsDeclarationsExportAssignedClassExpression.js +@@= skipped -21, +21 lines =@@ + + + //// [index.d.ts] +-export = Thing; +-declare class Thing { +- /** +- * @param {number} p +- */ +- constructor(p: number); +- t: number; +-} ++declare const _default: { ++ new (p: number): import("."); ++}; ++export = _default; ++ ++ ++//// [DtsFileErrors] ++ ++ ++out/index.d.ts(2,22): error TS1340: Module '.' does not refer to a type, but is used as a type here. Did you mean 'typeof import('.')'? ++ ++ ++==== out/index.d.ts (1 errors) ==== ++ declare const _default: { ++ new (p: number): import("."); ++ ~~~~~~~~~~~ ++!!! error TS1340: Module '.' does not refer to a type, but is used as a type here. Did you mean 'typeof import('.')'? ++ }; ++ export = _default; ++ \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportAssignedClassExpressionAnonymous.js b/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportAssignedClassExpressionAnonymous.js new file mode 100644 index 0000000000..b6ac685f16 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportAssignedClassExpressionAnonymous.js @@ -0,0 +1,44 @@ +//// [tests/cases/conformance/jsdoc/declarations/jsDeclarationsExportAssignedClassExpressionAnonymous.ts] //// + +//// [index.js] +module.exports = class { + /** + * @param {number} p + */ + constructor(p) { + this.t = 12 + p; + } +} + +//// [index.js] +module.exports = class { + /** + * @param {number} p + */ + constructor(p) { + this.t = 12 + p; + } +}; + + +//// [index.d.ts] +declare const _default: { + new (p: number): import("."); +}; +export = _default; + + +//// [DtsFileErrors] + + +out/index.d.ts(2,22): error TS1340: Module '.' does not refer to a type, but is used as a type here. Did you mean 'typeof import('.')'? + + +==== out/index.d.ts (1 errors) ==== + declare const _default: { + new (p: number): import("."); + ~~~~~~~~~~~ +!!! error TS1340: Module '.' does not refer to a type, but is used as a type here. Did you mean 'typeof import('.')'? + }; + export = _default; + \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportAssignedClassExpressionAnonymous.js.diff b/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportAssignedClassExpressionAnonymous.js.diff new file mode 100644 index 0000000000..e6561361bb --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportAssignedClassExpressionAnonymous.js.diff @@ -0,0 +1,34 @@ +--- old.jsDeclarationsExportAssignedClassExpressionAnonymous.js ++++ new.jsDeclarationsExportAssignedClassExpressionAnonymous.js +@@= skipped -21, +21 lines =@@ + + + //// [index.d.ts] +-export = exports; +-declare class exports { +- /** +- * @param {number} p +- */ +- constructor(p: number); +- t: number; +-} ++declare const _default: { ++ new (p: number): import("."); ++}; ++export = _default; ++ ++ ++//// [DtsFileErrors] ++ ++ ++out/index.d.ts(2,22): error TS1340: Module '.' does not refer to a type, but is used as a type here. Did you mean 'typeof import('.')'? ++ ++ ++==== out/index.d.ts (1 errors) ==== ++ declare const _default: { ++ new (p: number): import("."); ++ ~~~~~~~~~~~ ++!!! error TS1340: Module '.' does not refer to a type, but is used as a type here. Did you mean 'typeof import('.')'? ++ }; ++ export = _default; ++ \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportAssignedClassExpressionAnonymousWithSub.js b/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportAssignedClassExpressionAnonymousWithSub.js new file mode 100644 index 0000000000..72dbfb79c7 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportAssignedClassExpressionAnonymousWithSub.js @@ -0,0 +1,49 @@ +//// [tests/cases/conformance/jsdoc/declarations/jsDeclarationsExportAssignedClassExpressionAnonymousWithSub.ts] //// + +//// [index.js] +module.exports = class { + /** + * @param {number} p + */ + constructor(p) { + this.t = 12 + p; + } +} +module.exports.Sub = class { + constructor() { + this.instance = new module.exports(10); + } +} + + +//// [index.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +module.exports = class { + /** + * @param {number} p + */ + constructor(p) { + this.t = 12 + p; + } +}; +export var Sub = class { + constructor() { + this.instance = new module.exports(10); + } +}; +module.exports.Sub = class { + constructor() { + this.instance = new module.exports(10); + } +}; + + +//// [index.d.ts] +declare const _default: { + new (p: number): import("."); +}; +export = _default; +export var Sub = class { + constructor(); +}; diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportAssignedClassExpressionAnonymousWithSub.js.diff b/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportAssignedClassExpressionAnonymousWithSub.js.diff new file mode 100644 index 0000000000..0ca2a3e82f --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportAssignedClassExpressionAnonymousWithSub.js.diff @@ -0,0 +1,48 @@ +--- old.jsDeclarationsExportAssignedClassExpressionAnonymousWithSub.js ++++ new.jsDeclarationsExportAssignedClassExpressionAnonymousWithSub.js +@@= skipped -16, +16 lines =@@ + + + //// [index.js] ++"use strict"; ++Object.defineProperty(exports, "__esModule", { value: true }); + module.exports = class { + /** + * @param {number} p +@@= skipped -8, +10 lines =@@ + this.t = 12 + p; + } + }; ++export var Sub = class { ++ constructor() { ++ this.instance = new module.exports(10); ++ } ++}; + module.exports.Sub = class { + constructor() { + this.instance = new module.exports(10); +@@= skipped -8, +13 lines =@@ + + + //// [index.d.ts] +-export = exports; +-declare class exports { +- /** +- * @param {number} p +- */ +- constructor(p: number); +- t: number; +-} +-declare namespace exports { +- export { Sub }; +-} +-declare class Sub { +- instance: import("."); +-} ++declare const _default: { ++ new (p: number): import("."); ++}; ++export = _default; ++export var Sub = class { ++ constructor(); ++}; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportAssignedClassExpressionShadowing.js b/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportAssignedClassExpressionShadowing.js new file mode 100644 index 0000000000..7e5016e232 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportAssignedClassExpressionShadowing.js @@ -0,0 +1,46 @@ +//// [tests/cases/conformance/jsdoc/declarations/jsDeclarationsExportAssignedClassExpressionShadowing.ts] //// + +//// [index.js] +class A { + member = new Q(); +} +class Q { + x = 42; +} +module.exports = class Q { + constructor() { + this.x = new A(); + } +} +module.exports.Another = Q; + + +//// [index.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +class A { + member = new Q(); +} +class Q { + x = 42; +} +export = class Q { + constructor() { + this.x = new A(); + } +}; +module.exports = class Q { + constructor() { + this.x = new A(); + } +}; +export var Another = Q; +module.exports.Another = Q; + + +//// [index.d.ts] +declare const _default: { + new (): import("."); +}; +export = _default; +export var Another = Q; diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportAssignedClassExpressionShadowing.js.diff b/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportAssignedClassExpressionShadowing.js.diff new file mode 100644 index 0000000000..a571be8c1d --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportAssignedClassExpressionShadowing.js.diff @@ -0,0 +1,52 @@ +--- old.jsDeclarationsExportAssignedClassExpressionShadowing.js ++++ new.jsDeclarationsExportAssignedClassExpressionShadowing.js +@@= skipped -15, +15 lines =@@ + + + //// [index.js] ++"use strict"; ++Object.defineProperty(exports, "__esModule", { value: true }); + class A { +- constructor() { +- this.member = new Q(); +- } ++ member = new Q(); + } + class Q { ++ x = 42; ++} ++export = class Q { + constructor() { +- this.x = 42; ++ this.x = new A(); + } +-} ++}; + module.exports = class Q { + constructor() { + this.x = new A(); + } + }; ++export var Another = Q; + module.exports.Another = Q; + + + //// [index.d.ts] +-export = Q; +-declare class Q { +- x: A; +-} +-declare namespace Q { +- export { Q_1 as Another }; +-} +-declare class A { +- member: Q; +-} +-declare class Q_1 { +- x: number; +-} ++declare const _default: { ++ new (): import("."); ++}; ++export = _default; ++export var Another = Q; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportAssignedClassInstance1.js b/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportAssignedClassInstance1.js new file mode 100644 index 0000000000..fab97e437c --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportAssignedClassInstance1.js @@ -0,0 +1,19 @@ +//// [tests/cases/conformance/jsdoc/declarations/jsDeclarationsExportAssignedClassInstance1.ts] //// + +//// [index.js] +class Foo {} + +module.exports = new Foo(); + +//// [index.js] +class Foo { +} +export = new Foo(); +module.exports = new Foo(); + + +//// [index.d.ts] +declare class Foo { +} +declare const _default: Foo; +export = _default; diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportAssignedClassInstance1.js.diff b/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportAssignedClassInstance1.js.diff new file mode 100644 index 0000000000..c85d6d7904 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportAssignedClassInstance1.js.diff @@ -0,0 +1,17 @@ +--- old.jsDeclarationsExportAssignedClassInstance1.js ++++ new.jsDeclarationsExportAssignedClassInstance1.js +@@= skipped -7, +7 lines =@@ + //// [index.js] + class Foo { + } ++export = new Foo(); + module.exports = new Foo(); + + + //// [index.d.ts] +-declare const _exports: Foo; +-export = _exports; + declare class Foo { + } ++declare const _default: Foo; ++export = _default; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportAssignedClassInstance2.js b/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportAssignedClassInstance2.js new file mode 100644 index 0000000000..1ca4b06ac8 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportAssignedClassInstance2.js @@ -0,0 +1,26 @@ +//// [tests/cases/conformance/jsdoc/declarations/jsDeclarationsExportAssignedClassInstance2.ts] //// + +//// [index.js] +class Foo { + static stat = 10; + member = 10; +} + +module.exports = new Foo(); + +//// [index.js] +class Foo { + static stat = 10; + member = 10; +} +export = new Foo(); +module.exports = new Foo(); + + +//// [index.d.ts] +declare class Foo { + static stat: number; + member: number; +} +declare const _default: Foo; +export = _default; diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportAssignedClassInstance2.js.diff b/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportAssignedClassInstance2.js.diff new file mode 100644 index 0000000000..820bff473d --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportAssignedClassInstance2.js.diff @@ -0,0 +1,32 @@ +--- old.jsDeclarationsExportAssignedClassInstance2.js ++++ new.jsDeclarationsExportAssignedClassInstance2.js +@@= skipped -8, +8 lines =@@ + module.exports = new Foo(); + + //// [index.js] +-let Foo = (() => { +- class Foo { +- constructor() { +- this.member = 10; +- } +- } +- Foo.stat = 10; +- return Foo; +-})(); ++class Foo { ++ static stat = 10; ++ member = 10; ++} ++export = new Foo(); + module.exports = new Foo(); + + + //// [index.d.ts] +-declare const _exports: Foo; +-export = _exports; + declare class Foo { + static stat: number; + member: number; + } ++declare const _default: Foo; ++export = _default; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportAssignedClassInstance3.js b/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportAssignedClassInstance3.js new file mode 100644 index 0000000000..b0cf369223 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportAssignedClassInstance3.js @@ -0,0 +1,33 @@ +//// [tests/cases/conformance/jsdoc/declarations/jsDeclarationsExportAssignedClassInstance3.ts] //// + +//// [index.js] +class Foo { + static stat = 10; + member = 10; +} + +module.exports = new Foo(); + +module.exports.additional = 20; + +//// [index.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +class Foo { + static stat = 10; + member = 10; +} +export = new Foo(); +module.exports = new Foo(); +export var additional = 20; +module.exports.additional = 20; + + +//// [index.d.ts] +declare class Foo { + static stat: number; + member: number; +} +declare const _default: Foo; +export = _default; +export var additional = 20; diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportAssignedClassInstance3.js.diff b/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportAssignedClassInstance3.js.diff new file mode 100644 index 0000000000..b674f89330 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportAssignedClassInstance3.js.diff @@ -0,0 +1,37 @@ +--- old.jsDeclarationsExportAssignedClassInstance3.js ++++ new.jsDeclarationsExportAssignedClassInstance3.js +@@= skipped -10, +10 lines =@@ + module.exports.additional = 20; + + //// [index.js] +-let Foo = (() => { +- class Foo { +- constructor() { +- this.member = 10; +- } +- } +- Foo.stat = 10; +- return Foo; +-})(); ++"use strict"; ++Object.defineProperty(exports, "__esModule", { value: true }); ++class Foo { ++ static stat = 10; ++ member = 10; ++} ++export = new Foo(); + module.exports = new Foo(); ++export var additional = 20; + module.exports.additional = 20; + + + //// [index.d.ts] +-export let member: number; +-export let additional: 20; ++declare class Foo { ++ static stat: number; ++ member: number; ++} ++declare const _default: Foo; ++export = _default; ++export var additional = 20; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportAssignedConstructorFunction.js b/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportAssignedConstructorFunction.js new file mode 100644 index 0000000000..f73905bca5 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportAssignedConstructorFunction.js @@ -0,0 +1,49 @@ +//// [tests/cases/conformance/jsdoc/declarations/jsDeclarationsExportAssignedConstructorFunction.ts] //// + +//// [jsDeclarationsExportAssignedConstructorFunction.js] +/** @constructor */ +module.exports.MyClass = function() { + this.x = 1 +} +module.exports.MyClass.prototype = { + a: function() { + } +} + + +//// [jsDeclarationsExportAssignedConstructorFunction.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +/** @constructor */ +export var MyClass = function () { + this.x = 1; +}; +/** @constructor */ +module.exports.MyClass = function () { + this.x = 1; +}; +module.exports.MyClass.prototype = { + a: function () { + } +}; + + +//// [jsDeclarationsExportAssignedConstructorFunction.d.ts] +/** @constructor */ +export var MyClass = function ();; +export {}; + + +//// [DtsFileErrors] + + +out/jsDeclarationsExportAssignedConstructorFunction.d.ts(2,33): error TS1005: '{' expected. + + +==== out/jsDeclarationsExportAssignedConstructorFunction.d.ts (1 errors) ==== + /** @constructor */ + export var MyClass = function ();; + ~ +!!! error TS1005: '{' expected. + export {}; + \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportAssignedConstructorFunction.js.diff b/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportAssignedConstructorFunction.js.diff new file mode 100644 index 0000000000..089c0e854d --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportAssignedConstructorFunction.js.diff @@ -0,0 +1,40 @@ +--- old.jsDeclarationsExportAssignedConstructorFunction.js ++++ new.jsDeclarationsExportAssignedConstructorFunction.js +@@= skipped -11, +11 lines =@@ + + + //// [jsDeclarationsExportAssignedConstructorFunction.js] ++"use strict"; ++Object.defineProperty(exports, "__esModule", { value: true }); ++/** @constructor */ ++export var MyClass = function () { ++ this.x = 1; ++}; + /** @constructor */ + module.exports.MyClass = function () { + this.x = 1; +@@= skipped -11, +17 lines =@@ + + + //// [jsDeclarationsExportAssignedConstructorFunction.d.ts] +-export class MyClass { +- a: () => void; +-} ++/** @constructor */ ++export var MyClass = function ();; ++export {}; ++ ++ ++//// [DtsFileErrors] ++ ++ ++out/jsDeclarationsExportAssignedConstructorFunction.d.ts(2,33): error TS1005: '{' expected. ++ ++ ++==== out/jsDeclarationsExportAssignedConstructorFunction.d.ts (1 errors) ==== ++ /** @constructor */ ++ export var MyClass = function ();; ++ ~ ++!!! error TS1005: '{' expected. ++ export {}; ++ \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportAssignedConstructorFunctionWithSub.js b/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportAssignedConstructorFunctionWithSub.js new file mode 100644 index 0000000000..f1fcca9856 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportAssignedConstructorFunctionWithSub.js @@ -0,0 +1,43 @@ +//// [tests/cases/conformance/jsdoc/declarations/jsDeclarationsExportAssignedConstructorFunctionWithSub.ts] //// + +//// [jsDeclarationsExportAssignedConstructorFunctionWithSub.js] +/** + * @param {number} p + */ +module.exports = function (p) { + this.t = 12 + p; +} +module.exports.Sub = function() { + this.instance = new module.exports(10); +} +module.exports.Sub.prototype = { } + + +//// [jsDeclarationsExportAssignedConstructorFunctionWithSub.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +/** + * @param {number} p + */ +export = function (p) { + this.t = 12 + p; +}; +/** + * @param {number} p + */ +module.exports = function (p) { + this.t = 12 + p; +}; +export var Sub = function () { + this.instance = new module.exports(10); +}; +module.exports.Sub = function () { + this.instance = new module.exports(10); +}; +module.exports.Sub.prototype = {}; + + +//// [jsDeclarationsExportAssignedConstructorFunctionWithSub.d.ts] +declare const _default: (p: any) => void; +export = _default; +export var Sub = function ();; diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportAssignedConstructorFunctionWithSub.js.diff b/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportAssignedConstructorFunctionWithSub.js.diff new file mode 100644 index 0000000000..8724348065 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportAssignedConstructorFunctionWithSub.js.diff @@ -0,0 +1,33 @@ +--- old.jsDeclarationsExportAssignedConstructorFunctionWithSub.js ++++ new.jsDeclarationsExportAssignedConstructorFunctionWithSub.js +@@= skipped -13, +13 lines =@@ + + + //// [jsDeclarationsExportAssignedConstructorFunctionWithSub.js] ++"use strict"; ++Object.defineProperty(exports, "__esModule", { value: true }); ++/** ++ * @param {number} p ++ */ ++export = function (p) { ++ this.t = 12 + p; ++}; + /** + * @param {number} p + */ + module.exports = function (p) { + this.t = 12 + p; + }; ++export var Sub = function () { ++ this.instance = new module.exports(10); ++}; + module.exports.Sub = function () { + this.instance = new module.exports(10); + }; + module.exports.Sub.prototype = {}; ++ ++ ++//// [jsDeclarationsExportAssignedConstructorFunctionWithSub.d.ts] ++declare const _default: (p: any) => void; ++export = _default; ++export var Sub = function ();; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportAssignedVisibility.js b/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportAssignedVisibility.js new file mode 100644 index 0000000000..6ea1fe5f06 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportAssignedVisibility.js @@ -0,0 +1,67 @@ +//// [tests/cases/conformance/jsdoc/declarations/jsDeclarationsExportAssignedVisibility.ts] //// + +//// [obj.js] +module.exports = class Obj { + constructor() { + this.x = 12; + } +} +//// [index.js] +const Obj = require("./obj"); + +class Container { + constructor() { + this.usage = new Obj(); + } +} + +module.exports = Container; + +//// [obj.js] +export = class Obj { + constructor() { + this.x = 12; + } +}; +module.exports = class Obj { + constructor() { + this.x = 12; + } +}; +//// [index.js] +const Obj = require("./obj"); +class Container { + constructor() { + this.usage = new Obj(); + } +} +export = Container; +module.exports = Container; + + +//// [obj.d.ts] +declare const _default: { + new (): import("./obj"); +}; +export = _default; +//// [index.d.ts] +export = Container; + + +//// [DtsFileErrors] + + +out/index.d.ts(1,10): error TS2304: Cannot find name 'Container'. + + +==== out/index.d.ts (1 errors) ==== + export = Container; + ~~~~~~~~~ +!!! error TS2304: Cannot find name 'Container'. + +==== out/obj.d.ts (0 errors) ==== + declare const _default: { + new (): import("./obj"); + }; + export = _default; + \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportAssignedVisibility.js.diff b/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportAssignedVisibility.js.diff new file mode 100644 index 0000000000..9deb7e4f9c --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportAssignedVisibility.js.diff @@ -0,0 +1,56 @@ +--- old.jsDeclarationsExportAssignedVisibility.js ++++ new.jsDeclarationsExportAssignedVisibility.js +@@= skipped -17, +17 lines =@@ + module.exports = Container; + + //// [obj.js] ++export = class Obj { ++ constructor() { ++ this.x = 12; ++ } ++}; + module.exports = class Obj { + constructor() { + this.x = 12; +@@= skipped -12, +17 lines =@@ + this.usage = new Obj(); + } + } ++export = Container; + module.exports = Container; + + + //// [obj.d.ts] +-export = Obj; +-declare class Obj { +- x: number; +-} ++declare const _default: { ++ new (): import("./obj"); ++}; ++export = _default; + //// [index.d.ts] + export = Container; +-declare class Container { +- usage: Obj; +-} +-import Obj = require("./obj"); ++ ++ ++//// [DtsFileErrors] ++ ++ ++out/index.d.ts(1,10): error TS2304: Cannot find name 'Container'. ++ ++ ++==== out/index.d.ts (1 errors) ==== ++ export = Container; ++ ~~~~~~~~~ ++!!! error TS2304: Cannot find name 'Container'. ++ ++==== out/obj.d.ts (0 errors) ==== ++ declare const _default: { ++ new (): import("./obj"); ++ }; ++ export = _default; ++ \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportAssignmentExpressionPlusSecondary.js b/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportAssignmentExpressionPlusSecondary.js new file mode 100644 index 0000000000..1fafdc93b4 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportAssignmentExpressionPlusSecondary.js @@ -0,0 +1,52 @@ +//// [tests/cases/conformance/jsdoc/declarations/jsDeclarationsExportAssignmentExpressionPlusSecondary.ts] //// + +//// [index.js] +const Strings = { + a: "A", + b: "B" +}; +module.exports = { + thing: "ok", + also: "ok", + desc: { + item: "ok" + } +}; +module.exports.Strings = Strings; + + +//// [index.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const Strings = { + a: "A", + b: "B" +}; +export = { + thing: "ok", + also: "ok", + desc: { + item: "ok" + } +}; +module.exports = { + thing: "ok", + also: "ok", + desc: { + item: "ok" + } +}; +export var Strings = Strings; +module.exports.Strings = Strings; + + +//// [index.d.ts] +declare const _default: { + thing: string; + also: string; + desc: { + item: string; + }; +}; +export = _default; +export var Strings = Strings; diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportAssignmentExpressionPlusSecondary.js.diff b/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportAssignmentExpressionPlusSecondary.js.diff new file mode 100644 index 0000000000..65c013a360 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportAssignmentExpressionPlusSecondary.js.diff @@ -0,0 +1,49 @@ +--- old.jsDeclarationsExportAssignmentExpressionPlusSecondary.js ++++ new.jsDeclarationsExportAssignmentExpressionPlusSecondary.js +@@= skipped -15, +15 lines =@@ + + + //// [index.js] ++"use strict"; ++Object.defineProperty(exports, "__esModule", { value: true }); + const Strings = { + a: "A", + b: "B" + }; ++export = { ++ thing: "ok", ++ also: "ok", ++ desc: { ++ item: "ok" ++ } ++}; + module.exports = { + thing: "ok", + also: "ok", +@@= skipped -11, +20 lines =@@ + item: "ok" + } + }; ++export var Strings = Strings; + module.exports.Strings = Strings; + + + //// [index.d.ts] +-export namespace Strings { +- let a: string; +- let b: string; +-} +-export declare let thing: string; +-export declare let also: string; +-export declare namespace desc { +- let item: string; +-} ++declare const _default: { ++ thing: string; ++ also: string; ++ desc: { ++ item: string; ++ }; ++}; ++export = _default; ++export var Strings = Strings; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportAssignmentWithKeywordName.js b/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportAssignmentWithKeywordName.js new file mode 100644 index 0000000000..aa3e8fc3e1 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportAssignmentWithKeywordName.js @@ -0,0 +1,32 @@ +//// [tests/cases/conformance/jsdoc/declarations/jsDeclarationsExportAssignmentWithKeywordName.ts] //// + +//// [index.js] +var x = 12; +module.exports = { + extends: 'base', + more: { + others: ['strs'] + }, + x +}; + +//// [index.js] +var x = 12; +module.exports = { + extends: 'base', + more: { + others: ['strs'] + }, + x +}; + + +//// [index.d.ts] +declare const _default: { + extends: string; + more: { + others: string[]; + }; + x: number; +}; +export = _default; diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportAssignmentWithKeywordName.js.diff b/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportAssignmentWithKeywordName.js.diff new file mode 100644 index 0000000000..62756a37f2 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportAssignmentWithKeywordName.js.diff @@ -0,0 +1,20 @@ +--- old.jsDeclarationsExportAssignmentWithKeywordName.js ++++ new.jsDeclarationsExportAssignmentWithKeywordName.js +@@= skipped -21, +21 lines =@@ + + + //// [index.d.ts] +-export var x: number; +-declare let _extends: string; +-export declare namespace more { +- let others: string[]; +-} +-export { _extends as extends }; ++declare const _default: { ++ extends: string; ++ more: { ++ others: string[]; ++ }; ++ x: number; ++}; ++export = _default; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportDefinePropertyEmit.js b/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportDefinePropertyEmit.js new file mode 100644 index 0000000000..1246defe14 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportDefinePropertyEmit.js @@ -0,0 +1,151 @@ +//// [tests/cases/conformance/jsdoc/declarations/jsDeclarationsExportDefinePropertyEmit.ts] //// + +//// [index.js] +Object.defineProperty(module.exports, "a", { value: function a() {} }); + +Object.defineProperty(module.exports, "b", { value: function b() {} }); +Object.defineProperty(module.exports.b, "cat", { value: "cat" }); + +/** + * @param {number} a + * @param {number} b + * @return {string} + */ +function d(a, b) { return /** @type {*} */(null); } +Object.defineProperty(module.exports, "d", { value: d }); + + +/** + * @template T,U + * @param {T} a + * @param {U} b + * @return {T & U} + */ +function e(a, b) { return /** @type {*} */(null); } +Object.defineProperty(module.exports, "e", { value: e }); + +/** + * @template T + * @param {T} a + */ +function f(a) { + return a; +} +Object.defineProperty(module.exports, "f", { value: f }); +Object.defineProperty(module.exports.f, "self", { value: module.exports.f }); + +/** + * @param {{x: string}} a + * @param {{y: typeof module.exports.b}} b + */ +function g(a, b) { + return a.x && b.y(); +} +Object.defineProperty(module.exports, "g", { value: g }); + + +/** + * @param {{x: string}} a + * @param {{y: typeof module.exports.b}} b + */ +function hh(a, b) { + return a.x && b.y(); +} +Object.defineProperty(module.exports, "h", { value: hh }); + +Object.defineProperty(module.exports, "i", { value: function i(){} }); +Object.defineProperty(module.exports, "ii", { value: module.exports.i }); + +// note that this last one doesn't make much sense in cjs, since exports aren't hoisted bindings +Object.defineProperty(module.exports, "jj", { value: module.exports.j }); +Object.defineProperty(module.exports, "j", { value: function j() {} }); + + +//// [index.js] +Object.defineProperty(module.exports, "a", { value: function a() { } }); +Object.defineProperty(module.exports, "b", { value: function b() { } }); +Object.defineProperty(module.exports.b, "cat", { value: "cat" }); +/** + * @param {number} a + * @param {number} b + * @return {string} + */ +function d(a, b) { return /** @type {*} */ null; } +Object.defineProperty(module.exports, "d", { value: d }); +/** + * @template T,U + * @param {T} a + * @param {U} b + * @return {T & U} + */ +function e(a, b) { return /** @type {*} */ null; } +Object.defineProperty(module.exports, "e", { value: e }); +/** + * @template T + * @param {T} a + */ +function f(a) { + return a; +} +Object.defineProperty(module.exports, "f", { value: f }); +Object.defineProperty(module.exports.f, "self", { value: module.exports.f }); +/** + * @param {{x: string}} a + * @param {{y: typeof module.exports.b}} b + */ +function g(a, b) { + return a.x && b.y(); +} +Object.defineProperty(module.exports, "g", { value: g }); +/** + * @param {{x: string}} a + * @param {{y: typeof module.exports.b}} b + */ +function hh(a, b) { + return a.x && b.y(); +} +Object.defineProperty(module.exports, "h", { value: hh }); +Object.defineProperty(module.exports, "i", { value: function i() { } }); +Object.defineProperty(module.exports, "ii", { value: module.exports.i }); +// note that this last one doesn't make much sense in cjs, since exports aren't hoisted bindings +Object.defineProperty(module.exports, "jj", { value: module.exports.j }); +Object.defineProperty(module.exports, "j", { value: function j() { } }); + + +//// [index.d.ts] +/** + * @param {number} a + * @param {number} b + * @return {string} + */ +declare function d(a: number, b: number): string; +/** + * @template T,U + * @param {T} a + * @param {U} b + * @return {T & U} + */ +declare function e(a: T, b: U): T & U; +/** + * @template T + * @param {T} a + */ +declare function f(a: T): T; +/** + * @param {{x: string}} a + * @param {{y: typeof module.exports.b}} b + */ +declare function g(a: { + x: string; +}, b: { + y: typeof module.exports.b; +}): any; +/** + * @param {{x: string}} a + * @param {{y: typeof module.exports.b}} b + */ +declare function hh(a: { + x: string; +}, b: { + y: typeof module.exports.b; +}): any; diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportDefinePropertyEmit.js.diff b/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportDefinePropertyEmit.js.diff new file mode 100644 index 0000000000..5c76342990 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportDefinePropertyEmit.js.diff @@ -0,0 +1,97 @@ +--- old.jsDeclarationsExportDefinePropertyEmit.js ++++ new.jsDeclarationsExportDefinePropertyEmit.js +@@= skipped -69, +69 lines =@@ + * @param {number} b + * @return {string} + */ +-function d(a, b) { return /** @type {*} */ (null); } ++function d(a, b) { return /** @type {*} */ null; } + Object.defineProperty(module.exports, "d", { value: d }); + /** + * @template T,U +@@= skipped -8, +8 lines =@@ + * @param {U} b + * @return {T & U} + */ +-function e(a, b) { return /** @type {*} */ (null); } ++function e(a, b) { return /** @type {*} */ null; } + Object.defineProperty(module.exports, "e", { value: e }); + /** + * @template T +@@= skipped -35, +35 lines =@@ + + + //// [index.d.ts] +-export function a(): void; +-export function b(): void; +-export namespace b { +- let cat: string; +-} + /** + * @param {number} a + * @param {number} b + * @return {string} + */ +-export function d(a: number, b: number): string; ++declare function d(a: number, b: number): string; + /** + * @template T,U + * @param {T} a + * @param {U} b + * @return {T & U} + */ +-export function e(a: T, b: U): T & U; ++declare function e(a: T, b: U): T & U; + /** + * @template T + * @param {T} a + */ +-export function f(a: T): T; +-export namespace f { +- /** +- * @template T +- * @param {T} a +- */ +- function self(a: T): T; +-} +-/** +- * @param {{x: string}} a +- * @param {{y: typeof module.exports.b}} b +- */ +-export function g(a: { +- x: string; +-}, b: { +- y: () => void; +-}): void; +-/** +- * @param {{x: string}} a +- * @param {{y: typeof module.exports.b}} b +- */ +-export function h(a: { +- x: string; +-}, b: { +- y: () => void; +-}): void; +-export function i(): void; +-export function ii(): void; +-export function jj(): void; +-export function j(): void; ++declare function f(a: T): T; ++/** ++ * @param {{x: string}} a ++ * @param {{y: typeof module.exports.b}} b ++ */ ++declare function g(a: { ++ x: string; ++}, b: { ++ y: typeof module.exports.b; ++}): any; ++/** ++ * @param {{x: string}} a ++ * @param {{y: typeof module.exports.b}} b ++ */ ++declare function hh(a: { ++ x: string; ++}, b: { ++ y: typeof module.exports.b; ++}): any; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportDoubleAssignmentInClosure.js b/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportDoubleAssignmentInClosure.js new file mode 100644 index 0000000000..1b4f947e51 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportDoubleAssignmentInClosure.js @@ -0,0 +1,34 @@ +//// [tests/cases/conformance/jsdoc/declarations/jsDeclarationsExportDoubleAssignmentInClosure.ts] //// + +//// [index.js] +// @ts-nocheck +function foo() { + module.exports = exports = function (o) { + return (o == null) ? create(base) : defineProperties(Object(o), descriptors); + }; + const m = function () { + // I have no idea what to put here + } + exports.methods = m; +} + + +//// [index.js] +// @ts-nocheck +function foo() { + export = exports = function (o) { + return (o == null) ? create(base) : defineProperties(Object(o), descriptors); + }; + module.exports = exports = function (o) { + return (o == null) ? create(base) : defineProperties(Object(o), descriptors); + }; + const m = function () { + // I have no idea what to put here + }; + export var methods = m; + exports.methods = m; +} + + +//// [index.d.ts] +export {}; diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportDoubleAssignmentInClosure.js.diff b/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportDoubleAssignmentInClosure.js.diff new file mode 100644 index 0000000000..795f37ba62 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportDoubleAssignmentInClosure.js.diff @@ -0,0 +1,28 @@ +--- old.jsDeclarationsExportDoubleAssignmentInClosure.js ++++ new.jsDeclarationsExportDoubleAssignmentInClosure.js +@@= skipped -15, +15 lines =@@ + //// [index.js] + // @ts-nocheck + function foo() { ++ export = exports = function (o) { ++ return (o == null) ? create(base) : defineProperties(Object(o), descriptors); ++ }; + module.exports = exports = function (o) { + return (o == null) ? create(base) : defineProperties(Object(o), descriptors); + }; + const m = function () { + // I have no idea what to put here + }; ++ export var methods = m; + exports.methods = m; + } + + + //// [index.d.ts] +-declare function _exports(o: any): any; +-declare namespace _exports { +- export { m as methods }; +-} +-export = _exports; +-declare function m(): void; ++export {}; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportForms.js b/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportForms.js new file mode 100644 index 0000000000..58e1e4b0ff --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportForms.js @@ -0,0 +1,295 @@ +//// [tests/cases/conformance/jsdoc/declarations/jsDeclarationsExportForms.ts] //// + +//// [cls.js] +export class Foo {} + +//// [func.js] +export function func() {} + +//// [bar.js] +export * from "./cls"; + +//// [bar2.js] +export * from "./func"; +export * from "./cls"; + +//// [baz.js] +import {Foo} from "./cls"; +export {Foo}; + +//// [bat.js] +import * as ns from "./cls"; +export default ns; + +//// [ban.js] +import * as ns from "./cls"; +export {ns}; + +//// [bol.js] +import * as ns from "./cls"; +export { ns as classContainer }; + +//// [cjs.js] +const ns = require("./cls"); +module.exports = { ns }; + +//// [cjs2.js] +const ns = require("./cls"); +module.exports = ns; + +//// [cjs3.js] +const ns = require("./cls"); +module.exports.ns = ns; + +//// [cjs4.js] +const ns = require("./cls"); +module.exports.names = ns; + +//// [includeAll.js] +import "./cjs4"; +import "./cjs3"; +import "./cjs2"; +import "./cjs"; +import "./bol"; +import "./ban"; +import "./bat"; +import "./baz"; +import "./bar"; +import "./bar2"; + + +//// [cls.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Foo = void 0; +class Foo { +} +exports.Foo = Foo; +//// [func.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.func = func; +function func() { } +//// [bar.js] +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __exportStar = (this && this.__exportStar) || function(m, exports) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +__exportStar(require("./cls"), exports); +//// [bar2.js] +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __exportStar = (this && this.__exportStar) || function(m, exports) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +__exportStar(require("./func"), exports); +__exportStar(require("./cls"), exports); +//// [baz.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Foo = void 0; +const cls_1 = require("./cls"); +Object.defineProperty(exports, "Foo", { enumerable: true, get: function () { return cls_1.Foo; } }); +//// [bat.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const ns = require("./cls"); +exports.default = ns; +//// [ban.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.ns = void 0; +const ns = require("./cls"); +exports.ns = ns; +//// [bol.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.classContainer = void 0; +const ns = require("./cls"); +exports.classContainer = ns; +//// [cjs.js] +const ns = require("./cls"); +module.exports = { ns }; +//// [cjs2.js] +const ns = require("./cls"); +export = ns; +module.exports = ns; +//// [cjs3.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const ns = require("./cls"); +export var ns = ns; +module.exports.ns = ns; +//// [cjs4.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const ns = require("./cls"); +export var names = ns; +module.exports.names = ns; +//// [includeAll.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +require("./cjs4"); +require("./cjs3"); +require("./cjs2"); +require("./cjs"); +require("./bol"); +require("./ban"); +require("./bat"); +require("./baz"); +require("./bar"); +require("./bar2"); + + +//// [cls.d.ts] +export declare class Foo { +} +//// [func.d.ts] +export declare function func(): void; +//// [bar.d.ts] +export * from "./cls"; +//// [bar2.d.ts] +export * from "./func"; +export * from "./cls"; +//// [baz.d.ts] +import { Foo } from "./cls"; +export { Foo }; +//// [bat.d.ts] +import * as ns from "./cls"; +export default ns; +//// [ban.d.ts] +import * as ns from "./cls"; +export { ns }; +//// [bol.d.ts] +import * as ns from "./cls"; +export { ns as classContainer }; +//// [cjs.d.ts] +declare const ns: typeof ns; +declare const _default: { + ns: typeof ns; +}; +export = _default; +//// [cjs2.d.ts] +export = ns; +//// [cjs3.d.ts] +export var ns = ns; +export {}; +//// [cjs4.d.ts] +export var names = ns; +export {}; +//// [includeAll.d.ts] +import "./cjs4"; +import "./cjs3"; +import "./cjs2"; +import "./cjs"; +import "./bol"; +import "./ban"; +import "./bat"; +import "./baz"; +import "./bar"; +import "./bar2"; + + +//// [DtsFileErrors] + + +out/cjs.d.ts(1,15): error TS2502: 'ns' is referenced directly or indirectly in its own type annotation. +out/cjs2.d.ts(1,10): error TS2304: Cannot find name 'ns'. +out/cjs3.d.ts(1,17): error TS1039: Initializers are not allowed in ambient contexts. +out/cjs4.d.ts(1,20): error TS1039: Initializers are not allowed in ambient contexts. +out/cjs4.d.ts(1,20): error TS2304: Cannot find name 'ns'. + + +==== out/cls.d.ts (0 errors) ==== + export declare class Foo { + } + +==== out/func.d.ts (0 errors) ==== + export declare function func(): void; + +==== out/bar.d.ts (0 errors) ==== + export * from "./cls"; + +==== out/bar2.d.ts (0 errors) ==== + export * from "./func"; + export * from "./cls"; + +==== out/baz.d.ts (0 errors) ==== + import { Foo } from "./cls"; + export { Foo }; + +==== out/bat.d.ts (0 errors) ==== + import * as ns from "./cls"; + export default ns; + +==== out/ban.d.ts (0 errors) ==== + import * as ns from "./cls"; + export { ns }; + +==== out/bol.d.ts (0 errors) ==== + import * as ns from "./cls"; + export { ns as classContainer }; + +==== out/cjs.d.ts (1 errors) ==== + declare const ns: typeof ns; + ~~ +!!! error TS2502: 'ns' is referenced directly or indirectly in its own type annotation. + declare const _default: { + ns: typeof ns; + }; + export = _default; + +==== out/cjs2.d.ts (1 errors) ==== + export = ns; + ~~ +!!! error TS2304: Cannot find name 'ns'. + +==== out/cjs3.d.ts (1 errors) ==== + export var ns = ns; + ~~ +!!! error TS1039: Initializers are not allowed in ambient contexts. + export {}; + +==== out/cjs4.d.ts (2 errors) ==== + export var names = ns; + ~~ +!!! error TS1039: Initializers are not allowed in ambient contexts. + ~~ +!!! error TS2304: Cannot find name 'ns'. + export {}; + +==== out/includeAll.d.ts (0 errors) ==== + import "./cjs4"; + import "./cjs3"; + import "./cjs2"; + import "./cjs"; + import "./bol"; + import "./ban"; + import "./bat"; + import "./baz"; + import "./bar"; + import "./bar2"; + \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportForms.js.diff b/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportForms.js.diff new file mode 100644 index 0000000000..0d7c673b3d --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportForms.js.diff @@ -0,0 +1,196 @@ +--- old.jsDeclarationsExportForms.js ++++ new.jsDeclarationsExportForms.js +@@= skipped -110, +110 lines =@@ + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.Foo = void 0; +-var cls_1 = require("./cls"); ++const cls_1 = require("./cls"); + Object.defineProperty(exports, "Foo", { enumerable: true, get: function () { return cls_1.Foo; } }); + //// [bat.js] + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); +-var ns = require("./cls"); ++const ns = require("./cls"); + exports.default = ns; + //// [ban.js] + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.ns = void 0; +-var ns = require("./cls"); ++const ns = require("./cls"); + exports.ns = ns; + //// [bol.js] + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.classContainer = void 0; +-var ns = require("./cls"); ++const ns = require("./cls"); + exports.classContainer = ns; + //// [cjs.js] + const ns = require("./cls"); + module.exports = { ns }; + //// [cjs2.js] + const ns = require("./cls"); ++export = ns; + module.exports = ns; + //// [cjs3.js] ++"use strict"; ++Object.defineProperty(exports, "__esModule", { value: true }); + const ns = require("./cls"); ++export var ns = ns; + module.exports.ns = ns; + //// [cjs4.js] ++"use strict"; ++Object.defineProperty(exports, "__esModule", { value: true }); + const ns = require("./cls"); ++export var names = ns; + module.exports.names = ns; + //// [includeAll.js] + "use strict"; +@@= skipped -47, +54 lines =@@ + + + //// [cls.d.ts] +-export class Foo { ++export declare class Foo { + } + //// [func.d.ts] +-export function func(): void; ++export declare function func(): void; + //// [bar.d.ts] + export * from "./cls"; + //// [bar2.d.ts] + export * from "./func"; + export * from "./cls"; + //// [baz.d.ts] +-export { Foo }; + import { Foo } from "./cls"; ++export { Foo }; + //// [bat.d.ts] ++import * as ns from "./cls"; + export default ns; +-import * as ns from "./cls"; + //// [ban.d.ts] +-export { ns }; + import * as ns from "./cls"; ++export { ns }; + //// [bol.d.ts] ++import * as ns from "./cls"; + export { ns as classContainer }; +-import * as ns from "./cls"; + //// [cjs.d.ts] +-export { ns }; +-import ns = require("./cls"); ++declare const ns: typeof ns; ++declare const _default: { ++ ns: typeof ns; ++}; ++export = _default; + //// [cjs2.d.ts] + export = ns; +-import ns = require("./cls"); + //// [cjs3.d.ts] +-export { ns }; +-import ns = require("./cls"); ++export var ns = ns; ++export {}; + //// [cjs4.d.ts] +-export { ns as names }; +-import ns = require("./cls"); ++export var names = ns; ++export {}; + //// [includeAll.d.ts] +-export {}; ++import "./cjs4"; ++import "./cjs3"; ++import "./cjs2"; ++import "./cjs"; ++import "./bol"; ++import "./ban"; ++import "./bat"; ++import "./baz"; ++import "./bar"; ++import "./bar2"; ++ ++ ++//// [DtsFileErrors] ++ ++ ++out/cjs.d.ts(1,15): error TS2502: 'ns' is referenced directly or indirectly in its own type annotation. ++out/cjs2.d.ts(1,10): error TS2304: Cannot find name 'ns'. ++out/cjs3.d.ts(1,17): error TS1039: Initializers are not allowed in ambient contexts. ++out/cjs4.d.ts(1,20): error TS1039: Initializers are not allowed in ambient contexts. ++out/cjs4.d.ts(1,20): error TS2304: Cannot find name 'ns'. ++ ++ ++==== out/cls.d.ts (0 errors) ==== ++ export declare class Foo { ++ } ++ ++==== out/func.d.ts (0 errors) ==== ++ export declare function func(): void; ++ ++==== out/bar.d.ts (0 errors) ==== ++ export * from "./cls"; ++ ++==== out/bar2.d.ts (0 errors) ==== ++ export * from "./func"; ++ export * from "./cls"; ++ ++==== out/baz.d.ts (0 errors) ==== ++ import { Foo } from "./cls"; ++ export { Foo }; ++ ++==== out/bat.d.ts (0 errors) ==== ++ import * as ns from "./cls"; ++ export default ns; ++ ++==== out/ban.d.ts (0 errors) ==== ++ import * as ns from "./cls"; ++ export { ns }; ++ ++==== out/bol.d.ts (0 errors) ==== ++ import * as ns from "./cls"; ++ export { ns as classContainer }; ++ ++==== out/cjs.d.ts (1 errors) ==== ++ declare const ns: typeof ns; ++ ~~ ++!!! error TS2502: 'ns' is referenced directly or indirectly in its own type annotation. ++ declare const _default: { ++ ns: typeof ns; ++ }; ++ export = _default; ++ ++==== out/cjs2.d.ts (1 errors) ==== ++ export = ns; ++ ~~ ++!!! error TS2304: Cannot find name 'ns'. ++ ++==== out/cjs3.d.ts (1 errors) ==== ++ export var ns = ns; ++ ~~ ++!!! error TS1039: Initializers are not allowed in ambient contexts. ++ export {}; ++ ++==== out/cjs4.d.ts (2 errors) ==== ++ export var names = ns; ++ ~~ ++!!! error TS1039: Initializers are not allowed in ambient contexts. ++ ~~ ++!!! error TS2304: Cannot find name 'ns'. ++ export {}; ++ ++==== out/includeAll.d.ts (0 errors) ==== ++ import "./cjs4"; ++ import "./cjs3"; ++ import "./cjs2"; ++ import "./cjs"; ++ import "./bol"; ++ import "./ban"; ++ import "./bat"; ++ import "./baz"; ++ import "./bar"; ++ import "./bar2"; ++ \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportFormsErr.js b/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportFormsErr.js new file mode 100644 index 0000000000..97faf031bb --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportFormsErr.js @@ -0,0 +1,81 @@ +//// [tests/cases/conformance/jsdoc/declarations/jsDeclarationsExportFormsErr.ts] //// + +//// [cls.js] +export class Foo {} + +//// [bar.js] +import ns = require("./cls"); +export = ns; // TS Only + +//// [bin.js] +import * as ns from "./cls"; +module.exports = ns; // We refuse to bind cjs module exports assignments in the same file we find an import in + +//// [globalNs.js] +export * from "./cls"; +export as namespace GLO; // TS Only + +//// [includeAll.js] +import "./bar"; +import "./bin"; +import "./globalNs"; + + +//// [cls.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Foo = void 0; +class Foo { +} +exports.Foo = Foo; +//// [bar.js] +"use strict"; +const ns = require("./cls"); +module.exports = ns; +//// [bin.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const ns = require("./cls"); +export = ns; +module.exports = ns; // We refuse to bind cjs module exports assignments in the same file we find an import in +//// [globalNs.js] +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __exportStar = (this && this.__exportStar) || function(m, exports) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +__exportStar(require("./cls"), exports); +//// [includeAll.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +require("./bar"); +require("./bin"); +require("./globalNs"); + + +//// [cls.d.ts] +export declare class Foo { +} +//// [bar.d.ts] +import ns = require("./cls"); +export = ns; // TS Only +//// [bin.d.ts] +export = ns; +//// [globalNs.d.ts] +export * from "./cls"; +export as namespace GLO; // TS Only +//// [includeAll.d.ts] +import "./bar"; +import "./bin"; +import "./globalNs"; diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportFormsErr.js.diff b/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportFormsErr.js.diff new file mode 100644 index 0000000000..c704c74489 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportFormsErr.js.diff @@ -0,0 +1,40 @@ +--- old.jsDeclarationsExportFormsErr.js ++++ new.jsDeclarationsExportFormsErr.js +@@= skipped -29, +29 lines =@@ + exports.Foo = Foo; + //// [bar.js] + "use strict"; +-var ns = require("./cls"); ++const ns = require("./cls"); + module.exports = ns; + //// [bin.js] + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); +-var ns = require("./cls"); ++const ns = require("./cls"); ++export = ns; + module.exports = ns; // We refuse to bind cjs module exports assignments in the same file we find an import in + //// [globalNs.js] + "use strict"; +@@= skipped -34, +35 lines =@@ + + + //// [cls.d.ts] +-export class Foo { ++export declare class Foo { + } + //// [bar.d.ts] +-export = ns; + import ns = require("./cls"); ++export = ns; // TS Only + //// [bin.d.ts] +-export {}; ++export = ns; + //// [globalNs.d.ts] + export * from "./cls"; ++export as namespace GLO; // TS Only + //// [includeAll.d.ts] +-export {}; ++import "./bar"; ++import "./bin"; ++import "./globalNs"; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportSpecifierNonlocal.js b/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportSpecifierNonlocal.js new file mode 100644 index 0000000000..60dc433439 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportSpecifierNonlocal.js @@ -0,0 +1,35 @@ +//// [tests/cases/conformance/jsdoc/declarations/jsDeclarationsExportSpecifierNonlocal.ts] //// + +//// [source.js] +export class Thing {} +export class OtherThing {} +//// [index.js] +export { Thing, OtherThing as default } from "./source"; + + +//// [source.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.OtherThing = exports.Thing = void 0; +class Thing { +} +exports.Thing = Thing; +class OtherThing { +} +exports.OtherThing = OtherThing; +//// [index.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = exports.Thing = void 0; +const source_1 = require("./source"); +Object.defineProperty(exports, "Thing", { enumerable: true, get: function () { return source_1.Thing; } }); +Object.defineProperty(exports, "default", { enumerable: true, get: function () { return source_1.OtherThing; } }); + + +//// [source.d.ts] +export declare class Thing { +} +export declare class OtherThing { +} +//// [index.d.ts] +export { Thing, OtherThing as default } from "./source"; diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportSpecifierNonlocal.js.diff b/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportSpecifierNonlocal.js.diff new file mode 100644 index 0000000000..d87917fd2d --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportSpecifierNonlocal.js.diff @@ -0,0 +1,21 @@ +--- old.jsDeclarationsExportSpecifierNonlocal.js ++++ new.jsDeclarationsExportSpecifierNonlocal.js +@@= skipped -20, +20 lines =@@ + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.default = exports.Thing = void 0; +-var source_1 = require("./source"); ++const source_1 = require("./source"); + Object.defineProperty(exports, "Thing", { enumerable: true, get: function () { return source_1.Thing; } }); + Object.defineProperty(exports, "default", { enumerable: true, get: function () { return source_1.OtherThing; } }); + + + //// [source.d.ts] +-export class Thing { ++export declare class Thing { + } +-export class OtherThing { ++export declare class OtherThing { + } + //// [index.d.ts] + export { Thing, OtherThing as default } from "./source"; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportSubAssignments.js b/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportSubAssignments.js new file mode 100644 index 0000000000..0dd0b9d043 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportSubAssignments.js @@ -0,0 +1,29 @@ +//// [tests/cases/conformance/jsdoc/declarations/jsDeclarationsExportSubAssignments.ts] //// + +//// [cls.js] +const Strings = { + a: "A", + b: "B" +}; +class Foo {} +module.exports = Foo; +module.exports.Strings = Strings; + +//// [cls.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const Strings = { + a: "A", + b: "B" +}; +class Foo { +} +export = Foo; +module.exports = Foo; +export var Strings = Strings; +module.exports.Strings = Strings; + + +//// [cls.d.ts] +export = Foo; +export var Strings = Strings; diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportSubAssignments.js.diff b/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportSubAssignments.js.diff new file mode 100644 index 0000000000..94c7fd4dbd --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportSubAssignments.js.diff @@ -0,0 +1,32 @@ +--- old.jsDeclarationsExportSubAssignments.js ++++ new.jsDeclarationsExportSubAssignments.js +@@= skipped -9, +9 lines =@@ + module.exports.Strings = Strings; + + //// [cls.js] ++"use strict"; ++Object.defineProperty(exports, "__esModule", { value: true }); + const Strings = { + a: "A", + b: "B" + }; + class Foo { + } ++export = Foo; + module.exports = Foo; ++export var Strings = Strings; + module.exports.Strings = Strings; + + + //// [cls.d.ts] + export = Foo; +-declare class Foo { +-} +-declare namespace Foo { +- export { Strings }; +-} +-declare namespace Strings { +- let a: string; +- let b: string; +-} ++export var Strings = Strings; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportedClassAliases.js b/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportedClassAliases.js new file mode 100644 index 0000000000..d6a656e739 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportedClassAliases.js @@ -0,0 +1,59 @@ +//// [tests/cases/conformance/jsdoc/declarations/jsDeclarationsExportedClassAliases.ts] //// + +//// [errors.js] +class FancyError extends Error { + constructor(status) { + super(`error with status ${status}`); + } +} + +module.exports = { + FancyError +}; + +//// [index.js] +// issue arises here on compilation +const errors = require("./errors"); + +module.exports = { + errors +}; + +//// [errors.js] +class FancyError extends Error { + constructor(status) { + super(`error with status ${status}`); + } +} +module.exports = { + FancyError +}; +//// [index.js] +// issue arises here on compilation +const errors = require("./errors"); +module.exports = { + errors +}; + + +//// [errors.d.ts] +declare class FancyError extends Error { + constructor(status: any); +} +declare const _default: { + FancyError: typeof FancyError; +}; +export = _default; +//// [index.d.ts] +declare const _default: { + errors: { + FancyError: { + new (status: any): { + name: string; + message: string; + stack?: string; + }; + }; + }; +}; +export = _default; diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportedClassAliases.js.diff b/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportedClassAliases.js.diff new file mode 100644 index 0000000000..e76ad044b3 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportedClassAliases.js.diff @@ -0,0 +1,29 @@ +--- old.jsDeclarationsExportedClassAliases.js ++++ new.jsDeclarationsExportedClassAliases.js +@@= skipped -36, +36 lines =@@ + + + //// [errors.d.ts] +-export class FancyError extends Error { ++declare class FancyError extends Error { + constructor(status: any); + } ++declare const _default: { ++ FancyError: typeof FancyError; ++}; ++export = _default; + //// [index.d.ts] +-export { errors }; +-import errors = require("./errors"); ++declare const _default: { ++ errors: { ++ FancyError: { ++ new (status: any): { ++ name: string; ++ message: string; ++ stack?: string; ++ }; ++ }; ++ }; ++}; ++export = _default; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsFunctionClassesCjsExportAssignment.js b/testdata/baselines/reference/submodule/conformance/jsDeclarationsFunctionClassesCjsExportAssignment.js new file mode 100644 index 0000000000..8038dc5993 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsFunctionClassesCjsExportAssignment.js @@ -0,0 +1,164 @@ +//// [tests/cases/conformance/jsdoc/declarations/jsDeclarationsFunctionClassesCjsExportAssignment.ts] //// + +//// [timer.js] +/** + * @param {number} timeout + */ +function Timer(timeout) { + this.timeout = timeout; +} +module.exports = Timer; +//// [hook.js] +/** + * @typedef {(arg: import("./context")) => void} HookHandler + */ +/** + * @param {HookHandler} handle + */ +function Hook(handle) { + this.handle = handle; +} +module.exports = Hook; + +//// [context.js] +/** + * Imports + * + * @typedef {import("./timer")} Timer + * @typedef {import("./hook")} Hook + * @typedef {import("./hook").HookHandler} HookHandler + */ + +/** + * Input type definition + * + * @typedef {Object} Input + * @prop {Timer} timer + * @prop {Hook} hook + */ + +/** + * State type definition + * + * @typedef {Object} State + * @prop {Timer} timer + * @prop {Hook} hook + */ + +/** + * New `Context` + * + * @class + * @param {Input} input + */ + +function Context(input) { + if (!(this instanceof Context)) { + return new Context(input) + } + this.state = this.construct(input); +} +Context.prototype = { + /** + * @param {Input} input + * @param {HookHandler=} handle + * @returns {State} + */ + construct(input, handle = () => void 0) { + return input; + } +} +module.exports = Context; + + +//// [timer.js] +/** + * @param {number} timeout + */ +function Timer(timeout) { + this.timeout = timeout; +} +export = Timer; +module.exports = Timer; +//// [context.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +/** + * Imports + * + * @typedef {import("./timer")} Timer + * @typedef {import("./hook")} Hook + * @typedef {import("./hook").HookHandler} HookHandler + */ +/** + * Input type definition + * + * @typedef {Object} Input + * @prop {Timer} timer + * @prop {Hook} hook + */ +/** + * State type definition + * + * @typedef {Object} State + * @prop {Timer} timer + * @prop {Hook} hook + */ +/** + * New `Context` + * + * @class + * @param {Input} input + */ +function Context(input) { + if (!(this instanceof Context)) { + return new Context(input); + } + this.state = this.construct(input); +} +Context.prototype = { + /** + * @param {Input} input + * @param {HookHandler=} handle + * @returns {State} + */ + construct(input, handle = () => void 0) { + return input; + } +}; +export = Context; +module.exports = Context; +//// [hook.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +/** + * @typedef {(arg: import("./context")) => void} HookHandler + */ +/** + * @param {HookHandler} handle + */ +function Hook(handle) { + this.handle = handle; +} +export = Hook; +module.exports = Hook; + + +//// [timer.d.ts] +export = Timer; +//// [context.d.ts] +export type Timer = import("./timer"); +export type Hook = import("./hook"); +export type HookHandler = import("./hook").HookHandler; +export type Input = { + timer: Timer; + hook: Hook; +}; +export type State = { + timer: Timer; + hook: Hook; +}; +export = Context; +//// [hook.d.ts] +export type HookHandler = (arg: import("./context")) => void; +export = Hook; diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsFunctionClassesCjsExportAssignment.js.diff b/testdata/baselines/reference/submodule/conformance/jsDeclarationsFunctionClassesCjsExportAssignment.js.diff new file mode 100644 index 0000000000..6f918307d3 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsFunctionClassesCjsExportAssignment.js.diff @@ -0,0 +1,178 @@ +--- old.jsDeclarationsFunctionClassesCjsExportAssignment.js ++++ new.jsDeclarationsFunctionClassesCjsExportAssignment.js +@@= skipped -77, +77 lines =@@ + function Timer(timeout) { + this.timeout = timeout; + } ++export = Timer; + module.exports = Timer; + //// [context.js] ++"use strict"; ++Object.defineProperty(exports, "__esModule", { value: true }); + /** + * Imports + * +@@= skipped -45, +48 lines =@@ + return input; + } + }; ++export = Context; + module.exports = Context; + //// [hook.js] ++"use strict"; ++Object.defineProperty(exports, "__esModule", { value: true }); + /** + * @typedef {(arg: import("./context")) => void} HookHandler + */ +@@= skipped -11, +14 lines =@@ + function Hook(handle) { + this.handle = handle; + } ++export = Hook; + module.exports = Hook; + + + //// [timer.d.ts] + export = Timer; +-/** +- * @param {number} timeout +- */ +-declare function Timer(timeout: number): void; +-declare class Timer { +- /** +- * @param {number} timeout +- */ +- constructor(timeout: number); +- timeout: number; +-} + //// [context.d.ts] ++export type Timer = import("./timer"); ++export type Hook = import("./hook"); ++export type HookHandler = import("./hook").HookHandler; ++export type Input = { ++ timer: Timer; ++ hook: Hook; ++}; ++export type State = { ++ timer: Timer; ++ hook: Hook; ++}; + export = Context; +-/** +- * Imports +- * +- * @typedef {import("./timer")} Timer +- * @typedef {import("./hook")} Hook +- * @typedef {import("./hook").HookHandler} HookHandler +- */ +-/** +- * Input type definition +- * +- * @typedef {Object} Input +- * @prop {Timer} timer +- * @prop {Hook} hook +- */ +-/** +- * State type definition +- * +- * @typedef {Object} State +- * @prop {Timer} timer +- * @prop {Hook} hook +- */ +-/** +- * New `Context` +- * +- * @class +- * @param {Input} input +- */ +-declare function Context(input: Input): Context; +-declare class Context { +- /** +- * Imports +- * +- * @typedef {import("./timer")} Timer +- * @typedef {import("./hook")} Hook +- * @typedef {import("./hook").HookHandler} HookHandler +- */ +- /** +- * Input type definition +- * +- * @typedef {Object} Input +- * @prop {Timer} timer +- * @prop {Hook} hook +- */ +- /** +- * State type definition +- * +- * @typedef {Object} State +- * @prop {Timer} timer +- * @prop {Hook} hook +- */ +- /** +- * New `Context` +- * +- * @class +- * @param {Input} input +- */ +- constructor(input: Input); +- state: any; +- /** +- * @param {Input} input +- * @param {HookHandler=} handle +- * @returns {State} +- */ +- construct(input: Input, handle?: HookHandler | undefined): State; +-} +-declare namespace Context { +- export { Timer, Hook, HookHandler, Input, State }; +-} +-/** +- * Imports +- */ +-type Timer = import("./timer"); +-/** +- * Imports +- */ +-type Hook = import("./hook"); +-/** +- * Imports +- */ +-type HookHandler = import("./hook").HookHandler; +-/** +- * Input type definition +- */ +-type Input = { +- timer: Timer; +- hook: Hook; +-}; +-/** +- * State type definition +- */ +-type State = { +- timer: Timer; +- hook: Hook; +-}; + //// [hook.d.ts] ++export type HookHandler = (arg: import("./context")) => void; + export = Hook; +-/** +- * @typedef {(arg: import("./context")) => void} HookHandler +- */ +-/** +- * @param {HookHandler} handle +- */ +-declare function Hook(handle: HookHandler): void; +-declare class Hook { +- /** +- * @typedef {(arg: import("./context")) => void} HookHandler +- */ +- /** +- * @param {HookHandler} handle +- */ +- constructor(handle: HookHandler); +- handle: HookHandler; +-} +-declare namespace Hook { +- export { HookHandler }; +-} +-type HookHandler = (arg: import("./context")) => void; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsFunctionJSDoc.js b/testdata/baselines/reference/submodule/conformance/jsDeclarationsFunctionJSDoc.js new file mode 100644 index 0000000000..97ea0e39b4 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsFunctionJSDoc.js @@ -0,0 +1,105 @@ +//// [tests/cases/conformance/jsdoc/declarations/jsDeclarationsFunctionJSDoc.ts] //// + +//// [source.js] +/** + * Foos a bar together using an `a` and a `b` + * @param {number} a + * @param {string} b + */ +export function foo(a, b) {} + +/** + * Legacy - DO NOT USE + */ +export class Aleph { + /** + * Impossible to construct. + * @param {Aleph} a + * @param {null} b + */ + constructor(a, b) { + /** + * Field is always null + */ + this.field = b; + } + + /** + * Doesn't actually do anything + * @returns {void} + */ + doIt() {} +} + +/** + * Not the speed of light + */ +export const c = 12; + + +//// [source.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.c = exports.Aleph = void 0; +exports.foo = foo; +/** + * Foos a bar together using an `a` and a `b` + * @param {number} a + * @param {string} b + */ +function foo(a, b) { } +/** + * Legacy - DO NOT USE + */ +class Aleph { + /** + * Impossible to construct. + * @param {Aleph} a + * @param {null} b + */ + constructor(a, b) { + /** + * Field is always null + */ + this.field = b; + } + /** + * Doesn't actually do anything + * @returns {void} + */ + doIt() { } +} +exports.Aleph = Aleph; +/** + * Not the speed of light + */ +exports.c = 12; + + +//// [source.d.ts] +/** + * Foos a bar together using an `a` and a `b` + * @param {number} a + * @param {string} b + */ +export declare function foo(a: number, b: string): void; +/** + * Legacy - DO NOT USE + */ +export declare class Aleph { + /** + * Impossible to construct. + * @param {Aleph} a + * @param {null} b + */ + constructor(a: Aleph, b: null); + /** + * Doesn't actually do anything + * @returns {void} + */ + doIt(): void; +} +/** + * Not the speed of light + */ +export declare const c = 12; diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsFunctionJSDoc.js.diff b/testdata/baselines/reference/submodule/conformance/jsDeclarationsFunctionJSDoc.js.diff new file mode 100644 index 0000000000..9c49d1cead --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsFunctionJSDoc.js.diff @@ -0,0 +1,33 @@ +--- old.jsDeclarationsFunctionJSDoc.js ++++ new.jsDeclarationsFunctionJSDoc.js +@@= skipped -81, +81 lines =@@ + * @param {number} a + * @param {string} b + */ +-export function foo(a: number, b: string): void; ++export declare function foo(a: number, b: string): void; + /** + * Legacy - DO NOT USE + */ +-export class Aleph { ++export declare class Aleph { + /** + * Impossible to construct. + * @param {Aleph} a +@@= skipped -12, +12 lines =@@ + */ + constructor(a: Aleph, b: null); + /** +- * Field is always null +- */ +- field: any; +- /** + * Doesn't actually do anything + * @returns {void} + */ +@@= skipped -12, +8 lines =@@ + /** + * Not the speed of light + */ +-export const c: 12; ++export declare const c = 12; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsFunctionKeywordProp.js b/testdata/baselines/reference/submodule/conformance/jsDeclarationsFunctionKeywordProp.js new file mode 100644 index 0000000000..4b6e7dcc70 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsFunctionKeywordProp.js @@ -0,0 +1,29 @@ +//// [tests/cases/conformance/jsdoc/declarations/jsDeclarationsFunctionKeywordProp.ts] //// + +//// [source.js] +function foo() {} +foo.null = true; + +function bar() {} +bar.async = true; +bar.normal = false; + +function baz() {} +baz.class = true; +baz.normal = false; + +//// [source.js] +function foo() { } +foo.null = true; +function bar() { } +bar.async = true; +bar.normal = false; +function baz() { } +baz.class = true; +baz.normal = false; + + +//// [source.d.ts] +declare function foo(): void; +declare function bar(): void; +declare function baz(): void; diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsFunctionKeywordProp.js.diff b/testdata/baselines/reference/submodule/conformance/jsDeclarationsFunctionKeywordProp.js.diff new file mode 100644 index 0000000000..d529325b10 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsFunctionKeywordProp.js.diff @@ -0,0 +1,22 @@ +--- old.jsDeclarationsFunctionKeywordProp.js ++++ new.jsDeclarationsFunctionKeywordProp.js +@@= skipped -24, +24 lines =@@ + + //// [source.d.ts] + declare function foo(): void; +-declare namespace foo { +- let _null: boolean; +- export { _null as null }; +-} + declare function bar(): void; +-declare namespace bar { +- let async: boolean; +- let normal: boolean; +-} + declare function baz(): void; +-declare namespace baz { +- let _class: boolean; +- export { _class as class }; +- let normal_1: boolean; +- export { normal_1 as normal }; +-} \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsFunctionKeywordPropExhaustive.js b/testdata/baselines/reference/submodule/conformance/jsDeclarationsFunctionKeywordPropExhaustive.js new file mode 100644 index 0000000000..b7bc4713a4 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsFunctionKeywordPropExhaustive.js @@ -0,0 +1,172 @@ +//// [tests/cases/conformance/jsdoc/declarations/jsDeclarationsFunctionKeywordPropExhaustive.ts] //// + +//// [source.js] +function foo() {} +// properties +foo.x = 1; +foo.y = 1; + +// keywords +foo.break = 1; +foo.case = 1; +foo.catch = 1; +foo.class = 1; +foo.const = 1; +foo.continue = 1; +foo.debugger = 1; +foo.default = 1; +foo.delete = 1; +foo.do = 1; +foo.else = 1; +foo.enum = 1; +foo.export = 1; +foo.extends = 1; +foo.false = 1; +foo.finally = 1; +foo.for = 1; +foo.function = 1; +foo.if = 1; +foo.import = 1; +foo.in = 1; +foo.instanceof = 1; +foo.new = 1; +foo.null = 1; +foo.return = 1; +foo.super = 1; +foo.switch = 1; +foo.this = 1; +foo.throw = 1; +foo.true = 1; +foo.try = 1; +foo.typeof = 1; +foo.var = 1; +foo.void = 1; +foo.while = 1; +foo.with = 1; +foo.implements = 1; +foo.interface = 1; +foo.let = 1; +foo.package = 1; +foo.private = 1; +foo.protected = 1; +foo.public = 1; +foo.static = 1; +foo.yield = 1; +foo.abstract = 1; +foo.as = 1; +foo.asserts = 1; +foo.any = 1; +foo.async = 1; +foo.await = 1; +foo.boolean = 1; +foo.constructor = 1; +foo.declare = 1; +foo.get = 1; +foo.infer = 1; +foo.is = 1; +foo.keyof = 1; +foo.module = 1; +foo.namespace = 1; +foo.never = 1; +foo.readonly = 1; +foo.require = 1; +foo.number = 1; +foo.object = 1; +foo.set = 1; +foo.string = 1; +foo.symbol = 1; +foo.type = 1; +foo.undefined = 1; +foo.unique = 1; +foo.unknown = 1; +foo.from = 1; +foo.global = 1; +foo.bigint = 1; +foo.of = 1; + +//// [source.js] +function foo() { } +// properties +foo.x = 1; +foo.y = 1; +// keywords +foo.break = 1; +foo.case = 1; +foo.catch = 1; +foo.class = 1; +foo.const = 1; +foo.continue = 1; +foo.debugger = 1; +foo.default = 1; +foo.delete = 1; +foo.do = 1; +foo.else = 1; +foo.enum = 1; +foo.export = 1; +foo.extends = 1; +foo.false = 1; +foo.finally = 1; +foo.for = 1; +foo.function = 1; +foo.if = 1; +foo.import = 1; +foo.in = 1; +foo.instanceof = 1; +foo.new = 1; +foo.null = 1; +foo.return = 1; +foo.super = 1; +foo.switch = 1; +foo.this = 1; +foo.throw = 1; +foo.true = 1; +foo.try = 1; +foo.typeof = 1; +foo.var = 1; +foo.void = 1; +foo.while = 1; +foo.with = 1; +foo.implements = 1; +foo.interface = 1; +foo.let = 1; +foo.package = 1; +foo.private = 1; +foo.protected = 1; +foo.public = 1; +foo.static = 1; +foo.yield = 1; +foo.abstract = 1; +foo.as = 1; +foo.asserts = 1; +foo.any = 1; +foo.async = 1; +foo.await = 1; +foo.boolean = 1; +foo.constructor = 1; +foo.declare = 1; +foo.get = 1; +foo.infer = 1; +foo.is = 1; +foo.keyof = 1; +foo.module = 1; +foo.namespace = 1; +foo.never = 1; +foo.readonly = 1; +foo.require = 1; +foo.number = 1; +foo.object = 1; +foo.set = 1; +foo.string = 1; +foo.symbol = 1; +foo.type = 1; +foo.undefined = 1; +foo.unique = 1; +foo.unknown = 1; +foo.from = 1; +foo.global = 1; +foo.bigint = 1; +foo.of = 1; + + +//// [source.d.ts] +declare function foo(): void; diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsFunctionKeywordPropExhaustive.js.diff b/testdata/baselines/reference/submodule/conformance/jsDeclarationsFunctionKeywordPropExhaustive.js.diff new file mode 100644 index 0000000000..fa3f869313 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsFunctionKeywordPropExhaustive.js.diff @@ -0,0 +1,131 @@ +--- old.jsDeclarationsFunctionKeywordPropExhaustive.js ++++ new.jsDeclarationsFunctionKeywordPropExhaustive.js +@@= skipped -169, +169 lines =@@ + + //// [source.d.ts] + declare function foo(): void; +-declare namespace foo { +- export let x: number; +- export let y: number; +- let _break: number; +- export { _break as break }; +- let _case: number; +- export { _case as case }; +- let _catch: number; +- export { _catch as catch }; +- let _class: number; +- export { _class as class }; +- let _const: number; +- export { _const as const }; +- let _continue: number; +- export { _continue as continue }; +- let _debugger: number; +- export { _debugger as debugger }; +- let _default: number; +- export { _default as default }; +- let _delete: number; +- export { _delete as delete }; +- let _do: number; +- export { _do as do }; +- let _else: number; +- export { _else as else }; +- let _enum: number; +- export { _enum as enum }; +- let _export: number; +- export { _export as export }; +- let _extends: number; +- export { _extends as extends }; +- let _false: number; +- export { _false as false }; +- let _finally: number; +- export { _finally as finally }; +- let _for: number; +- export { _for as for }; +- let _function: number; +- export { _function as function }; +- let _if: number; +- export { _if as if }; +- let _import: number; +- export { _import as import }; +- let _in: number; +- export { _in as in }; +- let _instanceof: number; +- export { _instanceof as instanceof }; +- let _new: number; +- export { _new as new }; +- let _null: number; +- export { _null as null }; +- let _return: number; +- export { _return as return }; +- let _super: number; +- export { _super as super }; +- let _switch: number; +- export { _switch as switch }; +- let _this: number; +- export { _this as this }; +- let _throw: number; +- export { _throw as throw }; +- let _true: number; +- export { _true as true }; +- let _try: number; +- export { _try as try }; +- let _typeof: number; +- export { _typeof as typeof }; +- let _var: number; +- export { _var as var }; +- let _void: number; +- export { _void as void }; +- let _while: number; +- export { _while as while }; +- let _with: number; +- export { _with as with }; +- let _implements: number; +- export { _implements as implements }; +- let _interface: number; +- export { _interface as interface }; +- let _let: number; +- export { _let as let }; +- let _package: number; +- export { _package as package }; +- let _private: number; +- export { _private as private }; +- let _protected: number; +- export { _protected as protected }; +- let _public: number; +- export { _public as public }; +- let _static: number; +- export { _static as static }; +- let _yield: number; +- export { _yield as yield }; +- export let abstract: number; +- export let as: number; +- export let asserts: number; +- export let any: number; +- export let async: number; +- export let await: number; +- export let boolean: number; +- export let constructor: number; +- export let declare: number; +- export let get: number; +- export let infer: number; +- export let is: number; +- export let keyof: number; +- export let module: number; +- export let namespace: number; +- export let never: number; +- export let readonly: number; +- export let require: number; +- export let number: number; +- export let object: number; +- export let set: number; +- export let string: number; +- export let symbol: number; +- export let type: number; +- export let undefined: number; +- export let unique: number; +- export let unknown: number; +- export let from: number; +- export let global: number; +- export let bigint: number; +- export let of: number; +-} \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsFunctionLikeClasses.js b/testdata/baselines/reference/submodule/conformance/jsDeclarationsFunctionLikeClasses.js new file mode 100644 index 0000000000..feed0a0872 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsFunctionLikeClasses.js @@ -0,0 +1,65 @@ +//// [tests/cases/conformance/jsdoc/declarations/jsDeclarationsFunctionLikeClasses.ts] //// + +//// [source.js] +/** + * @param {number} x + * @param {number} y + */ +export function Point(x, y) { + if (!(this instanceof Point)) { + return new Point(x, y); + } + this.x = x; + this.y = y; +} + +//// [referencer.js] +import {Point} from "./source"; + +/** + * @param {Point} p + */ +export function magnitude(p) { + return Math.sqrt(p.x ** 2 + p.y ** 2); +} + + +//// [source.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Point = Point; +/** + * @param {number} x + * @param {number} y + */ +function Point(x, y) { + if (!(this instanceof Point)) { + return new Point(x, y); + } + this.x = x; + this.y = y; +} +//// [referencer.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.magnitude = magnitude; +const source_1 = require("./source"); +/** + * @param {Point} p + */ +function magnitude(p) { + return Math.sqrt(p.x ** 2 + p.y ** 2); +} + + +//// [source.d.ts] +/** + * @param {number} x + * @param {number} y + */ +export declare function Point(x: number, y: number): any; +//// [referencer.d.ts] +/** + * @param {Point} p + */ +export declare function magnitude(p: Point): number; diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsFunctionLikeClasses.js.diff b/testdata/baselines/reference/submodule/conformance/jsDeclarationsFunctionLikeClasses.js.diff new file mode 100644 index 0000000000..f3643531ac --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsFunctionLikeClasses.js.diff @@ -0,0 +1,39 @@ +--- old.jsDeclarationsFunctionLikeClasses.js ++++ new.jsDeclarationsFunctionLikeClasses.js +@@= skipped -42, +42 lines =@@ + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.magnitude = magnitude; +-var source_1 = require("./source"); ++const source_1 = require("./source"); + /** + * @param {Point} p + */ + function magnitude(p) { +- return Math.sqrt(Math.pow(p.x, 2) + Math.pow(p.y, 2)); ++ return Math.sqrt(p.x ** 2 + p.y ** 2); + } + + +@@= skipped -14, +14 lines =@@ + * @param {number} x + * @param {number} y + */ +-export function Point(x: number, y: number): Point; +-export class Point { +- /** +- * @param {number} x +- * @param {number} y +- */ +- constructor(x: number, y: number); +- x: number; +- y: number; +-} ++export declare function Point(x: number, y: number): any; + //// [referencer.d.ts] + /** + * @param {Point} p + */ +-export function magnitude(p: Point): number; +-import { Point } from "./source"; ++export declare function magnitude(p: Point): number; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsFunctionLikeClasses2.js b/testdata/baselines/reference/submodule/conformance/jsDeclarationsFunctionLikeClasses2.js new file mode 100644 index 0000000000..dd71c7db12 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsFunctionLikeClasses2.js @@ -0,0 +1,169 @@ +//// [tests/cases/conformance/jsdoc/declarations/jsDeclarationsFunctionLikeClasses2.ts] //// + +//// [source.js] +/** + * @param {number} len + */ +export function Vec(len) { + /** + * @type {number[]} + */ + this.storage = new Array(len); +} + +Vec.prototype = { + /** + * @param {Vec} other + */ + dot(other) { + if (other.storage.length !== this.storage.length) { + throw new Error(`Dot product only applicable for vectors of equal length`); + } + let sum = 0; + for (let i = 0; i < this.storage.length; i++) { + sum += (this.storage[i] * other.storage[i]); + } + return sum; + }, + magnitude() { + let sum = 0; + for (let i = 0; i < this.storage.length; i++) { + sum += (this.storage[i] ** 2); + } + return Math.sqrt(sum); + } +} + +/** + * @param {number} x + * @param {number} y + */ +export function Point2D(x, y) { + if (!(this instanceof Point2D)) { + return new Point2D(x, y); + } + Vec.call(this, 2); + this.x = x; + this.y = y; +} + +Point2D.prototype = { + __proto__: Vec, + get x() { + return this.storage[0]; + }, + /** + * @param {number} x + */ + set x(x) { + this.storage[0] = x; + }, + get y() { + return this.storage[1]; + }, + /** + * @param {number} y + */ + set y(y) { + this.storage[1] = y; + } +}; + +//// [referencer.js] +import {Point2D} from "./source"; + +export const origin = new Point2D(0, 0); +// export const res = Point2D(2, 3).dot(origin); // TODO: when __proto__ works, validate this + + +//// [source.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Vec = Vec; +exports.Point2D = Point2D; +/** + * @param {number} len + */ +function Vec(len) { + /** + * @type {number[]} + */ + this.storage = new Array(len); +} +Vec.prototype = { + /** + * @param {Vec} other + */ + dot(other) { + if (other.storage.length !== this.storage.length) { + throw new Error(`Dot product only applicable for vectors of equal length`); + } + let sum = 0; + for (let i = 0; i < this.storage.length; i++) { + sum += (this.storage[i] * other.storage[i]); + } + return sum; + }, + magnitude() { + let sum = 0; + for (let i = 0; i < this.storage.length; i++) { + sum += (this.storage[i] ** 2); + } + return Math.sqrt(sum); + } +}; +/** + * @param {number} x + * @param {number} y + */ +function Point2D(x, y) { + if (!(this instanceof Point2D)) { + return new Point2D(x, y); + } + Vec.call(this, 2); + this.x = x; + this.y = y; +} +Point2D.prototype = { + __proto__: Vec, + get x() { + return this.storage[0]; + }, + /** + * @param {number} x + */ + set x(x) { + this.storage[0] = x; + }, + get y() { + return this.storage[1]; + }, + /** + * @param {number} y + */ + set y(y) { + this.storage[1] = y; + } +}; +//// [referencer.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.origin = void 0; +const source_1 = require("./source"); +exports.origin = new source_1.Point2D(0, 0); +// export const res = Point2D(2, 3).dot(origin); // TODO: when __proto__ works, validate this + + +//// [source.d.ts] +/** + * @param {number} len + */ +export declare function Vec(len: number): void; +/** + * @param {number} x + * @param {number} y + */ +export declare function Point2D(x: number, y: number): any; +//// [referencer.d.ts] +export declare const origin: any; +// export const res = Point2D(2, 3).dot(origin); // TODO: when __proto__ works, validate this diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsFunctionLikeClasses2.js.diff b/testdata/baselines/reference/submodule/conformance/jsDeclarationsFunctionLikeClasses2.js.diff new file mode 100644 index 0000000000..6efbecbcf8 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsFunctionLikeClasses2.js.diff @@ -0,0 +1,70 @@ +--- old.jsDeclarationsFunctionLikeClasses2.js ++++ new.jsDeclarationsFunctionLikeClasses2.js +@@= skipped -106, +106 lines =@@ + magnitude() { + let sum = 0; + for (let i = 0; i < this.storage.length; i++) { +- sum += (Math.pow(this.storage[i], 2)); ++ sum += (this.storage[i] ** 2); + } + return Math.sqrt(sum); + } +@@= skipped -42, +42 lines =@@ + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.origin = void 0; +-var source_1 = require("./source"); ++const source_1 = require("./source"); + exports.origin = new source_1.Point2D(0, 0); + // export const res = Point2D(2, 3).dot(origin); // TODO: when __proto__ works, validate this + +@@= skipped -9, +9 lines =@@ + /** + * @param {number} len + */ +-export function Vec(len: number): void; +-export class Vec { +- /** +- * @param {number} len +- */ +- constructor(len: number); +- /** +- * @type {number[]} +- */ +- storage: number[]; +- /** +- * @param {Vec} other +- */ +- dot(other: Vec): number; +- magnitude(): number; +-} ++export declare function Vec(len: number): void; + /** + * @param {number} x + * @param {number} y + */ +-export function Point2D(x: number, y: number): Point2D; +-export class Point2D { +- /** +- * @param {number} x +- * @param {number} y +- */ +- constructor(x: number, y: number); +- /** +- * @param {number} x +- */ +- set x(x: number); +- get x(): number; +- /** +- * @param {number} y +- */ +- set y(y: number); +- get y(): number; +- __proto__: typeof Vec; +-} ++export declare function Point2D(x: number, y: number): any; + //// [referencer.d.ts] +-export const origin: Point2D; +-import { Point2D } from "./source"; ++export declare const origin: any; ++// export const res = Point2D(2, 3).dot(origin); // TODO: when __proto__ works, validate this \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsFunctionPrototypeStatic.js b/testdata/baselines/reference/submodule/conformance/jsDeclarationsFunctionPrototypeStatic.js new file mode 100644 index 0000000000..b8f6a0ecb8 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsFunctionPrototypeStatic.js @@ -0,0 +1,59 @@ +//// [tests/cases/conformance/jsdoc/declarations/jsDeclarationsFunctionPrototypeStatic.ts] //// + +//// [source.js] +module.exports = MyClass; + +function MyClass() {} +MyClass.staticMethod = function() {} +MyClass.prototype.method = function() {} +MyClass.staticProperty = 123; + +/** + * Callback to be invoked when test execution is complete. + * + * @callback DoneCB + * @param {number} failures - Number of failures that occurred. + */ + +//// [source.js] +export = MyClass; +module.exports = MyClass; +function MyClass() { } +MyClass.staticMethod = function () { }; +MyClass.prototype.method = function () { }; +MyClass.staticProperty = 123; +/** + * Callback to be invoked when test execution is complete. + * + * @callback DoneCB + * @param {number} failures - Number of failures that occurred. + */ + + +//// [source.d.ts] +export = MyClass; +/** + * Callback to be invoked when test execution is complete. + * + * @callback DoneCB + * @param {number} failures - Number of failures that occurred. + */ + + +//// [DtsFileErrors] + + +out/source.d.ts(1,10): error TS2304: Cannot find name 'MyClass'. + + +==== out/source.d.ts (1 errors) ==== + export = MyClass; + ~~~~~~~ +!!! error TS2304: Cannot find name 'MyClass'. + /** + * Callback to be invoked when test execution is complete. + * + * @callback DoneCB + * @param {number} failures - Number of failures that occurred. + */ + \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsFunctionPrototypeStatic.js.diff b/testdata/baselines/reference/submodule/conformance/jsDeclarationsFunctionPrototypeStatic.js.diff new file mode 100644 index 0000000000..f6139cee0c --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsFunctionPrototypeStatic.js.diff @@ -0,0 +1,50 @@ +--- old.jsDeclarationsFunctionPrototypeStatic.js ++++ new.jsDeclarationsFunctionPrototypeStatic.js +@@= skipped -15, +15 lines =@@ + */ + + //// [source.js] ++export = MyClass; + module.exports = MyClass; + function MyClass() { } + MyClass.staticMethod = function () { }; +@@= skipped -15, +16 lines =@@ + + //// [source.d.ts] + export = MyClass; +-declare function MyClass(): void; +-declare class MyClass { +- method(): void; +-} +-declare namespace MyClass { +- export { staticMethod, staticProperty, DoneCB }; +-} +-declare function staticMethod(): void; +-declare var staticProperty: number; + /** + * Callback to be invoked when test execution is complete. +- */ +-type DoneCB = (failures: number) => any; ++ * ++ * @callback DoneCB ++ * @param {number} failures - Number of failures that occurred. ++ */ ++ ++ ++//// [DtsFileErrors] ++ ++ ++out/source.d.ts(1,10): error TS2304: Cannot find name 'MyClass'. ++ ++ ++==== out/source.d.ts (1 errors) ==== ++ export = MyClass; ++ ~~~~~~~ ++!!! error TS2304: Cannot find name 'MyClass'. ++ /** ++ * Callback to be invoked when test execution is complete. ++ * ++ * @callback DoneCB ++ * @param {number} failures - Number of failures that occurred. ++ */ ++ \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsFunctionWithDefaultAssignedMember.js b/testdata/baselines/reference/submodule/conformance/jsDeclarationsFunctionWithDefaultAssignedMember.js new file mode 100644 index 0000000000..d76ffef284 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsFunctionWithDefaultAssignedMember.js @@ -0,0 +1,32 @@ +//// [tests/cases/conformance/jsdoc/declarations/jsDeclarationsFunctionWithDefaultAssignedMember.ts] //// + +//// [index.js] +function foo() {} + +foo.foo = foo; +foo.default = foo; +module.exports = foo; + +//// [index.js] +function foo() { } +foo.foo = foo; +foo.default = foo; +export = foo; +module.exports = foo; + + +//// [index.d.ts] +export = foo; + + +//// [DtsFileErrors] + + +out/index.d.ts(1,10): error TS2304: Cannot find name 'foo'. + + +==== out/index.d.ts (1 errors) ==== + export = foo; + ~~~ +!!! error TS2304: Cannot find name 'foo'. + \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsFunctionWithDefaultAssignedMember.js.diff b/testdata/baselines/reference/submodule/conformance/jsDeclarationsFunctionWithDefaultAssignedMember.js.diff new file mode 100644 index 0000000000..b57b340c63 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsFunctionWithDefaultAssignedMember.js.diff @@ -0,0 +1,30 @@ +--- old.jsDeclarationsFunctionWithDefaultAssignedMember.js ++++ new.jsDeclarationsFunctionWithDefaultAssignedMember.js +@@= skipped -10, +10 lines =@@ + function foo() { } + foo.foo = foo; + foo.default = foo; ++export = foo; + module.exports = foo; + + + //// [index.d.ts] + export = foo; +-declare function foo(): void; +-declare namespace foo { +- export { foo }; +- export { foo as default }; +-} ++ ++ ++//// [DtsFileErrors] ++ ++ ++out/index.d.ts(1,10): error TS2304: Cannot find name 'foo'. ++ ++ ++==== out/index.d.ts (1 errors) ==== ++ export = foo; ++ ~~~ ++!!! error TS2304: Cannot find name 'foo'. ++ \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsFunctions.js b/testdata/baselines/reference/submodule/conformance/jsDeclarationsFunctions.js new file mode 100644 index 0000000000..7a1612bab4 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsFunctions.js @@ -0,0 +1,168 @@ +//// [tests/cases/conformance/jsdoc/declarations/jsDeclarationsFunctions.ts] //// + +//// [index.js] +export function a() {} + +export function b() {} +b.cat = "cat"; + +export function c() {} +c.Cls = class {} + +/** + * @param {number} a + * @param {number} b + * @return {string} + */ +export function d(a, b) { return /** @type {*} */(null); } + +/** + * @template T,U + * @param {T} a + * @param {U} b + * @return {T & U} + */ +export function e(a, b) { return /** @type {*} */(null); } + +/** + * @template T + * @param {T} a + */ +export function f(a) { + return a; +} +f.self = f; + +/** + * @param {{x: string}} a + * @param {{y: typeof b}} b + */ +function g(a, b) { + return a.x && b.y(); +} + +export { g }; + +/** + * @param {{x: string}} a + * @param {{y: typeof b}} b + */ +function hh(a, b) { + return a.x && b.y(); +} + +export { hh as h }; + +export function i() {} +export { i as ii }; + +export { j as jj }; +export function j() {} + + +//// [index.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.a = a; +exports.b = b; +exports.c = c; +exports.d = d; +exports.e = e; +exports.f = f; +exports.g = g; +exports.h = hh; +exports.i = i; +exports.ii = i; +exports.j = j; +exports.jj = j; +function a() { } +function b() { } +b.cat = "cat"; +function c() { } +c.Cls = class { +}; +/** + * @param {number} a + * @param {number} b + * @return {string} + */ +function d(a, b) { return /** @type {*} */ null; } +/** + * @template T,U + * @param {T} a + * @param {U} b + * @return {T & U} + */ +function e(a, b) { return /** @type {*} */ null; } +/** + * @template T + * @param {T} a + */ +function f(a) { + return a; +} +f.self = f; +/** + * @param {{x: string}} a + * @param {{y: typeof b}} b + */ +function g(a, b) { + return a.x && b.y(); +} +/** + * @param {{x: string}} a + * @param {{y: typeof b}} b + */ +function hh(a, b) { + return a.x && b.y(); +} +function i() { } +function j() { } + + +//// [index.d.ts] +export declare function a(): void; +export declare function b(): void; +export declare function c(): void; +/** + * @param {number} a + * @param {number} b + * @return {string} + */ +export declare function d(a: number, b: number): string; +/** + * @template T,U + * @param {T} a + * @param {U} b + * @return {T & U} + */ +export declare function e(a: T, b: U): T & U; +/** + * @template T + * @param {T} a + */ +export declare function f(a: T): T; +/** + * @param {{x: string}} a + * @param {{y: typeof b}} b + */ +declare function g(a: { + x: string; +}, b: { + y: typeof b; +}): any; +export { g }; +/** + * @param {{x: string}} a + * @param {{y: typeof b}} b + */ +declare function hh(a: { + x: string; +}, b: { + y: typeof b; +}): any; +export { hh as h }; +export declare function i(): void; +export { i as ii }; +export { j as jj }; +export declare function j(): void; diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsFunctions.js.diff b/testdata/baselines/reference/submodule/conformance/jsDeclarationsFunctions.js.diff new file mode 100644 index 0000000000..75088fe6e6 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsFunctions.js.diff @@ -0,0 +1,93 @@ +--- old.jsDeclarationsFunctions.js ++++ new.jsDeclarationsFunctions.js +@@= skipped -85, +85 lines =@@ + * @param {number} b + * @return {string} + */ +-function d(a, b) { return /** @type {*} */ (null); } ++function d(a, b) { return /** @type {*} */ null; } + /** + * @template T,U + * @param {T} a + * @param {U} b + * @return {T & U} + */ +-function e(a, b) { return /** @type {*} */ (null); } ++function e(a, b) { return /** @type {*} */ null; } + /** + * @template T + * @param {T} a +@@= skipped -35, +35 lines =@@ + + + //// [index.d.ts] +-export function a(): void; +-export function b(): void; +-export namespace b { +- let cat: string; +-} +-export function c(): void; +-export namespace c { +- export { Cls }; +-} ++export declare function a(): void; ++export declare function b(): void; ++export declare function c(): void; + /** + * @param {number} a + * @param {number} b + * @return {string} + */ +-export function d(a: number, b: number): string; ++export declare function d(a: number, b: number): string; + /** + * @template T,U + * @param {T} a + * @param {U} b + * @return {T & U} + */ +-export function e(a: T, b: U): T & U; ++export declare function e(a: T, b: U): T & U; + /** + * @template T + * @param {T} a + */ +-export function f(a: T): T; +-export namespace f { +- export { f as self }; +-} +-export function i(): void; +-export function j(): void; +-declare class Cls { +-} ++export declare function f(a: T): T; + /** + * @param {{x: string}} a + * @param {{y: typeof b}} b + */ +-export function g(a: { ++declare function g(a: { + x: string; + }, b: { +- y: typeof import(".").b; +-}): void; ++ y: typeof b; ++}): any; ++export { g }; + /** + * @param {{x: string}} a + * @param {{y: typeof b}} b +@@= skipped -50, +38 lines =@@ + declare function hh(a: { + x: string; + }, b: { +- y: typeof import(".").b; +-}): void; +-export { hh as h, i as ii, j as jj }; ++ y: typeof b; ++}): any; ++export { hh as h }; ++export declare function i(): void; ++export { i as ii }; ++export { j as jj }; ++export declare function j(): void; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsFunctionsCjs.js b/testdata/baselines/reference/submodule/conformance/jsDeclarationsFunctionsCjs.js new file mode 100644 index 0000000000..0df2364e61 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsFunctionsCjs.js @@ -0,0 +1,176 @@ +//// [tests/cases/conformance/jsdoc/declarations/jsDeclarationsFunctionsCjs.ts] //// + +//// [index.js] +module.exports.a = function a() {} + +module.exports.b = function b() {} +module.exports.b.cat = "cat"; + +module.exports.c = function c() {} +module.exports.c.Cls = class {} + +/** + * @param {number} a + * @param {number} b + * @return {string} + */ +module.exports.d = function d(a, b) { return /** @type {*} */(null); } + +/** + * @template T,U + * @param {T} a + * @param {U} b + * @return {T & U} + */ +module.exports.e = function e(a, b) { return /** @type {*} */(null); } + +/** + * @template T + * @param {T} a + */ +module.exports.f = function f(a) { + return a; +} +module.exports.f.self = module.exports.f; + +/** + * @param {{x: string}} a + * @param {{y: typeof module.exports.b}} b + */ +function g(a, b) { + return a.x && b.y(); +} + +module.exports.g = g; + +/** + * @param {{x: string}} a + * @param {{y: typeof module.exports.b}} b + */ +function hh(a, b) { + return a.x && b.y(); +} + +module.exports.h = hh; + +module.exports.i = function i() {} +module.exports.ii = module.exports.i; + +// note that this last one doesn't make much sense in cjs, since exports aren't hoisted bindings +module.exports.jj = module.exports.j; +module.exports.j = function j() {} + + +//// [index.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +export var a = function a() { }; +module.exports.a = function a() { }; +export var b = function b() { }; +module.exports.b = function b() { }; +module.exports.b.cat = "cat"; +export var c = function c() { }; +module.exports.c = function c() { }; +module.exports.c.Cls = class { +}; +/** + * @param {number} a + * @param {number} b + * @return {string} + */ +export var d = function d(a, b) { return /** @type {*} */ (null as ); }; +/** + * @param {number} a + * @param {number} b + * @return {string} + */ +module.exports.d = function d(a, b) { return /** @type {*} */ null; }; +/** + * @template T,U + * @param {T} a + * @param {U} b + * @return {T & U} + */ +export var e = function e(a, b) { return /** @type {*} */ (null as ); }; +/** + * @template T,U + * @param {T} a + * @param {U} b + * @return {T & U} + */ +module.exports.e = function e(a, b) { return /** @type {*} */ null; }; +/** + * @template T + * @param {T} a + */ +export var f = function f(a) { + return a; +}; +/** + * @template T + * @param {T} a + */ +module.exports.f = function f(a) { + return a; +}; +module.exports.f.self = module.exports.f; +/** + * @param {{x: string}} a + * @param {{y: typeof module.exports.b}} b + */ +function g(a, b) { + return a.x && b.y(); +} +export var g = g; +module.exports.g = g; +/** + * @param {{x: string}} a + * @param {{y: typeof module.exports.b}} b + */ +function hh(a, b) { + return a.x && b.y(); +} +export var h = hh; +module.exports.h = hh; +export var i = function i() { }; +module.exports.i = function i() { }; +export var ii = module.exports.i; +module.exports.ii = module.exports.i; +// note that this last one doesn't make much sense in cjs, since exports aren't hoisted bindings +export var jj = module.exports.j; +// note that this last one doesn't make much sense in cjs, since exports aren't hoisted bindings +module.exports.jj = module.exports.j; +export var j = function j() { }; +module.exports.j = function j() { }; + + +//// [index.d.ts] +export var a = function a();; +export var b = function b();; +export var c = function c();; +/** + * @param {number} a + * @param {number} b + * @return {string} + */ +export var d = function d(a, b);; +/** + * @template T,U + * @param {T} a + * @param {U} b + * @return {T & U} + */ +export var e = function e(a, b);; +/** + * @template T + * @param {T} a + */ +export var f = function f(a);; +export var g = g; +export var h = hh; +export var i = function i();; +export var ii = module.exports.i; +// note that this last one doesn't make much sense in cjs, since exports aren't hoisted bindings +export var jj = module.exports.j; +export var j = function j();; +export {}; diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsFunctionsCjs.js.diff b/testdata/baselines/reference/submodule/conformance/jsDeclarationsFunctionsCjs.js.diff new file mode 100644 index 0000000000..841fe7d000 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsFunctionsCjs.js.diff @@ -0,0 +1,161 @@ +--- old.jsDeclarationsFunctionsCjs.js ++++ new.jsDeclarationsFunctionsCjs.js +@@= skipped -61, +61 lines =@@ + + + //// [index.js] ++"use strict"; ++Object.defineProperty(exports, "__esModule", { value: true }); ++export var a = function a() { }; + module.exports.a = function a() { }; ++export var b = function b() { }; + module.exports.b = function b() { }; + module.exports.b.cat = "cat"; ++export var c = function c() { }; + module.exports.c = function c() { }; + module.exports.c.Cls = class { + }; +@@= skipped -11, +16 lines =@@ + * @param {number} b + * @return {string} + */ +-module.exports.d = function d(a, b) { return /** @type {*} */ (null); }; +-/** +- * @template T,U +- * @param {T} a +- * @param {U} b +- * @return {T & U} +- */ +-module.exports.e = function e(a, b) { return /** @type {*} */ (null); }; ++export var d = function d(a, b) { return /** @type {*} */ (null as ); }; ++/** ++ * @param {number} a ++ * @param {number} b ++ * @return {string} ++ */ ++module.exports.d = function d(a, b) { return /** @type {*} */ null; }; ++/** ++ * @template T,U ++ * @param {T} a ++ * @param {U} b ++ * @return {T & U} ++ */ ++export var e = function e(a, b) { return /** @type {*} */ (null as ); }; ++/** ++ * @template T,U ++ * @param {T} a ++ * @param {U} b ++ * @return {T & U} ++ */ ++module.exports.e = function e(a, b) { return /** @type {*} */ null; }; ++/** ++ * @template T ++ * @param {T} a ++ */ ++export var f = function f(a) { ++ return a; ++}; + /** + * @template T + * @param {T} a +@@= skipped -23, +43 lines =@@ + function g(a, b) { + return a.x && b.y(); + } ++export var g = g; + module.exports.g = g; + /** + * @param {{x: string}} a +@@= skipped -8, +9 lines =@@ + function hh(a, b) { + return a.x && b.y(); + } ++export var h = hh; + module.exports.h = hh; ++export var i = function i() { }; + module.exports.i = function i() { }; ++export var ii = module.exports.i; + module.exports.ii = module.exports.i; + // note that this last one doesn't make much sense in cjs, since exports aren't hoisted bindings ++export var jj = module.exports.j; ++// note that this last one doesn't make much sense in cjs, since exports aren't hoisted bindings + module.exports.jj = module.exports.j; ++export var j = function j() { }; + module.exports.j = function j() { }; + + + //// [index.d.ts] +-export function a(): void; +-export function b(): void; +-export namespace b { +- let cat: string; +-} +-export function c(): void; +-export namespace c { +- export { Cls }; +-} +-export function d(a: number, b: number): string; +-export function e(a: T, b: U): T & U; +-export function f(a: T): T; +-export namespace f { +- import self = f; +- export { self }; +-} +-export function i(): void; +-export function j(): void; +-declare class Cls { +-} +-/** +- * @param {{x: string}} a +- * @param {{y: typeof module.exports.b}} b +- */ +-export function g(a: { +- x: string; +-}, b: { +- y: { +- (): void; +- cat: string; +- }; +-}): void; +-/** +- * @param {{x: string}} a +- * @param {{y: typeof module.exports.b}} b +- */ +-declare function hh(a: { +- x: string; +-}, b: { +- y: { +- (): void; +- cat: string; +- }; +-}): void; +-export { hh as h, i as ii, j as jj }; ++export var a = function a();; ++export var b = function b();; ++export var c = function c();; ++/** ++ * @param {number} a ++ * @param {number} b ++ * @return {string} ++ */ ++export var d = function d(a, b);; ++/** ++ * @template T,U ++ * @param {T} a ++ * @param {U} b ++ * @return {T & U} ++ */ ++export var e = function e(a, b);; ++/** ++ * @template T ++ * @param {T} a ++ */ ++export var f = function f(a);; ++export var g = g; ++export var h = hh; ++export var i = function i();; ++export var ii = module.exports.i; ++// note that this last one doesn't make much sense in cjs, since exports aren't hoisted bindings ++export var jj = module.exports.j; ++export var j = function j();; ++export {}; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsGetterSetter.js b/testdata/baselines/reference/submodule/conformance/jsDeclarationsGetterSetter.js new file mode 100644 index 0000000000..eced1d0040 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsGetterSetter.js @@ -0,0 +1,273 @@ +//// [tests/cases/conformance/jsdoc/declarations/jsDeclarationsGetterSetter.ts] //// + +//// [index.js] +export class A { + get x() { + return 12; + } +} + +export class B { + /** + * @param {number} _arg + */ + set x(_arg) { + } +} + +export class C { + get x() { + return 12; + } + set x(_arg) { + } +} + +export class D {} +Object.defineProperty(D.prototype, "x", { + get() { + return 12; + } +}); + +export class E {} +Object.defineProperty(E.prototype, "x", { + /** + * @param {number} _arg + */ + set(_arg) {} +}); + +export class F {} +Object.defineProperty(F.prototype, "x", { + get() { + return 12; + }, + /** + * @param {number} _arg + */ + set(_arg) {} +}); + +export class G {} +Object.defineProperty(G.prototype, "x", { + /** + * @param {number[]} args + */ + set(...args) {} +}); + +export class H {} +Object.defineProperty(H.prototype, "x", { + set() {} +}); + + +export class I {} +Object.defineProperty(I.prototype, "x", { + /** + * @param {number} v + */ + set: (v) => {} +}); + +/** + * @param {number} v + */ +const jSetter = (v) => {} +export class J {} +Object.defineProperty(J.prototype, "x", { + set: jSetter +}); + +/** + * @param {number} v + */ +const kSetter1 = (v) => {} +/** + * @param {number} v + */ +const kSetter2 = (v) => {} +export class K {} +Object.defineProperty(K.prototype, "x", { + set: Math.random() ? kSetter1 : kSetter2 +}); + +/** + * @param {number} v + */ +const lSetter1 = (v) => {} +/** + * @param {string} v + */ +const lSetter2 = (v) => {} +export class L {} +Object.defineProperty(L.prototype, "x", { + set: Math.random() ? lSetter1 : lSetter2 +}); + +/** + * @param {number | boolean} v + */ +const mSetter1 = (v) => {} +/** + * @param {string | boolean} v + */ +const mSetter2 = (v) => {} +export class M {} +Object.defineProperty(M.prototype, "x", { + set: Math.random() ? mSetter1 : mSetter2 +}); + + +//// [index.js] +export class A { + get x() { + return 12; + } +} +export class B { + /** + * @param {number} _arg + */ + set x(_arg) { + } +} +export class C { + get x() { + return 12; + } + set x(_arg) { + } +} +export class D { +} +Object.defineProperty(D.prototype, "x", { + get() { + return 12; + } +}); +export class E { +} +Object.defineProperty(E.prototype, "x", { + /** + * @param {number} _arg + */ + set(_arg) { } +}); +export class F { +} +Object.defineProperty(F.prototype, "x", { + get() { + return 12; + }, + /** + * @param {number} _arg + */ + set(_arg) { } +}); +export class G { +} +Object.defineProperty(G.prototype, "x", { + /** + * @param {number[]} args + */ + set(...args) { } +}); +export class H { +} +Object.defineProperty(H.prototype, "x", { + set() { } +}); +export class I { +} +Object.defineProperty(I.prototype, "x", { + /** + * @param {number} v + */ + set: (v) => { } +}); +/** + * @param {number} v + */ +const jSetter = (v) => { }; +export class J { +} +Object.defineProperty(J.prototype, "x", { + set: jSetter +}); +/** + * @param {number} v + */ +const kSetter1 = (v) => { }; +/** + * @param {number} v + */ +const kSetter2 = (v) => { }; +export class K { +} +Object.defineProperty(K.prototype, "x", { + set: Math.random() ? kSetter1 : kSetter2 +}); +/** + * @param {number} v + */ +const lSetter1 = (v) => { }; +/** + * @param {string} v + */ +const lSetter2 = (v) => { }; +export class L { +} +Object.defineProperty(L.prototype, "x", { + set: Math.random() ? lSetter1 : lSetter2 +}); +/** + * @param {number | boolean} v + */ +const mSetter1 = (v) => { }; +/** + * @param {string | boolean} v + */ +const mSetter2 = (v) => { }; +export class M { +} +Object.defineProperty(M.prototype, "x", { + set: Math.random() ? mSetter1 : mSetter2 +}); + + +//// [index.d.ts] +export declare class A { + get x(): number; +} +export declare class B { + /** + * @param {number} _arg + */ + set x(_arg: number); +} +export declare class C { + get x(): number; + set x(_arg: number); +} +export declare class D { +} +export declare class E { +} +export declare class F { +} +export declare class G { +} +export declare class H { +} +export declare class I { +} +export declare class J { +} +export declare class K { +} +export declare class L { +} +export declare class M { +} diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsGetterSetter.js.diff b/testdata/baselines/reference/submodule/conformance/jsDeclarationsGetterSetter.js.diff new file mode 100644 index 0000000000..ae0b16b50f --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsGetterSetter.js.diff @@ -0,0 +1,75 @@ +--- old.jsDeclarationsGetterSetter.js ++++ new.jsDeclarationsGetterSetter.js +@@= skipped -237, +237 lines =@@ + + + //// [index.d.ts] +-export class A { ++export declare class A { + get x(): number; + } +-export class B { ++export declare class B { + /** + * @param {number} _arg + */ + set x(_arg: number); + } +-export class C { +- set x(_arg: number); +- get x(): number; +-} +-export class D { +- get x(): number; +-} +-export class E { +- set x(_arg: number); +-} +-export class F { +- set x(_arg: number); +- get x(): number; +-} +-export class G { +- set x(args: number); +-} +-export class H { +- set x(value: any); +-} +-export class I { +- set x(value: number); +-} +-export class J { +- set x(value: number); +-} +-export class K { +- set x(value: number); +-} +-export class L { +- set x(value: any); +-} +-export class M { +- set x(value: any); ++export declare class C { ++ get x(): number; ++ set x(_arg: number); ++} ++export declare class D { ++} ++export declare class E { ++} ++export declare class F { ++} ++export declare class G { ++} ++export declare class H { ++} ++export declare class I { ++} ++export declare class J { ++} ++export declare class K { ++} ++export declare class L { ++} ++export declare class M { + } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsImportAliasExposedWithinNamespace.js b/testdata/baselines/reference/submodule/conformance/jsDeclarationsImportAliasExposedWithinNamespace.js new file mode 100644 index 0000000000..6382b759e1 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsImportAliasExposedWithinNamespace.js @@ -0,0 +1,93 @@ +//// [tests/cases/conformance/jsdoc/declarations/jsDeclarationsImportAliasExposedWithinNamespace.ts] //// + +//// [file.js] +/** + * @namespace myTypes + * @global + * @type {Object} + */ +const myTypes = { + // SOME PROPS HERE +}; + +/** @typedef {string|RegExp|Array} myTypes.typeA */ + +/** + * @typedef myTypes.typeB + * @property {myTypes.typeA} prop1 - Prop 1. + * @property {string} prop2 - Prop 2. + */ + +/** @typedef {myTypes.typeB|Function} myTypes.typeC */ + +export {myTypes}; +//// [file2.js] +import {myTypes} from './file.js'; + +/** + * @namespace testFnTypes + * @global + * @type {Object} + */ +const testFnTypes = { + // SOME PROPS HERE +}; + +/** @typedef {boolean|myTypes.typeC} testFnTypes.input */ + +/** + * @function testFn + * @description A test function. + * @param {testFnTypes.input} input - Input. + * @returns {number|null} Result. + */ +function testFn(input) { + if (typeof input === 'number') { + return 2 * input; + } else { + return null; + } +} + +export {testFn, testFnTypes}; + + + +//// [file.d.ts] +/** + * @namespace myTypes + * @global + * @type {Object} + */ +declare const myTypes: Object; +export type myTypes = string | RegExp | Array; +export type myTypes = { + prop1: myTypes.typeA; + prop2: string; +}; +export type myTypes = myTypes.typeB | Function; +/** @typedef {string|RegExp|Array} myTypes.typeA */ +/** + * @typedef myTypes.typeB + * @property {myTypes.typeA} prop1 - Prop 1. + * @property {string} prop2 - Prop 2. + */ +/** @typedef {myTypes.typeB|Function} myTypes.typeC */ +export { myTypes }; +//// [file2.d.ts] +/** + * @namespace testFnTypes + * @global + * @type {Object} + */ +declare const testFnTypes: Object; +export type testFnTypes = boolean | myTypes.typeC; +/** @typedef {boolean|myTypes.typeC} testFnTypes.input */ +/** + * @function testFn + * @description A test function. + * @param {testFnTypes.input} input - Input. + * @returns {number|null} Result. + */ +declare function testFn(input: testFnTypes.input): number | null; +export { testFn, testFnTypes }; diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsImportAliasExposedWithinNamespace.js.diff b/testdata/baselines/reference/submodule/conformance/jsDeclarationsImportAliasExposedWithinNamespace.js.diff new file mode 100644 index 0000000000..3e2710baaa --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsImportAliasExposedWithinNamespace.js.diff @@ -0,0 +1,72 @@ +--- old.jsDeclarationsImportAliasExposedWithinNamespace.js ++++ new.jsDeclarationsImportAliasExposedWithinNamespace.js +@@= skipped -53, +53 lines =@@ + + + //// [file.d.ts] +-export namespace myTypes { +- type typeA = string | RegExp | Array; +- type typeB = { +- /** +- * - Prop 1. +- */ +- prop1: myTypes.typeA; +- /** +- * - Prop 2. +- */ +- prop2: string; +- }; +- type typeC = myTypes.typeB | Function; +-} + /** + * @namespace myTypes + * @global + * @type {Object} + */ +-export const myTypes: { +- [x: string]: any; ++declare const myTypes: Object; ++export type myTypes = string | RegExp | Array; ++export type myTypes = { ++ prop1: myTypes.typeA; ++ prop2: string; + }; ++export type myTypes = myTypes.typeB | Function; ++/** @typedef {string|RegExp|Array} myTypes.typeA */ ++/** ++ * @typedef myTypes.typeB ++ * @property {myTypes.typeA} prop1 - Prop 1. ++ * @property {string} prop2 - Prop 2. ++ */ ++/** @typedef {myTypes.typeB|Function} myTypes.typeC */ ++export { myTypes }; + //// [file2.d.ts] +-export namespace testFnTypes { +- type input = boolean | myTypes.typeC; +-} ++/** ++ * @namespace testFnTypes ++ * @global ++ * @type {Object} ++ */ ++declare const testFnTypes: Object; ++export type testFnTypes = boolean | myTypes.typeC; + /** @typedef {boolean|myTypes.typeC} testFnTypes.input */ + /** + * @function testFn +@@= skipped -33, +35 lines =@@ + * @param {testFnTypes.input} input - Input. + * @returns {number|null} Result. + */ +-export function testFn(input: testFnTypes.input): number | null; +-import { myTypes } from './file.js'; +-/** +- * @namespace testFnTypes +- * @global +- * @type {Object} +- */ +-export const testFnTypes: { +- [x: string]: any; +-}; ++declare function testFn(input: testFnTypes.input): number | null; ++export { testFn, testFnTypes }; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsImportAliasExposedWithinNamespaceCjs.js b/testdata/baselines/reference/submodule/conformance/jsDeclarationsImportAliasExposedWithinNamespaceCjs.js new file mode 100644 index 0000000000..55d6a0df23 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsImportAliasExposedWithinNamespaceCjs.js @@ -0,0 +1,85 @@ +//// [tests/cases/conformance/jsdoc/declarations/jsDeclarationsImportAliasExposedWithinNamespaceCjs.ts] //// + +//// [file.js] +/** + * @namespace myTypes + * @global + * @type {Object} + */ +const myTypes = { + // SOME PROPS HERE +}; + +/** @typedef {string|RegExp|Array} myTypes.typeA */ + +/** + * @typedef myTypes.typeB + * @property {myTypes.typeA} prop1 - Prop 1. + * @property {string} prop2 - Prop 2. + */ + +/** @typedef {myTypes.typeB|Function} myTypes.typeC */ + +exports.myTypes = myTypes; +//// [file2.js] +const {myTypes} = require('./file.js'); + +/** + * @namespace testFnTypes + * @global + * @type {Object} + */ +const testFnTypes = { + // SOME PROPS HERE +}; + +/** @typedef {boolean|myTypes.typeC} testFnTypes.input */ + +/** + * @function testFn + * @description A test function. + * @param {testFnTypes.input} input - Input. + * @returns {number|null} Result. + */ +function testFn(input) { + if (typeof input === 'number') { + return 2 * input; + } else { + return null; + } +} + +module.exports = {testFn, testFnTypes}; + + + +//// [file.d.ts] +export type myTypes = string | RegExp | Array; +export type myTypes = { + prop1: myTypes.typeA; + prop2: string; +}; +export type myTypes = myTypes.typeB | Function; +/** @typedef {string|RegExp|Array} myTypes.typeA */ +/** + * @typedef myTypes.typeB + * @property {myTypes.typeA} prop1 - Prop 1. + * @property {string} prop2 - Prop 2. + */ +/** @typedef {myTypes.typeB|Function} myTypes.typeC */ +export var myTypes = myTypes; +//// [file2.d.ts] +export type testFnTypes = boolean | myTypes.typeC; +/** @typedef {boolean|myTypes.typeC} testFnTypes.input */ +/** + * @function testFn + * @description A test function. + * @param {testFnTypes.input} input - Input. + * @returns {number|null} Result. + */ +declare function testFn(input: testFnTypes.input): number | null; +declare const _default: { + testFn: typeof testFn; + testFnTypes: any; +}; +export = _default; diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsImportAliasExposedWithinNamespaceCjs.js.diff b/testdata/baselines/reference/submodule/conformance/jsDeclarationsImportAliasExposedWithinNamespaceCjs.js.diff new file mode 100644 index 0000000000..ff18b56816 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsImportAliasExposedWithinNamespaceCjs.js.diff @@ -0,0 +1,67 @@ +--- old.jsDeclarationsImportAliasExposedWithinNamespaceCjs.js ++++ new.jsDeclarationsImportAliasExposedWithinNamespaceCjs.js +@@= skipped -53, +53 lines =@@ + + + //// [file.d.ts] ++export type myTypes = string | RegExp | Array; ++export type myTypes = { ++ prop1: myTypes.typeA; ++ prop2: string; ++}; ++export type myTypes = myTypes.typeB | Function; ++/** @typedef {string|RegExp|Array} myTypes.typeA */ + /** +- * @namespace myTypes +- * @global +- * @type {Object} ++ * @typedef myTypes.typeB ++ * @property {myTypes.typeA} prop1 - Prop 1. ++ * @property {string} prop2 - Prop 2. + */ +-export const myTypes: { +- [x: string]: any; +-}; +-export namespace myTypes { +- type typeA = string | RegExp | Array; +- type typeB = { +- /** +- * - Prop 1. +- */ +- prop1: myTypes.typeA; +- /** +- * - Prop 2. +- */ +- prop2: string; +- }; +- type typeC = myTypes.typeB | Function; +-} ++/** @typedef {myTypes.typeB|Function} myTypes.typeC */ ++export var myTypes = myTypes; + //// [file2.d.ts] ++export type testFnTypes = boolean | myTypes.typeC; + /** @typedef {boolean|myTypes.typeC} testFnTypes.input */ + /** + * @function testFn +@@= skipped -30, +23 lines =@@ + * @param {testFnTypes.input} input - Input. + * @returns {number|null} Result. + */ +-export function testFn(input: testFnTypes.input): number | null; +-/** +- * @namespace testFnTypes +- * @global +- * @type {Object} +- */ +-export const testFnTypes: { +- [x: string]: any; ++declare function testFn(input: testFnTypes.input): number | null; ++declare const _default: { ++ testFn: typeof testFn; ++ testFnTypes: any; + }; +-export namespace testFnTypes { +- type input = boolean | myTypes.typeC; +-} +-import { myTypes } from "./file.js"; ++export = _default; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsImportNamespacedType.js b/testdata/baselines/reference/submodule/conformance/jsDeclarationsImportNamespacedType.js new file mode 100644 index 0000000000..f4af80fe00 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsImportNamespacedType.js @@ -0,0 +1,20 @@ +//// [tests/cases/conformance/jsdoc/declarations/jsDeclarationsImportNamespacedType.ts] //// + +//// [file.js] +import { dummy } from './mod1' +/** @type {import('./mod1').Dotted.Name} - should work */ +var dot2 + +//// [mod1.js] +/** @typedef {number} Dotted.Name */ +export var dummy = 1 + + + + +//// [mod1.d.ts] +export type Dotted = number; +/** @typedef {number} Dotted.Name */ +export declare var dummy: number; +//// [file.d.ts] +export {}; diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsImportNamespacedType.js.diff b/testdata/baselines/reference/submodule/conformance/jsDeclarationsImportNamespacedType.js.diff new file mode 100644 index 0000000000..fa52ab12a7 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsImportNamespacedType.js.diff @@ -0,0 +1,15 @@ +--- old.jsDeclarationsImportNamespacedType.js ++++ new.jsDeclarationsImportNamespacedType.js +@@= skipped -12, +12 lines =@@ + + + //// [mod1.d.ts] ++export type Dotted = number; + /** @typedef {number} Dotted.Name */ +-export const dummy: number; +-export namespace Dotted { +- type Name = number; +-} ++export declare var dummy: number; + //// [file.d.ts] + export {}; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsInterfaces.js b/testdata/baselines/reference/submodule/conformance/jsDeclarationsInterfaces.js new file mode 100644 index 0000000000..27aafe1c17 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsInterfaces.js @@ -0,0 +1,241 @@ +//// [tests/cases/conformance/jsdoc/declarations/jsDeclarationsInterfaces.ts] //// + +//// [index.js] +// Pretty much all of this should be an error, (since interfaces are forbidden in js), +// but we should be able to synthesize declarations from the symbols regardless + +export interface A {} + +export interface B { + cat: string; +} + +export interface C { + field: T & U; + optionalField?: T; + readonly readonlyField: T & U; + readonly readonlyOptionalField?: U; + (): number; + (x: T): U; + (x: Q): T & Q; + + new (): string; + new (x: T): U; + new (x: Q): T & Q; + + method(): number; + method(a: T & Q): Q & number; + method(a?: number): number; + method(...args: any[]): number; + + optMethod?(): number; +} + +interface G {} + +export { G }; + +interface HH {} + +export { HH as H }; + +export interface I {} +export { I as II }; + +export { J as JJ }; +export interface J {} + +export interface K extends I,J { + x: string; +} + +export interface L extends K { + y: string; +} + +export interface M { + field: T; +} + +export interface N extends M { + other: U; +} + +export interface O { + [idx: string]: string; +} + +export interface P extends O {} + +export interface Q extends O { + [idx: string]: "ok"; +} + +export interface R extends O { + [idx: number]: "ok"; +} + +export interface S extends O { + [idx: string]: "ok"; + [idx: number]: never; +} + +export interface T { + [idx: number]: string; +} + +export interface U extends T {} + + +export interface V extends T { + [idx: string]: string; +} + +export interface W extends T { + [idx: number]: "ok"; +} + +export interface X extends T { + [idx: string]: string; + [idx: number]: "ok"; +} + +export interface Y { + [idx: string]: {x: number}; + [idx: number]: {x: number, y: number}; +} + +export interface Z extends Y {} + +export interface AA extends Y { + [idx: string]: {x: number, y: number}; +} + +export interface BB extends Y { + [idx: number]: {x: 0, y: 0}; +} + +export interface CC extends Y { + [idx: string]: {x: number, y: number}; + [idx: number]: {x: 0, y: 0}; +} + + +//// [index.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.JJ = exports.II = exports.H = exports.G = void 0; + + +//// [index.d.ts] +// Pretty much all of this should be an error, (since interfaces are forbidden in js), +// but we should be able to synthesize declarations from the symbols regardless +export interface A { +} +export interface B { + cat: string; +} +export interface C { + field: T & U; + optionalField?: T; + readonly readonlyField: T & U; + readonly readonlyOptionalField?: U; + (): number; + (x: T): U; + (x: Q): T & Q; + new (); + new (x: T); + new (x: Q); + method(): number; + method(a: T & Q): Q & number; + method(a?: number): number; + method(...args: any[]): number; + optMethod?(): number; +} +interface G { +} +export { G }; +interface HH { +} +export { HH as H }; +export interface I { +} +export { I as II }; +export { J as JJ }; +export interface J { +} +export interface K extends I, J { + x: string; +} +export interface L extends K { + y: string; +} +export interface M { + field: T; +} +export interface N extends M { + other: U; +} +export interface O { + [idx: string]: string; +} +export interface P extends O { +} +export interface Q extends O { + [idx: string]: "ok"; +} +export interface R extends O { + [idx: number]: "ok"; +} +export interface S extends O { + [idx: string]: "ok"; + [idx: number]: never; +} +export interface T { + [idx: number]: string; +} +export interface U extends T { +} +export interface V extends T { + [idx: string]: string; +} +export interface W extends T { + [idx: number]: "ok"; +} +export interface X extends T { + [idx: string]: string; + [idx: number]: "ok"; +} +export interface Y { + [idx: string]: { + x: number; + }; + [idx: number]: { + x: number; + y: number; + }; +} +export interface Z extends Y { +} +export interface AA extends Y { + [idx: string]: { + x: number; + y: number; + }; +} +export interface BB extends Y { + [idx: number]: { + x: 0; + y: 0; + }; +} +export interface CC extends Y { + [idx: string]: { + x: number; + y: number; + }; + [idx: number]: { + x: 0; + y: 0; + }; +} diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsInterfaces.js.diff b/testdata/baselines/reference/submodule/conformance/jsDeclarationsInterfaces.js.diff new file mode 100644 index 0000000000..4818d9900a --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsInterfaces.js.diff @@ -0,0 +1,65 @@ +--- old.jsDeclarationsInterfaces.js ++++ new.jsDeclarationsInterfaces.js +@@= skipped -122, +122 lines =@@ + + //// [index.js] + "use strict"; +-// Pretty much all of this should be an error, (since interfaces are forbidden in js), +-// but we should be able to synthesize declarations from the symbols regardless + Object.defineProperty(exports, "__esModule", { value: true }); ++exports.JJ = exports.II = exports.H = exports.G = void 0; + + + //// [index.d.ts] ++// Pretty much all of this should be an error, (since interfaces are forbidden in js), ++// but we should be able to synthesize declarations from the symbols regardless + export interface A { + } + export interface B { + cat: string; + } + export interface C { +- new (): string; +- new (x: T): U; +- new (x: Q): T & Q; +- (): number; +- (x: T): U; +- (x: Q): T & Q; + field: T & U; + optionalField?: T; + readonly readonlyField: T & U; + readonly readonlyOptionalField?: U; ++ (): number; ++ (x: T): U; ++ (x: Q): T & Q; ++ new (); ++ new (x: T); ++ new (x: Q); + method(): number; + method(a: T & Q): Q & number; + method(a?: number): number; + method(...args: any[]): number; + optMethod?(): number; + } ++interface G { ++} ++export { G }; ++interface HH { ++} ++export { HH as H }; + export interface I { + } ++export { I as II }; ++export { J as JJ }; + export interface J { + } + export interface K extends I, J { +@@= skipped -107, +116 lines =@@ + y: 0; + }; + } +-export interface G { +-} +-interface HH { +-} +-export { HH as H, I as II, J as JJ }; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsJSDocRedirectedLookups.js b/testdata/baselines/reference/submodule/conformance/jsDeclarationsJSDocRedirectedLookups.js new file mode 100644 index 0000000000..b1896d0839 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsJSDocRedirectedLookups.js @@ -0,0 +1,90 @@ +//// [tests/cases/conformance/jsdoc/declarations/jsDeclarationsJSDocRedirectedLookups.ts] //// + +//// [index.js] +// these are recognized as TS concepts by the checker +/** @type {String} */const a = ""; +/** @type {Number} */const b = 0; +/** @type {Boolean} */const c = true; +/** @type {Void} */const d = undefined; +/** @type {Undefined} */const e = undefined; +/** @type {Null} */const f = null; + +/** @type {Function} */const g = () => void 0; +/** @type {function} */const h = () => void 0; +/** @type {array} */const i = []; +/** @type {promise} */const j = Promise.resolve(0); +/** @type {Object} */const k = {x: "x"}; + + +// these are not recognized as anything and should just be lookup failures +// ignore the errors to try to ensure they're emitted as `any` in declaration emit +// @ts-ignore +/** @type {class} */const l = true; +// @ts-ignore +/** @type {bool} */const m = true; +// @ts-ignore +/** @type {int} */const n = true; +// @ts-ignore +/** @type {float} */const o = true; +// @ts-ignore +/** @type {integer} */const p = true; + +// or, in the case of `event` likely erroneously refers to the type of the global Event object +/** @type {event} */const q = undefined; + +//// [index.js] +// these are recognized as TS concepts by the checker +/** @type {String} */ const a = ""; +/** @type {Number} */ const b = 0; +/** @type {Boolean} */ const c = true; +/** @type {Void} */ const d = undefined; +/** @type {Undefined} */ const e = undefined; +/** @type {Null} */ const f = null; +/** @type {Function} */ const g = () => void 0; +/** @type {function} */ const h = () => void 0; +/** @type {array} */ const i = []; +/** @type {promise} */ const j = Promise.resolve(0); +/** @type {Object} */ const k = { x: "x" }; +// these are not recognized as anything and should just be lookup failures +// ignore the errors to try to ensure they're emitted as `any` in declaration emit +// @ts-ignore +/** @type {class} */ const l = true; +// @ts-ignore +/** @type {bool} */ const m = true; +// @ts-ignore +/** @type {int} */ const n = true; +// @ts-ignore +/** @type {float} */ const o = true; +// @ts-ignore +/** @type {integer} */ const p = true; +// or, in the case of `event` likely erroneously refers to the type of the global Event object +/** @type {event} */ const q = undefined; + + +//// [index.d.ts] +// these are recognized as TS concepts by the checker +/** @type {String} */ declare const a: String; +/** @type {Number} */ declare const b: Number; +/** @type {Boolean} */ declare const c: Boolean; +/** @type {Void} */ declare const d: Void; +/** @type {Undefined} */ declare const e: Undefined; +/** @type {Null} */ declare const f: Null; +/** @type {Function} */ declare const g: Function; +/** @type {function} */ declare const h: function; +/** @type {array} */ declare const i: array; +/** @type {promise} */ declare const j: promise; +/** @type {Object} */ declare const k: Object; +// these are not recognized as anything and should just be lookup failures +// ignore the errors to try to ensure they're emitted as `any` in declaration emit +// @ts-ignore +/** @type {class} */ declare const l: class; +// @ts-ignore +/** @type {bool} */ declare const m: bool; +// @ts-ignore +/** @type {int} */ declare const n: int; +// @ts-ignore +/** @type {float} */ declare const o: float; +// @ts-ignore +/** @type {integer} */ declare const p: integer; +// or, in the case of `event` likely erroneously refers to the type of the global Event object +/** @type {event} */ declare const q: event; diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsJSDocRedirectedLookups.js.diff b/testdata/baselines/reference/submodule/conformance/jsDeclarationsJSDocRedirectedLookups.js.diff new file mode 100644 index 0000000000..14aa477b90 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsJSDocRedirectedLookups.js.diff @@ -0,0 +1,96 @@ +--- old.jsDeclarationsJSDocRedirectedLookups.js ++++ new.jsDeclarationsJSDocRedirectedLookups.js +@@= skipped -32, +32 lines =@@ + /** @type {event} */const q = undefined; + + //// [index.js] +-"use strict"; + // these are recognized as TS concepts by the checker + /** @type {String} */ const a = ""; + /** @type {Number} */ const b = 0; +@@= skipped -30, +29 lines =@@ + + + //// [index.d.ts] +-/** @type {String} */ declare const a: string; +-/** @type {Number} */ declare const b: number; +-/** @type {Boolean} */ declare const c: boolean; +-/** @type {Void} */ declare const d: void; +-/** @type {Undefined} */ declare const e: undefined; +-/** @type {Null} */ declare const f: null; ++// these are recognized as TS concepts by the checker ++/** @type {String} */ declare const a: String; ++/** @type {Number} */ declare const b: Number; ++/** @type {Boolean} */ declare const c: Boolean; ++/** @type {Void} */ declare const d: Void; ++/** @type {Undefined} */ declare const e: Undefined; ++/** @type {Null} */ declare const f: Null; + /** @type {Function} */ declare const g: Function; +-/** @type {function} */ declare const h: Function; +-/** @type {array} */ declare const i: any[]; +-/** @type {promise} */ declare const j: Promise; +-/** @type {Object} */ declare const k: { +- [x: string]: string; +-}; ++/** @type {function} */ declare const h: function; ++/** @type {array} */ declare const i: array; ++/** @type {promise} */ declare const j: promise; ++/** @type {Object} */ declare const k: Object; ++// these are not recognized as anything and should just be lookup failures ++// ignore the errors to try to ensure they're emitted as `any` in declaration emit ++// @ts-ignore + /** @type {class} */ declare const l: class; ++// @ts-ignore + /** @type {bool} */ declare const m: bool; ++// @ts-ignore + /** @type {int} */ declare const n: int; ++// @ts-ignore + /** @type {float} */ declare const o: float; ++// @ts-ignore + /** @type {integer} */ declare const p: integer; +-/** @type {event} */ declare const q: Event | undefined; +- +- +-//// [DtsFileErrors] +- +- +-out/index.d.ts(14,39): error TS2304: Cannot find name 'class'. +-out/index.d.ts(15,38): error TS2304: Cannot find name 'bool'. +-out/index.d.ts(16,37): error TS2304: Cannot find name 'int'. +-out/index.d.ts(17,39): error TS2552: Cannot find name 'float'. Did you mean 'GLfloat'? +-out/index.d.ts(18,41): error TS2304: Cannot find name 'integer'. +- +- +-==== out/index.d.ts (5 errors) ==== +- /** @type {String} */ declare const a: string; +- /** @type {Number} */ declare const b: number; +- /** @type {Boolean} */ declare const c: boolean; +- /** @type {Void} */ declare const d: void; +- /** @type {Undefined} */ declare const e: undefined; +- /** @type {Null} */ declare const f: null; +- /** @type {Function} */ declare const g: Function; +- /** @type {function} */ declare const h: Function; +- /** @type {array} */ declare const i: any[]; +- /** @type {promise} */ declare const j: Promise; +- /** @type {Object} */ declare const k: { +- [x: string]: string; +- }; +- /** @type {class} */ declare const l: class; +- ~~~~~ +-!!! error TS2304: Cannot find name 'class'. +- /** @type {bool} */ declare const m: bool; +- ~~~~ +-!!! error TS2304: Cannot find name 'bool'. +- /** @type {int} */ declare const n: int; +- ~~~ +-!!! error TS2304: Cannot find name 'int'. +- /** @type {float} */ declare const o: float; +- ~~~~~ +-!!! error TS2552: Cannot find name 'float'. Did you mean 'GLfloat'? +- /** @type {integer} */ declare const p: integer; +- ~~~~~~~ +-!!! error TS2304: Cannot find name 'integer'. +- /** @type {event} */ declare const q: Event | undefined; +- ++// or, in the case of `event` likely erroneously refers to the type of the global Event object ++/** @type {event} */ declare const q: event; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsJson.js b/testdata/baselines/reference/submodule/conformance/jsDeclarationsJson.js new file mode 100644 index 0000000000..a085eaf616 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsJson.js @@ -0,0 +1,43 @@ +//// [tests/cases/conformance/jsdoc/declarations/jsDeclarationsJson.ts] //// + +//// [index.js] +const j = require("./obj.json"); +module.exports = j; +//// [obj.json] +{ + "x": 12, + "y": 12, + "obj": { + "items": [{"x": 12}, {"x": 12, "y": 12}, {"x": 0}, {"x": -1, "err": true}] + } +} + +//// [index.js] +const j = require("./obj.json"); +export = j; +module.exports = j; + + +//// [index.d.ts] +export = j; + + +//// [DtsFileErrors] + + +out/index.d.ts(1,10): error TS2304: Cannot find name 'j'. + + +==== out/index.d.ts (1 errors) ==== + export = j; + ~ +!!! error TS2304: Cannot find name 'j'. + +==== obj.json (0 errors) ==== + { + "x": 12, + "y": 12, + "obj": { + "items": [{"x": 12}, {"x": 12, "y": 12}, {"x": 0}, {"x": -1, "err": true}] + } + } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsJson.js.diff b/testdata/baselines/reference/submodule/conformance/jsDeclarationsJson.js.diff new file mode 100644 index 0000000000..1776dfd73c --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsJson.js.diff @@ -0,0 +1,62 @@ +--- old.jsDeclarationsJson.js ++++ new.jsDeclarationsJson.js +@@= skipped -11, +11 lines =@@ + } + } + +-//// [obj.json] +-{ +- "x": 12, +- "y": 12, +- "obj": { +- "items": [{ "x": 12 }, { "x": 12, "y": 12 }, { "x": 0 }, { "x": -1, "err": true }] +- } +-} + //// [index.js] + const j = require("./obj.json"); ++export = j; + module.exports = j; + + + //// [index.d.ts] + export = j; +-declare const j: { +- x: number; +- y: number; +- obj: { +- items: ({ +- x: number; +- y?: undefined; +- err?: undefined; +- } | { +- x: number; +- y: number; +- err?: undefined; +- } | { +- y?: undefined; +- x: number; +- err: boolean; +- })[]; +- }; +-}; ++ ++ ++//// [DtsFileErrors] ++ ++ ++out/index.d.ts(1,10): error TS2304: Cannot find name 'j'. ++ ++ ++==== out/index.d.ts (1 errors) ==== ++ export = j; ++ ~ ++!!! error TS2304: Cannot find name 'j'. ++ ++==== obj.json (0 errors) ==== ++ { ++ "x": 12, ++ "y": 12, ++ "obj": { ++ "items": [{"x": 12}, {"x": 12, "y": 12}, {"x": 0}, {"x": -1, "err": true}] ++ } ++ } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsMissingGenerics.js b/testdata/baselines/reference/submodule/conformance/jsDeclarationsMissingGenerics.js new file mode 100644 index 0000000000..aeb030f791 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsMissingGenerics.js @@ -0,0 +1,32 @@ +//// [tests/cases/conformance/jsdoc/declarations/jsDeclarationsMissingGenerics.ts] //// + +//// [file.js] +/** + * @param {Array} x + */ +function x(x) {} +/** + * @param {Promise} x + */ +function y(x) {} + +//// [file.js] +/** + * @param {Array} x + */ +function x(x) { } +/** + * @param {Promise} x + */ +function y(x) { } + + +//// [file.d.ts] +/** + * @param {Array} x + */ +declare function x(x: Array): void; +/** + * @param {Promise} x + */ +declare function y(x: Promise): void; diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsMissingGenerics.js.diff b/testdata/baselines/reference/submodule/conformance/jsDeclarationsMissingGenerics.js.diff new file mode 100644 index 0000000000..3b0d2bc189 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsMissingGenerics.js.diff @@ -0,0 +1,13 @@ +--- old.jsDeclarationsMissingGenerics.js ++++ new.jsDeclarationsMissingGenerics.js +@@= skipped -24, +24 lines =@@ + /** + * @param {Array} x + */ +-declare function x(x: any[]): void; ++declare function x(x: Array): void; + /** + * @param {Promise} x + */ +-declare function y(x: Promise): void; ++declare function y(x: Promise): void; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsMissingTypeParameters.js b/testdata/baselines/reference/submodule/conformance/jsDeclarationsMissingTypeParameters.js new file mode 100644 index 0000000000..c5ebeac436 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsMissingTypeParameters.js @@ -0,0 +1,62 @@ +//// [tests/cases/conformance/jsdoc/declarations/jsDeclarationsMissingTypeParameters.ts] //// + +//// [file.js] +/** + * @param {Array=} y desc + */ +function x(y) { } + +// @ts-ignore +/** @param {function (Array)} func Invoked + */ +function y(func) { return; } + +/** + * @return {(Array.<> | null)} list of devices + */ +function z() { return null ;} + +/** + * + * @return {?Promise} A promise + */ +function w() { return null; } + +//// [file.js] +/** + * @param {Array=} y desc + */ +function x(y) { } +// @ts-ignore +/** @param {function (Array)} func Invoked + */ +function y(func) { return; } +/** + * @return {(Array.<> | null)} list of devices + */ +function z() { return null; } +/** + * + * @return {?Promise} A promise + */ +function w() { return null; } + + +//// [file.d.ts] +/** + * @param {Array=} y desc + */ +declare function x(y?: Array | undefined): void; +// @ts-ignore +/** @param {function (Array)} func Invoked + */ +declare function y(func: any): void; +/** + * @return {(Array.<> | null)} list of devices + */ +declare function z(): (Array | null); +/** + * + * @return {?Promise} A promise + */ +declare function w(): Promise | null; diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsMissingTypeParameters.js.diff b/testdata/baselines/reference/submodule/conformance/jsDeclarationsMissingTypeParameters.js.diff new file mode 100644 index 0000000000..ba8bbacdbf --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsMissingTypeParameters.js.diff @@ -0,0 +1,24 @@ +--- old.jsDeclarationsMissingTypeParameters.js ++++ new.jsDeclarationsMissingTypeParameters.js +@@= skipped -45, +45 lines =@@ + /** + * @param {Array=} y desc + */ +-declare function x(y?: any[] | undefined): void; ++declare function x(y?: Array | undefined): void; ++// @ts-ignore + /** @param {function (Array)} func Invoked + */ +-declare function y(func: (arg0: any[]) => any): void; ++declare function y(func: any): void; + /** + * @return {(Array.<> | null)} list of devices + */ +-declare function z(): (any[] | null); ++declare function z(): (Array | null); + /** + * + * @return {?Promise} A promise + */ +-declare function w(): Promise | null; ++declare function w(): Promise | null; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsModuleReferenceHasEmit.js b/testdata/baselines/reference/submodule/conformance/jsDeclarationsModuleReferenceHasEmit.js new file mode 100644 index 0000000000..b7c5b263b8 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsModuleReferenceHasEmit.js @@ -0,0 +1,46 @@ +//// [tests/cases/conformance/jsdoc/declarations/jsDeclarationsModuleReferenceHasEmit.ts] //// + +//// [index.js] +/** + * @module A + */ +class A {} + + +/** + * Target element + * @type {module:A} + */ +export let el = null; + +export default A; + +//// [index.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.el = void 0; +/** + * @module A + */ +class A { +} +/** + * Target element + * @type {module:A} + */ +exports.el = null; +exports.default = A; + + +//// [index.d.ts] +/** + * @module A + */ +declare class A { +} +/** + * Target element + * @type {module:A} + */ +export declare let el: module; +export default A; diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsModuleReferenceHasEmit.js.diff b/testdata/baselines/reference/submodule/conformance/jsDeclarationsModuleReferenceHasEmit.js.diff new file mode 100644 index 0000000000..1dfff0def5 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsModuleReferenceHasEmit.js.diff @@ -0,0 +1,22 @@ +--- old.jsDeclarationsModuleReferenceHasEmit.js ++++ new.jsDeclarationsModuleReferenceHasEmit.js +@@= skipped -33, +33 lines =@@ + + //// [index.d.ts] + /** +- * Target element +- * @type {module:A} +- */ +-export let el: any; +-export default A; +-/** + * @module A + */ + declare class A { + } ++/** ++ * Target element ++ * @type {module:A} ++ */ ++export declare let el: module; ++export default A; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsMultipleExportFromMerge.js b/testdata/baselines/reference/submodule/conformance/jsDeclarationsMultipleExportFromMerge.js new file mode 100644 index 0000000000..7dcd2840e8 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsMultipleExportFromMerge.js @@ -0,0 +1,78 @@ +//// [tests/cases/conformance/jsdoc/declarations/jsDeclarationsMultipleExportFromMerge.ts] //// + +//// [items.js] +export const a = 1; +export const b = 2; +export const c = 3; + +//// [justone.js] +export { a, b, c } from "./items"; + +//// [two.js] +export { a } from "./items"; +export { b, c } from "./items"; + +//// [multiple.js] +export {a, b} from "./items"; +export {a as aa} from "./two"; +export {b as bb} from "./two"; +export {c} from "./two" +export {c as cc} from "./items"; + + +//// [items.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.c = exports.b = exports.a = void 0; +exports.a = 1; +exports.b = 2; +exports.c = 3; +//// [justone.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.c = exports.b = exports.a = void 0; +const items_1 = require("./items"); +Object.defineProperty(exports, "a", { enumerable: true, get: function () { return items_1.a; } }); +Object.defineProperty(exports, "b", { enumerable: true, get: function () { return items_1.b; } }); +Object.defineProperty(exports, "c", { enumerable: true, get: function () { return items_1.c; } }); +//// [two.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.c = exports.b = exports.a = void 0; +const items_1 = require("./items"); +Object.defineProperty(exports, "a", { enumerable: true, get: function () { return items_1.a; } }); +const items_2 = require("./items"); +Object.defineProperty(exports, "b", { enumerable: true, get: function () { return items_2.b; } }); +Object.defineProperty(exports, "c", { enumerable: true, get: function () { return items_2.c; } }); +//// [multiple.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.cc = exports.c = exports.bb = exports.aa = exports.b = exports.a = void 0; +const items_1 = require("./items"); +Object.defineProperty(exports, "a", { enumerable: true, get: function () { return items_1.a; } }); +Object.defineProperty(exports, "b", { enumerable: true, get: function () { return items_1.b; } }); +const two_1 = require("./two"); +Object.defineProperty(exports, "aa", { enumerable: true, get: function () { return two_1.a; } }); +const two_2 = require("./two"); +Object.defineProperty(exports, "bb", { enumerable: true, get: function () { return two_2.b; } }); +const two_3 = require("./two"); +Object.defineProperty(exports, "c", { enumerable: true, get: function () { return two_3.c; } }); +const items_2 = require("./items"); +Object.defineProperty(exports, "cc", { enumerable: true, get: function () { return items_2.c; } }); + + +//// [items.d.ts] +export declare const a = 1; +export declare const b = 2; +export declare const c = 3; +//// [justone.d.ts] +export { a, b, c } from "./items"; +//// [two.d.ts] +export { a } from "./items"; +export { b, c } from "./items"; +//// [multiple.d.ts] +export { a, b } from "./items"; +export { a as aa } from "./two"; +export { b as bb } from "./two"; +export { c } from "./two"; +export { c as cc } from "./items"; diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsMultipleExportFromMerge.js.diff b/testdata/baselines/reference/submodule/conformance/jsDeclarationsMultipleExportFromMerge.js.diff new file mode 100644 index 0000000000..b92971f769 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsMultipleExportFromMerge.js.diff @@ -0,0 +1,65 @@ +--- old.jsDeclarationsMultipleExportFromMerge.js ++++ new.jsDeclarationsMultipleExportFromMerge.js +@@= skipped -30, +30 lines =@@ + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.c = exports.b = exports.a = void 0; +-var items_1 = require("./items"); ++const items_1 = require("./items"); + Object.defineProperty(exports, "a", { enumerable: true, get: function () { return items_1.a; } }); + Object.defineProperty(exports, "b", { enumerable: true, get: function () { return items_1.b; } }); + Object.defineProperty(exports, "c", { enumerable: true, get: function () { return items_1.c; } }); +@@= skipped -8, +8 lines =@@ + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.c = exports.b = exports.a = void 0; +-var items_1 = require("./items"); ++const items_1 = require("./items"); + Object.defineProperty(exports, "a", { enumerable: true, get: function () { return items_1.a; } }); +-var items_2 = require("./items"); ++const items_2 = require("./items"); + Object.defineProperty(exports, "b", { enumerable: true, get: function () { return items_2.b; } }); + Object.defineProperty(exports, "c", { enumerable: true, get: function () { return items_2.c; } }); + //// [multiple.js] + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.cc = exports.c = exports.bb = exports.aa = exports.b = exports.a = void 0; +-var items_1 = require("./items"); ++const items_1 = require("./items"); + Object.defineProperty(exports, "a", { enumerable: true, get: function () { return items_1.a; } }); + Object.defineProperty(exports, "b", { enumerable: true, get: function () { return items_1.b; } }); +-var two_1 = require("./two"); ++const two_1 = require("./two"); + Object.defineProperty(exports, "aa", { enumerable: true, get: function () { return two_1.a; } }); +-var two_2 = require("./two"); ++const two_2 = require("./two"); + Object.defineProperty(exports, "bb", { enumerable: true, get: function () { return two_2.b; } }); +-var two_3 = require("./two"); ++const two_3 = require("./two"); + Object.defineProperty(exports, "c", { enumerable: true, get: function () { return two_3.c; } }); +-var items_2 = require("./items"); ++const items_2 = require("./items"); + Object.defineProperty(exports, "cc", { enumerable: true, get: function () { return items_2.c; } }); + + + //// [items.d.ts] +-export const a: 1; +-export const b: 2; +-export const c: 3; ++export declare const a = 1; ++export declare const b = 2; ++export declare const c = 3; + //// [justone.d.ts] + export { a, b, c } from "./items"; + //// [two.d.ts] +-export { a, b, c } from "./items"; ++export { a } from "./items"; ++export { b, c } from "./items"; + //// [multiple.d.ts] +-export { a, b, c as cc } from "./items"; +-export { a as aa, b as bb, c } from "./two"; ++export { a, b } from "./items"; ++export { a as aa } from "./two"; ++export { b as bb } from "./two"; ++export { c } from "./two"; ++export { c as cc } from "./items"; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsNestedParams.js b/testdata/baselines/reference/submodule/conformance/jsDeclarationsNestedParams.js new file mode 100644 index 0000000000..84169804ec --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsNestedParams.js @@ -0,0 +1,82 @@ +//// [tests/cases/conformance/jsdoc/declarations/jsDeclarationsNestedParams.ts] //// + +//// [file.js] +class X { + /** + * Cancels the request, sending a cancellation to the other party + * @param {Object} error __auto_generated__ + * @param {string?} error.reason the error reason to send the cancellation with + * @param {string?} error.code the error code to send the cancellation with + * @returns {Promise.<*>} resolves when the event has been sent. + */ + async cancel({reason, code}) {} +} + +class Y { + /** + * Cancels the request, sending a cancellation to the other party + * @param {Object} error __auto_generated__ + * @param {string?} error.reason the error reason to send the cancellation with + * @param {Object} error.suberr + * @param {string?} error.suberr.reason the error reason to send the cancellation with + * @param {string?} error.suberr.code the error code to send the cancellation with + * @returns {Promise.<*>} resolves when the event has been sent. + */ + async cancel({reason, suberr}) {} +} + + +//// [file.js] +class X { + /** + * Cancels the request, sending a cancellation to the other party + * @param {Object} error __auto_generated__ + * @param {string?} error.reason the error reason to send the cancellation with + * @param {string?} error.code the error code to send the cancellation with + * @returns {Promise.<*>} resolves when the event has been sent. + */ + async cancel({ reason, code }) { } +} +class Y { + /** + * Cancels the request, sending a cancellation to the other party + * @param {Object} error __auto_generated__ + * @param {string?} error.reason the error reason to send the cancellation with + * @param {Object} error.suberr + * @param {string?} error.suberr.reason the error reason to send the cancellation with + * @param {string?} error.suberr.code the error code to send the cancellation with + * @returns {Promise.<*>} resolves when the event has been sent. + */ + async cancel({ reason, suberr }) { } +} + + +//// [file.d.ts] +declare class X { + /** + * Cancels the request, sending a cancellation to the other party + * @param {Object} error __auto_generated__ + * @param {string?} error.reason the error reason to send the cancellation with + * @param {string?} error.code the error code to send the cancellation with + * @returns {Promise.<*>} resolves when the event has been sent. + */ + cancel({ reason, code }: { + code: any; + reason: any; + }): Promise; +} +declare class Y { + /** + * Cancels the request, sending a cancellation to the other party + * @param {Object} error __auto_generated__ + * @param {string?} error.reason the error reason to send the cancellation with + * @param {Object} error.suberr + * @param {string?} error.suberr.reason the error reason to send the cancellation with + * @param {string?} error.suberr.code the error code to send the cancellation with + * @returns {Promise.<*>} resolves when the event has been sent. + */ + cancel({ reason, suberr }: { + reason: any; + suberr: any; + }): Promise; +} diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsNestedParams.js.diff b/testdata/baselines/reference/submodule/conformance/jsDeclarationsNestedParams.js.diff new file mode 100644 index 0000000000..5468e255b7 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsNestedParams.js.diff @@ -0,0 +1,64 @@ +--- old.jsDeclarationsNestedParams.js ++++ new.jsDeclarationsNestedParams.js +@@= skipped -26, +26 lines =@@ + + + //// [file.js] +-var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { +- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } +- return new (P || (P = Promise))(function (resolve, reject) { +- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } +- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } +- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } +- step((generator = generator.apply(thisArg, _arguments || [])).next()); +- }); +-}; + class X { + /** + * Cancels the request, sending a cancellation to the other party +@@= skipped -17, +8 lines =@@ + * @param {string?} error.code the error code to send the cancellation with + * @returns {Promise.<*>} resolves when the event has been sent. + */ +- cancel(_a) { +- return __awaiter(this, arguments, void 0, function* ({ reason, code }) { }); +- } ++ async cancel({ reason, code }) { } + } + class Y { + /** +@@= skipped -14, +12 lines =@@ + * @param {string?} error.suberr.code the error code to send the cancellation with + * @returns {Promise.<*>} resolves when the event has been sent. + */ +- cancel(_a) { +- return __awaiter(this, arguments, void 0, function* ({ reason, suberr }) { }); +- } ++ async cancel({ reason, suberr }) { } + } + + +@@= skipped -16, +14 lines =@@ + * @returns {Promise.<*>} resolves when the event has been sent. + */ + cancel({ reason, code }: { +- reason: string | null; +- code: string | null; ++ code: any; ++ reason: any; + }): Promise; + } + declare class Y { +@@= skipped -15, +15 lines =@@ + * @returns {Promise.<*>} resolves when the event has been sent. + */ + cancel({ reason, suberr }: { +- reason: string | null; +- suberr: { +- reason: string | null; +- code: string | null; +- }; ++ reason: any; ++ suberr: any; + }): Promise; + } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsNonIdentifierInferredNames.js b/testdata/baselines/reference/submodule/conformance/jsDeclarationsNonIdentifierInferredNames.js new file mode 100644 index 0000000000..6ba002df49 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsNonIdentifierInferredNames.js @@ -0,0 +1,42 @@ +//// [tests/cases/conformance/jsdoc/declarations/jsDeclarationsNonIdentifierInferredNames.ts] //// + +//// [jsDeclarationsNonIdentifierInferredNames.jsx] +/// +import * as React from "react"; +const dynPropName = "data-dyn"; +export const ExampleFunctionalComponent = ({ "data-testid": dataTestId, [dynPropName]: dynProp }) => ( + <>Hello +); + +//// [jsDeclarationsNonIdentifierInferredNames.js] +/// +import * as React from "react"; +const dynPropName = "data-dyn"; +export const ExampleFunctionalComponent = ({ "data-testid": dataTestId, [dynPropName]: dynProp }) => (React.createElement(React.Fragment, null, "Hello")); + + +//// [jsDeclarationsNonIdentifierInferredNames.d.ts] +declare const dynPropName = "data-dyn"; +export declare const ExampleFunctionalComponent: ({ "data-testid": dataTestId, [dynPropName]: dynProp }: { + "data-dyn": any; + "data-testid": any; +}) => JSX.Element; +export {}; + + +//// [DtsFileErrors] + + +out/jsDeclarationsNonIdentifierInferredNames.d.ts(5,7): error TS2503: Cannot find namespace 'JSX'. + + +==== out/jsDeclarationsNonIdentifierInferredNames.d.ts (1 errors) ==== + declare const dynPropName = "data-dyn"; + export declare const ExampleFunctionalComponent: ({ "data-testid": dataTestId, [dynPropName]: dynProp }: { + "data-dyn": any; + "data-testid": any; + }) => JSX.Element; + ~~~ +!!! error TS2503: Cannot find namespace 'JSX'. + export {}; + \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsNonIdentifierInferredNames.js.diff b/testdata/baselines/reference/submodule/conformance/jsDeclarationsNonIdentifierInferredNames.js.diff new file mode 100644 index 0000000000..a97e6da0c6 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsNonIdentifierInferredNames.js.diff @@ -0,0 +1,38 @@ +--- old.jsDeclarationsNonIdentifierInferredNames.js ++++ new.jsDeclarationsNonIdentifierInferredNames.js +@@= skipped -15, +15 lines =@@ + + + //// [jsDeclarationsNonIdentifierInferredNames.d.ts] +-export function ExampleFunctionalComponent({ "data-testid": dataTestId, [dynPropName]: dynProp }: { ++declare const dynPropName = "data-dyn"; ++export declare const ExampleFunctionalComponent: ({ "data-testid": dataTestId, [dynPropName]: dynProp }: { + "data-dyn": any; + "data-testid": any; +-}): JSX.Element; +-declare const dynPropName: "data-dyn"; ++}) => JSX.Element; + export {}; + + + //// [DtsFileErrors] + + +-out/jsDeclarationsNonIdentifierInferredNames.d.ts(4,5): error TS2503: Cannot find namespace 'JSX'. ++out/jsDeclarationsNonIdentifierInferredNames.d.ts(5,7): error TS2503: Cannot find namespace 'JSX'. + + + ==== out/jsDeclarationsNonIdentifierInferredNames.d.ts (1 errors) ==== +- export function ExampleFunctionalComponent({ "data-testid": dataTestId, [dynPropName]: dynProp }: { ++ declare const dynPropName = "data-dyn"; ++ export declare const ExampleFunctionalComponent: ({ "data-testid": dataTestId, [dynPropName]: dynProp }: { + "data-dyn": any; + "data-testid": any; +- }): JSX.Element; +- ~~~ ++ }) => JSX.Element; ++ ~~~ + !!! error TS2503: Cannot find namespace 'JSX'. +- declare const dynPropName: "data-dyn"; + export {}; + \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsOptionalTypeLiteralProps1.js b/testdata/baselines/reference/submodule/conformance/jsDeclarationsOptionalTypeLiteralProps1.js new file mode 100644 index 0000000000..d379aef9ed --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsOptionalTypeLiteralProps1.js @@ -0,0 +1,50 @@ +//// [tests/cases/conformance/jsdoc/declarations/jsDeclarationsOptionalTypeLiteralProps1.ts] //// + +//// [foo.js] +/** + * foo + * + * @public + * @param {object} opts + * @param {number} opts.a + * @param {number} [opts.b] + * @param {number} [opts.c] + * @returns {number} + */ +function foo({ a, b, c }) { + return a + b + c; +} + + +//// [foo.js] +/** + * foo + * + * @public + * @param {object} opts + * @param {number} opts.a + * @param {number} [opts.b] + * @param {number} [opts.c] + * @returns {number} + */ +function foo({ a, b, c }) { + return a + b + c; +} + + +//// [foo.d.ts] +/** + * foo + * + * @public + * @param {object} opts + * @param {number} opts.a + * @param {number} [opts.b] + * @param {number} [opts.c] + * @returns {number} + */ +declare function foo({ a, b, c }: { + a: any; + b: any; + c: any; +}): number; diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsOptionalTypeLiteralProps1.js.diff b/testdata/baselines/reference/submodule/conformance/jsDeclarationsOptionalTypeLiteralProps1.js.diff new file mode 100644 index 0000000000..5f843f01a8 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsOptionalTypeLiteralProps1.js.diff @@ -0,0 +1,13 @@ +--- old.jsDeclarationsOptionalTypeLiteralProps1.js ++++ new.jsDeclarationsOptionalTypeLiteralProps1.js +@@= skipped -43, +43 lines =@@ + * @returns {number} + */ + declare function foo({ a, b, c }: { +- a: number; +- b?: number; +- c?: number; ++ a: any; ++ b: any; ++ c: any; + }): number; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsOptionalTypeLiteralProps2.js b/testdata/baselines/reference/submodule/conformance/jsDeclarationsOptionalTypeLiteralProps2.js new file mode 100644 index 0000000000..9983fdcc96 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsOptionalTypeLiteralProps2.js @@ -0,0 +1,50 @@ +//// [tests/cases/conformance/jsdoc/declarations/jsDeclarationsOptionalTypeLiteralProps2.ts] //// + +//// [foo.js] +/** + * foo + * + * @public + * @param {object} opts + * @param {number} opts.a + * @param {number} [opts.b] + * @param {number} [opts.c] + * @returns {number} + */ +function foo({ a, b, c }) { + return a + (b ?? 0) + (c ?? 0); +} + + +//// [foo.js] +/** + * foo + * + * @public + * @param {object} opts + * @param {number} opts.a + * @param {number} [opts.b] + * @param {number} [opts.c] + * @returns {number} + */ +function foo({ a, b, c }) { + return a + (b ?? 0) + (c ?? 0); +} + + +//// [foo.d.ts] +/** + * foo + * + * @public + * @param {object} opts + * @param {number} opts.a + * @param {number} [opts.b] + * @param {number} [opts.c] + * @returns {number} + */ +declare function foo({ a, b, c }: { + a: any; + b: any; + c: any; +}): number; diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsOptionalTypeLiteralProps2.js.diff b/testdata/baselines/reference/submodule/conformance/jsDeclarationsOptionalTypeLiteralProps2.js.diff new file mode 100644 index 0000000000..bed970b753 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsOptionalTypeLiteralProps2.js.diff @@ -0,0 +1,21 @@ +--- old.jsDeclarationsOptionalTypeLiteralProps2.js ++++ new.jsDeclarationsOptionalTypeLiteralProps2.js +@@= skipped -16, +16 lines =@@ + + + //// [foo.js] +-"use strict"; + /** + * foo + * +@@= skipped -28, +27 lines =@@ + * @returns {number} + */ + declare function foo({ a, b, c }: { +- a: number; +- b?: number | undefined; +- c?: number | undefined; ++ a: any; ++ b: any; ++ c: any; + }): number; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsPackageJson.js b/testdata/baselines/reference/submodule/conformance/jsDeclarationsPackageJson.js new file mode 100644 index 0000000000..ab138e272a --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsPackageJson.js @@ -0,0 +1,93 @@ +//// [tests/cases/conformance/jsdoc/declarations/jsDeclarationsPackageJson.ts] //// + +//// [index.js] +const j = require("./package.json"); +module.exports = j; +//// [package.json] +{ + "name": "pkg", + "version": "0.1.0", + "description": "A package", + "main": "./dist/index.js", + "bin": { + "cli": "./bin/cli.js", + }, + "engines": { + "node": ">=0" + }, + "scripts": { + "scriptname": "run && run again", + }, + "devDependencies": { + "@ns/dep": "0.1.2", + }, + "dependencies": { + "dep": "1.2.3", + }, + "repository": "microsoft/TypeScript", + "keywords": [ + "kw" + ], + "author": "Auth", + "license": "See Licensce", + "homepage": "https://site", + "config": { + "o": ["a"] + } +} + + +//// [index.js] +const j = require("./package.json"); +export = j; +module.exports = j; + + +//// [index.d.ts] +export = j; + + +//// [DtsFileErrors] + + +out/index.d.ts(1,10): error TS2304: Cannot find name 'j'. + + +==== out/index.d.ts (1 errors) ==== + export = j; + ~ +!!! error TS2304: Cannot find name 'j'. + +==== package.json (0 errors) ==== + { + "name": "pkg", + "version": "0.1.0", + "description": "A package", + "main": "./dist/index.js", + "bin": { + "cli": "./bin/cli.js", + }, + "engines": { + "node": ">=0" + }, + "scripts": { + "scriptname": "run && run again", + }, + "devDependencies": { + "@ns/dep": "0.1.2", + }, + "dependencies": { + "dep": "1.2.3", + }, + "repository": "microsoft/TypeScript", + "keywords": [ + "kw" + ], + "author": "Auth", + "license": "See Licensce", + "homepage": "https://site", + "config": { + "o": ["a"] + } + } + \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsPackageJson.js.diff b/testdata/baselines/reference/submodule/conformance/jsDeclarationsPackageJson.js.diff new file mode 100644 index 0000000000..5f87a1783e --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsPackageJson.js.diff @@ -0,0 +1,121 @@ +--- old.jsDeclarationsPackageJson.js ++++ new.jsDeclarationsPackageJson.js +@@= skipped -36, +36 lines =@@ + } + + +-//// [package.json] +-{ +- "name": "pkg", +- "version": "0.1.0", +- "description": "A package", +- "main": "./dist/index.js", +- "bin": { +- "cli": "./bin/cli.js" +- }, +- "engines": { +- "node": ">=0" +- }, +- "scripts": { +- "scriptname": "run && run again" +- }, +- "devDependencies": { +- "@ns/dep": "0.1.2" +- }, +- "dependencies": { +- "dep": "1.2.3" +- }, +- "repository": "microsoft/TypeScript", +- "keywords": [ +- "kw" +- ], +- "author": "Auth", +- "license": "See Licensce", +- "homepage": "https://site", +- "config": { +- "o": ["a"] +- } +-} + //// [index.js] + const j = require("./package.json"); ++export = j; + module.exports = j; + + + //// [index.d.ts] + export = j; +-declare const j: { +- name: string; +- version: string; +- description: string; +- main: string; +- bin: { +- cli: string; +- }; +- engines: { +- node: string; +- }; +- scripts: { +- scriptname: string; +- }; +- devDependencies: { +- "@ns/dep": string; +- }; +- dependencies: { +- dep: string; +- }; +- repository: string; +- keywords: string[]; +- author: string; +- license: string; +- homepage: string; +- config: { +- o: string[]; +- }; +-}; ++ ++ ++//// [DtsFileErrors] ++ ++ ++out/index.d.ts(1,10): error TS2304: Cannot find name 'j'. ++ ++ ++==== out/index.d.ts (1 errors) ==== ++ export = j; ++ ~ ++!!! error TS2304: Cannot find name 'j'. ++ ++==== package.json (0 errors) ==== ++ { ++ "name": "pkg", ++ "version": "0.1.0", ++ "description": "A package", ++ "main": "./dist/index.js", ++ "bin": { ++ "cli": "./bin/cli.js", ++ }, ++ "engines": { ++ "node": ">=0" ++ }, ++ "scripts": { ++ "scriptname": "run && run again", ++ }, ++ "devDependencies": { ++ "@ns/dep": "0.1.2", ++ }, ++ "dependencies": { ++ "dep": "1.2.3", ++ }, ++ "repository": "microsoft/TypeScript", ++ "keywords": [ ++ "kw" ++ ], ++ "author": "Auth", ++ "license": "See Licensce", ++ "homepage": "https://site", ++ "config": { ++ "o": ["a"] ++ } ++ } ++ \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsParameterTagReusesInputNodeInEmit1.js b/testdata/baselines/reference/submodule/conformance/jsDeclarationsParameterTagReusesInputNodeInEmit1.js new file mode 100644 index 0000000000..6be074102e --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsParameterTagReusesInputNodeInEmit1.js @@ -0,0 +1,68 @@ +//// [tests/cases/conformance/jsdoc/declarations/jsDeclarationsParameterTagReusesInputNodeInEmit1.ts] //// + +//// [base.js] +class Base { + constructor() {} +} + +const BaseFactory = () => { + return new Base(); +}; + +BaseFactory.Base = Base; + +module.exports = BaseFactory; + +//// [file.js] +/** @typedef {import('./base')} BaseFactory */ +/** + * @callback BaseFactoryFactory + * @param {import('./base')} factory + */ +/** @enum {import('./base')} */ +const couldntThinkOfAny = {} + +/** + * + * @param {InstanceType} base + * @returns {InstanceType} + */ +const test = (base) => { + return base; +}; + + +//// [base.js] +class Base { + constructor() { } +} +const BaseFactory = () => { + return new Base(); +}; +BaseFactory.Base = Base; +export = BaseFactory; +module.exports = BaseFactory; +//// [file.js] +/** @typedef {import('./base')} BaseFactory */ +/** + * @callback BaseFactoryFactory + * @param {import('./base')} factory + */ +/** @enum {import('./base')} */ +const couldntThinkOfAny = {}; +/** + * + * @param {InstanceType} base + * @returns {InstanceType} + */ +const test = (base) => { + return base; +}; +export {}; + + +//// [base.d.ts] +export = BaseFactory; +//// [file.d.ts] +export type BaseFactory = import('./base'); +export type BaseFactoryFactory = (factory: import('./base')) ; diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsParameterTagReusesInputNodeInEmit1.js.diff b/testdata/baselines/reference/submodule/conformance/jsDeclarationsParameterTagReusesInputNodeInEmit1.js.diff new file mode 100644 index 0000000000..f2dae38cd5 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsParameterTagReusesInputNodeInEmit1.js.diff @@ -0,0 +1,59 @@ +--- old.jsDeclarationsParameterTagReusesInputNodeInEmit1.js ++++ new.jsDeclarationsParameterTagReusesInputNodeInEmit1.js +@@= skipped -39, +39 lines =@@ + return new Base(); + }; + BaseFactory.Base = Base; ++export = BaseFactory; + module.exports = BaseFactory; + //// [file.js] + /** @typedef {import('./base')} BaseFactory */ +@@= skipped -17, +18 lines =@@ + const test = (base) => { + return base; + }; ++export {}; + + + //// [base.d.ts] + export = BaseFactory; +-declare function BaseFactory(): Base; +-declare namespace BaseFactory { +- export { Base }; +-} +-declare class Base { +-} + //// [file.d.ts] +-type couldntThinkOfAny = { +- (): {}; +- Base: { +- new (): {}; +- }; +-}; +-/** @typedef {import('./base')} BaseFactory */ +-/** +- * @callback BaseFactoryFactory +- * @param {import('./base')} factory +- */ +-/** @enum {import('./base')} */ +-declare const couldntThinkOfAny: {}; +-/** +- * +- * @param {InstanceType} base +- * @returns {InstanceType} +- */ +-declare function test(base: InstanceType): InstanceType; +-type BaseFactory = { +- (): {}; +- Base: { +- new (): {}; +- }; +-}; +-type BaseFactoryFactory = (factory: { +- (): {}; +- Base: { +- new (): {}; +- }; +-}) => any; ++export type BaseFactory = import('./base'); ++export type BaseFactoryFactory = (factory: import('./base')) ; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsParameterTagReusesInputNodeInEmit2.js b/testdata/baselines/reference/submodule/conformance/jsDeclarationsParameterTagReusesInputNodeInEmit2.js new file mode 100644 index 0000000000..3c6498cabf --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsParameterTagReusesInputNodeInEmit2.js @@ -0,0 +1,55 @@ +//// [tests/cases/conformance/jsdoc/declarations/jsDeclarationsParameterTagReusesInputNodeInEmit2.ts] //// + +//// [base.js] +class Base { + constructor() {} +} + +const BaseFactory = () => { + return new Base(); +}; + +BaseFactory.Base = Base; + +module.exports = BaseFactory; + +//// [file.js] +/** @typedef {typeof import('./base')} BaseFactory */ + +/** + * + * @param {InstanceType} base + * @returns {InstanceType} + */ +const test = (base) => { + return base; +}; + + +//// [base.js] +class Base { + constructor() { } +} +const BaseFactory = () => { + return new Base(); +}; +BaseFactory.Base = Base; +export = BaseFactory; +module.exports = BaseFactory; +//// [file.js] +/** @typedef {typeof import('./base')} BaseFactory */ +/** + * + * @param {InstanceType} base + * @returns {InstanceType} + */ +const test = (base) => { + return base; +}; +export {}; + + +//// [base.d.ts] +export = BaseFactory; +//// [file.d.ts] +export type BaseFactory = typeof import('./base'); diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsParameterTagReusesInputNodeInEmit2.js.diff b/testdata/baselines/reference/submodule/conformance/jsDeclarationsParameterTagReusesInputNodeInEmit2.js.diff new file mode 100644 index 0000000000..4e00b4f79b --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsParameterTagReusesInputNodeInEmit2.js.diff @@ -0,0 +1,35 @@ +--- old.jsDeclarationsParameterTagReusesInputNodeInEmit2.js ++++ new.jsDeclarationsParameterTagReusesInputNodeInEmit2.js +@@= skipped -33, +33 lines =@@ + return new Base(); + }; + BaseFactory.Base = Base; ++export = BaseFactory; + module.exports = BaseFactory; + //// [file.js] + /** @typedef {typeof import('./base')} BaseFactory */ +@@= skipped -11, +12 lines =@@ + const test = (base) => { + return base; + }; ++export {}; + + + //// [base.d.ts] + export = BaseFactory; +-declare function BaseFactory(): Base; +-declare namespace BaseFactory { +- export { Base }; +-} +-declare class Base { +-} + //// [file.d.ts] +-/** @typedef {typeof import('./base')} BaseFactory */ +-/** +- * +- * @param {InstanceType} base +- * @returns {InstanceType} +- */ +-declare function test(base: InstanceType): InstanceType; +-type BaseFactory = typeof import("./base"); ++export type BaseFactory = typeof import('./base'); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsPrivateFields01.js b/testdata/baselines/reference/submodule/conformance/jsDeclarationsPrivateFields01.js new file mode 100644 index 0000000000..f7d3e3a62d --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsPrivateFields01.js @@ -0,0 +1,32 @@ +//// [tests/cases/conformance/jsdoc/declarations/jsDeclarationsPrivateFields01.ts] //// + +//// [file.js] +export class C { + #hello = "hello"; + #world = 100; + + #calcHello() { + return this.#hello; + } + + get #screamingHello() { + return this.#hello.toUpperCase(); + } + /** @param value {string} */ + set #screamingHello(value) { + throw "NO"; + } + + getWorld() { + return this.#world; + } +} + + + + +//// [file.d.ts] +export declare class C { + #private; + getWorld(): number; +} diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsPrivateFields01.js.diff b/testdata/baselines/reference/submodule/conformance/jsDeclarationsPrivateFields01.js.diff new file mode 100644 index 0000000000..f224b6a7b1 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsPrivateFields01.js.diff @@ -0,0 +1,12 @@ +--- old.jsDeclarationsPrivateFields01.js ++++ new.jsDeclarationsPrivateFields01.js +@@= skipped -25, +25 lines =@@ + + + //// [file.d.ts] +-export class C { +- getWorld(): number; ++export declare class C { + #private; ++ getWorld(): number; + } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsReactComponents.js b/testdata/baselines/reference/submodule/conformance/jsDeclarationsReactComponents.js new file mode 100644 index 0000000000..d7751ce4d7 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsReactComponents.js @@ -0,0 +1,303 @@ +//// [tests/cases/conformance/jsdoc/declarations/jsDeclarationsReactComponents.ts] //// + +//// [jsDeclarationsReactComponents1.jsx] +/// +import React from "react"; +import PropTypes from "prop-types" + +const TabbedShowLayout = ({ +}) => { + return ( +
+ ); +}; + +TabbedShowLayout.propTypes = { + version: PropTypes.number, + +}; + +TabbedShowLayout.defaultProps = { + tabs: undefined +}; + +export default TabbedShowLayout; + +//// [jsDeclarationsReactComponents2.jsx] +import React from "react"; +/** + * @type {React.SFC} + */ +const TabbedShowLayout = () => { + return ( +
+ ok +
+ ); +}; + +TabbedShowLayout.defaultProps = { + tabs: "default value" +}; + +export default TabbedShowLayout; + +//// [jsDeclarationsReactComponents3.jsx] +import React from "react"; +/** + * @type {{defaultProps: {tabs: string}} & ((props?: {elem: string}) => JSX.Element)} + */ +const TabbedShowLayout = () => { + return ( +
+ ok +
+ ); +}; + +TabbedShowLayout.defaultProps = { + tabs: "default value" +}; + +export default TabbedShowLayout; + +//// [jsDeclarationsReactComponents4.jsx] +import React from "react"; +const TabbedShowLayout = (/** @type {{className: string}}*/prop) => { + return ( +
+ ok +
+ ); +}; + +TabbedShowLayout.defaultProps = { + tabs: "default value" +}; + +export default TabbedShowLayout; +//// [jsDeclarationsReactComponents5.jsx] +import React from 'react'; +import PropTypes from 'prop-types'; + +function Tree({ allowDropOnRoot }) { + return
+} + +Tree.propTypes = { + classes: PropTypes.object, +}; + +Tree.defaultProps = { + classes: {}, + parentSource: 'parent_id', +}; + +export default Tree; + +//// [jsDeclarationsReactComponents1.js] +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +/// +const react_1 = __importDefault(require("react")); +const prop_types_1 = __importDefault(require("prop-types")); +const TabbedShowLayout = ({}) => { + return (react_1.default.createElement("div", null)); +}; +TabbedShowLayout.propTypes = { + version: prop_types_1.default.number, +}; +TabbedShowLayout.defaultProps = { + tabs: undefined +}; +exports.default = TabbedShowLayout; +//// [jsDeclarationsReactComponents2.js] +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_1 = __importDefault(require("react")); +/** + * @type {React.SFC} + */ +const TabbedShowLayout = () => { + return (react_1.default.createElement("div", { className: "", key: "" }, "o")); +}; +TabbedShowLayout.defaultProps = { + tabs: "default value" +}; +exports.default = TabbedShowLayout; +//// [jsDeclarationsReactComponents3.js] +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_1 = __importDefault(require("react")); +/** + * @type {{defaultProps: {tabs: string}} & ((props?: {elem: string}) => JSX.Element)} + */ +const TabbedShowLayout = () => { + return (react_1.default.createElement("div", { className: "", key: "" }, "o")); +}; +TabbedShowLayout.defaultProps = { + tabs: "default value" +}; +exports.default = TabbedShowLayout; +//// [jsDeclarationsReactComponents4.js] +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_1 = __importDefault(require("react")); +const TabbedShowLayout = (/** @type {{className: string}}*/ prop) => { + return (react_1.default.createElement("div", { className: prop.className, key: "" }, "o")); +}; +TabbedShowLayout.defaultProps = { + tabs: "default value" +}; +exports.default = TabbedShowLayout; +//// [jsDeclarationsReactComponents5.js] +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const react_1 = __importDefault(require("react")); +const prop_types_1 = __importDefault(require("prop-types")); +function Tree({ allowDropOnRoot }) { + return react_1.default.createElement("div", null); +} +Tree.propTypes = { + classes: prop_types_1.default.object, +}; +Tree.defaultProps = { + classes: {}, + parentSource: 'parent_id', +}; +exports.default = Tree; + + +//// [jsDeclarationsReactComponents1.d.ts] +import PropTypes from "prop-types"; +declare const TabbedShowLayout: { + ({}: {}): JSX.Element; + propTypes: { + version: PropTypes.Requireable; + }; + defaultProps: { + tabs: undefined; + }; +}; +export default TabbedShowLayout; +//// [jsDeclarationsReactComponents2.d.ts] +import React from "react"; +/** + * @type {React.SFC} + */ +declare const TabbedShowLayout: React.SFC; +export default TabbedShowLayout; +//// [jsDeclarationsReactComponents3.d.ts] +/** + * @type {{defaultProps: {tabs: string}} & ((props?: {elem: string}) => JSX.Element)} + */ +declare const TabbedShowLayout: { + defaultProps: { + tabs: string; + }; +} & ((props?: { + elem: string; +}) => JSX.Element); +export default TabbedShowLayout; +//// [jsDeclarationsReactComponents4.d.ts] +declare const TabbedShowLayout: { + (prop: any): JSX.Element; + defaultProps: { + tabs: string; + }; +}; +export default TabbedShowLayout; +//// [jsDeclarationsReactComponents5.d.ts] +declare function Tree({ allowDropOnRoot }: { + allowDropOnRoot: any; +}): JSX.Element; +export default Tree; + + +//// [DtsFileErrors] + + +out/jsDeclarationsReactComponents1.d.ts(1,23): error TS2307: Cannot find module 'prop-types' or its corresponding type declarations. +out/jsDeclarationsReactComponents1.d.ts(3,15): error TS2503: Cannot find namespace 'JSX'. +out/jsDeclarationsReactComponents2.d.ts(1,19): error TS2307: Cannot find module 'react' or its corresponding type declarations. +out/jsDeclarationsReactComponents3.d.ts(10,7): error TS2503: Cannot find namespace 'JSX'. +out/jsDeclarationsReactComponents4.d.ts(2,18): error TS2503: Cannot find namespace 'JSX'. +out/jsDeclarationsReactComponents5.d.ts(3,5): error TS2503: Cannot find namespace 'JSX'. + + +==== out/jsDeclarationsReactComponents1.d.ts (2 errors) ==== + import PropTypes from "prop-types"; + ~~~~~~~~~~~~ +!!! error TS2307: Cannot find module 'prop-types' or its corresponding type declarations. + declare const TabbedShowLayout: { + ({}: {}): JSX.Element; + ~~~ +!!! error TS2503: Cannot find namespace 'JSX'. + propTypes: { + version: PropTypes.Requireable; + }; + defaultProps: { + tabs: undefined; + }; + }; + export default TabbedShowLayout; + +==== out/jsDeclarationsReactComponents2.d.ts (1 errors) ==== + import React from "react"; + ~~~~~~~ +!!! error TS2307: Cannot find module 'react' or its corresponding type declarations. + /** + * @type {React.SFC} + */ + declare const TabbedShowLayout: React.SFC; + export default TabbedShowLayout; + +==== out/jsDeclarationsReactComponents3.d.ts (1 errors) ==== + /** + * @type {{defaultProps: {tabs: string}} & ((props?: {elem: string}) => JSX.Element)} + */ + declare const TabbedShowLayout: { + defaultProps: { + tabs: string; + }; + } & ((props?: { + elem: string; + }) => JSX.Element); + ~~~ +!!! error TS2503: Cannot find namespace 'JSX'. + export default TabbedShowLayout; + +==== out/jsDeclarationsReactComponents4.d.ts (1 errors) ==== + declare const TabbedShowLayout: { + (prop: any): JSX.Element; + ~~~ +!!! error TS2503: Cannot find namespace 'JSX'. + defaultProps: { + tabs: string; + }; + }; + export default TabbedShowLayout; + +==== out/jsDeclarationsReactComponents5.d.ts (1 errors) ==== + declare function Tree({ allowDropOnRoot }: { + allowDropOnRoot: any; + }): JSX.Element; + ~~~ +!!! error TS2503: Cannot find namespace 'JSX'. + export default Tree; + \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsReactComponents.js.diff b/testdata/baselines/reference/submodule/conformance/jsDeclarationsReactComponents.js.diff new file mode 100644 index 0000000000..2fed74569e --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsReactComponents.js.diff @@ -0,0 +1,221 @@ +--- old.jsDeclarationsReactComponents.js ++++ new.jsDeclarationsReactComponents.js +@@= skipped -101, +101 lines =@@ + }; + Object.defineProperty(exports, "__esModule", { value: true }); + /// +-var react_1 = __importDefault(require("react")); +-var prop_types_1 = __importDefault(require("prop-types")); ++const react_1 = __importDefault(require("react")); ++const prop_types_1 = __importDefault(require("prop-types")); + const TabbedShowLayout = ({}) => { + return (react_1.default.createElement("div", null)); + }; +@@= skipped -18, +18 lines =@@ + return (mod && mod.__esModule) ? mod : { "default": mod }; + }; + Object.defineProperty(exports, "__esModule", { value: true }); +-var react_1 = __importDefault(require("react")); ++const react_1 = __importDefault(require("react")); + /** + * @type {React.SFC} + */ + const TabbedShowLayout = () => { +- return (react_1.default.createElement("div", { className: "", key: "" }, "ok")); ++ return (react_1.default.createElement("div", { className: "", key: "" }, "o")); + }; + TabbedShowLayout.defaultProps = { + tabs: "default value" +@@= skipped -17, +17 lines =@@ + return (mod && mod.__esModule) ? mod : { "default": mod }; + }; + Object.defineProperty(exports, "__esModule", { value: true }); +-var react_1 = __importDefault(require("react")); ++const react_1 = __importDefault(require("react")); + /** + * @type {{defaultProps: {tabs: string}} & ((props?: {elem: string}) => JSX.Element)} + */ + const TabbedShowLayout = () => { +- return (react_1.default.createElement("div", { className: "", key: "" }, "ok")); ++ return (react_1.default.createElement("div", { className: "", key: "" }, "o")); + }; + TabbedShowLayout.defaultProps = { + tabs: "default value" +@@= skipped -17, +17 lines =@@ + return (mod && mod.__esModule) ? mod : { "default": mod }; + }; + Object.defineProperty(exports, "__esModule", { value: true }); +-var react_1 = __importDefault(require("react")); ++const react_1 = __importDefault(require("react")); + const TabbedShowLayout = (/** @type {{className: string}}*/ prop) => { +- return (react_1.default.createElement("div", { className: prop.className, key: "" }, "ok")); ++ return (react_1.default.createElement("div", { className: prop.className, key: "" }, "o")); + }; + TabbedShowLayout.defaultProps = { + tabs: "default value" +@@= skipped -14, +14 lines =@@ + return (mod && mod.__esModule) ? mod : { "default": mod }; + }; + Object.defineProperty(exports, "__esModule", { value: true }); +-var react_1 = __importDefault(require("react")); +-var prop_types_1 = __importDefault(require("prop-types")); ++const react_1 = __importDefault(require("react")); ++const prop_types_1 = __importDefault(require("prop-types")); + function Tree({ allowDropOnRoot }) { + return react_1.default.createElement("div", null); + } +@@= skipped -16, +16 lines =@@ + + + //// [jsDeclarationsReactComponents1.d.ts] +-/// +-export default TabbedShowLayout; +-declare function TabbedShowLayout({}: {}): JSX.Element; +-declare namespace TabbedShowLayout { +- namespace propTypes { +- let version: PropTypes.Requireable; +- } +- namespace defaultProps { +- let tabs: undefined; +- } +-} + import PropTypes from "prop-types"; ++declare const TabbedShowLayout: { ++ ({}: {}): JSX.Element; ++ propTypes: { ++ version: PropTypes.Requireable; ++ }; ++ defaultProps: { ++ tabs: undefined; ++ }; ++}; ++export default TabbedShowLayout; + //// [jsDeclarationsReactComponents2.d.ts] +-export default TabbedShowLayout; +-/** +- * @type {React.SFC} +- */ +-declare const TabbedShowLayout: React.SFC; + import React from "react"; ++/** ++ * @type {React.SFC} ++ */ ++declare const TabbedShowLayout: React.SFC; ++export default TabbedShowLayout; + //// [jsDeclarationsReactComponents3.d.ts] +-export default TabbedShowLayout; + /** + * @type {{defaultProps: {tabs: string}} & ((props?: {elem: string}) => JSX.Element)} + */ +@@= skipped -31, +29 lines =@@ + } & ((props?: { + elem: string; + }) => JSX.Element); ++export default TabbedShowLayout; + //// [jsDeclarationsReactComponents4.d.ts] ++declare const TabbedShowLayout: { ++ (prop: any): JSX.Element; ++ defaultProps: { ++ tabs: string; ++ }; ++}; + export default TabbedShowLayout; +-declare function TabbedShowLayout(prop: { +- className: string; +-}): JSX.Element; +-declare namespace TabbedShowLayout { +- namespace defaultProps { +- let tabs: string; +- } +-} + //// [jsDeclarationsReactComponents5.d.ts] +-export default Tree; + declare function Tree({ allowDropOnRoot }: { + allowDropOnRoot: any; + }): JSX.Element; +-declare namespace Tree { +- namespace propTypes { +- let classes: PropTypes.Requireable; +- } +- namespace defaultProps { +- let classes_1: {}; +- export { classes_1 as classes }; +- export let parentSource: string; +- } +-} +-import PropTypes from 'prop-types'; ++export default Tree; ++ ++ ++//// [DtsFileErrors] ++ ++ ++out/jsDeclarationsReactComponents1.d.ts(1,23): error TS2307: Cannot find module 'prop-types' or its corresponding type declarations. ++out/jsDeclarationsReactComponents1.d.ts(3,15): error TS2503: Cannot find namespace 'JSX'. ++out/jsDeclarationsReactComponents2.d.ts(1,19): error TS2307: Cannot find module 'react' or its corresponding type declarations. ++out/jsDeclarationsReactComponents3.d.ts(10,7): error TS2503: Cannot find namespace 'JSX'. ++out/jsDeclarationsReactComponents4.d.ts(2,18): error TS2503: Cannot find namespace 'JSX'. ++out/jsDeclarationsReactComponents5.d.ts(3,5): error TS2503: Cannot find namespace 'JSX'. ++ ++ ++==== out/jsDeclarationsReactComponents1.d.ts (2 errors) ==== ++ import PropTypes from "prop-types"; ++ ~~~~~~~~~~~~ ++!!! error TS2307: Cannot find module 'prop-types' or its corresponding type declarations. ++ declare const TabbedShowLayout: { ++ ({}: {}): JSX.Element; ++ ~~~ ++!!! error TS2503: Cannot find namespace 'JSX'. ++ propTypes: { ++ version: PropTypes.Requireable; ++ }; ++ defaultProps: { ++ tabs: undefined; ++ }; ++ }; ++ export default TabbedShowLayout; ++ ++==== out/jsDeclarationsReactComponents2.d.ts (1 errors) ==== ++ import React from "react"; ++ ~~~~~~~ ++!!! error TS2307: Cannot find module 'react' or its corresponding type declarations. ++ /** ++ * @type {React.SFC} ++ */ ++ declare const TabbedShowLayout: React.SFC; ++ export default TabbedShowLayout; ++ ++==== out/jsDeclarationsReactComponents3.d.ts (1 errors) ==== ++ /** ++ * @type {{defaultProps: {tabs: string}} & ((props?: {elem: string}) => JSX.Element)} ++ */ ++ declare const TabbedShowLayout: { ++ defaultProps: { ++ tabs: string; ++ }; ++ } & ((props?: { ++ elem: string; ++ }) => JSX.Element); ++ ~~~ ++!!! error TS2503: Cannot find namespace 'JSX'. ++ export default TabbedShowLayout; ++ ++==== out/jsDeclarationsReactComponents4.d.ts (1 errors) ==== ++ declare const TabbedShowLayout: { ++ (prop: any): JSX.Element; ++ ~~~ ++!!! error TS2503: Cannot find namespace 'JSX'. ++ defaultProps: { ++ tabs: string; ++ }; ++ }; ++ export default TabbedShowLayout; ++ ++==== out/jsDeclarationsReactComponents5.d.ts (1 errors) ==== ++ declare function Tree({ allowDropOnRoot }: { ++ allowDropOnRoot: any; ++ }): JSX.Element; ++ ~~~ ++!!! error TS2503: Cannot find namespace 'JSX'. ++ export default Tree; ++ \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsReexportAliases.js b/testdata/baselines/reference/submodule/conformance/jsDeclarationsReexportAliases.js new file mode 100644 index 0000000000..3026f124f4 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsReexportAliases.js @@ -0,0 +1,36 @@ +//// [tests/cases/conformance/jsdoc/declarations/jsDeclarationsReexportAliases.ts] //// + +//// [cls.js] +export default class Foo {} + +//// [usage.js] +import {default as Fooa} from "./cls"; + +export const x = new Fooa(); + +export {default as Foob} from "./cls"; + + +//// [cls.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +class Foo { +} +exports.default = Foo; +//// [usage.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Foob = exports.x = void 0; +const cls_1 = require("./cls"); +exports.x = new cls_1.default(); +const cls_2 = require("./cls"); +Object.defineProperty(exports, "Foob", { enumerable: true, get: function () { return cls_2.default; } }); + + +//// [cls.d.ts] +export default class Foo { +} +//// [usage.d.ts] +import { default as Fooa } from "./cls"; +export declare const x: Fooa; +export { default as Foob } from "./cls"; diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsReexportAliases.js.diff b/testdata/baselines/reference/submodule/conformance/jsDeclarationsReexportAliases.js.diff new file mode 100644 index 0000000000..453b316f0f --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsReexportAliases.js.diff @@ -0,0 +1,23 @@ +--- old.jsDeclarationsReexportAliases.js ++++ new.jsDeclarationsReexportAliases.js +@@= skipped -20, +20 lines =@@ + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.Foob = exports.x = void 0; +-var cls_1 = require("./cls"); ++const cls_1 = require("./cls"); + exports.x = new cls_1.default(); +-var cls_2 = require("./cls"); ++const cls_2 = require("./cls"); + Object.defineProperty(exports, "Foob", { enumerable: true, get: function () { return cls_2.default; } }); + + +@@= skipped -10, +10 lines =@@ + export default class Foo { + } + //// [usage.d.ts] +-export const x: Fooa; +-export { default as Foob } from "./cls"; + import { default as Fooa } from "./cls"; ++export declare const x: Fooa; ++export { default as Foob } from "./cls"; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsReexportedCjsAlias.js b/testdata/baselines/reference/submodule/conformance/jsDeclarationsReexportedCjsAlias.js new file mode 100644 index 0000000000..28313a5f19 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsReexportedCjsAlias.js @@ -0,0 +1,79 @@ +//// [tests/cases/conformance/jsdoc/declarations/jsDeclarationsReexportedCjsAlias.ts] //// + +//// [lib.js] +/** + * @param {string} a + */ +function bar(a) { + return a + a; +} + +class SomeClass { + a() { + return 1; + } +} + +module.exports = { + bar, + SomeClass +} +//// [main.js] +const { SomeClass, SomeClass: Another } = require('./lib'); + +module.exports = { + SomeClass, + Another +} + +//// [lib.js] +/** + * @param {string} a + */ +function bar(a) { + return a + a; +} +class SomeClass { + a() { + return 1; + } +} +module.exports = { + bar, + SomeClass +}; +//// [main.js] +const { SomeClass, SomeClass: Another } = require('./lib'); +module.exports = { + SomeClass, + Another +}; + + +//// [lib.d.ts] +/** + * @param {string} a + */ +declare function bar(a: string): string; +declare class SomeClass { + a(): number; +} +declare const _default: { + bar: typeof bar; + SomeClass: typeof SomeClass; +}; +export = _default; +//// [main.d.ts] +declare const _default: { + SomeClass: { + new (): { + a(): number; + }; + }; + Another: { + new (): { + a(): number; + }; + }; +}; +export = _default; diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsReexportedCjsAlias.js.diff b/testdata/baselines/reference/submodule/conformance/jsDeclarationsReexportedCjsAlias.js.diff new file mode 100644 index 0000000000..f82dbb924b --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsReexportedCjsAlias.js.diff @@ -0,0 +1,34 @@ +--- old.jsDeclarationsReexportedCjsAlias.js ++++ new.jsDeclarationsReexportedCjsAlias.js +@@= skipped -53, +53 lines =@@ + /** + * @param {string} a + */ +-export function bar(a: string): string; +-export class SomeClass { ++declare function bar(a: string): string; ++declare class SomeClass { + a(): number; + } ++declare const _default: { ++ bar: typeof bar; ++ SomeClass: typeof SomeClass; ++}; ++export = _default; + //// [main.d.ts] +-import { SomeClass } from "./lib"; +-import { SomeClass as Another } from "./lib"; +-export { SomeClass, Another }; ++declare const _default: { ++ SomeClass: { ++ new (): { ++ a(): number; ++ }; ++ }; ++ Another: { ++ new (): { ++ a(): number; ++ }; ++ }; ++}; ++export = _default; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsReferenceToClassInstanceCrossFile.js b/testdata/baselines/reference/submodule/conformance/jsDeclarationsReferenceToClassInstanceCrossFile.js new file mode 100644 index 0000000000..cd7062ca0f --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsReferenceToClassInstanceCrossFile.js @@ -0,0 +1,67 @@ +//// [tests/cases/conformance/jsdoc/declarations/jsDeclarationsReferenceToClassInstanceCrossFile.ts] //// + +//// [rectangle.js] +class Rectangle { + constructor() { + console.log("I'm a rectangle!"); + } +} + +module.exports = { Rectangle }; +//// [index.js] +const {Rectangle} = require('./rectangle'); + +class Render { + constructor() { + /** + * Object list + * @type {Rectangle[]} + */ + this.objects = []; + } + /** + * Adds a rectangle + * + * @returns {Rectangle} the rect + */ + addRectangle() { + const obj = new Rectangle(); + this.objects.push(obj); + return obj; + } +} + +module.exports = { Render }; +//// [test.js] +const {Render} = require("./index"); +let render = new Render(); + +render.addRectangle(); +console.log("Objects", render.objects); + + + +//// [rectangle.d.ts] +declare class Rectangle { + constructor(); +} +declare const _default: { + Rectangle: typeof Rectangle; +}; +export = _default; +//// [index.d.ts] +declare class Render { + constructor(); + /** + * Adds a rectangle + * + * @returns {Rectangle} the rect + */ + addRectangle(): Rectangle; +} +declare const _default: { + Render: typeof Render; +}; +export = _default; +//// [test.d.ts] +export {}; diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsReferenceToClassInstanceCrossFile.js.diff b/testdata/baselines/reference/submodule/conformance/jsDeclarationsReferenceToClassInstanceCrossFile.js.diff new file mode 100644 index 0000000000..de37456244 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsReferenceToClassInstanceCrossFile.js.diff @@ -0,0 +1,37 @@ +--- old.jsDeclarationsReferenceToClassInstanceCrossFile.js ++++ new.jsDeclarationsReferenceToClassInstanceCrossFile.js +@@= skipped -41, +41 lines =@@ + + + //// [rectangle.d.ts] +-export class Rectangle { ++declare class Rectangle { ++ constructor(); + } ++declare const _default: { ++ Rectangle: typeof Rectangle; ++}; ++export = _default; + //// [index.d.ts] +-export class Render { +- /** +- * Object list +- * @type {Rectangle[]} +- */ +- objects: Rectangle[]; ++declare class Render { ++ constructor(); + /** + * Adds a rectangle + * +@@= skipped -16, +17 lines =@@ + */ + addRectangle(): Rectangle; + } +-import { Rectangle } from "./rectangle"; ++declare const _default: { ++ Render: typeof Render; ++}; ++export = _default; + //// [test.d.ts] + export {}; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsRestArgsWithThisTypeInJSDocFunction.js b/testdata/baselines/reference/submodule/conformance/jsDeclarationsRestArgsWithThisTypeInJSDocFunction.js new file mode 100644 index 0000000000..36a7baf83b --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsRestArgsWithThisTypeInJSDocFunction.js @@ -0,0 +1,31 @@ +//// [tests/cases/conformance/jsdoc/declarations/jsDeclarationsRestArgsWithThisTypeInJSDocFunction.ts] //// + +//// [bug38550.js] +export class Clazz { + /** + * @param {function(this:Object, ...*):*} functionDeclaration + */ + method(functionDeclaration) {} +} + + +//// [bug38550.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Clazz = void 0; +class Clazz { + /** + * @param {function(this:Object, ...*):*} functionDeclaration + */ + method(functionDeclaration) { } +} +exports.Clazz = Clazz; + + +//// [bug38550.d.ts] +export declare class Clazz { + /** + * @param {function(this:Object, ...*):*} functionDeclaration + */ + method(functionDeclaration: any): void; +} diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsRestArgsWithThisTypeInJSDocFunction.js.diff b/testdata/baselines/reference/submodule/conformance/jsDeclarationsRestArgsWithThisTypeInJSDocFunction.js.diff new file mode 100644 index 0000000000..b4c316a603 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsRestArgsWithThisTypeInJSDocFunction.js.diff @@ -0,0 +1,14 @@ +--- old.jsDeclarationsRestArgsWithThisTypeInJSDocFunction.js ++++ new.jsDeclarationsRestArgsWithThisTypeInJSDocFunction.js +@@= skipped -22, +22 lines =@@ + + + //// [bug38550.d.ts] +-export class Clazz { ++export declare class Clazz { + /** + * @param {function(this:Object, ...*):*} functionDeclaration + */ +- method(functionDeclaration: (this: any, ...args: any[]) => any): void; ++ method(functionDeclaration: any): void; + } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsReusesExistingNodesMappingJSDocTypes.js b/testdata/baselines/reference/submodule/conformance/jsDeclarationsReusesExistingNodesMappingJSDocTypes.js new file mode 100644 index 0000000000..2ca66833d1 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsReusesExistingNodesMappingJSDocTypes.js @@ -0,0 +1,67 @@ +//// [tests/cases/conformance/jsdoc/declarations/jsDeclarationsReusesExistingNodesMappingJSDocTypes.ts] //// + +//// [index.js] +/** @type {?} */ +export const a = null; + +/** @type {*} */ +export const b = null; + +/** @type {string?} */ +export const c = null; + +/** @type {string=} */ +export const d = null; + +/** @type {string!} */ +export const e = null; + +/** @type {function(string, number): object} */ +export const f = null; + +/** @type {function(new: object, string, number)} */ +export const g = null; + +/** @type {Object.} */ +export const h = null; + + +//// [index.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.h = exports.g = exports.f = exports.e = exports.d = exports.c = exports.b = exports.a = void 0; +/** @type {?} */ +exports.a = null; +/** @type {*} */ +exports.b = null; +/** @type {string?} */ +exports.c = null; +/** @type {string=} */ +exports.d = null; +/** @type {string!} */ +exports.e = null; +/** @type {function(string, number): object} */ +exports.f = null; +/** @type {function(new: object, string, number)} */ +exports.g = null; +/** @type {Object.} */ +exports.h = null; + + +//// [index.d.ts] +/** @type {?} */ +export declare const a: | null; +/** @type {*} */ +export declare const b: any; +/** @type {string?} */ +export declare const c: string | null; +/** @type {string=} */ +export declare const d: string | undefined; +/** @type {string!} */ +export declare const e: string; +/** @type {function(string, number): object} */ +export declare const f: function; +/** @type {function(new: object, string, number)} */ +export declare const g: function; +/** @type {Object.} */ +export declare const h: Object; diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsReusesExistingNodesMappingJSDocTypes.js.diff b/testdata/baselines/reference/submodule/conformance/jsDeclarationsReusesExistingNodesMappingJSDocTypes.js.diff new file mode 100644 index 0000000000..0dc878c142 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsReusesExistingNodesMappingJSDocTypes.js.diff @@ -0,0 +1,31 @@ +--- old.jsDeclarationsReusesExistingNodesMappingJSDocTypes.js ++++ new.jsDeclarationsReusesExistingNodesMappingJSDocTypes.js +@@= skipped -49, +49 lines =@@ + + //// [index.d.ts] + /** @type {?} */ +-export const a: unknown; ++export declare const a: | null; + /** @type {*} */ +-export const b: any; ++export declare const b: any; + /** @type {string?} */ +-export const c: string | null; ++export declare const c: string | null; + /** @type {string=} */ +-export const d: string | undefined; ++export declare const d: string | undefined; + /** @type {string!} */ +-export const e: string; ++export declare const e: string; + /** @type {function(string, number): object} */ +-export const f: (arg0: string, arg1: number) => object; ++export declare const f: function; + /** @type {function(new: object, string, number)} */ +-export const g: new (arg1: string, arg2: number) => object; ++export declare const g: function; + /** @type {Object.} */ +-export const h: { +- [x: string]: number; +-}; ++export declare const h: Object; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsReusesExistingTypeAnnotations.js b/testdata/baselines/reference/submodule/conformance/jsDeclarationsReusesExistingTypeAnnotations.js new file mode 100644 index 0000000000..7ec2b35672 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsReusesExistingTypeAnnotations.js @@ -0,0 +1,238 @@ +//// [tests/cases/conformance/jsdoc/declarations/jsDeclarationsReusesExistingTypeAnnotations.ts] //// + +//// [index.js] +class С1 { + /** @type {string=} */ + p1 = undefined; + + /** @type {string | undefined} */ + p2 = undefined; + + /** @type {?string} */ + p3 = null; + + /** @type {string | null} */ + p4 = null; +} + +class С2 { + /** @type {string=} */ + get p1() { + return undefined; + } + + /** @type {string | undefined} */ + get p2() { + return undefined; + } + + /** @type {?string} */ + get p3() { + return null; + } + + /** @type {string | null} */ + get p4() { + return null; + } +} + + +class С3 { + /** @type {string=} */ + get p1() { + return undefined; + } + + /** @param {string=} value */ + set p1(value) { + this.p1 = value; + } + + /** @type {string | undefined} */ + get p2() { + return undefined; + } + + /** @param {string | undefined} value */ + set p2(value) { + this.p2 = value; + } + + /** @type {?string} */ + get p3() { + return null; + } + + /** @param {?string} value */ + set p3(value) { + this.p3 = value; + } + + /** @type {string | null} */ + get p4() { + return null; + } + + /** @param {string | null} value */ + set p4(value) { + this.p4 = value; + } +} + + +class С4 { + /** @param {string=} value */ + set p1(value) { + this.p1 = value; + } + + /** @param {string | undefined} value */ + set p2(value) { + this.p2 = value; + } + + /** @param {?string} value */ + set p3(value) { + this.p3 = value; + } + + /** @param {string | null} value */ + set p4(value) { + this.p4 = value; + } +} + + +//// [index.js] +class С1 { + /** @type {string=} */ + p1 = undefined; + /** @type {string | undefined} */ + p2 = undefined; + /** @type {?string} */ + p3 = null; + /** @type {string | null} */ + p4 = null; +} +class С2 { + /** @type {string=} */ + get p1() { + return undefined; + } + /** @type {string | undefined} */ + get p2() { + return undefined; + } + /** @type {?string} */ + get p3() { + return null; + } + /** @type {string | null} */ + get p4() { + return null; + } +} +class С3 { + /** @type {string=} */ + get p1() { + return undefined; + } + /** @param {string=} value */ + set p1(value) { + this.p1 = value; + } + /** @type {string | undefined} */ + get p2() { + return undefined; + } + /** @param {string | undefined} value */ + set p2(value) { + this.p2 = value; + } + /** @type {?string} */ + get p3() { + return null; + } + /** @param {?string} value */ + set p3(value) { + this.p3 = value; + } + /** @type {string | null} */ + get p4() { + return null; + } + /** @param {string | null} value */ + set p4(value) { + this.p4 = value; + } +} +class С4 { + /** @param {string=} value */ + set p1(value) { + this.p1 = value; + } + /** @param {string | undefined} value */ + set p2(value) { + this.p2 = value; + } + /** @param {?string} value */ + set p3(value) { + this.p3 = value; + } + /** @param {string | null} value */ + set p4(value) { + this.p4 = value; + } +} + + +//// [index.d.ts] +declare class С1 { + /** @type {string=} */ + p1: string | undefined; + /** @type {string | undefined} */ + p2: string | undefined; + /** @type {?string} */ + p3: string | null; + /** @type {string | null} */ + p4: string | null; +} +declare class С2 { + /** @type {string=} */ + get p1(): undefined; + /** @type {string | undefined} */ + get p2(): undefined; + /** @type {?string} */ + get p3(): null; + /** @type {string | null} */ + get p4(): null; +} +declare class С3 { + /** @type {string=} */ + get p1(): string | undefined; + /** @param {string=} value */ + set p1(value?: string | undefined); + /** @type {string | undefined} */ + get p2(): string | undefined; + /** @param {string | undefined} value */ + set p2(value: string | undefined); + /** @type {?string} */ + get p3(): string | null; + /** @param {?string} value */ + set p3(value: string | null); + /** @type {string | null} */ + get p4(): string | null; + /** @param {string | null} value */ + set p4(value: string | null); +} +declare class С4 { + /** @param {string=} value */ + set p1(value?: string | undefined); + /** @param {string | undefined} value */ + set p2(value: string | undefined); + /** @param {?string} value */ + set p3(value: string | null); + /** @param {string | null} value */ + set p4(value: string | null); +} diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsReusesExistingTypeAnnotations.js.diff b/testdata/baselines/reference/submodule/conformance/jsDeclarationsReusesExistingTypeAnnotations.js.diff new file mode 100644 index 0000000000..5b0182ef60 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsReusesExistingTypeAnnotations.js.diff @@ -0,0 +1,59 @@ +--- old.jsDeclarationsReusesExistingTypeAnnotations.js ++++ new.jsDeclarationsReusesExistingTypeAnnotations.js +@@= skipped -104, +104 lines =@@ + + + //// [index.js] +-"use strict"; + class С1 { + /** @type {string=} */ + p1 = undefined; +@@= skipped -96, +95 lines =@@ + } + declare class С2 { + /** @type {string=} */ +- get p1(): string | undefined; ++ get p1(): undefined; + /** @type {string | undefined} */ +- get p2(): string | undefined; ++ get p2(): undefined; + /** @type {?string} */ +- get p3(): string | null; ++ get p3(): null; + /** @type {string | null} */ +- get p4(): string | null; ++ get p4(): null; + } + declare class С3 { +- /** @param {string=} value */ +- set p1(value: string | undefined); + /** @type {string=} */ + get p1(): string | undefined; ++ /** @param {string=} value */ ++ set p1(value?: string | undefined); ++ /** @type {string | undefined} */ ++ get p2(): string | undefined; + /** @param {string | undefined} value */ + set p2(value: string | undefined); +- /** @type {string | undefined} */ +- get p2(): string | undefined; ++ /** @type {?string} */ ++ get p3(): string | null; + /** @param {?string} value */ + set p3(value: string | null); +- /** @type {?string} */ +- get p3(): string | null; ++ /** @type {string | null} */ ++ get p4(): string | null; + /** @param {string | null} value */ + set p4(value: string | null); +- /** @type {string | null} */ +- get p4(): string | null; + } + declare class С4 { + /** @param {string=} value */ +- set p1(value: string | undefined); ++ set p1(value?: string | undefined); + /** @param {string | undefined} value */ + set p2(value: string | undefined); + /** @param {?string} value */ \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsSubclassWithExplicitNoArgumentConstructor.js b/testdata/baselines/reference/submodule/conformance/jsDeclarationsSubclassWithExplicitNoArgumentConstructor.js new file mode 100644 index 0000000000..c970c09e3e --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsSubclassWithExplicitNoArgumentConstructor.js @@ -0,0 +1,48 @@ +//// [tests/cases/conformance/jsdoc/declarations/jsDeclarationsSubclassWithExplicitNoArgumentConstructor.ts] //// + +//// [index.js] +export class Super { + /** + * @param {string} firstArg + * @param {string} secondArg + */ + constructor(firstArg, secondArg) { } +} + +export class Sub extends Super { + constructor() { + super('first', 'second'); + } +} + +//// [index.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Sub = exports.Super = void 0; +class Super { + /** + * @param {string} firstArg + * @param {string} secondArg + */ + constructor(firstArg, secondArg) { } +} +exports.Super = Super; +class Sub extends Super { + constructor() { + super('first', 'second'); + } +} +exports.Sub = Sub; + + +//// [index.d.ts] +export declare class Super { + /** + * @param {string} firstArg + * @param {string} secondArg + */ + constructor(firstArg: string, secondArg: string); +} +export declare class Sub extends Super { + constructor(); +} diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsSubclassWithExplicitNoArgumentConstructor.js.diff b/testdata/baselines/reference/submodule/conformance/jsDeclarationsSubclassWithExplicitNoArgumentConstructor.js.diff new file mode 100644 index 0000000000..f2516e99a7 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsSubclassWithExplicitNoArgumentConstructor.js.diff @@ -0,0 +1,18 @@ +--- old.jsDeclarationsSubclassWithExplicitNoArgumentConstructor.js ++++ new.jsDeclarationsSubclassWithExplicitNoArgumentConstructor.js +@@= skipped -35, +35 lines =@@ + + + //// [index.d.ts] +-export class Super { ++export declare class Super { + /** + * @param {string} firstArg + * @param {string} secondArg + */ + constructor(firstArg: string, secondArg: string); + } +-export class Sub extends Super { ++export declare class Sub extends Super { + constructor(); + } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsThisTypes.js b/testdata/baselines/reference/submodule/conformance/jsDeclarationsThisTypes.js new file mode 100644 index 0000000000..5daad6b3f5 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsThisTypes.js @@ -0,0 +1,41 @@ +//// [tests/cases/conformance/jsdoc/declarations/jsDeclarationsThisTypes.ts] //// + +//// [index.js] +export class A { + /** @returns {this} */ + method() { + return this; + } +} +export default class Base extends A { + // This method is required to reproduce #35932 + verify() { } +} + +//// [index.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.A = void 0; +class A { + /** @returns {this} */ + method() { + return this; + } +} +exports.A = A; +class Base extends A { + // This method is required to reproduce #35932 + verify() { } +} +exports.default = Base; + + +//// [index.d.ts] +export declare class A { + /** @returns {this} */ + method(): this; +} +export default class Base extends A { + // This method is required to reproduce #35932 + verify(): void; +} diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsThisTypes.js.diff b/testdata/baselines/reference/submodule/conformance/jsDeclarationsThisTypes.js.diff new file mode 100644 index 0000000000..8af3d92f57 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsThisTypes.js.diff @@ -0,0 +1,15 @@ +--- old.jsDeclarationsThisTypes.js ++++ new.jsDeclarationsThisTypes.js +@@= skipped -30, +30 lines =@@ + + + //// [index.d.ts] +-export class A { ++export declare class A { + /** @returns {this} */ + method(): this; + } + export default class Base extends A { ++ // This method is required to reproduce #35932 + verify(): void; + } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsTypeAliases.js b/testdata/baselines/reference/submodule/conformance/jsDeclarationsTypeAliases.js new file mode 100644 index 0000000000..e7534535c7 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsTypeAliases.js @@ -0,0 +1,150 @@ +//// [tests/cases/conformance/jsdoc/declarations/jsDeclarationsTypeAliases.ts] //// + +//// [index.js] +export {}; // flag file as module +/** + * @typedef {string | number | symbol} PropName + */ + +/** + * Callback + * + * @callback NumberToStringCb + * @param {number} a + * @returns {string} + */ + +/** + * @template T + * @typedef {T & {name: string}} MixinName + */ + +/** + * Identity function + * + * @template T + * @callback Identity + * @param {T} x + * @returns {T} + */ + +//// [mixed.js] +/** + * @typedef {{x: string} | number | LocalThing | ExportedThing} SomeType + */ +/** + * @param {number} x + * @returns {SomeType} + */ +function doTheThing(x) { + return {x: ""+x}; +} +class ExportedThing { + z = "ok" +} +module.exports = { + doTheThing, + ExportedThing, +}; +class LocalThing { + y = "ok" +} + + +//// [index.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +/** + * @typedef {string | number | symbol} PropName + */ +/** + * Callback + * + * @callback NumberToStringCb + * @param {number} a + * @returns {string} + */ +/** + * @template T + * @typedef {T & {name: string}} MixinName + */ +/** + * Identity function + * + * @template T + * @callback Identity + * @param {T} x + * @returns {T} + */ +//// [mixed.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +/** + * @typedef {{x: string} | number | LocalThing | ExportedThing} SomeType + */ +/** + * @param {number} x + * @returns {SomeType} + */ +function doTheThing(x) { + return { x: "" + x }; +} +class ExportedThing { + z = "ok"; +} +module.exports = { + doTheThing, + ExportedThing, +}; +class LocalThing { + y = "ok"; +} + + +//// [index.d.ts] +export {}; // flag file as module +/** + * @typedef {string | number | symbol} PropName + */ +/** + * Callback + * + * @callback NumberToStringCb + * @param {number} a + * @returns {string} + */ +/** + * @template T + * @typedef {T & {name: string}} MixinName + */ +/** + * Identity function + * + * @template T + * @callback Identity + * @param {T} x + * @returns {T} + */ +//// [mixed.d.ts] +export type SomeType = { + x: string; +} | number | LocalThing | ExportedThing; +/** + * @typedef {{x: string} | number | LocalThing | ExportedThing} SomeType + */ +/** + * @param {number} x + * @returns {SomeType} + */ +declare function doTheThing(x: number): SomeType; +declare class ExportedThing { + z: string; +} +declare const _default: { + doTheThing: typeof doTheThing; + ExportedThing: typeof ExportedThing; +}; +export = _default; +declare class LocalThing { + y: string; +} diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsTypeAliases.js.diff b/testdata/baselines/reference/submodule/conformance/jsDeclarationsTypeAliases.js.diff new file mode 100644 index 0000000000..76e1142926 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsTypeAliases.js.diff @@ -0,0 +1,85 @@ +--- old.jsDeclarationsTypeAliases.js ++++ new.jsDeclarationsTypeAliases.js +@@= skipped -76, +76 lines =@@ + * @returns {T} + */ + //// [mixed.js] ++"use strict"; ++Object.defineProperty(exports, "__esModule", { value: true }); + /** + * @typedef {{x: string} | number | LocalThing | ExportedThing} SomeType + */ +@@= skipped -11, +13 lines =@@ + return { x: "" + x }; + } + class ExportedThing { +- constructor() { +- this.z = "ok"; +- } ++ z = "ok"; + } + module.exports = { + doTheThing, + ExportedThing, + }; + class LocalThing { +- constructor() { +- this.y = "ok"; +- } ++ y = "ok"; + } + + + //// [index.d.ts] +-export type PropName = string | number | symbol; ++export {}; // flag file as module ++/** ++ * @typedef {string | number | symbol} PropName ++ */ + /** + * Callback +- */ +-export type NumberToStringCb = (a: number) => string; +-export type MixinName = T & { +- name: string; +-}; ++ * ++ * @callback NumberToStringCb ++ * @param {number} a ++ * @returns {string} ++ */ ++/** ++ * @template T ++ * @typedef {T & {name: string}} MixinName ++ */ + /** + * Identity function ++ * ++ * @template T ++ * @callback Identity ++ * @param {T} x ++ * @returns {T} + */ +-export type Identity = (x: T) => T; + //// [mixed.d.ts] + export type SomeType = { + x: string; +@@= skipped -39, +46 lines =@@ + * @param {number} x + * @returns {SomeType} + */ +-export function doTheThing(x: number): SomeType; +-export class ExportedThing { ++declare function doTheThing(x: number): SomeType; ++declare class ExportedThing { + z: string; + } ++declare const _default: { ++ doTheThing: typeof doTheThing; ++ ExportedThing: typeof ExportedThing; ++}; ++export = _default; + declare class LocalThing { + y: string; + } +-export {}; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsTypeReassignmentFromDeclaration.js b/testdata/baselines/reference/submodule/conformance/jsDeclarationsTypeReassignmentFromDeclaration.js new file mode 100644 index 0000000000..be70025cd8 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsTypeReassignmentFromDeclaration.js @@ -0,0 +1,41 @@ +//// [tests/cases/conformance/jsdoc/declarations/jsDeclarationsTypeReassignmentFromDeclaration.ts] //// + +//// [some-mod.d.ts] +interface Item { + x: string; +} +declare const items: Item[]; +export = items; +//// [index.js] +/** @type {typeof import("/some-mod")} */ +const items = []; +module.exports = items; + +//// [index.js] +/** @type {typeof import("/some-mod")} */ +const items = []; +export = items; +module.exports = items; + + +//// [index.d.ts] +export = items; + + +//// [DtsFileErrors] + + +/out/index.d.ts(1,10): error TS2304: Cannot find name 'items'. + + +==== /some-mod.d.ts (0 errors) ==== + interface Item { + x: string; + } + declare const items: Item[]; + export = items; +==== /out/index.d.ts (1 errors) ==== + export = items; + ~~~~~ +!!! error TS2304: Cannot find name 'items'. + \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsTypeReassignmentFromDeclaration.js.diff b/testdata/baselines/reference/submodule/conformance/jsDeclarationsTypeReassignmentFromDeclaration.js.diff new file mode 100644 index 0000000000..046f34d1e2 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsTypeReassignmentFromDeclaration.js.diff @@ -0,0 +1,33 @@ +--- old.jsDeclarationsTypeReassignmentFromDeclaration.js ++++ new.jsDeclarationsTypeReassignmentFromDeclaration.js +@@= skipped -13, +13 lines =@@ + //// [index.js] + /** @type {typeof import("/some-mod")} */ + const items = []; ++export = items; + module.exports = items; + + + //// [index.d.ts] + export = items; +-/** @type {typeof import("/some-mod")} */ +-declare const items: typeof import("/some-mod"); ++ ++ ++//// [DtsFileErrors] ++ ++ ++/out/index.d.ts(1,10): error TS2304: Cannot find name 'items'. ++ ++ ++==== /some-mod.d.ts (0 errors) ==== ++ interface Item { ++ x: string; ++ } ++ declare const items: Item[]; ++ export = items; ++==== /out/index.d.ts (1 errors) ==== ++ export = items; ++ ~~~~~ ++!!! error TS2304: Cannot find name 'items'. ++ \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsTypeReassignmentFromDeclaration2.js b/testdata/baselines/reference/submodule/conformance/jsDeclarationsTypeReassignmentFromDeclaration2.js new file mode 100644 index 0000000000..79172817f0 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsTypeReassignmentFromDeclaration2.js @@ -0,0 +1,39 @@ +//// [tests/cases/conformance/jsdoc/declarations/jsDeclarationsTypeReassignmentFromDeclaration2.ts] //// + +//// [some-mod.d.ts] +interface Item { + x: string; +} +declare function getItems(): Item[]; +export = getItems; +//// [index.js] +const items = require("./some-mod")(); +module.exports = items; + +//// [index.js] +const items = require("./some-mod")(); +export = items; +module.exports = items; + + +//// [index.d.ts] +export = items; + + +//// [DtsFileErrors] + + +out/index.d.ts(1,10): error TS2304: Cannot find name 'items'. + + +==== out/index.d.ts (1 errors) ==== + export = items; + ~~~~~ +!!! error TS2304: Cannot find name 'items'. + +==== some-mod.d.ts (0 errors) ==== + interface Item { + x: string; + } + declare function getItems(): Item[]; + export = getItems; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsTypeReassignmentFromDeclaration2.js.diff b/testdata/baselines/reference/submodule/conformance/jsDeclarationsTypeReassignmentFromDeclaration2.js.diff new file mode 100644 index 0000000000..95d5a41e60 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsTypeReassignmentFromDeclaration2.js.diff @@ -0,0 +1,31 @@ +--- old.jsDeclarationsTypeReassignmentFromDeclaration2.js ++++ new.jsDeclarationsTypeReassignmentFromDeclaration2.js +@@= skipped -11, +11 lines =@@ + + //// [index.js] + const items = require("./some-mod")(); ++export = items; + module.exports = items; ++ ++ ++//// [index.d.ts] ++export = items; ++ ++ ++//// [DtsFileErrors] ++ ++ ++out/index.d.ts(1,10): error TS2304: Cannot find name 'items'. ++ ++ ++==== out/index.d.ts (1 errors) ==== ++ export = items; ++ ~~~~~ ++!!! error TS2304: Cannot find name 'items'. ++ ++==== some-mod.d.ts (0 errors) ==== ++ interface Item { ++ x: string; ++ } ++ declare function getItems(): Item[]; ++ export = getItems; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsTypeReferences.js b/testdata/baselines/reference/submodule/conformance/jsDeclarationsTypeReferences.js new file mode 100644 index 0000000000..11cd4da35d --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsTypeReferences.js @@ -0,0 +1,32 @@ +//// [tests/cases/conformance/jsdoc/declarations/jsDeclarationsTypeReferences.ts] //// + +//// [index.d.ts] +declare module "fs" { + export class Something {} +} +//// [index.js] +/// + +const Something = require("fs").Something; + +const thing = new Something(); + +module.exports = { + thing +}; + + +//// [index.js] +/// +const Something = require("fs").Something; +const thing = new Something(); +module.exports = { + thing +}; + + +//// [index.d.ts] +declare const _default: { + thing: import("fs").Something; +}; +export = _default; diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsTypeReferences.js.diff b/testdata/baselines/reference/submodule/conformance/jsDeclarationsTypeReferences.js.diff new file mode 100644 index 0000000000..4286a69c72 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsTypeReferences.js.diff @@ -0,0 +1,13 @@ +--- old.jsDeclarationsTypeReferences.js ++++ new.jsDeclarationsTypeReferences.js +@@= skipped -25, +25 lines =@@ + + + //// [index.d.ts] +-export const thing: Something; +-import Something_1 = require("fs"); +-import Something = Something_1.Something; ++declare const _default: { ++ thing: import("fs").Something; ++}; ++export = _default; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsTypeReferences2.js b/testdata/baselines/reference/submodule/conformance/jsDeclarationsTypeReferences2.js new file mode 100644 index 0000000000..dbc4e83597 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsTypeReferences2.js @@ -0,0 +1,44 @@ +//// [tests/cases/conformance/jsdoc/declarations/jsDeclarationsTypeReferences2.ts] //// + +//// [something.ts] +export const o = { + a: 1, + m: 1 +} + +//// [index.js] +const{ a, m } = require("./something").o; + +const thing = a + m + +module.exports = { + thing +}; + + +//// [something.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.o = void 0; +exports.o = { + a: 1, + m: 1 +}; +//// [index.js] +const { a, m } = require("./something").o; +const thing = a + m; +module.exports = { + thing +}; + + +//// [something.d.ts] +export declare const o: { + a: number; + m: number; +}; +//// [index.d.ts] +declare const _default: { + thing: number; +}; +export = _default; diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsTypeReferences2.js.diff b/testdata/baselines/reference/submodule/conformance/jsDeclarationsTypeReferences2.js.diff new file mode 100644 index 0000000000..9631326132 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsTypeReferences2.js.diff @@ -0,0 +1,11 @@ +--- old.jsDeclarationsTypeReferences2.js ++++ new.jsDeclarationsTypeReferences2.js +@@= skipped -37, +37 lines =@@ + m: number; + }; + //// [index.d.ts] +-export const thing: number; ++declare const _default: { ++ thing: number; ++}; ++export = _default; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsTypeReferences3.js b/testdata/baselines/reference/submodule/conformance/jsDeclarationsTypeReferences3.js new file mode 100644 index 0000000000..1dca157bd6 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsTypeReferences3.js @@ -0,0 +1,31 @@ +//// [tests/cases/conformance/jsdoc/declarations/jsDeclarationsTypeReferences3.ts] //// + +//// [index.d.ts] +declare module "fs" { + export class Something {} +} +//// [index.js] +/// + +const Something = require("fs").Something; +module.exports.A = {} +module.exports.A.B = { + thing: new Something() +} + + +//// [index.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +/// +const Something = require("fs").Something; +export var A = {}; +module.exports.A = {}; +module.exports.A.B = { + thing: new Something() +}; + + +//// [index.d.ts] +export var A = {}; +export {}; diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsTypeReferences3.js.diff b/testdata/baselines/reference/submodule/conformance/jsDeclarationsTypeReferences3.js.diff new file mode 100644 index 0000000000..bfcbf6de4d --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsTypeReferences3.js.diff @@ -0,0 +1,27 @@ +--- old.jsDeclarationsTypeReferences3.js ++++ new.jsDeclarationsTypeReferences3.js +@@= skipped -14, +14 lines =@@ + + + //// [index.js] ++"use strict"; ++Object.defineProperty(exports, "__esModule", { value: true }); + /// + const Something = require("fs").Something; ++export var A = {}; + module.exports.A = {}; + module.exports.A.B = { + thing: new Something() +@@= skipped -9, +12 lines =@@ + + + //// [index.d.ts] +-export namespace A { +- namespace B { +- let thing: Something; +- } +-} +-import Something_1 = require("fs"); +-import Something = Something_1.Something; ++export var A = {}; ++export {}; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsTypeReferences4.js b/testdata/baselines/reference/submodule/conformance/jsDeclarationsTypeReferences4.js new file mode 100644 index 0000000000..34bea92be3 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsTypeReferences4.js @@ -0,0 +1,52 @@ +//// [tests/cases/conformance/jsdoc/declarations/jsDeclarationsTypeReferences4.ts] //// + +//// [index.d.ts] +declare module "fs" { + export class Something {} +} +//// [index.js] +/// +export const Something = 2; // to show conflict that can occur +// @ts-ignore +export namespace A { + // @ts-ignore + export namespace B { + const Something = require("fs").Something; + const thing = new Something(); + // @ts-ignore + export { thing }; + } +} + + +//// [index.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.A = exports.Something = void 0; +/// +exports.Something = 2; // to show conflict that can occur +// @ts-ignore +var A; +(function (A) { + // @ts-ignore + let B; + (function (B) { + const Something = require("fs").Something; + const thing = new Something(); + // @ts-ignore + export { thing }; + })(B = A.B || (A.B = {})); +})(A || (exports.A = A = {})); + + +//// [index.d.ts] +export declare const Something = 2; // to show conflict that can occur +// @ts-ignore +export declare namespace A { + // @ts-ignore + namespace B { + const thing: import("fs").Something; + // @ts-ignore + export { thing }; + } +} diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsTypeReferences4.js.diff b/testdata/baselines/reference/submodule/conformance/jsDeclarationsTypeReferences4.js.diff new file mode 100644 index 0000000000..fd01fa66b5 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsTypeReferences4.js.diff @@ -0,0 +1,26 @@ +--- old.jsDeclarationsTypeReferences4.js ++++ new.jsDeclarationsTypeReferences4.js +@@= skipped -32, +32 lines =@@ + (function (B) { + const Something = require("fs").Something; + const thing = new Something(); ++ // @ts-ignore ++ export { thing }; + })(B = A.B || (A.B = {})); + })(A || (exports.A = A = {})); + + + //// [index.d.ts] +-export const Something: 2; +-export namespace A { ++export declare const Something = 2; // to show conflict that can occur ++// @ts-ignore ++export declare namespace A { ++ // @ts-ignore + namespace B { ++ const thing: import("fs").Something; ++ // @ts-ignore + export { thing }; +- export let thing: import("fs").Something; + } + } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsTypedefAndImportTypes.js b/testdata/baselines/reference/submodule/conformance/jsDeclarationsTypedefAndImportTypes.js new file mode 100644 index 0000000000..4d67274d17 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsTypedefAndImportTypes.js @@ -0,0 +1,88 @@ +//// [tests/cases/conformance/jsdoc/declarations/jsDeclarationsTypedefAndImportTypes.ts] //// + +//// [conn.js] +/** + * @typedef {string | number} Whatever + */ + +class Conn { + constructor() {} + item = 3; + method() {} +} + +module.exports = Conn; + +//// [usage.js] +/** + * @typedef {import("./conn")} Conn + */ + +class Wrap { + /** + * @param {Conn} c + */ + constructor(c) { + this.connItem = c.item; + /** @type {import("./conn").Whatever} */ + this.another = ""; + } +} + +module.exports = { + Wrap +}; + + +//// [conn.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +/** + * @typedef {string | number} Whatever + */ +class Conn { + constructor() { } + item = 3; + method() { } +} +export = Conn; +module.exports = Conn; +//// [usage.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +/** + * @typedef {import("./conn")} Conn + */ +class Wrap { + /** + * @param {Conn} c + */ + constructor(c) { + this.connItem = c.item; + /** @type {import("./conn").Whatever} */ + this.another = ""; + } +} +module.exports = { + Wrap +}; + + +//// [conn.d.ts] +export type Whatever = string | number; +export = Conn; +//// [usage.d.ts] +export type Conn = import("./conn"); +/** + * @typedef {import("./conn")} Conn + */ +declare class Wrap { + /** + * @param {Conn} c + */ + constructor(c: Conn); +} +declare const _default: { + Wrap: typeof Wrap; +}; +export = _default; diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsTypedefAndImportTypes.js.diff b/testdata/baselines/reference/submodule/conformance/jsDeclarationsTypedefAndImportTypes.js.diff new file mode 100644 index 0000000000..e597ed2ed7 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsTypedefAndImportTypes.js.diff @@ -0,0 +1,63 @@ +--- old.jsDeclarationsTypedefAndImportTypes.js ++++ new.jsDeclarationsTypedefAndImportTypes.js +@@= skipped -34, +34 lines =@@ + + + //// [conn.js] ++"use strict"; ++Object.defineProperty(exports, "__esModule", { value: true }); + /** + * @typedef {string | number} Whatever + */ + class Conn { +- constructor() { +- this.item = 3; +- } ++ constructor() { } ++ item = 3; + method() { } + } ++export = Conn; + module.exports = Conn; + //// [usage.js] ++"use strict"; ++Object.defineProperty(exports, "__esModule", { value: true }); + /** + * @typedef {import("./conn")} Conn + */ +@@= skipped -30, +34 lines =@@ + + + //// [conn.d.ts] ++export type Whatever = string | number; + export = Conn; +-/** +- * @typedef {string | number} Whatever +- */ +-declare class Conn { +- item: number; +- method(): void; +-} +-declare namespace Conn { +- export { Whatever }; +-} +-type Whatever = string | number; + //// [usage.d.ts] + export type Conn = import("./conn"); + /** + * @typedef {import("./conn")} Conn + */ +-export class Wrap { ++declare class Wrap { + /** + * @param {Conn} c + */ + constructor(c: Conn); +- connItem: number; +- /** @type {import("./conn").Whatever} */ +- another: import("./conn").Whatever; + } ++declare const _default: { ++ Wrap: typeof Wrap; ++}; ++export = _default; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsTypedefDescriptionsPreserved.js b/testdata/baselines/reference/submodule/conformance/jsDeclarationsTypedefDescriptionsPreserved.js new file mode 100644 index 0000000000..8758dc31c0 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsTypedefDescriptionsPreserved.js @@ -0,0 +1,52 @@ +//// [tests/cases/conformance/jsdoc/declarations/jsDeclarationsTypedefDescriptionsPreserved.ts] //// + +//// [index.js] +/** + * Options for Foo <------------ + * @typedef {Object} FooOptions + * @property {boolean} bar - Marvin K Mooney + * @property {string} baz - Sylvester McMonkey McBean + */ + +/** + * Multiline + * Options + * for Foo <------------ + * @typedef {Object} BarOptions + * @property {boolean} bar - Marvin K Mooney + * @property {string} baz - Sylvester McMonkey McBean + */ + + +//// [index.js] +/** + * Options for Foo <------------ + * @typedef {Object} FooOptions + * @property {boolean} bar - Marvin K Mooney + * @property {string} baz - Sylvester McMonkey McBean + */ +/** + * Multiline + * Options + * for Foo <------------ + * @typedef {Object} BarOptions + * @property {boolean} bar - Marvin K Mooney + * @property {string} baz - Sylvester McMonkey McBean + */ + + +//// [index.d.ts] +/** + * Options for Foo <------------ + * @typedef {Object} FooOptions + * @property {boolean} bar - Marvin K Mooney + * @property {string} baz - Sylvester McMonkey McBean + */ +/** + * Multiline + * Options + * for Foo <------------ + * @typedef {Object} BarOptions + * @property {boolean} bar - Marvin K Mooney + * @property {string} baz - Sylvester McMonkey McBean + */ diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsTypedefDescriptionsPreserved.js.diff b/testdata/baselines/reference/submodule/conformance/jsDeclarationsTypedefDescriptionsPreserved.js.diff new file mode 100644 index 0000000000..71c8b863ff --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsTypedefDescriptionsPreserved.js.diff @@ -0,0 +1,38 @@ +--- old.jsDeclarationsTypedefDescriptionsPreserved.js ++++ new.jsDeclarationsTypedefDescriptionsPreserved.js +@@= skipped -37, +37 lines =@@ + //// [index.d.ts] + /** + * Options for Foo <------------ ++ * @typedef {Object} FooOptions ++ * @property {boolean} bar - Marvin K Mooney ++ * @property {string} baz - Sylvester McMonkey McBean + */ +-type FooOptions = { +- /** +- * - Marvin K Mooney +- */ +- bar: boolean; +- /** +- * - Sylvester McMonkey McBean +- */ +- baz: string; +-}; + /** + * Multiline + * Options + * for Foo <------------ ++ * @typedef {Object} BarOptions ++ * @property {boolean} bar - Marvin K Mooney ++ * @property {string} baz - Sylvester McMonkey McBean + */ +-type BarOptions = { +- /** +- * - Marvin K Mooney +- */ +- bar: boolean; +- /** +- * - Sylvester McMonkey McBean +- */ +- baz: string; +-}; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsTypedefFunction.js b/testdata/baselines/reference/submodule/conformance/jsDeclarationsTypedefFunction.js new file mode 100644 index 0000000000..6dadf18074 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsTypedefFunction.js @@ -0,0 +1,40 @@ +//// [tests/cases/conformance/jsdoc/declarations/jsDeclarationsTypedefFunction.ts] //// + +//// [foo.js] +/** + * @typedef {{ + * [id: string]: [Function, Function]; + * }} ResolveRejectMap + */ + +let id = 0 + +/** + * @param {ResolveRejectMap} handlers + * @returns {Promise} + */ +const send = handlers => new Promise((resolve, reject) => { + handlers[++id] = [resolve, reject] +}) + +//// [foo.js] +/** + * @typedef {{ + * [id: string]: [Function, Function]; + * }} ResolveRejectMap + */ +let id = 0; +/** + * @param {ResolveRejectMap} handlers + * @returns {Promise} + */ +const send = handlers => new Promise((resolve, reject) => { + handlers[++id] = [resolve, reject]; +}); +export {}; + + +//// [foo.d.ts] +export type ResolveRejectMap = { + [id: string]: [Function, Function]; +}; diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsTypedefFunction.js.diff b/testdata/baselines/reference/submodule/conformance/jsDeclarationsTypedefFunction.js.diff new file mode 100644 index 0000000000..7d399535fc --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsTypedefFunction.js.diff @@ -0,0 +1,25 @@ +--- old.jsDeclarationsTypedefFunction.js ++++ new.jsDeclarationsTypedefFunction.js +@@= skipped -30, +30 lines =@@ + const send = handlers => new Promise((resolve, reject) => { + handlers[++id] = [resolve, reject]; + }); ++export {}; + + + //// [foo.d.ts] +-/** +- * @typedef {{ +- * [id: string]: [Function, Function]; +- * }} ResolveRejectMap +- */ +-declare let id: number; +-/** +- * @param {ResolveRejectMap} handlers +- * @returns {Promise} +- */ +-declare function send(handlers: ResolveRejectMap): Promise; +-type ResolveRejectMap = { ++export type ResolveRejectMap = { + [id: string]: [Function, Function]; + }; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsTypedefPropertyAndExportAssignment.js b/testdata/baselines/reference/submodule/conformance/jsDeclarationsTypedefPropertyAndExportAssignment.js new file mode 100644 index 0000000000..3bef7dea8d --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsTypedefPropertyAndExportAssignment.js @@ -0,0 +1,140 @@ +//// [tests/cases/conformance/jsdoc/declarations/jsDeclarationsTypedefPropertyAndExportAssignment.ts] //// + +//// [module.js] +/** @typedef {'parseHTML'|'styleLayout'} TaskGroupIds */ + +/** + * @typedef TaskGroup + * @property {TaskGroupIds} id + * @property {string} label + * @property {string[]} traceEventNames + */ + +/** + * @type {{[P in TaskGroupIds]: {id: P, label: string}}} + */ +const taskGroups = { + parseHTML: { + id: 'parseHTML', + label: 'Parse HTML & CSS' + }, + styleLayout: { + id: 'styleLayout', + label: 'Style & Layout' + }, +} + +/** @type {Object} */ +const taskNameToGroup = {}; + +module.exports = { + taskGroups, + taskNameToGroup, +}; +//// [index.js] +const {taskGroups, taskNameToGroup} = require('./module.js'); + +/** @typedef {import('./module.js').TaskGroup} TaskGroup */ + +/** + * @typedef TaskNode + * @prop {TaskNode[]} children + * @prop {TaskNode|undefined} parent + * @prop {TaskGroup} group + */ + +/** @typedef {{timers: Map}} PriorTaskData */ +class MainThreadTasks { + /** + * @param {TaskGroup} x + * @param {TaskNode} y + */ + constructor(x, y){} +} + +module.exports = MainThreadTasks; + +//// [module.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +/** @typedef {'parseHTML'|'styleLayout'} TaskGroupIds */ +/** + * @typedef TaskGroup + * @property {TaskGroupIds} id + * @property {string} label + * @property {string[]} traceEventNames + */ +/** + * @type {{[P in TaskGroupIds]: {id: P, label: string}}} + */ +const taskGroups = { + parseHTML: { + id: 'parseHTML', + label: 'Parse HTML & CSS' + }, + styleLayout: { + id: 'styleLayout', + label: 'Style & Layout' + }, +}; +/** @type {Object} */ +const taskNameToGroup = {}; +module.exports = { + taskGroups, + taskNameToGroup, +}; +//// [index.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const { taskGroups, taskNameToGroup } = require('./module.js'); +/** @typedef {import('./module.js').TaskGroup} TaskGroup */ +/** + * @typedef TaskNode + * @prop {TaskNode[]} children + * @prop {TaskNode|undefined} parent + * @prop {TaskGroup} group + */ +/** @typedef {{timers: Map}} PriorTaskData */ +class MainThreadTasks { + /** + * @param {TaskGroup} x + * @param {TaskNode} y + */ + constructor(x, y) { } +} +export = MainThreadTasks; +module.exports = MainThreadTasks; + + +//// [module.d.ts] +export type TaskGroupIds = 'parseHTML' | 'styleLayout'; +export type TaskGroup = { + id: TaskGroupIds; + label: string; + traceEventNames: string[]; +}; +declare const _default: { + taskGroups: { + parseHTML: { + id: "parseHTML"; + label: string; + }; + styleLayout: { + id: "styleLayout"; + label: string; + }; + }; + taskNameToGroup: any; +}; +export = _default; +//// [index.d.ts] +export type TaskGroup = import('./module.js').TaskGroup; +export type TaskNode = { + children: TaskNode[]; + parent: TaskNode | undefined; + group: TaskGroup; +}; +export type PriorTaskData = { + timers: Map; +}; +export = MainThreadTasks; diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsTypedefPropertyAndExportAssignment.js.diff b/testdata/baselines/reference/submodule/conformance/jsDeclarationsTypedefPropertyAndExportAssignment.js.diff new file mode 100644 index 0000000000..014dd8fd76 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsTypedefPropertyAndExportAssignment.js.diff @@ -0,0 +1,100 @@ +--- old.jsDeclarationsTypedefPropertyAndExportAssignment.js ++++ new.jsDeclarationsTypedefPropertyAndExportAssignment.js +@@= skipped -54, +54 lines =@@ + module.exports = MainThreadTasks; + + //// [module.js] ++"use strict"; ++Object.defineProperty(exports, "__esModule", { value: true }); + /** @typedef {'parseHTML'|'styleLayout'} TaskGroupIds */ + /** + * @typedef TaskGroup +@@= skipped -27, +29 lines =@@ + taskNameToGroup, + }; + //// [index.js] ++"use strict"; ++Object.defineProperty(exports, "__esModule", { value: true }); + const { taskGroups, taskNameToGroup } = require('./module.js'); + /** @typedef {import('./module.js').TaskGroup} TaskGroup */ + /** +@@= skipped -16, +18 lines =@@ + */ + constructor(x, y) { } + } ++export = MainThreadTasks; + module.exports = MainThreadTasks; + + + //// [module.d.ts] +-export type TaskGroupIds = "parseHTML" | "styleLayout"; ++export type TaskGroupIds = 'parseHTML' | 'styleLayout'; + export type TaskGroup = { + id: TaskGroupIds; + label: string; + traceEventNames: string[]; + }; +-/** @typedef {'parseHTML'|'styleLayout'} TaskGroupIds */ +-/** +- * @typedef TaskGroup +- * @property {TaskGroupIds} id +- * @property {string} label +- * @property {string[]} traceEventNames +- */ +-/** +- * @type {{[P in TaskGroupIds]: {id: P, label: string}}} +- */ +-export const taskGroups: { [P in TaskGroupIds]: { +- id: P; +- label: string; +-}; }; +-/** @type {Object} */ +-export const taskNameToGroup: { +- [x: string]: TaskGroup; ++declare const _default: { ++ taskGroups: { ++ parseHTML: { ++ id: "parseHTML"; ++ label: string; ++ }; ++ styleLayout: { ++ id: "styleLayout"; ++ label: string; ++ }; ++ }; ++ taskNameToGroup: any; + }; ++export = _default; + //// [index.d.ts] +-export = MainThreadTasks; +-/** @typedef {import('./module.js').TaskGroup} TaskGroup */ +-/** +- * @typedef TaskNode +- * @prop {TaskNode[]} children +- * @prop {TaskNode|undefined} parent +- * @prop {TaskGroup} group +- */ +-/** @typedef {{timers: Map}} PriorTaskData */ +-declare class MainThreadTasks { +- /** +- * @param {TaskGroup} x +- * @param {TaskNode} y +- */ +- constructor(x: TaskGroup, y: TaskNode); +-} +-declare namespace MainThreadTasks { +- export { TaskGroup, TaskNode, PriorTaskData }; +-} +-type TaskGroup = import("./module.js").TaskGroup; +-type TaskNode = { ++export type TaskGroup = import('./module.js').TaskGroup; ++export type TaskNode = { + children: TaskNode[]; + parent: TaskNode | undefined; + group: TaskGroup; + }; +-type PriorTaskData = { ++export type PriorTaskData = { + timers: Map; + }; ++export = MainThreadTasks; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsUniqueSymbolUsage.js b/testdata/baselines/reference/submodule/conformance/jsDeclarationsUniqueSymbolUsage.js new file mode 100644 index 0000000000..5030d6b149 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsUniqueSymbolUsage.js @@ -0,0 +1,31 @@ +//// [tests/cases/conformance/jsdoc/declarations/jsDeclarationsUniqueSymbolUsage.ts] //// + +//// [a.js] +export const kSymbol = Symbol("my-symbol"); + +/** + * @typedef {{[kSymbol]: true}} WithSymbol + */ +//// [b.js] +/** + * @returns {import('./a').WithSymbol} + * @param {import('./a').WithSymbol} value + */ +export function b(value) { + return value; +} + + + + +//// [a.d.ts] +export declare const kSymbol: unique symbol; +/** + * @typedef {{[kSymbol]: true}} WithSymbol + */ +//// [b.d.ts] +/** + * @returns {import('./a').WithSymbol} + * @param {import('./a').WithSymbol} value + */ +export declare function b(value: import('./a').WithSymbol): import('./a').WithSymbol; diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsUniqueSymbolUsage.js.diff b/testdata/baselines/reference/submodule/conformance/jsDeclarationsUniqueSymbolUsage.js.diff new file mode 100644 index 0000000000..ef2dce4689 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsUniqueSymbolUsage.js.diff @@ -0,0 +1,21 @@ +--- old.jsDeclarationsUniqueSymbolUsage.js ++++ new.jsDeclarationsUniqueSymbolUsage.js +@@= skipped -18, +18 lines =@@ + + + //// [a.d.ts] +-export const kSymbol: unique symbol; +-export type WithSymbol = { +- [kSymbol]: true; +-}; ++export declare const kSymbol: unique symbol; ++/** ++ * @typedef {{[kSymbol]: true}} WithSymbol ++ */ + //// [b.d.ts] + /** + * @returns {import('./a').WithSymbol} + * @param {import('./a').WithSymbol} value + */ +-export function b(value: import("./a").WithSymbol): import("./a").WithSymbol; ++export declare function b(value: import('./a').WithSymbol): import('./a').WithSymbol; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/jsdocCatchClauseWithTypeAnnotation.js b/testdata/baselines/reference/submodule/conformance/jsdocCatchClauseWithTypeAnnotation.js new file mode 100644 index 0000000000..ca7bbd01ea --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsdocCatchClauseWithTypeAnnotation.js @@ -0,0 +1,147 @@ +//// [tests/cases/conformance/jsdoc/jsdocCatchClauseWithTypeAnnotation.ts] //// + +//// [foo.js] +/** + * @typedef {any} Any + */ + +/** + * @typedef {unknown} Unknown + */ + +function fn() { + try { } catch (x) { } // should be OK + try { } catch (/** @type {any} */ err) { } // should be OK + try { } catch (/** @type {Any} */ err) { } // should be OK + try { } catch (/** @type {unknown} */ err) { } // should be OK + try { } catch (/** @type {Unknown} */ err) { } // should be OK + try { } catch (err) { err.foo; } // should be OK + try { } catch (/** @type {any} */ err) { err.foo; } // should be OK + try { } catch (/** @type {Any} */ err) { err.foo; } // should be OK + try { } catch (/** @type {unknown} */ err) { console.log(err); } // should be OK + try { } catch (/** @type {Unknown} */ err) { console.log(err); } // should be OK + try { } catch (/** @type {unknown} */ err) { err.foo; } // error in the body + try { } catch (/** @type {Unknown} */ err) { err.foo; } // error in the body + try { } catch (/** @type {Error} */ err) { } // error in the type + try { } catch (/** @type {object} */ err) { } // error in the type + + try { console.log(); } + // @ts-ignore + catch (/** @type {number} */ err) { // e should not be a `number` + console.log(err.toLowerCase()); + } + + // minor bug: shows that the `catch` argument is skipped when checking scope + try { } + catch (err) { + /** @type {string} */ + let err; + } + try { } + catch (err) { + /** @type {boolean} */ + var err; + } + + try { } catch ({ x }) { } // should be OK + try { } catch (/** @type {any} */ { x }) { x.foo; } // should be OK + try { } catch (/** @type {Any} */ { x }) { x.foo;} // should be OK + try { } catch (/** @type {unknown} */ { x }) { console.log(x); } // error in the destructure + try { } catch (/** @type {Unknown} */ { x }) { console.log(x); } // error in the destructure + try { } catch (/** @type {Error} */ { x }) { } // error in the type + try { } catch (/** @type {object} */ { x }) { } // error in the type +} + + +//// [foo.js] +/** + * @typedef {any} Any + */ +/** + * @typedef {unknown} Unknown + */ +function fn() { + try { } + catch (x) { } // should be OK + try { } + catch ( /** @type {any} */err) { } // should be OK + try { } + catch ( /** @type {Any} */err) { } // should be OK + try { } + catch ( /** @type {unknown} */err) { } // should be OK + try { } + catch ( /** @type {Unknown} */err) { } // should be OK + try { } + catch (err) { + err.foo; + } // should be OK + try { } + catch ( /** @type {any} */err) { + err.foo; + } // should be OK + try { } + catch ( /** @type {Any} */err) { + err.foo; + } // should be OK + try { } + catch ( /** @type {unknown} */err) { + console.log(err); + } // should be OK + try { } + catch ( /** @type {Unknown} */err) { + console.log(err); + } // should be OK + try { } + catch ( /** @type {unknown} */err) { + err.foo; + } // error in the body + try { } + catch ( /** @type {Unknown} */err) { + err.foo; + } // error in the body + try { } + catch ( /** @type {Error} */err) { } // error in the type + try { } + catch ( /** @type {object} */err) { } // error in the type + try { + console.log(); + } + // @ts-ignore + catch ( /** @type {number} */err) { // e should not be a `number` + console.log(err.toLowerCase()); + } + // minor bug: shows that the `catch` argument is skipped when checking scope + try { } + catch (err) { + /** @type {string} */ + let err; + } + try { } + catch (err) { + /** @type {boolean} */ + var err; + } + try { } + catch ({ x }) { } // should be OK + try { } + catch ( /** @type {any} */{ x }) { + x.foo; + } // should be OK + try { } + catch ( /** @type {Any} */{ x }) { + x.foo; + } // should be OK + try { } + catch ( /** @type {unknown} */{ x }) { + console.log(x); + } // error in the destructure + try { } + catch ( /** @type {Unknown} */{ x }) { + console.log(x); + } // error in the destructure + try { } + catch ( /** @type {Error} */{ x }) { } // error in the type + try { } + catch ( /** @type {object} */{ x }) { } // error in the type +} +export {}; diff --git a/testdata/baselines/reference/submodule/conformance/jsdocCatchClauseWithTypeAnnotation.js.diff b/testdata/baselines/reference/submodule/conformance/jsdocCatchClauseWithTypeAnnotation.js.diff new file mode 100644 index 0000000000..6411706b8a --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsdocCatchClauseWithTypeAnnotation.js.diff @@ -0,0 +1,7 @@ +--- old.jsdocCatchClauseWithTypeAnnotation.js ++++ new.jsdocCatchClauseWithTypeAnnotation.js +@@= skipped -143, +143 lines =@@ + try { } + catch ( /** @type {object} */{ x }) { } // error in the type + } ++export {}; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/jsdocImplements_class.js b/testdata/baselines/reference/submodule/conformance/jsdocImplements_class.js new file mode 100644 index 0000000000..83f4b967b4 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsdocImplements_class.js @@ -0,0 +1,108 @@ +//// [tests/cases/conformance/jsdoc/jsdocImplements_class.ts] //// + +//// [a.js] +class A { + /** @return {number} */ + method() { throw new Error(); } +} +/** @implements {A} */ +class B { + method() { return 0 } +} + +/** @implements A */ +class B2 { + /** @return {string} */ + method() { return "" } +} + +/** @implements {A} */ +class B3 { +} + + +var Ns = {}; +/** @implements {A} */ +Ns.C1 = class { + method() { return 11; } +} +/** @implements {A} */ +var C2 = class { + method() { return 12; } +} +var o = { + /** @implements {A} */ + C3: class { + method() { return 13; } + } +} +class CC { + /** @implements {A} */ + C4 = class { + method() { + return 14; + } + } +} + +var C5; +/** @implements {A} */ +Ns.C5 = C5 || class { + method() { + return 15; + } +} + + + + +//// [a.d.ts] +declare class A { + /** @return {number} */ + method(): number; +} +/** @implements {A} */ +declare class B implements A { + method(): number; +} +/** @implements A */ +declare class B2 implements A { + /** @return {string} */ + method(): string; +} +/** @implements {A} */ +declare class B3 implements A { +} +declare var Ns: { + /** @implements {A} */ + C1: { + new (): { + method(): number; + }; + }; + /** @implements {A} */ + C5: any; +}; +/** @implements {A} */ +declare var C2: { + new (): { + method(): number; + }; +}; +declare var o: { + /** @implements {A} */ + C3: { + new (): { + method(): number; + }; + }; +}; +declare class CC { + /** @implements {A} */ + C4: { + new (): { + method(): number; + }; + }; +} +declare var C5: any; diff --git a/testdata/baselines/reference/submodule/conformance/jsdocImplements_class.js.diff b/testdata/baselines/reference/submodule/conformance/jsdocImplements_class.js.diff new file mode 100644 index 0000000000..97a55138f3 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsdocImplements_class.js.diff @@ -0,0 +1,50 @@ +--- old.jsdocImplements_class.js ++++ new.jsdocImplements_class.js +@@= skipped -72, +72 lines =@@ + /** @implements {A} */ + declare class B3 implements A { + } +-declare namespace Ns { +- export { C1 }; +- export let C5: { ++declare var Ns: { ++ /** @implements {A} */ ++ C1: { + new (): { + method(): number; + }; + }; +-} ++ /** @implements {A} */ ++ C5: any; ++}; + /** @implements {A} */ + declare var C2: { + new (): { + method(): number; + }; + }; +-declare namespace o { +- export { C3 }; +-} ++declare var o: { ++ /** @implements {A} */ ++ C3: { ++ new (): { ++ method(): number; ++ }; ++ }; ++}; + declare class CC { + /** @implements {A} */ + C4: { +@@= skipped -26, +33 lines =@@ + }; + } + declare var C5: any; +-declare class C1 implements A { +- method(): number; +-} +-declare class C3 implements A { +- method(): number; +-} \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/jsdocImplements_interface.js b/testdata/baselines/reference/submodule/conformance/jsdocImplements_interface.js new file mode 100644 index 0000000000..0588f3a2a9 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsdocImplements_interface.js @@ -0,0 +1,38 @@ +//// [tests/cases/conformance/jsdoc/jsdocImplements_interface.ts] //// + +//// [defs.d.ts] +interface A { + mNumber(): number; +} +//// [a.js] +/** @implements A */ +class B { + mNumber() { + return 0; + } +} +/** @implements {A} */ +class B2 { + mNumber() { + return ""; + } +} +/** @implements A */ +class B3 { +} + + + + +//// [a.d.ts] +/** @implements A */ +declare class B implements A { + mNumber(): number; +} +/** @implements {A} */ +declare class B2 implements A { + mNumber(): string; +} +/** @implements A */ +declare class B3 implements A { +} diff --git a/testdata/baselines/reference/submodule/conformance/jsdocImplements_interface_multiple.js b/testdata/baselines/reference/submodule/conformance/jsdocImplements_interface_multiple.js new file mode 100644 index 0000000000..4ea9497f2b --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsdocImplements_interface_multiple.js @@ -0,0 +1,50 @@ +//// [tests/cases/conformance/jsdoc/jsdocImplements_interface_multiple.ts] //// + +//// [defs.d.ts] +interface Drawable { + draw(): number; +} +interface Sizable { + size(): number; +} +//// [a.js] +/** + * @implements {Drawable} + * @implements Sizable + **/ +class Square { + draw() { + return 0; + } + size() { + return 0; + } +} +/** + * @implements Drawable + * @implements {Sizable} + **/ +class BadSquare { + size() { + return 0; + } +} + + + +//// [a.d.ts] +/** + * @implements {Drawable} + * @implements Sizable + **/ +declare class Square implements Drawable, Sizable { + draw(): number; + size(): number; +} +/** + * @implements Drawable + * @implements {Sizable} + **/ +declare class BadSquare implements Drawable, Sizable { + size(): number; +} diff --git a/testdata/baselines/reference/submodule/conformance/jsdocImplements_missingType.js b/testdata/baselines/reference/submodule/conformance/jsdocImplements_missingType.js new file mode 100644 index 0000000000..0d5243e60c --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsdocImplements_missingType.js @@ -0,0 +1,36 @@ +//// [tests/cases/conformance/jsdoc/jsdocImplements_missingType.ts] //// + +//// [a.js] +class A { constructor() { this.x = 0; } } +/** @implements */ +class B { +} + + + + +//// [a.d.ts] +declare class A { + constructor(); +} +/** @implements */ +declare class B implements { +} + + +//// [DtsFileErrors] + + +out/a.d.ts(5,27): error TS1097: 'implements' list cannot be empty. + + +==== out/a.d.ts (1 errors) ==== + declare class A { + constructor(); + } + /** @implements */ + declare class B implements { + +!!! error TS1097: 'implements' list cannot be empty. + } + \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/jsdocImplements_missingType.js.diff b/testdata/baselines/reference/submodule/conformance/jsdocImplements_missingType.js.diff new file mode 100644 index 0000000000..643e190e6e --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsdocImplements_missingType.js.diff @@ -0,0 +1,31 @@ +--- old.jsdocImplements_missingType.js ++++ new.jsdocImplements_missingType.js +@@= skipped -10, +10 lines =@@ + + //// [a.d.ts] + declare class A { +- x: number; ++ constructor(); + } + /** @implements */ +-declare class B { ++declare class B implements { + } ++ ++ ++//// [DtsFileErrors] ++ ++ ++out/a.d.ts(5,27): error TS1097: 'implements' list cannot be empty. ++ ++ ++==== out/a.d.ts (1 errors) ==== ++ declare class A { ++ constructor(); ++ } ++ /** @implements */ ++ declare class B implements { ++ ++!!! error TS1097: 'implements' list cannot be empty. ++ } ++ \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/jsdocImplements_namespacedInterface.js b/testdata/baselines/reference/submodule/conformance/jsdocImplements_namespacedInterface.js new file mode 100644 index 0000000000..4a3e1ddf4e --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsdocImplements_namespacedInterface.js @@ -0,0 +1,37 @@ +//// [tests/cases/conformance/jsdoc/jsdocImplements_namespacedInterface.ts] //// + +//// [defs.d.ts] +declare namespace N { + interface A { + mNumber(): number; + } + interface AT { + gen(): T; + } +} +//// [a.js] +/** @implements N.A */ +class B { + mNumber() { + return 0; + } +} +/** @implements {N.AT} */ +class BAT { + gen() { + return ""; + } +} + + + + +//// [a.d.ts] +/** @implements N.A */ +declare class B implements N.A { + mNumber(): number; +} +/** @implements {N.AT} */ +declare class BAT implements N.AT { + gen(): string; +} diff --git a/testdata/baselines/reference/submodule/conformance/jsdocImplements_properties.js b/testdata/baselines/reference/submodule/conformance/jsdocImplements_properties.js new file mode 100644 index 0000000000..f0c18c8953 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsdocImplements_properties.js @@ -0,0 +1,35 @@ +//// [tests/cases/conformance/jsdoc/jsdocImplements_properties.ts] //// + +//// [a.js] +class A { constructor() { this.x = 0; } } +/** @implements A*/ +class B {} + +/** @implements A*/ +class B2 { + x = 10 +} + +/** @implements {A}*/ +class B3 { + constructor() { this.x = 10 } +} + + + + +//// [a.d.ts] +declare class A { + constructor(); +} +/** @implements A*/ +declare class B implements A { +} +/** @implements A*/ +declare class B2 implements A { + x: number; +} +/** @implements {A}*/ +declare class B3 implements A { + constructor(); +} diff --git a/testdata/baselines/reference/submodule/conformance/jsdocImplements_properties.js.diff b/testdata/baselines/reference/submodule/conformance/jsdocImplements_properties.js.diff new file mode 100644 index 0000000000..e1a7117dd8 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsdocImplements_properties.js.diff @@ -0,0 +1,18 @@ +--- old.jsdocImplements_properties.js ++++ new.jsdocImplements_properties.js +@@= skipped -19, +19 lines =@@ + + //// [a.d.ts] + declare class A { +- x: number; ++ constructor(); + } + /** @implements A*/ + declare class B implements A { +@@= skipped -11, +11 lines =@@ + } + /** @implements {A}*/ + declare class B3 implements A { +- x: number; ++ constructor(); + } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/jsdocImplements_signatures.js b/testdata/baselines/reference/submodule/conformance/jsdocImplements_signatures.js new file mode 100644 index 0000000000..500b32d033 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsdocImplements_signatures.js @@ -0,0 +1,18 @@ +//// [tests/cases/conformance/jsdoc/jsdocImplements_signatures.ts] //// + +//// [defs.d.ts] +interface Sig { + [index: string]: string +} +//// [a.js] +/** @implements {Sig} */ +class B { +} + + + + +//// [a.d.ts] +/** @implements {Sig} */ +declare class B implements Sig { +} diff --git a/testdata/baselines/reference/submodule/conformance/jsdocOuterTypeParameters1.js b/testdata/baselines/reference/submodule/conformance/jsdocOuterTypeParameters1.js new file mode 100644 index 0000000000..ccb78ebc72 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsdocOuterTypeParameters1.js @@ -0,0 +1,24 @@ +//// [tests/cases/conformance/jsdoc/jsdocOuterTypeParameters1.ts] //// + +//// [jsdocOuterTypeParameters1.js] +/** @return {T} */ +const dedupingMixin = function(mixin) {}; + + /** @template {T} */ +const PropertyAccessors = dedupingMixin(() => { + class Bar { + static bar() { this.prototype.foo(); } + } +}); + + + +//// [jsdocOuterTypeParameters1.js] +/** @return {T} */ +const dedupingMixin = function (mixin) { }; +/** @template {T} */ +const PropertyAccessors = dedupingMixin(() => { + class Bar { + static bar() { this.prototype.foo(); } + } +}); diff --git a/testdata/baselines/reference/submodule/conformance/jsdocOuterTypeParameters1.js.diff b/testdata/baselines/reference/submodule/conformance/jsdocOuterTypeParameters1.js.diff new file mode 100644 index 0000000000..355438ff79 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsdocOuterTypeParameters1.js.diff @@ -0,0 +1,28 @@ +--- old.jsdocOuterTypeParameters1.js ++++ new.jsdocOuterTypeParameters1.js +@@= skipped -0, +0 lines =@@ +- ++//// [tests/cases/conformance/jsdoc/jsdocOuterTypeParameters1.ts] //// ++ ++//// [jsdocOuterTypeParameters1.js] ++/** @return {T} */ ++const dedupingMixin = function(mixin) {}; ++ ++ /** @template {T} */ ++const PropertyAccessors = dedupingMixin(() => { ++ class Bar { ++ static bar() { this.prototype.foo(); } ++ } ++}); ++ ++ ++ ++//// [jsdocOuterTypeParameters1.js] ++/** @return {T} */ ++const dedupingMixin = function (mixin) { }; ++/** @template {T} */ ++const PropertyAccessors = dedupingMixin(() => { ++ class Bar { ++ static bar() { this.prototype.foo(); } ++ } ++}); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/jsdocOuterTypeParameters2.js b/testdata/baselines/reference/submodule/conformance/jsdocOuterTypeParameters2.js new file mode 100644 index 0000000000..c250972eb0 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsdocOuterTypeParameters2.js @@ -0,0 +1,24 @@ +//// [tests/cases/conformance/jsdoc/jsdocOuterTypeParameters2.ts] //// + +//// [jsdocOuterTypeParameters1.js] +/** @return {T} */ +const dedupingMixin = function(mixin) {}; + + /** @template T */ +const PropertyAccessors = dedupingMixin(() => { + class Bar { + static bar() { this.prototype.foo(); } + } +}); + + + +//// [jsdocOuterTypeParameters1.js] +/** @return {T} */ +const dedupingMixin = function (mixin) { }; +/** @template T */ +const PropertyAccessors = dedupingMixin(() => { + class Bar { + static bar() { this.prototype.foo(); } + } +}); diff --git a/testdata/baselines/reference/submodule/conformance/jsdocOuterTypeParameters2.js.diff b/testdata/baselines/reference/submodule/conformance/jsdocOuterTypeParameters2.js.diff new file mode 100644 index 0000000000..1ba2476e43 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsdocOuterTypeParameters2.js.diff @@ -0,0 +1,28 @@ +--- old.jsdocOuterTypeParameters2.js ++++ new.jsdocOuterTypeParameters2.js +@@= skipped -0, +0 lines =@@ +- ++//// [tests/cases/conformance/jsdoc/jsdocOuterTypeParameters2.ts] //// ++ ++//// [jsdocOuterTypeParameters1.js] ++/** @return {T} */ ++const dedupingMixin = function(mixin) {}; ++ ++ /** @template T */ ++const PropertyAccessors = dedupingMixin(() => { ++ class Bar { ++ static bar() { this.prototype.foo(); } ++ } ++}); ++ ++ ++ ++//// [jsdocOuterTypeParameters1.js] ++/** @return {T} */ ++const dedupingMixin = function (mixin) { }; ++/** @template T */ ++const PropertyAccessors = dedupingMixin(() => { ++ class Bar { ++ static bar() { this.prototype.foo(); } ++ } ++}); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/jsdocOuterTypeParameters3.js b/testdata/baselines/reference/submodule/conformance/jsdocOuterTypeParameters3.js new file mode 100644 index 0000000000..8ea44d5197 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsdocOuterTypeParameters3.js @@ -0,0 +1,22 @@ +//// [tests/cases/conformance/jsdoc/jsdocOuterTypeParameters3.ts] //// + +//// [jsdocOuterTypeParameters3.js] +/** @template {T} */ +class Baz { + m() { + class Bar { + static bar() { this.prototype.foo(); } + } + } +} + + +//// [jsdocOuterTypeParameters3.js] +/** @template {T} */ +class Baz { + m() { + class Bar { + static bar() { this.prototype.foo(); } + } + } +} diff --git a/testdata/baselines/reference/submodule/conformance/jsdocOuterTypeParameters3.js.diff b/testdata/baselines/reference/submodule/conformance/jsdocOuterTypeParameters3.js.diff new file mode 100644 index 0000000000..5bcd23cd0b --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsdocOuterTypeParameters3.js.diff @@ -0,0 +1,26 @@ +--- old.jsdocOuterTypeParameters3.js ++++ new.jsdocOuterTypeParameters3.js +@@= skipped -0, +0 lines =@@ +- ++//// [tests/cases/conformance/jsdoc/jsdocOuterTypeParameters3.ts] //// ++ ++//// [jsdocOuterTypeParameters3.js] ++/** @template {T} */ ++class Baz { ++ m() { ++ class Bar { ++ static bar() { this.prototype.foo(); } ++ } ++ } ++} ++ ++ ++//// [jsdocOuterTypeParameters3.js] ++/** @template {T} */ ++class Baz { ++ m() { ++ class Bar { ++ static bar() { this.prototype.foo(); } ++ } ++ } ++} \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/jsdocSignatureOnReturnedFunction.js b/testdata/baselines/reference/submodule/conformance/jsdocSignatureOnReturnedFunction.js new file mode 100644 index 0000000000..67d3a6195e --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsdocSignatureOnReturnedFunction.js @@ -0,0 +1,80 @@ +//// [tests/cases/conformance/jsdoc/jsdocSignatureOnReturnedFunction.ts] //// + +//// [jsdocSignatureOnReturnedFunction.js] +function f1() { + /** + * @param {number} a + * @param {number} b + * @returns {number} + */ + return (a, b) => { + return a + b; + } +} + +function f2() { + /** + * @param {number} a + * @param {number} b + * @returns {number} + */ + return function (a, b){ + return a + b; + } +} + +function f3() { + /** @type {(a: number, b: number) => number} */ + return (a, b) => { + return a + b; + } +} + +function f4() { + /** @type {(a: number, b: number) => number} */ + return function (a, b){ + return a + b; + } +} + + +//// [jsdocSignatureOnReturnedFunction.js] +function f1() { + /** + * @param {number} a + * @param {number} b + * @returns {number} + */ + return (a, b) => { + return a + b; + }; +} +function f2() { + /** + * @param {number} a + * @param {number} b + * @returns {number} + */ + return function (a, b) { + return a + b; + }; +} +function f3() { + /** @type {(a: number, b: number) => number} */ + return (a, b) => { + return a + b; + }; +} +function f4() { + /** @type {(a: number, b: number) => number} */ + return function (a, b) { + return a + b; + }; +} + + +//// [jsdocSignatureOnReturnedFunction.d.ts] +declare function f1(): (a: number, b: number) => number; +declare function f2(): (a: number, b: number) => number; +declare function f3(): (a: number, b: number) => number; +declare function f4(): (a: number, b: number) => number; diff --git a/testdata/baselines/reference/submodule/conformance/jsdocTemplateTagDefault.js b/testdata/baselines/reference/submodule/conformance/jsdocTemplateTagDefault.js new file mode 100644 index 0000000000..c7b444b44c --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsdocTemplateTagDefault.js @@ -0,0 +1,138 @@ +//// [tests/cases/conformance/jsdoc/jsdocTemplateTagDefault.ts] //// + +//// [file.js] +/** + * @template {string | number} [T=string] - ok: defaults are permitted + * @typedef {[T]} A + */ + +/** @type {A} */ // ok, default for `T` in `A` is `string` +const aDefault1 = [""]; +/** @type {A} */ // error: `number` is not assignable to string` +const aDefault2 = [0]; +/** @type {A} */ // ok, `T` is provided for `A` +const aString = [""]; +/** @type {A} */ // ok, `T` is provided for `A` +const aNumber = [0]; + +/** + * @template T + * @template [U=T] - ok: default can reference earlier type parameter + * @typedef {[T, U]} B + */ + +/** + * @template {string | number} [T] - error: default requires an `=type` + * @typedef {[T]} C + */ + +/** + * @template {string | number} [T=] - error: default requires a `type` + * @typedef {[T]} D + */ + +/** + * @template {string | number} [T=string] + * @template U - error: Required type parameters cannot follow optional type parameters + * @typedef {[T, U]} E + */ + +/** + * @template [T=U] - error: Type parameter defaults can only reference previously declared type parameters. + * @template [U=T] + * @typedef {[T, U]} G + */ + +/** + * @template T + * @template [U=T] - ok: default can reference earlier type parameter + * @param {T} a + * @param {U} b + */ +function f1(a, b) {} + + /** + * @template {string | number} [T=string] + * @template U - error: Required type parameters cannot follow optional type parameters + * @param {T} a + * @param {U} b + */ +function f2(a, b) {} + +/** + * @template [T=U] - error: Type parameter defaults can only reference previously declared type parameters. + * @template [U=T] + * @param {T} a + * @param {U} b + */ +function f3(a, b) {} + + +//// [file.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +/** + * @template {string | number} [T=string] - ok: defaults are permitted + * @typedef {[T]} A + */ +/** @type {A} */ // ok, default for `T` in `A` is `string` +const aDefault1 = [""]; +/** @type {A} */ // error: `number` is not assignable to string` +const aDefault2 = [0]; +/** @type {A} */ // ok, `T` is provided for `A` +const aString = [""]; +/** @type {A} */ // ok, `T` is provided for `A` +const aNumber = [0]; +/** + * @template T + * @template [U=T] - ok: default can reference earlier type parameter + * @typedef {[T, U]} B + */ +/** + * @template {string | number} [T] - error: default requires an `=type` + * @typedef {[T]} C + */ +/** + * @template {string | number} [T=] - error: default requires a `type` + * @typedef {[T]} D + */ +/** + * @template {string | number} [T=string] + * @template U - error: Required type parameters cannot follow optional type parameters + * @typedef {[T, U]} E + */ +/** + * @template [T=U] - error: Type parameter defaults can only reference previously declared type parameters. + * @template [U=T] + * @typedef {[T, U]} G + */ +/** + * @template T + * @template [U=T] - ok: default can reference earlier type parameter + * @param {T} a + * @param {U} b + */ +function f1(a, b) { } +/** +* @template {string | number} [T=string] +* @template U - error: Required type parameters cannot follow optional type parameters +* @param {T} a +* @param {U} b +*/ +function f2(a, b) { } +/** + * @template [T=U] - error: Type parameter defaults can only reference previously declared type parameters. + * @template [U=T] + * @param {T} a + * @param {U} b + */ +function f3(a, b) { } + + +//// [file.d.ts] +export type A = [T]; +export type B = [T, U]; +export type C = [T]; +export type D = [T]; +export type E = [T, U]; +export type G = [T, U]; diff --git a/testdata/baselines/reference/submodule/conformance/jsdocTemplateTagDefault.js.diff b/testdata/baselines/reference/submodule/conformance/jsdocTemplateTagDefault.js.diff new file mode 100644 index 0000000000..7fe14aa992 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsdocTemplateTagDefault.js.diff @@ -0,0 +1,79 @@ +--- old.jsdocTemplateTagDefault.js ++++ new.jsdocTemplateTagDefault.js +@@= skipped -68, +68 lines =@@ + + + //// [file.js] ++"use strict"; ++Object.defineProperty(exports, "__esModule", { value: true }); + /** + * @template {string | number} [T=string] - ok: defaults are permitted + * @typedef {[T]} A +@@= skipped -59, +61 lines =@@ + + + //// [file.d.ts] +-/** +- * @template T +- * @template [U=T] - ok: default can reference earlier type parameter +- * @typedef {[T, U]} B +- */ +-/** +- * @template {string | number} [T] - error: default requires an `=type` +- * @typedef {[T]} C +- */ +-/** +- * @template {string | number} [T=] - error: default requires a `type` +- * @typedef {[T]} D +- */ +-/** +- * @template {string | number} [T=string] +- * @template U - error: Required type parameters cannot follow optional type parameters +- * @typedef {[T, U]} E +- */ +-/** +- * @template [T=U] - error: Type parameter defaults can only reference previously declared type parameters. +- * @template [U=T] +- * @typedef {[T, U]} G +- */ +-/** +- * @template T +- * @template [U=T] - ok: default can reference earlier type parameter +- * @param {T} a +- * @param {U} b +- */ +-declare function f1(a: T, b: U): void; +-/** +-* @template {string | number} [T=string] +-* @template U - error: Required type parameters cannot follow optional type parameters +-* @param {T} a +-* @param {U} b +-*/ +-declare function f2(a: T, b: U): void; +-/** +- * @template [T=U] - error: Type parameter defaults can only reference previously declared type parameters. +- * @template [U=T] +- * @param {T} a +- * @param {U} b +- */ +-declare function f3(a: T, b: U): void; +-/** +- * @template {string | number} [T=string] - ok: defaults are permitted +- * @typedef {[T]} A +- */ +-/** @type {A} */ declare const aDefault1: A; +-/** @type {A} */ declare const aDefault2: A; +-/** @type {A} */ declare const aString: A; +-/** @type {A} */ declare const aNumber: A; +-type B = [T, U]; +-type C = [T]; +-type D = [T]; +-type E = [T, U]; +-type G = [T, U]; +-type A = [T]; ++export type A = [T]; ++export type B = [T, U]; ++export type C = [T]; ++export type D = [T]; ++export type E = [T, U]; ++export type G = [T, U]; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/jsdocTemplateTagNameResolution.js b/testdata/baselines/reference/submodule/conformance/jsdocTemplateTagNameResolution.js new file mode 100644 index 0000000000..f607f63de7 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsdocTemplateTagNameResolution.js @@ -0,0 +1,29 @@ +//// [tests/cases/conformance/jsdoc/jsdocTemplateTagNameResolution.ts] //// + +//// [file.js] +/** + * @template T + * @template {keyof T} K + * @typedef {T[K]} Foo + */ + +const x = { a: 1 }; + +/** @type {Foo} */ +const y = "a"; + +//// [file.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +/** + * @template T + * @template {keyof T} K + * @typedef {T[K]} Foo + */ +const x = { a: 1 }; +/** @type {Foo} */ +const y = "a"; + + +//// [file.d.ts] +export type Foo = T[K]; diff --git a/testdata/baselines/reference/submodule/conformance/jsdocTemplateTagNameResolution.js.diff b/testdata/baselines/reference/submodule/conformance/jsdocTemplateTagNameResolution.js.diff new file mode 100644 index 0000000000..5b6477fc9e --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsdocTemplateTagNameResolution.js.diff @@ -0,0 +1,22 @@ +--- old.jsdocTemplateTagNameResolution.js ++++ new.jsdocTemplateTagNameResolution.js +@@= skipped -12, +12 lines =@@ + const y = "a"; + + //// [file.js] ++"use strict"; ++Object.defineProperty(exports, "__esModule", { value: true }); + /** + * @template T + * @template {keyof T} K +@@= skipped -11, +13 lines =@@ + + + //// [file.d.ts] +-declare namespace x { +- let a: number; +-} +-/** @type {Foo} */ +-declare const y: Foo; +-type Foo = T[K]; ++export type Foo = T[K]; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/jsdocTypeTag.js b/testdata/baselines/reference/submodule/conformance/jsdocTypeTag.js new file mode 100644 index 0000000000..77d7aacba2 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsdocTypeTag.js @@ -0,0 +1,176 @@ +//// [tests/cases/conformance/jsdoc/jsdocTypeTag.ts] //// + +//// [a.js] +/** @type {String} */ +var S; + +/** @type {string} */ +var s; + +/** @type {Number} */ +var N; + +/** @type {number} */ +var n; + +/** @type {BigInt} */ +var BI; + +/** @type {bigint} */ +var bi; + +/** @type {Boolean} */ +var B; + +/** @type {boolean} */ +var b; + +/** @type {Void} */ +var V; + +/** @type {void} */ +var v; + +/** @type {Undefined} */ +var U; + +/** @type {undefined} */ +var u; + +/** @type {Null} */ +var Nl; + +/** @type {null} */ +var nl; + +/** @type {Array} */ +var A; + +/** @type {array} */ +var a; + +/** @type {Promise} */ +var P; + +/** @type {promise} */ +var p; + +/** @type {?number} */ +var nullable; + +/** @type {Object} */ +var Obj; + +/** @type {object} */ +var obj; + +/** @type {Function} */ +var Func; + +/** @type {(s: string) => number} */ +var f; + +/** @type {new (s: string) => { s: string }} */ +var ctor; + +//// [b.ts] +var S: string; +var s: string; +var N: number; +var n: number +var B: boolean; +var b: boolean; +var BI: bigint; +var bi: bigint; +var V :void; +var v: void; +var U: undefined; +var u: undefined; +var Nl: null; +var nl: null; +var A: any[]; +var a: any[]; +var P: Promise; +var p: Promise; +var nullable: number | null; +var Obj: any; +var obj: any; +var Func: Function; +var f: (s: string) => number; +var ctor: new (s: string) => { s: string }; + + +//// [a.js] +/** @type {String} */ +var S; +/** @type {string} */ +var s; +/** @type {Number} */ +var N; +/** @type {number} */ +var n; +/** @type {BigInt} */ +var BI; +/** @type {bigint} */ +var bi; +/** @type {Boolean} */ +var B; +/** @type {boolean} */ +var b; +/** @type {Void} */ +var V; +/** @type {void} */ +var v; +/** @type {Undefined} */ +var U; +/** @type {undefined} */ +var u; +/** @type {Null} */ +var Nl; +/** @type {null} */ +var nl; +/** @type {Array} */ +var A; +/** @type {array} */ +var a; +/** @type {Promise} */ +var P; +/** @type {promise} */ +var p; +/** @type {?number} */ +var nullable; +/** @type {Object} */ +var Obj; +/** @type {object} */ +var obj; +/** @type {Function} */ +var Func; +/** @type {(s: string) => number} */ +var f; +/** @type {new (s: string) => { s: string }} */ +var ctor; +//// [b.js] +var S; +var s; +var N; +var n; +var B; +var b; +var BI; +var bi; +var V; +var v; +var U; +var u; +var Nl; +var nl; +var A; +var a; +var P; +var p; +var nullable; +var Obj; +var obj; +var Func; +var f; +var ctor; diff --git a/testdata/baselines/reference/submodule/conformance/jsdocTypeTagCast.js b/testdata/baselines/reference/submodule/conformance/jsdocTypeTagCast.js new file mode 100644 index 0000000000..5b56dfccf9 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsdocTypeTagCast.js @@ -0,0 +1,143 @@ +//// [tests/cases/conformance/jsdoc/jsdocTypeTagCast.ts] //// + +//// [a.ts] +var W: string; + +//// [b.js] +// @ts-check +var W = /** @type {string} */(/** @type {*} */ (4)); + +var W = /** @type {string} */(4); // Error + +/** @type {*} */ +var a; + +/** @type {string} */ +var s; + +var a = /** @type {*} */("" + 4); +var s = "" + /** @type {*} */(4); + +class SomeBase { + constructor() { + this.p = 42; + } +} +class SomeDerived extends SomeBase { + constructor() { + super(); + this.x = 42; + } +} +class SomeOther { + constructor() { + this.q = 42; + } +} + +function SomeFakeClass() { + /** @type {string|number} */ + this.p = "bar"; +} + +// Type assertion should check for assignability in either direction +var someBase = new SomeBase(); +var someDerived = new SomeDerived(); +var someOther = new SomeOther(); +var someFakeClass = new SomeFakeClass(); + +someBase = /** @type {SomeBase} */(someDerived); +someBase = /** @type {SomeBase} */(someBase); +someBase = /** @type {SomeBase} */(someOther); // Error + +someDerived = /** @type {SomeDerived} */(someDerived); +someDerived = /** @type {SomeDerived} */(someBase); +someDerived = /** @type {SomeDerived} */(someOther); // Error + +someOther = /** @type {SomeOther} */(someDerived); // Error +someOther = /** @type {SomeOther} */(someBase); // Error +someOther = /** @type {SomeOther} */(someOther); + +someFakeClass = someBase; +someFakeClass = someDerived; + +someBase = someFakeClass; // Error +someBase = /** @type {SomeBase} */(someFakeClass); + +// Type assertion cannot be a type-predicate type +/** @type {number | string} */ +var numOrStr; +/** @type {string} */ +var str; +if(/** @type {numOrStr is string} */(numOrStr === undefined)) { // Error + str = numOrStr; // Error, no narrowing occurred +} + + +var asConst1 = /** @type {const} */(1); +var asConst2 = /** @type {const} */({ + x: 1 +}); + +//// [a.js] +var W; +//// [b.js] +// @ts-check +var W = /** @type {string} */ 4; +var W = /** @type {string} */ 4; // Error +/** @type {*} */ +var a; +/** @type {string} */ +var s; +var a = /** @type {*} */ "" + 4; +var s = "" + /** @type {*} */ 4; +class SomeBase { + constructor() { + this.p = 42; + } +} +class SomeDerived extends SomeBase { + constructor() { + super(); + this.x = 42; + } +} +class SomeOther { + constructor() { + this.q = 42; + } +} +function SomeFakeClass() { + /** @type {string|number} */ + this.p = "bar"; +} +// Type assertion should check for assignability in either direction +var someBase = new SomeBase(); +var someDerived = new SomeDerived(); +var someOther = new SomeOther(); +var someFakeClass = new SomeFakeClass(); +someBase = /** @type {SomeBase} */ someDerived; +someBase = /** @type {SomeBase} */ someBase; +someBase = /** @type {SomeBase} */ someOther; // Error +someDerived = /** @type {SomeDerived} */ someDerived; +someDerived = /** @type {SomeDerived} */ someBase; +someDerived = /** @type {SomeDerived} */ someOther; // Error +someOther = /** @type {SomeOther} */ someDerived; // Error +someOther = /** @type {SomeOther} */ someBase; // Error +someOther = /** @type {SomeOther} */ someOther; +someFakeClass = someBase; +someFakeClass = someDerived; +someBase = someFakeClass; // Error +someBase = /** @type {SomeBase} */ someFakeClass; +// Type assertion cannot be a type-predicate type +/** @type {number | string} */ +var numOrStr; +/** @type {string} */ +var str; +if ( /** @type {numOrStr is string} */numOrStr === undefined) { // Error + str = numOrStr; // Error, no narrowing occurred +} +var asConst1 = /** @type {const} */ 1; +var asConst2 = /** @type {const} */ { + x: 1 +}; diff --git a/testdata/baselines/reference/submodule/conformance/jsdocTypeTagCast.js.diff b/testdata/baselines/reference/submodule/conformance/jsdocTypeTagCast.js.diff new file mode 100644 index 0000000000..da3bfb110d --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsdocTypeTagCast.js.diff @@ -0,0 +1,64 @@ +--- old.jsdocTypeTagCast.js ++++ new.jsdocTypeTagCast.js +@@= skipped -82, +82 lines =@@ + var W; + //// [b.js] + // @ts-check +-var W = /** @type {string} */ ( /** @type {*} */(4)); +-var W = /** @type {string} */ (4); // Error ++var W = /** @type {string} */ 4; ++var W = /** @type {string} */ 4; // Error + /** @type {*} */ + var a; + /** @type {string} */ + var s; +-var a = /** @type {*} */ ("" + 4); +-var s = "" + /** @type {*} */ (4); ++var a = /** @type {*} */ "" + 4; ++var s = "" + /** @type {*} */ 4; + class SomeBase { + constructor() { + this.p = 42; +@@= skipped -33, +33 lines =@@ + var someDerived = new SomeDerived(); + var someOther = new SomeOther(); + var someFakeClass = new SomeFakeClass(); +-someBase = /** @type {SomeBase} */ (someDerived); +-someBase = /** @type {SomeBase} */ (someBase); +-someBase = /** @type {SomeBase} */ (someOther); // Error +-someDerived = /** @type {SomeDerived} */ (someDerived); +-someDerived = /** @type {SomeDerived} */ (someBase); +-someDerived = /** @type {SomeDerived} */ (someOther); // Error +-someOther = /** @type {SomeOther} */ (someDerived); // Error +-someOther = /** @type {SomeOther} */ (someBase); // Error +-someOther = /** @type {SomeOther} */ (someOther); ++someBase = /** @type {SomeBase} */ someDerived; ++someBase = /** @type {SomeBase} */ someBase; ++someBase = /** @type {SomeBase} */ someOther; // Error ++someDerived = /** @type {SomeDerived} */ someDerived; ++someDerived = /** @type {SomeDerived} */ someBase; ++someDerived = /** @type {SomeDerived} */ someOther; // Error ++someOther = /** @type {SomeOther} */ someDerived; // Error ++someOther = /** @type {SomeOther} */ someBase; // Error ++someOther = /** @type {SomeOther} */ someOther; + someFakeClass = someBase; + someFakeClass = someDerived; + someBase = someFakeClass; // Error +-someBase = /** @type {SomeBase} */ (someFakeClass); ++someBase = /** @type {SomeBase} */ someFakeClass; + // Type assertion cannot be a type-predicate type + /** @type {number | string} */ + var numOrStr; + /** @type {string} */ + var str; +-if ( /** @type {numOrStr is string} */(numOrStr === undefined)) { // Error ++if ( /** @type {numOrStr is string} */numOrStr === undefined) { // Error + str = numOrStr; // Error, no narrowing occurred + } +-var asConst1 = /** @type {const} */ (1); +-var asConst2 = /** @type {const} */ ({ ++var asConst1 = /** @type {const} */ 1; ++var asConst2 = /** @type {const} */ { + x: 1 +-}); ++}; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/jsdocVariableDeclarationWithTypeAnnotation.js b/testdata/baselines/reference/submodule/conformance/jsdocVariableDeclarationWithTypeAnnotation.js new file mode 100644 index 0000000000..6357f7e9f3 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsdocVariableDeclarationWithTypeAnnotation.js @@ -0,0 +1,12 @@ +//// [tests/cases/conformance/jsdoc/jsdocVariableDeclarationWithTypeAnnotation.ts] //// + +//// [foo.js] +/** @type {boolean} */ +var /** @type {string} */ x, + /** @type {number} */ y; + + +//// [foo.js] +/** @type {boolean} */ +var /** @type {string} */ x, +/** @type {number} */ y; diff --git a/testdata/baselines/reference/submodule/conformance/jsxCheckJsxNoTypeArgumentsAllowed.js b/testdata/baselines/reference/submodule/conformance/jsxCheckJsxNoTypeArgumentsAllowed.js new file mode 100644 index 0000000000..511f66cd13 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsxCheckJsxNoTypeArgumentsAllowed.js @@ -0,0 +1,27 @@ +//// [tests/cases/conformance/jsx/jsxCheckJsxNoTypeArgumentsAllowed.tsx] //// + +//// [component.d.ts] +import * as React from "react"; +export declare class MyComp

extends React.Component { + internalProp: P; +} + +export interface Prop { + a: number, + b: string +} + +//// [file.jsx] +import { MyComp, Prop } from "./component"; +import * as React from "react"; + +let x = a={10} b="hi" />; // error, no type arguments in js + + +//// [file.jsx] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const component_1 = require("./component"); +const React = require("react"); +let x = (, a={10} b="hi" />; // error, no type arguments in js +); diff --git a/testdata/baselines/reference/submodule/conformance/jsxCheckJsxNoTypeArgumentsAllowed.js.diff b/testdata/baselines/reference/submodule/conformance/jsxCheckJsxNoTypeArgumentsAllowed.js.diff new file mode 100644 index 0000000000..4eeb3ac91c --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/jsxCheckJsxNoTypeArgumentsAllowed.js.diff @@ -0,0 +1,14 @@ +--- old.jsxCheckJsxNoTypeArgumentsAllowed.js ++++ new.jsxCheckJsxNoTypeArgumentsAllowed.js +@@= skipped -20, +20 lines =@@ + //// [file.jsx] + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); +-var component_1 = require("./component"); +-var React = require("react"); +-let x = , a={10} b="hi" />; // error, no type arguments in js +-; ++const component_1 = require("./component"); ++const React = require("react"); ++let x = (, a={10} b="hi" />; // error, no type arguments in js ++); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/lateBoundClassMemberAssignmentJS.js b/testdata/baselines/reference/submodule/conformance/lateBoundClassMemberAssignmentJS.js new file mode 100644 index 0000000000..7a2e02ecc9 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/lateBoundClassMemberAssignmentJS.js @@ -0,0 +1,22 @@ +//// [tests/cases/conformance/salsa/lateBoundClassMemberAssignmentJS.ts] //// + +//// [lateBoundClassMemberAssignmentJS.js] +const _sym = Symbol("_sym"); +export class MyClass { + constructor() { + this[_sym] = "ok"; + } + + method() { + this[_sym] = "yep"; + const x = this[_sym]; + } +} + + + +//// [lateBoundClassMemberAssignmentJS.d.ts] +export declare class MyClass { + constructor(); + method(): void; +} diff --git a/testdata/baselines/reference/submodule/conformance/lateBoundClassMemberAssignmentJS.js.diff b/testdata/baselines/reference/submodule/conformance/lateBoundClassMemberAssignmentJS.js.diff new file mode 100644 index 0000000000..6d5a82085a --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/lateBoundClassMemberAssignmentJS.js.diff @@ -0,0 +1,14 @@ +--- old.lateBoundClassMemberAssignmentJS.js ++++ new.lateBoundClassMemberAssignmentJS.js +@@= skipped -15, +15 lines =@@ + + + //// [lateBoundClassMemberAssignmentJS.d.ts] +-export class MyClass { +- [_sym]: string; ++export declare class MyClass { ++ constructor(); + method(): void; + } +-declare const _sym: unique symbol; +-export {}; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/lateBoundClassMemberAssignmentJS2.js b/testdata/baselines/reference/submodule/conformance/lateBoundClassMemberAssignmentJS2.js new file mode 100644 index 0000000000..9fbc8eb782 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/lateBoundClassMemberAssignmentJS2.js @@ -0,0 +1,22 @@ +//// [tests/cases/conformance/salsa/lateBoundClassMemberAssignmentJS2.ts] //// + +//// [lateBoundClassMemberAssignmentJS2.js] +const _sym = "my-fake-sym"; +export class MyClass { + constructor() { + this[_sym] = "ok"; + } + + method() { + this[_sym] = "yep"; + const x = this[_sym]; + } +} + + + +//// [lateBoundClassMemberAssignmentJS2.d.ts] +export declare class MyClass { + constructor(); + method(): void; +} diff --git a/testdata/baselines/reference/submodule/conformance/lateBoundClassMemberAssignmentJS2.js.diff b/testdata/baselines/reference/submodule/conformance/lateBoundClassMemberAssignmentJS2.js.diff new file mode 100644 index 0000000000..c6ec4705e1 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/lateBoundClassMemberAssignmentJS2.js.diff @@ -0,0 +1,12 @@ +--- old.lateBoundClassMemberAssignmentJS2.js ++++ new.lateBoundClassMemberAssignmentJS2.js +@@= skipped -15, +15 lines =@@ + + + //// [lateBoundClassMemberAssignmentJS2.d.ts] +-export class MyClass { +- "my-fake-sym": string; ++export declare class MyClass { ++ constructor(); + method(): void; + } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/lateBoundClassMemberAssignmentJS3.js b/testdata/baselines/reference/submodule/conformance/lateBoundClassMemberAssignmentJS3.js new file mode 100644 index 0000000000..d87ab12afe --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/lateBoundClassMemberAssignmentJS3.js @@ -0,0 +1,25 @@ +//// [tests/cases/conformance/salsa/lateBoundClassMemberAssignmentJS3.ts] //// + +//// [lateBoundClassMemberAssignmentJS.js] +const _sym = Symbol("_sym"); +export class MyClass { + constructor() { + var self = this + self[_sym] = "ok"; + } + + method() { + var self = this + self[_sym] = "yep"; + const x = self[_sym]; + } +} + + + + +//// [lateBoundClassMemberAssignmentJS.d.ts] +export declare class MyClass { + constructor(); + method(): void; +} diff --git a/testdata/baselines/reference/submodule/conformance/lateBoundClassMemberAssignmentJS3.js.diff b/testdata/baselines/reference/submodule/conformance/lateBoundClassMemberAssignmentJS3.js.diff new file mode 100644 index 0000000000..6d95902a29 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/lateBoundClassMemberAssignmentJS3.js.diff @@ -0,0 +1,14 @@ +--- old.lateBoundClassMemberAssignmentJS3.js ++++ new.lateBoundClassMemberAssignmentJS3.js +@@= skipped -18, +18 lines =@@ + + + //// [lateBoundClassMemberAssignmentJS.d.ts] +-export class MyClass { +- [_sym]: string; ++export declare class MyClass { ++ constructor(); + method(): void; + } +-declare const _sym: unique symbol; +-export {}; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/library-reference-11.js b/testdata/baselines/reference/submodule/conformance/library-reference-11.js new file mode 100644 index 0000000000..2184456b52 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/library-reference-11.js @@ -0,0 +1,19 @@ +//// [tests/cases/conformance/references/library-reference-11.ts] //// + +//// [package.json] +{ + "typings": "jquery.d.ts" +} + +//// [jquery.d.ts] +declare var $: { foo(): void }; + + +//// [consumer.ts] +/// +$.foo(); + + +//// [consumer.js] +/// +$.foo(); diff --git a/testdata/baselines/reference/submodule/conformance/linkTagEmit1.js b/testdata/baselines/reference/submodule/conformance/linkTagEmit1.js new file mode 100644 index 0000000000..696fd83743 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/linkTagEmit1.js @@ -0,0 +1,58 @@ +//// [tests/cases/conformance/jsdoc/linkTagEmit1.ts] //// + +//// [declarations.d.ts] +declare namespace NS { + type R = number +} +//// [linkTagEmit1.js] +/** @typedef {number} N */ +/** + * @typedef {Object} D1 + * @property {1} e Just link to {@link NS.R} this time + * @property {1} m Wyatt Earp loved {@link N integers} I bet. + */ + +/** @typedef {number} Z @see N {@link N} */ + +/** + * @param {number} integer {@link Z} + */ +function computeCommonSourceDirectoryOfFilenames(integer) { + return integer + 1 // pls pls pls +} + +/** {@link https://hvad} */ +var see3 = true + +/** @typedef {number} Attempt {@link https://wat} {@linkcode I think lingcod is better} {@linkplain or lutefisk}*/ + + +//// [linkTagEmit1.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +/** @typedef {number} N */ +/** + * @typedef {Object} D1 + * @property {1} e Just link to {@link NS.R} this time + * @property {1} m Wyatt Earp loved {@link N integers} I bet. + */ +/** @typedef {number} Z @see N {@link N} */ +/** + * @param {number} integer {@link Z} + */ +function computeCommonSourceDirectoryOfFilenames(integer) { + return integer + 1; // pls pls pls +} +/** {@link https://hvad} */ +var see3 = true; +/** @typedef {number} Attempt {@link https://wat} {@linkcode I think lingcod is better} {@linkplain or lutefisk}*/ + + +//// [linkTagEmit1.d.ts] +export type N = number; +export type D1 = { + e: 1; + m: 1; +}; +export type Z = number; +/** @typedef {number} Attempt {@link https://wat} {@linkcode I think lingcod is better} {@linkplain or lutefisk}*/ diff --git a/testdata/baselines/reference/submodule/conformance/linkTagEmit1.js.diff b/testdata/baselines/reference/submodule/conformance/linkTagEmit1.js.diff new file mode 100644 index 0000000000..85033d0884 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/linkTagEmit1.js.diff @@ -0,0 +1,48 @@ +--- old.linkTagEmit1.js ++++ new.linkTagEmit1.js +@@= skipped -27, +27 lines =@@ + + + //// [linkTagEmit1.js] ++"use strict"; ++Object.defineProperty(exports, "__esModule", { value: true }); + /** @typedef {number} N */ + /** + * @typedef {Object} D1 +@@= skipped -19, +21 lines =@@ + + + //// [linkTagEmit1.d.ts] +-/** @typedef {number} N */ +-/** +- * @typedef {Object} D1 +- * @property {1} e Just link to {@link NS.R} this time +- * @property {1} m Wyatt Earp loved {@link N integers} I bet. +- */ +-/** @typedef {number} Z @see N {@link N} */ +-/** +- * @param {number} integer {@link Z} +- */ +-declare function computeCommonSourceDirectoryOfFilenames(integer: number): number; +-/** {@link https://hvad} */ +-declare var see3: boolean; +-type N = number; +-type D1 = { +- /** +- * Just link to {@link NS.R} this time +- */ ++export type N = number; ++export type D1 = { + e: 1; +- /** +- * Wyatt Earp loved {@link N integers} I bet. +- */ + m: 1; + }; +-type Z = number; +-/** +- * {@link https://wat} {@linkcode I think lingcod is better} {@linkplain or lutefisk} +- */ +-type Attempt = number; ++export type Z = number; ++/** @typedef {number} Attempt {@link https://wat} {@linkcode I think lingcod is better} {@linkplain or lutefisk}*/ \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/malformedTags.js b/testdata/baselines/reference/submodule/conformance/malformedTags.js new file mode 100644 index 0000000000..14913d3bab --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/malformedTags.js @@ -0,0 +1,18 @@ +//// [tests/cases/conformance/salsa/malformedTags.ts] //// + +//// [myFile02.js] +/** + * Checks if `value` is classified as an `Array` object. + * + * @type Function + */ +var isArray = Array.isArray; + + +//// [myFile02.js] +/** + * Checks if `value` is classified as an `Array` object. + * + * @type Function + */ +var isArray = Array.isArray; diff --git a/testdata/baselines/reference/submodule/conformance/moduleExportAliasElementAccessExpression.js b/testdata/baselines/reference/submodule/conformance/moduleExportAliasElementAccessExpression.js new file mode 100644 index 0000000000..1f0669fe78 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/moduleExportAliasElementAccessExpression.js @@ -0,0 +1,48 @@ +//// [tests/cases/conformance/salsa/moduleExportAliasElementAccessExpression.ts] //// + +//// [moduleExportAliasElementAccessExpression.js] +function D () { } +exports["D"] = D; + // (the only package I could find that uses spaces in identifiers is webidl-conversions) +exports["Does not work yet"] = D; + + +//// [moduleExportAliasElementAccessExpression.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +function D() { } +export var D = D; +exports["D"] = D; +// (the only package I could find that uses spaces in identifiers is webidl-conversions) +export var Does not work yet = D; +// (the only package I could find that uses spaces in identifiers is webidl-conversions) +exports["Does not work yet"] = D; + + +//// [moduleExportAliasElementAccessExpression.d.ts] +export var D = D; +// (the only package I could find that uses spaces in identifiers is webidl-conversions) +export var Does not work yet = D; +export {}; + + +//// [DtsFileErrors] + + +out/moduleExportAliasElementAccessExpression.d.ts(3,17): error TS1005: ',' expected. +out/moduleExportAliasElementAccessExpression.d.ts(3,21): error TS1005: ',' expected. +out/moduleExportAliasElementAccessExpression.d.ts(3,26): error TS1005: ',' expected. + + +==== out/moduleExportAliasElementAccessExpression.d.ts (3 errors) ==== + export var D = D; + // (the only package I could find that uses spaces in identifiers is webidl-conversions) + export var Does not work yet = D; + ~~~ +!!! error TS1005: ',' expected. + ~~~~ +!!! error TS1005: ',' expected. + ~~~ +!!! error TS1005: ',' expected. + export {}; + \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/moduleExportAliasElementAccessExpression.js.diff b/testdata/baselines/reference/submodule/conformance/moduleExportAliasElementAccessExpression.js.diff new file mode 100644 index 0000000000..4131ddf196 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/moduleExportAliasElementAccessExpression.js.diff @@ -0,0 +1,46 @@ +--- old.moduleExportAliasElementAccessExpression.js ++++ new.moduleExportAliasElementAccessExpression.js +@@= skipped -7, +7 lines =@@ + + + //// [moduleExportAliasElementAccessExpression.js] ++"use strict"; ++Object.defineProperty(exports, "__esModule", { value: true }); + function D() { } ++export var D = D; + exports["D"] = D; + // (the only package I could find that uses spaces in identifiers is webidl-conversions) ++export var Does not work yet = D; ++// (the only package I could find that uses spaces in identifiers is webidl-conversions) + exports["Does not work yet"] = D; + + + //// [moduleExportAliasElementAccessExpression.d.ts] +-export function D(): void; +-export { D as _Does_not_work_yet }; ++export var D = D; ++// (the only package I could find that uses spaces in identifiers is webidl-conversions) ++export var Does not work yet = D; ++export {}; ++ ++ ++//// [DtsFileErrors] ++ ++ ++out/moduleExportAliasElementAccessExpression.d.ts(3,17): error TS1005: ',' expected. ++out/moduleExportAliasElementAccessExpression.d.ts(3,21): error TS1005: ',' expected. ++out/moduleExportAliasElementAccessExpression.d.ts(3,26): error TS1005: ',' expected. ++ ++ ++==== out/moduleExportAliasElementAccessExpression.d.ts (3 errors) ==== ++ export var D = D; ++ // (the only package I could find that uses spaces in identifiers is webidl-conversions) ++ export var Does not work yet = D; ++ ~~~ ++!!! error TS1005: ',' expected. ++ ~~~~ ++!!! error TS1005: ',' expected. ++ ~~~ ++!!! error TS1005: ',' expected. ++ export {}; ++ \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/moduleExportDuplicateAlias.js b/testdata/baselines/reference/submodule/conformance/moduleExportDuplicateAlias.js new file mode 100644 index 0000000000..5efb46cf66 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/moduleExportDuplicateAlias.js @@ -0,0 +1,36 @@ +//// [tests/cases/conformance/salsa/moduleExportDuplicateAlias.ts] //// + +//// [moduleExportAliasDuplicateAlias.js] +exports.apply = undefined; +function a() { } +exports.apply() +exports.apply = a; +exports.apply() + +//// [test.js] +const { apply } = require('./moduleExportAliasDuplicateAlias') +apply() + + +//// [moduleExportAliasDuplicateAlias.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +export var apply = undefined; +exports.apply = undefined; +function a() { } +exports.apply(); +export var apply = a; +exports.apply = a; +exports.apply(); +//// [test.js] +"use strict"; +const { apply } = require('./moduleExportAliasDuplicateAlias'); +apply(); + + +//// [moduleExportAliasDuplicateAlias.d.ts] +export var apply = undefined; +export var apply = a; +export {}; +//// [test.d.ts] +export {}; diff --git a/testdata/baselines/reference/submodule/conformance/moduleExportDuplicateAlias.js.diff b/testdata/baselines/reference/submodule/conformance/moduleExportDuplicateAlias.js.diff new file mode 100644 index 0000000000..1f6798aa2b --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/moduleExportDuplicateAlias.js.diff @@ -0,0 +1,26 @@ +--- old.moduleExportDuplicateAlias.js ++++ new.moduleExportDuplicateAlias.js +@@= skipped -13, +13 lines =@@ + + //// [moduleExportAliasDuplicateAlias.js] + "use strict"; ++Object.defineProperty(exports, "__esModule", { value: true }); ++export var apply = undefined; + exports.apply = undefined; + function a() { } + exports.apply(); ++export var apply = a; + exports.apply = a; + exports.apply(); + //// [test.js] +@@= skipped -12, +15 lines =@@ + + + //// [moduleExportAliasDuplicateAlias.d.ts] +-export { a as apply }; +-declare function a(): void; ++export var apply = undefined; ++export var apply = a; ++export {}; + //// [test.d.ts] + export {}; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/moduleExportDuplicateAlias2.js b/testdata/baselines/reference/submodule/conformance/moduleExportDuplicateAlias2.js new file mode 100644 index 0000000000..32cd447fba --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/moduleExportDuplicateAlias2.js @@ -0,0 +1,38 @@ +//// [tests/cases/conformance/salsa/moduleExportDuplicateAlias2.ts] //// + +//// [moduleExportAliasDuplicateAlias.js] +module.exports.apply = undefined; +function a() { } +module.exports.apply = a; +module.exports.apply = a; +module.exports.apply() + +//// [test.js] +const { apply } = require('./moduleExportAliasDuplicateAlias') +apply() + + +//// [moduleExportAliasDuplicateAlias.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +export var apply = undefined; +module.exports.apply = undefined; +function a() { } +export var apply = a; +module.exports.apply = a; +export var apply = a; +module.exports.apply = a; +module.exports.apply(); +//// [test.js] +"use strict"; +const { apply } = require('./moduleExportAliasDuplicateAlias'); +apply(); + + +//// [moduleExportAliasDuplicateAlias.d.ts] +export var apply = undefined; +export var apply = a; +export var apply = a; +export {}; +//// [test.d.ts] +export {}; diff --git a/testdata/baselines/reference/submodule/conformance/moduleExportDuplicateAlias2.js.diff b/testdata/baselines/reference/submodule/conformance/moduleExportDuplicateAlias2.js.diff new file mode 100644 index 0000000000..547d966ad9 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/moduleExportDuplicateAlias2.js.diff @@ -0,0 +1,28 @@ +--- old.moduleExportDuplicateAlias2.js ++++ new.moduleExportDuplicateAlias2.js +@@= skipped -13, +13 lines =@@ + + //// [moduleExportAliasDuplicateAlias.js] + "use strict"; ++Object.defineProperty(exports, "__esModule", { value: true }); ++export var apply = undefined; + module.exports.apply = undefined; + function a() { } ++export var apply = a; + module.exports.apply = a; ++export var apply = a; + module.exports.apply = a; + module.exports.apply(); + //// [test.js] +@@= skipped -12, +16 lines =@@ + + + //// [moduleExportAliasDuplicateAlias.d.ts] +-export { a as apply }; +-declare function a(): void; ++export var apply = undefined; ++export var apply = a; ++export var apply = a; ++export {}; + //// [test.d.ts] + export {}; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/moduleExportDuplicateAlias3.js b/testdata/baselines/reference/submodule/conformance/moduleExportDuplicateAlias3.js new file mode 100644 index 0000000000..ca8ba75bb5 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/moduleExportDuplicateAlias3.js @@ -0,0 +1,48 @@ +//// [tests/cases/conformance/salsa/moduleExportDuplicateAlias3.ts] //// + +//// [moduleExportAliasDuplicateAlias.js] +exports.apply = undefined; +exports.apply = undefined; +function a() { } +exports.apply = a; +exports.apply() +exports.apply = 'ok' +var OK = exports.apply.toUpperCase() +exports.apply = 1 + +//// [test.js] +const { apply } = require('./moduleExportAliasDuplicateAlias') +const result = apply.toFixed() + + +//// [moduleExportAliasDuplicateAlias.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +export var apply = undefined; +exports.apply = undefined; +export var apply = undefined; +exports.apply = undefined; +function a() { } +export var apply = a; +exports.apply = a; +exports.apply(); +export var apply = 'ok'; +exports.apply = 'ok'; +var OK = exports.apply.toUpperCase(); +export var apply = 1; +exports.apply = 1; +//// [test.js] +"use strict"; +const { apply } = require('./moduleExportAliasDuplicateAlias'); +const result = apply.toFixed(); + + +//// [moduleExportAliasDuplicateAlias.d.ts] +export var apply = undefined; +export var apply = undefined; +export var apply = a; +export var apply = 'ok'; +export var apply = 1; +export {}; +//// [test.d.ts] +export {}; diff --git a/testdata/baselines/reference/submodule/conformance/moduleExportDuplicateAlias3.js.diff b/testdata/baselines/reference/submodule/conformance/moduleExportDuplicateAlias3.js.diff new file mode 100644 index 0000000000..031199c202 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/moduleExportDuplicateAlias3.js.diff @@ -0,0 +1,37 @@ +--- old.moduleExportDuplicateAlias3.js ++++ new.moduleExportDuplicateAlias3.js +@@= skipped -16, +16 lines =@@ + + //// [moduleExportAliasDuplicateAlias.js] + "use strict"; ++Object.defineProperty(exports, "__esModule", { value: true }); ++export var apply = undefined; + exports.apply = undefined; ++export var apply = undefined; + exports.apply = undefined; + function a() { } ++export var apply = a; + exports.apply = a; + exports.apply(); ++export var apply = 'ok'; + exports.apply = 'ok'; + var OK = exports.apply.toUpperCase(); ++export var apply = 1; + exports.apply = 1; + //// [test.js] + "use strict"; +@@= skipped -15, +21 lines =@@ + + + //// [moduleExportAliasDuplicateAlias.d.ts] +-export const apply: "ok" | 1 | typeof a | undefined; +-export { a as apply }; +-declare function a(): void; ++export var apply = undefined; ++export var apply = undefined; ++export var apply = a; ++export var apply = 'ok'; ++export var apply = 1; ++export {}; + //// [test.d.ts] + export {}; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/moduleExportsElementAccessAssignment.js b/testdata/baselines/reference/submodule/conformance/moduleExportsElementAccessAssignment.js new file mode 100644 index 0000000000..5e70503425 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/moduleExportsElementAccessAssignment.js @@ -0,0 +1,30 @@ +//// [tests/cases/conformance/jsdoc/moduleExportsElementAccessAssignment.ts] //// + +//// [mod1.js] +exports.a = { x: "x" }; +exports["b"] = { x: "x" }; +exports["default"] = { x: "x" }; +module.exports["c"] = { x: "x" }; +module["exports"]["d"] = {}; +module["exports"]["d"].e = 0; + +//// [mod2.js] +const mod1 = require("./mod1"); +mod1.a; +mod1.b; +mod1.c; +mod1.d; +mod1.d.e; +mod1.default; + + + +//// [mod1.d.ts] +export var a = { x: "x" }; +export var b = { x: "x" }; +export var default = { x: "x" }; +export var c = { x: "x" }; +export var d = {}; +export {}; +//// [mod2.d.ts] +export {}; diff --git a/testdata/baselines/reference/submodule/conformance/moduleExportsElementAccessAssignment.js.diff b/testdata/baselines/reference/submodule/conformance/moduleExportsElementAccessAssignment.js.diff new file mode 100644 index 0000000000..5c413072ad --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/moduleExportsElementAccessAssignment.js.diff @@ -0,0 +1,33 @@ +--- old.moduleExportsElementAccessAssignment.js ++++ new.moduleExportsElementAccessAssignment.js +@@= skipped -19, +19 lines =@@ + + + //// [mod1.d.ts] +-export namespace a { +- let x: string; +-} +-export namespace b { +- let x_1: string; +- export { x_1 as x }; +-} +-declare namespace _default { +- let x_2: string; +- export { x_2 as x }; +-} +-export default _default; +-export namespace c { +- let x_3: string; +- export { x_3 as x }; +-} +-export namespace d { +- let e: number; +-} ++export var a = { x: "x" }; ++export var b = { x: "x" }; ++export var default = { x: "x" }; ++export var c = { x: "x" }; ++export var d = {}; ++export {}; + //// [mod2.d.ts] + export {}; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/namespaceAssignmentToRequireAlias.js b/testdata/baselines/reference/submodule/conformance/namespaceAssignmentToRequireAlias.js new file mode 100644 index 0000000000..afed9664a7 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/namespaceAssignmentToRequireAlias.js @@ -0,0 +1,21 @@ +//// [tests/cases/conformance/salsa/namespaceAssignmentToRequireAlias.ts] //// + +//// [index.js] +module.exports = {} + +//// [bug40140.js] +const u = require('untyped'); +u.assignment.nested = true +u.noError() + + + +//// [bug40140.js] +"use strict"; +const u = require('untyped'); +u.assignment.nested = true; +u.noError(); + + +//// [bug40140.d.ts] +export {}; diff --git a/testdata/baselines/reference/submodule/conformance/nestedDestructuringOfRequire.js b/testdata/baselines/reference/submodule/conformance/nestedDestructuringOfRequire.js new file mode 100644 index 0000000000..2d323ea43f --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/nestedDestructuringOfRequire.js @@ -0,0 +1,35 @@ +//// [tests/cases/conformance/salsa/nestedDestructuringOfRequire.ts] //// + +//// [mod1.js] +const chalk = { + grey: {} +}; +module.exports.chalk = chalk + +//// [main.js] +const { + chalk: { grey } +} = require('./mod1'); +grey +chalk + + +//// [mod1.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const chalk = { + grey: {} +}; +export var chalk = chalk; +module.exports.chalk = chalk; +//// [main.js] +const { chalk: { grey } } = require('./mod1'); +grey; +chalk; + + +//// [mod1.d.ts] +export var chalk = chalk; +export {}; +//// [main.d.ts] +export {}; diff --git a/testdata/baselines/reference/submodule/conformance/nestedDestructuringOfRequire.js.diff b/testdata/baselines/reference/submodule/conformance/nestedDestructuringOfRequire.js.diff new file mode 100644 index 0000000000..4fdb156b6f --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/nestedDestructuringOfRequire.js.diff @@ -0,0 +1,26 @@ +--- old.nestedDestructuringOfRequire.js ++++ new.nestedDestructuringOfRequire.js +@@= skipped -14, +14 lines =@@ + + + //// [mod1.js] ++"use strict"; ++Object.defineProperty(exports, "__esModule", { value: true }); + const chalk = { + grey: {} + }; ++export var chalk = chalk; + module.exports.chalk = chalk; + //// [main.js] + const { chalk: { grey } } = require('./mod1'); +@@= skipped -11, +14 lines =@@ + + + //// [mod1.d.ts] +-export namespace chalk { +- let grey: {}; +-} ++export var chalk = chalk; ++export {}; + //// [main.d.ts] + export {}; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeAllowJsPackageSelfName(module=node16).js b/testdata/baselines/reference/submodule/conformance/nodeAllowJsPackageSelfName(module=node16).js new file mode 100644 index 0000000000..1498e98d79 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/nodeAllowJsPackageSelfName(module=node16).js @@ -0,0 +1,77 @@ +//// [tests/cases/conformance/node/allowJs/nodeAllowJsPackageSelfName.ts] //// + +//// [index.js] +// esm format file +import * as self from "package"; +self; +//// [index.mjs] +// esm format file +import * as self from "package"; +self; +//// [index.cjs] +// esm format file +import * as self from "package"; +self; +//// [package.json] +{ + "name": "package", + "private": true, + "type": "module", + "exports": "./index.js" +} + +//// [index.js] +// esm format file +import * as self from "package"; +self; +//// [index.mjs] +// esm format file +import * as self from "package"; +self; +//// [index.cjs] +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || (function () { + var ownKeys = function(o) { + ownKeys = Object.getOwnPropertyNames || function (o) { + var ar = []; + for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k; + return ar; + }; + return ownKeys(o); + }; + return function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]); + __setModuleDefault(result, mod); + return result; + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +// esm format file +const self = __importStar(require("package")); +self; + + +//// [index.d.ts] +export {}; +//// [index.d.mts] +export {}; +//// [index.d.cts] +export {}; diff --git a/testdata/baselines/reference/submodule/conformance/nodeAllowJsPackageSelfName(module=node18).js b/testdata/baselines/reference/submodule/conformance/nodeAllowJsPackageSelfName(module=node18).js new file mode 100644 index 0000000000..b7f552a39e --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/nodeAllowJsPackageSelfName(module=node18).js @@ -0,0 +1,48 @@ +//// [tests/cases/conformance/node/allowJs/nodeAllowJsPackageSelfName.ts] //// + +//// [index.js] +// esm format file +import * as self from "package"; +self; +//// [index.mjs] +// esm format file +import * as self from "package"; +self; +//// [index.cjs] +// esm format file +import * as self from "package"; +self; +//// [package.json] +{ + "name": "package", + "private": true, + "type": "module", + "exports": "./index.js" +} + +//// [index.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +// esm format file +const self = require("package"); +self; +//// [index.mjs] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +// esm format file +const self = require("package"); +self; +//// [index.cjs] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +// esm format file +const self = require("package"); +self; + + +//// [index.d.ts] +export {}; +//// [index.d.mts] +export {}; +//// [index.d.cts] +export {}; diff --git a/testdata/baselines/reference/submodule/conformance/nodeAllowJsPackageSelfName(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/nodeAllowJsPackageSelfName(module=node18).js.diff new file mode 100644 index 0000000000..ebf8f5bd1d --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/nodeAllowJsPackageSelfName(module=node18).js.diff @@ -0,0 +1,60 @@ +--- old.nodeAllowJsPackageSelfName(module=node18).js ++++ new.nodeAllowJsPackageSelfName(module=node18).js +@@= skipped -20, +20 lines =@@ + } + + //// [index.js] ++"use strict"; ++Object.defineProperty(exports, "__esModule", { value: true }); + // esm format file +-import * as self from "package"; ++const self = require("package"); + self; + //// [index.mjs] ++"use strict"; ++Object.defineProperty(exports, "__esModule", { value: true }); + // esm format file +-import * as self from "package"; ++const self = require("package"); + self; + //// [index.cjs] + "use strict"; +-var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { +- if (k2 === undefined) k2 = k; +- var desc = Object.getOwnPropertyDescriptor(m, k); +- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { +- desc = { enumerable: true, get: function() { return m[k]; } }; +- } +- Object.defineProperty(o, k2, desc); +-}) : (function(o, m, k, k2) { +- if (k2 === undefined) k2 = k; +- o[k2] = m[k]; +-})); +-var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { +- Object.defineProperty(o, "default", { enumerable: true, value: v }); +-}) : function(o, v) { +- o["default"] = v; +-}); +-var __importStar = (this && this.__importStar) || (function () { +- var ownKeys = function(o) { +- ownKeys = Object.getOwnPropertyNames || function (o) { +- var ar = []; +- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k; +- return ar; +- }; +- return ownKeys(o); +- }; +- return function (mod) { +- if (mod && mod.__esModule) return mod; +- var result = {}; +- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]); +- __setModuleDefault(result, mod); +- return result; +- }; +-})(); + Object.defineProperty(exports, "__esModule", { value: true }); + // esm format file +-const self = __importStar(require("package")); ++const self = require("package"); + self; + diff --git a/testdata/baselines/reference/submodule/conformance/nodeAllowJsPackageSelfName(module=nodenext).js b/testdata/baselines/reference/submodule/conformance/nodeAllowJsPackageSelfName(module=nodenext).js new file mode 100644 index 0000000000..1498e98d79 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/nodeAllowJsPackageSelfName(module=nodenext).js @@ -0,0 +1,77 @@ +//// [tests/cases/conformance/node/allowJs/nodeAllowJsPackageSelfName.ts] //// + +//// [index.js] +// esm format file +import * as self from "package"; +self; +//// [index.mjs] +// esm format file +import * as self from "package"; +self; +//// [index.cjs] +// esm format file +import * as self from "package"; +self; +//// [package.json] +{ + "name": "package", + "private": true, + "type": "module", + "exports": "./index.js" +} + +//// [index.js] +// esm format file +import * as self from "package"; +self; +//// [index.mjs] +// esm format file +import * as self from "package"; +self; +//// [index.cjs] +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || (function () { + var ownKeys = function(o) { + ownKeys = Object.getOwnPropertyNames || function (o) { + var ar = []; + for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k; + return ar; + }; + return ownKeys(o); + }; + return function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]); + __setModuleDefault(result, mod); + return result; + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +// esm format file +const self = __importStar(require("package")); +self; + + +//// [index.d.ts] +export {}; +//// [index.d.mts] +export {}; +//// [index.d.cts] +export {}; diff --git a/testdata/baselines/reference/submodule/conformance/nodeAllowJsPackageSelfName2.js b/testdata/baselines/reference/submodule/conformance/nodeAllowJsPackageSelfName2.js new file mode 100644 index 0000000000..442ceae610 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/nodeAllowJsPackageSelfName2.js @@ -0,0 +1,33 @@ +//// [tests/cases/conformance/node/allowJs/nodeAllowJsPackageSelfName2.ts] //// + +//// [package.json] +{ + "name": "js-self-name-import", + "type": "module", + "exports": { + "./*": { + "types": "./types/src/*", + "default": "./src/*" + } + } +} + +//// [foo.d.ts] +export const foo: 1; + +//// [foo.d.ts] +export {}; + +//// [foo.js] +export const foo = 1; + +//// [foo.js] +import { foo } from "js-self-name-import/foo.js"; + + + + +//// [foo.d.ts] +export declare const foo = 1; +//// [foo.d.ts] +export {}; diff --git a/testdata/baselines/reference/submodule/conformance/nodeAllowJsPackageSelfName2.js.diff b/testdata/baselines/reference/submodule/conformance/nodeAllowJsPackageSelfName2.js.diff new file mode 100644 index 0000000000..db1c08340f --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/nodeAllowJsPackageSelfName2.js.diff @@ -0,0 +1,10 @@ +--- old.nodeAllowJsPackageSelfName2.js ++++ new.nodeAllowJsPackageSelfName2.js +@@= skipped -27, +27 lines =@@ + + + //// [foo.d.ts] +-export const foo: 1; ++export declare const foo = 1; + //// [foo.d.ts] + export {}; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJs1(module=node16).js b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJs1(module=node16).js new file mode 100644 index 0000000000..3ce5147557 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJs1(module=node16).js @@ -0,0 +1,722 @@ +//// [tests/cases/conformance/node/allowJs/nodeModulesAllowJs1.ts] //// + +//// [index.js] +// cjs format file +const x = 1; +export {x}; +//// [index.cjs] +// cjs format file +const x = 1; +export {x}; +//// [index.mjs] +// esm format file +const x = 1; +export {x}; +//// [index.js] +// cjs format file +const x = 1; +export {x}; +//// [index.cjs] +// cjs format file +const x = 1; +export {x}; +//// [index.mjs] +// esm format file +const x = 1; +export {x}; +//// [index.js] +// esm format file +const x = 1; +export {x}; +//// [index.cjs] +// cjs format file +const x = 1; +export {x}; +//// [index.mjs] +// esm format file +const x = 1; +export {x}; +//// [index.js] +import * as m1 from "./index.js"; +import * as m2 from "./index.mjs"; +import * as m3 from "./index.cjs"; +import * as m4 from "./subfolder/index.js"; +import * as m5 from "./subfolder/index.mjs"; +import * as m6 from "./subfolder/index.cjs"; +import * as m7 from "./subfolder2/index.js"; +import * as m8 from "./subfolder2/index.mjs"; +import * as m9 from "./subfolder2/index.cjs"; +import * as m10 from "./subfolder2/another/index.js"; +import * as m11 from "./subfolder2/another/index.mjs"; +import * as m12 from "./subfolder2/another/index.cjs"; +// The next ones shouldn't all work - esm format files have no index resolution or extension resolution +import * as m13 from "./"; +import * as m14 from "./index"; +import * as m15 from "./subfolder"; +import * as m16 from "./subfolder/"; +import * as m17 from "./subfolder/index"; +import * as m18 from "./subfolder2"; +import * as m19 from "./subfolder2/"; +import * as m20 from "./subfolder2/index"; +import * as m21 from "./subfolder2/another"; +import * as m22 from "./subfolder2/another/"; +import * as m23 from "./subfolder2/another/index"; +void m1; +void m2; +void m3; +void m4; +void m5; +void m6; +void m7; +void m8; +void m9; +void m10; +void m11; +void m12; +void m13; +void m14; +void m15; +void m16; +void m17; +void m18; +void m19; +void m20; +void m21; +void m22; +void m23; + +// These should _mostly_ work - `import = require` always desugars to require calls, which do have extension and index resolution (but can't load anything that resolves to esm!) +import m24 = require("./"); +import m25 = require("./index"); +import m26 = require("./subfolder"); +import m27 = require("./subfolder/"); +import m28 = require("./subfolder/index"); +import m29 = require("./subfolder2"); +import m30 = require("./subfolder2/"); +import m31 = require("./subfolder2/index"); +import m32 = require("./subfolder2/another"); +import m33 = require("./subfolder2/another/"); +import m34 = require("./subfolder2/another/index"); +void m24; +void m25; +void m26; +void m27; +void m28; +void m29; +void m30; +void m31; +void m32; +void m33; +void m34; + +// These shouldn't work - dynamic `import()` always uses the esm resolver, which does not have extension resolution +const _m35 = import("./"); +const _m36 = import("./index"); +const _m37 = import("./subfolder"); +const _m38 = import("./subfolder/"); +const _m39 = import("./subfolder/index"); +const _m40 = import("./subfolder2"); +const _m41 = import("./subfolder2/"); +const _m42 = import("./subfolder2/index"); +const _m43 = import("./subfolder2/another"); +const _m44 = import("./subfolder2/another/"); +const _m45 = import("./subfolder2/another/index"); +// esm format file +const x = 1; +export {x}; +//// [index.cjs] +// ESM-format imports below should issue errors +import * as m1 from "./index.js"; +import * as m2 from "./index.mjs"; +import * as m3 from "./index.cjs"; +import * as m4 from "./subfolder/index.js"; +import * as m5 from "./subfolder/index.mjs"; +import * as m6 from "./subfolder/index.cjs"; +import * as m7 from "./subfolder2/index.js"; +import * as m8 from "./subfolder2/index.mjs"; +import * as m9 from "./subfolder2/index.cjs"; +import * as m10 from "./subfolder2/another/index.js"; +import * as m11 from "./subfolder2/another/index.mjs"; +import * as m12 from "./subfolder2/another/index.cjs"; +// The next ones should _mostly_ work - cjs format files have index resolution and extension resolution (except for those which resolve to an esm format file) +import * as m13 from "./"; +import * as m14 from "./index"; +import * as m15 from "./subfolder"; +import * as m16 from "./subfolder/"; +import * as m17 from "./subfolder/index"; +import * as m18 from "./subfolder2"; +import * as m19 from "./subfolder2/"; +import * as m20 from "./subfolder2/index"; +import * as m21 from "./subfolder2/another"; +import * as m22 from "./subfolder2/another/"; +import * as m23 from "./subfolder2/another/index"; +void m1; +void m2; +void m3; +void m4; +void m5; +void m6; +void m7; +void m8; +void m9; +void m10; +void m11; +void m12; +void m13; +void m14; +void m15; +void m16; +void m17; +void m18; +void m19; +void m20; +void m21; +void m22; +void m23; + +// These should _mostly_ work - `import = require` always desugars to require calls, which do have extension and index resolution (but can't load anything that resolves to esm!) +import m24 = require("./"); +import m25 = require("./index"); +import m26 = require("./subfolder"); +import m27 = require("./subfolder/"); +import m28 = require("./subfolder/index"); +import m29 = require("./subfolder2"); +import m30 = require("./subfolder2/"); +import m31 = require("./subfolder2/index"); +import m32 = require("./subfolder2/another"); +import m33 = require("./subfolder2/another/"); +import m34 = require("./subfolder2/another/index"); +void m24; +void m25; +void m26; +void m27; +void m28; +void m29; +void m30; +void m31; +void m32; +void m33; +void m34; + +// These shouldn't work - dynamic `import()` always uses the esm resolver, which does not have extension resolution +const _m35 = import("./"); +const _m36 = import("./index"); +const _m37 = import("./subfolder"); +const _m38 = import("./subfolder/"); +const _m39 = import("./subfolder/index"); +const _m40 = import("./subfolder2"); +const _m41 = import("./subfolder2/"); +const _m42 = import("./subfolder2/index"); +const _m43 = import("./subfolder2/another"); +const _m44 = import("./subfolder2/another/"); +const _m45 = import("./subfolder2/another/index"); +// cjs format file +const x = 1; +export {x}; +//// [index.mjs] +import * as m1 from "./index.js"; +import * as m2 from "./index.mjs"; +import * as m3 from "./index.cjs"; +import * as m4 from "./subfolder/index.js"; +import * as m5 from "./subfolder/index.mjs"; +import * as m6 from "./subfolder/index.cjs"; +import * as m7 from "./subfolder2/index.js"; +import * as m8 from "./subfolder2/index.mjs"; +import * as m9 from "./subfolder2/index.cjs"; +import * as m10 from "./subfolder2/another/index.js"; +import * as m11 from "./subfolder2/another/index.mjs"; +import * as m12 from "./subfolder2/another/index.cjs"; +// The next ones should all fail - esm format files have no index resolution or extension resolution +import * as m13 from "./"; +import * as m14 from "./index"; +import * as m15 from "./subfolder"; +import * as m16 from "./subfolder/"; +import * as m17 from "./subfolder/index"; +import * as m18 from "./subfolder2"; +import * as m19 from "./subfolder2/"; +import * as m20 from "./subfolder2/index"; +import * as m21 from "./subfolder2/another"; +import * as m22 from "./subfolder2/another/"; +import * as m23 from "./subfolder2/another/index"; +void m1; +void m2; +void m3; +void m4; +void m5; +void m6; +void m7; +void m8; +void m9; +void m10; +void m11; +void m12; +void m13; +void m14; +void m15; +void m16; +void m17; +void m18; +void m19; +void m20; +void m21; +void m22; +void m23; + +// These should _mostly_ work - `import = require` always desugars to require calls, which do have extension and index resolution (but can't load anything that resolves to esm!) +import m24 = require("./"); +import m25 = require("./index"); +import m26 = require("./subfolder"); +import m27 = require("./subfolder/"); +import m28 = require("./subfolder/index"); +import m29 = require("./subfolder2"); +import m30 = require("./subfolder2/"); +import m31 = require("./subfolder2/index"); +import m32 = require("./subfolder2/another"); +import m33 = require("./subfolder2/another/"); +import m34 = require("./subfolder2/another/index"); +void m24; +void m25; +void m26; +void m27; +void m28; +void m29; +void m30; +void m31; +void m32; +void m33; +void m34; + +// These shouldn't work - dynamic `import()` always uses the esm resolver, which does not have extension resolution +const _m35 = import("./"); +const _m36 = import("./index"); +const _m37 = import("./subfolder"); +const _m38 = import("./subfolder/"); +const _m39 = import("./subfolder/index"); +const _m40 = import("./subfolder2"); +const _m41 = import("./subfolder2/"); +const _m42 = import("./subfolder2/index"); +const _m43 = import("./subfolder2/another"); +const _m44 = import("./subfolder2/another/"); +const _m45 = import("./subfolder2/another/index"); + +// esm format file +const x = 1; +export {x}; +//// [package.json] +{ + "name": "package", + "private": true, + "type": "module" +} +//// [package.json] +{ + "type": "commonjs" +} +//// [package.json] +{ +} +//// [package.json] +{ + "type": "module" +} + +//// [index.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.x = void 0; +// cjs format file +const x = 1; +exports.x = x; +//// [index.cjs] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.x = void 0; +// cjs format file +const x = 1; +exports.x = x; +//// [index.mjs] +// esm format file +const x = 1; +export { x }; +//// [index.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.x = void 0; +// cjs format file +const x = 1; +exports.x = x; +//// [index.cjs] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.x = void 0; +// cjs format file +const x = 1; +exports.x = x; +//// [index.mjs] +// esm format file +const x = 1; +export { x }; +//// [index.js] +// esm format file +const x = 1; +export { x }; +//// [index.cjs] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.x = void 0; +// cjs format file +const x = 1; +exports.x = x; +//// [index.mjs] +// esm format file +const x = 1; +export { x }; +//// [index.cjs] +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || (function () { + var ownKeys = function(o) { + ownKeys = Object.getOwnPropertyNames || function (o) { + var ar = []; + for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k; + return ar; + }; + return ownKeys(o); + }; + return function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]); + __setModuleDefault(result, mod); + return result; + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +exports.x = void 0; +// ESM-format imports below should issue errors +const m1 = __importStar(require("./index.js")); +const m2 = __importStar(require("./index.mjs")); +const m3 = __importStar(require("./index.cjs")); +const m4 = __importStar(require("./subfolder/index.js")); +const m5 = __importStar(require("./subfolder/index.mjs")); +const m6 = __importStar(require("./subfolder/index.cjs")); +const m7 = __importStar(require("./subfolder2/index.js")); +const m8 = __importStar(require("./subfolder2/index.mjs")); +const m9 = __importStar(require("./subfolder2/index.cjs")); +const m10 = __importStar(require("./subfolder2/another/index.js")); +const m11 = __importStar(require("./subfolder2/another/index.mjs")); +const m12 = __importStar(require("./subfolder2/another/index.cjs")); +// The next ones should _mostly_ work - cjs format files have index resolution and extension resolution (except for those which resolve to an esm format file) +const m13 = __importStar(require("./")); +const m14 = __importStar(require("./index")); +const m15 = __importStar(require("./subfolder")); +const m16 = __importStar(require("./subfolder/")); +const m17 = __importStar(require("./subfolder/index")); +const m18 = __importStar(require("./subfolder2")); +const m19 = __importStar(require("./subfolder2/")); +const m20 = __importStar(require("./subfolder2/index")); +const m21 = __importStar(require("./subfolder2/another")); +const m22 = __importStar(require("./subfolder2/another/")); +const m23 = __importStar(require("./subfolder2/another/index")); +void m1; +void m2; +void m3; +void m4; +void m5; +void m6; +void m7; +void m8; +void m9; +void m10; +void m11; +void m12; +void m13; +void m14; +void m15; +void m16; +void m17; +void m18; +void m19; +void m20; +void m21; +void m22; +void m23; +// These should _mostly_ work - `import = require` always desugars to require calls, which do have extension and index resolution (but can't load anything that resolves to esm!) +const m24 = require("./"); +const m25 = require("./index"); +const m26 = require("./subfolder"); +const m27 = require("./subfolder/"); +const m28 = require("./subfolder/index"); +const m29 = require("./subfolder2"); +const m30 = require("./subfolder2/"); +const m31 = require("./subfolder2/index"); +const m32 = require("./subfolder2/another"); +const m33 = require("./subfolder2/another/"); +const m34 = require("./subfolder2/another/index"); +void m24; +void m25; +void m26; +void m27; +void m28; +void m29; +void m30; +void m31; +void m32; +void m33; +void m34; +// These shouldn't work - dynamic `import()` always uses the esm resolver, which does not have extension resolution +const _m35 = import("./"); +const _m36 = import("./index"); +const _m37 = import("./subfolder"); +const _m38 = import("./subfolder/"); +const _m39 = import("./subfolder/index"); +const _m40 = import("./subfolder2"); +const _m41 = import("./subfolder2/"); +const _m42 = import("./subfolder2/index"); +const _m43 = import("./subfolder2/another"); +const _m44 = import("./subfolder2/another/"); +const _m45 = import("./subfolder2/another/index"); +// cjs format file +const x = 1; +exports.x = x; +//// [index.mjs] +import { createRequire as _createRequire } from "module"; +const __require = _createRequire(import.meta.url); +import * as m1 from "./index.js"; +import * as m2 from "./index.mjs"; +import * as m3 from "./index.cjs"; +import * as m4 from "./subfolder/index.js"; +import * as m5 from "./subfolder/index.mjs"; +import * as m6 from "./subfolder/index.cjs"; +import * as m7 from "./subfolder2/index.js"; +import * as m8 from "./subfolder2/index.mjs"; +import * as m9 from "./subfolder2/index.cjs"; +import * as m10 from "./subfolder2/another/index.js"; +import * as m11 from "./subfolder2/another/index.mjs"; +import * as m12 from "./subfolder2/another/index.cjs"; +// The next ones should all fail - esm format files have no index resolution or extension resolution +import * as m13 from "./"; +import * as m14 from "./index"; +import * as m15 from "./subfolder"; +import * as m16 from "./subfolder/"; +import * as m17 from "./subfolder/index"; +import * as m18 from "./subfolder2"; +import * as m19 from "./subfolder2/"; +import * as m20 from "./subfolder2/index"; +import * as m21 from "./subfolder2/another"; +import * as m22 from "./subfolder2/another/"; +import * as m23 from "./subfolder2/another/index"; +void m1; +void m2; +void m3; +void m4; +void m5; +void m6; +void m7; +void m8; +void m9; +void m10; +void m11; +void m12; +void m13; +void m14; +void m15; +void m16; +void m17; +void m18; +void m19; +void m20; +void m21; +void m22; +void m23; +// These should _mostly_ work - `import = require` always desugars to require calls, which do have extension and index resolution (but can't load anything that resolves to esm!) +const m24 = __require("./"); +const m25 = __require("./index"); +const m26 = __require("./subfolder"); +const m27 = __require("./subfolder/"); +const m28 = __require("./subfolder/index"); +const m29 = __require("./subfolder2"); +const m30 = __require("./subfolder2/"); +const m31 = __require("./subfolder2/index"); +const m32 = __require("./subfolder2/another"); +const m33 = __require("./subfolder2/another/"); +const m34 = __require("./subfolder2/another/index"); +void m24; +void m25; +void m26; +void m27; +void m28; +void m29; +void m30; +void m31; +void m32; +void m33; +void m34; +// These shouldn't work - dynamic `import()` always uses the esm resolver, which does not have extension resolution +const _m35 = import("./"); +const _m36 = import("./index"); +const _m37 = import("./subfolder"); +const _m38 = import("./subfolder/"); +const _m39 = import("./subfolder/index"); +const _m40 = import("./subfolder2"); +const _m41 = import("./subfolder2/"); +const _m42 = import("./subfolder2/index"); +const _m43 = import("./subfolder2/another"); +const _m44 = import("./subfolder2/another/"); +const _m45 = import("./subfolder2/another/index"); +// esm format file +const x = 1; +export { x }; +//// [index.js] +import { createRequire as _createRequire } from "module"; +const __require = _createRequire(import.meta.url); +import * as m1 from "./index.js"; +import * as m2 from "./index.mjs"; +import * as m3 from "./index.cjs"; +import * as m4 from "./subfolder/index.js"; +import * as m5 from "./subfolder/index.mjs"; +import * as m6 from "./subfolder/index.cjs"; +import * as m7 from "./subfolder2/index.js"; +import * as m8 from "./subfolder2/index.mjs"; +import * as m9 from "./subfolder2/index.cjs"; +import * as m10 from "./subfolder2/another/index.js"; +import * as m11 from "./subfolder2/another/index.mjs"; +import * as m12 from "./subfolder2/another/index.cjs"; +// The next ones shouldn't all work - esm format files have no index resolution or extension resolution +import * as m13 from "./"; +import * as m14 from "./index"; +import * as m15 from "./subfolder"; +import * as m16 from "./subfolder/"; +import * as m17 from "./subfolder/index"; +import * as m18 from "./subfolder2"; +import * as m19 from "./subfolder2/"; +import * as m20 from "./subfolder2/index"; +import * as m21 from "./subfolder2/another"; +import * as m22 from "./subfolder2/another/"; +import * as m23 from "./subfolder2/another/index"; +void m1; +void m2; +void m3; +void m4; +void m5; +void m6; +void m7; +void m8; +void m9; +void m10; +void m11; +void m12; +void m13; +void m14; +void m15; +void m16; +void m17; +void m18; +void m19; +void m20; +void m21; +void m22; +void m23; +// These should _mostly_ work - `import = require` always desugars to require calls, which do have extension and index resolution (but can't load anything that resolves to esm!) +const m24 = __require("./"); +const m25 = __require("./index"); +const m26 = __require("./subfolder"); +const m27 = __require("./subfolder/"); +const m28 = __require("./subfolder/index"); +const m29 = __require("./subfolder2"); +const m30 = __require("./subfolder2/"); +const m31 = __require("./subfolder2/index"); +const m32 = __require("./subfolder2/another"); +const m33 = __require("./subfolder2/another/"); +const m34 = __require("./subfolder2/another/index"); +void m24; +void m25; +void m26; +void m27; +void m28; +void m29; +void m30; +void m31; +void m32; +void m33; +void m34; +// These shouldn't work - dynamic `import()` always uses the esm resolver, which does not have extension resolution +const _m35 = import("./"); +const _m36 = import("./index"); +const _m37 = import("./subfolder"); +const _m38 = import("./subfolder/"); +const _m39 = import("./subfolder/index"); +const _m40 = import("./subfolder2"); +const _m41 = import("./subfolder2/"); +const _m42 = import("./subfolder2/index"); +const _m43 = import("./subfolder2/another"); +const _m44 = import("./subfolder2/another/"); +const _m45 = import("./subfolder2/another/index"); +// esm format file +const x = 1; +export { x }; + + +//// [index.d.ts] +// cjs format file +declare const x = 1; +export { x }; +//// [index.d.cts] +// cjs format file +declare const x = 1; +export { x }; +//// [index.d.mts] +// esm format file +declare const x = 1; +export { x }; +//// [index.d.ts] +// cjs format file +declare const x = 1; +export { x }; +//// [index.d.cts] +// cjs format file +declare const x = 1; +export { x }; +//// [index.d.mts] +// esm format file +declare const x = 1; +export { x }; +//// [index.d.ts] +// esm format file +declare const x = 1; +export { x }; +//// [index.d.cts] +// cjs format file +declare const x = 1; +export { x }; +//// [index.d.mts] +// esm format file +declare const x = 1; +export { x }; +//// [index.d.cts] +// cjs format file +declare const x = 1; +export { x }; +//// [index.d.mts] +// esm format file +declare const x = 1; +export { x }; +//// [index.d.ts] +// esm format file +declare const x = 1; +export { x }; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJs1(module=node16).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJs1(module=node16).js.diff new file mode 100644 index 0000000000..dc8b4cc91f --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJs1(module=node16).js.diff @@ -0,0 +1,76 @@ +--- old.nodeModulesAllowJs1(module=node16).js ++++ new.nodeModulesAllowJs1(module=node16).js +@@= skipped -672, +672 lines =@@ + + + //// [index.d.ts] +-export const x: 1; +-//// [index.d.cts] +-export const x: 1; +-//// [index.d.mts] +-export const x: 1; +-//// [index.d.ts] +-export const x: 1; +-//// [index.d.cts] +-export const x: 1; +-//// [index.d.mts] +-export const x: 1; +-//// [index.d.ts] +-export const x: 1; +-//// [index.d.cts] +-export const x: 1; +-//// [index.d.mts] +-export const x: 1; +-//// [index.d.cts] +-export const x: 1; +-//// [index.d.mts] +-export const x: 1; +-//// [index.d.ts] +-export const x: 1; ++// cjs format file ++declare const x = 1; ++export { x }; ++//// [index.d.cts] ++// cjs format file ++declare const x = 1; ++export { x }; ++//// [index.d.mts] ++// esm format file ++declare const x = 1; ++export { x }; ++//// [index.d.ts] ++// cjs format file ++declare const x = 1; ++export { x }; ++//// [index.d.cts] ++// cjs format file ++declare const x = 1; ++export { x }; ++//// [index.d.mts] ++// esm format file ++declare const x = 1; ++export { x }; ++//// [index.d.ts] ++// esm format file ++declare const x = 1; ++export { x }; ++//// [index.d.cts] ++// cjs format file ++declare const x = 1; ++export { x }; ++//// [index.d.mts] ++// esm format file ++declare const x = 1; ++export { x }; ++//// [index.d.cts] ++// cjs format file ++declare const x = 1; ++export { x }; ++//// [index.d.mts] ++// esm format file ++declare const x = 1; ++export { x }; ++//// [index.d.ts] ++// esm format file ++declare const x = 1; ++export { x }; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJs1(module=node18).js b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJs1(module=node18).js new file mode 100644 index 0000000000..fceee457d1 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJs1(module=node18).js @@ -0,0 +1,703 @@ +//// [tests/cases/conformance/node/allowJs/nodeModulesAllowJs1.ts] //// + +//// [index.js] +// cjs format file +const x = 1; +export {x}; +//// [index.cjs] +// cjs format file +const x = 1; +export {x}; +//// [index.mjs] +// esm format file +const x = 1; +export {x}; +//// [index.js] +// cjs format file +const x = 1; +export {x}; +//// [index.cjs] +// cjs format file +const x = 1; +export {x}; +//// [index.mjs] +// esm format file +const x = 1; +export {x}; +//// [index.js] +// esm format file +const x = 1; +export {x}; +//// [index.cjs] +// cjs format file +const x = 1; +export {x}; +//// [index.mjs] +// esm format file +const x = 1; +export {x}; +//// [index.js] +import * as m1 from "./index.js"; +import * as m2 from "./index.mjs"; +import * as m3 from "./index.cjs"; +import * as m4 from "./subfolder/index.js"; +import * as m5 from "./subfolder/index.mjs"; +import * as m6 from "./subfolder/index.cjs"; +import * as m7 from "./subfolder2/index.js"; +import * as m8 from "./subfolder2/index.mjs"; +import * as m9 from "./subfolder2/index.cjs"; +import * as m10 from "./subfolder2/another/index.js"; +import * as m11 from "./subfolder2/another/index.mjs"; +import * as m12 from "./subfolder2/another/index.cjs"; +// The next ones shouldn't all work - esm format files have no index resolution or extension resolution +import * as m13 from "./"; +import * as m14 from "./index"; +import * as m15 from "./subfolder"; +import * as m16 from "./subfolder/"; +import * as m17 from "./subfolder/index"; +import * as m18 from "./subfolder2"; +import * as m19 from "./subfolder2/"; +import * as m20 from "./subfolder2/index"; +import * as m21 from "./subfolder2/another"; +import * as m22 from "./subfolder2/another/"; +import * as m23 from "./subfolder2/another/index"; +void m1; +void m2; +void m3; +void m4; +void m5; +void m6; +void m7; +void m8; +void m9; +void m10; +void m11; +void m12; +void m13; +void m14; +void m15; +void m16; +void m17; +void m18; +void m19; +void m20; +void m21; +void m22; +void m23; + +// These should _mostly_ work - `import = require` always desugars to require calls, which do have extension and index resolution (but can't load anything that resolves to esm!) +import m24 = require("./"); +import m25 = require("./index"); +import m26 = require("./subfolder"); +import m27 = require("./subfolder/"); +import m28 = require("./subfolder/index"); +import m29 = require("./subfolder2"); +import m30 = require("./subfolder2/"); +import m31 = require("./subfolder2/index"); +import m32 = require("./subfolder2/another"); +import m33 = require("./subfolder2/another/"); +import m34 = require("./subfolder2/another/index"); +void m24; +void m25; +void m26; +void m27; +void m28; +void m29; +void m30; +void m31; +void m32; +void m33; +void m34; + +// These shouldn't work - dynamic `import()` always uses the esm resolver, which does not have extension resolution +const _m35 = import("./"); +const _m36 = import("./index"); +const _m37 = import("./subfolder"); +const _m38 = import("./subfolder/"); +const _m39 = import("./subfolder/index"); +const _m40 = import("./subfolder2"); +const _m41 = import("./subfolder2/"); +const _m42 = import("./subfolder2/index"); +const _m43 = import("./subfolder2/another"); +const _m44 = import("./subfolder2/another/"); +const _m45 = import("./subfolder2/another/index"); +// esm format file +const x = 1; +export {x}; +//// [index.cjs] +// ESM-format imports below should issue errors +import * as m1 from "./index.js"; +import * as m2 from "./index.mjs"; +import * as m3 from "./index.cjs"; +import * as m4 from "./subfolder/index.js"; +import * as m5 from "./subfolder/index.mjs"; +import * as m6 from "./subfolder/index.cjs"; +import * as m7 from "./subfolder2/index.js"; +import * as m8 from "./subfolder2/index.mjs"; +import * as m9 from "./subfolder2/index.cjs"; +import * as m10 from "./subfolder2/another/index.js"; +import * as m11 from "./subfolder2/another/index.mjs"; +import * as m12 from "./subfolder2/another/index.cjs"; +// The next ones should _mostly_ work - cjs format files have index resolution and extension resolution (except for those which resolve to an esm format file) +import * as m13 from "./"; +import * as m14 from "./index"; +import * as m15 from "./subfolder"; +import * as m16 from "./subfolder/"; +import * as m17 from "./subfolder/index"; +import * as m18 from "./subfolder2"; +import * as m19 from "./subfolder2/"; +import * as m20 from "./subfolder2/index"; +import * as m21 from "./subfolder2/another"; +import * as m22 from "./subfolder2/another/"; +import * as m23 from "./subfolder2/another/index"; +void m1; +void m2; +void m3; +void m4; +void m5; +void m6; +void m7; +void m8; +void m9; +void m10; +void m11; +void m12; +void m13; +void m14; +void m15; +void m16; +void m17; +void m18; +void m19; +void m20; +void m21; +void m22; +void m23; + +// These should _mostly_ work - `import = require` always desugars to require calls, which do have extension and index resolution (but can't load anything that resolves to esm!) +import m24 = require("./"); +import m25 = require("./index"); +import m26 = require("./subfolder"); +import m27 = require("./subfolder/"); +import m28 = require("./subfolder/index"); +import m29 = require("./subfolder2"); +import m30 = require("./subfolder2/"); +import m31 = require("./subfolder2/index"); +import m32 = require("./subfolder2/another"); +import m33 = require("./subfolder2/another/"); +import m34 = require("./subfolder2/another/index"); +void m24; +void m25; +void m26; +void m27; +void m28; +void m29; +void m30; +void m31; +void m32; +void m33; +void m34; + +// These shouldn't work - dynamic `import()` always uses the esm resolver, which does not have extension resolution +const _m35 = import("./"); +const _m36 = import("./index"); +const _m37 = import("./subfolder"); +const _m38 = import("./subfolder/"); +const _m39 = import("./subfolder/index"); +const _m40 = import("./subfolder2"); +const _m41 = import("./subfolder2/"); +const _m42 = import("./subfolder2/index"); +const _m43 = import("./subfolder2/another"); +const _m44 = import("./subfolder2/another/"); +const _m45 = import("./subfolder2/another/index"); +// cjs format file +const x = 1; +export {x}; +//// [index.mjs] +import * as m1 from "./index.js"; +import * as m2 from "./index.mjs"; +import * as m3 from "./index.cjs"; +import * as m4 from "./subfolder/index.js"; +import * as m5 from "./subfolder/index.mjs"; +import * as m6 from "./subfolder/index.cjs"; +import * as m7 from "./subfolder2/index.js"; +import * as m8 from "./subfolder2/index.mjs"; +import * as m9 from "./subfolder2/index.cjs"; +import * as m10 from "./subfolder2/another/index.js"; +import * as m11 from "./subfolder2/another/index.mjs"; +import * as m12 from "./subfolder2/another/index.cjs"; +// The next ones should all fail - esm format files have no index resolution or extension resolution +import * as m13 from "./"; +import * as m14 from "./index"; +import * as m15 from "./subfolder"; +import * as m16 from "./subfolder/"; +import * as m17 from "./subfolder/index"; +import * as m18 from "./subfolder2"; +import * as m19 from "./subfolder2/"; +import * as m20 from "./subfolder2/index"; +import * as m21 from "./subfolder2/another"; +import * as m22 from "./subfolder2/another/"; +import * as m23 from "./subfolder2/another/index"; +void m1; +void m2; +void m3; +void m4; +void m5; +void m6; +void m7; +void m8; +void m9; +void m10; +void m11; +void m12; +void m13; +void m14; +void m15; +void m16; +void m17; +void m18; +void m19; +void m20; +void m21; +void m22; +void m23; + +// These should _mostly_ work - `import = require` always desugars to require calls, which do have extension and index resolution (but can't load anything that resolves to esm!) +import m24 = require("./"); +import m25 = require("./index"); +import m26 = require("./subfolder"); +import m27 = require("./subfolder/"); +import m28 = require("./subfolder/index"); +import m29 = require("./subfolder2"); +import m30 = require("./subfolder2/"); +import m31 = require("./subfolder2/index"); +import m32 = require("./subfolder2/another"); +import m33 = require("./subfolder2/another/"); +import m34 = require("./subfolder2/another/index"); +void m24; +void m25; +void m26; +void m27; +void m28; +void m29; +void m30; +void m31; +void m32; +void m33; +void m34; + +// These shouldn't work - dynamic `import()` always uses the esm resolver, which does not have extension resolution +const _m35 = import("./"); +const _m36 = import("./index"); +const _m37 = import("./subfolder"); +const _m38 = import("./subfolder/"); +const _m39 = import("./subfolder/index"); +const _m40 = import("./subfolder2"); +const _m41 = import("./subfolder2/"); +const _m42 = import("./subfolder2/index"); +const _m43 = import("./subfolder2/another"); +const _m44 = import("./subfolder2/another/"); +const _m45 = import("./subfolder2/another/index"); + +// esm format file +const x = 1; +export {x}; +//// [package.json] +{ + "name": "package", + "private": true, + "type": "module" +} +//// [package.json] +{ + "type": "commonjs" +} +//// [package.json] +{ +} +//// [package.json] +{ + "type": "module" +} + +//// [index.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.x = void 0; +// cjs format file +const x = 1; +exports.x = x; +//// [index.cjs] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.x = void 0; +// cjs format file +const x = 1; +exports.x = x; +//// [index.mjs] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.x = void 0; +// esm format file +const x = 1; +exports.x = x; +//// [index.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.x = void 0; +// cjs format file +const x = 1; +exports.x = x; +//// [index.cjs] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.x = void 0; +// cjs format file +const x = 1; +exports.x = x; +//// [index.mjs] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.x = void 0; +// esm format file +const x = 1; +exports.x = x; +//// [index.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.x = void 0; +// esm format file +const x = 1; +exports.x = x; +//// [index.cjs] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.x = void 0; +// cjs format file +const x = 1; +exports.x = x; +//// [index.mjs] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.x = void 0; +// esm format file +const x = 1; +exports.x = x; +//// [index.cjs] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.x = void 0; +// ESM-format imports below should issue errors +const m1 = require("./index.js"); +const m2 = require("./index.mjs"); +const m3 = require("./index.cjs"); +const m4 = require("./subfolder/index.js"); +const m5 = require("./subfolder/index.mjs"); +const m6 = require("./subfolder/index.cjs"); +const m7 = require("./subfolder2/index.js"); +const m8 = require("./subfolder2/index.mjs"); +const m9 = require("./subfolder2/index.cjs"); +const m10 = require("./subfolder2/another/index.js"); +const m11 = require("./subfolder2/another/index.mjs"); +const m12 = require("./subfolder2/another/index.cjs"); +// The next ones should _mostly_ work - cjs format files have index resolution and extension resolution (except for those which resolve to an esm format file) +const m13 = require("./"); +const m14 = require("./index"); +const m15 = require("./subfolder"); +const m16 = require("./subfolder/"); +const m17 = require("./subfolder/index"); +const m18 = require("./subfolder2"); +const m19 = require("./subfolder2/"); +const m20 = require("./subfolder2/index"); +const m21 = require("./subfolder2/another"); +const m22 = require("./subfolder2/another/"); +const m23 = require("./subfolder2/another/index"); +void m1; +void m2; +void m3; +void m4; +void m5; +void m6; +void m7; +void m8; +void m9; +void m10; +void m11; +void m12; +void m13; +void m14; +void m15; +void m16; +void m17; +void m18; +void m19; +void m20; +void m21; +void m22; +void m23; +// These should _mostly_ work - `import = require` always desugars to require calls, which do have extension and index resolution (but can't load anything that resolves to esm!) +const m24 = require("./"); +const m25 = require("./index"); +const m26 = require("./subfolder"); +const m27 = require("./subfolder/"); +const m28 = require("./subfolder/index"); +const m29 = require("./subfolder2"); +const m30 = require("./subfolder2/"); +const m31 = require("./subfolder2/index"); +const m32 = require("./subfolder2/another"); +const m33 = require("./subfolder2/another/"); +const m34 = require("./subfolder2/another/index"); +void m24; +void m25; +void m26; +void m27; +void m28; +void m29; +void m30; +void m31; +void m32; +void m33; +void m34; +// These shouldn't work - dynamic `import()` always uses the esm resolver, which does not have extension resolution +const _m35 = import("./"); +const _m36 = import("./index"); +const _m37 = import("./subfolder"); +const _m38 = import("./subfolder/"); +const _m39 = import("./subfolder/index"); +const _m40 = import("./subfolder2"); +const _m41 = import("./subfolder2/"); +const _m42 = import("./subfolder2/index"); +const _m43 = import("./subfolder2/another"); +const _m44 = import("./subfolder2/another/"); +const _m45 = import("./subfolder2/another/index"); +// cjs format file +const x = 1; +exports.x = x; +//// [index.mjs] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.x = void 0; +const m1 = require("./index.js"); +const m2 = require("./index.mjs"); +const m3 = require("./index.cjs"); +const m4 = require("./subfolder/index.js"); +const m5 = require("./subfolder/index.mjs"); +const m6 = require("./subfolder/index.cjs"); +const m7 = require("./subfolder2/index.js"); +const m8 = require("./subfolder2/index.mjs"); +const m9 = require("./subfolder2/index.cjs"); +const m10 = require("./subfolder2/another/index.js"); +const m11 = require("./subfolder2/another/index.mjs"); +const m12 = require("./subfolder2/another/index.cjs"); +// The next ones should all fail - esm format files have no index resolution or extension resolution +const m13 = require("./"); +const m14 = require("./index"); +const m15 = require("./subfolder"); +const m16 = require("./subfolder/"); +const m17 = require("./subfolder/index"); +const m18 = require("./subfolder2"); +const m19 = require("./subfolder2/"); +const m20 = require("./subfolder2/index"); +const m21 = require("./subfolder2/another"); +const m22 = require("./subfolder2/another/"); +const m23 = require("./subfolder2/another/index"); +void m1; +void m2; +void m3; +void m4; +void m5; +void m6; +void m7; +void m8; +void m9; +void m10; +void m11; +void m12; +void m13; +void m14; +void m15; +void m16; +void m17; +void m18; +void m19; +void m20; +void m21; +void m22; +void m23; +// These should _mostly_ work - `import = require` always desugars to require calls, which do have extension and index resolution (but can't load anything that resolves to esm!) +const m24 = require("./"); +const m25 = require("./index"); +const m26 = require("./subfolder"); +const m27 = require("./subfolder/"); +const m28 = require("./subfolder/index"); +const m29 = require("./subfolder2"); +const m30 = require("./subfolder2/"); +const m31 = require("./subfolder2/index"); +const m32 = require("./subfolder2/another"); +const m33 = require("./subfolder2/another/"); +const m34 = require("./subfolder2/another/index"); +void m24; +void m25; +void m26; +void m27; +void m28; +void m29; +void m30; +void m31; +void m32; +void m33; +void m34; +// These shouldn't work - dynamic `import()` always uses the esm resolver, which does not have extension resolution +const _m35 = import("./"); +const _m36 = import("./index"); +const _m37 = import("./subfolder"); +const _m38 = import("./subfolder/"); +const _m39 = import("./subfolder/index"); +const _m40 = import("./subfolder2"); +const _m41 = import("./subfolder2/"); +const _m42 = import("./subfolder2/index"); +const _m43 = import("./subfolder2/another"); +const _m44 = import("./subfolder2/another/"); +const _m45 = import("./subfolder2/another/index"); +// esm format file +const x = 1; +exports.x = x; +//// [index.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.x = void 0; +const m1 = require("./index.js"); +const m2 = require("./index.mjs"); +const m3 = require("./index.cjs"); +const m4 = require("./subfolder/index.js"); +const m5 = require("./subfolder/index.mjs"); +const m6 = require("./subfolder/index.cjs"); +const m7 = require("./subfolder2/index.js"); +const m8 = require("./subfolder2/index.mjs"); +const m9 = require("./subfolder2/index.cjs"); +const m10 = require("./subfolder2/another/index.js"); +const m11 = require("./subfolder2/another/index.mjs"); +const m12 = require("./subfolder2/another/index.cjs"); +// The next ones shouldn't all work - esm format files have no index resolution or extension resolution +const m13 = require("./"); +const m14 = require("./index"); +const m15 = require("./subfolder"); +const m16 = require("./subfolder/"); +const m17 = require("./subfolder/index"); +const m18 = require("./subfolder2"); +const m19 = require("./subfolder2/"); +const m20 = require("./subfolder2/index"); +const m21 = require("./subfolder2/another"); +const m22 = require("./subfolder2/another/"); +const m23 = require("./subfolder2/another/index"); +void m1; +void m2; +void m3; +void m4; +void m5; +void m6; +void m7; +void m8; +void m9; +void m10; +void m11; +void m12; +void m13; +void m14; +void m15; +void m16; +void m17; +void m18; +void m19; +void m20; +void m21; +void m22; +void m23; +// These should _mostly_ work - `import = require` always desugars to require calls, which do have extension and index resolution (but can't load anything that resolves to esm!) +const m24 = require("./"); +const m25 = require("./index"); +const m26 = require("./subfolder"); +const m27 = require("./subfolder/"); +const m28 = require("./subfolder/index"); +const m29 = require("./subfolder2"); +const m30 = require("./subfolder2/"); +const m31 = require("./subfolder2/index"); +const m32 = require("./subfolder2/another"); +const m33 = require("./subfolder2/another/"); +const m34 = require("./subfolder2/another/index"); +void m24; +void m25; +void m26; +void m27; +void m28; +void m29; +void m30; +void m31; +void m32; +void m33; +void m34; +// These shouldn't work - dynamic `import()` always uses the esm resolver, which does not have extension resolution +const _m35 = import("./"); +const _m36 = import("./index"); +const _m37 = import("./subfolder"); +const _m38 = import("./subfolder/"); +const _m39 = import("./subfolder/index"); +const _m40 = import("./subfolder2"); +const _m41 = import("./subfolder2/"); +const _m42 = import("./subfolder2/index"); +const _m43 = import("./subfolder2/another"); +const _m44 = import("./subfolder2/another/"); +const _m45 = import("./subfolder2/another/index"); +// esm format file +const x = 1; +exports.x = x; + + +//// [index.d.ts] +// cjs format file +declare const x = 1; +export { x }; +//// [index.d.cts] +// cjs format file +declare const x = 1; +export { x }; +//// [index.d.mts] +// esm format file +declare const x = 1; +export { x }; +//// [index.d.ts] +// cjs format file +declare const x = 1; +export { x }; +//// [index.d.cts] +// cjs format file +declare const x = 1; +export { x }; +//// [index.d.mts] +// esm format file +declare const x = 1; +export { x }; +//// [index.d.ts] +// esm format file +declare const x = 1; +export { x }; +//// [index.d.cts] +// cjs format file +declare const x = 1; +export { x }; +//// [index.d.mts] +// esm format file +declare const x = 1; +export { x }; +//// [index.d.cts] +// cjs format file +declare const x = 1; +export { x }; +//// [index.d.mts] +// esm format file +declare const x = 1; +export { x }; +//// [index.d.ts] +// esm format file +declare const x = 1; +export { x }; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJs1(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJs1(module=node18).js.diff new file mode 100644 index 0000000000..1dddd2bd27 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJs1(module=node18).js.diff @@ -0,0 +1,441 @@ +--- old.nodeModulesAllowJs1(module=node18).js ++++ new.nodeModulesAllowJs1(module=node18).js +@@= skipped -334, +334 lines =@@ + const x = 1; + exports.x = x; + //// [index.mjs] +-// esm format file +-const x = 1; +-export { x }; +-//// [index.js] +-"use strict"; +-Object.defineProperty(exports, "__esModule", { value: true }); +-exports.x = void 0; +-// cjs format file +-const x = 1; +-exports.x = x; +-//// [index.cjs] +-"use strict"; +-Object.defineProperty(exports, "__esModule", { value: true }); +-exports.x = void 0; +-// cjs format file +-const x = 1; +-exports.x = x; +-//// [index.mjs] +-// esm format file +-const x = 1; +-export { x }; +-//// [index.js] +-// esm format file +-const x = 1; +-export { x }; +-//// [index.cjs] +-"use strict"; +-Object.defineProperty(exports, "__esModule", { value: true }); +-exports.x = void 0; +-// cjs format file +-const x = 1; +-exports.x = x; +-//// [index.mjs] +-// esm format file +-const x = 1; +-export { x }; +-//// [index.cjs] +-"use strict"; +-var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { +- if (k2 === undefined) k2 = k; +- var desc = Object.getOwnPropertyDescriptor(m, k); +- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { +- desc = { enumerable: true, get: function() { return m[k]; } }; +- } +- Object.defineProperty(o, k2, desc); +-}) : (function(o, m, k, k2) { +- if (k2 === undefined) k2 = k; +- o[k2] = m[k]; +-})); +-var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { +- Object.defineProperty(o, "default", { enumerable: true, value: v }); +-}) : function(o, v) { +- o["default"] = v; +-}); +-var __importStar = (this && this.__importStar) || (function () { +- var ownKeys = function(o) { +- ownKeys = Object.getOwnPropertyNames || function (o) { +- var ar = []; +- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k; +- return ar; +- }; +- return ownKeys(o); +- }; +- return function (mod) { +- if (mod && mod.__esModule) return mod; +- var result = {}; +- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]); +- __setModuleDefault(result, mod); +- return result; +- }; +-})(); ++"use strict"; ++Object.defineProperty(exports, "__esModule", { value: true }); ++exports.x = void 0; ++// esm format file ++const x = 1; ++exports.x = x; ++//// [index.js] ++"use strict"; ++Object.defineProperty(exports, "__esModule", { value: true }); ++exports.x = void 0; ++// cjs format file ++const x = 1; ++exports.x = x; ++//// [index.cjs] ++"use strict"; ++Object.defineProperty(exports, "__esModule", { value: true }); ++exports.x = void 0; ++// cjs format file ++const x = 1; ++exports.x = x; ++//// [index.mjs] ++"use strict"; ++Object.defineProperty(exports, "__esModule", { value: true }); ++exports.x = void 0; ++// esm format file ++const x = 1; ++exports.x = x; ++//// [index.js] ++"use strict"; ++Object.defineProperty(exports, "__esModule", { value: true }); ++exports.x = void 0; ++// esm format file ++const x = 1; ++exports.x = x; ++//// [index.cjs] ++"use strict"; ++Object.defineProperty(exports, "__esModule", { value: true }); ++exports.x = void 0; ++// cjs format file ++const x = 1; ++exports.x = x; ++//// [index.mjs] ++"use strict"; ++Object.defineProperty(exports, "__esModule", { value: true }); ++exports.x = void 0; ++// esm format file ++const x = 1; ++exports.x = x; ++//// [index.cjs] ++"use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.x = void 0; + // ESM-format imports below should issue errors +-const m1 = __importStar(require("./index.js")); +-const m2 = __importStar(require("./index.mjs")); +-const m3 = __importStar(require("./index.cjs")); +-const m4 = __importStar(require("./subfolder/index.js")); +-const m5 = __importStar(require("./subfolder/index.mjs")); +-const m6 = __importStar(require("./subfolder/index.cjs")); +-const m7 = __importStar(require("./subfolder2/index.js")); +-const m8 = __importStar(require("./subfolder2/index.mjs")); +-const m9 = __importStar(require("./subfolder2/index.cjs")); +-const m10 = __importStar(require("./subfolder2/another/index.js")); +-const m11 = __importStar(require("./subfolder2/another/index.mjs")); +-const m12 = __importStar(require("./subfolder2/another/index.cjs")); ++const m1 = require("./index.js"); ++const m2 = require("./index.mjs"); ++const m3 = require("./index.cjs"); ++const m4 = require("./subfolder/index.js"); ++const m5 = require("./subfolder/index.mjs"); ++const m6 = require("./subfolder/index.cjs"); ++const m7 = require("./subfolder2/index.js"); ++const m8 = require("./subfolder2/index.mjs"); ++const m9 = require("./subfolder2/index.cjs"); ++const m10 = require("./subfolder2/another/index.js"); ++const m11 = require("./subfolder2/another/index.mjs"); ++const m12 = require("./subfolder2/another/index.cjs"); + // The next ones should _mostly_ work - cjs format files have index resolution and extension resolution (except for those which resolve to an esm format file) +-const m13 = __importStar(require("./")); +-const m14 = __importStar(require("./index")); +-const m15 = __importStar(require("./subfolder")); +-const m16 = __importStar(require("./subfolder/")); +-const m17 = __importStar(require("./subfolder/index")); +-const m18 = __importStar(require("./subfolder2")); +-const m19 = __importStar(require("./subfolder2/")); +-const m20 = __importStar(require("./subfolder2/index")); +-const m21 = __importStar(require("./subfolder2/another")); +-const m22 = __importStar(require("./subfolder2/another/")); +-const m23 = __importStar(require("./subfolder2/another/index")); ++const m13 = require("./"); ++const m14 = require("./index"); ++const m15 = require("./subfolder"); ++const m16 = require("./subfolder/"); ++const m17 = require("./subfolder/index"); ++const m18 = require("./subfolder2"); ++const m19 = require("./subfolder2/"); ++const m20 = require("./subfolder2/index"); ++const m21 = require("./subfolder2/another"); ++const m22 = require("./subfolder2/another/"); ++const m23 = require("./subfolder2/another/index"); + void m1; + void m2; + void m3; +@@= skipped -160, +139 lines =@@ + const x = 1; + exports.x = x; + //// [index.mjs] +-import { createRequire as _createRequire } from "module"; +-const __require = _createRequire(import.meta.url); +-import * as m1 from "./index.js"; +-import * as m2 from "./index.mjs"; +-import * as m3 from "./index.cjs"; +-import * as m4 from "./subfolder/index.js"; +-import * as m5 from "./subfolder/index.mjs"; +-import * as m6 from "./subfolder/index.cjs"; +-import * as m7 from "./subfolder2/index.js"; +-import * as m8 from "./subfolder2/index.mjs"; +-import * as m9 from "./subfolder2/index.cjs"; +-import * as m10 from "./subfolder2/another/index.js"; +-import * as m11 from "./subfolder2/another/index.mjs"; +-import * as m12 from "./subfolder2/another/index.cjs"; ++"use strict"; ++Object.defineProperty(exports, "__esModule", { value: true }); ++exports.x = void 0; ++const m1 = require("./index.js"); ++const m2 = require("./index.mjs"); ++const m3 = require("./index.cjs"); ++const m4 = require("./subfolder/index.js"); ++const m5 = require("./subfolder/index.mjs"); ++const m6 = require("./subfolder/index.cjs"); ++const m7 = require("./subfolder2/index.js"); ++const m8 = require("./subfolder2/index.mjs"); ++const m9 = require("./subfolder2/index.cjs"); ++const m10 = require("./subfolder2/another/index.js"); ++const m11 = require("./subfolder2/another/index.mjs"); ++const m12 = require("./subfolder2/another/index.cjs"); + // The next ones should all fail - esm format files have no index resolution or extension resolution +-import * as m13 from "./"; +-import * as m14 from "./index"; +-import * as m15 from "./subfolder"; +-import * as m16 from "./subfolder/"; +-import * as m17 from "./subfolder/index"; +-import * as m18 from "./subfolder2"; +-import * as m19 from "./subfolder2/"; +-import * as m20 from "./subfolder2/index"; +-import * as m21 from "./subfolder2/another"; +-import * as m22 from "./subfolder2/another/"; +-import * as m23 from "./subfolder2/another/index"; ++const m13 = require("./"); ++const m14 = require("./index"); ++const m15 = require("./subfolder"); ++const m16 = require("./subfolder/"); ++const m17 = require("./subfolder/index"); ++const m18 = require("./subfolder2"); ++const m19 = require("./subfolder2/"); ++const m20 = require("./subfolder2/index"); ++const m21 = require("./subfolder2/another"); ++const m22 = require("./subfolder2/another/"); ++const m23 = require("./subfolder2/another/index"); + void m1; + void m2; + void m3; +@@= skipped -50, +51 lines =@@ + void m22; + void m23; + // These should _mostly_ work - `import = require` always desugars to require calls, which do have extension and index resolution (but can't load anything that resolves to esm!) +-const m24 = __require("./"); +-const m25 = __require("./index"); +-const m26 = __require("./subfolder"); +-const m27 = __require("./subfolder/"); +-const m28 = __require("./subfolder/index"); +-const m29 = __require("./subfolder2"); +-const m30 = __require("./subfolder2/"); +-const m31 = __require("./subfolder2/index"); +-const m32 = __require("./subfolder2/another"); +-const m33 = __require("./subfolder2/another/"); +-const m34 = __require("./subfolder2/another/index"); ++const m24 = require("./"); ++const m25 = require("./index"); ++const m26 = require("./subfolder"); ++const m27 = require("./subfolder/"); ++const m28 = require("./subfolder/index"); ++const m29 = require("./subfolder2"); ++const m30 = require("./subfolder2/"); ++const m31 = require("./subfolder2/index"); ++const m32 = require("./subfolder2/another"); ++const m33 = require("./subfolder2/another/"); ++const m34 = require("./subfolder2/another/index"); + void m24; + void m25; + void m26; +@@= skipped -36, +36 lines =@@ + const _m45 = import("./subfolder2/another/index"); + // esm format file + const x = 1; +-export { x }; ++exports.x = x; + //// [index.js] +-import { createRequire as _createRequire } from "module"; +-const __require = _createRequire(import.meta.url); +-import * as m1 from "./index.js"; +-import * as m2 from "./index.mjs"; +-import * as m3 from "./index.cjs"; +-import * as m4 from "./subfolder/index.js"; +-import * as m5 from "./subfolder/index.mjs"; +-import * as m6 from "./subfolder/index.cjs"; +-import * as m7 from "./subfolder2/index.js"; +-import * as m8 from "./subfolder2/index.mjs"; +-import * as m9 from "./subfolder2/index.cjs"; +-import * as m10 from "./subfolder2/another/index.js"; +-import * as m11 from "./subfolder2/another/index.mjs"; +-import * as m12 from "./subfolder2/another/index.cjs"; ++"use strict"; ++Object.defineProperty(exports, "__esModule", { value: true }); ++exports.x = void 0; ++const m1 = require("./index.js"); ++const m2 = require("./index.mjs"); ++const m3 = require("./index.cjs"); ++const m4 = require("./subfolder/index.js"); ++const m5 = require("./subfolder/index.mjs"); ++const m6 = require("./subfolder/index.cjs"); ++const m7 = require("./subfolder2/index.js"); ++const m8 = require("./subfolder2/index.mjs"); ++const m9 = require("./subfolder2/index.cjs"); ++const m10 = require("./subfolder2/another/index.js"); ++const m11 = require("./subfolder2/another/index.mjs"); ++const m12 = require("./subfolder2/another/index.cjs"); + // The next ones shouldn't all work - esm format files have no index resolution or extension resolution +-import * as m13 from "./"; +-import * as m14 from "./index"; +-import * as m15 from "./subfolder"; +-import * as m16 from "./subfolder/"; +-import * as m17 from "./subfolder/index"; +-import * as m18 from "./subfolder2"; +-import * as m19 from "./subfolder2/"; +-import * as m20 from "./subfolder2/index"; +-import * as m21 from "./subfolder2/another"; +-import * as m22 from "./subfolder2/another/"; +-import * as m23 from "./subfolder2/another/index"; ++const m13 = require("./"); ++const m14 = require("./index"); ++const m15 = require("./subfolder"); ++const m16 = require("./subfolder/"); ++const m17 = require("./subfolder/index"); ++const m18 = require("./subfolder2"); ++const m19 = require("./subfolder2/"); ++const m20 = require("./subfolder2/index"); ++const m21 = require("./subfolder2/another"); ++const m22 = require("./subfolder2/another/"); ++const m23 = require("./subfolder2/another/index"); + void m1; + void m2; + void m3; +@@= skipped -52, +53 lines =@@ + void m22; + void m23; + // These should _mostly_ work - `import = require` always desugars to require calls, which do have extension and index resolution (but can't load anything that resolves to esm!) +-const m24 = __require("./"); +-const m25 = __require("./index"); +-const m26 = __require("./subfolder"); +-const m27 = __require("./subfolder/"); +-const m28 = __require("./subfolder/index"); +-const m29 = __require("./subfolder2"); +-const m30 = __require("./subfolder2/"); +-const m31 = __require("./subfolder2/index"); +-const m32 = __require("./subfolder2/another"); +-const m33 = __require("./subfolder2/another/"); +-const m34 = __require("./subfolder2/another/index"); ++const m24 = require("./"); ++const m25 = require("./index"); ++const m26 = require("./subfolder"); ++const m27 = require("./subfolder/"); ++const m28 = require("./subfolder/index"); ++const m29 = require("./subfolder2"); ++const m30 = require("./subfolder2/"); ++const m31 = require("./subfolder2/index"); ++const m32 = require("./subfolder2/another"); ++const m33 = require("./subfolder2/another/"); ++const m34 = require("./subfolder2/another/index"); + void m24; + void m25; + void m26; +@@= skipped -36, +36 lines =@@ + const _m45 = import("./subfolder2/another/index"); + // esm format file + const x = 1; +-export { x }; +- +- +-//// [index.d.ts] +-export const x: 1; +-//// [index.d.cts] +-export const x: 1; +-//// [index.d.mts] +-export const x: 1; +-//// [index.d.ts] +-export const x: 1; +-//// [index.d.cts] +-export const x: 1; +-//// [index.d.mts] +-export const x: 1; +-//// [index.d.ts] +-export const x: 1; +-//// [index.d.cts] +-export const x: 1; +-//// [index.d.mts] +-export const x: 1; +-//// [index.d.cts] +-export const x: 1; +-//// [index.d.mts] +-export const x: 1; +-//// [index.d.ts] +-export const x: 1; ++exports.x = x; ++ ++ ++//// [index.d.ts] ++// cjs format file ++declare const x = 1; ++export { x }; ++//// [index.d.cts] ++// cjs format file ++declare const x = 1; ++export { x }; ++//// [index.d.mts] ++// esm format file ++declare const x = 1; ++export { x }; ++//// [index.d.ts] ++// cjs format file ++declare const x = 1; ++export { x }; ++//// [index.d.cts] ++// cjs format file ++declare const x = 1; ++export { x }; ++//// [index.d.mts] ++// esm format file ++declare const x = 1; ++export { x }; ++//// [index.d.ts] ++// esm format file ++declare const x = 1; ++export { x }; ++//// [index.d.cts] ++// cjs format file ++declare const x = 1; ++export { x }; ++//// [index.d.mts] ++// esm format file ++declare const x = 1; ++export { x }; ++//// [index.d.cts] ++// cjs format file ++declare const x = 1; ++export { x }; ++//// [index.d.mts] ++// esm format file ++declare const x = 1; ++export { x }; ++//// [index.d.ts] ++// esm format file ++declare const x = 1; ++export { x }; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJs1(module=nodenext).js b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJs1(module=nodenext).js new file mode 100644 index 0000000000..3ce5147557 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJs1(module=nodenext).js @@ -0,0 +1,722 @@ +//// [tests/cases/conformance/node/allowJs/nodeModulesAllowJs1.ts] //// + +//// [index.js] +// cjs format file +const x = 1; +export {x}; +//// [index.cjs] +// cjs format file +const x = 1; +export {x}; +//// [index.mjs] +// esm format file +const x = 1; +export {x}; +//// [index.js] +// cjs format file +const x = 1; +export {x}; +//// [index.cjs] +// cjs format file +const x = 1; +export {x}; +//// [index.mjs] +// esm format file +const x = 1; +export {x}; +//// [index.js] +// esm format file +const x = 1; +export {x}; +//// [index.cjs] +// cjs format file +const x = 1; +export {x}; +//// [index.mjs] +// esm format file +const x = 1; +export {x}; +//// [index.js] +import * as m1 from "./index.js"; +import * as m2 from "./index.mjs"; +import * as m3 from "./index.cjs"; +import * as m4 from "./subfolder/index.js"; +import * as m5 from "./subfolder/index.mjs"; +import * as m6 from "./subfolder/index.cjs"; +import * as m7 from "./subfolder2/index.js"; +import * as m8 from "./subfolder2/index.mjs"; +import * as m9 from "./subfolder2/index.cjs"; +import * as m10 from "./subfolder2/another/index.js"; +import * as m11 from "./subfolder2/another/index.mjs"; +import * as m12 from "./subfolder2/another/index.cjs"; +// The next ones shouldn't all work - esm format files have no index resolution or extension resolution +import * as m13 from "./"; +import * as m14 from "./index"; +import * as m15 from "./subfolder"; +import * as m16 from "./subfolder/"; +import * as m17 from "./subfolder/index"; +import * as m18 from "./subfolder2"; +import * as m19 from "./subfolder2/"; +import * as m20 from "./subfolder2/index"; +import * as m21 from "./subfolder2/another"; +import * as m22 from "./subfolder2/another/"; +import * as m23 from "./subfolder2/another/index"; +void m1; +void m2; +void m3; +void m4; +void m5; +void m6; +void m7; +void m8; +void m9; +void m10; +void m11; +void m12; +void m13; +void m14; +void m15; +void m16; +void m17; +void m18; +void m19; +void m20; +void m21; +void m22; +void m23; + +// These should _mostly_ work - `import = require` always desugars to require calls, which do have extension and index resolution (but can't load anything that resolves to esm!) +import m24 = require("./"); +import m25 = require("./index"); +import m26 = require("./subfolder"); +import m27 = require("./subfolder/"); +import m28 = require("./subfolder/index"); +import m29 = require("./subfolder2"); +import m30 = require("./subfolder2/"); +import m31 = require("./subfolder2/index"); +import m32 = require("./subfolder2/another"); +import m33 = require("./subfolder2/another/"); +import m34 = require("./subfolder2/another/index"); +void m24; +void m25; +void m26; +void m27; +void m28; +void m29; +void m30; +void m31; +void m32; +void m33; +void m34; + +// These shouldn't work - dynamic `import()` always uses the esm resolver, which does not have extension resolution +const _m35 = import("./"); +const _m36 = import("./index"); +const _m37 = import("./subfolder"); +const _m38 = import("./subfolder/"); +const _m39 = import("./subfolder/index"); +const _m40 = import("./subfolder2"); +const _m41 = import("./subfolder2/"); +const _m42 = import("./subfolder2/index"); +const _m43 = import("./subfolder2/another"); +const _m44 = import("./subfolder2/another/"); +const _m45 = import("./subfolder2/another/index"); +// esm format file +const x = 1; +export {x}; +//// [index.cjs] +// ESM-format imports below should issue errors +import * as m1 from "./index.js"; +import * as m2 from "./index.mjs"; +import * as m3 from "./index.cjs"; +import * as m4 from "./subfolder/index.js"; +import * as m5 from "./subfolder/index.mjs"; +import * as m6 from "./subfolder/index.cjs"; +import * as m7 from "./subfolder2/index.js"; +import * as m8 from "./subfolder2/index.mjs"; +import * as m9 from "./subfolder2/index.cjs"; +import * as m10 from "./subfolder2/another/index.js"; +import * as m11 from "./subfolder2/another/index.mjs"; +import * as m12 from "./subfolder2/another/index.cjs"; +// The next ones should _mostly_ work - cjs format files have index resolution and extension resolution (except for those which resolve to an esm format file) +import * as m13 from "./"; +import * as m14 from "./index"; +import * as m15 from "./subfolder"; +import * as m16 from "./subfolder/"; +import * as m17 from "./subfolder/index"; +import * as m18 from "./subfolder2"; +import * as m19 from "./subfolder2/"; +import * as m20 from "./subfolder2/index"; +import * as m21 from "./subfolder2/another"; +import * as m22 from "./subfolder2/another/"; +import * as m23 from "./subfolder2/another/index"; +void m1; +void m2; +void m3; +void m4; +void m5; +void m6; +void m7; +void m8; +void m9; +void m10; +void m11; +void m12; +void m13; +void m14; +void m15; +void m16; +void m17; +void m18; +void m19; +void m20; +void m21; +void m22; +void m23; + +// These should _mostly_ work - `import = require` always desugars to require calls, which do have extension and index resolution (but can't load anything that resolves to esm!) +import m24 = require("./"); +import m25 = require("./index"); +import m26 = require("./subfolder"); +import m27 = require("./subfolder/"); +import m28 = require("./subfolder/index"); +import m29 = require("./subfolder2"); +import m30 = require("./subfolder2/"); +import m31 = require("./subfolder2/index"); +import m32 = require("./subfolder2/another"); +import m33 = require("./subfolder2/another/"); +import m34 = require("./subfolder2/another/index"); +void m24; +void m25; +void m26; +void m27; +void m28; +void m29; +void m30; +void m31; +void m32; +void m33; +void m34; + +// These shouldn't work - dynamic `import()` always uses the esm resolver, which does not have extension resolution +const _m35 = import("./"); +const _m36 = import("./index"); +const _m37 = import("./subfolder"); +const _m38 = import("./subfolder/"); +const _m39 = import("./subfolder/index"); +const _m40 = import("./subfolder2"); +const _m41 = import("./subfolder2/"); +const _m42 = import("./subfolder2/index"); +const _m43 = import("./subfolder2/another"); +const _m44 = import("./subfolder2/another/"); +const _m45 = import("./subfolder2/another/index"); +// cjs format file +const x = 1; +export {x}; +//// [index.mjs] +import * as m1 from "./index.js"; +import * as m2 from "./index.mjs"; +import * as m3 from "./index.cjs"; +import * as m4 from "./subfolder/index.js"; +import * as m5 from "./subfolder/index.mjs"; +import * as m6 from "./subfolder/index.cjs"; +import * as m7 from "./subfolder2/index.js"; +import * as m8 from "./subfolder2/index.mjs"; +import * as m9 from "./subfolder2/index.cjs"; +import * as m10 from "./subfolder2/another/index.js"; +import * as m11 from "./subfolder2/another/index.mjs"; +import * as m12 from "./subfolder2/another/index.cjs"; +// The next ones should all fail - esm format files have no index resolution or extension resolution +import * as m13 from "./"; +import * as m14 from "./index"; +import * as m15 from "./subfolder"; +import * as m16 from "./subfolder/"; +import * as m17 from "./subfolder/index"; +import * as m18 from "./subfolder2"; +import * as m19 from "./subfolder2/"; +import * as m20 from "./subfolder2/index"; +import * as m21 from "./subfolder2/another"; +import * as m22 from "./subfolder2/another/"; +import * as m23 from "./subfolder2/another/index"; +void m1; +void m2; +void m3; +void m4; +void m5; +void m6; +void m7; +void m8; +void m9; +void m10; +void m11; +void m12; +void m13; +void m14; +void m15; +void m16; +void m17; +void m18; +void m19; +void m20; +void m21; +void m22; +void m23; + +// These should _mostly_ work - `import = require` always desugars to require calls, which do have extension and index resolution (but can't load anything that resolves to esm!) +import m24 = require("./"); +import m25 = require("./index"); +import m26 = require("./subfolder"); +import m27 = require("./subfolder/"); +import m28 = require("./subfolder/index"); +import m29 = require("./subfolder2"); +import m30 = require("./subfolder2/"); +import m31 = require("./subfolder2/index"); +import m32 = require("./subfolder2/another"); +import m33 = require("./subfolder2/another/"); +import m34 = require("./subfolder2/another/index"); +void m24; +void m25; +void m26; +void m27; +void m28; +void m29; +void m30; +void m31; +void m32; +void m33; +void m34; + +// These shouldn't work - dynamic `import()` always uses the esm resolver, which does not have extension resolution +const _m35 = import("./"); +const _m36 = import("./index"); +const _m37 = import("./subfolder"); +const _m38 = import("./subfolder/"); +const _m39 = import("./subfolder/index"); +const _m40 = import("./subfolder2"); +const _m41 = import("./subfolder2/"); +const _m42 = import("./subfolder2/index"); +const _m43 = import("./subfolder2/another"); +const _m44 = import("./subfolder2/another/"); +const _m45 = import("./subfolder2/another/index"); + +// esm format file +const x = 1; +export {x}; +//// [package.json] +{ + "name": "package", + "private": true, + "type": "module" +} +//// [package.json] +{ + "type": "commonjs" +} +//// [package.json] +{ +} +//// [package.json] +{ + "type": "module" +} + +//// [index.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.x = void 0; +// cjs format file +const x = 1; +exports.x = x; +//// [index.cjs] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.x = void 0; +// cjs format file +const x = 1; +exports.x = x; +//// [index.mjs] +// esm format file +const x = 1; +export { x }; +//// [index.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.x = void 0; +// cjs format file +const x = 1; +exports.x = x; +//// [index.cjs] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.x = void 0; +// cjs format file +const x = 1; +exports.x = x; +//// [index.mjs] +// esm format file +const x = 1; +export { x }; +//// [index.js] +// esm format file +const x = 1; +export { x }; +//// [index.cjs] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.x = void 0; +// cjs format file +const x = 1; +exports.x = x; +//// [index.mjs] +// esm format file +const x = 1; +export { x }; +//// [index.cjs] +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || (function () { + var ownKeys = function(o) { + ownKeys = Object.getOwnPropertyNames || function (o) { + var ar = []; + for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k; + return ar; + }; + return ownKeys(o); + }; + return function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]); + __setModuleDefault(result, mod); + return result; + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +exports.x = void 0; +// ESM-format imports below should issue errors +const m1 = __importStar(require("./index.js")); +const m2 = __importStar(require("./index.mjs")); +const m3 = __importStar(require("./index.cjs")); +const m4 = __importStar(require("./subfolder/index.js")); +const m5 = __importStar(require("./subfolder/index.mjs")); +const m6 = __importStar(require("./subfolder/index.cjs")); +const m7 = __importStar(require("./subfolder2/index.js")); +const m8 = __importStar(require("./subfolder2/index.mjs")); +const m9 = __importStar(require("./subfolder2/index.cjs")); +const m10 = __importStar(require("./subfolder2/another/index.js")); +const m11 = __importStar(require("./subfolder2/another/index.mjs")); +const m12 = __importStar(require("./subfolder2/another/index.cjs")); +// The next ones should _mostly_ work - cjs format files have index resolution and extension resolution (except for those which resolve to an esm format file) +const m13 = __importStar(require("./")); +const m14 = __importStar(require("./index")); +const m15 = __importStar(require("./subfolder")); +const m16 = __importStar(require("./subfolder/")); +const m17 = __importStar(require("./subfolder/index")); +const m18 = __importStar(require("./subfolder2")); +const m19 = __importStar(require("./subfolder2/")); +const m20 = __importStar(require("./subfolder2/index")); +const m21 = __importStar(require("./subfolder2/another")); +const m22 = __importStar(require("./subfolder2/another/")); +const m23 = __importStar(require("./subfolder2/another/index")); +void m1; +void m2; +void m3; +void m4; +void m5; +void m6; +void m7; +void m8; +void m9; +void m10; +void m11; +void m12; +void m13; +void m14; +void m15; +void m16; +void m17; +void m18; +void m19; +void m20; +void m21; +void m22; +void m23; +// These should _mostly_ work - `import = require` always desugars to require calls, which do have extension and index resolution (but can't load anything that resolves to esm!) +const m24 = require("./"); +const m25 = require("./index"); +const m26 = require("./subfolder"); +const m27 = require("./subfolder/"); +const m28 = require("./subfolder/index"); +const m29 = require("./subfolder2"); +const m30 = require("./subfolder2/"); +const m31 = require("./subfolder2/index"); +const m32 = require("./subfolder2/another"); +const m33 = require("./subfolder2/another/"); +const m34 = require("./subfolder2/another/index"); +void m24; +void m25; +void m26; +void m27; +void m28; +void m29; +void m30; +void m31; +void m32; +void m33; +void m34; +// These shouldn't work - dynamic `import()` always uses the esm resolver, which does not have extension resolution +const _m35 = import("./"); +const _m36 = import("./index"); +const _m37 = import("./subfolder"); +const _m38 = import("./subfolder/"); +const _m39 = import("./subfolder/index"); +const _m40 = import("./subfolder2"); +const _m41 = import("./subfolder2/"); +const _m42 = import("./subfolder2/index"); +const _m43 = import("./subfolder2/another"); +const _m44 = import("./subfolder2/another/"); +const _m45 = import("./subfolder2/another/index"); +// cjs format file +const x = 1; +exports.x = x; +//// [index.mjs] +import { createRequire as _createRequire } from "module"; +const __require = _createRequire(import.meta.url); +import * as m1 from "./index.js"; +import * as m2 from "./index.mjs"; +import * as m3 from "./index.cjs"; +import * as m4 from "./subfolder/index.js"; +import * as m5 from "./subfolder/index.mjs"; +import * as m6 from "./subfolder/index.cjs"; +import * as m7 from "./subfolder2/index.js"; +import * as m8 from "./subfolder2/index.mjs"; +import * as m9 from "./subfolder2/index.cjs"; +import * as m10 from "./subfolder2/another/index.js"; +import * as m11 from "./subfolder2/another/index.mjs"; +import * as m12 from "./subfolder2/another/index.cjs"; +// The next ones should all fail - esm format files have no index resolution or extension resolution +import * as m13 from "./"; +import * as m14 from "./index"; +import * as m15 from "./subfolder"; +import * as m16 from "./subfolder/"; +import * as m17 from "./subfolder/index"; +import * as m18 from "./subfolder2"; +import * as m19 from "./subfolder2/"; +import * as m20 from "./subfolder2/index"; +import * as m21 from "./subfolder2/another"; +import * as m22 from "./subfolder2/another/"; +import * as m23 from "./subfolder2/another/index"; +void m1; +void m2; +void m3; +void m4; +void m5; +void m6; +void m7; +void m8; +void m9; +void m10; +void m11; +void m12; +void m13; +void m14; +void m15; +void m16; +void m17; +void m18; +void m19; +void m20; +void m21; +void m22; +void m23; +// These should _mostly_ work - `import = require` always desugars to require calls, which do have extension and index resolution (but can't load anything that resolves to esm!) +const m24 = __require("./"); +const m25 = __require("./index"); +const m26 = __require("./subfolder"); +const m27 = __require("./subfolder/"); +const m28 = __require("./subfolder/index"); +const m29 = __require("./subfolder2"); +const m30 = __require("./subfolder2/"); +const m31 = __require("./subfolder2/index"); +const m32 = __require("./subfolder2/another"); +const m33 = __require("./subfolder2/another/"); +const m34 = __require("./subfolder2/another/index"); +void m24; +void m25; +void m26; +void m27; +void m28; +void m29; +void m30; +void m31; +void m32; +void m33; +void m34; +// These shouldn't work - dynamic `import()` always uses the esm resolver, which does not have extension resolution +const _m35 = import("./"); +const _m36 = import("./index"); +const _m37 = import("./subfolder"); +const _m38 = import("./subfolder/"); +const _m39 = import("./subfolder/index"); +const _m40 = import("./subfolder2"); +const _m41 = import("./subfolder2/"); +const _m42 = import("./subfolder2/index"); +const _m43 = import("./subfolder2/another"); +const _m44 = import("./subfolder2/another/"); +const _m45 = import("./subfolder2/another/index"); +// esm format file +const x = 1; +export { x }; +//// [index.js] +import { createRequire as _createRequire } from "module"; +const __require = _createRequire(import.meta.url); +import * as m1 from "./index.js"; +import * as m2 from "./index.mjs"; +import * as m3 from "./index.cjs"; +import * as m4 from "./subfolder/index.js"; +import * as m5 from "./subfolder/index.mjs"; +import * as m6 from "./subfolder/index.cjs"; +import * as m7 from "./subfolder2/index.js"; +import * as m8 from "./subfolder2/index.mjs"; +import * as m9 from "./subfolder2/index.cjs"; +import * as m10 from "./subfolder2/another/index.js"; +import * as m11 from "./subfolder2/another/index.mjs"; +import * as m12 from "./subfolder2/another/index.cjs"; +// The next ones shouldn't all work - esm format files have no index resolution or extension resolution +import * as m13 from "./"; +import * as m14 from "./index"; +import * as m15 from "./subfolder"; +import * as m16 from "./subfolder/"; +import * as m17 from "./subfolder/index"; +import * as m18 from "./subfolder2"; +import * as m19 from "./subfolder2/"; +import * as m20 from "./subfolder2/index"; +import * as m21 from "./subfolder2/another"; +import * as m22 from "./subfolder2/another/"; +import * as m23 from "./subfolder2/another/index"; +void m1; +void m2; +void m3; +void m4; +void m5; +void m6; +void m7; +void m8; +void m9; +void m10; +void m11; +void m12; +void m13; +void m14; +void m15; +void m16; +void m17; +void m18; +void m19; +void m20; +void m21; +void m22; +void m23; +// These should _mostly_ work - `import = require` always desugars to require calls, which do have extension and index resolution (but can't load anything that resolves to esm!) +const m24 = __require("./"); +const m25 = __require("./index"); +const m26 = __require("./subfolder"); +const m27 = __require("./subfolder/"); +const m28 = __require("./subfolder/index"); +const m29 = __require("./subfolder2"); +const m30 = __require("./subfolder2/"); +const m31 = __require("./subfolder2/index"); +const m32 = __require("./subfolder2/another"); +const m33 = __require("./subfolder2/another/"); +const m34 = __require("./subfolder2/another/index"); +void m24; +void m25; +void m26; +void m27; +void m28; +void m29; +void m30; +void m31; +void m32; +void m33; +void m34; +// These shouldn't work - dynamic `import()` always uses the esm resolver, which does not have extension resolution +const _m35 = import("./"); +const _m36 = import("./index"); +const _m37 = import("./subfolder"); +const _m38 = import("./subfolder/"); +const _m39 = import("./subfolder/index"); +const _m40 = import("./subfolder2"); +const _m41 = import("./subfolder2/"); +const _m42 = import("./subfolder2/index"); +const _m43 = import("./subfolder2/another"); +const _m44 = import("./subfolder2/another/"); +const _m45 = import("./subfolder2/another/index"); +// esm format file +const x = 1; +export { x }; + + +//// [index.d.ts] +// cjs format file +declare const x = 1; +export { x }; +//// [index.d.cts] +// cjs format file +declare const x = 1; +export { x }; +//// [index.d.mts] +// esm format file +declare const x = 1; +export { x }; +//// [index.d.ts] +// cjs format file +declare const x = 1; +export { x }; +//// [index.d.cts] +// cjs format file +declare const x = 1; +export { x }; +//// [index.d.mts] +// esm format file +declare const x = 1; +export { x }; +//// [index.d.ts] +// esm format file +declare const x = 1; +export { x }; +//// [index.d.cts] +// cjs format file +declare const x = 1; +export { x }; +//// [index.d.mts] +// esm format file +declare const x = 1; +export { x }; +//// [index.d.cts] +// cjs format file +declare const x = 1; +export { x }; +//// [index.d.mts] +// esm format file +declare const x = 1; +export { x }; +//// [index.d.ts] +// esm format file +declare const x = 1; +export { x }; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJs1(module=nodenext).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJs1(module=nodenext).js.diff new file mode 100644 index 0000000000..6022234b81 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJs1(module=nodenext).js.diff @@ -0,0 +1,76 @@ +--- old.nodeModulesAllowJs1(module=nodenext).js ++++ new.nodeModulesAllowJs1(module=nodenext).js +@@= skipped -672, +672 lines =@@ + + + //// [index.d.ts] +-export const x: 1; +-//// [index.d.cts] +-export const x: 1; +-//// [index.d.mts] +-export const x: 1; +-//// [index.d.ts] +-export const x: 1; +-//// [index.d.cts] +-export const x: 1; +-//// [index.d.mts] +-export const x: 1; +-//// [index.d.ts] +-export const x: 1; +-//// [index.d.cts] +-export const x: 1; +-//// [index.d.mts] +-export const x: 1; +-//// [index.d.cts] +-export const x: 1; +-//// [index.d.mts] +-export const x: 1; +-//// [index.d.ts] +-export const x: 1; ++// cjs format file ++declare const x = 1; ++export { x }; ++//// [index.d.cts] ++// cjs format file ++declare const x = 1; ++export { x }; ++//// [index.d.mts] ++// esm format file ++declare const x = 1; ++export { x }; ++//// [index.d.ts] ++// cjs format file ++declare const x = 1; ++export { x }; ++//// [index.d.cts] ++// cjs format file ++declare const x = 1; ++export { x }; ++//// [index.d.mts] ++// esm format file ++declare const x = 1; ++export { x }; ++//// [index.d.ts] ++// esm format file ++declare const x = 1; ++export { x }; ++//// [index.d.cts] ++// cjs format file ++declare const x = 1; ++export { x }; ++//// [index.d.mts] ++// esm format file ++declare const x = 1; ++export { x }; ++//// [index.d.cts] ++// cjs format file ++declare const x = 1; ++export { x }; ++//// [index.d.mts] ++// esm format file ++declare const x = 1; ++export { x }; ++//// [index.d.ts] ++// esm format file ++declare const x = 1; ++export { x }; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsConditionalPackageExports(module=node16).js b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsConditionalPackageExports(module=node16).js new file mode 100644 index 0000000000..89094051db --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsConditionalPackageExports(module=node16).js @@ -0,0 +1,215 @@ +//// [tests/cases/conformance/node/allowJs/nodeModulesAllowJsConditionalPackageExports.ts] //// + +//// [index.js] +// esm format file +import * as cjs from "package/cjs"; +import * as mjs from "package/mjs"; +import * as type from "package"; +cjs; +mjs; +type; +import * as cjsi from "inner/a"; +import * as mjsi from "inner/b"; +import * as typei from "inner"; +import * as ts from "inner/types"; +cjsi.mjsSource; +mjsi.mjsSource; +typei.mjsSource; +ts.mjsSource; +//// [index.mjs] +// esm format file +import * as cjs from "package/cjs"; +import * as mjs from "package/mjs"; +import * as type from "package"; +cjs; +mjs; +type; +import * as cjsi from "inner/a"; +import * as mjsi from "inner/b"; +import * as typei from "inner"; +import * as ts from "inner/types"; +cjsi.mjsSource; +mjsi.mjsSource; +typei.mjsSource; +ts.mjsSource; +//// [index.cjs] +// cjs format file +import * as cjs from "package/cjs"; +import * as mjs from "package/mjs"; +import * as type from "package"; +cjs; +mjs; +type; +import * as cjsi from "inner/a"; +import * as mjsi from "inner/b"; +import * as typei from "inner"; +import * as ts from "inner/types"; +cjsi.cjsSource; +mjsi.cjsSource; +typei.implicitCjsSource; +ts.cjsSource; +//// [index.d.ts] +// cjs format file +import * as cjs from "inner/a"; +import * as mjs from "inner/b"; +import * as type from "inner"; +import * as ts from "inner/types"; +export { cjs }; +export { mjs }; +export { type }; +export { ts }; +export const implicitCjsSource = true; +//// [index.d.mts] +// esm format file +import * as cjs from "inner/a"; +import * as mjs from "inner/b"; +import * as type from "inner"; +import * as ts from "inner/types"; +export { cjs }; +export { mjs }; +export { type }; +export { ts }; +export const mjsSource = true; +//// [index.d.cts] +// cjs format file +import * as cjs from "inner/a"; +import * as mjs from "inner/b"; +import * as type from "inner"; +import * as ts from "inner/types"; +export { cjs }; +export { mjs }; +export { type }; +export { ts }; +export const cjsSource = true; +//// [package.json] +{ + "name": "package", + "private": true, + "type": "module", + "exports": { + "./cjs": "./index.cjs", + "./mjs": "./index.mjs", + ".": "./index.js" + } +} +//// [package.json] +{ + "name": "inner", + "private": true, + "exports": { + "./a": { + "require": "./index.cjs", + "node": "./index.mjs" + }, + "./b": { + "import": "./index.mjs", + "node": "./index.cjs" + }, + ".": { + "import": "./index.mjs", + "node": "./index.js" + }, + "./types": { + "types": { + "import": "./index.d.mts", + "require": "./index.d.cts", + }, + "node": { + "import": "./index.mjs", + "require": "./index.cjs" + } + } + } +} + +//// [index.mjs] +// esm format file +import * as cjs from "package/cjs"; +import * as mjs from "package/mjs"; +import * as type from "package"; +cjs; +mjs; +type; +import * as cjsi from "inner/a"; +import * as mjsi from "inner/b"; +import * as typei from "inner"; +import * as ts from "inner/types"; +cjsi.mjsSource; +mjsi.mjsSource; +typei.mjsSource; +ts.mjsSource; +//// [index.cjs] +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || (function () { + var ownKeys = function(o) { + ownKeys = Object.getOwnPropertyNames || function (o) { + var ar = []; + for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k; + return ar; + }; + return ownKeys(o); + }; + return function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]); + __setModuleDefault(result, mod); + return result; + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +// cjs format file +const cjs = __importStar(require("package/cjs")); +const mjs = __importStar(require("package/mjs")); +const type = __importStar(require("package")); +cjs; +mjs; +type; +const cjsi = __importStar(require("inner/a")); +const mjsi = __importStar(require("inner/b")); +const typei = __importStar(require("inner")); +const ts = __importStar(require("inner/types")); +cjsi.cjsSource; +mjsi.cjsSource; +typei.implicitCjsSource; +ts.cjsSource; +//// [index.js] +// esm format file +import * as cjs from "package/cjs"; +import * as mjs from "package/mjs"; +import * as type from "package"; +cjs; +mjs; +type; +import * as cjsi from "inner/a"; +import * as mjsi from "inner/b"; +import * as typei from "inner"; +import * as ts from "inner/types"; +cjsi.mjsSource; +mjsi.mjsSource; +typei.mjsSource; +ts.mjsSource; + + +//// [index.d.mts] +export {}; +//// [index.d.cts] +export {}; +//// [index.d.ts] +export {}; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsConditionalPackageExports(module=node18).js b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsConditionalPackageExports(module=node18).js new file mode 100644 index 0000000000..0099063304 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsConditionalPackageExports(module=node18).js @@ -0,0 +1,186 @@ +//// [tests/cases/conformance/node/allowJs/nodeModulesAllowJsConditionalPackageExports.ts] //// + +//// [index.js] +// esm format file +import * as cjs from "package/cjs"; +import * as mjs from "package/mjs"; +import * as type from "package"; +cjs; +mjs; +type; +import * as cjsi from "inner/a"; +import * as mjsi from "inner/b"; +import * as typei from "inner"; +import * as ts from "inner/types"; +cjsi.mjsSource; +mjsi.mjsSource; +typei.mjsSource; +ts.mjsSource; +//// [index.mjs] +// esm format file +import * as cjs from "package/cjs"; +import * as mjs from "package/mjs"; +import * as type from "package"; +cjs; +mjs; +type; +import * as cjsi from "inner/a"; +import * as mjsi from "inner/b"; +import * as typei from "inner"; +import * as ts from "inner/types"; +cjsi.mjsSource; +mjsi.mjsSource; +typei.mjsSource; +ts.mjsSource; +//// [index.cjs] +// cjs format file +import * as cjs from "package/cjs"; +import * as mjs from "package/mjs"; +import * as type from "package"; +cjs; +mjs; +type; +import * as cjsi from "inner/a"; +import * as mjsi from "inner/b"; +import * as typei from "inner"; +import * as ts from "inner/types"; +cjsi.cjsSource; +mjsi.cjsSource; +typei.implicitCjsSource; +ts.cjsSource; +//// [index.d.ts] +// cjs format file +import * as cjs from "inner/a"; +import * as mjs from "inner/b"; +import * as type from "inner"; +import * as ts from "inner/types"; +export { cjs }; +export { mjs }; +export { type }; +export { ts }; +export const implicitCjsSource = true; +//// [index.d.mts] +// esm format file +import * as cjs from "inner/a"; +import * as mjs from "inner/b"; +import * as type from "inner"; +import * as ts from "inner/types"; +export { cjs }; +export { mjs }; +export { type }; +export { ts }; +export const mjsSource = true; +//// [index.d.cts] +// cjs format file +import * as cjs from "inner/a"; +import * as mjs from "inner/b"; +import * as type from "inner"; +import * as ts from "inner/types"; +export { cjs }; +export { mjs }; +export { type }; +export { ts }; +export const cjsSource = true; +//// [package.json] +{ + "name": "package", + "private": true, + "type": "module", + "exports": { + "./cjs": "./index.cjs", + "./mjs": "./index.mjs", + ".": "./index.js" + } +} +//// [package.json] +{ + "name": "inner", + "private": true, + "exports": { + "./a": { + "require": "./index.cjs", + "node": "./index.mjs" + }, + "./b": { + "import": "./index.mjs", + "node": "./index.cjs" + }, + ".": { + "import": "./index.mjs", + "node": "./index.js" + }, + "./types": { + "types": { + "import": "./index.d.mts", + "require": "./index.d.cts", + }, + "node": { + "import": "./index.mjs", + "require": "./index.cjs" + } + } + } +} + +//// [index.mjs] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +// esm format file +const cjs = require("package/cjs"); +const mjs = require("package/mjs"); +const type = require("package"); +cjs; +mjs; +type; +const cjsi = require("inner/a"); +const mjsi = require("inner/b"); +const typei = require("inner"); +const ts = require("inner/types"); +cjsi.mjsSource; +mjsi.mjsSource; +typei.mjsSource; +ts.mjsSource; +//// [index.cjs] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +// cjs format file +const cjs = require("package/cjs"); +const mjs = require("package/mjs"); +const type = require("package"); +cjs; +mjs; +type; +const cjsi = require("inner/a"); +const mjsi = require("inner/b"); +const typei = require("inner"); +const ts = require("inner/types"); +cjsi.cjsSource; +mjsi.cjsSource; +typei.implicitCjsSource; +ts.cjsSource; +//// [index.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +// esm format file +const cjs = require("package/cjs"); +const mjs = require("package/mjs"); +const type = require("package"); +cjs; +mjs; +type; +const cjsi = require("inner/a"); +const mjsi = require("inner/b"); +const typei = require("inner"); +const ts = require("inner/types"); +cjsi.mjsSource; +mjsi.mjsSource; +typei.mjsSource; +ts.mjsSource; + + +//// [index.d.mts] +export {}; +//// [index.d.cts] +export {}; +//// [index.d.ts] +export {}; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsConditionalPackageExports(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsConditionalPackageExports(module=node18).js.diff new file mode 100644 index 0000000000..852ec6e844 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsConditionalPackageExports(module=node18).js.diff @@ -0,0 +1,112 @@ +--- old.nodeModulesAllowJsConditionalPackageExports(module=node18).js ++++ new.nodeModulesAllowJsConditionalPackageExports(module=node18).js +@@= skipped -122, +122 lines =@@ + } + + //// [index.mjs] ++"use strict"; ++Object.defineProperty(exports, "__esModule", { value: true }); + // esm format file +-import * as cjs from "package/cjs"; +-import * as mjs from "package/mjs"; +-import * as type from "package"; ++const cjs = require("package/cjs"); ++const mjs = require("package/mjs"); ++const type = require("package"); + cjs; + mjs; + type; +-import * as cjsi from "inner/a"; +-import * as mjsi from "inner/b"; +-import * as typei from "inner"; +-import * as ts from "inner/types"; ++const cjsi = require("inner/a"); ++const mjsi = require("inner/b"); ++const typei = require("inner"); ++const ts = require("inner/types"); + cjsi.mjsSource; + mjsi.mjsSource; + typei.mjsSource; + ts.mjsSource; + //// [index.cjs] + "use strict"; +-var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { +- if (k2 === undefined) k2 = k; +- var desc = Object.getOwnPropertyDescriptor(m, k); +- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { +- desc = { enumerable: true, get: function() { return m[k]; } }; +- } +- Object.defineProperty(o, k2, desc); +-}) : (function(o, m, k, k2) { +- if (k2 === undefined) k2 = k; +- o[k2] = m[k]; +-})); +-var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { +- Object.defineProperty(o, "default", { enumerable: true, value: v }); +-}) : function(o, v) { +- o["default"] = v; +-}); +-var __importStar = (this && this.__importStar) || (function () { +- var ownKeys = function(o) { +- ownKeys = Object.getOwnPropertyNames || function (o) { +- var ar = []; +- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k; +- return ar; +- }; +- return ownKeys(o); +- }; +- return function (mod) { +- if (mod && mod.__esModule) return mod; +- var result = {}; +- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]); +- __setModuleDefault(result, mod); +- return result; +- }; +-})(); + Object.defineProperty(exports, "__esModule", { value: true }); + // cjs format file +-const cjs = __importStar(require("package/cjs")); +-const mjs = __importStar(require("package/mjs")); +-const type = __importStar(require("package")); ++const cjs = require("package/cjs"); ++const mjs = require("package/mjs"); ++const type = require("package"); + cjs; + mjs; + type; +-const cjsi = __importStar(require("inner/a")); +-const mjsi = __importStar(require("inner/b")); +-const typei = __importStar(require("inner")); +-const ts = __importStar(require("inner/types")); ++const cjsi = require("inner/a"); ++const mjsi = require("inner/b"); ++const typei = require("inner"); ++const ts = require("inner/types"); + cjsi.cjsSource; + mjsi.cjsSource; + typei.implicitCjsSource; + ts.cjsSource; + //// [index.js] ++"use strict"; ++Object.defineProperty(exports, "__esModule", { value: true }); + // esm format file +-import * as cjs from "package/cjs"; +-import * as mjs from "package/mjs"; +-import * as type from "package"; ++const cjs = require("package/cjs"); ++const mjs = require("package/mjs"); ++const type = require("package"); + cjs; + mjs; + type; +-import * as cjsi from "inner/a"; +-import * as mjsi from "inner/b"; +-import * as typei from "inner"; +-import * as ts from "inner/types"; ++const cjsi = require("inner/a"); ++const mjsi = require("inner/b"); ++const typei = require("inner"); ++const ts = require("inner/types"); + cjsi.mjsSource; + mjsi.mjsSource; + typei.mjsSource; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsConditionalPackageExports(module=nodenext).js b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsConditionalPackageExports(module=nodenext).js new file mode 100644 index 0000000000..89094051db --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsConditionalPackageExports(module=nodenext).js @@ -0,0 +1,215 @@ +//// [tests/cases/conformance/node/allowJs/nodeModulesAllowJsConditionalPackageExports.ts] //// + +//// [index.js] +// esm format file +import * as cjs from "package/cjs"; +import * as mjs from "package/mjs"; +import * as type from "package"; +cjs; +mjs; +type; +import * as cjsi from "inner/a"; +import * as mjsi from "inner/b"; +import * as typei from "inner"; +import * as ts from "inner/types"; +cjsi.mjsSource; +mjsi.mjsSource; +typei.mjsSource; +ts.mjsSource; +//// [index.mjs] +// esm format file +import * as cjs from "package/cjs"; +import * as mjs from "package/mjs"; +import * as type from "package"; +cjs; +mjs; +type; +import * as cjsi from "inner/a"; +import * as mjsi from "inner/b"; +import * as typei from "inner"; +import * as ts from "inner/types"; +cjsi.mjsSource; +mjsi.mjsSource; +typei.mjsSource; +ts.mjsSource; +//// [index.cjs] +// cjs format file +import * as cjs from "package/cjs"; +import * as mjs from "package/mjs"; +import * as type from "package"; +cjs; +mjs; +type; +import * as cjsi from "inner/a"; +import * as mjsi from "inner/b"; +import * as typei from "inner"; +import * as ts from "inner/types"; +cjsi.cjsSource; +mjsi.cjsSource; +typei.implicitCjsSource; +ts.cjsSource; +//// [index.d.ts] +// cjs format file +import * as cjs from "inner/a"; +import * as mjs from "inner/b"; +import * as type from "inner"; +import * as ts from "inner/types"; +export { cjs }; +export { mjs }; +export { type }; +export { ts }; +export const implicitCjsSource = true; +//// [index.d.mts] +// esm format file +import * as cjs from "inner/a"; +import * as mjs from "inner/b"; +import * as type from "inner"; +import * as ts from "inner/types"; +export { cjs }; +export { mjs }; +export { type }; +export { ts }; +export const mjsSource = true; +//// [index.d.cts] +// cjs format file +import * as cjs from "inner/a"; +import * as mjs from "inner/b"; +import * as type from "inner"; +import * as ts from "inner/types"; +export { cjs }; +export { mjs }; +export { type }; +export { ts }; +export const cjsSource = true; +//// [package.json] +{ + "name": "package", + "private": true, + "type": "module", + "exports": { + "./cjs": "./index.cjs", + "./mjs": "./index.mjs", + ".": "./index.js" + } +} +//// [package.json] +{ + "name": "inner", + "private": true, + "exports": { + "./a": { + "require": "./index.cjs", + "node": "./index.mjs" + }, + "./b": { + "import": "./index.mjs", + "node": "./index.cjs" + }, + ".": { + "import": "./index.mjs", + "node": "./index.js" + }, + "./types": { + "types": { + "import": "./index.d.mts", + "require": "./index.d.cts", + }, + "node": { + "import": "./index.mjs", + "require": "./index.cjs" + } + } + } +} + +//// [index.mjs] +// esm format file +import * as cjs from "package/cjs"; +import * as mjs from "package/mjs"; +import * as type from "package"; +cjs; +mjs; +type; +import * as cjsi from "inner/a"; +import * as mjsi from "inner/b"; +import * as typei from "inner"; +import * as ts from "inner/types"; +cjsi.mjsSource; +mjsi.mjsSource; +typei.mjsSource; +ts.mjsSource; +//// [index.cjs] +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || (function () { + var ownKeys = function(o) { + ownKeys = Object.getOwnPropertyNames || function (o) { + var ar = []; + for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k; + return ar; + }; + return ownKeys(o); + }; + return function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]); + __setModuleDefault(result, mod); + return result; + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +// cjs format file +const cjs = __importStar(require("package/cjs")); +const mjs = __importStar(require("package/mjs")); +const type = __importStar(require("package")); +cjs; +mjs; +type; +const cjsi = __importStar(require("inner/a")); +const mjsi = __importStar(require("inner/b")); +const typei = __importStar(require("inner")); +const ts = __importStar(require("inner/types")); +cjsi.cjsSource; +mjsi.cjsSource; +typei.implicitCjsSource; +ts.cjsSource; +//// [index.js] +// esm format file +import * as cjs from "package/cjs"; +import * as mjs from "package/mjs"; +import * as type from "package"; +cjs; +mjs; +type; +import * as cjsi from "inner/a"; +import * as mjsi from "inner/b"; +import * as typei from "inner"; +import * as ts from "inner/types"; +cjsi.mjsSource; +mjsi.mjsSource; +typei.mjsSource; +ts.mjsSource; + + +//// [index.d.mts] +export {}; +//// [index.d.cts] +export {}; +//// [index.d.ts] +export {}; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsDynamicImport(module=node16).js b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsDynamicImport(module=node16).js new file mode 100644 index 0000000000..59027fbfed --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsDynamicImport(module=node16).js @@ -0,0 +1,46 @@ +//// [tests/cases/conformance/node/allowJs/nodeModulesAllowJsDynamicImport.ts] //// + +//// [index.js] +// cjs format file +export async function main() { + const { readFile } = await import("fs"); +} +//// [index.js] +// esm format file +export async function main() { + const { readFile } = await import("fs"); +} +//// [package.json] +{ + "name": "package", + "private": true, + "type": "module" +} +//// [package.json] +{ + "type": "commonjs" +} +//// [types.d.ts] +declare module "fs"; + +//// [index.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.main = main; +// cjs format file +async function main() { + const { readFile } = await import("fs"); +} +//// [index.js] +// esm format file +export async function main() { + const { readFile } = await import("fs"); +} + + +//// [index.d.ts] +// cjs format file +export declare function main(): Promise; +//// [index.d.ts] +// esm format file +export declare function main(): Promise; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsDynamicImport(module=node16).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsDynamicImport(module=node16).js.diff new file mode 100644 index 0000000000..4cf1cec59b --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsDynamicImport(module=node16).js.diff @@ -0,0 +1,13 @@ +--- old.nodeModulesAllowJsDynamicImport(module=node16).js ++++ new.nodeModulesAllowJsDynamicImport(module=node16).js +@@= skipped -38, +38 lines =@@ + + + //// [index.d.ts] +-export function main(): Promise; ++// cjs format file ++export declare function main(): Promise; + //// [index.d.ts] +-export function main(): Promise; ++// esm format file ++export declare function main(): Promise; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsDynamicImport(module=node18).js b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsDynamicImport(module=node18).js new file mode 100644 index 0000000000..a87bd0d5fa --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsDynamicImport(module=node18).js @@ -0,0 +1,49 @@ +//// [tests/cases/conformance/node/allowJs/nodeModulesAllowJsDynamicImport.ts] //// + +//// [index.js] +// cjs format file +export async function main() { + const { readFile } = await import("fs"); +} +//// [index.js] +// esm format file +export async function main() { + const { readFile } = await import("fs"); +} +//// [package.json] +{ + "name": "package", + "private": true, + "type": "module" +} +//// [package.json] +{ + "type": "commonjs" +} +//// [types.d.ts] +declare module "fs"; + +//// [index.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.main = main; +// cjs format file +async function main() { + const { readFile } = await import("fs"); +} +//// [index.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.main = main; +// esm format file +async function main() { + const { readFile } = await import("fs"); +} + + +//// [index.d.ts] +// cjs format file +export declare function main(): Promise; +//// [index.d.ts] +// esm format file +export declare function main(): Promise; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsDynamicImport(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsDynamicImport(module=node18).js.diff new file mode 100644 index 0000000000..03676d80ce --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsDynamicImport(module=node18).js.diff @@ -0,0 +1,24 @@ +--- old.nodeModulesAllowJsDynamicImport(module=node18).js ++++ new.nodeModulesAllowJsDynamicImport(module=node18).js +@@= skipped -31, +31 lines =@@ + const { readFile } = await import("fs"); + } + //// [index.js] ++"use strict"; ++Object.defineProperty(exports, "__esModule", { value: true }); ++exports.main = main; + // esm format file +-export async function main() { ++async function main() { + const { readFile } = await import("fs"); + } + + + //// [index.d.ts] +-export function main(): Promise; ++// cjs format file ++export declare function main(): Promise; + //// [index.d.ts] +-export function main(): Promise; ++// esm format file ++export declare function main(): Promise; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsDynamicImport(module=nodenext).js b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsDynamicImport(module=nodenext).js new file mode 100644 index 0000000000..59027fbfed --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsDynamicImport(module=nodenext).js @@ -0,0 +1,46 @@ +//// [tests/cases/conformance/node/allowJs/nodeModulesAllowJsDynamicImport.ts] //// + +//// [index.js] +// cjs format file +export async function main() { + const { readFile } = await import("fs"); +} +//// [index.js] +// esm format file +export async function main() { + const { readFile } = await import("fs"); +} +//// [package.json] +{ + "name": "package", + "private": true, + "type": "module" +} +//// [package.json] +{ + "type": "commonjs" +} +//// [types.d.ts] +declare module "fs"; + +//// [index.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.main = main; +// cjs format file +async function main() { + const { readFile } = await import("fs"); +} +//// [index.js] +// esm format file +export async function main() { + const { readFile } = await import("fs"); +} + + +//// [index.d.ts] +// cjs format file +export declare function main(): Promise; +//// [index.d.ts] +// esm format file +export declare function main(): Promise; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsDynamicImport(module=nodenext).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsDynamicImport(module=nodenext).js.diff new file mode 100644 index 0000000000..0833f73a55 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsDynamicImport(module=nodenext).js.diff @@ -0,0 +1,13 @@ +--- old.nodeModulesAllowJsDynamicImport(module=nodenext).js ++++ new.nodeModulesAllowJsDynamicImport(module=nodenext).js +@@= skipped -38, +38 lines =@@ + + + //// [index.d.ts] +-export function main(): Promise; ++// cjs format file ++export declare function main(): Promise; + //// [index.d.ts] +-export function main(): Promise; ++// esm format file ++export declare function main(): Promise; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsExportAssignment(module=node16).js b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsExportAssignment(module=node16).js new file mode 100644 index 0000000000..a624f440af --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsExportAssignment(module=node16).js @@ -0,0 +1,68 @@ +//// [tests/cases/conformance/node/allowJs/nodeModulesAllowJsExportAssignment.ts] //// + +//// [index.js] +// cjs format file +const a = {}; +export = a; +//// [file.js] +// cjs format file +const a = {}; +module.exports = a; +//// [index.js] +// esm format file +const a = {}; +export = a; +//// [file.js] +// esm format file +import "fs"; +const a = {}; +module.exports = a; +//// [package.json] +{ + "name": "package", + "private": true, + "type": "module" +} +//// [package.json] +{ + "type": "commonjs" +} + +//// [index.js] +"use strict"; +// cjs format file +const a = {}; +module.exports = a; +//// [file.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +// cjs format file +const a = {}; +export = a; +module.exports = a; +//// [index.js] +// esm format file +const a = {}; +export {}; +//// [file.js] +// esm format file +import "fs"; +const a = {}; +export = a; +module.exports = a; + + +//// [index.d.ts] +// cjs format file +declare const a: {}; +export = a; +//// [file.d.ts] +export = a; +//// [index.d.ts] +// esm format file +declare const a: {}; +export = a; +//// [file.d.ts] +// esm format file +import "fs"; +export = a; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsExportAssignment(module=node16).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsExportAssignment(module=node16).js.diff new file mode 100644 index 0000000000..cca093433d --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsExportAssignment(module=node16).js.diff @@ -0,0 +1,39 @@ +--- old.nodeModulesAllowJsExportAssignment(module=node16).js ++++ new.nodeModulesAllowJsExportAssignment(module=node16).js +@@= skipped -34, +34 lines =@@ + module.exports = a; + //// [file.js] + "use strict"; ++Object.defineProperty(exports, "__esModule", { value: true }); + // cjs format file + const a = {}; ++export = a; + module.exports = a; + //// [index.js] + // esm format file +@@= skipped -11, +13 lines =@@ + // esm format file + import "fs"; + const a = {}; ++export = a; + module.exports = a; + + + //// [index.d.ts] +-export = a; ++// cjs format file + declare const a: {}; ++export = a; + //// [file.d.ts] + export = a; +-declare const a: {}; + //// [index.d.ts] +-export = a; ++// esm format file + declare const a: {}; ++export = a; + //// [file.d.ts] +-export {}; ++// esm format file ++import "fs"; ++export = a; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsExportAssignment(module=node18).js b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsExportAssignment(module=node18).js new file mode 100644 index 0000000000..ce4449e488 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsExportAssignment(module=node18).js @@ -0,0 +1,69 @@ +//// [tests/cases/conformance/node/allowJs/nodeModulesAllowJsExportAssignment.ts] //// + +//// [index.js] +// cjs format file +const a = {}; +export = a; +//// [file.js] +// cjs format file +const a = {}; +module.exports = a; +//// [index.js] +// esm format file +const a = {}; +export = a; +//// [file.js] +// esm format file +import "fs"; +const a = {}; +module.exports = a; +//// [package.json] +{ + "name": "package", + "private": true, + "type": "module" +} +//// [package.json] +{ + "type": "commonjs" +} + +//// [index.js] +"use strict"; +// cjs format file +const a = {}; +module.exports = a; +//// [file.js] +// cjs format file +const a = {}; +export = a; +module.exports = a; +//// [index.js] +"use strict"; +// esm format file +const a = {}; +module.exports = a; +//// [file.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +// esm format file +require("fs"); +const a = {}; +export = a; +module.exports = a; + + +//// [index.d.ts] +// cjs format file +declare const a: {}; +export = a; +//// [file.d.ts] +export = a; +//// [index.d.ts] +// esm format file +declare const a: {}; +export = a; +//// [file.d.ts] +// esm format file +import "fs"; +export = a; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsExportAssignment(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsExportAssignment(module=node18).js.diff new file mode 100644 index 0000000000..0572935149 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsExportAssignment(module=node18).js.diff @@ -0,0 +1,56 @@ +--- old.nodeModulesAllowJsExportAssignment(module=node18).js ++++ new.nodeModulesAllowJsExportAssignment(module=node18).js +@@= skipped -33, +33 lines =@@ + const a = {}; + module.exports = a; + //// [file.js] +-"use strict"; + // cjs format file + const a = {}; ++export = a; + module.exports = a; + //// [index.js] ++"use strict"; + // esm format file + const a = {}; +-export {}; ++module.exports = a; + //// [file.js] ++"use strict"; ++Object.defineProperty(exports, "__esModule", { value: true }); ++// esm format file ++require("fs"); ++const a = {}; ++export = a; ++module.exports = a; ++ ++ ++//// [index.d.ts] ++// cjs format file ++declare const a: {}; ++export = a; ++//// [file.d.ts] ++export = a; ++//// [index.d.ts] ++// esm format file ++declare const a: {}; ++export = a; ++//// [file.d.ts] + // esm format file + import "fs"; +-const a = {}; +-module.exports = a; +- +- +-//// [index.d.ts] +-export = a; +-declare const a: {}; +-//// [file.d.ts] +-export = a; +-declare const a: {}; +-//// [index.d.ts] +-export = a; +-declare const a: {}; +-//// [file.d.ts] +-export {}; ++export = a; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsExportAssignment(module=nodenext).js b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsExportAssignment(module=nodenext).js new file mode 100644 index 0000000000..a624f440af --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsExportAssignment(module=nodenext).js @@ -0,0 +1,68 @@ +//// [tests/cases/conformance/node/allowJs/nodeModulesAllowJsExportAssignment.ts] //// + +//// [index.js] +// cjs format file +const a = {}; +export = a; +//// [file.js] +// cjs format file +const a = {}; +module.exports = a; +//// [index.js] +// esm format file +const a = {}; +export = a; +//// [file.js] +// esm format file +import "fs"; +const a = {}; +module.exports = a; +//// [package.json] +{ + "name": "package", + "private": true, + "type": "module" +} +//// [package.json] +{ + "type": "commonjs" +} + +//// [index.js] +"use strict"; +// cjs format file +const a = {}; +module.exports = a; +//// [file.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +// cjs format file +const a = {}; +export = a; +module.exports = a; +//// [index.js] +// esm format file +const a = {}; +export {}; +//// [file.js] +// esm format file +import "fs"; +const a = {}; +export = a; +module.exports = a; + + +//// [index.d.ts] +// cjs format file +declare const a: {}; +export = a; +//// [file.d.ts] +export = a; +//// [index.d.ts] +// esm format file +declare const a: {}; +export = a; +//// [file.d.ts] +// esm format file +import "fs"; +export = a; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsExportAssignment(module=nodenext).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsExportAssignment(module=nodenext).js.diff new file mode 100644 index 0000000000..d5a87b21a9 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsExportAssignment(module=nodenext).js.diff @@ -0,0 +1,39 @@ +--- old.nodeModulesAllowJsExportAssignment(module=nodenext).js ++++ new.nodeModulesAllowJsExportAssignment(module=nodenext).js +@@= skipped -34, +34 lines =@@ + module.exports = a; + //// [file.js] + "use strict"; ++Object.defineProperty(exports, "__esModule", { value: true }); + // cjs format file + const a = {}; ++export = a; + module.exports = a; + //// [index.js] + // esm format file +@@= skipped -11, +13 lines =@@ + // esm format file + import "fs"; + const a = {}; ++export = a; + module.exports = a; + + + //// [index.d.ts] +-export = a; ++// cjs format file + declare const a: {}; ++export = a; + //// [file.d.ts] + export = a; +-declare const a: {}; + //// [index.d.ts] +-export = a; ++// esm format file + declare const a: {}; ++export = a; + //// [file.d.ts] +-export {}; ++// esm format file ++import "fs"; ++export = a; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsExportlessJsModuleDetectionAuto(module=node16).js b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsExportlessJsModuleDetectionAuto(module=node16).js new file mode 100644 index 0000000000..e3ca6368e7 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsExportlessJsModuleDetectionAuto(module=node16).js @@ -0,0 +1,13 @@ +//// [tests/cases/conformance/node/allowJs/nodeModulesAllowJsExportlessJsModuleDetectionAuto.ts] //// + +//// [foo.cjs] +// this file is a module despite having no imports +//// [bar.js] +// however this file is _not_ a module + +//// [foo.cjs] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +// this file is a module despite having no imports +//// [bar.js] +// however this file is _not_ a module diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsExportlessJsModuleDetectionAuto(module=node18).js b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsExportlessJsModuleDetectionAuto(module=node18).js new file mode 100644 index 0000000000..e3ca6368e7 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsExportlessJsModuleDetectionAuto(module=node18).js @@ -0,0 +1,13 @@ +//// [tests/cases/conformance/node/allowJs/nodeModulesAllowJsExportlessJsModuleDetectionAuto.ts] //// + +//// [foo.cjs] +// this file is a module despite having no imports +//// [bar.js] +// however this file is _not_ a module + +//// [foo.cjs] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +// this file is a module despite having no imports +//// [bar.js] +// however this file is _not_ a module diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsExportlessJsModuleDetectionAuto(module=nodenext).js b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsExportlessJsModuleDetectionAuto(module=nodenext).js new file mode 100644 index 0000000000..e3ca6368e7 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsExportlessJsModuleDetectionAuto(module=nodenext).js @@ -0,0 +1,13 @@ +//// [tests/cases/conformance/node/allowJs/nodeModulesAllowJsExportlessJsModuleDetectionAuto.ts] //// + +//// [foo.cjs] +// this file is a module despite having no imports +//// [bar.js] +// however this file is _not_ a module + +//// [foo.cjs] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +// this file is a module despite having no imports +//// [bar.js] +// however this file is _not_ a module diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsGeneratedNameCollisions(module=node16).js b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsGeneratedNameCollisions(module=node16).js new file mode 100644 index 0000000000..847c8e47c2 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsGeneratedNameCollisions(module=node16).js @@ -0,0 +1,66 @@ +//// [tests/cases/conformance/node/allowJs/nodeModulesAllowJsGeneratedNameCollisions.ts] //// + +//// [index.js] +// cjs format file +function require() {} +const exports = {}; +class Object {} +export const __esModule = false; +export {require, exports, Object}; +//// [index.js] +// esm format file +function require() {} +const exports = {}; +class Object {} +export const __esModule = false; +export {require, exports, Object}; +//// [package.json] +{ + "name": "package", + "private": true, + "type": "module" +} +//// [package.json] +{ + "type": "commonjs" +} + +//// [index.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Object = exports.exports = exports.__esModule = void 0; +exports.require = require; +// cjs format file +function require() { } +const exports = {}; +exports.exports = exports; +class Object { +} +exports.Object = Object; +exports.__esModule = false; +//// [index.js] +// esm format file +function require() { } +const exports = {}; +class Object { +} +export const __esModule = false; +export { require, exports, Object }; + + +//// [index.d.ts] +// cjs format file +declare function require(): void; +declare const exports: {}; +declare class Object { +} +export declare const __esModule = false; +export { require, exports, Object }; +//// [index.d.ts] +// esm format file +declare function require(): void; +declare const exports: {}; +declare class Object { +} +export declare const __esModule = false; +export { require, exports, Object }; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsGeneratedNameCollisions(module=node16).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsGeneratedNameCollisions(module=node16).js.diff new file mode 100644 index 0000000000..c57c88e9ff --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsGeneratedNameCollisions(module=node16).js.diff @@ -0,0 +1,29 @@ +--- old.nodeModulesAllowJsGeneratedNameCollisions(module=node16).js ++++ new.nodeModulesAllowJsGeneratedNameCollisions(module=node16).js +@@= skipped -48, +48 lines =@@ + + + //// [index.d.ts] +-export const __esModule: false; +-export function require(): void; +-export const exports: {}; +-export class Object { ++// cjs format file ++declare function require(): void; ++declare const exports: {}; ++declare class Object { + } ++export declare const __esModule = false; ++export { require, exports, Object }; + //// [index.d.ts] +-export const __esModule: false; +-export function require(): void; +-export const exports: {}; +-export class Object { ++// esm format file ++declare function require(): void; ++declare const exports: {}; ++declare class Object { + } ++export declare const __esModule = false; ++export { require, exports, Object }; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsGeneratedNameCollisions(module=node18).js b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsGeneratedNameCollisions(module=node18).js new file mode 100644 index 0000000000..a5606935ec --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsGeneratedNameCollisions(module=node18).js @@ -0,0 +1,71 @@ +//// [tests/cases/conformance/node/allowJs/nodeModulesAllowJsGeneratedNameCollisions.ts] //// + +//// [index.js] +// cjs format file +function require() {} +const exports = {}; +class Object {} +export const __esModule = false; +export {require, exports, Object}; +//// [index.js] +// esm format file +function require() {} +const exports = {}; +class Object {} +export const __esModule = false; +export {require, exports, Object}; +//// [package.json] +{ + "name": "package", + "private": true, + "type": "module" +} +//// [package.json] +{ + "type": "commonjs" +} + +//// [index.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Object = exports.exports = exports.__esModule = void 0; +exports.require = require; +// cjs format file +function require() { } +const exports = {}; +exports.exports = exports; +class Object { +} +exports.Object = Object; +exports.__esModule = false; +//// [index.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Object = exports.exports = exports.__esModule = void 0; +exports.require = require; +// esm format file +function require() { } +const exports = {}; +exports.exports = exports; +class Object { +} +exports.Object = Object; +exports.__esModule = false; + + +//// [index.d.ts] +// cjs format file +declare function require(): void; +declare const exports: {}; +declare class Object { +} +export declare const __esModule = false; +export { require, exports, Object }; +//// [index.d.ts] +// esm format file +declare function require(): void; +declare const exports: {}; +declare class Object { +} +export declare const __esModule = false; +export { require, exports, Object }; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsGeneratedNameCollisions(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsGeneratedNameCollisions(module=node18).js.diff new file mode 100644 index 0000000000..8f901e92de --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsGeneratedNameCollisions(module=node18).js.diff @@ -0,0 +1,52 @@ +--- old.nodeModulesAllowJsGeneratedNameCollisions(module=node18).js ++++ new.nodeModulesAllowJsGeneratedNameCollisions(module=node18).js +@@= skipped -38, +38 lines =@@ + exports.Object = Object; + exports.__esModule = false; + //// [index.js] ++"use strict"; ++Object.defineProperty(exports, "__esModule", { value: true }); ++exports.Object = exports.exports = exports.__esModule = void 0; ++exports.require = require; + // esm format file + function require() { } + const exports = {}; ++exports.exports = exports; + class Object { + } +-export const __esModule = false; +-export { require, exports, Object }; +- +- +-//// [index.d.ts] +-export const __esModule: false; +-export function require(): void; +-export const exports: {}; +-export class Object { +-} +-//// [index.d.ts] +-export const __esModule: false; +-export function require(): void; +-export const exports: {}; +-export class Object { +-} ++exports.Object = Object; ++exports.__esModule = false; ++ ++ ++//// [index.d.ts] ++// cjs format file ++declare function require(): void; ++declare const exports: {}; ++declare class Object { ++} ++export declare const __esModule = false; ++export { require, exports, Object }; ++//// [index.d.ts] ++// esm format file ++declare function require(): void; ++declare const exports: {}; ++declare class Object { ++} ++export declare const __esModule = false; ++export { require, exports, Object }; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsGeneratedNameCollisions(module=nodenext).js b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsGeneratedNameCollisions(module=nodenext).js new file mode 100644 index 0000000000..847c8e47c2 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsGeneratedNameCollisions(module=nodenext).js @@ -0,0 +1,66 @@ +//// [tests/cases/conformance/node/allowJs/nodeModulesAllowJsGeneratedNameCollisions.ts] //// + +//// [index.js] +// cjs format file +function require() {} +const exports = {}; +class Object {} +export const __esModule = false; +export {require, exports, Object}; +//// [index.js] +// esm format file +function require() {} +const exports = {}; +class Object {} +export const __esModule = false; +export {require, exports, Object}; +//// [package.json] +{ + "name": "package", + "private": true, + "type": "module" +} +//// [package.json] +{ + "type": "commonjs" +} + +//// [index.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Object = exports.exports = exports.__esModule = void 0; +exports.require = require; +// cjs format file +function require() { } +const exports = {}; +exports.exports = exports; +class Object { +} +exports.Object = Object; +exports.__esModule = false; +//// [index.js] +// esm format file +function require() { } +const exports = {}; +class Object { +} +export const __esModule = false; +export { require, exports, Object }; + + +//// [index.d.ts] +// cjs format file +declare function require(): void; +declare const exports: {}; +declare class Object { +} +export declare const __esModule = false; +export { require, exports, Object }; +//// [index.d.ts] +// esm format file +declare function require(): void; +declare const exports: {}; +declare class Object { +} +export declare const __esModule = false; +export { require, exports, Object }; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsGeneratedNameCollisions(module=nodenext).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsGeneratedNameCollisions(module=nodenext).js.diff new file mode 100644 index 0000000000..d644e1712a --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsGeneratedNameCollisions(module=nodenext).js.diff @@ -0,0 +1,29 @@ +--- old.nodeModulesAllowJsGeneratedNameCollisions(module=nodenext).js ++++ new.nodeModulesAllowJsGeneratedNameCollisions(module=nodenext).js +@@= skipped -48, +48 lines =@@ + + + //// [index.d.ts] +-export const __esModule: false; +-export function require(): void; +-export const exports: {}; +-export class Object { ++// cjs format file ++declare function require(): void; ++declare const exports: {}; ++declare class Object { + } ++export declare const __esModule = false; ++export { require, exports, Object }; + //// [index.d.ts] +-export const __esModule: false; +-export function require(): void; +-export const exports: {}; +-export class Object { ++// esm format file ++declare function require(): void; ++declare const exports: {}; ++declare class Object { + } ++export declare const __esModule = false; ++export { require, exports, Object }; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportAssignment(module=node16).js b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportAssignment(module=node16).js new file mode 100644 index 0000000000..80990ff3ca --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportAssignment(module=node16).js @@ -0,0 +1,65 @@ +//// [tests/cases/conformance/node/allowJs/nodeModulesAllowJsImportAssignment.ts] //// + +//// [index.js] +// cjs format file +import fs = require("fs"); +fs.readFile; +export import fs2 = require("fs"); +//// [index.js] +// esm format file +import fs = require("fs"); +fs.readFile; +export import fs2 = require("fs"); +//// [file.js] +// esm format file +const __require = null; +const _createRequire = null; +import fs = require("fs"); +fs.readFile; +export import fs2 = require("fs"); +//// [package.json] +{ + "name": "package", + "private": true, + "type": "module" +} +//// [package.json] +{ + "type": "commonjs" +} +//// [types.d.ts] +declare module "fs"; + +//// [index.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +// cjs format file +const fs = require("fs"); +fs.readFile; +exports.fs2 = require("fs"); +//// [index.js] +import { createRequire as _createRequire } from "module"; +const __require = _createRequire(import.meta.url); +// esm format file +const fs = __require("fs"); +fs.readFile; +const fs2 = __require("fs"); +export { fs2 }; +//// [file.js] +import { createRequire as _createRequire_1 } from "module"; +const __require_1 = _createRequire_1(import.meta.url); +// esm format file +const __require = null; +const _createRequire = null; +const fs = __require_1("fs"); +fs.readFile; +const fs2 = __require_1("fs"); +export { fs2 }; + + +//// [index.d.ts] +export import fs2 = require("fs"); +//// [index.d.ts] +export import fs2 = require("fs"); +//// [file.d.ts] +export import fs2 = require("fs"); diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportAssignment(module=node16).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportAssignment(module=node16).js.diff new file mode 100644 index 0000000000..9029dfb7a1 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportAssignment(module=node16).js.diff @@ -0,0 +1,14 @@ +--- old.nodeModulesAllowJsImportAssignment(module=node16).js ++++ new.nodeModulesAllowJsImportAssignment(module=node16).js +@@= skipped -57, +57 lines =@@ + + + //// [index.d.ts] +-import fs2 = require("fs"); ++export import fs2 = require("fs"); + //// [index.d.ts] +-import fs2 = require("fs"); ++export import fs2 = require("fs"); + //// [file.d.ts] +-import fs2 = require("fs"); ++export import fs2 = require("fs"); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportAssignment(module=node18).js b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportAssignment(module=node18).js new file mode 100644 index 0000000000..2cef9a1e63 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportAssignment(module=node18).js @@ -0,0 +1,63 @@ +//// [tests/cases/conformance/node/allowJs/nodeModulesAllowJsImportAssignment.ts] //// + +//// [index.js] +// cjs format file +import fs = require("fs"); +fs.readFile; +export import fs2 = require("fs"); +//// [index.js] +// esm format file +import fs = require("fs"); +fs.readFile; +export import fs2 = require("fs"); +//// [file.js] +// esm format file +const __require = null; +const _createRequire = null; +import fs = require("fs"); +fs.readFile; +export import fs2 = require("fs"); +//// [package.json] +{ + "name": "package", + "private": true, + "type": "module" +} +//// [package.json] +{ + "type": "commonjs" +} +//// [types.d.ts] +declare module "fs"; + +//// [index.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +// cjs format file +const fs = require("fs"); +fs.readFile; +exports.fs2 = require("fs"); +//// [index.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +// esm format file +const fs = require("fs"); +fs.readFile; +exports.fs2 = require("fs"); +//// [file.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +// esm format file +const __require = null; +const _createRequire = null; +const fs = require("fs"); +fs.readFile; +exports.fs2 = require("fs"); + + +//// [index.d.ts] +export import fs2 = require("fs"); +//// [index.d.ts] +export import fs2 = require("fs"); +//// [file.d.ts] +export import fs2 = require("fs"); diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportAssignment(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportAssignment(module=node18).js.diff new file mode 100644 index 0000000000..a9d8b18538 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportAssignment(module=node18).js.diff @@ -0,0 +1,46 @@ +--- old.nodeModulesAllowJsImportAssignment(module=node18).js ++++ new.nodeModulesAllowJsImportAssignment(module=node18).js +@@= skipped -37, +37 lines =@@ + fs.readFile; + exports.fs2 = require("fs"); + //// [index.js] +-import { createRequire as _createRequire } from "module"; +-const __require = _createRequire(import.meta.url); ++"use strict"; ++Object.defineProperty(exports, "__esModule", { value: true }); + // esm format file +-const fs = __require("fs"); ++const fs = require("fs"); + fs.readFile; +-const fs2 = __require("fs"); +-export { fs2 }; ++exports.fs2 = require("fs"); + //// [file.js] +-import { createRequire as _createRequire_1 } from "module"; +-const __require_1 = _createRequire_1(import.meta.url); ++"use strict"; ++Object.defineProperty(exports, "__esModule", { value: true }); + // esm format file + const __require = null; + const _createRequire = null; +-const fs = __require_1("fs"); ++const fs = require("fs"); + fs.readFile; +-const fs2 = __require_1("fs"); +-export { fs2 }; +- +- +-//// [index.d.ts] +-import fs2 = require("fs"); +-//// [index.d.ts] +-import fs2 = require("fs"); ++exports.fs2 = require("fs"); ++ ++ ++//// [index.d.ts] ++export import fs2 = require("fs"); ++//// [index.d.ts] ++export import fs2 = require("fs"); + //// [file.d.ts] +-import fs2 = require("fs"); ++export import fs2 = require("fs"); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportAssignment(module=nodenext).js b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportAssignment(module=nodenext).js new file mode 100644 index 0000000000..80990ff3ca --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportAssignment(module=nodenext).js @@ -0,0 +1,65 @@ +//// [tests/cases/conformance/node/allowJs/nodeModulesAllowJsImportAssignment.ts] //// + +//// [index.js] +// cjs format file +import fs = require("fs"); +fs.readFile; +export import fs2 = require("fs"); +//// [index.js] +// esm format file +import fs = require("fs"); +fs.readFile; +export import fs2 = require("fs"); +//// [file.js] +// esm format file +const __require = null; +const _createRequire = null; +import fs = require("fs"); +fs.readFile; +export import fs2 = require("fs"); +//// [package.json] +{ + "name": "package", + "private": true, + "type": "module" +} +//// [package.json] +{ + "type": "commonjs" +} +//// [types.d.ts] +declare module "fs"; + +//// [index.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +// cjs format file +const fs = require("fs"); +fs.readFile; +exports.fs2 = require("fs"); +//// [index.js] +import { createRequire as _createRequire } from "module"; +const __require = _createRequire(import.meta.url); +// esm format file +const fs = __require("fs"); +fs.readFile; +const fs2 = __require("fs"); +export { fs2 }; +//// [file.js] +import { createRequire as _createRequire_1 } from "module"; +const __require_1 = _createRequire_1(import.meta.url); +// esm format file +const __require = null; +const _createRequire = null; +const fs = __require_1("fs"); +fs.readFile; +const fs2 = __require_1("fs"); +export { fs2 }; + + +//// [index.d.ts] +export import fs2 = require("fs"); +//// [index.d.ts] +export import fs2 = require("fs"); +//// [file.d.ts] +export import fs2 = require("fs"); diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportAssignment(module=nodenext).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportAssignment(module=nodenext).js.diff new file mode 100644 index 0000000000..f1cf9a5e83 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportAssignment(module=nodenext).js.diff @@ -0,0 +1,14 @@ +--- old.nodeModulesAllowJsImportAssignment(module=nodenext).js ++++ new.nodeModulesAllowJsImportAssignment(module=nodenext).js +@@= skipped -57, +57 lines =@@ + + + //// [index.d.ts] +-import fs2 = require("fs"); ++export import fs2 = require("fs"); + //// [index.d.ts] +-import fs2 = require("fs"); ++export import fs2 = require("fs"); + //// [file.d.ts] +-import fs2 = require("fs"); ++export import fs2 = require("fs"); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportHelpersCollisions1(module=node16).js b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportHelpersCollisions1(module=node16).js new file mode 100644 index 0000000000..a30d220227 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportHelpersCollisions1(module=node16).js @@ -0,0 +1,52 @@ +//// [tests/cases/conformance/node/allowJs/nodeModulesAllowJsImportHelpersCollisions1.ts] //// + +//// [index.js] +// cjs format file +import {default as _fs} from "fs"; +_fs.readFile; +import * as fs from "fs"; +fs.readFile; +//// [index.js] +// esm format file +import {default as _fs} from "fs"; +_fs.readFile; +import * as fs from "fs"; +fs.readFile; +//// [package.json] +{ + "name": "package", + "private": true, + "type": "module" +} +//// [package.json] +{ + "type": "commonjs" +} +//// [types.d.ts] +declare module "fs"; +declare module "tslib" { + export {}; + // intentionally missing all helpers +} + +//// [index.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const tslib_1 = require("tslib"); +// cjs format file +const fs_1 = tslib_1.__importDefault(require("fs")); +fs_1.default.readFile; +const fs = tslib_1.__importStar(require("fs")); +fs.readFile; +//// [index.js] +// esm format file +import { default as _fs } from "fs"; +_fs.readFile; +import * as fs from "fs"; +fs.readFile; + + +//// [index.d.ts] +export {}; +//// [index.d.ts] +export {}; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportHelpersCollisions1(module=node18).js b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportHelpersCollisions1(module=node18).js new file mode 100644 index 0000000000..1210148c3a --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportHelpersCollisions1(module=node18).js @@ -0,0 +1,53 @@ +//// [tests/cases/conformance/node/allowJs/nodeModulesAllowJsImportHelpersCollisions1.ts] //// + +//// [index.js] +// cjs format file +import {default as _fs} from "fs"; +_fs.readFile; +import * as fs from "fs"; +fs.readFile; +//// [index.js] +// esm format file +import {default as _fs} from "fs"; +_fs.readFile; +import * as fs from "fs"; +fs.readFile; +//// [package.json] +{ + "name": "package", + "private": true, + "type": "module" +} +//// [package.json] +{ + "type": "commonjs" +} +//// [types.d.ts] +declare module "fs"; +declare module "tslib" { + export {}; + // intentionally missing all helpers +} + +//// [index.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +// cjs format file +const fs_1 = require("fs"); +fs_1.default.readFile; +const fs = require("fs"); +fs.readFile; +//// [index.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +// esm format file +const fs_1 = require("fs"); +fs_1.default.readFile; +const fs = require("fs"); +fs.readFile; + + +//// [index.d.ts] +export {}; +//// [index.d.ts] +export {}; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportHelpersCollisions1(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportHelpersCollisions1(module=node18).js.diff new file mode 100644 index 0000000000..b1557f6472 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportHelpersCollisions1(module=node18).js.diff @@ -0,0 +1,26 @@ +--- old.nodeModulesAllowJsImportHelpersCollisions1(module=node18).js ++++ new.nodeModulesAllowJsImportHelpersCollisions1(module=node18).js +@@= skipped -31, +31 lines =@@ + //// [index.js] + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); +-const tslib_1 = require("tslib"); + // cjs format file +-const fs_1 = tslib_1.__importDefault(require("fs")); ++const fs_1 = require("fs"); + fs_1.default.readFile; +-const fs = tslib_1.__importStar(require("fs")); ++const fs = require("fs"); + fs.readFile; + //// [index.js] ++"use strict"; ++Object.defineProperty(exports, "__esModule", { value: true }); + // esm format file +-import { default as _fs } from "fs"; +-_fs.readFile; +-import * as fs from "fs"; ++const fs_1 = require("fs"); ++fs_1.default.readFile; ++const fs = require("fs"); + fs.readFile; + diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportHelpersCollisions1(module=nodenext).js b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportHelpersCollisions1(module=nodenext).js new file mode 100644 index 0000000000..a30d220227 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportHelpersCollisions1(module=nodenext).js @@ -0,0 +1,52 @@ +//// [tests/cases/conformance/node/allowJs/nodeModulesAllowJsImportHelpersCollisions1.ts] //// + +//// [index.js] +// cjs format file +import {default as _fs} from "fs"; +_fs.readFile; +import * as fs from "fs"; +fs.readFile; +//// [index.js] +// esm format file +import {default as _fs} from "fs"; +_fs.readFile; +import * as fs from "fs"; +fs.readFile; +//// [package.json] +{ + "name": "package", + "private": true, + "type": "module" +} +//// [package.json] +{ + "type": "commonjs" +} +//// [types.d.ts] +declare module "fs"; +declare module "tslib" { + export {}; + // intentionally missing all helpers +} + +//// [index.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const tslib_1 = require("tslib"); +// cjs format file +const fs_1 = tslib_1.__importDefault(require("fs")); +fs_1.default.readFile; +const fs = tslib_1.__importStar(require("fs")); +fs.readFile; +//// [index.js] +// esm format file +import { default as _fs } from "fs"; +_fs.readFile; +import * as fs from "fs"; +fs.readFile; + + +//// [index.d.ts] +export {}; +//// [index.d.ts] +export {}; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportHelpersCollisions2(module=node16).js b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportHelpersCollisions2(module=node16).js new file mode 100644 index 0000000000..2cfc0e98c6 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportHelpersCollisions2(module=node16).js @@ -0,0 +1,49 @@ +//// [tests/cases/conformance/node/allowJs/nodeModulesAllowJsImportHelpersCollisions2.ts] //// + +//// [index.ts] +// cjs format file +export * from "fs"; +export * as fs from "fs"; +//// [index.js] +// esm format file +export * from "fs"; +export * as fs from "fs"; +//// [package.json] +{ + "name": "package", + "private": true, + "type": "module" +} +//// [package.json] +{ + "type": "commonjs" +} +//// [types.d.ts] +declare module "fs"; +declare module "tslib" { + export {}; + // intentionally missing all helpers +} + +//// [index.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.fs = void 0; +const tslib_1 = require("tslib"); +// cjs format file +tslib_1.__exportStar(require("fs"), exports); +exports.fs = tslib_1.__importStar(require("fs")); +//// [index.js] +// esm format file +export * from "fs"; +export * as fs from "fs"; + + +//// [index.d.ts] +// cjs format file +export * from "fs"; +export * as fs from "fs"; +//// [index.d.ts] +// esm format file +export * from "fs"; +export * as fs from "fs"; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportHelpersCollisions2(module=node16).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportHelpersCollisions2(module=node16).js.diff new file mode 100644 index 0000000000..b0d37b2a38 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportHelpersCollisions2(module=node16).js.diff @@ -0,0 +1,13 @@ +--- old.nodeModulesAllowJsImportHelpersCollisions2(module=node16).js ++++ new.nodeModulesAllowJsImportHelpersCollisions2(module=node16).js +@@= skipped -39, +39 lines =@@ + + + //// [index.d.ts] ++// cjs format file + export * from "fs"; + export * as fs from "fs"; + //// [index.d.ts] ++// esm format file + export * from "fs"; + export * as fs from "fs"; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportHelpersCollisions2(module=node18).js b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportHelpersCollisions2(module=node18).js new file mode 100644 index 0000000000..30071155df --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportHelpersCollisions2(module=node18).js @@ -0,0 +1,53 @@ +//// [tests/cases/conformance/node/allowJs/nodeModulesAllowJsImportHelpersCollisions2.ts] //// + +//// [index.ts] +// cjs format file +export * from "fs"; +export * as fs from "fs"; +//// [index.js] +// esm format file +export * from "fs"; +export * as fs from "fs"; +//// [package.json] +{ + "name": "package", + "private": true, + "type": "module" +} +//// [package.json] +{ + "type": "commonjs" +} +//// [types.d.ts] +declare module "fs"; +declare module "tslib" { + export {}; + // intentionally missing all helpers +} + +//// [index.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.fs = void 0; +const tslib_1 = require("tslib"); +// cjs format file +tslib_1.__exportStar(require("fs"), exports); +exports.fs = require("fs"); +//// [index.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.fs = void 0; +const tslib_1 = require("tslib"); +// esm format file +__exportStar(require("fs"), exports); +exports.fs = require("fs"); + + +//// [index.d.ts] +// cjs format file +export * from "fs"; +export * as fs from "fs"; +//// [index.d.ts] +// esm format file +export * from "fs"; +export * as fs from "fs"; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportHelpersCollisions2(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportHelpersCollisions2(module=node18).js.diff new file mode 100644 index 0000000000..8891e5a9e6 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportHelpersCollisions2(module=node18).js.diff @@ -0,0 +1,35 @@ +--- old.nodeModulesAllowJsImportHelpersCollisions2(module=node18).js ++++ new.nodeModulesAllowJsImportHelpersCollisions2(module=node18).js +@@= skipped -31, +31 lines =@@ + const tslib_1 = require("tslib"); + // cjs format file + tslib_1.__exportStar(require("fs"), exports); +-exports.fs = tslib_1.__importStar(require("fs")); ++exports.fs = require("fs"); + //// [index.js] +-// esm format file +-export * from "fs"; +-export * as fs from "fs"; +- +- +-//// [index.d.ts] +-export * from "fs"; +-export * as fs from "fs"; +-//// [index.d.ts] ++"use strict"; ++Object.defineProperty(exports, "__esModule", { value: true }); ++exports.fs = void 0; ++const tslib_1 = require("tslib"); ++// esm format file ++__exportStar(require("fs"), exports); ++exports.fs = require("fs"); ++ ++ ++//// [index.d.ts] ++// cjs format file ++export * from "fs"; ++export * as fs from "fs"; ++//// [index.d.ts] ++// esm format file + export * from "fs"; + export * as fs from "fs"; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportHelpersCollisions2(module=nodenext).js b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportHelpersCollisions2(module=nodenext).js new file mode 100644 index 0000000000..2cfc0e98c6 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportHelpersCollisions2(module=nodenext).js @@ -0,0 +1,49 @@ +//// [tests/cases/conformance/node/allowJs/nodeModulesAllowJsImportHelpersCollisions2.ts] //// + +//// [index.ts] +// cjs format file +export * from "fs"; +export * as fs from "fs"; +//// [index.js] +// esm format file +export * from "fs"; +export * as fs from "fs"; +//// [package.json] +{ + "name": "package", + "private": true, + "type": "module" +} +//// [package.json] +{ + "type": "commonjs" +} +//// [types.d.ts] +declare module "fs"; +declare module "tslib" { + export {}; + // intentionally missing all helpers +} + +//// [index.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.fs = void 0; +const tslib_1 = require("tslib"); +// cjs format file +tslib_1.__exportStar(require("fs"), exports); +exports.fs = tslib_1.__importStar(require("fs")); +//// [index.js] +// esm format file +export * from "fs"; +export * as fs from "fs"; + + +//// [index.d.ts] +// cjs format file +export * from "fs"; +export * as fs from "fs"; +//// [index.d.ts] +// esm format file +export * from "fs"; +export * as fs from "fs"; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportHelpersCollisions2(module=nodenext).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportHelpersCollisions2(module=nodenext).js.diff new file mode 100644 index 0000000000..9472ffe90e --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportHelpersCollisions2(module=nodenext).js.diff @@ -0,0 +1,13 @@ +--- old.nodeModulesAllowJsImportHelpersCollisions2(module=nodenext).js ++++ new.nodeModulesAllowJsImportHelpersCollisions2(module=nodenext).js +@@= skipped -39, +39 lines =@@ + + + //// [index.d.ts] ++// cjs format file + export * from "fs"; + export * as fs from "fs"; + //// [index.d.ts] ++// esm format file + export * from "fs"; + export * as fs from "fs"; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportHelpersCollisions3(module=node16).js b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportHelpersCollisions3(module=node16).js new file mode 100644 index 0000000000..d6f712d5f9 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportHelpersCollisions3(module=node16).js @@ -0,0 +1,58 @@ +//// [tests/cases/conformance/node/allowJs/nodeModulesAllowJsImportHelpersCollisions3.ts] //// + +//// [index.js] +// cjs format file +export {default} from "fs"; +export {default as foo} from "fs"; +export {bar as baz} from "fs"; +//// [index.js] +// esm format file +export {default} from "fs"; +export {default as foo} from "fs"; +export {bar as baz} from "fs"; +//// [package.json] +{ + "name": "package", + "private": true, + "type": "module" +} +//// [package.json] +{ + "type": "commonjs" +} +//// [types.d.ts] +declare module "fs"; +declare module "tslib" { + export {}; + // intentionally missing all helpers +} + +//// [index.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.baz = exports.foo = exports.default = void 0; +const tslib_1 = require("tslib"); +// cjs format file +const fs_1 = require("fs"); +Object.defineProperty(exports, "default", { enumerable: true, get: function () { return tslib_1.__importDefault(fs_1).default; } }); +const fs_2 = require("fs"); +Object.defineProperty(exports, "foo", { enumerable: true, get: function () { return tslib_1.__importDefault(fs_2).default; } }); +const fs_3 = require("fs"); +Object.defineProperty(exports, "baz", { enumerable: true, get: function () { return fs_3.bar; } }); +//// [index.js] +// esm format file +export { default } from "fs"; +export { default as foo } from "fs"; +export { bar as baz } from "fs"; + + +//// [index.d.ts] +// cjs format file +export { default } from "fs"; +export { default as foo } from "fs"; +export { bar as baz } from "fs"; +//// [index.d.ts] +// esm format file +export { default } from "fs"; +export { default as foo } from "fs"; +export { bar as baz } from "fs"; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportHelpersCollisions3(module=node16).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportHelpersCollisions3(module=node16).js.diff new file mode 100644 index 0000000000..7b9973e0c5 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportHelpersCollisions3(module=node16).js.diff @@ -0,0 +1,35 @@ +--- old.nodeModulesAllowJsImportHelpersCollisions3(module=node16).js ++++ new.nodeModulesAllowJsImportHelpersCollisions3(module=node16).js +@@= skipped -30, +30 lines =@@ + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.baz = exports.foo = exports.default = void 0; +-var tslib_1 = require("tslib"); ++const tslib_1 = require("tslib"); + // cjs format file +-var fs_1 = require("fs"); ++const fs_1 = require("fs"); + Object.defineProperty(exports, "default", { enumerable: true, get: function () { return tslib_1.__importDefault(fs_1).default; } }); +-var fs_2 = require("fs"); ++const fs_2 = require("fs"); + Object.defineProperty(exports, "foo", { enumerable: true, get: function () { return tslib_1.__importDefault(fs_2).default; } }); +-var fs_3 = require("fs"); ++const fs_3 = require("fs"); + Object.defineProperty(exports, "baz", { enumerable: true, get: function () { return fs_3.bar; } }); + //// [index.js] + // esm format file +@@= skipped -16, +16 lines =@@ + + + //// [index.d.ts] +-export { default, default as foo, bar as baz } from "fs"; ++// cjs format file ++export { default } from "fs"; ++export { default as foo } from "fs"; ++export { bar as baz } from "fs"; + //// [index.d.ts] +-export { default, default as foo, bar as baz } from "fs"; ++// esm format file ++export { default } from "fs"; ++export { default as foo } from "fs"; ++export { bar as baz } from "fs"; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportHelpersCollisions3(module=node18).js b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportHelpersCollisions3(module=node18).js new file mode 100644 index 0000000000..a7cd4a1ee1 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportHelpersCollisions3(module=node18).js @@ -0,0 +1,63 @@ +//// [tests/cases/conformance/node/allowJs/nodeModulesAllowJsImportHelpersCollisions3.ts] //// + +//// [index.js] +// cjs format file +export {default} from "fs"; +export {default as foo} from "fs"; +export {bar as baz} from "fs"; +//// [index.js] +// esm format file +export {default} from "fs"; +export {default as foo} from "fs"; +export {bar as baz} from "fs"; +//// [package.json] +{ + "name": "package", + "private": true, + "type": "module" +} +//// [package.json] +{ + "type": "commonjs" +} +//// [types.d.ts] +declare module "fs"; +declare module "tslib" { + export {}; + // intentionally missing all helpers +} + +//// [index.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.baz = exports.foo = exports.default = void 0; +// cjs format file +const fs_1 = require("fs"); +Object.defineProperty(exports, "default", { enumerable: true, get: function () { return fs_1.default; } }); +const fs_2 = require("fs"); +Object.defineProperty(exports, "foo", { enumerable: true, get: function () { return fs_2.default; } }); +const fs_3 = require("fs"); +Object.defineProperty(exports, "baz", { enumerable: true, get: function () { return fs_3.bar; } }); +//// [index.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.baz = exports.foo = exports.default = void 0; +// esm format file +const fs_1 = require("fs"); +Object.defineProperty(exports, "default", { enumerable: true, get: function () { return fs_1.default; } }); +const fs_2 = require("fs"); +Object.defineProperty(exports, "foo", { enumerable: true, get: function () { return fs_2.default; } }); +const fs_3 = require("fs"); +Object.defineProperty(exports, "baz", { enumerable: true, get: function () { return fs_3.bar; } }); + + +//// [index.d.ts] +// cjs format file +export { default } from "fs"; +export { default as foo } from "fs"; +export { bar as baz } from "fs"; +//// [index.d.ts] +// esm format file +export { default } from "fs"; +export { default as foo } from "fs"; +export { bar as baz } from "fs"; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportHelpersCollisions3(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportHelpersCollisions3(module=node18).js.diff new file mode 100644 index 0000000000..549427edf3 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportHelpersCollisions3(module=node18).js.diff @@ -0,0 +1,52 @@ +--- old.nodeModulesAllowJsImportHelpersCollisions3(module=node18).js ++++ new.nodeModulesAllowJsImportHelpersCollisions3(module=node18).js +@@= skipped -30, +30 lines =@@ + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.baz = exports.foo = exports.default = void 0; +-var tslib_1 = require("tslib"); + // cjs format file +-var fs_1 = require("fs"); +-Object.defineProperty(exports, "default", { enumerable: true, get: function () { return tslib_1.__importDefault(fs_1).default; } }); +-var fs_2 = require("fs"); +-Object.defineProperty(exports, "foo", { enumerable: true, get: function () { return tslib_1.__importDefault(fs_2).default; } }); +-var fs_3 = require("fs"); ++const fs_1 = require("fs"); ++Object.defineProperty(exports, "default", { enumerable: true, get: function () { return fs_1.default; } }); ++const fs_2 = require("fs"); ++Object.defineProperty(exports, "foo", { enumerable: true, get: function () { return fs_2.default; } }); ++const fs_3 = require("fs"); + Object.defineProperty(exports, "baz", { enumerable: true, get: function () { return fs_3.bar; } }); + //// [index.js] +-// esm format file +-export { default } from "fs"; +-export { default as foo } from "fs"; +-export { bar as baz } from "fs"; +- +- +-//// [index.d.ts] +-export { default, default as foo, bar as baz } from "fs"; +-//// [index.d.ts] +-export { default, default as foo, bar as baz } from "fs"; ++"use strict"; ++Object.defineProperty(exports, "__esModule", { value: true }); ++exports.baz = exports.foo = exports.default = void 0; ++// esm format file ++const fs_1 = require("fs"); ++Object.defineProperty(exports, "default", { enumerable: true, get: function () { return fs_1.default; } }); ++const fs_2 = require("fs"); ++Object.defineProperty(exports, "foo", { enumerable: true, get: function () { return fs_2.default; } }); ++const fs_3 = require("fs"); ++Object.defineProperty(exports, "baz", { enumerable: true, get: function () { return fs_3.bar; } }); ++ ++ ++//// [index.d.ts] ++// cjs format file ++export { default } from "fs"; ++export { default as foo } from "fs"; ++export { bar as baz } from "fs"; ++//// [index.d.ts] ++// esm format file ++export { default } from "fs"; ++export { default as foo } from "fs"; ++export { bar as baz } from "fs"; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportHelpersCollisions3(module=nodenext).js b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportHelpersCollisions3(module=nodenext).js new file mode 100644 index 0000000000..d6f712d5f9 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportHelpersCollisions3(module=nodenext).js @@ -0,0 +1,58 @@ +//// [tests/cases/conformance/node/allowJs/nodeModulesAllowJsImportHelpersCollisions3.ts] //// + +//// [index.js] +// cjs format file +export {default} from "fs"; +export {default as foo} from "fs"; +export {bar as baz} from "fs"; +//// [index.js] +// esm format file +export {default} from "fs"; +export {default as foo} from "fs"; +export {bar as baz} from "fs"; +//// [package.json] +{ + "name": "package", + "private": true, + "type": "module" +} +//// [package.json] +{ + "type": "commonjs" +} +//// [types.d.ts] +declare module "fs"; +declare module "tslib" { + export {}; + // intentionally missing all helpers +} + +//// [index.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.baz = exports.foo = exports.default = void 0; +const tslib_1 = require("tslib"); +// cjs format file +const fs_1 = require("fs"); +Object.defineProperty(exports, "default", { enumerable: true, get: function () { return tslib_1.__importDefault(fs_1).default; } }); +const fs_2 = require("fs"); +Object.defineProperty(exports, "foo", { enumerable: true, get: function () { return tslib_1.__importDefault(fs_2).default; } }); +const fs_3 = require("fs"); +Object.defineProperty(exports, "baz", { enumerable: true, get: function () { return fs_3.bar; } }); +//// [index.js] +// esm format file +export { default } from "fs"; +export { default as foo } from "fs"; +export { bar as baz } from "fs"; + + +//// [index.d.ts] +// cjs format file +export { default } from "fs"; +export { default as foo } from "fs"; +export { bar as baz } from "fs"; +//// [index.d.ts] +// esm format file +export { default } from "fs"; +export { default as foo } from "fs"; +export { bar as baz } from "fs"; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportHelpersCollisions3(module=nodenext).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportHelpersCollisions3(module=nodenext).js.diff new file mode 100644 index 0000000000..7ded5e07fa --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportHelpersCollisions3(module=nodenext).js.diff @@ -0,0 +1,35 @@ +--- old.nodeModulesAllowJsImportHelpersCollisions3(module=nodenext).js ++++ new.nodeModulesAllowJsImportHelpersCollisions3(module=nodenext).js +@@= skipped -30, +30 lines =@@ + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.baz = exports.foo = exports.default = void 0; +-var tslib_1 = require("tslib"); ++const tslib_1 = require("tslib"); + // cjs format file +-var fs_1 = require("fs"); ++const fs_1 = require("fs"); + Object.defineProperty(exports, "default", { enumerable: true, get: function () { return tslib_1.__importDefault(fs_1).default; } }); +-var fs_2 = require("fs"); ++const fs_2 = require("fs"); + Object.defineProperty(exports, "foo", { enumerable: true, get: function () { return tslib_1.__importDefault(fs_2).default; } }); +-var fs_3 = require("fs"); ++const fs_3 = require("fs"); + Object.defineProperty(exports, "baz", { enumerable: true, get: function () { return fs_3.bar; } }); + //// [index.js] + // esm format file +@@= skipped -16, +16 lines =@@ + + + //// [index.d.ts] +-export { default, default as foo, bar as baz } from "fs"; ++// cjs format file ++export { default } from "fs"; ++export { default as foo } from "fs"; ++export { bar as baz } from "fs"; + //// [index.d.ts] +-export { default, default as foo, bar as baz } from "fs"; ++// esm format file ++export { default } from "fs"; ++export { default as foo } from "fs"; ++export { bar as baz } from "fs"; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportMeta(module=node16).js b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportMeta(module=node16).js new file mode 100644 index 0000000000..23c6e47c50 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportMeta(module=node16).js @@ -0,0 +1,42 @@ +//// [tests/cases/conformance/node/allowJs/nodeModulesAllowJsImportMeta.ts] //// + +//// [index.js] +// cjs format file +const x = import.meta.url; +export {x}; +//// [index.js] +// esm format file +const x = import.meta.url; +export {x}; +//// [package.json] +{ + "name": "package", + "private": true, + "type": "module" +} +//// [package.json] +{ + "type": "commonjs" +} + +//// [index.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.x = void 0; +// cjs format file +const x = import.meta.url; +exports.x = x; +//// [index.js] +// esm format file +const x = import.meta.url; +export { x }; + + +//// [index.d.ts] +// cjs format file +declare const x: string; +export { x }; +//// [index.d.ts] +// esm format file +declare const x: string; +export { x }; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportMeta(module=node16).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportMeta(module=node16).js.diff new file mode 100644 index 0000000000..02c632ad26 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportMeta(module=node16).js.diff @@ -0,0 +1,15 @@ +--- old.nodeModulesAllowJsImportMeta(module=node16).js ++++ new.nodeModulesAllowJsImportMeta(module=node16).js +@@= skipped -32, +32 lines =@@ + + + //// [index.d.ts] +-export const x: string; ++// cjs format file ++declare const x: string; ++export { x }; + //// [index.d.ts] +-export const x: string; ++// esm format file ++declare const x: string; ++export { x }; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportMeta(module=node18).js b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportMeta(module=node18).js new file mode 100644 index 0000000000..98d404af57 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportMeta(module=node18).js @@ -0,0 +1,45 @@ +//// [tests/cases/conformance/node/allowJs/nodeModulesAllowJsImportMeta.ts] //// + +//// [index.js] +// cjs format file +const x = import.meta.url; +export {x}; +//// [index.js] +// esm format file +const x = import.meta.url; +export {x}; +//// [package.json] +{ + "name": "package", + "private": true, + "type": "module" +} +//// [package.json] +{ + "type": "commonjs" +} + +//// [index.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.x = void 0; +// cjs format file +const x = import.meta.url; +exports.x = x; +//// [index.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.x = void 0; +// esm format file +const x = import.meta.url; +exports.x = x; + + +//// [index.d.ts] +// cjs format file +declare const x: string; +export { x }; +//// [index.d.ts] +// esm format file +declare const x: string; +export { x }; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportMeta(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportMeta(module=node18).js.diff new file mode 100644 index 0000000000..5af2feb917 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportMeta(module=node18).js.diff @@ -0,0 +1,29 @@ +--- old.nodeModulesAllowJsImportMeta(module=node18).js ++++ new.nodeModulesAllowJsImportMeta(module=node18).js +@@= skipped -26, +26 lines =@@ + const x = import.meta.url; + exports.x = x; + //// [index.js] ++"use strict"; ++Object.defineProperty(exports, "__esModule", { value: true }); ++exports.x = void 0; + // esm format file + const x = import.meta.url; +-export { x }; +- +- +-//// [index.d.ts] +-export const x: string; +-//// [index.d.ts] +-export const x: string; ++exports.x = x; ++ ++ ++//// [index.d.ts] ++// cjs format file ++declare const x: string; ++export { x }; ++//// [index.d.ts] ++// esm format file ++declare const x: string; ++export { x }; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportMeta(module=nodenext).js b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportMeta(module=nodenext).js new file mode 100644 index 0000000000..23c6e47c50 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportMeta(module=nodenext).js @@ -0,0 +1,42 @@ +//// [tests/cases/conformance/node/allowJs/nodeModulesAllowJsImportMeta.ts] //// + +//// [index.js] +// cjs format file +const x = import.meta.url; +export {x}; +//// [index.js] +// esm format file +const x = import.meta.url; +export {x}; +//// [package.json] +{ + "name": "package", + "private": true, + "type": "module" +} +//// [package.json] +{ + "type": "commonjs" +} + +//// [index.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.x = void 0; +// cjs format file +const x = import.meta.url; +exports.x = x; +//// [index.js] +// esm format file +const x = import.meta.url; +export { x }; + + +//// [index.d.ts] +// cjs format file +declare const x: string; +export { x }; +//// [index.d.ts] +// esm format file +declare const x: string; +export { x }; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportMeta(module=nodenext).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportMeta(module=nodenext).js.diff new file mode 100644 index 0000000000..8667bb6938 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportMeta(module=nodenext).js.diff @@ -0,0 +1,15 @@ +--- old.nodeModulesAllowJsImportMeta(module=nodenext).js ++++ new.nodeModulesAllowJsImportMeta(module=nodenext).js +@@= skipped -32, +32 lines =@@ + + + //// [index.d.ts] +-export const x: string; ++// cjs format file ++declare const x: string; ++export { x }; + //// [index.d.ts] +-export const x: string; ++// esm format file ++declare const x: string; ++export { x }; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsPackageExports(module=node16).js b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsPackageExports(module=node16).js new file mode 100644 index 0000000000..208b7a1a36 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsPackageExports(module=node16).js @@ -0,0 +1,175 @@ +//// [tests/cases/conformance/node/allowJs/nodeModulesAllowJsPackageExports.ts] //// + +//// [index.js] +// esm format file +import * as cjs from "package/cjs"; +import * as mjs from "package/mjs"; +import * as type from "package"; +cjs; +mjs; +type; +import * as cjsi from "inner/cjs"; +import * as mjsi from "inner/mjs"; +import * as typei from "inner"; +cjsi; +mjsi; +typei; +//// [index.mjs] +// esm format file +import * as cjs from "package/cjs"; +import * as mjs from "package/mjs"; +import * as type from "package"; +cjs; +mjs; +type; +import * as cjsi from "inner/cjs"; +import * as mjsi from "inner/mjs"; +import * as typei from "inner"; +cjsi; +mjsi; +typei; +//// [index.cjs] +// cjs format file +import * as cjs from "package/cjs"; +import * as mjs from "package/mjs"; +import * as type from "package"; +cjs; +mjs; +type; +import * as cjsi from "inner/cjs"; +import * as mjsi from "inner/mjs"; +import * as typei from "inner"; +cjsi; +mjsi; +typei; +//// [index.d.ts] +// cjs format file +import * as cjs from "inner/cjs"; +import * as mjs from "inner/mjs"; +import * as type from "inner"; +export { cjs }; +export { mjs }; +export { type }; +//// [index.d.mts] +// esm format file +import * as cjs from "inner/cjs"; +import * as mjs from "inner/mjs"; +import * as type from "inner"; +export { cjs }; +export { mjs }; +export { type }; +//// [index.d.cts] +// cjs format file +import * as cjs from "inner/cjs"; +import * as mjs from "inner/mjs"; +import * as type from "inner"; +export { cjs }; +export { mjs }; +export { type }; +//// [package.json] +{ + "name": "package", + "private": true, + "type": "module", + "exports": { + "./cjs": "./index.cjs", + "./mjs": "./index.mjs", + ".": "./index.js" + } +} +//// [package.json] +{ + "name": "inner", + "private": true, + "exports": { + "./cjs": "./index.cjs", + "./mjs": "./index.mjs", + ".": "./index.js" + } +} + +//// [index.mjs] +// esm format file +import * as cjs from "package/cjs"; +import * as mjs from "package/mjs"; +import * as type from "package"; +cjs; +mjs; +type; +import * as cjsi from "inner/cjs"; +import * as mjsi from "inner/mjs"; +import * as typei from "inner"; +cjsi; +mjsi; +typei; +//// [index.cjs] +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || (function () { + var ownKeys = function(o) { + ownKeys = Object.getOwnPropertyNames || function (o) { + var ar = []; + for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k; + return ar; + }; + return ownKeys(o); + }; + return function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]); + __setModuleDefault(result, mod); + return result; + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +// cjs format file +const cjs = __importStar(require("package/cjs")); +const mjs = __importStar(require("package/mjs")); +const type = __importStar(require("package")); +cjs; +mjs; +type; +const cjsi = __importStar(require("inner/cjs")); +const mjsi = __importStar(require("inner/mjs")); +const typei = __importStar(require("inner")); +cjsi; +mjsi; +typei; +//// [index.js] +// esm format file +import * as cjs from "package/cjs"; +import * as mjs from "package/mjs"; +import * as type from "package"; +cjs; +mjs; +type; +import * as cjsi from "inner/cjs"; +import * as mjsi from "inner/mjs"; +import * as typei from "inner"; +cjsi; +mjsi; +typei; + + +//// [index.d.mts] +export {}; +//// [index.d.cts] +export {}; +//// [index.d.ts] +export {}; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsPackageExports(module=node18).js b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsPackageExports(module=node18).js new file mode 100644 index 0000000000..6f3679e8cc --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsPackageExports(module=node18).js @@ -0,0 +1,146 @@ +//// [tests/cases/conformance/node/allowJs/nodeModulesAllowJsPackageExports.ts] //// + +//// [index.js] +// esm format file +import * as cjs from "package/cjs"; +import * as mjs from "package/mjs"; +import * as type from "package"; +cjs; +mjs; +type; +import * as cjsi from "inner/cjs"; +import * as mjsi from "inner/mjs"; +import * as typei from "inner"; +cjsi; +mjsi; +typei; +//// [index.mjs] +// esm format file +import * as cjs from "package/cjs"; +import * as mjs from "package/mjs"; +import * as type from "package"; +cjs; +mjs; +type; +import * as cjsi from "inner/cjs"; +import * as mjsi from "inner/mjs"; +import * as typei from "inner"; +cjsi; +mjsi; +typei; +//// [index.cjs] +// cjs format file +import * as cjs from "package/cjs"; +import * as mjs from "package/mjs"; +import * as type from "package"; +cjs; +mjs; +type; +import * as cjsi from "inner/cjs"; +import * as mjsi from "inner/mjs"; +import * as typei from "inner"; +cjsi; +mjsi; +typei; +//// [index.d.ts] +// cjs format file +import * as cjs from "inner/cjs"; +import * as mjs from "inner/mjs"; +import * as type from "inner"; +export { cjs }; +export { mjs }; +export { type }; +//// [index.d.mts] +// esm format file +import * as cjs from "inner/cjs"; +import * as mjs from "inner/mjs"; +import * as type from "inner"; +export { cjs }; +export { mjs }; +export { type }; +//// [index.d.cts] +// cjs format file +import * as cjs from "inner/cjs"; +import * as mjs from "inner/mjs"; +import * as type from "inner"; +export { cjs }; +export { mjs }; +export { type }; +//// [package.json] +{ + "name": "package", + "private": true, + "type": "module", + "exports": { + "./cjs": "./index.cjs", + "./mjs": "./index.mjs", + ".": "./index.js" + } +} +//// [package.json] +{ + "name": "inner", + "private": true, + "exports": { + "./cjs": "./index.cjs", + "./mjs": "./index.mjs", + ".": "./index.js" + } +} + +//// [index.mjs] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +// esm format file +const cjs = require("package/cjs"); +const mjs = require("package/mjs"); +const type = require("package"); +cjs; +mjs; +type; +const cjsi = require("inner/cjs"); +const mjsi = require("inner/mjs"); +const typei = require("inner"); +cjsi; +mjsi; +typei; +//// [index.cjs] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +// cjs format file +const cjs = require("package/cjs"); +const mjs = require("package/mjs"); +const type = require("package"); +cjs; +mjs; +type; +const cjsi = require("inner/cjs"); +const mjsi = require("inner/mjs"); +const typei = require("inner"); +cjsi; +mjsi; +typei; +//// [index.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +// esm format file +const cjs = require("package/cjs"); +const mjs = require("package/mjs"); +const type = require("package"); +cjs; +mjs; +type; +const cjsi = require("inner/cjs"); +const mjsi = require("inner/mjs"); +const typei = require("inner"); +cjsi; +mjsi; +typei; + + +//// [index.d.mts] +export {}; +//// [index.d.cts] +export {}; +//// [index.d.ts] +export {}; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsPackageExports(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsPackageExports(module=node18).js.diff new file mode 100644 index 0000000000..f7bd80c825 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsPackageExports(module=node18).js.diff @@ -0,0 +1,104 @@ +--- old.nodeModulesAllowJsPackageExports(module=node18).js ++++ new.nodeModulesAllowJsPackageExports(module=node18).js +@@= skipped -88, +88 lines =@@ + } + + //// [index.mjs] ++"use strict"; ++Object.defineProperty(exports, "__esModule", { value: true }); + // esm format file +-import * as cjs from "package/cjs"; +-import * as mjs from "package/mjs"; +-import * as type from "package"; ++const cjs = require("package/cjs"); ++const mjs = require("package/mjs"); ++const type = require("package"); + cjs; + mjs; + type; +-import * as cjsi from "inner/cjs"; +-import * as mjsi from "inner/mjs"; +-import * as typei from "inner"; ++const cjsi = require("inner/cjs"); ++const mjsi = require("inner/mjs"); ++const typei = require("inner"); + cjsi; + mjsi; + typei; + //// [index.cjs] + "use strict"; +-var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { +- if (k2 === undefined) k2 = k; +- var desc = Object.getOwnPropertyDescriptor(m, k); +- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { +- desc = { enumerable: true, get: function() { return m[k]; } }; +- } +- Object.defineProperty(o, k2, desc); +-}) : (function(o, m, k, k2) { +- if (k2 === undefined) k2 = k; +- o[k2] = m[k]; +-})); +-var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { +- Object.defineProperty(o, "default", { enumerable: true, value: v }); +-}) : function(o, v) { +- o["default"] = v; +-}); +-var __importStar = (this && this.__importStar) || (function () { +- var ownKeys = function(o) { +- ownKeys = Object.getOwnPropertyNames || function (o) { +- var ar = []; +- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k; +- return ar; +- }; +- return ownKeys(o); +- }; +- return function (mod) { +- if (mod && mod.__esModule) return mod; +- var result = {}; +- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]); +- __setModuleDefault(result, mod); +- return result; +- }; +-})(); + Object.defineProperty(exports, "__esModule", { value: true }); + // cjs format file +-const cjs = __importStar(require("package/cjs")); +-const mjs = __importStar(require("package/mjs")); +-const type = __importStar(require("package")); ++const cjs = require("package/cjs"); ++const mjs = require("package/mjs"); ++const type = require("package"); + cjs; + mjs; + type; +-const cjsi = __importStar(require("inner/cjs")); +-const mjsi = __importStar(require("inner/mjs")); +-const typei = __importStar(require("inner")); ++const cjsi = require("inner/cjs"); ++const mjsi = require("inner/mjs"); ++const typei = require("inner"); + cjsi; + mjsi; + typei; + //// [index.js] ++"use strict"; ++Object.defineProperty(exports, "__esModule", { value: true }); + // esm format file +-import * as cjs from "package/cjs"; +-import * as mjs from "package/mjs"; +-import * as type from "package"; ++const cjs = require("package/cjs"); ++const mjs = require("package/mjs"); ++const type = require("package"); + cjs; + mjs; + type; +-import * as cjsi from "inner/cjs"; +-import * as mjsi from "inner/mjs"; +-import * as typei from "inner"; ++const cjsi = require("inner/cjs"); ++const mjsi = require("inner/mjs"); ++const typei = require("inner"); + cjsi; + mjsi; + typei; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsPackageExports(module=nodenext).js b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsPackageExports(module=nodenext).js new file mode 100644 index 0000000000..208b7a1a36 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsPackageExports(module=nodenext).js @@ -0,0 +1,175 @@ +//// [tests/cases/conformance/node/allowJs/nodeModulesAllowJsPackageExports.ts] //// + +//// [index.js] +// esm format file +import * as cjs from "package/cjs"; +import * as mjs from "package/mjs"; +import * as type from "package"; +cjs; +mjs; +type; +import * as cjsi from "inner/cjs"; +import * as mjsi from "inner/mjs"; +import * as typei from "inner"; +cjsi; +mjsi; +typei; +//// [index.mjs] +// esm format file +import * as cjs from "package/cjs"; +import * as mjs from "package/mjs"; +import * as type from "package"; +cjs; +mjs; +type; +import * as cjsi from "inner/cjs"; +import * as mjsi from "inner/mjs"; +import * as typei from "inner"; +cjsi; +mjsi; +typei; +//// [index.cjs] +// cjs format file +import * as cjs from "package/cjs"; +import * as mjs from "package/mjs"; +import * as type from "package"; +cjs; +mjs; +type; +import * as cjsi from "inner/cjs"; +import * as mjsi from "inner/mjs"; +import * as typei from "inner"; +cjsi; +mjsi; +typei; +//// [index.d.ts] +// cjs format file +import * as cjs from "inner/cjs"; +import * as mjs from "inner/mjs"; +import * as type from "inner"; +export { cjs }; +export { mjs }; +export { type }; +//// [index.d.mts] +// esm format file +import * as cjs from "inner/cjs"; +import * as mjs from "inner/mjs"; +import * as type from "inner"; +export { cjs }; +export { mjs }; +export { type }; +//// [index.d.cts] +// cjs format file +import * as cjs from "inner/cjs"; +import * as mjs from "inner/mjs"; +import * as type from "inner"; +export { cjs }; +export { mjs }; +export { type }; +//// [package.json] +{ + "name": "package", + "private": true, + "type": "module", + "exports": { + "./cjs": "./index.cjs", + "./mjs": "./index.mjs", + ".": "./index.js" + } +} +//// [package.json] +{ + "name": "inner", + "private": true, + "exports": { + "./cjs": "./index.cjs", + "./mjs": "./index.mjs", + ".": "./index.js" + } +} + +//// [index.mjs] +// esm format file +import * as cjs from "package/cjs"; +import * as mjs from "package/mjs"; +import * as type from "package"; +cjs; +mjs; +type; +import * as cjsi from "inner/cjs"; +import * as mjsi from "inner/mjs"; +import * as typei from "inner"; +cjsi; +mjsi; +typei; +//// [index.cjs] +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || (function () { + var ownKeys = function(o) { + ownKeys = Object.getOwnPropertyNames || function (o) { + var ar = []; + for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k; + return ar; + }; + return ownKeys(o); + }; + return function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]); + __setModuleDefault(result, mod); + return result; + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +// cjs format file +const cjs = __importStar(require("package/cjs")); +const mjs = __importStar(require("package/mjs")); +const type = __importStar(require("package")); +cjs; +mjs; +type; +const cjsi = __importStar(require("inner/cjs")); +const mjsi = __importStar(require("inner/mjs")); +const typei = __importStar(require("inner")); +cjsi; +mjsi; +typei; +//// [index.js] +// esm format file +import * as cjs from "package/cjs"; +import * as mjs from "package/mjs"; +import * as type from "package"; +cjs; +mjs; +type; +import * as cjsi from "inner/cjs"; +import * as mjsi from "inner/mjs"; +import * as typei from "inner"; +cjsi; +mjsi; +typei; + + +//// [index.d.mts] +export {}; +//// [index.d.cts] +export {}; +//// [index.d.ts] +export {}; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsPackageImports(module=node16).js b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsPackageImports(module=node16).js new file mode 100644 index 0000000000..510e6b7128 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsPackageImports(module=node16).js @@ -0,0 +1,106 @@ +//// [tests/cases/conformance/node/allowJs/nodeModulesAllowJsPackageImports.ts] //// + +//// [index.js] +// esm format file +import * as cjs from "#cjs"; +import * as mjs from "#mjs"; +import * as type from "#type"; +cjs; +mjs; +type; +//// [index.mjs] +// esm format file +import * as cjs from "#cjs"; +import * as mjs from "#mjs"; +import * as type from "#type"; +cjs; +mjs; +type; +//// [index.cjs] +// esm format file +import * as cjs from "#cjs"; +import * as mjs from "#mjs"; +import * as type from "#type"; +cjs; +mjs; +type; +//// [package.json] +{ + "name": "package", + "private": true, + "type": "module", + "exports": "./index.js", + "imports": { + "#cjs": "./index.cjs", + "#mjs": "./index.mjs", + "#type": "./index.js" + } +} + +//// [index.mjs] +// esm format file +import * as cjs from "#cjs"; +import * as mjs from "#mjs"; +import * as type from "#type"; +cjs; +mjs; +type; +//// [index.cjs] +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || (function () { + var ownKeys = function(o) { + ownKeys = Object.getOwnPropertyNames || function (o) { + var ar = []; + for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k; + return ar; + }; + return ownKeys(o); + }; + return function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]); + __setModuleDefault(result, mod); + return result; + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +// esm format file +const cjs = __importStar(require("#cjs")); +const mjs = __importStar(require("#mjs")); +const type = __importStar(require("#type")); +cjs; +mjs; +type; +//// [index.js] +// esm format file +import * as cjs from "#cjs"; +import * as mjs from "#mjs"; +import * as type from "#type"; +cjs; +mjs; +type; + + +//// [index.d.mts] +export {}; +//// [index.d.cts] +export {}; +//// [index.d.ts] +export {}; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsPackageImports(module=node18).js b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsPackageImports(module=node18).js new file mode 100644 index 0000000000..669c01ed68 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsPackageImports(module=node18).js @@ -0,0 +1,77 @@ +//// [tests/cases/conformance/node/allowJs/nodeModulesAllowJsPackageImports.ts] //// + +//// [index.js] +// esm format file +import * as cjs from "#cjs"; +import * as mjs from "#mjs"; +import * as type from "#type"; +cjs; +mjs; +type; +//// [index.mjs] +// esm format file +import * as cjs from "#cjs"; +import * as mjs from "#mjs"; +import * as type from "#type"; +cjs; +mjs; +type; +//// [index.cjs] +// esm format file +import * as cjs from "#cjs"; +import * as mjs from "#mjs"; +import * as type from "#type"; +cjs; +mjs; +type; +//// [package.json] +{ + "name": "package", + "private": true, + "type": "module", + "exports": "./index.js", + "imports": { + "#cjs": "./index.cjs", + "#mjs": "./index.mjs", + "#type": "./index.js" + } +} + +//// [index.mjs] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +// esm format file +const cjs = require("#cjs"); +const mjs = require("#mjs"); +const type = require("#type"); +cjs; +mjs; +type; +//// [index.cjs] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +// esm format file +const cjs = require("#cjs"); +const mjs = require("#mjs"); +const type = require("#type"); +cjs; +mjs; +type; +//// [index.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +// esm format file +const cjs = require("#cjs"); +const mjs = require("#mjs"); +const type = require("#type"); +cjs; +mjs; +type; + + +//// [index.d.mts] +export {}; +//// [index.d.cts] +export {}; +//// [index.d.ts] +export {}; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsPackageImports(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsPackageImports(module=node18).js.diff new file mode 100644 index 0000000000..4ce8d947cc --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsPackageImports(module=node18).js.diff @@ -0,0 +1,77 @@ +--- old.nodeModulesAllowJsPackageImports(module=node18).js ++++ new.nodeModulesAllowJsPackageImports(module=node18).js +@@= skipped -37, +37 lines =@@ + } + + //// [index.mjs] ++"use strict"; ++Object.defineProperty(exports, "__esModule", { value: true }); + // esm format file +-import * as cjs from "#cjs"; +-import * as mjs from "#mjs"; +-import * as type from "#type"; ++const cjs = require("#cjs"); ++const mjs = require("#mjs"); ++const type = require("#type"); + cjs; + mjs; + type; + //// [index.cjs] + "use strict"; +-var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { +- if (k2 === undefined) k2 = k; +- var desc = Object.getOwnPropertyDescriptor(m, k); +- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { +- desc = { enumerable: true, get: function() { return m[k]; } }; +- } +- Object.defineProperty(o, k2, desc); +-}) : (function(o, m, k, k2) { +- if (k2 === undefined) k2 = k; +- o[k2] = m[k]; +-})); +-var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { +- Object.defineProperty(o, "default", { enumerable: true, value: v }); +-}) : function(o, v) { +- o["default"] = v; +-}); +-var __importStar = (this && this.__importStar) || (function () { +- var ownKeys = function(o) { +- ownKeys = Object.getOwnPropertyNames || function (o) { +- var ar = []; +- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k; +- return ar; +- }; +- return ownKeys(o); +- }; +- return function (mod) { +- if (mod && mod.__esModule) return mod; +- var result = {}; +- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]); +- __setModuleDefault(result, mod); +- return result; +- }; +-})(); + Object.defineProperty(exports, "__esModule", { value: true }); + // esm format file +-const cjs = __importStar(require("#cjs")); +-const mjs = __importStar(require("#mjs")); +-const type = __importStar(require("#type")); ++const cjs = require("#cjs"); ++const mjs = require("#mjs"); ++const type = require("#type"); + cjs; + mjs; + type; + //// [index.js] ++"use strict"; ++Object.defineProperty(exports, "__esModule", { value: true }); + // esm format file +-import * as cjs from "#cjs"; +-import * as mjs from "#mjs"; +-import * as type from "#type"; ++const cjs = require("#cjs"); ++const mjs = require("#mjs"); ++const type = require("#type"); + cjs; + mjs; + type; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsPackageImports(module=nodenext).js b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsPackageImports(module=nodenext).js new file mode 100644 index 0000000000..510e6b7128 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsPackageImports(module=nodenext).js @@ -0,0 +1,106 @@ +//// [tests/cases/conformance/node/allowJs/nodeModulesAllowJsPackageImports.ts] //// + +//// [index.js] +// esm format file +import * as cjs from "#cjs"; +import * as mjs from "#mjs"; +import * as type from "#type"; +cjs; +mjs; +type; +//// [index.mjs] +// esm format file +import * as cjs from "#cjs"; +import * as mjs from "#mjs"; +import * as type from "#type"; +cjs; +mjs; +type; +//// [index.cjs] +// esm format file +import * as cjs from "#cjs"; +import * as mjs from "#mjs"; +import * as type from "#type"; +cjs; +mjs; +type; +//// [package.json] +{ + "name": "package", + "private": true, + "type": "module", + "exports": "./index.js", + "imports": { + "#cjs": "./index.cjs", + "#mjs": "./index.mjs", + "#type": "./index.js" + } +} + +//// [index.mjs] +// esm format file +import * as cjs from "#cjs"; +import * as mjs from "#mjs"; +import * as type from "#type"; +cjs; +mjs; +type; +//// [index.cjs] +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || (function () { + var ownKeys = function(o) { + ownKeys = Object.getOwnPropertyNames || function (o) { + var ar = []; + for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k; + return ar; + }; + return ownKeys(o); + }; + return function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]); + __setModuleDefault(result, mod); + return result; + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +// esm format file +const cjs = __importStar(require("#cjs")); +const mjs = __importStar(require("#mjs")); +const type = __importStar(require("#type")); +cjs; +mjs; +type; +//// [index.js] +// esm format file +import * as cjs from "#cjs"; +import * as mjs from "#mjs"; +import * as type from "#type"; +cjs; +mjs; +type; + + +//// [index.d.mts] +export {}; +//// [index.d.cts] +export {}; +//// [index.d.ts] +export {}; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsPackagePatternExports(module=node16).js b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsPackagePatternExports(module=node16).js new file mode 100644 index 0000000000..79669dc7d4 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsPackagePatternExports(module=node16).js @@ -0,0 +1,134 @@ +//// [tests/cases/conformance/node/allowJs/nodeModulesAllowJsPackagePatternExports.ts] //// + +//// [index.js] +// esm format file +import * as cjsi from "inner/cjs/index"; +import * as mjsi from "inner/mjs/index"; +import * as typei from "inner/js/index"; +cjsi; +mjsi; +typei; +//// [index.mjs] +// esm format file +import * as cjsi from "inner/cjs/index"; +import * as mjsi from "inner/mjs/index"; +import * as typei from "inner/js/index"; +cjsi; +mjsi; +typei; +//// [index.cjs] +// cjs format file +import * as cjsi from "inner/cjs/index"; +import * as mjsi from "inner/mjs/index"; +import * as typei from "inner/js/index"; +cjsi; +mjsi; +typei; +//// [index.d.ts] +// cjs format file +import * as cjs from "inner/cjs/index"; +import * as mjs from "inner/mjs/index"; +import * as type from "inner/js/index"; +export { cjs }; +export { mjs }; +export { type }; +//// [index.d.mts] +// esm format file +import * as cjs from "inner/cjs/index"; +import * as mjs from "inner/mjs/index"; +import * as type from "inner/js/index"; +export { cjs }; +export { mjs }; +export { type }; +//// [index.d.cts] +// cjs format file +import * as cjs from "inner/cjs/index"; +import * as mjs from "inner/mjs/index"; +import * as type from "inner/js/index"; +export { cjs }; +export { mjs }; +export { type }; +//// [package.json] +{ + "name": "package", + "private": true, + "type": "module", +} +//// [package.json] +{ + "name": "inner", + "private": true, + "exports": { + "./cjs/*": "./*.cjs", + "./mjs/*": "./*.mjs", + "./js/*": "./*.js" + } +} + +//// [index.js] +// esm format file +import * as cjsi from "inner/cjs/index"; +import * as mjsi from "inner/mjs/index"; +import * as typei from "inner/js/index"; +cjsi; +mjsi; +typei; +//// [index.mjs] +// esm format file +import * as cjsi from "inner/cjs/index"; +import * as mjsi from "inner/mjs/index"; +import * as typei from "inner/js/index"; +cjsi; +mjsi; +typei; +//// [index.cjs] +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || (function () { + var ownKeys = function(o) { + ownKeys = Object.getOwnPropertyNames || function (o) { + var ar = []; + for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k; + return ar; + }; + return ownKeys(o); + }; + return function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]); + __setModuleDefault(result, mod); + return result; + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +// cjs format file +const cjsi = __importStar(require("inner/cjs/index")); +const mjsi = __importStar(require("inner/mjs/index")); +const typei = __importStar(require("inner/js/index")); +cjsi; +mjsi; +typei; + + +//// [index.d.ts] +export {}; +//// [index.d.mts] +export {}; +//// [index.d.cts] +export {}; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsPackagePatternExports(module=node18).js b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsPackagePatternExports(module=node18).js new file mode 100644 index 0000000000..066c2c6afb --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsPackagePatternExports(module=node18).js @@ -0,0 +1,105 @@ +//// [tests/cases/conformance/node/allowJs/nodeModulesAllowJsPackagePatternExports.ts] //// + +//// [index.js] +// esm format file +import * as cjsi from "inner/cjs/index"; +import * as mjsi from "inner/mjs/index"; +import * as typei from "inner/js/index"; +cjsi; +mjsi; +typei; +//// [index.mjs] +// esm format file +import * as cjsi from "inner/cjs/index"; +import * as mjsi from "inner/mjs/index"; +import * as typei from "inner/js/index"; +cjsi; +mjsi; +typei; +//// [index.cjs] +// cjs format file +import * as cjsi from "inner/cjs/index"; +import * as mjsi from "inner/mjs/index"; +import * as typei from "inner/js/index"; +cjsi; +mjsi; +typei; +//// [index.d.ts] +// cjs format file +import * as cjs from "inner/cjs/index"; +import * as mjs from "inner/mjs/index"; +import * as type from "inner/js/index"; +export { cjs }; +export { mjs }; +export { type }; +//// [index.d.mts] +// esm format file +import * as cjs from "inner/cjs/index"; +import * as mjs from "inner/mjs/index"; +import * as type from "inner/js/index"; +export { cjs }; +export { mjs }; +export { type }; +//// [index.d.cts] +// cjs format file +import * as cjs from "inner/cjs/index"; +import * as mjs from "inner/mjs/index"; +import * as type from "inner/js/index"; +export { cjs }; +export { mjs }; +export { type }; +//// [package.json] +{ + "name": "package", + "private": true, + "type": "module", +} +//// [package.json] +{ + "name": "inner", + "private": true, + "exports": { + "./cjs/*": "./*.cjs", + "./mjs/*": "./*.mjs", + "./js/*": "./*.js" + } +} + +//// [index.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +// esm format file +const cjsi = require("inner/cjs/index"); +const mjsi = require("inner/mjs/index"); +const typei = require("inner/js/index"); +cjsi; +mjsi; +typei; +//// [index.mjs] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +// esm format file +const cjsi = require("inner/cjs/index"); +const mjsi = require("inner/mjs/index"); +const typei = require("inner/js/index"); +cjsi; +mjsi; +typei; +//// [index.cjs] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +// cjs format file +const cjsi = require("inner/cjs/index"); +const mjsi = require("inner/mjs/index"); +const typei = require("inner/js/index"); +cjsi; +mjsi; +typei; + + +//// [index.d.ts] +export {}; +//// [index.d.mts] +export {}; +//// [index.d.cts] +export {}; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsPackagePatternExports(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsPackagePatternExports(module=node18).js.diff new file mode 100644 index 0000000000..977d31df92 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsPackagePatternExports(module=node18).js.diff @@ -0,0 +1,77 @@ +--- old.nodeModulesAllowJsPackagePatternExports(module=node18).js ++++ new.nodeModulesAllowJsPackagePatternExports(module=node18).js +@@= skipped -65, +65 lines =@@ + } + + //// [index.js] ++"use strict"; ++Object.defineProperty(exports, "__esModule", { value: true }); + // esm format file +-import * as cjsi from "inner/cjs/index"; +-import * as mjsi from "inner/mjs/index"; +-import * as typei from "inner/js/index"; ++const cjsi = require("inner/cjs/index"); ++const mjsi = require("inner/mjs/index"); ++const typei = require("inner/js/index"); + cjsi; + mjsi; + typei; + //// [index.mjs] ++"use strict"; ++Object.defineProperty(exports, "__esModule", { value: true }); + // esm format file +-import * as cjsi from "inner/cjs/index"; +-import * as mjsi from "inner/mjs/index"; +-import * as typei from "inner/js/index"; ++const cjsi = require("inner/cjs/index"); ++const mjsi = require("inner/mjs/index"); ++const typei = require("inner/js/index"); + cjsi; + mjsi; + typei; + //// [index.cjs] + "use strict"; +-var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { +- if (k2 === undefined) k2 = k; +- var desc = Object.getOwnPropertyDescriptor(m, k); +- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { +- desc = { enumerable: true, get: function() { return m[k]; } }; +- } +- Object.defineProperty(o, k2, desc); +-}) : (function(o, m, k, k2) { +- if (k2 === undefined) k2 = k; +- o[k2] = m[k]; +-})); +-var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { +- Object.defineProperty(o, "default", { enumerable: true, value: v }); +-}) : function(o, v) { +- o["default"] = v; +-}); +-var __importStar = (this && this.__importStar) || (function () { +- var ownKeys = function(o) { +- ownKeys = Object.getOwnPropertyNames || function (o) { +- var ar = []; +- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k; +- return ar; +- }; +- return ownKeys(o); +- }; +- return function (mod) { +- if (mod && mod.__esModule) return mod; +- var result = {}; +- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]); +- __setModuleDefault(result, mod); +- return result; +- }; +-})(); + Object.defineProperty(exports, "__esModule", { value: true }); + // cjs format file +-const cjsi = __importStar(require("inner/cjs/index")); +-const mjsi = __importStar(require("inner/mjs/index")); +-const typei = __importStar(require("inner/js/index")); ++const cjsi = require("inner/cjs/index"); ++const mjsi = require("inner/mjs/index"); ++const typei = require("inner/js/index"); + cjsi; + mjsi; + typei; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsPackagePatternExports(module=nodenext).js b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsPackagePatternExports(module=nodenext).js new file mode 100644 index 0000000000..79669dc7d4 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsPackagePatternExports(module=nodenext).js @@ -0,0 +1,134 @@ +//// [tests/cases/conformance/node/allowJs/nodeModulesAllowJsPackagePatternExports.ts] //// + +//// [index.js] +// esm format file +import * as cjsi from "inner/cjs/index"; +import * as mjsi from "inner/mjs/index"; +import * as typei from "inner/js/index"; +cjsi; +mjsi; +typei; +//// [index.mjs] +// esm format file +import * as cjsi from "inner/cjs/index"; +import * as mjsi from "inner/mjs/index"; +import * as typei from "inner/js/index"; +cjsi; +mjsi; +typei; +//// [index.cjs] +// cjs format file +import * as cjsi from "inner/cjs/index"; +import * as mjsi from "inner/mjs/index"; +import * as typei from "inner/js/index"; +cjsi; +mjsi; +typei; +//// [index.d.ts] +// cjs format file +import * as cjs from "inner/cjs/index"; +import * as mjs from "inner/mjs/index"; +import * as type from "inner/js/index"; +export { cjs }; +export { mjs }; +export { type }; +//// [index.d.mts] +// esm format file +import * as cjs from "inner/cjs/index"; +import * as mjs from "inner/mjs/index"; +import * as type from "inner/js/index"; +export { cjs }; +export { mjs }; +export { type }; +//// [index.d.cts] +// cjs format file +import * as cjs from "inner/cjs/index"; +import * as mjs from "inner/mjs/index"; +import * as type from "inner/js/index"; +export { cjs }; +export { mjs }; +export { type }; +//// [package.json] +{ + "name": "package", + "private": true, + "type": "module", +} +//// [package.json] +{ + "name": "inner", + "private": true, + "exports": { + "./cjs/*": "./*.cjs", + "./mjs/*": "./*.mjs", + "./js/*": "./*.js" + } +} + +//// [index.js] +// esm format file +import * as cjsi from "inner/cjs/index"; +import * as mjsi from "inner/mjs/index"; +import * as typei from "inner/js/index"; +cjsi; +mjsi; +typei; +//// [index.mjs] +// esm format file +import * as cjsi from "inner/cjs/index"; +import * as mjsi from "inner/mjs/index"; +import * as typei from "inner/js/index"; +cjsi; +mjsi; +typei; +//// [index.cjs] +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || (function () { + var ownKeys = function(o) { + ownKeys = Object.getOwnPropertyNames || function (o) { + var ar = []; + for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k; + return ar; + }; + return ownKeys(o); + }; + return function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]); + __setModuleDefault(result, mod); + return result; + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +// cjs format file +const cjsi = __importStar(require("inner/cjs/index")); +const mjsi = __importStar(require("inner/mjs/index")); +const typei = __importStar(require("inner/js/index")); +cjsi; +mjsi; +typei; + + +//// [index.d.ts] +export {}; +//// [index.d.mts] +export {}; +//// [index.d.cts] +export {}; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsPackagePatternExportsExclude(module=node16).js b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsPackagePatternExportsExclude(module=node16).js new file mode 100644 index 0000000000..3ba5fbbce0 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsPackagePatternExportsExclude(module=node16).js @@ -0,0 +1,137 @@ +//// [tests/cases/conformance/node/allowJs/nodeModulesAllowJsPackagePatternExportsExclude.ts] //// + +//// [index.js] +// esm format file +import * as cjsi from "inner/cjs/exclude/index"; +import * as mjsi from "inner/mjs/exclude/index"; +import * as typei from "inner/js/exclude/index"; +cjsi; +mjsi; +typei; +//// [index.mjs] +// esm format file +import * as cjsi from "inner/cjs/exclude/index"; +import * as mjsi from "inner/mjs/exclude/index"; +import * as typei from "inner/js/exclude/index"; +cjsi; +mjsi; +typei; +//// [index.cjs] +// cjs format file +import * as cjsi from "inner/cjs/exclude/index"; +import * as mjsi from "inner/mjs/exclude/index"; +import * as typei from "inner/js/exclude/index"; +cjsi; +mjsi; +typei; +//// [index.d.ts] +// cjs format file +import * as cjs from "inner/cjs/exclude/index"; +import * as mjs from "inner/mjs/exclude/index"; +import * as type from "inner/js/exclude/index"; +export { cjs }; +export { mjs }; +export { type }; +//// [index.d.mts] +// esm format file +import * as cjs from "inner/cjs/exclude/index"; +import * as mjs from "inner/mjs/exclude/index"; +import * as type from "inner/js/exclude/index"; +export { cjs }; +export { mjs }; +export { type }; +//// [index.d.cts] +// cjs format file +import * as cjs from "inner/cjs/exclude/index"; +import * as mjs from "inner/mjs/exclude/index"; +import * as type from "inner/js/exclude/index"; +export { cjs }; +export { mjs }; +export { type }; +//// [package.json] +{ + "name": "package", + "private": true, + "type": "module" +} +//// [package.json] +{ + "name": "inner", + "private": true, + "exports": { + "./cjs/*": "./*.cjs", + "./cjs/exclude/*": null, + "./mjs/*": "./*.mjs", + "./mjs/exclude/*": null, + "./js/*": "./*.js", + "./js/exclude/*": null + } +} + +//// [index.js] +// esm format file +import * as cjsi from "inner/cjs/exclude/index"; +import * as mjsi from "inner/mjs/exclude/index"; +import * as typei from "inner/js/exclude/index"; +cjsi; +mjsi; +typei; +//// [index.mjs] +// esm format file +import * as cjsi from "inner/cjs/exclude/index"; +import * as mjsi from "inner/mjs/exclude/index"; +import * as typei from "inner/js/exclude/index"; +cjsi; +mjsi; +typei; +//// [index.cjs] +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || (function () { + var ownKeys = function(o) { + ownKeys = Object.getOwnPropertyNames || function (o) { + var ar = []; + for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k; + return ar; + }; + return ownKeys(o); + }; + return function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]); + __setModuleDefault(result, mod); + return result; + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +// cjs format file +const cjsi = __importStar(require("inner/cjs/exclude/index")); +const mjsi = __importStar(require("inner/mjs/exclude/index")); +const typei = __importStar(require("inner/js/exclude/index")); +cjsi; +mjsi; +typei; + + +//// [index.d.ts] +export {}; +//// [index.d.mts] +export {}; +//// [index.d.cts] +export {}; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsPackagePatternExportsExclude(module=node18).js b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsPackagePatternExportsExclude(module=node18).js new file mode 100644 index 0000000000..6e380318eb --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsPackagePatternExportsExclude(module=node18).js @@ -0,0 +1,108 @@ +//// [tests/cases/conformance/node/allowJs/nodeModulesAllowJsPackagePatternExportsExclude.ts] //// + +//// [index.js] +// esm format file +import * as cjsi from "inner/cjs/exclude/index"; +import * as mjsi from "inner/mjs/exclude/index"; +import * as typei from "inner/js/exclude/index"; +cjsi; +mjsi; +typei; +//// [index.mjs] +// esm format file +import * as cjsi from "inner/cjs/exclude/index"; +import * as mjsi from "inner/mjs/exclude/index"; +import * as typei from "inner/js/exclude/index"; +cjsi; +mjsi; +typei; +//// [index.cjs] +// cjs format file +import * as cjsi from "inner/cjs/exclude/index"; +import * as mjsi from "inner/mjs/exclude/index"; +import * as typei from "inner/js/exclude/index"; +cjsi; +mjsi; +typei; +//// [index.d.ts] +// cjs format file +import * as cjs from "inner/cjs/exclude/index"; +import * as mjs from "inner/mjs/exclude/index"; +import * as type from "inner/js/exclude/index"; +export { cjs }; +export { mjs }; +export { type }; +//// [index.d.mts] +// esm format file +import * as cjs from "inner/cjs/exclude/index"; +import * as mjs from "inner/mjs/exclude/index"; +import * as type from "inner/js/exclude/index"; +export { cjs }; +export { mjs }; +export { type }; +//// [index.d.cts] +// cjs format file +import * as cjs from "inner/cjs/exclude/index"; +import * as mjs from "inner/mjs/exclude/index"; +import * as type from "inner/js/exclude/index"; +export { cjs }; +export { mjs }; +export { type }; +//// [package.json] +{ + "name": "package", + "private": true, + "type": "module" +} +//// [package.json] +{ + "name": "inner", + "private": true, + "exports": { + "./cjs/*": "./*.cjs", + "./cjs/exclude/*": null, + "./mjs/*": "./*.mjs", + "./mjs/exclude/*": null, + "./js/*": "./*.js", + "./js/exclude/*": null + } +} + +//// [index.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +// esm format file +const cjsi = require("inner/cjs/exclude/index"); +const mjsi = require("inner/mjs/exclude/index"); +const typei = require("inner/js/exclude/index"); +cjsi; +mjsi; +typei; +//// [index.mjs] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +// esm format file +const cjsi = require("inner/cjs/exclude/index"); +const mjsi = require("inner/mjs/exclude/index"); +const typei = require("inner/js/exclude/index"); +cjsi; +mjsi; +typei; +//// [index.cjs] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +// cjs format file +const cjsi = require("inner/cjs/exclude/index"); +const mjsi = require("inner/mjs/exclude/index"); +const typei = require("inner/js/exclude/index"); +cjsi; +mjsi; +typei; + + +//// [index.d.ts] +export {}; +//// [index.d.mts] +export {}; +//// [index.d.cts] +export {}; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsPackagePatternExportsExclude(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsPackagePatternExportsExclude(module=node18).js.diff new file mode 100644 index 0000000000..72341d7bd8 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsPackagePatternExportsExclude(module=node18).js.diff @@ -0,0 +1,77 @@ +--- old.nodeModulesAllowJsPackagePatternExportsExclude(module=node18).js ++++ new.nodeModulesAllowJsPackagePatternExportsExclude(module=node18).js +@@= skipped -68, +68 lines =@@ + } + + //// [index.js] ++"use strict"; ++Object.defineProperty(exports, "__esModule", { value: true }); + // esm format file +-import * as cjsi from "inner/cjs/exclude/index"; +-import * as mjsi from "inner/mjs/exclude/index"; +-import * as typei from "inner/js/exclude/index"; ++const cjsi = require("inner/cjs/exclude/index"); ++const mjsi = require("inner/mjs/exclude/index"); ++const typei = require("inner/js/exclude/index"); + cjsi; + mjsi; + typei; + //// [index.mjs] ++"use strict"; ++Object.defineProperty(exports, "__esModule", { value: true }); + // esm format file +-import * as cjsi from "inner/cjs/exclude/index"; +-import * as mjsi from "inner/mjs/exclude/index"; +-import * as typei from "inner/js/exclude/index"; ++const cjsi = require("inner/cjs/exclude/index"); ++const mjsi = require("inner/mjs/exclude/index"); ++const typei = require("inner/js/exclude/index"); + cjsi; + mjsi; + typei; + //// [index.cjs] + "use strict"; +-var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { +- if (k2 === undefined) k2 = k; +- var desc = Object.getOwnPropertyDescriptor(m, k); +- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { +- desc = { enumerable: true, get: function() { return m[k]; } }; +- } +- Object.defineProperty(o, k2, desc); +-}) : (function(o, m, k, k2) { +- if (k2 === undefined) k2 = k; +- o[k2] = m[k]; +-})); +-var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { +- Object.defineProperty(o, "default", { enumerable: true, value: v }); +-}) : function(o, v) { +- o["default"] = v; +-}); +-var __importStar = (this && this.__importStar) || (function () { +- var ownKeys = function(o) { +- ownKeys = Object.getOwnPropertyNames || function (o) { +- var ar = []; +- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k; +- return ar; +- }; +- return ownKeys(o); +- }; +- return function (mod) { +- if (mod && mod.__esModule) return mod; +- var result = {}; +- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]); +- __setModuleDefault(result, mod); +- return result; +- }; +-})(); + Object.defineProperty(exports, "__esModule", { value: true }); + // cjs format file +-const cjsi = __importStar(require("inner/cjs/exclude/index")); +-const mjsi = __importStar(require("inner/mjs/exclude/index")); +-const typei = __importStar(require("inner/js/exclude/index")); ++const cjsi = require("inner/cjs/exclude/index"); ++const mjsi = require("inner/mjs/exclude/index"); ++const typei = require("inner/js/exclude/index"); + cjsi; + mjsi; + typei; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsPackagePatternExportsExclude(module=nodenext).js b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsPackagePatternExportsExclude(module=nodenext).js new file mode 100644 index 0000000000..3ba5fbbce0 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsPackagePatternExportsExclude(module=nodenext).js @@ -0,0 +1,137 @@ +//// [tests/cases/conformance/node/allowJs/nodeModulesAllowJsPackagePatternExportsExclude.ts] //// + +//// [index.js] +// esm format file +import * as cjsi from "inner/cjs/exclude/index"; +import * as mjsi from "inner/mjs/exclude/index"; +import * as typei from "inner/js/exclude/index"; +cjsi; +mjsi; +typei; +//// [index.mjs] +// esm format file +import * as cjsi from "inner/cjs/exclude/index"; +import * as mjsi from "inner/mjs/exclude/index"; +import * as typei from "inner/js/exclude/index"; +cjsi; +mjsi; +typei; +//// [index.cjs] +// cjs format file +import * as cjsi from "inner/cjs/exclude/index"; +import * as mjsi from "inner/mjs/exclude/index"; +import * as typei from "inner/js/exclude/index"; +cjsi; +mjsi; +typei; +//// [index.d.ts] +// cjs format file +import * as cjs from "inner/cjs/exclude/index"; +import * as mjs from "inner/mjs/exclude/index"; +import * as type from "inner/js/exclude/index"; +export { cjs }; +export { mjs }; +export { type }; +//// [index.d.mts] +// esm format file +import * as cjs from "inner/cjs/exclude/index"; +import * as mjs from "inner/mjs/exclude/index"; +import * as type from "inner/js/exclude/index"; +export { cjs }; +export { mjs }; +export { type }; +//// [index.d.cts] +// cjs format file +import * as cjs from "inner/cjs/exclude/index"; +import * as mjs from "inner/mjs/exclude/index"; +import * as type from "inner/js/exclude/index"; +export { cjs }; +export { mjs }; +export { type }; +//// [package.json] +{ + "name": "package", + "private": true, + "type": "module" +} +//// [package.json] +{ + "name": "inner", + "private": true, + "exports": { + "./cjs/*": "./*.cjs", + "./cjs/exclude/*": null, + "./mjs/*": "./*.mjs", + "./mjs/exclude/*": null, + "./js/*": "./*.js", + "./js/exclude/*": null + } +} + +//// [index.js] +// esm format file +import * as cjsi from "inner/cjs/exclude/index"; +import * as mjsi from "inner/mjs/exclude/index"; +import * as typei from "inner/js/exclude/index"; +cjsi; +mjsi; +typei; +//// [index.mjs] +// esm format file +import * as cjsi from "inner/cjs/exclude/index"; +import * as mjsi from "inner/mjs/exclude/index"; +import * as typei from "inner/js/exclude/index"; +cjsi; +mjsi; +typei; +//// [index.cjs] +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || (function () { + var ownKeys = function(o) { + ownKeys = Object.getOwnPropertyNames || function (o) { + var ar = []; + for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k; + return ar; + }; + return ownKeys(o); + }; + return function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]); + __setModuleDefault(result, mod); + return result; + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +// cjs format file +const cjsi = __importStar(require("inner/cjs/exclude/index")); +const mjsi = __importStar(require("inner/mjs/exclude/index")); +const typei = __importStar(require("inner/js/exclude/index")); +cjsi; +mjsi; +typei; + + +//// [index.d.ts] +export {}; +//// [index.d.mts] +export {}; +//// [index.d.cts] +export {}; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsPackagePatternExportsTrailers(module=node16).js b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsPackagePatternExportsTrailers(module=node16).js new file mode 100644 index 0000000000..b23d73a88c --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsPackagePatternExportsTrailers(module=node16).js @@ -0,0 +1,134 @@ +//// [tests/cases/conformance/node/allowJs/nodeModulesAllowJsPackagePatternExportsTrailers.ts] //// + +//// [index.js] +// esm format file +import * as cjsi from "inner/cjs/index.cjs"; +import * as mjsi from "inner/mjs/index.mjs"; +import * as typei from "inner/js/index.js"; +cjsi; +mjsi; +typei; +//// [index.mjs] +// esm format file +import * as cjsi from "inner/cjs/index.cjs"; +import * as mjsi from "inner/mjs/index.mjs"; +import * as typei from "inner/js/index.js"; +cjsi; +mjsi; +typei; +//// [index.cjs] +// cjs format file +import * as cjsi from "inner/cjs/index.cjs"; +import * as mjsi from "inner/mjs/index.mjs"; +import * as typei from "inner/js/index.js"; +cjsi; +mjsi; +typei; +//// [index.d.ts] +// cjs format file +import * as cjs from "inner/cjs/index.cjs"; +import * as mjs from "inner/mjs/index.mjs"; +import * as type from "inner/js/index.js"; +export { cjs }; +export { mjs }; +export { type }; +//// [index.d.mts] +// esm format file +import * as cjs from "inner/cjs/index.cjs"; +import * as mjs from "inner/mjs/index.mjs"; +import * as type from "inner/js/index.js"; +export { cjs }; +export { mjs }; +export { type }; +//// [index.d.cts] +// cjs format file +import * as cjs from "inner/cjs/index.cjs"; +import * as mjs from "inner/mjs/index.mjs"; +import * as type from "inner/js/index.js"; +export { cjs }; +export { mjs }; +export { type }; +//// [package.json] +{ + "name": "package", + "private": true, + "type": "module", +} +//// [package.json] +{ + "name": "inner", + "private": true, + "exports": { + "./cjs/*.cjs": "./*.cjs", + "./mjs/*.mjs": "./*.mjs", + "./js/*.js": "./*.js" + } +} + +//// [index.js] +// esm format file +import * as cjsi from "inner/cjs/index.cjs"; +import * as mjsi from "inner/mjs/index.mjs"; +import * as typei from "inner/js/index.js"; +cjsi; +mjsi; +typei; +//// [index.mjs] +// esm format file +import * as cjsi from "inner/cjs/index.cjs"; +import * as mjsi from "inner/mjs/index.mjs"; +import * as typei from "inner/js/index.js"; +cjsi; +mjsi; +typei; +//// [index.cjs] +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || (function () { + var ownKeys = function(o) { + ownKeys = Object.getOwnPropertyNames || function (o) { + var ar = []; + for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k; + return ar; + }; + return ownKeys(o); + }; + return function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]); + __setModuleDefault(result, mod); + return result; + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +// cjs format file +const cjsi = __importStar(require("inner/cjs/index.cjs")); +const mjsi = __importStar(require("inner/mjs/index.mjs")); +const typei = __importStar(require("inner/js/index.js")); +cjsi; +mjsi; +typei; + + +//// [index.d.ts] +export {}; +//// [index.d.mts] +export {}; +//// [index.d.cts] +export {}; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsPackagePatternExportsTrailers(module=node18).js b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsPackagePatternExportsTrailers(module=node18).js new file mode 100644 index 0000000000..d269d9f483 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsPackagePatternExportsTrailers(module=node18).js @@ -0,0 +1,105 @@ +//// [tests/cases/conformance/node/allowJs/nodeModulesAllowJsPackagePatternExportsTrailers.ts] //// + +//// [index.js] +// esm format file +import * as cjsi from "inner/cjs/index.cjs"; +import * as mjsi from "inner/mjs/index.mjs"; +import * as typei from "inner/js/index.js"; +cjsi; +mjsi; +typei; +//// [index.mjs] +// esm format file +import * as cjsi from "inner/cjs/index.cjs"; +import * as mjsi from "inner/mjs/index.mjs"; +import * as typei from "inner/js/index.js"; +cjsi; +mjsi; +typei; +//// [index.cjs] +// cjs format file +import * as cjsi from "inner/cjs/index.cjs"; +import * as mjsi from "inner/mjs/index.mjs"; +import * as typei from "inner/js/index.js"; +cjsi; +mjsi; +typei; +//// [index.d.ts] +// cjs format file +import * as cjs from "inner/cjs/index.cjs"; +import * as mjs from "inner/mjs/index.mjs"; +import * as type from "inner/js/index.js"; +export { cjs }; +export { mjs }; +export { type }; +//// [index.d.mts] +// esm format file +import * as cjs from "inner/cjs/index.cjs"; +import * as mjs from "inner/mjs/index.mjs"; +import * as type from "inner/js/index.js"; +export { cjs }; +export { mjs }; +export { type }; +//// [index.d.cts] +// cjs format file +import * as cjs from "inner/cjs/index.cjs"; +import * as mjs from "inner/mjs/index.mjs"; +import * as type from "inner/js/index.js"; +export { cjs }; +export { mjs }; +export { type }; +//// [package.json] +{ + "name": "package", + "private": true, + "type": "module", +} +//// [package.json] +{ + "name": "inner", + "private": true, + "exports": { + "./cjs/*.cjs": "./*.cjs", + "./mjs/*.mjs": "./*.mjs", + "./js/*.js": "./*.js" + } +} + +//// [index.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +// esm format file +const cjsi = require("inner/cjs/index.cjs"); +const mjsi = require("inner/mjs/index.mjs"); +const typei = require("inner/js/index.js"); +cjsi; +mjsi; +typei; +//// [index.mjs] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +// esm format file +const cjsi = require("inner/cjs/index.cjs"); +const mjsi = require("inner/mjs/index.mjs"); +const typei = require("inner/js/index.js"); +cjsi; +mjsi; +typei; +//// [index.cjs] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +// cjs format file +const cjsi = require("inner/cjs/index.cjs"); +const mjsi = require("inner/mjs/index.mjs"); +const typei = require("inner/js/index.js"); +cjsi; +mjsi; +typei; + + +//// [index.d.ts] +export {}; +//// [index.d.mts] +export {}; +//// [index.d.cts] +export {}; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsPackagePatternExportsTrailers(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsPackagePatternExportsTrailers(module=node18).js.diff new file mode 100644 index 0000000000..d526cae854 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsPackagePatternExportsTrailers(module=node18).js.diff @@ -0,0 +1,77 @@ +--- old.nodeModulesAllowJsPackagePatternExportsTrailers(module=node18).js ++++ new.nodeModulesAllowJsPackagePatternExportsTrailers(module=node18).js +@@= skipped -65, +65 lines =@@ + } + + //// [index.js] ++"use strict"; ++Object.defineProperty(exports, "__esModule", { value: true }); + // esm format file +-import * as cjsi from "inner/cjs/index.cjs"; +-import * as mjsi from "inner/mjs/index.mjs"; +-import * as typei from "inner/js/index.js"; ++const cjsi = require("inner/cjs/index.cjs"); ++const mjsi = require("inner/mjs/index.mjs"); ++const typei = require("inner/js/index.js"); + cjsi; + mjsi; + typei; + //// [index.mjs] ++"use strict"; ++Object.defineProperty(exports, "__esModule", { value: true }); + // esm format file +-import * as cjsi from "inner/cjs/index.cjs"; +-import * as mjsi from "inner/mjs/index.mjs"; +-import * as typei from "inner/js/index.js"; ++const cjsi = require("inner/cjs/index.cjs"); ++const mjsi = require("inner/mjs/index.mjs"); ++const typei = require("inner/js/index.js"); + cjsi; + mjsi; + typei; + //// [index.cjs] + "use strict"; +-var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { +- if (k2 === undefined) k2 = k; +- var desc = Object.getOwnPropertyDescriptor(m, k); +- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { +- desc = { enumerable: true, get: function() { return m[k]; } }; +- } +- Object.defineProperty(o, k2, desc); +-}) : (function(o, m, k, k2) { +- if (k2 === undefined) k2 = k; +- o[k2] = m[k]; +-})); +-var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { +- Object.defineProperty(o, "default", { enumerable: true, value: v }); +-}) : function(o, v) { +- o["default"] = v; +-}); +-var __importStar = (this && this.__importStar) || (function () { +- var ownKeys = function(o) { +- ownKeys = Object.getOwnPropertyNames || function (o) { +- var ar = []; +- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k; +- return ar; +- }; +- return ownKeys(o); +- }; +- return function (mod) { +- if (mod && mod.__esModule) return mod; +- var result = {}; +- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]); +- __setModuleDefault(result, mod); +- return result; +- }; +-})(); + Object.defineProperty(exports, "__esModule", { value: true }); + // cjs format file +-const cjsi = __importStar(require("inner/cjs/index.cjs")); +-const mjsi = __importStar(require("inner/mjs/index.mjs")); +-const typei = __importStar(require("inner/js/index.js")); ++const cjsi = require("inner/cjs/index.cjs"); ++const mjsi = require("inner/mjs/index.mjs"); ++const typei = require("inner/js/index.js"); + cjsi; + mjsi; + typei; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsPackagePatternExportsTrailers(module=nodenext).js b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsPackagePatternExportsTrailers(module=nodenext).js new file mode 100644 index 0000000000..b23d73a88c --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsPackagePatternExportsTrailers(module=nodenext).js @@ -0,0 +1,134 @@ +//// [tests/cases/conformance/node/allowJs/nodeModulesAllowJsPackagePatternExportsTrailers.ts] //// + +//// [index.js] +// esm format file +import * as cjsi from "inner/cjs/index.cjs"; +import * as mjsi from "inner/mjs/index.mjs"; +import * as typei from "inner/js/index.js"; +cjsi; +mjsi; +typei; +//// [index.mjs] +// esm format file +import * as cjsi from "inner/cjs/index.cjs"; +import * as mjsi from "inner/mjs/index.mjs"; +import * as typei from "inner/js/index.js"; +cjsi; +mjsi; +typei; +//// [index.cjs] +// cjs format file +import * as cjsi from "inner/cjs/index.cjs"; +import * as mjsi from "inner/mjs/index.mjs"; +import * as typei from "inner/js/index.js"; +cjsi; +mjsi; +typei; +//// [index.d.ts] +// cjs format file +import * as cjs from "inner/cjs/index.cjs"; +import * as mjs from "inner/mjs/index.mjs"; +import * as type from "inner/js/index.js"; +export { cjs }; +export { mjs }; +export { type }; +//// [index.d.mts] +// esm format file +import * as cjs from "inner/cjs/index.cjs"; +import * as mjs from "inner/mjs/index.mjs"; +import * as type from "inner/js/index.js"; +export { cjs }; +export { mjs }; +export { type }; +//// [index.d.cts] +// cjs format file +import * as cjs from "inner/cjs/index.cjs"; +import * as mjs from "inner/mjs/index.mjs"; +import * as type from "inner/js/index.js"; +export { cjs }; +export { mjs }; +export { type }; +//// [package.json] +{ + "name": "package", + "private": true, + "type": "module", +} +//// [package.json] +{ + "name": "inner", + "private": true, + "exports": { + "./cjs/*.cjs": "./*.cjs", + "./mjs/*.mjs": "./*.mjs", + "./js/*.js": "./*.js" + } +} + +//// [index.js] +// esm format file +import * as cjsi from "inner/cjs/index.cjs"; +import * as mjsi from "inner/mjs/index.mjs"; +import * as typei from "inner/js/index.js"; +cjsi; +mjsi; +typei; +//// [index.mjs] +// esm format file +import * as cjsi from "inner/cjs/index.cjs"; +import * as mjsi from "inner/mjs/index.mjs"; +import * as typei from "inner/js/index.js"; +cjsi; +mjsi; +typei; +//// [index.cjs] +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || (function () { + var ownKeys = function(o) { + ownKeys = Object.getOwnPropertyNames || function (o) { + var ar = []; + for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k; + return ar; + }; + return ownKeys(o); + }; + return function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]); + __setModuleDefault(result, mod); + return result; + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +// cjs format file +const cjsi = __importStar(require("inner/cjs/index.cjs")); +const mjsi = __importStar(require("inner/mjs/index.mjs")); +const typei = __importStar(require("inner/js/index.js")); +cjsi; +mjsi; +typei; + + +//// [index.d.ts] +export {}; +//// [index.d.mts] +export {}; +//// [index.d.cts] +export {}; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsSynchronousCallErrors(module=node16).js b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsSynchronousCallErrors(module=node16).js new file mode 100644 index 0000000000..3ea5819786 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsSynchronousCallErrors(module=node16).js @@ -0,0 +1,68 @@ +//// [tests/cases/conformance/node/allowJs/nodeModulesAllowJsSynchronousCallErrors.ts] //// + +//// [index.js] +// cjs format file +import {h} from "../index.js"; +import mod = require("../index.js"); +import {f as _f} from "./index.js"; +import mod2 = require("./index.js"); +export async function f() { + const mod3 = await import ("../index.js"); + const mod4 = await import ("./index.js"); + h(); +} +//// [index.js] +// esm format file +import {h as _h} from "./index.js"; +import mod = require("./index.js"); +import {f} from "./subfolder/index.js"; +import mod2 = require("./subfolder/index.js"); +export async function h() { + const mod3 = await import ("./index.js"); + const mod4 = await import ("./subfolder/index.js"); + f(); +} +//// [package.json] +{ + "name": "package", + "private": true, + "type": "module" +} +//// [package.json] +{ + "type": "commonjs" +} + +//// [index.js] +import { createRequire as _createRequire } from "module"; +const __require = _createRequire(import.meta.url); +// esm format file +import { h as _h } from "./index.js"; +const mod = __require("./index.js"); +import { f } from "./subfolder/index.js"; +const mod2 = __require("./subfolder/index.js"); +export async function h() { + const mod3 = await import("./index.js"); + const mod4 = await import("./subfolder/index.js"); + f(); +} +//// [index.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.f = f; +// cjs format file +const index_js_1 = require("../index.js"); +const mod = require("../index.js"); +const index_js_2 = require("./index.js"); +const mod2 = require("./index.js"); +async function f() { + const mod3 = await import("../index.js"); + const mod4 = await import("./index.js"); + (0, index_js_1.h)(); +} + + +//// [index.d.ts] +export declare function h(): Promise; +//// [index.d.ts] +export declare function f(): Promise; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsSynchronousCallErrors(module=node16).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsSynchronousCallErrors(module=node16).js.diff new file mode 100644 index 0000000000..d81e376bce --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsSynchronousCallErrors(module=node16).js.diff @@ -0,0 +1,11 @@ +--- old.nodeModulesAllowJsSynchronousCallErrors(module=node16).js ++++ new.nodeModulesAllowJsSynchronousCallErrors(module=node16).js +@@= skipped -62, +62 lines =@@ + + + //// [index.d.ts] +-export function h(): Promise; ++export declare function h(): Promise; + //// [index.d.ts] +-export function f(): Promise; ++export declare function f(): Promise; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsSynchronousCallErrors(module=node18).js b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsSynchronousCallErrors(module=node18).js new file mode 100644 index 0000000000..df11fc187e --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsSynchronousCallErrors(module=node18).js @@ -0,0 +1,69 @@ +//// [tests/cases/conformance/node/allowJs/nodeModulesAllowJsSynchronousCallErrors.ts] //// + +//// [index.js] +// cjs format file +import {h} from "../index.js"; +import mod = require("../index.js"); +import {f as _f} from "./index.js"; +import mod2 = require("./index.js"); +export async function f() { + const mod3 = await import ("../index.js"); + const mod4 = await import ("./index.js"); + h(); +} +//// [index.js] +// esm format file +import {h as _h} from "./index.js"; +import mod = require("./index.js"); +import {f} from "./subfolder/index.js"; +import mod2 = require("./subfolder/index.js"); +export async function h() { + const mod3 = await import ("./index.js"); + const mod4 = await import ("./subfolder/index.js"); + f(); +} +//// [package.json] +{ + "name": "package", + "private": true, + "type": "module" +} +//// [package.json] +{ + "type": "commonjs" +} + +//// [index.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.h = h; +// esm format file +const index_js_1 = require("./index.js"); +const mod = require("./index.js"); +const index_js_2 = require("./subfolder/index.js"); +const mod2 = require("./subfolder/index.js"); +async function h() { + const mod3 = await import("./index.js"); + const mod4 = await import("./subfolder/index.js"); + (0, index_js_2.f)(); +} +//// [index.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.f = f; +// cjs format file +const index_js_1 = require("../index.js"); +const mod = require("../index.js"); +const index_js_2 = require("./index.js"); +const mod2 = require("./index.js"); +async function f() { + const mod3 = await import("../index.js"); + const mod4 = await import("./index.js"); + (0, index_js_1.h)(); +} + + +//// [index.d.ts] +export declare function h(): Promise; +//// [index.d.ts] +export declare function f(): Promise; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsSynchronousCallErrors(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsSynchronousCallErrors(module=node18).js.diff new file mode 100644 index 0000000000..2db2a9c034 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsSynchronousCallErrors(module=node18).js.diff @@ -0,0 +1,38 @@ +--- old.nodeModulesAllowJsSynchronousCallErrors(module=node18).js ++++ new.nodeModulesAllowJsSynchronousCallErrors(module=node18).js +@@= skipped -33, +33 lines =@@ + } + + //// [index.js] +-import { createRequire as _createRequire } from "module"; +-const __require = _createRequire(import.meta.url); ++"use strict"; ++Object.defineProperty(exports, "__esModule", { value: true }); ++exports.h = h; + // esm format file +-import { h as _h } from "./index.js"; +-const mod = __require("./index.js"); +-import { f } from "./subfolder/index.js"; +-const mod2 = __require("./subfolder/index.js"); +-export async function h() { ++const index_js_1 = require("./index.js"); ++const mod = require("./index.js"); ++const index_js_2 = require("./subfolder/index.js"); ++const mod2 = require("./subfolder/index.js"); ++async function h() { + const mod3 = await import("./index.js"); + const mod4 = await import("./subfolder/index.js"); +- f(); ++ (0, index_js_2.f)(); + } + //// [index.js] + "use strict"; +@@= skipped -29, +30 lines =@@ + + + //// [index.d.ts] +-export function h(): Promise; ++export declare function h(): Promise; + //// [index.d.ts] +-export function f(): Promise; ++export declare function f(): Promise; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsSynchronousCallErrors(module=nodenext).js b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsSynchronousCallErrors(module=nodenext).js new file mode 100644 index 0000000000..3ea5819786 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsSynchronousCallErrors(module=nodenext).js @@ -0,0 +1,68 @@ +//// [tests/cases/conformance/node/allowJs/nodeModulesAllowJsSynchronousCallErrors.ts] //// + +//// [index.js] +// cjs format file +import {h} from "../index.js"; +import mod = require("../index.js"); +import {f as _f} from "./index.js"; +import mod2 = require("./index.js"); +export async function f() { + const mod3 = await import ("../index.js"); + const mod4 = await import ("./index.js"); + h(); +} +//// [index.js] +// esm format file +import {h as _h} from "./index.js"; +import mod = require("./index.js"); +import {f} from "./subfolder/index.js"; +import mod2 = require("./subfolder/index.js"); +export async function h() { + const mod3 = await import ("./index.js"); + const mod4 = await import ("./subfolder/index.js"); + f(); +} +//// [package.json] +{ + "name": "package", + "private": true, + "type": "module" +} +//// [package.json] +{ + "type": "commonjs" +} + +//// [index.js] +import { createRequire as _createRequire } from "module"; +const __require = _createRequire(import.meta.url); +// esm format file +import { h as _h } from "./index.js"; +const mod = __require("./index.js"); +import { f } from "./subfolder/index.js"; +const mod2 = __require("./subfolder/index.js"); +export async function h() { + const mod3 = await import("./index.js"); + const mod4 = await import("./subfolder/index.js"); + f(); +} +//// [index.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.f = f; +// cjs format file +const index_js_1 = require("../index.js"); +const mod = require("../index.js"); +const index_js_2 = require("./index.js"); +const mod2 = require("./index.js"); +async function f() { + const mod3 = await import("../index.js"); + const mod4 = await import("./index.js"); + (0, index_js_1.h)(); +} + + +//// [index.d.ts] +export declare function h(): Promise; +//// [index.d.ts] +export declare function f(): Promise; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsSynchronousCallErrors(module=nodenext).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsSynchronousCallErrors(module=nodenext).js.diff new file mode 100644 index 0000000000..155750de11 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsSynchronousCallErrors(module=nodenext).js.diff @@ -0,0 +1,11 @@ +--- old.nodeModulesAllowJsSynchronousCallErrors(module=nodenext).js ++++ new.nodeModulesAllowJsSynchronousCallErrors(module=nodenext).js +@@= skipped -62, +62 lines =@@ + + + //// [index.d.ts] +-export function h(): Promise; ++export declare function h(): Promise; + //// [index.d.ts] +-export function f(): Promise; ++export declare function f(): Promise; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsTopLevelAwait(module=node16).js b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsTopLevelAwait(module=node16).js new file mode 100644 index 0000000000..d7e534e7c4 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsTopLevelAwait(module=node16).js @@ -0,0 +1,46 @@ +//// [tests/cases/conformance/node/allowJs/nodeModulesAllowJsTopLevelAwait.ts] //// + +//// [index.js] +// cjs format file +const x = await 1; +export {x}; +for await (const y of []) {} +//// [index.js] +// esm format file +const x = await 1; +export {x}; +for await (const y of []) {} +//// [package.json] +{ + "name": "package", + "private": true, + "type": "module" +} +//// [package.json] +{ + "type": "commonjs" +} + +//// [index.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.x = void 0; +// cjs format file +const x = await 1; +exports.x = x; +for await (const y of []) { } +//// [index.js] +// esm format file +const x = await 1; +export { x }; +for await (const y of []) { } + + +//// [index.d.ts] +// cjs format file +declare const x = 1; +export { x }; +//// [index.d.ts] +// esm format file +declare const x = 1; +export { x }; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsTopLevelAwait(module=node16).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsTopLevelAwait(module=node16).js.diff new file mode 100644 index 0000000000..873e3df6c7 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsTopLevelAwait(module=node16).js.diff @@ -0,0 +1,15 @@ +--- old.nodeModulesAllowJsTopLevelAwait(module=node16).js ++++ new.nodeModulesAllowJsTopLevelAwait(module=node16).js +@@= skipped -36, +36 lines =@@ + + + //// [index.d.ts] +-export const x: 1; ++// cjs format file ++declare const x = 1; ++export { x }; + //// [index.d.ts] +-export const x: 1; ++// esm format file ++declare const x = 1; ++export { x }; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsTopLevelAwait(module=node18).js b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsTopLevelAwait(module=node18).js new file mode 100644 index 0000000000..83ba969813 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsTopLevelAwait(module=node18).js @@ -0,0 +1,49 @@ +//// [tests/cases/conformance/node/allowJs/nodeModulesAllowJsTopLevelAwait.ts] //// + +//// [index.js] +// cjs format file +const x = await 1; +export {x}; +for await (const y of []) {} +//// [index.js] +// esm format file +const x = await 1; +export {x}; +for await (const y of []) {} +//// [package.json] +{ + "name": "package", + "private": true, + "type": "module" +} +//// [package.json] +{ + "type": "commonjs" +} + +//// [index.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.x = void 0; +// cjs format file +const x = await 1; +exports.x = x; +for await (const y of []) { } +//// [index.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.x = void 0; +// esm format file +const x = await 1; +exports.x = x; +for await (const y of []) { } + + +//// [index.d.ts] +// cjs format file +declare const x = 1; +export { x }; +//// [index.d.ts] +// esm format file +declare const x = 1; +export { x }; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsTopLevelAwait(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsTopLevelAwait(module=node18).js.diff new file mode 100644 index 0000000000..05093d7f3f --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsTopLevelAwait(module=node18).js.diff @@ -0,0 +1,26 @@ +--- old.nodeModulesAllowJsTopLevelAwait(module=node18).js ++++ new.nodeModulesAllowJsTopLevelAwait(module=node18).js +@@= skipped -29, +29 lines =@@ + exports.x = x; + for await (const y of []) { } + //// [index.js] ++"use strict"; ++Object.defineProperty(exports, "__esModule", { value: true }); ++exports.x = void 0; + // esm format file + const x = await 1; +-export { x }; ++exports.x = x; + for await (const y of []) { } + + + //// [index.d.ts] +-export const x: 1; ++// cjs format file ++declare const x = 1; ++export { x }; + //// [index.d.ts] +-export const x: 1; ++// esm format file ++declare const x = 1; ++export { x }; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsTopLevelAwait(module=nodenext).js b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsTopLevelAwait(module=nodenext).js new file mode 100644 index 0000000000..d7e534e7c4 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsTopLevelAwait(module=nodenext).js @@ -0,0 +1,46 @@ +//// [tests/cases/conformance/node/allowJs/nodeModulesAllowJsTopLevelAwait.ts] //// + +//// [index.js] +// cjs format file +const x = await 1; +export {x}; +for await (const y of []) {} +//// [index.js] +// esm format file +const x = await 1; +export {x}; +for await (const y of []) {} +//// [package.json] +{ + "name": "package", + "private": true, + "type": "module" +} +//// [package.json] +{ + "type": "commonjs" +} + +//// [index.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.x = void 0; +// cjs format file +const x = await 1; +exports.x = x; +for await (const y of []) { } +//// [index.js] +// esm format file +const x = await 1; +export { x }; +for await (const y of []) { } + + +//// [index.d.ts] +// cjs format file +declare const x = 1; +export { x }; +//// [index.d.ts] +// esm format file +declare const x = 1; +export { x }; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsTopLevelAwait(module=nodenext).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsTopLevelAwait(module=nodenext).js.diff new file mode 100644 index 0000000000..4499e86013 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsTopLevelAwait(module=nodenext).js.diff @@ -0,0 +1,15 @@ +--- old.nodeModulesAllowJsTopLevelAwait(module=nodenext).js ++++ new.nodeModulesAllowJsTopLevelAwait(module=nodenext).js +@@= skipped -36, +36 lines =@@ + + + //// [index.d.ts] +-export const x: 1; ++// cjs format file ++declare const x = 1; ++export { x }; + //// [index.d.ts] +-export const x: 1; ++// esm format file ++declare const x = 1; ++export { x }; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesCJSEmit1(module=node18).js b/testdata/baselines/reference/submodule/conformance/nodeModulesCJSEmit1(module=node18).js new file mode 100644 index 0000000000..0432572e6c --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesCJSEmit1(module=node18).js @@ -0,0 +1,49 @@ +//// [tests/cases/conformance/node/nodeModulesCJSEmit1.ts] //// + +//// [1.cjs] +module.exports = {}; + +//// [2.cjs] +exports.foo = 0; + +//// [3.cjs] +import "foo"; +exports.foo = {}; + +//// [4.cjs] +; + +//// [5.cjs] +import two from "./2.cjs"; // ok +import three from "./3.cjs"; // error +two.foo; +three.foo; + + +//// [1.cjs] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +export = {}; +module.exports = {}; +//// [2.cjs] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +export var foo = 0; +exports.foo = 0; +//// [3.cjs] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +require("foo"); +export var foo = {}; +exports.foo = {}; +//// [4.cjs] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +; +//// [5.cjs] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const _2_cjs_1 = require("./2.cjs"); // ok +const _3_cjs_1 = require("./3.cjs"); // error +_2_cjs_1.default.foo; +_3_cjs_1.default.foo; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesCJSEmit1(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesCJSEmit1(module=node18).js.diff new file mode 100644 index 0000000000..9c47d84aa9 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesCJSEmit1(module=node18).js.diff @@ -0,0 +1,36 @@ +--- old.nodeModulesCJSEmit1(module=node18).js ++++ new.nodeModulesCJSEmit1(module=node18).js +@@= skipped -21, +21 lines =@@ + + //// [1.cjs] + "use strict"; ++Object.defineProperty(exports, "__esModule", { value: true }); ++export = {}; + module.exports = {}; + //// [2.cjs] + "use strict"; ++Object.defineProperty(exports, "__esModule", { value: true }); ++export var foo = 0; + exports.foo = 0; + //// [3.cjs] + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + require("foo"); ++export var foo = {}; + exports.foo = {}; + //// [4.cjs] + "use strict"; +@@= skipped -15, +20 lines =@@ + ; + //// [5.cjs] + "use strict"; +-var __importDefault = (this && this.__importDefault) || function (mod) { +- return (mod && mod.__esModule) ? mod : { "default": mod }; +-}; + Object.defineProperty(exports, "__esModule", { value: true }); +-const _2_cjs_1 = __importDefault(require("./2.cjs")); // ok +-const _3_cjs_1 = __importDefault(require("./3.cjs")); // error ++const _2_cjs_1 = require("./2.cjs"); // ok ++const _3_cjs_1 = require("./3.cjs"); // error + _2_cjs_1.default.foo; + _3_cjs_1.default.foo; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesCJSEmit1(module=nodenext).js b/testdata/baselines/reference/submodule/conformance/nodeModulesCJSEmit1(module=nodenext).js new file mode 100644 index 0000000000..41870a452e --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesCJSEmit1(module=nodenext).js @@ -0,0 +1,52 @@ +//// [tests/cases/conformance/node/nodeModulesCJSEmit1.ts] //// + +//// [1.cjs] +module.exports = {}; + +//// [2.cjs] +exports.foo = 0; + +//// [3.cjs] +import "foo"; +exports.foo = {}; + +//// [4.cjs] +; + +//// [5.cjs] +import two from "./2.cjs"; // ok +import three from "./3.cjs"; // error +two.foo; +three.foo; + + +//// [1.cjs] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +export = {}; +module.exports = {}; +//// [2.cjs] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +export var foo = 0; +exports.foo = 0; +//// [3.cjs] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +require("foo"); +export var foo = {}; +exports.foo = {}; +//// [4.cjs] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +; +//// [5.cjs] +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const _2_cjs_1 = __importDefault(require("./2.cjs")); // ok +const _3_cjs_1 = __importDefault(require("./3.cjs")); // error +_2_cjs_1.default.foo; +_3_cjs_1.default.foo; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesCJSEmit1(module=nodenext).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesCJSEmit1(module=nodenext).js.diff new file mode 100644 index 0000000000..5c15cd3392 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesCJSEmit1(module=nodenext).js.diff @@ -0,0 +1,22 @@ +--- old.nodeModulesCJSEmit1(module=nodenext).js ++++ new.nodeModulesCJSEmit1(module=nodenext).js +@@= skipped -21, +21 lines =@@ + + //// [1.cjs] + "use strict"; ++Object.defineProperty(exports, "__esModule", { value: true }); ++export = {}; + module.exports = {}; + //// [2.cjs] + "use strict"; ++Object.defineProperty(exports, "__esModule", { value: true }); ++export var foo = 0; + exports.foo = 0; + //// [3.cjs] + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + require("foo"); ++export var foo = {}; + exports.foo = {}; + //// [4.cjs] + "use strict"; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/overloadTag1.js b/testdata/baselines/reference/submodule/conformance/overloadTag1.js new file mode 100644 index 0000000000..9d18b3fd0b --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/overloadTag1.js @@ -0,0 +1,127 @@ +//// [tests/cases/conformance/jsdoc/overloadTag1.ts] //// + +//// [overloadTag1.js] +/** + * @overload + * @param {number} a + * @param {number} b + * @returns {number} + * + * @overload + * @param {string} a + * @param {boolean} b + * @returns {string} + * + * @param {string | number} a + * @param {string | number} b + * @returns {string | number} + */ +export function overloaded(a,b) { + if (typeof a === "string" && typeof b === "string") { + return a + b; + } else if (typeof a === "number" && typeof b === "number") { + return a + b; + } + throw new Error("Invalid arguments"); +} +var o1 = overloaded(1,2) +var o2 = overloaded("zero", "one") +var o3 = overloaded("a",false) + +/** + * @overload + * @param {number} a + * @param {number} b + * @returns {number} + * + * @overload + * @param {string} a + * @param {boolean} b + * @returns {string} + */ +export function uncheckedInternally(a, b) { + return a + b; +} +uncheckedInternally(1,2) +uncheckedInternally("zero", "one") + + +//// [overloadTag1.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.overloaded = overloaded; +exports.uncheckedInternally = uncheckedInternally; +/** + * @overload + * @param {number} a + * @param {number} b + * @returns {number} + * + * @overload + * @param {string} a + * @param {boolean} b + * @returns {string} + * + * @param {string | number} a + * @param {string | number} b + * @returns {string | number} + */ +function overloaded(a, b) { + if (typeof a === "string" && typeof b === "string") { + return a + b; + } + else if (typeof a === "number" && typeof b === "number") { + return a + b; + } + throw new Error("Invalid arguments"); +} +var o1 = overloaded(1, 2); +var o2 = overloaded("zero", "one"); +var o3 = overloaded("a", false); +/** + * @overload + * @param {number} a + * @param {number} b + * @returns {number} + * + * @overload + * @param {string} a + * @param {boolean} b + * @returns {string} + */ +function uncheckedInternally(a, b) { + return a + b; +} +uncheckedInternally(1, 2); +uncheckedInternally("zero", "one"); + + +//// [overloadTag1.d.ts] +/** + * @overload + * @param {number} a + * @param {number} b + * @returns {number} + * + * @overload + * @param {string} a + * @param {boolean} b + * @returns {string} + * + * @param {string | number} a + * @param {string | number} b + * @returns {string | number} + */ +export declare function overloaded(a: string | number, b: string | number): string | number; +/** + * @overload + * @param {number} a + * @param {number} b + * @returns {number} + * + * @overload + * @param {string} a + * @param {boolean} b + * @returns {string} + */ +export declare function uncheckedInternally(a: any, b: any): any; diff --git a/testdata/baselines/reference/submodule/conformance/overloadTag1.js.diff b/testdata/baselines/reference/submodule/conformance/overloadTag1.js.diff new file mode 100644 index 0000000000..cfa83a0658 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/overloadTag1.js.diff @@ -0,0 +1,60 @@ +--- old.overloadTag1.js ++++ new.overloadTag1.js +@@= skipped -111, +111 lines =@@ + * @param {string | number} b + * @returns {string | number} + */ +-export function overloaded(a: number, b: number): number; +-/** +- * @overload +- * @param {number} a +- * @param {number} b +- * @returns {number} +- * +- * @overload +- * @param {string} a +- * @param {boolean} b +- * @returns {string} +- * +- * @param {string | number} a +- * @param {string | number} b +- * @returns {string | number} +- */ +-export function overloaded(a: string, b: boolean): string; +-/** +- * @overload +- * @param {number} a +- * @param {number} b +- * @returns {number} +- * +- * @overload +- * @param {string} a +- * @param {boolean} b +- * @returns {string} +- */ +-export function uncheckedInternally(a: number, b: number): number; +-/** +- * @overload +- * @param {number} a +- * @param {number} b +- * @returns {number} +- * +- * @overload +- * @param {string} a +- * @param {boolean} b +- * @returns {string} +- */ +-export function uncheckedInternally(a: string, b: boolean): string; ++export declare function overloaded(a: string | number, b: string | number): string | number; ++/** ++ * @overload ++ * @param {number} a ++ * @param {number} b ++ * @returns {number} ++ * ++ * @overload ++ * @param {string} a ++ * @param {boolean} b ++ * @returns {string} ++ */ ++export declare function uncheckedInternally(a: any, b: any): any; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/overloadTag2.js b/testdata/baselines/reference/submodule/conformance/overloadTag2.js new file mode 100644 index 0000000000..8e03c4882c --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/overloadTag2.js @@ -0,0 +1,80 @@ +//// [tests/cases/conformance/jsdoc/overloadTag2.ts] //// + +//// [overloadTag2.js] +export class Foo { + #a = true ? 1 : "1" + #b + + /** + * Should not have an implicit any error, because constructor's return type is always implicit + * @constructor + * @overload + * @param {string} a + * @param {number} b + */ + /** + * @constructor + * @overload + * @param {number} a + */ + /** + * @constructor + * @overload + * @param {string} a + *//** + * @constructor + * @param {number | string} a + */ + constructor(a, b) { + this.#a = a + this.#b = b + } +} +var a = new Foo() +var b = new Foo('str') +var c = new Foo(2) +var d = new Foo('str', 2) + + +//// [overloadTag2.js] +export class Foo { + #a = true ? 1 : "1"; + #b; + /** + * Should not have an implicit any error, because constructor's return type is always implicit + * @constructor + * @overload + * @param {string} a + * @param {number} b + */ + /** + * @constructor + * @overload + * @param {number} a + */ + /** + * @constructor + * @overload + * @param {string} a + */ /** + * @constructor + * @param {number | string} a + */ + constructor(a, b) { + this.#a = a; + this.#b = b; + } +} +var a = new Foo(); +var b = new Foo('str'); +var c = new Foo(2); +var d = new Foo('str', 2); + + +//// [overloadTag2.d.ts] +export declare class Foo { + #private; + constructor(a: string, b: number); + constructor(a: number); + constructor(a: string); +} diff --git a/testdata/baselines/reference/submodule/conformance/overloadTag2.js.diff b/testdata/baselines/reference/submodule/conformance/overloadTag2.js.diff new file mode 100644 index 0000000000..cdc90d2751 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/overloadTag2.js.diff @@ -0,0 +1,31 @@ +--- old.overloadTag2.js ++++ new.overloadTag2.js +@@= skipped -71, +71 lines =@@ + + + //// [overloadTag2.d.ts] +-export class Foo { +- /** +- * Should not have an implicit any error, because constructor's return type is always implicit +- * @constructor +- * @overload +- * @param {string} a +- * @param {number} b +- */ ++export declare class Foo { ++ #private; + constructor(a: string, b: number); +- /** +- * @constructor +- * @overload +- * @param {number} a +- */ + constructor(a: number); +- /** +- * @constructor +- * @overload +- * @param {string} a +- */ + constructor(a: string); +- #private; + } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/parserArrowFunctionExpression10.js b/testdata/baselines/reference/submodule/conformance/parserArrowFunctionExpression10.js new file mode 100644 index 0000000000..9109ef6971 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/parserArrowFunctionExpression10.js @@ -0,0 +1,13 @@ +//// [tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression10.ts] //// + +//// [fileJs.js] +a ? (b) : c => (d) : e => f // Not legal JS; "Unexpected token ':'" at last colon + +//// [fileTs.ts] +a ? (b) : c => (d) : e => f + + +//// [fileJs.js] +a ? (b) => (d) : e => f; // Not legal JS; "Unexpected token ':'" at last colon +//// [fileTs.js] +a ? (b) => (d) : e => f; diff --git a/testdata/baselines/reference/submodule/conformance/parserArrowFunctionExpression11.js b/testdata/baselines/reference/submodule/conformance/parserArrowFunctionExpression11.js new file mode 100644 index 0000000000..4b3d15555a --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/parserArrowFunctionExpression11.js @@ -0,0 +1,13 @@ +//// [tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression11.ts] //// + +//// [fileJs.js] +a ? b ? c : (d) : e => f // Legal JS + +//// [fileTs.ts] +a ? b ? c : (d) : e => f + + +//// [fileJs.js] +a ? b ? c : (d) : e => f; // Legal JS +//// [fileTs.js] +a ? b ? c : (d) : e => f; diff --git a/testdata/baselines/reference/submodule/conformance/parserArrowFunctionExpression12.js b/testdata/baselines/reference/submodule/conformance/parserArrowFunctionExpression12.js new file mode 100644 index 0000000000..727fb88815 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/parserArrowFunctionExpression12.js @@ -0,0 +1,13 @@ +//// [tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression12.ts] //// + +//// [fileJs.js] +a ? (b) => (c): d => e // Legal JS + +//// [fileTs.ts] +a ? (b) => (c): d => e + + +//// [fileJs.js] +a ? (b) => (c) : d => e; // Legal JS +//// [fileTs.js] +a ? (b) => (c) : d => e; diff --git a/testdata/baselines/reference/submodule/conformance/parserArrowFunctionExpression13.js b/testdata/baselines/reference/submodule/conformance/parserArrowFunctionExpression13.js new file mode 100644 index 0000000000..d0ecd1f3fd --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/parserArrowFunctionExpression13.js @@ -0,0 +1,13 @@ +//// [tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression13.ts] //// + +//// [fileJs.js] +a ? () => a() : (): any => null; // Not legal JS; "Unexpected token ')'" at last paren + +//// [fileTs.ts] +a ? () => a() : (): any => null; + + +//// [fileJs.js] +a ? () => a() : () => null; // Not legal JS; "Unexpected token ')'" at last paren +//// [fileTs.js] +a ? () => a() : () => null; diff --git a/testdata/baselines/reference/submodule/conformance/parserArrowFunctionExpression14.js b/testdata/baselines/reference/submodule/conformance/parserArrowFunctionExpression14.js new file mode 100644 index 0000000000..7c4da63e4d --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/parserArrowFunctionExpression14.js @@ -0,0 +1,13 @@ +//// [tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression14.ts] //// + +//// [fileJs.js] +a() ? (b: number, c?: string): void => d() : e; // Not legal JS; "Unexpected token ':'" at first colon + +//// [fileTs.ts] +a() ? (b: number, c?: string): void => d() : e; + + +//// [fileJs.js] +a() ? (b, c) => d() : e; // Not legal JS; "Unexpected token ':'" at first colon +//// [fileTs.js] +a() ? (b, c) => d() : e; diff --git a/testdata/baselines/reference/submodule/conformance/parserArrowFunctionExpression15.js b/testdata/baselines/reference/submodule/conformance/parserArrowFunctionExpression15.js new file mode 100644 index 0000000000..00eb062bed --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/parserArrowFunctionExpression15.js @@ -0,0 +1,13 @@ +//// [tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression15.ts] //// + +//// [fileJs.js] +false ? (param): string => param : null // Not legal JS; "Unexpected token ':'" at last colon + +//// [fileTs.ts] +false ? (param): string => param : null + + +//// [fileJs.js] +false ? (param) => param : null; // Not legal JS; "Unexpected token ':'" at last colon +//// [fileTs.js] +false ? (param) => param : null; diff --git a/testdata/baselines/reference/submodule/conformance/parserArrowFunctionExpression16.js b/testdata/baselines/reference/submodule/conformance/parserArrowFunctionExpression16.js new file mode 100644 index 0000000000..8c7861c2dd --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/parserArrowFunctionExpression16.js @@ -0,0 +1,13 @@ +//// [tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression16.ts] //// + +//// [fileJs.js] +true ? false ? (param): string => param : null : null // Not legal JS; "Unexpected token ':'" at last colon + +//// [fileTs.ts] +true ? false ? (param): string => param : null : null + + +//// [fileJs.js] +true ? false ? (param) => param : null : null; // Not legal JS; "Unexpected token ':'" at last colon +//// [fileTs.js] +true ? false ? (param) => param : null : null; diff --git a/testdata/baselines/reference/submodule/conformance/parserArrowFunctionExpression17.js b/testdata/baselines/reference/submodule/conformance/parserArrowFunctionExpression17.js new file mode 100644 index 0000000000..469c9e2b85 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/parserArrowFunctionExpression17.js @@ -0,0 +1,13 @@ +//// [tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression17.ts] //// + +//// [fileJs.js] +a ? b : (c) : d => e // Not legal JS; "Unexpected token ':'" at last colon + +//// [fileTs.ts] +a ? b : (c) : d => e + + +//// [fileJs.js] +a ? b : (c) => e; // Not legal JS; "Unexpected token ':'" at last colon +//// [fileTs.js] +a ? b : (c) => e; diff --git a/testdata/baselines/reference/submodule/conformance/parserArrowFunctionExpression8.js b/testdata/baselines/reference/submodule/conformance/parserArrowFunctionExpression8.js new file mode 100644 index 0000000000..e116ee9c9a --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/parserArrowFunctionExpression8.js @@ -0,0 +1,13 @@ +//// [tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression8.ts] //// + +//// [fileJs.js] +x ? y => ({ y }) : z => ({ z }) // Legal JS + +//// [fileTs.ts] +x ? y => ({ y }) : z => ({ z }) + + +//// [fileJs.js] +x ? y => ({ y }) : z => ({ z }); // Legal JS +//// [fileTs.js] +x ? y => ({ y }) : z => ({ z }); diff --git a/testdata/baselines/reference/submodule/conformance/parserArrowFunctionExpression9.js b/testdata/baselines/reference/submodule/conformance/parserArrowFunctionExpression9.js new file mode 100644 index 0000000000..891fd4914f --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/parserArrowFunctionExpression9.js @@ -0,0 +1,13 @@ +//// [tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression9.ts] //// + +//// [fileJs.js] +b ? (c) : d => e // Legal JS + +//// [fileTs.ts] +b ? (c) : d => e + + +//// [fileJs.js] +b ? (c) : d => e; // Legal JS +//// [fileTs.js] +b ? (c) : d => e; diff --git a/testdata/baselines/reference/submodule/conformance/plainJSBinderErrors.js b/testdata/baselines/reference/submodule/conformance/plainJSBinderErrors.js new file mode 100644 index 0000000000..83ff55ebfa --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/plainJSBinderErrors.js @@ -0,0 +1,86 @@ +//// [tests/cases/conformance/salsa/plainJSBinderErrors.ts] //// + +//// [plainJSBinderErrors.js] +export default 12 +export default 13 +const await = 1 +const yield = 2 +async function f() { + const await = 3 +} +function* g() { + const yield = 4 +} +class C { + #constructor = 5 + deleted() { + function container(f) { + delete f + } + var g = 6 + delete g + delete container + } + evalArguments() { + const eval = 7 + const arguments = 8 + } + withOctal() { + const redundant = 0o10 + with (redundant) { + return toFixed() + } + } + label() { + for(;;) { + label: var x = 1 + break label + } + return x + } +} +const eval = 9 +const arguments = 10 + + +//// [plainJSBinderErrors.js] +export default 12; +export default 13; +const await = 1; +const yield = 2; +async function f() { + const await = 3; +} +function* g() { + const yield = 4; +} +class C { + #constructor = 5; + deleted() { + function container(f) { + delete f; + } + var g = 6; + delete g; + delete container; + } + evalArguments() { + const eval = 7; + const arguments = 8; + } + withOctal() { + const redundant = 0o10; + with (redundant) { + return toFixed(); + } + } + label() { + for (;;) { + label: var x = 1; + break label; + } + return x; + } +} +const eval = 9; +const arguments = 10; diff --git a/testdata/baselines/reference/submodule/conformance/plainJSGrammarErrors.js b/testdata/baselines/reference/submodule/conformance/plainJSGrammarErrors.js new file mode 100644 index 0000000000..eccd22d9e6 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/plainJSGrammarErrors.js @@ -0,0 +1,410 @@ +//// [tests/cases/conformance/salsa/plainJSGrammarErrors.ts] //// + +//// [plainJSGrammarErrors.js] +class C { + // #private mistakes + q = #unbound + m() { + #p + if (#po in this) { + } + } + #m() { + this.#m = () => {} + } + // await in static block + static { + for await (const x of [1,2,3]) { + console.log(x) + } + return null + } + // modifier mistakes + static constructor() { } + async constructor() { } + const x = 1 + const y() { + return 12 + } + async async extremelyAsync() { + } + async static oorder(){ } + export cantExportProperty = 1 + export cantExportMethod() { + } + + // accessor mistakes + get incorporeal(); + get parametric(n) { return 1 } + set invariant() { } + set binary(fst, snd) { } + set variable(...n) { } + + // other + "constructor" = 16 +} +class { + missingName = true +} +class Doubler extends C extends C { } +class Trebler extends C,C,C { } +// #private mistakes +#unrelated +junk.#m +new C().#m + +// modifier mistakes +export export var extremelyExported = 10 +export static var staticExport = 1 +function staticParam(static x = 1) { return x } +async export function oorder(x = 1) { return x } +function cantExportParam(export x = 1) { return x } +function cantAsyncParam(async x = 1) { return x } +async async function extremelyAsync() {} +async class CantAsyncClass { + async cantAsyncPropert = 1 +} +async const cantAsyncConst = 2 +async import 'assert' +async export { CantAsyncClass } +export import 'fs' +export export { C } +function nestedExports() { + export { staticParam } + import 'fs' + export default 12 +} +function outerStaticFunction() { + static function staticFunction() { } +} +const noStaticLiteralMethods = { + static m() { + } +} + +// rest parameters +function restMustBeLast(...x, y) { +} +function restCantHaveInitialiser(...x = [1,2,3]) { +} +function restCantHaveTrailingComma (...x,) { +} +;({ ...{} } = {}) +const doom = { e: 1, m: 1, name: "knee-deep" } +const { ...rest, e: episode, m: mission } = doom +const { e: eep, m: em, ...rest: noRestAllowed } = doom +const { e: erp, m: erm, ...noInitialiser = true } = doom + +// left-over parsing +var; +var x = 1 || 2 ?? 3 +var x = 2 ?? 3 || 4 +const arr = x + => x + 1 +var a = [1,2] +a?.`length`; +const o = { + [console.log('oh no'),2]: 'hi', + #noPrivate: 3, + export cantExportProperties: 4, + // TODO: See what the existing JS error is like for these + cantHaveQuestionMark?: 1, + m?() { return 12 }, + definitely!, + definiteMethod!() { return 13 }, +} +const noAssignment = { + assignment = 1, +} +var noTrailingComma = 1,; +class MissingExtends extends { } + +// let/const mistakes +const { e: ee }; +const noInit; +let let = 15; +if (true) + let onlyBlockLet = 17; +if (true) + const onlyBlockConst = 18; + +// loop mistakes +let async +export const l = [1,2,3] +for (async of l) { + console.log(x) +} +for (const cantHaveInit = 1 of [1,2,3]) { + console.log(cantHaveInit) +} +for (const cantHaveInit = 1 in [1,2,3]) { + console.log(cantHaveInit) +} +for (let y, x of [1,2,3]) { + console.log(x) +} +for (let y, x in [1,2,3]) { + console.log(x) +} + +// duplication mistakes +var b +switch (b) { + case false: + console.log('no') + default: + console.log('yes') + default: + console.log('wat') +} +try { + throw 2 +} +catch (e) { + const e = 1 + console.log(e) +} +try { + throw 20 +} +catch (e = 0) { +} +label: for (const x in [1,2,3]) { + label: for (const y in [1,2,3]) { + break label; + } +} + +// labels +function crossFunctionBoundary() { + outer: for(;;) { + function test() { + break outer + } + test() + } +} +function continueIterationOnly(x) { + outer: switch (x) { + case 1: + continue outer + } +} +function jumpToLabelOnly(x) { + break jumpToLabelOnly +} +for (;;) { + break toplevel + continue toplevel +} +break +continue + +// other weirdness +export let noMeta = import.metal +function foo() { new.targe } +const nullaryDynamicImport = import() +const trinaryDynamicImport = import('1', '2', '3') +const spreadDynamicImport = import(...[]) + +return + + +//// [plainJSGrammarErrors.js] +class C { + // #private mistakes + q = #unbound; + m() { + #p; + if (#po in this) { + } + } + #m() { + this.#m = () => { }; + } + // await in static block + static { + for await (const x of [1, 2, 3]) { + console.log(x); + } + return null; + } + // modifier mistakes + static constructor() { } + async constructor() { } + x = 1; + y() { + return 12; + } + async async extremelyAsync() { + } + async static oorder() { } + export cantExportProperty = 1; + export cantExportMethod() { + } + get parametric(n) { return 1; } + set invariant() { } + set binary(fst, snd) { } + set variable(...n) { } + // other + "constructor" = 16; +} +class { + missingName = true; +} +class Doubler extends C extends C { +} +class Trebler extends C, C, C { +} +// #private mistakes +#unrelated; +junk.#m; +new C().#m; +// modifier mistakes +export export var extremelyExported = 10; +export static var staticExport = 1; +function staticParam(static x = 1) { return x; } +async export function oorder(x = 1) { return x; } +function cantExportParam(x = 1) { return x; } +function cantAsyncParam(async x = 1) { return x; } +async async function extremelyAsync() { } +async class CantAsyncClass { + async cantAsyncPropert = 1; +} +async const cantAsyncConst = 2; +async import 'assert'; +async export { CantAsyncClass }; +export import 'fs'; +export { C }; +function nestedExports() { + export { staticParam }; + import 'fs'; + export default 12; +} +function outerStaticFunction() { + static function staticFunction() { } +} +const noStaticLiteralMethods = { + static m() { + } +}; +// rest parameters +function restMustBeLast(...x, y) { +} +function restCantHaveInitialiser(...x = [1, 2, 3]) { +} +function restCantHaveTrailingComma(...x) { +} +; +({ ...{} } = {}); +const doom = { e: 1, m: 1, name: "knee-deep" }; +const { ...rest, e: episode, m: mission } = doom; +const { e: eep, m: em, ...rest: noRestAllowed } = doom; +const { e: erp, m: erm, ...noInitialiser = true } = doom; +// left-over parsing +var ; +var x = (1 || 2) ?? 3; +var x = 2 ?? (3 || 4); +const arr = x => x + 1; +var a = [1, 2]; +a `length`; +const o = { + [(console.log('oh no'), 2)]: 'hi', + #noPrivate: 3, + cantExportProperties: 4, + // TODO: See what the existing JS error is like for these + cantHaveQuestionMark: 1, + m() { return 12; }, + definitely, + definiteMethod() { return 13; }, +}; +const noAssignment = { + assignment = 1, +}; +var noTrailingComma = 1; +class MissingExtends extends { +} +// let/const mistakes +const { e: ee }; +const noInit; +let let = 15; +if (true) + let onlyBlockLet = 17; +if (true) + const onlyBlockConst = 18; +// loop mistakes +let async; +export const l = [1, 2, 3]; +for (async of l) { + console.log(x); +} +for (const cantHaveInit = 1 of [1, 2, 3]) { + console.log(cantHaveInit); +} +for (const cantHaveInit = 1 in [1, 2, 3]) { + console.log(cantHaveInit); +} +for (let y, x of [1, 2, 3]) { + console.log(x); +} +for (let y, x in [1, 2, 3]) { + console.log(x); +} +// duplication mistakes +var b; +switch (b) { + case false: + console.log('no'); + default: + console.log('yes'); + default: + console.log('wat'); +} +try { + throw 2; +} +catch (e) { + const e = 1; + console.log(e); +} +try { + throw 20; +} +catch (e = 0) { +} +label: for (const x in [1, 2, 3]) { + label: for (const y in [1, 2, 3]) { + break label; + } +} +// labels +function crossFunctionBoundary() { + outer: for (;;) { + function test() { + break outer; + } + test(); + } +} +function continueIterationOnly(x) { + outer: switch (x) { + case 1: + continue outer; + } +} +function jumpToLabelOnly(x) { + break jumpToLabelOnly; +} +for (;;) { + break toplevel; + continue toplevel; +} +break; +continue; +// other weirdness +export let noMeta = import.metal; +function foo() { new.targe; } +const nullaryDynamicImport = import(); +const trinaryDynamicImport = import('1', '2', '3'); +const spreadDynamicImport = import(...[]); +return; diff --git a/testdata/baselines/reference/submodule/conformance/plainJSGrammarErrors.js.diff b/testdata/baselines/reference/submodule/conformance/plainJSGrammarErrors.js.diff new file mode 100644 index 0000000000..ff2c0bd52b --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/plainJSGrammarErrors.js.diff @@ -0,0 +1,57 @@ +--- old.plainJSGrammarErrors.js ++++ new.plainJSGrammarErrors.js +@@= skipped -229, +229 lines =@@ + return null; + } + // modifier mistakes +- constructor() { } +- constructor() { } ++ static constructor() { } ++ async constructor() { } + x = 1; + y() { + return 12; +@@= skipped -12, +12 lines =@@ + export cantExportProperty = 1; + export cantExportMethod() { + } +- // accessor mistakes +- get incorporeal() { } + get parametric(n) { return 1; } + set invariant() { } + set binary(fst, snd) { } +@@= skipped -25, +23 lines =@@ + export static var staticExport = 1; + function staticParam(static x = 1) { return x; } + async export function oorder(x = 1) { return x; } +-function cantExportParam(export x = 1) { return x; } ++function cantExportParam(x = 1) { return x; } + function cantAsyncParam(async x = 1) { return x; } + async async function extremelyAsync() { } + async class CantAsyncClass { +@@= skipped -8, +8 lines =@@ + } + async const cantAsyncConst = 2; + async import 'assert'; +-export { CantAsyncClass }; ++async export { CantAsyncClass }; + export import 'fs'; + export { C }; + function nestedExports() { +@@= skipped -30, +30 lines =@@ + const { e: erp, m: erm, ...noInitialiser = true } = doom; + // left-over parsing + var ; +-var x = 1 || 2 ?? 3; +-var x = 2 ?? 3 || 4; ++var x = (1 || 2) ?? 3; ++var x = 2 ?? (3 || 4); + const arr = x => x + 1; + var a = [1, 2]; + a `length`; + const o = { +- [console.log('oh no'), 2]: 'hi', ++ [(console.log('oh no'), 2)]: 'hi', + #noPrivate: 3, + cantExportProperties: 4, + // TODO: See what the existing JS error is like for these \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/plainJSGrammarErrors2.js b/testdata/baselines/reference/submodule/conformance/plainJSGrammarErrors2.js new file mode 100644 index 0000000000..501dd231c1 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/plainJSGrammarErrors2.js @@ -0,0 +1,22 @@ +//// [tests/cases/conformance/salsa/plainJSGrammarErrors2.ts] //// + +//// [plainJSGrammarErrors2.js] + +//// [a.js] +export default 1; + +//// [b.js] +/** + * @deprecated + */ +export { default as A } from "./a"; + + +//// [plainJSGrammarErrors2.js] +//// [a.js] +export default 1; +//// [b.js] +/** + * @deprecated + */ +export { default as A } from "./a"; diff --git a/testdata/baselines/reference/submodule/conformance/plainJSGrammarErrors3.js b/testdata/baselines/reference/submodule/conformance/plainJSGrammarErrors3.js new file mode 100644 index 0000000000..73d2b18935 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/plainJSGrammarErrors3.js @@ -0,0 +1,15 @@ +//// [tests/cases/conformance/salsa/plainJSGrammarErrors3.ts] //// + +//// [plainJSGrammarErrors3.js] + +//// [a.js] +function foo() { + await new Promise(undefined); +} + + +//// [plainJSGrammarErrors3.js] +//// [a.js] +function foo() { + await new Promise(undefined); +} diff --git a/testdata/baselines/reference/submodule/conformance/plainJSGrammarErrors4.js b/testdata/baselines/reference/submodule/conformance/plainJSGrammarErrors4.js new file mode 100644 index 0000000000..bced1d0c7f --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/plainJSGrammarErrors4.js @@ -0,0 +1,20 @@ +//// [tests/cases/conformance/salsa/plainJSGrammarErrors4.ts] //// + +//// [plainJSGrammarErrors4.js] +class A { + #a; + m() { + this.#a; // ok + this.#b; // error + } +} + + +//// [plainJSGrammarErrors4.js] +class A { + #a; + m() { + this.#a; // ok + this.#b; // error + } +} diff --git a/testdata/baselines/reference/submodule/conformance/plainJSRedeclare.js b/testdata/baselines/reference/submodule/conformance/plainJSRedeclare.js new file mode 100644 index 0000000000..1aad0562eb --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/plainJSRedeclare.js @@ -0,0 +1,12 @@ +//// [tests/cases/conformance/salsa/plainJSRedeclare.ts] //// + +//// [plainJSRedeclare.js] +const orbitol = 1 +var orbitol = 1 + false +orbitol.toExponential() + + +//// [plainJSRedeclare.js] +const orbitol = 1; +var orbitol = 1 + false; +orbitol.toExponential(); diff --git a/testdata/baselines/reference/submodule/conformance/plainJSRedeclare2.js b/testdata/baselines/reference/submodule/conformance/plainJSRedeclare2.js new file mode 100644 index 0000000000..938b27e9ac --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/plainJSRedeclare2.js @@ -0,0 +1,12 @@ +//// [tests/cases/conformance/salsa/plainJSRedeclare2.ts] //// + +//// [plainJSRedeclare.js] +const orbitol = 1 +var orbitol = 1 + false +orbitol.toExponential() + + +//// [plainJSRedeclare.js] +const orbitol = 1; +var orbitol = 1 + false; +orbitol.toExponential(); diff --git a/testdata/baselines/reference/submodule/conformance/plainJSRedeclare3.js b/testdata/baselines/reference/submodule/conformance/plainJSRedeclare3.js new file mode 100644 index 0000000000..f61280e280 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/plainJSRedeclare3.js @@ -0,0 +1,12 @@ +//// [tests/cases/conformance/salsa/plainJSRedeclare3.ts] //// + +//// [plainJSRedeclare.js] +const orbitol = 1 +var orbitol = 1 + false +orbitol.toExponential() + + +//// [plainJSRedeclare.js] +const orbitol = 1; +var orbitol = 1 + false; +orbitol.toExponential(); diff --git a/testdata/baselines/reference/submodule/conformance/plainJSReservedStrict.js b/testdata/baselines/reference/submodule/conformance/plainJSReservedStrict.js new file mode 100644 index 0000000000..78d690171b --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/plainJSReservedStrict.js @@ -0,0 +1,12 @@ +//// [tests/cases/conformance/salsa/plainJSReservedStrict.ts] //// + +//// [plainJSReservedStrict.js] +"use strict" +const eval = 1 +const arguments = 2 + + +//// [plainJSReservedStrict.js] +"use strict"; +const eval = 1; +const arguments = 2; diff --git a/testdata/baselines/reference/submodule/conformance/plainJSTypeErrors.js b/testdata/baselines/reference/submodule/conformance/plainJSTypeErrors.js new file mode 100644 index 0000000000..9760abb049 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/plainJSTypeErrors.js @@ -0,0 +1,15 @@ +//// [tests/cases/conformance/salsa/plainJSTypeErrors.ts] //// + +//// [plainJSTypeErrors.js] +// should error +if ({} === {}) {} + +// should not error +if ({} == {}) {} + + +//// [plainJSTypeErrors.js] +// should error +if ({} === {}) { } +// should not error +if ({} == {}) { } diff --git a/testdata/baselines/reference/submodule/conformance/privateConstructorFunction.js b/testdata/baselines/reference/submodule/conformance/privateConstructorFunction.js new file mode 100644 index 0000000000..783a1d4c71 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/privateConstructorFunction.js @@ -0,0 +1,28 @@ +//// [tests/cases/conformance/salsa/privateConstructorFunction.ts] //// + +//// [privateConstructorFunction.js] +{ + // make sure not to crash when parent's a block rather than a source file or some other + // symbol-having node. + + /** @private */ + function C() { + this.x = 1 + } + new C() +} + + +//// [privateConstructorFunction.js] +{ + // make sure not to crash when parent's a block rather than a source file or some other + // symbol-having node. + /** @private */ + function C() { + this.x = 1; + } + new C(); +} + + +//// [privateConstructorFunction.d.ts] diff --git a/testdata/baselines/reference/submodule/conformance/privateConstructorFunction.js.diff b/testdata/baselines/reference/submodule/conformance/privateConstructorFunction.js.diff new file mode 100644 index 0000000000..1551d05f8c --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/privateConstructorFunction.js.diff @@ -0,0 +1,11 @@ +--- old.privateConstructorFunction.js ++++ new.privateConstructorFunction.js +@@= skipped -25, +25 lines =@@ + + + //// [privateConstructorFunction.d.ts] +-/** @private */ +-declare function C(): void; +-declare class C { +- x: number; +-} \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/privateIdentifierExpando.js b/testdata/baselines/reference/submodule/conformance/privateIdentifierExpando.js new file mode 100644 index 0000000000..417543fba0 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/privateIdentifierExpando.js @@ -0,0 +1,11 @@ +//// [tests/cases/conformance/salsa/privateIdentifierExpando.ts] //// + +//// [privateIdentifierExpando.js] +const x = {}; +x.#bar.baz = 20; + + + + +//// [privateIdentifierExpando.d.ts] +declare const x: {}; diff --git a/testdata/baselines/reference/submodule/conformance/privateNamesIncompatibleModifiersJs.js b/testdata/baselines/reference/submodule/conformance/privateNamesIncompatibleModifiersJs.js new file mode 100644 index 0000000000..8af06915e9 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/privateNamesIncompatibleModifiersJs.js @@ -0,0 +1,114 @@ +//// [tests/cases/conformance/classes/members/privateNames/privateNamesIncompatibleModifiersJs.ts] //// + +//// [privateNamesIncompatibleModifiersJs.js] +class A { + /** + * @public + */ + #a = 1; + + /** + * @private + */ + #b = 1; + + /** + * @protected + */ + #c = 1; + + /** + * @public + */ + #aMethod() { return 1; } + + /** + * @private + */ + #bMethod() { return 1; } + + /** + * @protected + */ + #cMethod() { return 1; } + + /** + * @public + */ + get #aProp() { return 1; } + /** + * @public + */ + set #aProp(value) { } + + /** + * @private + */ + get #bProp() { return 1; } + /** + * @private + */ + set #bProp(value) { } + + /** + * @protected + */ + get #cProp() { return 1; } + /** + * @protected + */ + set #cProp(value) { } +} + + +//// [privateNamesIncompatibleModifiersJs.js] +class A { + /** + * @public + */ + #a = 1; + /** + * @private + */ + #b = 1; + /** + * @protected + */ + #c = 1; + /** + * @public + */ + #aMethod() { return 1; } + /** + * @private + */ + #bMethod() { return 1; } + /** + * @protected + */ + #cMethod() { return 1; } + /** + * @public + */ + get #aProp() { return 1; } + /** + * @public + */ + set #aProp(value) { } + /** + * @private + */ + get #bProp() { return 1; } + /** + * @private + */ + set #bProp(value) { } + /** + * @protected + */ + get #cProp() { return 1; } + /** + * @protected + */ + set #cProp(value) { } +} diff --git a/testdata/baselines/reference/submodule/conformance/privateNamesIncompatibleModifiersJs.js.diff b/testdata/baselines/reference/submodule/conformance/privateNamesIncompatibleModifiersJs.js.diff new file mode 100644 index 0000000000..2cfcf8c3d0 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/privateNamesIncompatibleModifiersJs.js.diff @@ -0,0 +1,74 @@ +--- old.privateNamesIncompatibleModifiersJs.js ++++ new.privateNamesIncompatibleModifiersJs.js +@@= skipped -61, +61 lines =@@ + + + //// [privateNamesIncompatibleModifiersJs.js] +-"use strict"; +-var _A_instances, _A_a, _A_b, _A_c, _A_aMethod, _A_bMethod, _A_cMethod, _A_aProp_get, _A_aProp_set, _A_bProp_get, _A_bProp_set, _A_cProp_get, _A_cProp_set; + class A { +- constructor() { +- _A_instances.add(this); +- /** +- * @public +- */ +- _A_a.set(this, 1); +- /** +- * @private +- */ +- _A_b.set(this, 1); +- /** +- * @protected +- */ +- _A_c.set(this, 1); +- } ++ /** ++ * @public ++ */ ++ #a = 1; ++ /** ++ * @private ++ */ ++ #b = 1; ++ /** ++ * @protected ++ */ ++ #c = 1; ++ /** ++ * @public ++ */ ++ #aMethod() { return 1; } ++ /** ++ * @private ++ */ ++ #bMethod() { return 1; } ++ /** ++ * @protected ++ */ ++ #cMethod() { return 1; } ++ /** ++ * @public ++ */ ++ get #aProp() { return 1; } ++ /** ++ * @public ++ */ ++ set #aProp(value) { } ++ /** ++ * @private ++ */ ++ get #bProp() { return 1; } ++ /** ++ * @private ++ */ ++ set #bProp(value) { } ++ /** ++ * @protected ++ */ ++ get #cProp() { return 1; } ++ /** ++ * @protected ++ */ ++ set #cProp(value) { } + } +-_A_a = new WeakMap(), _A_b = new WeakMap(), _A_c = new WeakMap(), _A_instances = new WeakSet(), _A_aMethod = function _A_aMethod() { return 1; }, _A_bMethod = function _A_bMethod() { return 1; }, _A_cMethod = function _A_cMethod() { return 1; }, _A_aProp_get = function _A_aProp_get() { return 1; }, _A_aProp_set = function _A_aProp_set(value) { }, _A_bProp_get = function _A_bProp_get() { return 1; }, _A_bProp_set = function _A_bProp_set(value) { }, _A_cProp_get = function _A_cProp_get() { return 1; }, _A_cProp_set = function _A_cProp_set(value) { }; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/reExportJsFromTs.js b/testdata/baselines/reference/submodule/conformance/reExportJsFromTs.js new file mode 100644 index 0000000000..1c1c8328fd --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/reExportJsFromTs.js @@ -0,0 +1,24 @@ +//// [tests/cases/conformance/salsa/reExportJsFromTs.ts] //// + +//// [constants.js] +module.exports = { + str: 'x', +}; + +//// [constants.ts] +import * as tsConstants from "../lib/constants"; +export { tsConstants }; + +//// [constants.js] +export = { + str: 'x', +}; +module.exports = { + str: 'x', +}; +//// [constants.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.tsConstants = void 0; +const tsConstants = require("../lib/constants"); +exports.tsConstants = tsConstants; diff --git a/testdata/baselines/reference/submodule/conformance/reExportJsFromTs.js.diff b/testdata/baselines/reference/submodule/conformance/reExportJsFromTs.js.diff new file mode 100644 index 0000000000..fd62e1eeac --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/reExportJsFromTs.js.diff @@ -0,0 +1,19 @@ +--- old.reExportJsFromTs.js ++++ new.reExportJsFromTs.js +@@= skipped -9, +9 lines =@@ + export { tsConstants }; + + //// [constants.js] ++export = { ++ str: 'x', ++}; + module.exports = { + str: 'x', + }; +@@= skipped -7, +10 lines =@@ + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.tsConstants = void 0; +-var tsConstants = require("../lib/constants"); ++const tsConstants = require("../lib/constants"); + exports.tsConstants = tsConstants; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/recursiveTypeReferences2.js b/testdata/baselines/reference/submodule/conformance/recursiveTypeReferences2.js new file mode 100644 index 0000000000..c2658b7dd0 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/recursiveTypeReferences2.js @@ -0,0 +1,79 @@ +//// [tests/cases/conformance/types/typeRelationships/recursiveTypes/recursiveTypeReferences2.ts] //// + +//// [bug39372.js] +/** @typedef {ReadonlyArray} JsonArray */ +/** @typedef {{ readonly [key: string]: Json }} JsonRecord */ +/** @typedef {boolean | number | string | null | JsonRecord | JsonArray | readonly []} Json */ + +/** + * @template T + * @typedef {{ + $A: { + [K in keyof T]?: XMLObject[] + }, + $O: { + [K in keyof T]?: { + $$?: Record + } & (T[K] extends string ? {$:string} : XMLObject) + }, + $$?: Record, + } & { + [K in keyof T]?: ( + T[K] extends string ? string + : XMLObject + ) +}} XMLObject */ + +/** @type {XMLObject<{foo:string}>} */ +const p = {}; + + +//// [bug39372.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +/** @typedef {ReadonlyArray} JsonArray */ +/** @typedef {{ readonly [key: string]: Json }} JsonRecord */ +/** @typedef {boolean | number | string | null | JsonRecord | JsonArray | readonly []} Json */ +/** + * @template T + * @typedef {{ + $A: { + [K in keyof T]?: XMLObject[] + }, + $O: { + [K in keyof T]?: { + $$?: Record + } & (T[K] extends string ? {$:string} : XMLObject) + }, + $$?: Record, + } & { + [K in keyof T]?: ( + T[K] extends string ? string + : XMLObject + ) +}} XMLObject */ +/** @type {XMLObject<{foo:string}>} */ +const p = {}; + + +//// [bug39372.d.ts] +export type JsonArray = ReadonlyArray; +export type JsonRecord = { + readonly [key: string]: Json; +}; +export type Json = boolean | number | string | null | JsonRecord | JsonArray | readonly []; +export type XMLObject = { + $A: { + [K in keyof T]?: XMLObject[]; + }; + $O: { + [K in keyof T]?: { + $$?: Record; + } & (T[K] extends string ? { + $: string; + } : XMLObject); + }; + $$?: Record; +} & { + [K in keyof T]?: (T[K] extends string ? string : XMLObject); +}; diff --git a/testdata/baselines/reference/submodule/conformance/recursiveTypeReferences2.js.diff b/testdata/baselines/reference/submodule/conformance/recursiveTypeReferences2.js.diff new file mode 100644 index 0000000000..6bb913f83a --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/recursiveTypeReferences2.js.diff @@ -0,0 +1,74 @@ +--- old.recursiveTypeReferences2.js ++++ new.recursiveTypeReferences2.js +@@= skipped -28, +28 lines =@@ + + + //// [bug39372.js] ++"use strict"; ++Object.defineProperty(exports, "__esModule", { value: true }); + /** @typedef {ReadonlyArray} JsonArray */ + /** @typedef {{ readonly [key: string]: Json }} JsonRecord */ + /** @typedef {boolean | number | string | null | JsonRecord | JsonArray | readonly []} Json */ +@@= skipped -26, +28 lines =@@ + + + //// [bug39372.d.ts] +-/** @typedef {ReadonlyArray} JsonArray */ +-/** @typedef {{ readonly [key: string]: Json }} JsonRecord */ +-/** @typedef {boolean | number | string | null | JsonRecord | JsonArray | readonly []} Json */ +-/** +- * @template T +- * @typedef {{ +- $A: { +- [K in keyof T]?: XMLObject[] +- }, +- $O: { +- [K in keyof T]?: { +- $$?: Record +- } & (T[K] extends string ? {$:string} : XMLObject) +- }, +- $$?: Record, +- } & { +- [K in keyof T]?: ( +- T[K] extends string ? string +- : XMLObject +- ) +-}} XMLObject */ +-/** @type {XMLObject<{foo:string}>} */ +-declare const p: XMLObject<{ +- foo: string; +-}>; +-type JsonArray = ReadonlyArray; +-type JsonRecord = { ++export type JsonArray = ReadonlyArray; ++export type JsonRecord = { + readonly [key: string]: Json; + }; +-type Json = boolean | number | string | null | JsonRecord | JsonArray | readonly []; +-/** +- * +- */ +-type XMLObject = { +- $A: { [K in keyof T]?: XMLObject[]; }; +- $O: { [K in keyof T]?: { +- $$?: Record; +- } & (T[K] extends string ? { +- $: string; +- } : XMLObject); }; ++export type Json = boolean | number | string | null | JsonRecord | JsonArray | readonly []; ++export type XMLObject = { ++ $A: { ++ [K in keyof T]?: XMLObject[]; ++ }; ++ $O: { ++ [K in keyof T]?: { ++ $$?: Record; ++ } & (T[K] extends string ? { ++ $: string; ++ } : XMLObject); ++ }; + $$?: Record; +-} & { [K in keyof T]?: (T[K] extends string ? string : XMLObject); }; ++} & { ++ [K in keyof T]?: (T[K] extends string ? string : XMLObject); ++}; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/requireOfESWithPropertyAccess.js b/testdata/baselines/reference/submodule/conformance/requireOfESWithPropertyAccess.js new file mode 100644 index 0000000000..e305cb5e81 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/requireOfESWithPropertyAccess.js @@ -0,0 +1,37 @@ +//// [tests/cases/conformance/salsa/requireOfESWithPropertyAccess.ts] //// + +//// [main.js] +const x = require('./ch').x +x +x.grey +x.x.grey +//// [ch.js] +const x = { + grey: {} +} +export { x } + + +//// [ch.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.x = void 0; +const x = { + grey: {} +}; +exports.x = x; +//// [main.js] +"use strict"; +const x = require('./ch').x; +x; +x.grey; +x.x.grey; + + +//// [ch.d.ts] +declare const x: { + grey: {}; +}; +export { x }; +//// [main.d.ts] +export {}; diff --git a/testdata/baselines/reference/submodule/conformance/requireOfESWithPropertyAccess.js.diff b/testdata/baselines/reference/submodule/conformance/requireOfESWithPropertyAccess.js.diff new file mode 100644 index 0000000000..3b3b049dd8 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/requireOfESWithPropertyAccess.js.diff @@ -0,0 +1,15 @@ +--- old.requireOfESWithPropertyAccess.js ++++ new.requireOfESWithPropertyAccess.js +@@= skipped -28, +28 lines =@@ + + + //// [ch.d.ts] +-export namespace x { +- let grey: {}; +-} ++declare const x: { ++ grey: {}; ++}; ++export { x }; + //// [main.d.ts] + export {}; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/requireTwoPropertyAccesses.js b/testdata/baselines/reference/submodule/conformance/requireTwoPropertyAccesses.js new file mode 100644 index 0000000000..9ec673efe1 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/requireTwoPropertyAccesses.js @@ -0,0 +1,27 @@ +//// [tests/cases/conformance/salsa/requireTwoPropertyAccesses.ts] //// + +//// [mod.js] +module.exports = { + x: { + y: "value" + } +} +//// [requireTwoPropertyAccesses.js] +const value = require("./mod").x.y +console.log(value) + + +//// [mod.js] +export = { + x: { + y: "value" + } +}; +module.exports = { + x: { + y: "value" + } +}; +//// [requireTwoPropertyAccesses.js] +const value = require("./mod").x.y; +console.log(value); diff --git a/testdata/baselines/reference/submodule/conformance/requireTwoPropertyAccesses.js.diff b/testdata/baselines/reference/submodule/conformance/requireTwoPropertyAccesses.js.diff new file mode 100644 index 0000000000..36d71c3416 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/requireTwoPropertyAccesses.js.diff @@ -0,0 +1,14 @@ +--- old.requireTwoPropertyAccesses.js ++++ new.requireTwoPropertyAccesses.js +@@= skipped -11, +11 lines =@@ + + + //// [mod.js] ++export = { ++ x: { ++ y: "value" ++ } ++}; + module.exports = { + x: { + y: "value" \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/seeTag3.js b/testdata/baselines/reference/submodule/conformance/seeTag3.js new file mode 100644 index 0000000000..3e2af65b65 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/seeTag3.js @@ -0,0 +1,12 @@ +//// [tests/cases/conformance/jsdoc/seeTag3.ts] //// + +//// [seeTag3.js] +/** @see [The typescript web site](https://typescriptlang.org) */ +function theWholeThing() { +} + + +//// [seeTag3.js] +/** @see [The typescript web site](https://typescriptlang.org) */ +function theWholeThing() { +} diff --git a/testdata/baselines/reference/submodule/conformance/seeTag4.js b/testdata/baselines/reference/submodule/conformance/seeTag4.js new file mode 100644 index 0000000000..612845bfd1 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/seeTag4.js @@ -0,0 +1,27 @@ +//// [tests/cases/conformance/jsdoc/seeTag4.ts] //// + +//// [seeTag4.js] +/** + * @typedef {any} A + */ + +/** + * @see {@link A} + * @see {@linkcode A} + * @see {@linkplain A} + */ +let foo; + + +//// [seeTag4.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +/** + * @typedef {any} A + */ +/** + * @see {@link A} + * @see {@linkcode A} + * @see {@linkplain A} + */ +let foo; diff --git a/testdata/baselines/reference/submodule/conformance/seeTag4.js.diff b/testdata/baselines/reference/submodule/conformance/seeTag4.js.diff new file mode 100644 index 0000000000..e1e02ca84b --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/seeTag4.js.diff @@ -0,0 +1,11 @@ +--- old.seeTag4.js ++++ new.seeTag4.js +@@= skipped -13, +13 lines =@@ + + + //// [seeTag4.js] ++"use strict"; ++Object.defineProperty(exports, "__esModule", { value: true }); + /** + * @typedef {any} A + */ \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/templateInsideCallback.js b/testdata/baselines/reference/submodule/conformance/templateInsideCallback.js new file mode 100644 index 0000000000..fa74820076 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/templateInsideCallback.js @@ -0,0 +1,123 @@ +//// [tests/cases/conformance/jsdoc/templateInsideCallback.ts] //// + +//// [templateInsideCallback.js] +/** + * @typedef Oops + * @template T + * @property {T} a + * @property {T} b + */ +/** + * @callback Call + * @template T + * @param {T} x + * @returns {T} + */ +/** + * @template T + * @type {Call} + */ +const identity = x => x; + +/** + * @typedef Nested + * @property {Object} oh + * @property {number} oh.no + * @template T + * @property {string} oh.noooooo + */ + + +/** + * @overload + * @template T + * @template U + * @param {T[]} array + * @param {(x: T) => U[]} iterable + * @returns {U[]} + */ +/** + * @overload + * @template T + * @param {T[][]} array + * @returns {T[]} + */ +/** + * @param {unknown[]} array + * @param {(x: unknown) => unknown} iterable + * @returns {unknown[]} + */ +function flatMap(array, iterable = identity) { + /** @type {unknown[]} */ + const result = []; + for (let i = 0; i < array.length; i += 1) { + result.push(.../** @type {unknown[]} */(iterable(array[i]))); + } + return result; +} + + +//// [templateInsideCallback.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +/** + * @typedef Oops + * @template T + * @property {T} a + * @property {T} b + */ +/** + * @callback Call + * @template T + * @param {T} x + * @returns {T} + */ +/** + * @template T + * @type {Call} + */ +const identity = x => x; +/** + * @typedef Nested + * @property {Object} oh + * @property {number} oh.no + * @template T + * @property {string} oh.noooooo + */ +/** + * @overload + * @template T + * @template U + * @param {T[]} array + * @param {(x: T) => U[]} iterable + * @returns {U[]} + */ +/** + * @overload + * @template T + * @param {T[][]} array + * @returns {T[]} + */ +/** + * @param {unknown[]} array + * @param {(x: unknown) => unknown} iterable + * @returns {unknown[]} + */ +function flatMap(array, iterable = identity) { + /** @type {unknown[]} */ + const result = []; + for (let i = 0; i < array.length; i += 1) { + result.push(... /** @type {unknown[]} */iterable(array[i])); + } + return result; +} + + +//// [templateInsideCallback.d.ts] +export type Call = () ; +export type Nested = { + oh: { + property: number; + property: string; + }; +}; diff --git a/testdata/baselines/reference/submodule/conformance/templateInsideCallback.js.diff b/testdata/baselines/reference/submodule/conformance/templateInsideCallback.js.diff new file mode 100644 index 0000000000..e998ad68d9 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/templateInsideCallback.js.diff @@ -0,0 +1,67 @@ +--- old.templateInsideCallback.js ++++ new.templateInsideCallback.js +@@= skipped -58, +58 lines =@@ + + //// [templateInsideCallback.js] + "use strict"; ++Object.defineProperty(exports, "__esModule", { value: true }); + /** + * @typedef Oops + * @template T +@@= skipped -47, +48 lines =@@ + /** @type {unknown[]} */ + const result = []; + for (let i = 0; i < array.length; i += 1) { +- result.push(... /** @type {unknown[]} */(iterable(array[i]))); ++ result.push(... /** @type {unknown[]} */iterable(array[i])); + } + return result; + } + + + //// [templateInsideCallback.d.ts] +-/** +- * @overload +- * @template T +- * @template U +- * @param {T[]} array +- * @param {(x: T) => U[]} iterable +- * @returns {U[]} +- */ +-declare function flatMap(): any; +-/** +- * @overload +- * @template T +- * @param {T[][]} array +- * @returns {T[]} +- */ +-declare function flatMap(): any; +-/** +- * @typedef Oops +- * @template T +- * @property {T} a +- * @property {T} b +- */ +-/** +- * @callback Call +- * @template T +- * @param {T} x +- * @returns {T} +- */ +-/** +- * @template T +- * @type {Call} +- */ +-declare const identity: Call; +-type Nested = { ++export type Call = () ; ++export type Nested = { + oh: { +- no: number; +- noooooo: string; ++ property: number; ++ property: string; + }; + }; +-type Oops = any; +-type Call = () => any; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/thisPropertyAssignment.js b/testdata/baselines/reference/submodule/conformance/thisPropertyAssignment.js new file mode 100644 index 0000000000..0459d851f5 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/thisPropertyAssignment.js @@ -0,0 +1,34 @@ +//// [tests/cases/conformance/salsa/thisPropertyAssignment.ts] //// + +//// [a.js] +// This test is asserting that a single property/element access +// on `this` is a special assignment declaration, but chaining +// off that does not create additional declarations. I’m not sure +// if it needs to be that way in JavaScript; the test simply +// ensures no accidental changes were introduced while allowing +// element access assignments to create declarations. + +this.x = {}; +this.x.y = {}; +this["y"] = {}; +this["y"]["z"] = {}; + +/** @constructor */ +function F() { + this.a = {}; + this.a.b = {}; + this["b"] = {}; + this["b"]["c"] = {}; +} + +const f = new F(); +f.a; +f.b; + + + + +//// [a.d.ts] +/** @constructor */ +declare function F(): void; +declare const f: any; diff --git a/testdata/baselines/reference/submodule/conformance/thisPropertyAssignment.js.diff b/testdata/baselines/reference/submodule/conformance/thisPropertyAssignment.js.diff new file mode 100644 index 0000000000..c27d938164 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/thisPropertyAssignment.js.diff @@ -0,0 +1,14 @@ +--- old.thisPropertyAssignment.js ++++ new.thisPropertyAssignment.js +@@= skipped -30, +30 lines =@@ + //// [a.d.ts] + /** @constructor */ + declare function F(): void; +-declare class F { +- a: {}; +- b: {}; +-} +-declare var x: {} | undefined; +-declare var y: {} | undefined; +-declare const f: F; ++declare const f: any; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/thisPropertyAssignmentCircular.js b/testdata/baselines/reference/submodule/conformance/thisPropertyAssignmentCircular.js new file mode 100644 index 0000000000..61771535de --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/thisPropertyAssignmentCircular.js @@ -0,0 +1,30 @@ +//// [tests/cases/conformance/salsa/thisPropertyAssignmentCircular.ts] //// + +//// [thisPropertyAssignmentCircular.js] +export class Foo { + constructor() { + this.foo = "Hello"; + } + slicey() { + this.foo = this.foo.slice(); + } + m() { + this.foo + } +} + +/** @class */ +function C() { + this.x = 0; + this.x = function() { this.x.toString(); } +} + + + + +//// [thisPropertyAssignmentCircular.d.ts] +export declare class Foo { + constructor(); + slicey(): void; + m(): void; +} diff --git a/testdata/baselines/reference/submodule/conformance/thisPropertyAssignmentCircular.js.diff b/testdata/baselines/reference/submodule/conformance/thisPropertyAssignmentCircular.js.diff new file mode 100644 index 0000000000..61c2684640 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/thisPropertyAssignmentCircular.js.diff @@ -0,0 +1,13 @@ +--- old.thisPropertyAssignmentCircular.js ++++ new.thisPropertyAssignmentCircular.js +@@= skipped -22, +22 lines =@@ + + + //// [thisPropertyAssignmentCircular.d.ts] +-export class Foo { +- foo: string; ++export declare class Foo { ++ constructor(); + slicey(): void; + m(): void; + } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/thisPropertyAssignmentInherited.js b/testdata/baselines/reference/submodule/conformance/thisPropertyAssignmentInherited.js new file mode 100644 index 0000000000..cbce180a48 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/thisPropertyAssignmentInherited.js @@ -0,0 +1,41 @@ +//// [tests/cases/conformance/salsa/thisPropertyAssignmentInherited.ts] //// + +//// [thisPropertyAssignmentInherited.js] +export class Element { + /** + * @returns {String} + */ + get textContent() { + return '' + } + set textContent(x) {} + cloneNode() { return this} +} +export class HTMLElement extends Element {} +export class TextElement extends HTMLElement { + get innerHTML() { return this.textContent; } + set innerHTML(html) { this.textContent = html; } + toString() { + } +} + + + + + +//// [thisPropertyAssignmentInherited.d.ts] +export declare class Element { + /** + * @returns {String} + */ + get textContent(): String; + set textContent(x: String); + cloneNode(): this; +} +export declare class HTMLElement extends Element { +} +export declare class TextElement extends HTMLElement { + get innerHTML(): String; + set innerHTML(html: String); + toString(): void; +} diff --git a/testdata/baselines/reference/submodule/conformance/thisPropertyAssignmentInherited.js.diff b/testdata/baselines/reference/submodule/conformance/thisPropertyAssignmentInherited.js.diff new file mode 100644 index 0000000000..8f19298781 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/thisPropertyAssignmentInherited.js.diff @@ -0,0 +1,28 @@ +--- old.thisPropertyAssignmentInherited.js ++++ new.thisPropertyAssignmentInherited.js +@@= skipped -23, +23 lines =@@ + + + //// [thisPropertyAssignmentInherited.d.ts] +-export class Element { +- set textContent(x: string); ++export declare class Element { + /** + * @returns {String} + */ +- get textContent(): string; ++ get textContent(): String; ++ set textContent(x: String); + cloneNode(): this; + } +-export class HTMLElement extends Element { ++export declare class HTMLElement extends Element { + } +-export class TextElement extends HTMLElement { +- set innerHTML(html: string); +- get innerHTML(): string; ++export declare class TextElement extends HTMLElement { ++ get innerHTML(): String; ++ set innerHTML(html: String); + toString(): void; + } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/thisTag2.js b/testdata/baselines/reference/submodule/conformance/thisTag2.js new file mode 100644 index 0000000000..dd2582eb78 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/thisTag2.js @@ -0,0 +1,33 @@ +//// [tests/cases/conformance/jsdoc/thisTag2.ts] //// + +//// [a.js] +/** @this {string} */ +export function f1() {} + +/** @this */ +export function f2() {} + + + + +//// [a.d.ts] +/** @this {string} */ +export declare function f1(this: string): void; +/** @this */ +export declare function f2(this: ): void; + + +//// [DtsFileErrors] + + +a.d.ts(4,34): error TS1110: Type expected. + + +==== a.d.ts (1 errors) ==== + /** @this {string} */ + export declare function f1(this: string): void; + /** @this */ + export declare function f2(this: ): void; + ~ +!!! error TS1110: Type expected. + \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/thisTag2.js.diff b/testdata/baselines/reference/submodule/conformance/thisTag2.js.diff new file mode 100644 index 0000000000..5835164347 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/thisTag2.js.diff @@ -0,0 +1,27 @@ +--- old.thisTag2.js ++++ new.thisTag2.js +@@= skipped -11, +11 lines =@@ + + //// [a.d.ts] + /** @this {string} */ +-export function f1(this: string): void; ++export declare function f1(this: string): void; + /** @this */ +-export function f2(this: any): void; ++export declare function f2(this: ): void; ++ ++ ++//// [DtsFileErrors] ++ ++ ++a.d.ts(4,34): error TS1110: Type expected. ++ ++ ++==== a.d.ts (1 errors) ==== ++ /** @this {string} */ ++ export declare function f1(this: string): void; ++ /** @this */ ++ export declare function f2(this: ): void; ++ ~ ++!!! error TS1110: Type expected. ++ \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/typeFromPrivatePropertyAssignmentJs.js b/testdata/baselines/reference/submodule/conformance/typeFromPrivatePropertyAssignmentJs.js new file mode 100644 index 0000000000..439c207a52 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/typeFromPrivatePropertyAssignmentJs.js @@ -0,0 +1,29 @@ +//// [tests/cases/conformance/classes/members/privateNames/typeFromPrivatePropertyAssignmentJs.ts] //// + +//// [typeFromPrivatePropertyAssignmentJs.js] + +//// [a.js] +class C { + /** @type {{ foo?: string } | undefined } */ + #a; + /** @type {{ foo?: string } | undefined } */ + #b; + m() { + const a = this.#a || {}; + this.#b = this.#b || {}; + } +} + + +//// [typeFromPrivatePropertyAssignmentJs.js] +//// [a.js] +class C { + /** @type {{ foo?: string } | undefined } */ + #a; + /** @type {{ foo?: string } | undefined } */ + #b; + m() { + const a = this.#a || {}; + this.#b = this.#b || {}; + } +} diff --git a/testdata/baselines/reference/submodule/conformance/typeFromPropertyAssignment39.js b/testdata/baselines/reference/submodule/conformance/typeFromPropertyAssignment39.js new file mode 100644 index 0000000000..3c3d0d693b --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/typeFromPropertyAssignment39.js @@ -0,0 +1,16 @@ +//// [tests/cases/conformance/salsa/typeFromPropertyAssignment39.ts] //// + +//// [a.js] +const foo = {}; +foo["baz"] = {}; +foo["baz"]["blah"] = 3; + + + + +//// [a.d.ts] +declare const foo: { + baz: { + blah: number; + }; +}; diff --git a/testdata/baselines/reference/submodule/conformance/typeFromPropertyAssignment39.js.diff b/testdata/baselines/reference/submodule/conformance/typeFromPropertyAssignment39.js.diff new file mode 100644 index 0000000000..aac1514602 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/typeFromPropertyAssignment39.js.diff @@ -0,0 +1,16 @@ +--- old.typeFromPropertyAssignment39.js ++++ new.typeFromPropertyAssignment39.js +@@= skipped -8, +8 lines =@@ + + + //// [a.d.ts] +-declare namespace foo { +- namespace baz { +- let blah: number; +- } +-} ++declare const foo: { ++ baz: { ++ blah: number; ++ }; ++}; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/typeFromPropertyAssignmentWithExport.js b/testdata/baselines/reference/submodule/conformance/typeFromPropertyAssignmentWithExport.js new file mode 100644 index 0000000000..8364e13a35 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/typeFromPropertyAssignmentWithExport.js @@ -0,0 +1,21 @@ +//// [tests/cases/conformance/salsa/typeFromPropertyAssignmentWithExport.ts] //// + +//// [a.js] +// this is a javascript file... + +export const Adapter = {}; + +Adapter.prop = {}; + +// comment this out, and it works +Adapter.asyncMethod = function() {} + +//// [a.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Adapter = void 0; +// this is a javascript file... +exports.Adapter = {}; +exports.Adapter.prop = {}; +// comment this out, and it works +exports.Adapter.asyncMethod = function () { }; diff --git a/testdata/baselines/reference/submodule/conformance/typeFromPropertyAssignmentWithExport.js.diff b/testdata/baselines/reference/submodule/conformance/typeFromPropertyAssignmentWithExport.js.diff new file mode 100644 index 0000000000..e8b296c70c --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/typeFromPropertyAssignmentWithExport.js.diff @@ -0,0 +1,13 @@ +--- old.typeFromPropertyAssignmentWithExport.js ++++ new.typeFromPropertyAssignmentWithExport.js +@@= skipped -11, +11 lines =@@ + + //// [a.js] + "use strict"; +-// this is a javascript file... + Object.defineProperty(exports, "__esModule", { value: true }); + exports.Adapter = void 0; ++// this is a javascript file... + exports.Adapter = {}; + exports.Adapter.prop = {}; + // comment this out, and it works \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/typeFromPrototypeAssignment4.js b/testdata/baselines/reference/submodule/conformance/typeFromPrototypeAssignment4.js new file mode 100644 index 0000000000..05ea5715ce --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/typeFromPrototypeAssignment4.js @@ -0,0 +1,33 @@ +//// [tests/cases/conformance/salsa/typeFromPrototypeAssignment4.ts] //// + +//// [a.js] +function Multimap4() { + this._map = {}; +}; + +Multimap4["prototype"] = { + /** + * @param {string} key + * @returns {number} the value ok + */ + get(key) { + return this._map[key + '']; + } +}; + +Multimap4["prototype"]["add-on"] = function() {}; +Multimap4["prototype"]["addon"] = function() {}; +Multimap4["prototype"]["__underscores__"] = function() {}; + +const map4 = new Multimap4(); +map4.get(""); +map4["add-on"](); +map4.addon(); +map4.__underscores__(); + + + + +//// [a.d.ts] +declare function Multimap4(): void; +declare const map4: any; diff --git a/testdata/baselines/reference/submodule/conformance/typeFromPrototypeAssignment4.js.diff b/testdata/baselines/reference/submodule/conformance/typeFromPrototypeAssignment4.js.diff new file mode 100644 index 0000000000..d5ffe64194 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/typeFromPrototypeAssignment4.js.diff @@ -0,0 +1,19 @@ +--- old.typeFromPrototypeAssignment4.js ++++ new.typeFromPrototypeAssignment4.js +@@= skipped -29, +29 lines =@@ + + //// [a.d.ts] + declare function Multimap4(): void; +-declare class Multimap4 { +- _map: {}; +- /** +- * @param {string} key +- * @returns {number} the value ok +- */ +- get(key: string): number; +- "add-on"(): void; +- addon(): void; +- __underscores__(): void; +-} +-declare const map4: Multimap4; ++declare const map4: any; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/typeOnlyMerge2.errors.txt b/testdata/baselines/reference/submodule/conformance/typeOnlyMerge2.errors.txt new file mode 100644 index 0000000000..54c304af09 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/typeOnlyMerge2.errors.txt @@ -0,0 +1,24 @@ +d.ts(2,1): error TS1362: 'A' cannot be used as a value because it was exported using 'export type'. + + +==== a.ts (0 errors) ==== + const A = {} + export { A }; + +==== b.ts (0 errors) ==== + import { A } from "./a"; + type A = any; + export type { A }; + +==== c.ts (0 errors) ==== + import { A } from "./b"; + namespace A {} + export { A }; + +==== d.ts (1 errors) ==== + import { A } from "./c"; + A; + ~ +!!! error TS1362: 'A' cannot be used as a value because it was exported using 'export type'. +!!! related TS1377 b.ts:3:15: 'A' was exported here. + \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/typeOnlyMerge2.symbols b/testdata/baselines/reference/submodule/conformance/typeOnlyMerge2.symbols new file mode 100644 index 0000000000..f7fe65df2a --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/typeOnlyMerge2.symbols @@ -0,0 +1,36 @@ +//// [tests/cases/conformance/externalModules/typeOnlyMerge2.ts] //// + +=== a.ts === +const A = {} +>A : Symbol(A, Decl(a.ts, 0, 5)) + +export { A }; +>A : Symbol(A, Decl(a.ts, 1, 8)) + +=== b.ts === +import { A } from "./a"; +>A : Symbol(A, Decl(b.ts, 0, 8), Decl(b.ts, 0, 24)) + +type A = any; +>A : Symbol(A, Decl(b.ts, 0, 8), Decl(b.ts, 0, 24)) + +export type { A }; +>A : Symbol(A, Decl(b.ts, 2, 13)) + +=== c.ts === +import { A } from "./b"; +>A : Symbol(A, Decl(c.ts, 0, 8), Decl(c.ts, 0, 24)) + +namespace A {} +>A : Symbol(A, Decl(c.ts, 0, 8), Decl(c.ts, 0, 24)) + +export { A }; +>A : Symbol(A, Decl(c.ts, 2, 8)) + +=== d.ts === +import { A } from "./c"; +>A : Symbol(A, Decl(d.ts, 0, 8)) + +A; +>A : Symbol(A, Decl(d.ts, 0, 8)) + diff --git a/testdata/baselines/reference/submodule/conformance/typeOnlyMerge2.types b/testdata/baselines/reference/submodule/conformance/typeOnlyMerge2.types new file mode 100644 index 0000000000..243f41e8a1 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/typeOnlyMerge2.types @@ -0,0 +1,35 @@ +//// [tests/cases/conformance/externalModules/typeOnlyMerge2.ts] //// + +=== a.ts === +const A = {} +>A : {} +>{} : {} + +export { A }; +>A : {} + +=== b.ts === +import { A } from "./a"; +>A : {} + +type A = any; +>A : any + +export type { A }; +>A : any + +=== c.ts === +import { A } from "./b"; +>A : {} + +namespace A {} +export { A }; +>A : {} + +=== d.ts === +import { A } from "./c"; +>A : {} + +A; +>A : {} + diff --git a/testdata/baselines/reference/submodule/conformance/typeOnlyMerge3.errors.txt b/testdata/baselines/reference/submodule/conformance/typeOnlyMerge3.errors.txt new file mode 100644 index 0000000000..6b50da4e6d --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/typeOnlyMerge3.errors.txt @@ -0,0 +1,39 @@ +b.ts(1,10): error TS2440: Import declaration conflicts with local declaration of 'A'. +c.ts(2,1): error TS1362: 'A' cannot be used as a value because it was exported using 'export type'. +c.ts(3,1): error TS1362: 'A' cannot be used as a value because it was exported using 'export type'. +c.ts(4,1): error TS1362: 'A' cannot be used as a value because it was exported using 'export type'. +c.ts(4,1): error TS2349: This expression is not callable. + Type 'typeof A' has no call signatures. + + +==== a.ts (0 errors) ==== + function A() {} + export type { A }; + +==== b.ts (1 errors) ==== + import { A } from "./a"; + ~ +!!! error TS2440: Import declaration conflicts with local declaration of 'A'. + namespace A { + export const displayName = "A"; + } + export { A }; + +==== c.ts (4 errors) ==== + import { A } from "./b"; + A; + ~ +!!! error TS1362: 'A' cannot be used as a value because it was exported using 'export type'. +!!! related TS1377 a.ts:2:15: 'A' was exported here. + A.displayName; + ~ +!!! error TS1362: 'A' cannot be used as a value because it was exported using 'export type'. +!!! related TS1377 a.ts:2:15: 'A' was exported here. + A(); + ~ +!!! error TS1362: 'A' cannot be used as a value because it was exported using 'export type'. +!!! related TS1377 a.ts:2:15: 'A' was exported here. + ~ +!!! error TS2349: This expression is not callable. +!!! error TS2349: Type 'typeof A' has no call signatures. + \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/typeOnlyMerge3.symbols b/testdata/baselines/reference/submodule/conformance/typeOnlyMerge3.symbols new file mode 100644 index 0000000000..1631027225 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/typeOnlyMerge3.symbols @@ -0,0 +1,37 @@ +//// [tests/cases/conformance/externalModules/typeOnlyMerge3.ts] //// + +=== a.ts === +function A() {} +>A : Symbol(A, Decl(a.ts, 0, 0)) + +export type { A }; +>A : Symbol(A, Decl(a.ts, 1, 13)) + +=== b.ts === +import { A } from "./a"; +>A : Symbol(A, Decl(b.ts, 0, 8), Decl(b.ts, 0, 24)) + +namespace A { +>A : Symbol(A, Decl(b.ts, 0, 8), Decl(b.ts, 0, 24)) + + export const displayName = "A"; +>displayName : Symbol(displayName, Decl(b.ts, 2, 14)) +} +export { A }; +>A : Symbol(A, Decl(b.ts, 4, 8)) + +=== c.ts === +import { A } from "./b"; +>A : Symbol(A, Decl(c.ts, 0, 8)) + +A; +>A : Symbol(A, Decl(c.ts, 0, 8)) + +A.displayName; +>A.displayName : Symbol(displayName, Decl(b.ts, 2, 14)) +>A : Symbol(A, Decl(c.ts, 0, 8)) +>displayName : Symbol(displayName, Decl(b.ts, 2, 14)) + +A(); +>A : Symbol(A, Decl(c.ts, 0, 8)) + diff --git a/testdata/baselines/reference/submodule/conformance/typeOnlyMerge3.symbols.diff b/testdata/baselines/reference/submodule/conformance/typeOnlyMerge3.symbols.diff new file mode 100644 index 0000000000..b9fb4d7e5e --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/typeOnlyMerge3.symbols.diff @@ -0,0 +1,14 @@ +--- old.typeOnlyMerge3.symbols ++++ new.typeOnlyMerge3.symbols +@@= skipped -27, +27 lines =@@ + >A : Symbol(A, Decl(c.ts, 0, 8)) + + A.displayName; +->A.displayName : Symbol(A.displayName, Decl(b.ts, 2, 14)) ++>A.displayName : Symbol(displayName, Decl(b.ts, 2, 14)) + >A : Symbol(A, Decl(c.ts, 0, 8)) +->displayName : Symbol(A.displayName, Decl(b.ts, 2, 14)) ++>displayName : Symbol(displayName, Decl(b.ts, 2, 14)) + + A(); + >A : Symbol(A, Decl(c.ts, 0, 8)) \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/typeOnlyMerge3.types b/testdata/baselines/reference/submodule/conformance/typeOnlyMerge3.types new file mode 100644 index 0000000000..81566cdb0e --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/typeOnlyMerge3.types @@ -0,0 +1,39 @@ +//// [tests/cases/conformance/externalModules/typeOnlyMerge3.ts] //// + +=== a.ts === +function A() {} +>A : () => void + +export type { A }; +>A : any + +=== b.ts === +import { A } from "./a"; +>A : typeof A + +namespace A { +>A : typeof A + + export const displayName = "A"; +>displayName : "A" +>"A" : "A" +} +export { A }; +>A : typeof A + +=== c.ts === +import { A } from "./b"; +>A : typeof A + +A; +>A : typeof A + +A.displayName; +>A.displayName : "A" +>A : typeof A +>displayName : "A" + +A(); +>A() : any +>A : typeof A + diff --git a/testdata/baselines/reference/submodule/conformance/typeTagNoErasure.js b/testdata/baselines/reference/submodule/conformance/typeTagNoErasure.js new file mode 100644 index 0000000000..4f5bbb3bb4 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/typeTagNoErasure.js @@ -0,0 +1,24 @@ +//// [tests/cases/conformance/jsdoc/typeTagNoErasure.ts] //// + +//// [typeTagNoErasure.js] +/** @template T @typedef {(data: T1) => T1} Test */ + +/** @type {Test} */ +const test = dibbity => dibbity + +test(1) // ok, T=1 +test('hi') // error, T=number + + +//// [typeTagNoErasure.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +/** @template T @typedef {(data: T1) => T1} Test */ +/** @type {Test} */ +const test = dibbity => dibbity; +test(1); // ok, T=1 +test('hi'); // error, T=number + + +//// [typeTagNoErasure.d.ts] +export type Test = (data: T1) => T1; diff --git a/testdata/baselines/reference/submodule/conformance/typeTagNoErasure.js.diff b/testdata/baselines/reference/submodule/conformance/typeTagNoErasure.js.diff new file mode 100644 index 0000000000..faf23d49b9 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/typeTagNoErasure.js.diff @@ -0,0 +1,20 @@ +--- old.typeTagNoErasure.js ++++ new.typeTagNoErasure.js +@@= skipped -10, +10 lines =@@ + + + //// [typeTagNoErasure.js] ++"use strict"; ++Object.defineProperty(exports, "__esModule", { value: true }); + /** @template T @typedef {(data: T1) => T1} Test */ + /** @type {Test} */ + const test = dibbity => dibbity; +@@= skipped -8, +10 lines =@@ + + + //// [typeTagNoErasure.d.ts] +-/** @template T @typedef {(data: T1) => T1} Test */ +-/** @type {Test} */ +-declare const test: Test; +-type Test = (data: T1) => T1; ++export type Test = (data: T1) => T1; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/typeTagOnFunctionReferencesGeneric.js b/testdata/baselines/reference/submodule/conformance/typeTagOnFunctionReferencesGeneric.js new file mode 100644 index 0000000000..1cd771088e --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/typeTagOnFunctionReferencesGeneric.js @@ -0,0 +1,46 @@ +//// [tests/cases/conformance/salsa/typeTagOnFunctionReferencesGeneric.ts] //// + +//// [typeTagOnFunctionReferencesGeneric.js] +/** + * @typedef {(m : T) => T} IFn + */ + +/**@type {IFn}*/ +export function inJs(l) { + return l; +} +inJs(1); // lints error. Why? + +/**@type {IFn}*/ +const inJsArrow = (j) => { + return j; +} +inJsArrow(2); // no error gets linted as expected + + +//// [typeTagOnFunctionReferencesGeneric.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.inJs = inJs; +/** + * @typedef {(m : T) => T} IFn + */ +/**@type {IFn}*/ +function inJs(l) { + return l; +} +inJs(1); // lints error. Why? +/**@type {IFn}*/ +const inJsArrow = (j) => { + return j; +}; +inJsArrow(2); // no error gets linted as expected + + +//// [typeTagOnFunctionReferencesGeneric.d.ts] +export type IFn = (m: T) => T; +/** + * @typedef {(m : T) => T} IFn + */ +/**@type {IFn}*/ +export declare function inJs(l: any): any; diff --git a/testdata/baselines/reference/submodule/conformance/typeTagOnFunctionReferencesGeneric.js.diff b/testdata/baselines/reference/submodule/conformance/typeTagOnFunctionReferencesGeneric.js.diff new file mode 100644 index 0000000000..678958065c --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/typeTagOnFunctionReferencesGeneric.js.diff @@ -0,0 +1,28 @@ +--- old.typeTagOnFunctionReferencesGeneric.js ++++ new.typeTagOnFunctionReferencesGeneric.js +@@= skipped -19, +19 lines =@@ + + //// [typeTagOnFunctionReferencesGeneric.js] + "use strict"; +-/** +- * @typedef {(m : T) => T} IFn +- */ + Object.defineProperty(exports, "__esModule", { value: true }); + exports.inJs = inJs; ++/** ++ * @typedef {(m : T) => T} IFn ++ */ + /**@type {IFn}*/ + function inJs(l) { + return l; +@@= skipped -18, +18 lines =@@ + + + //// [typeTagOnFunctionReferencesGeneric.d.ts] +-export function inJs(m: T): T; + export type IFn = (m: T) => T; ++/** ++ * @typedef {(m : T) => T} IFn ++ */ ++/**@type {IFn}*/ ++export declare function inJs(l: any): any; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/typedefOnSemicolonClassElement.js b/testdata/baselines/reference/submodule/conformance/typedefOnSemicolonClassElement.js new file mode 100644 index 0000000000..68931be143 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/typedefOnSemicolonClassElement.js @@ -0,0 +1,53 @@ +//// [tests/cases/conformance/jsdoc/typedefOnSemicolonClassElement.ts] //// + +//// [typedefOnSemicolonClassElement.js] +export class Preferences { + /** @typedef {string} A */ + ; + /** @type {A} */ + a = 'ok' +} + + +//// [typedefOnSemicolonClassElement.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Preferences = void 0; +class Preferences { + /** @typedef {string} A */ + ; + /** @type {A} */ + a = 'ok'; +} +exports.Preferences = Preferences; + + +//// [typedefOnSemicolonClassElement.d.ts] +export declare class Preferences { + export type A = string; + /** @type {A} */ + a: A; +} + + +//// [DtsFileErrors] + + +dist/typedefOnSemicolonClassElement.d.ts(2,5): error TS1068: Unexpected token. A constructor, method, accessor, or property was expected. +dist/typedefOnSemicolonClassElement.d.ts(4,8): error TS2693: 'A' only refers to a type, but is being used as a value here. +dist/typedefOnSemicolonClassElement.d.ts(5,1): error TS1128: Declaration or statement expected. + + +==== dist/typedefOnSemicolonClassElement.d.ts (3 errors) ==== + export declare class Preferences { + export type A = string; + ~~~~~~ +!!! error TS1068: Unexpected token. A constructor, method, accessor, or property was expected. + /** @type {A} */ + a: A; + ~ +!!! error TS2693: 'A' only refers to a type, but is being used as a value here. + } + ~ +!!! error TS1128: Declaration or statement expected. + \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/typedefOnSemicolonClassElement.js.diff b/testdata/baselines/reference/submodule/conformance/typedefOnSemicolonClassElement.js.diff new file mode 100644 index 0000000000..b1d29ecaf0 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/typedefOnSemicolonClassElement.js.diff @@ -0,0 +1,49 @@ +--- old.typedefOnSemicolonClassElement.js ++++ new.typedefOnSemicolonClassElement.js +@@= skipped -13, +13 lines =@@ + Object.defineProperty(exports, "__esModule", { value: true }); + exports.Preferences = void 0; + class Preferences { +- constructor() { +- /** @type {A} */ +- this.a = 'ok'; +- } + /** @typedef {string} A */ + ; ++ /** @type {A} */ ++ a = 'ok'; + } + exports.Preferences = Preferences; + + + //// [typedefOnSemicolonClassElement.d.ts] +-export class Preferences { ++export declare class Preferences { ++ export type A = string; + /** @type {A} */ +- a: string; ++ a: A; + } ++ ++ ++//// [DtsFileErrors] ++ ++ ++dist/typedefOnSemicolonClassElement.d.ts(2,5): error TS1068: Unexpected token. A constructor, method, accessor, or property was expected. ++dist/typedefOnSemicolonClassElement.d.ts(4,8): error TS2693: 'A' only refers to a type, but is being used as a value here. ++dist/typedefOnSemicolonClassElement.d.ts(5,1): error TS1128: Declaration or statement expected. ++ ++ ++==== dist/typedefOnSemicolonClassElement.d.ts (3 errors) ==== ++ export declare class Preferences { ++ export type A = string; ++ ~~~~~~ ++!!! error TS1068: Unexpected token. A constructor, method, accessor, or property was expected. ++ /** @type {A} */ ++ a: A; ++ ~ ++!!! error TS2693: 'A' only refers to a type, but is being used as a value here. ++ } ++ ~ ++!!! error TS1128: Declaration or statement expected. ++ \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/typedefOnStatements.js b/testdata/baselines/reference/submodule/conformance/typedefOnStatements.js new file mode 100644 index 0000000000..70244a3f6f --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/typedefOnStatements.js @@ -0,0 +1,213 @@ +//// [tests/cases/conformance/jsdoc/typedefOnStatements.ts] //// + +//// [typedefOnStatements.js] +/** @typedef {{a: string}} A */ +; +/** @typedef {{ b: string }} B */ +debugger; +/** @typedef {{ c: string }} C */ +{ +} +/** @typedef {{ d: string }} D */ +1 + 1; +/** @typedef {{ e: string }} E */ +if (false) { +} +/** @typedef {{ f: string }} F */ +do { +} while (false); +/** @typedef {{ g: string }} G */ +while (false) { +} +/** @typedef {{ h: string }} H */ +for (;; false) { +} +/** @typedef {{ i: string }} I */ +for (let i in []) { +} +/** @typedef {{ j: string }} J */ +break; +/** @typedef {{ k: string }} K */ +for (let k of []) { +} +/** @typedef {{ l: string }} L */ +continue; +/** @typedef {{ m: string }} M */ +with (name) { +} +/** @typedef {{ n: string }} N */ +switch (name) { +} + +/** @typedef {{ o: string }} O */ +fork: while (false) { +} + +/** @typedef {{ p: string }} P */ +throw new Error('Unreachable') + +/** @typedef {{ q: string }} Q */ +try { +} +catch (e) { +} + +/** + * @param {A} a + * @param {B} b + * @param {C} c + * @param {D} d + * @param {E} e + * @param {F} f + * @param {G} g + * @param {H} h + * @param {I} i + * @param {J} j + * @param {K} k + * @param {L} l + * @param {M} m + * @param {N} n + * @param {O} o + * @param {P} p + * @param {Q} q + */ +function proof (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q) { + console.log(a.a, b.b, c.c, d.d, e.e, f.f, g.g, h.h, i.i, j.j, k.k, l.l, m.m, n.n, o.o, p.p, q.q) + /** @type {Alpha} */ + var alpha = { alpha: "aleph" } + /** @typedef {{ alpha: string }} Alpha */ + return +} + + + +//// [typedefOnStatements.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +/** @typedef {{a: string}} A */ +; +/** @typedef {{ b: string }} B */ +debugger; +/** @typedef {{ c: string }} C */ +{ +} +/** @typedef {{ d: string }} D */ +1 + 1; +/** @typedef {{ e: string }} E */ +if (false) { +} +/** @typedef {{ f: string }} F */ +do { +} while (false); +/** @typedef {{ g: string }} G */ +while (false) { +} +/** @typedef {{ h: string }} H */ +for (;; false) { +} +/** @typedef {{ i: string }} I */ +for (let i in []) { +} +/** @typedef {{ j: string }} J */ +break; +/** @typedef {{ k: string }} K */ +for (let k of []) { +} +/** @typedef {{ l: string }} L */ +continue; +/** @typedef {{ m: string }} M */ +with (name) { +} +/** @typedef {{ n: string }} N */ +switch (name) { +} +/** @typedef {{ o: string }} O */ +fork: while (false) { +} +/** @typedef {{ p: string }} P */ +throw new Error('Unreachable'); +/** @typedef {{ q: string }} Q */ +try { +} +catch (e) { +} +/** + * @param {A} a + * @param {B} b + * @param {C} c + * @param {D} d + * @param {E} e + * @param {F} f + * @param {G} g + * @param {H} h + * @param {I} i + * @param {J} j + * @param {K} k + * @param {L} l + * @param {M} m + * @param {N} n + * @param {O} o + * @param {P} p + * @param {Q} q + */ +function proof(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q) { + console.log(a.a, b.b, c.c, d.d, e.e, f.f, g.g, h.h, i.i, j.j, k.k, l.l, m.m, n.n, o.o, p.p, q.q); + /** @type {Alpha} */ + var alpha = { alpha: "aleph" }; + /** @typedef {{ alpha: string }} Alpha */ + return; +} + + +//// [typedefOnStatements.d.ts] +export type A = { + a: string; +}; +export type B = { + b: string; +}; +export type C = { + c: string; +}; +export type D = { + d: string; +}; +export type E = { + e: string; +}; +export type F = { + f: string; +}; +export type G = { + g: string; +}; +export type H = { + h: string; +}; +export type I = { + i: string; +}; +export type J = { + j: string; +}; +export type K = { + k: string; +}; +export type L = { + l: string; +}; +export type M = { + m: string; +}; +export type N = { + n: string; +}; +export type O = { + o: string; +}; +export type P = { + p: string; +}; +export type Q = { + q: string; +}; diff --git a/testdata/baselines/reference/submodule/conformance/typedefOnStatements.js.diff b/testdata/baselines/reference/submodule/conformance/typedefOnStatements.js.diff new file mode 100644 index 0000000000..1090c64ecc --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/typedefOnStatements.js.diff @@ -0,0 +1,102 @@ +--- old.typedefOnStatements.js ++++ new.typedefOnStatements.js +@@= skipped -82, +82 lines =@@ + + //// [typedefOnStatements.js] + "use strict"; ++Object.defineProperty(exports, "__esModule", { value: true }); + /** @typedef {{a: string}} A */ + ; + /** @typedef {{ b: string }} B */ +@@= skipped -76, +77 lines =@@ + + + //// [typedefOnStatements.d.ts] +-/** +- * @param {A} a +- * @param {B} b +- * @param {C} c +- * @param {D} d +- * @param {E} e +- * @param {F} f +- * @param {G} g +- * @param {H} h +- * @param {I} i +- * @param {J} j +- * @param {K} k +- * @param {L} l +- * @param {M} m +- * @param {N} n +- * @param {O} o +- * @param {P} p +- * @param {Q} q +- */ +-declare function proof(a: A, b: B, c: C, d: D, e: E, f: F, g: G, h: H, i: I, j: J, k: K, l: L, m: M, n: N, o: O, p: P, q: Q): void; +-type A = { ++export type A = { + a: string; + }; +-type B = { ++export type B = { + b: string; + }; +-type C = { ++export type C = { + c: string; + }; +-type D = { ++export type D = { + d: string; + }; +-type E = { ++export type E = { + e: string; + }; +-type F = { ++export type F = { + f: string; + }; +-type G = { ++export type G = { + g: string; + }; +-type H = { ++export type H = { + h: string; + }; +-type I = { ++export type I = { + i: string; + }; +-type J = { ++export type J = { + j: string; + }; +-type K = { ++export type K = { + k: string; + }; +-type L = { ++export type L = { + l: string; + }; +-type M = { ++export type M = { + m: string; + }; +-type N = { ++export type N = { + n: string; + }; +-type O = { ++export type O = { + o: string; + }; +-type P = { ++export type P = { + p: string; + }; +-type Q = { ++export type Q = { + q: string; + }; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/typedefScope1.js b/testdata/baselines/reference/submodule/conformance/typedefScope1.js new file mode 100644 index 0000000000..b67955b1d8 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/typedefScope1.js @@ -0,0 +1,39 @@ +//// [tests/cases/conformance/jsdoc/typedefScope1.ts] //// + +//// [typedefScope1.js] +function B1() { + /** @typedef {number} B */ + /** @type {B} */ + var ok1 = 0; +} + +function B2() { + /** @typedef {string} B */ + /** @type {B} */ + var ok2 = 'hi'; +} + +/** @type {B} */ +var notOK = 0; + + +//// [typedefScope1.js] +function B1() { + /** @typedef {number} B */ + /** @type {B} */ + var ok1 = 0; +} +function B2() { + /** @typedef {string} B */ + /** @type {B} */ + var ok2 = 'hi'; +} +/** @type {B} */ +var notOK = 0; + + +//// [typedefScope1.d.ts] +declare function B1(): void; +declare function B2(): void; +/** @type {B} */ +declare var notOK: B; diff --git a/testdata/baselines/reference/submodule/conformance/typedefScope1.js.diff b/testdata/baselines/reference/submodule/conformance/typedefScope1.js.diff new file mode 100644 index 0000000000..23ba338955 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/typedefScope1.js.diff @@ -0,0 +1,10 @@ +--- old.typedefScope1.js ++++ new.typedefScope1.js +@@= skipped -17, +17 lines =@@ + + + //// [typedefScope1.js] +-"use strict"; + function B1() { + /** @typedef {number} B */ + /** @type {B} */ \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/untypedModuleImport_allowJs.js b/testdata/baselines/reference/submodule/conformance/untypedModuleImport_allowJs.js new file mode 100644 index 0000000000..a85b8d66ea --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/untypedModuleImport_allowJs.js @@ -0,0 +1,15 @@ +//// [tests/cases/conformance/moduleResolution/untypedModuleImport_allowJs.ts] //// + +//// [index.js] +exports.default = { bar() { return 0; } } + +//// [a.ts] +import foo from "foo"; +foo.bar(); + + +//// [a.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const foo_1 = require("foo"); +foo_1.default.bar(); diff --git a/testdata/baselines/reference/submodule/conformance/untypedModuleImport_allowJs.js.diff b/testdata/baselines/reference/submodule/conformance/untypedModuleImport_allowJs.js.diff new file mode 100644 index 0000000000..a755437f9d --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/untypedModuleImport_allowJs.js.diff @@ -0,0 +1,9 @@ +--- old.untypedModuleImport_allowJs.js ++++ new.untypedModuleImport_allowJs.js +@@= skipped -10, +10 lines =@@ + //// [a.js] + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); +-var foo_1 = require("foo"); ++const foo_1 = require("foo"); + foo_1.default.bar(); \ No newline at end of file From 96bcae52d928b4d89bb226dba77a14f6387b95cf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateusz=20Burzy=C5=84ski?= Date: Thu, 19 Jun 2025 21:23:05 +0200 Subject: [PATCH 04/15] Handle `@captureSuggestions` in the harness (#1237) --- internal/testutil/harnessutil/harnessutil.go | 3 + .../submodule/compiler/overshifts.errors.txt | 110 ++++++++++- .../compiler/overshifts.errors.txt.diff | 177 ------------------ 3 files changed, 112 insertions(+), 178 deletions(-) delete mode 100644 testdata/baselines/reference/submodule/compiler/overshifts.errors.txt.diff diff --git a/internal/testutil/harnessutil/harnessutil.go b/internal/testutil/harnessutil/harnessutil.go index acce099b89..9c2c324ef7 100644 --- a/internal/testutil/harnessutil/harnessutil.go +++ b/internal/testutil/harnessutil/harnessutil.go @@ -581,6 +581,9 @@ func compileFilesWithHost( if config.CompilerOptions().GetEmitDeclarations() { diagnostics = append(diagnostics, program.GetDeclarationDiagnostics(ctx, nil)...) } + if harnessOptions.CaptureSuggestions { + diagnostics = append(diagnostics, program.GetSuggestionDiagnostics(ctx, nil)...) + } emitResult := program.Emit(compiler.EmitOptions{}) return newCompilationResult(config.CompilerOptions(), program, emitResult, diagnostics, harnessOptions) diff --git a/testdata/baselines/reference/submodule/compiler/overshifts.errors.txt b/testdata/baselines/reference/submodule/compiler/overshifts.errors.txt index d7daa2f563..dde392d2fd 100644 --- a/testdata/baselines/reference/submodule/compiler/overshifts.errors.txt +++ b/testdata/baselines/reference/submodule/compiler/overshifts.errors.txt @@ -1,3 +1,39 @@ +overshifts.ts(2,1): suggestion TS6807: This operation can be simplified. This shift is identical to `1 << 0`. +overshifts.ts(3,1): suggestion TS6807: This operation can be simplified. This shift is identical to `1 << 27`. +overshifts.ts(4,1): suggestion TS6807: This operation can be simplified. This shift is identical to `1 << 0`. +overshifts.ts(6,1): suggestion TS6807: This operation can be simplified. This shift is identical to `1 << 0`. +overshifts.ts(7,1): suggestion TS6807: This operation can be simplified. This shift is identical to `1 << -27`. +overshifts.ts(8,1): suggestion TS6807: This operation can be simplified. This shift is identical to `1 << 0`. +overshifts.ts(11,1): suggestion TS6807: This operation can be simplified. This shift is identical to `0xFF_FF_FF_FF >> 0`. +overshifts.ts(12,1): suggestion TS6807: This operation can be simplified. This shift is identical to `0xFF_FF_FF_FF >> 27`. +overshifts.ts(13,1): suggestion TS6807: This operation can be simplified. This shift is identical to `0xFF_FF_FF_FF >> 0`. +overshifts.ts(15,1): suggestion TS6807: This operation can be simplified. This shift is identical to `0xFF_FF_FF_FF >> 0`. +overshifts.ts(16,1): suggestion TS6807: This operation can be simplified. This shift is identical to `0xFF_FF_FF_FF >> -27`. +overshifts.ts(17,1): suggestion TS6807: This operation can be simplified. This shift is identical to `0xFF_FF_FF_FF >> 0`. +overshifts.ts(20,1): suggestion TS6807: This operation can be simplified. This shift is identical to `0xFF_FF_FF_FF >>> 0`. +overshifts.ts(21,1): suggestion TS6807: This operation can be simplified. This shift is identical to `0xFF_FF_FF_FF >>> 27`. +overshifts.ts(22,1): suggestion TS6807: This operation can be simplified. This shift is identical to `0xFF_FF_FF_FF >>> 0`. +overshifts.ts(24,1): suggestion TS6807: This operation can be simplified. This shift is identical to `0xFF_FF_FF_FF >>> 0`. +overshifts.ts(25,1): suggestion TS6807: This operation can be simplified. This shift is identical to `0xFF_FF_FF_FF >>> -27`. +overshifts.ts(26,1): suggestion TS6807: This operation can be simplified. This shift is identical to `0xFF_FF_FF_FF >>> 0`. +overshifts.ts(30,1): suggestion TS6807: This operation can be simplified. This shift is identical to `x <<= 0`. +overshifts.ts(31,1): suggestion TS6807: This operation can be simplified. This shift is identical to `x <<= 27`. +overshifts.ts(32,1): suggestion TS6807: This operation can be simplified. This shift is identical to `x <<= 0`. +overshifts.ts(34,1): suggestion TS6807: This operation can be simplified. This shift is identical to `x <<= 0`. +overshifts.ts(35,1): suggestion TS6807: This operation can be simplified. This shift is identical to `x <<= -27`. +overshifts.ts(36,1): suggestion TS6807: This operation can be simplified. This shift is identical to `x <<= 0`. +overshifts.ts(39,1): suggestion TS6807: This operation can be simplified. This shift is identical to `x >>= 0`. +overshifts.ts(40,1): suggestion TS6807: This operation can be simplified. This shift is identical to `x >>= 27`. +overshifts.ts(41,1): suggestion TS6807: This operation can be simplified. This shift is identical to `x >>= 0`. +overshifts.ts(43,1): suggestion TS6807: This operation can be simplified. This shift is identical to `x >>= 0`. +overshifts.ts(44,1): suggestion TS6807: This operation can be simplified. This shift is identical to `x >>= -27`. +overshifts.ts(45,1): suggestion TS6807: This operation can be simplified. This shift is identical to `x >>= 0`. +overshifts.ts(48,1): suggestion TS6807: This operation can be simplified. This shift is identical to `x >>>= 0`. +overshifts.ts(49,1): suggestion TS6807: This operation can be simplified. This shift is identical to `x >>>= 27`. +overshifts.ts(50,1): suggestion TS6807: This operation can be simplified. This shift is identical to `x >>>= 0`. +overshifts.ts(52,1): suggestion TS6807: This operation can be simplified. This shift is identical to `x >>>= 0`. +overshifts.ts(53,1): suggestion TS6807: This operation can be simplified. This shift is identical to `x >>>= -27`. +overshifts.ts(54,1): suggestion TS6807: This operation can be simplified. This shift is identical to `x >>>= 0`. overshifts.ts(58,9): error TS6807: This operation can be simplified. This shift is identical to `1 << 0`. overshifts.ts(59,9): error TS6807: This operation can be simplified. This shift is identical to `1 << 27`. overshifts.ts(60,9): error TS6807: This operation can be simplified. This shift is identical to `1 << 0`. @@ -18,61 +54,133 @@ overshifts.ts(85,9): error TS6807: This operation can be simplified. This shift overshifts.ts(86,9): error TS6807: This operation can be simplified. This shift is identical to `0xFF_FF_FF_FF >>> 0`. -==== overshifts.ts (18 errors) ==== +==== overshifts.ts (54 errors) ==== 1 << 1; // ok 1 << 32; // overshift + ~~~~~~~ +!!! suggestion TS6807: This operation can be simplified. This shift is identical to `1 << 0`. 1 << 123; + ~~~~~~~~ +!!! suggestion TS6807: This operation can be simplified. This shift is identical to `1 << 27`. 1 << 1024; + ~~~~~~~~~ +!!! suggestion TS6807: This operation can be simplified. This shift is identical to `1 << 0`. 1 << -1; // OK-ish 1 << -32; // backwards overshift + ~~~~~~~~ +!!! suggestion TS6807: This operation can be simplified. This shift is identical to `1 << 0`. 1 << -123; + ~~~~~~~~~ +!!! suggestion TS6807: This operation can be simplified. This shift is identical to `1 << -27`. 1 << -1024; + ~~~~~~~~~~ +!!! suggestion TS6807: This operation can be simplified. This shift is identical to `1 << 0`. 0xFF_FF_FF_FF >> 1; // ok 0xFF_FF_FF_FF >> 32; // overshift + ~~~~~~~~~~~~~~~~~~~ +!!! suggestion TS6807: This operation can be simplified. This shift is identical to `0xFF_FF_FF_FF >> 0`. 0xFF_FF_FF_FF >> 123; + ~~~~~~~~~~~~~~~~~~~~ +!!! suggestion TS6807: This operation can be simplified. This shift is identical to `0xFF_FF_FF_FF >> 27`. 0xFF_FF_FF_FF >> 1024; + ~~~~~~~~~~~~~~~~~~~~~ +!!! suggestion TS6807: This operation can be simplified. This shift is identical to `0xFF_FF_FF_FF >> 0`. 0xFF_FF_FF_FF >> -1; // OK-ish 0xFF_FF_FF_FF >> -32; // backwards overshift + ~~~~~~~~~~~~~~~~~~~~ +!!! suggestion TS6807: This operation can be simplified. This shift is identical to `0xFF_FF_FF_FF >> 0`. 0xFF_FF_FF_FF >> -123; + ~~~~~~~~~~~~~~~~~~~~~ +!!! suggestion TS6807: This operation can be simplified. This shift is identical to `0xFF_FF_FF_FF >> -27`. 0xFF_FF_FF_FF >> -1024; + ~~~~~~~~~~~~~~~~~~~~~~ +!!! suggestion TS6807: This operation can be simplified. This shift is identical to `0xFF_FF_FF_FF >> 0`. 0xFF_FF_FF_FF >>> 1; // ok 0xFF_FF_FF_FF >>> 32; // overshift + ~~~~~~~~~~~~~~~~~~~~ +!!! suggestion TS6807: This operation can be simplified. This shift is identical to `0xFF_FF_FF_FF >>> 0`. 0xFF_FF_FF_FF >>> 123; + ~~~~~~~~~~~~~~~~~~~~~ +!!! suggestion TS6807: This operation can be simplified. This shift is identical to `0xFF_FF_FF_FF >>> 27`. 0xFF_FF_FF_FF >>> 1024; + ~~~~~~~~~~~~~~~~~~~~~~ +!!! suggestion TS6807: This operation can be simplified. This shift is identical to `0xFF_FF_FF_FF >>> 0`. 0xFF_FF_FF_FF >>> -1; // OK-ish 0xFF_FF_FF_FF >>> -32; // backwards overshift + ~~~~~~~~~~~~~~~~~~~~~ +!!! suggestion TS6807: This operation can be simplified. This shift is identical to `0xFF_FF_FF_FF >>> 0`. 0xFF_FF_FF_FF >>> -123; + ~~~~~~~~~~~~~~~~~~~~~~ +!!! suggestion TS6807: This operation can be simplified. This shift is identical to `0xFF_FF_FF_FF >>> -27`. 0xFF_FF_FF_FF >>> -1024; + ~~~~~~~~~~~~~~~~~~~~~~~ +!!! suggestion TS6807: This operation can be simplified. This shift is identical to `0xFF_FF_FF_FF >>> 0`. let x = 1; x <<= 1; // ok x <<= 32; // overshift + ~~~~~~~~ +!!! suggestion TS6807: This operation can be simplified. This shift is identical to `x <<= 0`. x <<= 123; + ~~~~~~~~~ +!!! suggestion TS6807: This operation can be simplified. This shift is identical to `x <<= 27`. x <<= 1024; + ~~~~~~~~~~ +!!! suggestion TS6807: This operation can be simplified. This shift is identical to `x <<= 0`. x <<= -1; // OK-ish x <<= -32; // backwards overshift + ~~~~~~~~~ +!!! suggestion TS6807: This operation can be simplified. This shift is identical to `x <<= 0`. x <<= -123; + ~~~~~~~~~~ +!!! suggestion TS6807: This operation can be simplified. This shift is identical to `x <<= -27`. x <<= -1024; + ~~~~~~~~~~~ +!!! suggestion TS6807: This operation can be simplified. This shift is identical to `x <<= 0`. x >>= 1; // ok x >>= 32; // overshift + ~~~~~~~~ +!!! suggestion TS6807: This operation can be simplified. This shift is identical to `x >>= 0`. x >>= 123; + ~~~~~~~~~ +!!! suggestion TS6807: This operation can be simplified. This shift is identical to `x >>= 27`. x >>= 1024; + ~~~~~~~~~~ +!!! suggestion TS6807: This operation can be simplified. This shift is identical to `x >>= 0`. x >>= -1; // OK-ish x >>= -32; // backwards overshift + ~~~~~~~~~ +!!! suggestion TS6807: This operation can be simplified. This shift is identical to `x >>= 0`. x >>= -123; + ~~~~~~~~~~ +!!! suggestion TS6807: This operation can be simplified. This shift is identical to `x >>= -27`. x >>= -1024; + ~~~~~~~~~~~ +!!! suggestion TS6807: This operation can be simplified. This shift is identical to `x >>= 0`. x >>>= 1; // ok x >>>= 32; // overshift + ~~~~~~~~~ +!!! suggestion TS6807: This operation can be simplified. This shift is identical to `x >>>= 0`. x >>>= 123; + ~~~~~~~~~~ +!!! suggestion TS6807: This operation can be simplified. This shift is identical to `x >>>= 27`. x >>>= 1024; + ~~~~~~~~~~~ +!!! suggestion TS6807: This operation can be simplified. This shift is identical to `x >>>= 0`. x >>>= -1; // OK-ish x >>>= -32; // backwards overshift + ~~~~~~~~~~ +!!! suggestion TS6807: This operation can be simplified. This shift is identical to `x >>>= 0`. x >>>= -123; + ~~~~~~~~~~~ +!!! suggestion TS6807: This operation can be simplified. This shift is identical to `x >>>= -27`. x >>>= -1024; + ~~~~~~~~~~~~ +!!! suggestion TS6807: This operation can be simplified. This shift is identical to `x >>>= 0`. enum One { A = 1 << 1, // ok diff --git a/testdata/baselines/reference/submodule/compiler/overshifts.errors.txt.diff b/testdata/baselines/reference/submodule/compiler/overshifts.errors.txt.diff deleted file mode 100644 index a0019f43a1..0000000000 --- a/testdata/baselines/reference/submodule/compiler/overshifts.errors.txt.diff +++ /dev/null @@ -1,177 +0,0 @@ ---- old.overshifts.errors.txt -+++ new.overshifts.errors.txt -@@= skipped -0, +0 lines =@@ --overshifts.ts(2,1): suggestion TS6807: This operation can be simplified. This shift is identical to `1 << 0`. --overshifts.ts(3,1): suggestion TS6807: This operation can be simplified. This shift is identical to `1 << 27`. --overshifts.ts(4,1): suggestion TS6807: This operation can be simplified. This shift is identical to `1 << 0`. --overshifts.ts(6,1): suggestion TS6807: This operation can be simplified. This shift is identical to `1 << 0`. --overshifts.ts(7,1): suggestion TS6807: This operation can be simplified. This shift is identical to `1 << -27`. --overshifts.ts(8,1): suggestion TS6807: This operation can be simplified. This shift is identical to `1 << 0`. --overshifts.ts(11,1): suggestion TS6807: This operation can be simplified. This shift is identical to `0xFF_FF_FF_FF >> 0`. --overshifts.ts(12,1): suggestion TS6807: This operation can be simplified. This shift is identical to `0xFF_FF_FF_FF >> 27`. --overshifts.ts(13,1): suggestion TS6807: This operation can be simplified. This shift is identical to `0xFF_FF_FF_FF >> 0`. --overshifts.ts(15,1): suggestion TS6807: This operation can be simplified. This shift is identical to `0xFF_FF_FF_FF >> 0`. --overshifts.ts(16,1): suggestion TS6807: This operation can be simplified. This shift is identical to `0xFF_FF_FF_FF >> -27`. --overshifts.ts(17,1): suggestion TS6807: This operation can be simplified. This shift is identical to `0xFF_FF_FF_FF >> 0`. --overshifts.ts(20,1): suggestion TS6807: This operation can be simplified. This shift is identical to `0xFF_FF_FF_FF >>> 0`. --overshifts.ts(21,1): suggestion TS6807: This operation can be simplified. This shift is identical to `0xFF_FF_FF_FF >>> 27`. --overshifts.ts(22,1): suggestion TS6807: This operation can be simplified. This shift is identical to `0xFF_FF_FF_FF >>> 0`. --overshifts.ts(24,1): suggestion TS6807: This operation can be simplified. This shift is identical to `0xFF_FF_FF_FF >>> 0`. --overshifts.ts(25,1): suggestion TS6807: This operation can be simplified. This shift is identical to `0xFF_FF_FF_FF >>> -27`. --overshifts.ts(26,1): suggestion TS6807: This operation can be simplified. This shift is identical to `0xFF_FF_FF_FF >>> 0`. --overshifts.ts(30,1): suggestion TS6807: This operation can be simplified. This shift is identical to `x <<= 0`. --overshifts.ts(31,1): suggestion TS6807: This operation can be simplified. This shift is identical to `x <<= 27`. --overshifts.ts(32,1): suggestion TS6807: This operation can be simplified. This shift is identical to `x <<= 0`. --overshifts.ts(34,1): suggestion TS6807: This operation can be simplified. This shift is identical to `x <<= 0`. --overshifts.ts(35,1): suggestion TS6807: This operation can be simplified. This shift is identical to `x <<= -27`. --overshifts.ts(36,1): suggestion TS6807: This operation can be simplified. This shift is identical to `x <<= 0`. --overshifts.ts(39,1): suggestion TS6807: This operation can be simplified. This shift is identical to `x >>= 0`. --overshifts.ts(40,1): suggestion TS6807: This operation can be simplified. This shift is identical to `x >>= 27`. --overshifts.ts(41,1): suggestion TS6807: This operation can be simplified. This shift is identical to `x >>= 0`. --overshifts.ts(43,1): suggestion TS6807: This operation can be simplified. This shift is identical to `x >>= 0`. --overshifts.ts(44,1): suggestion TS6807: This operation can be simplified. This shift is identical to `x >>= -27`. --overshifts.ts(45,1): suggestion TS6807: This operation can be simplified. This shift is identical to `x >>= 0`. --overshifts.ts(48,1): suggestion TS6807: This operation can be simplified. This shift is identical to `x >>>= 0`. --overshifts.ts(49,1): suggestion TS6807: This operation can be simplified. This shift is identical to `x >>>= 27`. --overshifts.ts(50,1): suggestion TS6807: This operation can be simplified. This shift is identical to `x >>>= 0`. --overshifts.ts(52,1): suggestion TS6807: This operation can be simplified. This shift is identical to `x >>>= 0`. --overshifts.ts(53,1): suggestion TS6807: This operation can be simplified. This shift is identical to `x >>>= -27`. --overshifts.ts(54,1): suggestion TS6807: This operation can be simplified. This shift is identical to `x >>>= 0`. - overshifts.ts(58,9): error TS6807: This operation can be simplified. This shift is identical to `1 << 0`. - overshifts.ts(59,9): error TS6807: This operation can be simplified. This shift is identical to `1 << 27`. - overshifts.ts(60,9): error TS6807: This operation can be simplified. This shift is identical to `1 << 0`. -@@= skipped -53, +17 lines =@@ - overshifts.ts(86,9): error TS6807: This operation can be simplified. This shift is identical to `0xFF_FF_FF_FF >>> 0`. - - --==== overshifts.ts (54 errors) ==== -+==== overshifts.ts (18 errors) ==== - 1 << 1; // ok - 1 << 32; // overshift -- ~~~~~~~ --!!! suggestion TS6807: This operation can be simplified. This shift is identical to `1 << 0`. - 1 << 123; -- ~~~~~~~~ --!!! suggestion TS6807: This operation can be simplified. This shift is identical to `1 << 27`. - 1 << 1024; -- ~~~~~~~~~ --!!! suggestion TS6807: This operation can be simplified. This shift is identical to `1 << 0`. - 1 << -1; // OK-ish - 1 << -32; // backwards overshift -- ~~~~~~~~ --!!! suggestion TS6807: This operation can be simplified. This shift is identical to `1 << 0`. - 1 << -123; -- ~~~~~~~~~ --!!! suggestion TS6807: This operation can be simplified. This shift is identical to `1 << -27`. - 1 << -1024; -- ~~~~~~~~~~ --!!! suggestion TS6807: This operation can be simplified. This shift is identical to `1 << 0`. - - 0xFF_FF_FF_FF >> 1; // ok - 0xFF_FF_FF_FF >> 32; // overshift -- ~~~~~~~~~~~~~~~~~~~ --!!! suggestion TS6807: This operation can be simplified. This shift is identical to `0xFF_FF_FF_FF >> 0`. - 0xFF_FF_FF_FF >> 123; -- ~~~~~~~~~~~~~~~~~~~~ --!!! suggestion TS6807: This operation can be simplified. This shift is identical to `0xFF_FF_FF_FF >> 27`. - 0xFF_FF_FF_FF >> 1024; -- ~~~~~~~~~~~~~~~~~~~~~ --!!! suggestion TS6807: This operation can be simplified. This shift is identical to `0xFF_FF_FF_FF >> 0`. - 0xFF_FF_FF_FF >> -1; // OK-ish - 0xFF_FF_FF_FF >> -32; // backwards overshift -- ~~~~~~~~~~~~~~~~~~~~ --!!! suggestion TS6807: This operation can be simplified. This shift is identical to `0xFF_FF_FF_FF >> 0`. - 0xFF_FF_FF_FF >> -123; -- ~~~~~~~~~~~~~~~~~~~~~ --!!! suggestion TS6807: This operation can be simplified. This shift is identical to `0xFF_FF_FF_FF >> -27`. - 0xFF_FF_FF_FF >> -1024; -- ~~~~~~~~~~~~~~~~~~~~~~ --!!! suggestion TS6807: This operation can be simplified. This shift is identical to `0xFF_FF_FF_FF >> 0`. - - 0xFF_FF_FF_FF >>> 1; // ok - 0xFF_FF_FF_FF >>> 32; // overshift -- ~~~~~~~~~~~~~~~~~~~~ --!!! suggestion TS6807: This operation can be simplified. This shift is identical to `0xFF_FF_FF_FF >>> 0`. - 0xFF_FF_FF_FF >>> 123; -- ~~~~~~~~~~~~~~~~~~~~~ --!!! suggestion TS6807: This operation can be simplified. This shift is identical to `0xFF_FF_FF_FF >>> 27`. - 0xFF_FF_FF_FF >>> 1024; -- ~~~~~~~~~~~~~~~~~~~~~~ --!!! suggestion TS6807: This operation can be simplified. This shift is identical to `0xFF_FF_FF_FF >>> 0`. - 0xFF_FF_FF_FF >>> -1; // OK-ish - 0xFF_FF_FF_FF >>> -32; // backwards overshift -- ~~~~~~~~~~~~~~~~~~~~~ --!!! suggestion TS6807: This operation can be simplified. This shift is identical to `0xFF_FF_FF_FF >>> 0`. - 0xFF_FF_FF_FF >>> -123; -- ~~~~~~~~~~~~~~~~~~~~~~ --!!! suggestion TS6807: This operation can be simplified. This shift is identical to `0xFF_FF_FF_FF >>> -27`. - 0xFF_FF_FF_FF >>> -1024; -- ~~~~~~~~~~~~~~~~~~~~~~~ --!!! suggestion TS6807: This operation can be simplified. This shift is identical to `0xFF_FF_FF_FF >>> 0`. - - let x = 1; - x <<= 1; // ok - x <<= 32; // overshift -- ~~~~~~~~ --!!! suggestion TS6807: This operation can be simplified. This shift is identical to `x <<= 0`. - x <<= 123; -- ~~~~~~~~~ --!!! suggestion TS6807: This operation can be simplified. This shift is identical to `x <<= 27`. - x <<= 1024; -- ~~~~~~~~~~ --!!! suggestion TS6807: This operation can be simplified. This shift is identical to `x <<= 0`. - x <<= -1; // OK-ish - x <<= -32; // backwards overshift -- ~~~~~~~~~ --!!! suggestion TS6807: This operation can be simplified. This shift is identical to `x <<= 0`. - x <<= -123; -- ~~~~~~~~~~ --!!! suggestion TS6807: This operation can be simplified. This shift is identical to `x <<= -27`. - x <<= -1024; -- ~~~~~~~~~~~ --!!! suggestion TS6807: This operation can be simplified. This shift is identical to `x <<= 0`. - - x >>= 1; // ok - x >>= 32; // overshift -- ~~~~~~~~ --!!! suggestion TS6807: This operation can be simplified. This shift is identical to `x >>= 0`. - x >>= 123; -- ~~~~~~~~~ --!!! suggestion TS6807: This operation can be simplified. This shift is identical to `x >>= 27`. - x >>= 1024; -- ~~~~~~~~~~ --!!! suggestion TS6807: This operation can be simplified. This shift is identical to `x >>= 0`. - x >>= -1; // OK-ish - x >>= -32; // backwards overshift -- ~~~~~~~~~ --!!! suggestion TS6807: This operation can be simplified. This shift is identical to `x >>= 0`. - x >>= -123; -- ~~~~~~~~~~ --!!! suggestion TS6807: This operation can be simplified. This shift is identical to `x >>= -27`. - x >>= -1024; -- ~~~~~~~~~~~ --!!! suggestion TS6807: This operation can be simplified. This shift is identical to `x >>= 0`. - - x >>>= 1; // ok - x >>>= 32; // overshift -- ~~~~~~~~~ --!!! suggestion TS6807: This operation can be simplified. This shift is identical to `x >>>= 0`. - x >>>= 123; -- ~~~~~~~~~~ --!!! suggestion TS6807: This operation can be simplified. This shift is identical to `x >>>= 27`. - x >>>= 1024; -- ~~~~~~~~~~~ --!!! suggestion TS6807: This operation can be simplified. This shift is identical to `x >>>= 0`. - x >>>= -1; // OK-ish - x >>>= -32; // backwards overshift -- ~~~~~~~~~~ --!!! suggestion TS6807: This operation can be simplified. This shift is identical to `x >>>= 0`. - x >>>= -123; -- ~~~~~~~~~~~ --!!! suggestion TS6807: This operation can be simplified. This shift is identical to `x >>>= -27`. - x >>>= -1024; -- ~~~~~~~~~~~~ --!!! suggestion TS6807: This operation can be simplified. This shift is identical to `x >>>= 0`. - - enum One { - A = 1 << 1, // ok \ No newline at end of file From 9fb6cecb6169a7c335a424caf93966ec68577b86 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateusz=20Burzy=C5=84ski?= Date: Thu, 19 Jun 2025 22:49:17 +0200 Subject: [PATCH 05/15] Print parenthesis around intersections in unions (#1240) --- internal/printer/printer.go | 2 +- ...peFunctionObjectPropertyIntersection.types | 4 +- ...ctionObjectPropertyIntersection.types.diff | 4 +- ...ckIntersectionWithRecursiveType.errors.txt | 12 +- ...ersectionWithRecursiveType.errors.txt.diff | 34 ----- ...tyCheckIntersectionWithRecursiveType.types | 4 +- ...ckIntersectionWithRecursiveType.types.diff | 20 +-- ...yCheckWithMultipleDiscriminants.errors.txt | 4 +- ...kWithMultipleDiscriminants.errors.txt.diff | 20 --- .../inDoesNotOperateOnPrimitiveTypes.types | 2 +- ...nDoesNotOperateOnPrimitiveTypes.types.diff | 10 +- .../compiler/inKeywordAndIntersection.types | 8 +- .../inKeywordAndIntersection.types.diff | 18 +-- .../inKeywordTypeguard(strict=true).types | 10 +- ...inKeywordTypeguard(strict=true).types.diff | 33 +---- .../inferenceDoesNotAddUndefinedOrNull.types | 4 +- ...erenceDoesNotAddUndefinedOrNull.types.diff | 22 +--- ...eOfNullableObjectTypesWithCommonBase.types | 4 +- ...llableObjectTypesWithCommonBase.types.diff | 19 --- .../compiler/narrowingByTypeofInSwitch.types | 8 +- .../narrowingByTypeofInSwitch.types.diff | 25 +--- .../compiler/narrowingTypeofFunction.types | 12 +- .../narrowingTypeofFunction.types.diff | 26 +--- .../compiler/narrowingUnionToUnion.types | 4 +- .../compiler/narrowingUnionToUnion.types.diff | 13 +- .../objectLiteralExcessProperties.types | 2 +- .../objectLiteralExcessProperties.types.diff | 11 +- ...artialOfLargeAPIIsAbleToBeWorkedWith.types | 4 +- ...lOfLargeAPIIsAbleToBeWorkedWith.types.diff | 20 --- .../compiler/primitiveUnionDetection.types | 6 +- .../primitiveUnionDetection.types.diff | 6 +- ...uncalledFunctionChecksInConditional2.types | 2 +- ...ledFunctionChecksInConditional2.types.diff | 11 +- .../compiler/voidUndefinedReduction.types | 2 +- .../voidUndefinedReduction.types.diff | 11 +- .../conformance/controlFlowIfStatement.types | 2 +- .../controlFlowIfStatement.types.diff | 11 -- .../discriminatedUnionTypes2.types | 6 +- .../discriminatedUnionTypes2.types.diff | 15 +-- .../generatorYieldContextualType.types | 4 +- .../generatorYieldContextualType.types.diff | 7 +- .../intersectionAndUnionTypes.errors.txt | 32 ++--- .../intersectionAndUnionTypes.errors.txt.diff | 81 ------------ .../intersectionAndUnionTypes.types | 26 ++-- .../intersectionAndUnionTypes.types.diff | 67 ---------- .../conformance/intersectionNarrowing.types | 24 ++-- .../intersectionNarrowing.types.diff | 55 +------- .../intersectionOfUnionNarrowing.types | 4 +- .../intersectionOfUnionNarrowing.types.diff | 14 --- .../intersectionWithUnionConstraint.types | 4 +- ...intersectionWithUnionConstraint.types.diff | 6 +- .../conformance/keyofAndIndexedAccess2.types | 2 +- .../keyofAndIndexedAccess2.types.diff | 11 +- .../submodule/conformance/mappedTypes4.types | 2 +- .../conformance/mappedTypes4.types.diff | 11 -- .../nonPrimitiveAndEmptyObject.types | 2 +- .../nonPrimitiveAndEmptyObject.types.diff | 11 -- .../submodule/conformance/objectSpread.types | 24 ++-- .../conformance/objectSpread.types.diff | 57 +-------- .../conformance/spreadObjectOrFalsy.js | 2 +- .../conformance/spreadObjectOrFalsy.js.diff | 2 +- .../conformance/spreadObjectOrFalsy.types | 8 +- .../spreadObjectOrFalsy.types.diff | 19 +-- .../conformance/templateLiteralTypes2.types | 6 +- .../templateLiteralTypes2.types.diff | 19 +-- .../conformance/templateLiteralTypes3.types | 6 +- .../templateLiteralTypes3.types.diff | 21 +--- .../templateLiteralTypesPatterns.types | 12 +- .../templateLiteralTypesPatterns.types.diff | 14 +-- .../thisTypeInObjectLiterals2.types | 2 +- .../thisTypeInObjectLiterals2.types.diff | 11 +- .../typeGuardIntersectionTypes.types | 2 +- .../typeGuardIntersectionTypes.types.diff | 11 -- .../typeGuardsWithInstanceOf.errors.txt | 8 +- .../typeGuardsWithInstanceOf.errors.txt.diff | 27 ---- .../typeGuardsWithInstanceOf.types | 6 +- .../typeGuardsWithInstanceOf.types.diff | 27 +--- .../conformance/unionTypeInference.types | 14 +-- .../conformance/unionTypeInference.types.diff | 14 +-- .../conformance/unknownControlFlow.types | 38 +++--- .../conformance/unknownControlFlow.types.diff | 117 +----------------- 81 files changed, 224 insertions(+), 1037 deletions(-) delete mode 100644 testdata/baselines/reference/submodule/compiler/excessPropertyCheckIntersectionWithRecursiveType.errors.txt.diff delete mode 100644 testdata/baselines/reference/submodule/compiler/excessPropertyCheckWithMultipleDiscriminants.errors.txt.diff delete mode 100644 testdata/baselines/reference/submodule/compiler/inferenceOfNullableObjectTypesWithCommonBase.types.diff delete mode 100644 testdata/baselines/reference/submodule/compiler/partialOfLargeAPIIsAbleToBeWorkedWith.types.diff delete mode 100644 testdata/baselines/reference/submodule/conformance/controlFlowIfStatement.types.diff delete mode 100644 testdata/baselines/reference/submodule/conformance/intersectionAndUnionTypes.errors.txt.diff delete mode 100644 testdata/baselines/reference/submodule/conformance/intersectionAndUnionTypes.types.diff delete mode 100644 testdata/baselines/reference/submodule/conformance/intersectionOfUnionNarrowing.types.diff delete mode 100644 testdata/baselines/reference/submodule/conformance/mappedTypes4.types.diff delete mode 100644 testdata/baselines/reference/submodule/conformance/nonPrimitiveAndEmptyObject.types.diff delete mode 100644 testdata/baselines/reference/submodule/conformance/typeGuardIntersectionTypes.types.diff delete mode 100644 testdata/baselines/reference/submodule/conformance/typeGuardsWithInstanceOf.errors.txt.diff diff --git a/internal/printer/printer.go b/internal/printer/printer.go index 8d68f20015..2744cfa39b 100644 --- a/internal/printer/printer.go +++ b/internal/printer/printer.go @@ -1964,7 +1964,7 @@ func (p *Printer) emitNamedTupleMember(node *ast.NamedTupleMember) { } func (p *Printer) emitUnionTypeConstituent(node *ast.TypeNode) { - p.emitTypeNode(node, ast.TypePrecedenceIntersection) + p.emitTypeNode(node, ast.TypePrecedenceTypeOperator) } func (p *Printer) emitUnionType(node *ast.UnionTypeNode) { diff --git a/testdata/baselines/reference/submodule/compiler/contextualTypeFunctionObjectPropertyIntersection.types b/testdata/baselines/reference/submodule/compiler/contextualTypeFunctionObjectPropertyIntersection.types index 66c1f3be4a..39048bb643 100644 --- a/testdata/baselines/reference/submodule/compiler/contextualTypeFunctionObjectPropertyIntersection.types +++ b/testdata/baselines/reference/submodule/compiler/contextualTypeFunctionObjectPropertyIntersection.types @@ -19,7 +19,7 @@ interface MachineConfig { }; on?: { ->on : { [K in TEvent["type"]]?: Action | undefined; } & { "*"?: Action | undefined; } | undefined +>on : ({ [K in TEvent["type"]]?: Action | undefined; } & { "*"?: Action | undefined; }) | undefined [K in TEvent["type"]]?: Action; >type : K @@ -121,7 +121,7 @@ interface MachineConfig2 { }; on?: { ->on : { [K in TEvent["type"] as K extends Uppercase ? K : never]?: Action | undefined; } & { "*"?: Action | undefined; } | undefined +>on : ({ [K in TEvent["type"] as K extends Uppercase ? K : never]?: Action | undefined; } & { "*"?: Action | undefined; }) | undefined [K in TEvent["type"] as K extends Uppercase ? K : never]?: Action; >type : K diff --git a/testdata/baselines/reference/submodule/compiler/contextualTypeFunctionObjectPropertyIntersection.types.diff b/testdata/baselines/reference/submodule/compiler/contextualTypeFunctionObjectPropertyIntersection.types.diff index aa7b25e05c..f07aed5900 100644 --- a/testdata/baselines/reference/submodule/compiler/contextualTypeFunctionObjectPropertyIntersection.types.diff +++ b/testdata/baselines/reference/submodule/compiler/contextualTypeFunctionObjectPropertyIntersection.types.diff @@ -5,7 +5,7 @@ }; on?: { ->on : ({ [K in TEvent["type"]]?: Action | undefined; } & { "*"?: Action; }) | undefined -+>on : { [K in TEvent["type"]]?: Action | undefined; } & { "*"?: Action | undefined; } | undefined ++>on : ({ [K in TEvent["type"]]?: Action | undefined; } & { "*"?: Action | undefined; }) | undefined [K in TEvent["type"]]?: Action; >type : K @@ -14,7 +14,7 @@ }; on?: { ->on : ({ [K in TEvent["type"] as K extends Uppercase ? K : never]?: Action | undefined; } & { "*"?: Action; }) | undefined -+>on : { [K in TEvent["type"] as K extends Uppercase ? K : never]?: Action | undefined; } & { "*"?: Action | undefined; } | undefined ++>on : ({ [K in TEvent["type"] as K extends Uppercase ? K : never]?: Action | undefined; } & { "*"?: Action | undefined; }) | undefined [K in TEvent["type"] as K extends Uppercase ? K : never]?: Action; >type : K diff --git a/testdata/baselines/reference/submodule/compiler/excessPropertyCheckIntersectionWithRecursiveType.errors.txt b/testdata/baselines/reference/submodule/compiler/excessPropertyCheckIntersectionWithRecursiveType.errors.txt index 7842b6a269..faf11254bb 100644 --- a/testdata/baselines/reference/submodule/compiler/excessPropertyCheckIntersectionWithRecursiveType.errors.txt +++ b/testdata/baselines/reference/submodule/compiler/excessPropertyCheckIntersectionWithRecursiveType.errors.txt @@ -1,7 +1,7 @@ excessPropertyCheckIntersectionWithRecursiveType.ts(13,9): error TS2353: Object literal may only specify known properties, and 'invalid' does not exist in type '{ l2: Schema1; }'. -excessPropertyCheckIntersectionWithRecursiveType.ts(26,9): error TS2353: Object literal may only specify known properties, and 'invalid' does not exist in type '{ l2: { type: "boolean"; } & Example | { type: "boolean"; } & Example; }'. +excessPropertyCheckIntersectionWithRecursiveType.ts(26,9): error TS2353: Object literal may only specify known properties, and 'invalid' does not exist in type '{ l2: ({ type: "boolean"; } & Example) | ({ type: "boolean"; } & Example); }'. excessPropertyCheckIntersectionWithRecursiveType.ts(39,9): error TS2353: Object literal may only specify known properties, and 'invalid' does not exist in type '{ l2: Schema3; }'. -excessPropertyCheckIntersectionWithRecursiveType.ts(52,9): error TS2353: Object literal may only specify known properties, and 'invalid' does not exist in type 'Example<{ l2: boolean; }> & { l2: { type: "boolean"; } & Example | { type: "boolean"; } & Example; }'. +excessPropertyCheckIntersectionWithRecursiveType.ts(52,9): error TS2353: Object literal may only specify known properties, and 'invalid' does not exist in type 'Example<{ l2: boolean; }> & { l2: ({ type: "boolean"; } & Example) | ({ type: "boolean"; } & Example); }'. excessPropertyCheckIntersectionWithRecursiveType.ts(86,11): error TS2353: Object literal may only specify known properties, and 'children' does not exist in type 'User'. excessPropertyCheckIntersectionWithRecursiveType.ts(102,35): error TS2339: Property 'children' does not exist on type 'User'. @@ -37,8 +37,8 @@ excessPropertyCheckIntersectionWithRecursiveType.ts(102,35): error TS2339: Prope l2: { type: 'boolean' }, invalid: false, ~~~~~~~ -!!! error TS2353: Object literal may only specify known properties, and 'invalid' does not exist in type '{ l2: { type: "boolean"; } & Example | { type: "boolean"; } & Example; }'. -!!! related TS6500 excessPropertyCheckIntersectionWithRecursiveType.ts:19:78: The expected type comes from property 'props' which is declared here on type '{ props: { l2: { type: "boolean"; } & Example | { type: "boolean"; } & Example; }; } & Example<{ l2: boolean; }>' +!!! error TS2353: Object literal may only specify known properties, and 'invalid' does not exist in type '{ l2: ({ type: "boolean"; } & Example) | ({ type: "boolean"; } & Example); }'. +!!! related TS6500 excessPropertyCheckIntersectionWithRecursiveType.ts:19:78: The expected type comes from property 'props' which is declared here on type '{ props: { l2: ({ type: "boolean"; } & Example) | ({ type: "boolean"; } & Example); }; } & Example<{ l2: boolean; }>' }, }, }, @@ -69,8 +69,8 @@ excessPropertyCheckIntersectionWithRecursiveType.ts(102,35): error TS2339: Prope l2: { type: 'boolean' }, invalid: false, ~~~~~~~ -!!! error TS2353: Object literal may only specify known properties, and 'invalid' does not exist in type 'Example<{ l2: boolean; }> & { l2: { type: "boolean"; } & Example | { type: "boolean"; } & Example; }'. -!!! related TS6500 excessPropertyCheckIntersectionWithRecursiveType.ts:45:78: The expected type comes from property 'props' which is declared here on type '{ props: Example<{ l2: boolean; }> & { l2: { type: "boolean"; } & Example | { type: "boolean"; } & Example; }; }' +!!! error TS2353: Object literal may only specify known properties, and 'invalid' does not exist in type 'Example<{ l2: boolean; }> & { l2: ({ type: "boolean"; } & Example) | ({ type: "boolean"; } & Example); }'. +!!! related TS6500 excessPropertyCheckIntersectionWithRecursiveType.ts:45:78: The expected type comes from property 'props' which is declared here on type '{ props: Example<{ l2: boolean; }> & { l2: ({ type: "boolean"; } & Example) | ({ type: "boolean"; } & Example); }; }' }, }, }, diff --git a/testdata/baselines/reference/submodule/compiler/excessPropertyCheckIntersectionWithRecursiveType.errors.txt.diff b/testdata/baselines/reference/submodule/compiler/excessPropertyCheckIntersectionWithRecursiveType.errors.txt.diff deleted file mode 100644 index 65a05ea714..0000000000 --- a/testdata/baselines/reference/submodule/compiler/excessPropertyCheckIntersectionWithRecursiveType.errors.txt.diff +++ /dev/null @@ -1,34 +0,0 @@ ---- old.excessPropertyCheckIntersectionWithRecursiveType.errors.txt -+++ new.excessPropertyCheckIntersectionWithRecursiveType.errors.txt -@@= skipped -0, +0 lines =@@ - excessPropertyCheckIntersectionWithRecursiveType.ts(13,9): error TS2353: Object literal may only specify known properties, and 'invalid' does not exist in type '{ l2: Schema1; }'. --excessPropertyCheckIntersectionWithRecursiveType.ts(26,9): error TS2353: Object literal may only specify known properties, and 'invalid' does not exist in type '{ l2: ({ type: "boolean"; } & Example) | ({ type: "boolean"; } & Example); }'. -+excessPropertyCheckIntersectionWithRecursiveType.ts(26,9): error TS2353: Object literal may only specify known properties, and 'invalid' does not exist in type '{ l2: { type: "boolean"; } & Example | { type: "boolean"; } & Example; }'. - excessPropertyCheckIntersectionWithRecursiveType.ts(39,9): error TS2353: Object literal may only specify known properties, and 'invalid' does not exist in type '{ l2: Schema3; }'. --excessPropertyCheckIntersectionWithRecursiveType.ts(52,9): error TS2353: Object literal may only specify known properties, and 'invalid' does not exist in type 'Example<{ l2: boolean; }> & { l2: ({ type: "boolean"; } & Example) | ({ type: "boolean"; } & Example); }'. -+excessPropertyCheckIntersectionWithRecursiveType.ts(52,9): error TS2353: Object literal may only specify known properties, and 'invalid' does not exist in type 'Example<{ l2: boolean; }> & { l2: { type: "boolean"; } & Example | { type: "boolean"; } & Example; }'. - excessPropertyCheckIntersectionWithRecursiveType.ts(86,11): error TS2353: Object literal may only specify known properties, and 'children' does not exist in type 'User'. - excessPropertyCheckIntersectionWithRecursiveType.ts(102,35): error TS2339: Property 'children' does not exist on type 'User'. - -@@= skipped -36, +36 lines =@@ - l2: { type: 'boolean' }, - invalid: false, - ~~~~~~~ --!!! error TS2353: Object literal may only specify known properties, and 'invalid' does not exist in type '{ l2: ({ type: "boolean"; } & Example) | ({ type: "boolean"; } & Example); }'. --!!! related TS6500 excessPropertyCheckIntersectionWithRecursiveType.ts:19:78: The expected type comes from property 'props' which is declared here on type '{ props: { l2: ({ type: "boolean"; } & Example) | ({ type: "boolean"; } & Example); }; } & Example<{ l2: boolean; }>' -+!!! error TS2353: Object literal may only specify known properties, and 'invalid' does not exist in type '{ l2: { type: "boolean"; } & Example | { type: "boolean"; } & Example; }'. -+!!! related TS6500 excessPropertyCheckIntersectionWithRecursiveType.ts:19:78: The expected type comes from property 'props' which is declared here on type '{ props: { l2: { type: "boolean"; } & Example | { type: "boolean"; } & Example; }; } & Example<{ l2: boolean; }>' - }, - }, - }, -@@= skipped -32, +32 lines =@@ - l2: { type: 'boolean' }, - invalid: false, - ~~~~~~~ --!!! error TS2353: Object literal may only specify known properties, and 'invalid' does not exist in type 'Example<{ l2: boolean; }> & { l2: ({ type: "boolean"; } & Example) | ({ type: "boolean"; } & Example); }'. --!!! related TS6500 excessPropertyCheckIntersectionWithRecursiveType.ts:45:78: The expected type comes from property 'props' which is declared here on type '{ props: Example<{ l2: boolean; }> & { l2: ({ type: "boolean"; } & Example) | ({ type: "boolean"; } & Example); }; }' -+!!! error TS2353: Object literal may only specify known properties, and 'invalid' does not exist in type 'Example<{ l2: boolean; }> & { l2: { type: "boolean"; } & Example | { type: "boolean"; } & Example; }'. -+!!! related TS6500 excessPropertyCheckIntersectionWithRecursiveType.ts:45:78: The expected type comes from property 'props' which is declared here on type '{ props: Example<{ l2: boolean; }> & { l2: { type: "boolean"; } & Example | { type: "boolean"; } & Example; }; }' - }, - }, - }, \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/excessPropertyCheckIntersectionWithRecursiveType.types b/testdata/baselines/reference/submodule/compiler/excessPropertyCheckIntersectionWithRecursiveType.types index aa6b423891..4430e1b7f6 100644 --- a/testdata/baselines/reference/submodule/compiler/excessPropertyCheckIntersectionWithRecursiveType.types +++ b/testdata/baselines/reference/submodule/compiler/excessPropertyCheckIntersectionWithRecursiveType.types @@ -54,7 +54,7 @@ type Schema2 = (T extends boolean ? { type: 'boolean'; } & Example : { pro >props : { [P in keyof T]: Schema2; } export const schemaObj2: Schema2 = { ->schemaObj2 : { props: { l1: { props: { l2: { type: "boolean"; } & Example | { type: "boolean"; } & Example; }; } & Example<{ l2: boolean; }>; }; } & Example +>schemaObj2 : { props: { l1: { props: { l2: ({ type: "boolean"; } & Example) | ({ type: "boolean"; } & Example); }; } & Example<{ l2: boolean; }>; }; } & Example >{ props: { l1: { props: { l2: { type: 'boolean' }, invalid: false, }, }, },} : { props: { l1: { props: { l2: { type: "boolean"; }; invalid: boolean; }; }; }; } props: { @@ -126,7 +126,7 @@ type Schema4 = (T extends boolean ? { type: 'boolean'; } & Example : { pro >props : Example & { [P in keyof T]: Schema4; } export const schemaObj4: Schema4 = { ->schemaObj4 : { props: Example & { l1: { props: Example<{ l2: boolean; }> & { l2: { type: "boolean"; } & Example | { type: "boolean"; } & Example; }; }; }; } +>schemaObj4 : { props: Example & { l1: { props: Example<{ l2: boolean; }> & { l2: ({ type: "boolean"; } & Example) | ({ type: "boolean"; } & Example); }; }; }; } >{ props: { l1: { props: { l2: { type: 'boolean' }, invalid: false, }, }, },} : { props: { l1: { props: { l2: { type: "boolean"; }; invalid: boolean; }; }; }; } props: { diff --git a/testdata/baselines/reference/submodule/compiler/excessPropertyCheckIntersectionWithRecursiveType.types.diff b/testdata/baselines/reference/submodule/compiler/excessPropertyCheckIntersectionWithRecursiveType.types.diff index 0e61f56a60..631d02a87e 100644 --- a/testdata/baselines/reference/submodule/compiler/excessPropertyCheckIntersectionWithRecursiveType.types.diff +++ b/testdata/baselines/reference/submodule/compiler/excessPropertyCheckIntersectionWithRecursiveType.types.diff @@ -1,24 +1,6 @@ --- old.excessPropertyCheckIntersectionWithRecursiveType.types +++ new.excessPropertyCheckIntersectionWithRecursiveType.types -@@= skipped -53, +53 lines =@@ - >props : { [P in keyof T]: Schema2; } - - export const schemaObj2: Schema2 = { -->schemaObj2 : { props: { l1: { props: { l2: ({ type: "boolean"; } & Example) | ({ type: "boolean"; } & Example); }; } & Example<{ l2: boolean; }>; }; } & Example -+>schemaObj2 : { props: { l1: { props: { l2: { type: "boolean"; } & Example | { type: "boolean"; } & Example; }; } & Example<{ l2: boolean; }>; }; } & Example - >{ props: { l1: { props: { l2: { type: 'boolean' }, invalid: false, }, }, },} : { props: { l1: { props: { l2: { type: "boolean"; }; invalid: boolean; }; }; }; } - - props: { -@@= skipped -72, +72 lines =@@ - >props : Example & { [P in keyof T]: Schema4; } - - export const schemaObj4: Schema4 = { -->schemaObj4 : { props: Example & { l1: { props: Example<{ l2: boolean; }> & { l2: ({ type: "boolean"; } & Example) | ({ type: "boolean"; } & Example); }; }; }; } -+>schemaObj4 : { props: Example & { l1: { props: Example<{ l2: boolean; }> & { l2: { type: "boolean"; } & Example | { type: "boolean"; } & Example; }; }; }; } - >{ props: { l1: { props: { l2: { type: 'boolean' }, invalid: false, }, }, },} : { props: { l1: { props: { l2: { type: "boolean"; }; invalid: boolean; }; }; }; } - - props: { -@@= skipped -56, +56 lines =@@ +@@= skipped -181, +181 lines =@@ >1 : T 0: T & { children: BuildTree>[] }; diff --git a/testdata/baselines/reference/submodule/compiler/excessPropertyCheckWithMultipleDiscriminants.errors.txt b/testdata/baselines/reference/submodule/compiler/excessPropertyCheckWithMultipleDiscriminants.errors.txt index ac6fa6bafe..66d57c2dae 100644 --- a/testdata/baselines/reference/submodule/compiler/excessPropertyCheckWithMultipleDiscriminants.errors.txt +++ b/testdata/baselines/reference/submodule/compiler/excessPropertyCheckWithMultipleDiscriminants.errors.txt @@ -2,7 +2,7 @@ excessPropertyCheckWithMultipleDiscriminants.ts(30,5): error TS2353: Object lite excessPropertyCheckWithMultipleDiscriminants.ts(41,5): error TS2353: Object literal may only specify known properties, and 'p3' does not exist in type '{ p1: "left"; p2: boolean; }'. excessPropertyCheckWithMultipleDiscriminants.ts(50,5): error TS2353: Object literal may only specify known properties, and 'p4' does not exist in type '{ p1: "left"; p2: true; p3: number; } | { p1: "left"; p2: boolean; }'. excessPropertyCheckWithMultipleDiscriminants.ts(57,5): error TS2353: Object literal may only specify known properties, and 'p3' does not exist in type '{ p1: "right"; p2: false; p4: string; }'. -excessPropertyCheckWithMultipleDiscriminants.ts(83,5): error TS2353: Object literal may only specify known properties, and 'b' does not exist in type 'Common | Common & A'. +excessPropertyCheckWithMultipleDiscriminants.ts(83,5): error TS2353: Object literal may only specify known properties, and 'b' does not exist in type 'Common | (Common & A)'. excessPropertyCheckWithMultipleDiscriminants.ts(93,5): error TS2353: Object literal may only specify known properties, and 'b' does not exist in type 'A | Common'. excessPropertyCheckWithMultipleDiscriminants.ts(131,5): error TS2353: Object literal may only specify known properties, and 'autoIncrement' does not exist in type 'OneToOneAttribute | StringAttribute'. excessPropertyCheckWithMultipleDiscriminants.ts(137,5): error TS2353: Object literal may only specify known properties, and 'autoIncrement' does not exist in type 'StringAttribute'. @@ -101,7 +101,7 @@ excessPropertyCheckWithMultipleDiscriminants.ts(137,5): error TS2353: Object lit a: 1, b: 1 // excess property ~ -!!! error TS2353: Object literal may only specify known properties, and 'b' does not exist in type 'Common | Common & A'. +!!! error TS2353: Object literal may only specify known properties, and 'b' does not exist in type 'Common | (Common & A)'. } type CommonWithDisjointOverlappingOptionals = Common | A | B; diff --git a/testdata/baselines/reference/submodule/compiler/excessPropertyCheckWithMultipleDiscriminants.errors.txt.diff b/testdata/baselines/reference/submodule/compiler/excessPropertyCheckWithMultipleDiscriminants.errors.txt.diff deleted file mode 100644 index bd9af34bf2..0000000000 --- a/testdata/baselines/reference/submodule/compiler/excessPropertyCheckWithMultipleDiscriminants.errors.txt.diff +++ /dev/null @@ -1,20 +0,0 @@ ---- old.excessPropertyCheckWithMultipleDiscriminants.errors.txt -+++ new.excessPropertyCheckWithMultipleDiscriminants.errors.txt -@@= skipped -1, +1 lines =@@ - excessPropertyCheckWithMultipleDiscriminants.ts(41,5): error TS2353: Object literal may only specify known properties, and 'p3' does not exist in type '{ p1: "left"; p2: boolean; }'. - excessPropertyCheckWithMultipleDiscriminants.ts(50,5): error TS2353: Object literal may only specify known properties, and 'p4' does not exist in type '{ p1: "left"; p2: true; p3: number; } | { p1: "left"; p2: boolean; }'. - excessPropertyCheckWithMultipleDiscriminants.ts(57,5): error TS2353: Object literal may only specify known properties, and 'p3' does not exist in type '{ p1: "right"; p2: false; p4: string; }'. --excessPropertyCheckWithMultipleDiscriminants.ts(83,5): error TS2353: Object literal may only specify known properties, and 'b' does not exist in type 'Common | (Common & A)'. -+excessPropertyCheckWithMultipleDiscriminants.ts(83,5): error TS2353: Object literal may only specify known properties, and 'b' does not exist in type 'Common | Common & A'. - excessPropertyCheckWithMultipleDiscriminants.ts(93,5): error TS2353: Object literal may only specify known properties, and 'b' does not exist in type 'A | Common'. - excessPropertyCheckWithMultipleDiscriminants.ts(131,5): error TS2353: Object literal may only specify known properties, and 'autoIncrement' does not exist in type 'OneToOneAttribute | StringAttribute'. - excessPropertyCheckWithMultipleDiscriminants.ts(137,5): error TS2353: Object literal may only specify known properties, and 'autoIncrement' does not exist in type 'StringAttribute'. -@@= skipped -99, +99 lines =@@ - a: 1, - b: 1 // excess property - ~ --!!! error TS2353: Object literal may only specify known properties, and 'b' does not exist in type 'Common | (Common & A)'. -+!!! error TS2353: Object literal may only specify known properties, and 'b' does not exist in type 'Common | Common & A'. - } - - type CommonWithDisjointOverlappingOptionals = Common | A | B; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/inDoesNotOperateOnPrimitiveTypes.types b/testdata/baselines/reference/submodule/compiler/inDoesNotOperateOnPrimitiveTypes.types index d01068391a..4726b282eb 100644 --- a/testdata/baselines/reference/submodule/compiler/inDoesNotOperateOnPrimitiveTypes.types +++ b/testdata/baselines/reference/submodule/compiler/inDoesNotOperateOnPrimitiveTypes.types @@ -148,7 +148,7 @@ function union5(p: T | U) "key" in p; >"key" in p : boolean >"key" : "key" ->p : T & object | U & object +>p : (T & object) | (U & object) } } diff --git a/testdata/baselines/reference/submodule/compiler/inDoesNotOperateOnPrimitiveTypes.types.diff b/testdata/baselines/reference/submodule/compiler/inDoesNotOperateOnPrimitiveTypes.types.diff index 8442052886..59ae60aca2 100644 --- a/testdata/baselines/reference/submodule/compiler/inDoesNotOperateOnPrimitiveTypes.types.diff +++ b/testdata/baselines/reference/submodule/compiler/inDoesNotOperateOnPrimitiveTypes.types.diff @@ -26,12 +26,4 @@ +>union5 : (p: T | U) => void >p : T | U - // For consistency, this should probably not be an error, because useful -@@= skipped -25, +25 lines =@@ - "key" in p; - >"key" in p : boolean - >"key" : "key" -->p : (T & object) | (U & object) -+>p : T & object | U & object - } - } + // For consistency, this should probably not be an error, because useful \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/inKeywordAndIntersection.types b/testdata/baselines/reference/submodule/compiler/inKeywordAndIntersection.types index 0ce86439e4..603bbba925 100644 --- a/testdata/baselines/reference/submodule/compiler/inKeywordAndIntersection.types +++ b/testdata/baselines/reference/submodule/compiler/inKeywordAndIntersection.types @@ -12,17 +12,17 @@ class B { b = 0 } >0 : 0 function f10(obj: A & { x: string } | B) { ->f10 : (obj: B | A & { x: string; }) => void ->obj : B | A & { x: string; } +>f10 : (obj: B | (A & { x: string; })) => void +>obj : B | (A & { x: string; }) >x : string if (obj instanceof Object) { >obj instanceof Object : boolean ->obj : B | A & { x: string; } +>obj : B | (A & { x: string; }) >Object : ObjectConstructor obj; // A & { x: string } | B ->obj : B | A & { x: string; } +>obj : B | (A & { x: string; }) } else { obj; // Error diff --git a/testdata/baselines/reference/submodule/compiler/inKeywordAndIntersection.types.diff b/testdata/baselines/reference/submodule/compiler/inKeywordAndIntersection.types.diff index d85a30208f..52af7b116f 100644 --- a/testdata/baselines/reference/submodule/compiler/inKeywordAndIntersection.types.diff +++ b/testdata/baselines/reference/submodule/compiler/inKeywordAndIntersection.types.diff @@ -5,20 +5,6 @@ function f10(obj: A & { x: string } | B) { ->f10 : (obj: (A & { x: string; }) | B) => void -->obj : B | (A & { x: string; }) -+>f10 : (obj: B | A & { x: string; }) => void -+>obj : B | A & { x: string; } ++>f10 : (obj: B | (A & { x: string; })) => void + >obj : B | (A & { x: string; }) >x : string - - if (obj instanceof Object) { - >obj instanceof Object : boolean -->obj : B | (A & { x: string; }) -+>obj : B | A & { x: string; } - >Object : ObjectConstructor - - obj; // A & { x: string } | B -->obj : B | (A & { x: string; }) -+>obj : B | A & { x: string; } - } - else { - obj; // Error \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/inKeywordTypeguard(strict=true).types b/testdata/baselines/reference/submodule/compiler/inKeywordTypeguard(strict=true).types index faee59fc37..769115a81f 100644 --- a/testdata/baselines/reference/submodule/compiler/inKeywordTypeguard(strict=true).types +++ b/testdata/baselines/reference/submodule/compiler/inKeywordTypeguard(strict=true).types @@ -442,15 +442,15 @@ function negativeIntersectionTest() { >window : Window & typeof globalThis window.ontouchstart ->window.ontouchstart : ((this: GlobalEventHandlers, ev: TouchEvent) => any) & ((this: Window, ev: TouchEvent) => any) | null | undefined +>window.ontouchstart : (((this: GlobalEventHandlers, ev: TouchEvent) => any) & ((this: Window, ev: TouchEvent) => any)) | null | undefined >window : Window & typeof globalThis ->ontouchstart : ((this: GlobalEventHandlers, ev: TouchEvent) => any) & ((this: Window, ev: TouchEvent) => any) | null | undefined +>ontouchstart : (((this: GlobalEventHandlers, ev: TouchEvent) => any) & ((this: Window, ev: TouchEvent) => any)) | null | undefined } else { window.ontouchstart ->window.ontouchstart : ((this: GlobalEventHandlers, ev: TouchEvent) => any) & ((this: Window, ev: TouchEvent) => any) | null | undefined +>window.ontouchstart : (((this: GlobalEventHandlers, ev: TouchEvent) => any) & ((this: Window, ev: TouchEvent) => any)) | null | undefined >window : Window & typeof globalThis ->ontouchstart : ((this: GlobalEventHandlers, ev: TouchEvent) => any) & ((this: Window, ev: TouchEvent) => any) | null | undefined +>ontouchstart : (((this: GlobalEventHandlers, ev: TouchEvent) => any) & ((this: Window, ev: TouchEvent) => any)) | null | undefined } } @@ -1030,7 +1030,7 @@ function foo(value: A) { >value : A >"object" : "object" >value !== null : boolean ->value : A & null | A & object +>value : (A & null) | (A & object) >"prop" in value : boolean >"prop" : "prop" >value : A & object diff --git a/testdata/baselines/reference/submodule/compiler/inKeywordTypeguard(strict=true).types.diff b/testdata/baselines/reference/submodule/compiler/inKeywordTypeguard(strict=true).types.diff index 66099627f9..7c1b5f737d 100644 --- a/testdata/baselines/reference/submodule/compiler/inKeywordTypeguard(strict=true).types.diff +++ b/testdata/baselines/reference/submodule/compiler/inKeywordTypeguard(strict=true).types.diff @@ -1,26 +1,6 @@ --- old.inKeywordTypeguard(strict=true).types +++ new.inKeywordTypeguard(strict=true).types -@@= skipped -441, +441 lines =@@ - >window : Window & typeof globalThis - - window.ontouchstart -->window.ontouchstart : (((this: GlobalEventHandlers, ev: TouchEvent) => any) & ((this: Window, ev: TouchEvent) => any)) | null | undefined -+>window.ontouchstart : ((this: GlobalEventHandlers, ev: TouchEvent) => any) & ((this: Window, ev: TouchEvent) => any) | null | undefined - >window : Window & typeof globalThis -->ontouchstart : (((this: GlobalEventHandlers, ev: TouchEvent) => any) & ((this: Window, ev: TouchEvent) => any)) | null | undefined -+>ontouchstart : ((this: GlobalEventHandlers, ev: TouchEvent) => any) & ((this: Window, ev: TouchEvent) => any) | null | undefined - - } else { - window.ontouchstart -->window.ontouchstart : (((this: GlobalEventHandlers, ev: TouchEvent) => any) & ((this: Window, ev: TouchEvent) => any)) | null | undefined -+>window.ontouchstart : ((this: GlobalEventHandlers, ev: TouchEvent) => any) & ((this: Window, ev: TouchEvent) => any) | null | undefined - >window : Window & typeof globalThis -->ontouchstart : (((this: GlobalEventHandlers, ev: TouchEvent) => any) & ((this: Window, ev: TouchEvent) => any)) | null | undefined -+>ontouchstart : ((this: GlobalEventHandlers, ev: TouchEvent) => any) & ((this: Window, ev: TouchEvent) => any) | null | undefined - } - } - -@@= skipped -505, +505 lines =@@ +@@= skipped -946, +946 lines =@@ } function f13(x: { a?: string }) { @@ -47,16 +27,7 @@ } } -@@= skipped -83, +83 lines =@@ - >value : A - >"object" : "object" - >value !== null : boolean -->value : (A & null) | (A & object) -+>value : A & null | A & object - >"prop" in value : boolean - >"prop" : "prop" - >value : A & object -@@= skipped -46, +46 lines =@@ +@@= skipped -129, +129 lines =@@ // Repro from #51549 const f =

(a: P & {}) => { diff --git a/testdata/baselines/reference/submodule/compiler/inferenceDoesNotAddUndefinedOrNull.types b/testdata/baselines/reference/submodule/compiler/inferenceDoesNotAddUndefinedOrNull.types index 649be356ed..324860fe97 100644 --- a/testdata/baselines/reference/submodule/compiler/inferenceDoesNotAddUndefinedOrNull.types +++ b/testdata/baselines/reference/submodule/compiler/inferenceDoesNotAddUndefinedOrNull.types @@ -57,7 +57,7 @@ function flatMapChildren(node: Node, cb: (child: Node) => readonly T[] | T | >...toArray(value) : T >toArray(value) : readonly T[] >toArray : { (value: T_1 | T_1[]): T_1[]; (value: T_1 | readonly T_1[]): readonly T_1[]; } ->value : readonly T[] | T & ({} | null) +>value : readonly T[] | (T & ({} | null)) } }); return result; @@ -100,7 +100,7 @@ function flatMapChildren2(node: Node, cb: (child: Node) => readonly T[] | T | >...toArray(value) : T >toArray(value) : readonly T[] >toArray : { (value: T_1 | T_1[]): T_1[]; (value: T_1 | readonly T_1[]): readonly T_1[]; } ->value : readonly T[] | T & ({} | undefined) +>value : readonly T[] | (T & ({} | undefined)) } }); return result; diff --git a/testdata/baselines/reference/submodule/compiler/inferenceDoesNotAddUndefinedOrNull.types.diff b/testdata/baselines/reference/submodule/compiler/inferenceDoesNotAddUndefinedOrNull.types.diff index 65e0a63d5c..f7aff62a27 100644 --- a/testdata/baselines/reference/submodule/compiler/inferenceDoesNotAddUndefinedOrNull.types.diff +++ b/testdata/baselines/reference/submodule/compiler/inferenceDoesNotAddUndefinedOrNull.types.diff @@ -51,16 +51,7 @@ >child : Node if (value !== undefined) { -@@= skipped -25, +25 lines =@@ - >...toArray(value) : T - >toArray(value) : readonly T[] - >toArray : { (value: T_1 | T_1[]): T_1[]; (value: T_1 | readonly T_1[]): readonly T_1[]; } -->value : readonly T[] | (T & ({} | null)) -+>value : readonly T[] | T & ({} | null) - } - }); - return result; -@@= skipped -8, +8 lines =@@ +@@= skipped -33, +33 lines =@@ } function flatMapChildren2(node: Node, cb: (child: Node) => readonly T[] | T | null): readonly T[] { @@ -91,13 +82,4 @@ +>cb : (child: Node) => T | readonly T[] | null >child : Node - if (value !== null) { -@@= skipped -24, +24 lines =@@ - >...toArray(value) : T - >toArray(value) : readonly T[] - >toArray : { (value: T_1 | T_1[]): T_1[]; (value: T_1 | readonly T_1[]): readonly T_1[]; } -->value : readonly T[] | (T & ({} | undefined)) -+>value : readonly T[] | T & ({} | undefined) - } - }); - return result; \ No newline at end of file + if (value !== null) { \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/inferenceOfNullableObjectTypesWithCommonBase.types b/testdata/baselines/reference/submodule/compiler/inferenceOfNullableObjectTypesWithCommonBase.types index 21aa246f2b..f668a1ee84 100644 --- a/testdata/baselines/reference/submodule/compiler/inferenceOfNullableObjectTypesWithCommonBase.types +++ b/testdata/baselines/reference/submodule/compiler/inferenceOfNullableObjectTypesWithCommonBase.types @@ -138,14 +138,14 @@ equal(v as string, v as string & { tag: 'foo' } | undefined); >equal : (a: T, b: T) => void >v as string : string >v : never ->v as string & { tag: 'foo' } | undefined : string & { tag: "foo"; } | undefined +>v as string & { tag: 'foo' } | undefined : (string & { tag: "foo"; }) | undefined >v : never >tag : "foo" equal(v as string & { tag: 'foo' } | undefined, v as string); >equal(v as string & { tag: 'foo' } | undefined, v as string) : void >equal : (a: T, b: T) => void ->v as string & { tag: 'foo' } | undefined : string & { tag: "foo"; } | undefined +>v as string & { tag: 'foo' } | undefined : (string & { tag: "foo"; }) | undefined >v : never >tag : "foo" >v as string : string diff --git a/testdata/baselines/reference/submodule/compiler/inferenceOfNullableObjectTypesWithCommonBase.types.diff b/testdata/baselines/reference/submodule/compiler/inferenceOfNullableObjectTypesWithCommonBase.types.diff deleted file mode 100644 index 15829f9ca2..0000000000 --- a/testdata/baselines/reference/submodule/compiler/inferenceOfNullableObjectTypesWithCommonBase.types.diff +++ /dev/null @@ -1,19 +0,0 @@ ---- old.inferenceOfNullableObjectTypesWithCommonBase.types -+++ new.inferenceOfNullableObjectTypesWithCommonBase.types -@@= skipped -137, +137 lines =@@ - >equal : (a: T, b: T) => void - >v as string : string - >v : never -->v as string & { tag: 'foo' } | undefined : (string & { tag: "foo"; }) | undefined -+>v as string & { tag: 'foo' } | undefined : string & { tag: "foo"; } | undefined - >v : never - >tag : "foo" - - equal(v as string & { tag: 'foo' } | undefined, v as string); - >equal(v as string & { tag: 'foo' } | undefined, v as string) : void - >equal : (a: T, b: T) => void -->v as string & { tag: 'foo' } | undefined : (string & { tag: "foo"; }) | undefined -+>v as string & { tag: 'foo' } | undefined : string & { tag: "foo"; } | undefined - >v : never - >tag : "foo" - >v as string : string \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/narrowingByTypeofInSwitch.types b/testdata/baselines/reference/submodule/compiler/narrowingByTypeofInSwitch.types index 7271312dcd..acb96de676 100644 --- a/testdata/baselines/reference/submodule/compiler/narrowingByTypeofInSwitch.types +++ b/testdata/baselines/reference/submodule/compiler/narrowingByTypeofInSwitch.types @@ -565,8 +565,8 @@ function multipleGenericFuse(xy: X | case 'number': return [xy] >'number' : "number" ->[xy] : [X & number | Y & number] ->xy : X & number | Y & number +>[xy] : [(X & number) | (Y & number)] +>xy : (X & number) | (Y & number) } } @@ -1105,8 +1105,8 @@ function multipleGenericFuseWithBoth case `number`: return [xy] >`number` : "number" ->[xy] : [X & number | Y & number] ->xy : X & number | Y & number +>[xy] : [(X & number) | (Y & number)] +>xy : (X & number) | (Y & number) } } diff --git a/testdata/baselines/reference/submodule/compiler/narrowingByTypeofInSwitch.types.diff b/testdata/baselines/reference/submodule/compiler/narrowingByTypeofInSwitch.types.diff index 9cb6ed0abd..ddde7ec8e2 100644 --- a/testdata/baselines/reference/submodule/compiler/narrowingByTypeofInSwitch.types.diff +++ b/testdata/baselines/reference/submodule/compiler/narrowingByTypeofInSwitch.types.diff @@ -51,18 +51,7 @@ >xy : X | Y switch (typeof xy) { -@@= skipped -21, +21 lines =@@ - - case 'number': return [xy] - >'number' : "number" -->[xy] : [(X & number) | (Y & number)] -->xy : (X & number) | (Y & number) -+>[xy] : [X & number | Y & number] -+>xy : X & number | Y & number - } - } - -@@= skipped -306, +306 lines =@@ +@@= skipped -327, +327 lines =@@ } function narrowingNarrows2(x: true | 3 | 'hello' | undefined) { @@ -79,14 +68,4 @@ +>multipleGenericFuseWithBoth : (xy: X | Y) => [X | Y] | [X, number] | [Y, string] >xy : X | Y - switch (typeof xy) { -@@= skipped -21, +21 lines =@@ - - case `number`: return [xy] - >`number` : "number" -->[xy] : [(X & number) | (Y & number)] -->xy : (X & number) | (Y & number) -+>[xy] : [X & number | Y & number] -+>xy : X & number | Y & number - } - } + switch (typeof xy) { \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/narrowingTypeofFunction.types b/testdata/baselines/reference/submodule/compiler/narrowingTypeofFunction.types index b65e38c616..55a640d4e6 100644 --- a/testdata/baselines/reference/submodule/compiler/narrowingTypeofFunction.types +++ b/testdata/baselines/reference/submodule/compiler/narrowingTypeofFunction.types @@ -8,13 +8,13 @@ type Meta = { foo: string } interface F { (): string } function f1(a: (F & Meta) | string) { ->f1 : (a: string | F & Meta) => void ->a : string | F & Meta +>f1 : (a: string | (F & Meta)) => void +>a : string | (F & Meta) if (typeof a === "function") { >typeof a === "function" : boolean >typeof a : "bigint" | "boolean" | "function" | "number" | "object" | "string" | "symbol" | "undefined" ->a : string | F & Meta +>a : string | (F & Meta) >"function" : "function" a; @@ -27,13 +27,13 @@ function f1(a: (F & Meta) | string) { } function f2(x: (T & F) | T & string) { ->f2 : (x: T & string | T & F) => void ->x : T & string | T & F +>f2 : (x: (T & string) | (T & F)) => void +>x : (T & string) | (T & F) if (typeof x === "function") { >typeof x === "function" : boolean >typeof x : "bigint" | "boolean" | "function" | "number" | "object" | "string" | "symbol" | "undefined" ->x : T & string | T & F +>x : (T & string) | (T & F) >"function" : "function" x; diff --git a/testdata/baselines/reference/submodule/compiler/narrowingTypeofFunction.types.diff b/testdata/baselines/reference/submodule/compiler/narrowingTypeofFunction.types.diff index a9e8bb4281..aae1239b70 100644 --- a/testdata/baselines/reference/submodule/compiler/narrowingTypeofFunction.types.diff +++ b/testdata/baselines/reference/submodule/compiler/narrowingTypeofFunction.types.diff @@ -5,32 +5,16 @@ function f1(a: (F & Meta) | string) { ->f1 : (a: (F & Meta) | string) => void -->a : string | (F & Meta) -+>f1 : (a: string | F & Meta) => void -+>a : string | F & Meta ++>f1 : (a: string | (F & Meta)) => void + >a : string | (F & Meta) if (typeof a === "function") { - >typeof a === "function" : boolean - >typeof a : "bigint" | "boolean" | "function" | "number" | "object" | "string" | "symbol" | "undefined" -->a : string | (F & Meta) -+>a : string | F & Meta - >"function" : "function" - - a; @@= skipped -19, +19 lines =@@ } function f2(x: (T & F) | T & string) { ->f2 : (x: (T & F) | (T & string)) => void -->x : (T & string) | (T & F) -+>f2 : (x: T & string | T & F) => void -+>x : T & string | T & F - - if (typeof x === "function") { - >typeof x === "function" : boolean - >typeof x : "bigint" | "boolean" | "function" | "number" | "object" | "string" | "symbol" | "undefined" -->x : (T & string) | (T & F) -+>x : T & string | T & F - >"function" : "function" ++>f2 : (x: (T & string) | (T & F)) => void + >x : (T & string) | (T & F) - x; \ No newline at end of file + if (typeof x === "function") { \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/narrowingUnionToUnion.types b/testdata/baselines/reference/submodule/compiler/narrowingUnionToUnion.types index 1e74b940bd..da60ca8087 100644 --- a/testdata/baselines/reference/submodule/compiler/narrowingUnionToUnion.types +++ b/testdata/baselines/reference/submodule/compiler/narrowingUnionToUnion.types @@ -33,7 +33,7 @@ function fx2(x: T | undefined) { >x : T | undefined x; // T & Falsy | undefined ->x : T & null | T & "" | T & 0 | T & 0n | T & false | undefined +>x : (T & null) | (T & "") | (T & 0) | (T & 0n) | (T & false) | undefined } } @@ -47,7 +47,7 @@ function fx3(x: T) { >x : string | number x; // T & "" | T & 0 ->x : T & "" | T & 0 +>x : (T & "") | (T & 0) } } diff --git a/testdata/baselines/reference/submodule/compiler/narrowingUnionToUnion.types.diff b/testdata/baselines/reference/submodule/compiler/narrowingUnionToUnion.types.diff index 8b912309bf..65d9dd61ee 100644 --- a/testdata/baselines/reference/submodule/compiler/narrowingUnionToUnion.types.diff +++ b/testdata/baselines/reference/submodule/compiler/narrowingUnionToUnion.types.diff @@ -5,20 +5,11 @@ x; // T & Falsy | undefined ->x : (T & null) | (T & "") | (T & 0) | (T & false) | (T & 0n) | undefined -+>x : T & null | T & "" | T & 0 | T & 0n | T & false | undefined ++>x : (T & null) | (T & "") | (T & 0) | (T & 0n) | (T & false) | undefined } } -@@= skipped -14, +14 lines =@@ - >x : string | number - - x; // T & "" | T & 0 -->x : (T & "") | (T & 0) -+>x : T & "" | T & 0 - } - } - -@@= skipped -198, +198 lines =@@ +@@= skipped -212, +212 lines =@@ } }, (value?: string) => { diff --git a/testdata/baselines/reference/submodule/compiler/objectLiteralExcessProperties.types b/testdata/baselines/reference/submodule/compiler/objectLiteralExcessProperties.types index a145c46afd..29ba3f1471 100644 --- a/testdata/baselines/reference/submodule/compiler/objectLiteralExcessProperties.types +++ b/testdata/baselines/reference/submodule/compiler/objectLiteralExcessProperties.types @@ -134,7 +134,7 @@ function test() { // Excess property checks only on non-generic parts of unions const obj4: T & { prop: boolean } | { name: string } = { name: "test", prop: true }; ->obj4 : { name: string; } | T & { prop: boolean; } +>obj4 : { name: string; } | (T & { prop: boolean; }) >prop : boolean >name : string >{ name: "test", prop: true } : { name: string; prop: boolean; } diff --git a/testdata/baselines/reference/submodule/compiler/objectLiteralExcessProperties.types.diff b/testdata/baselines/reference/submodule/compiler/objectLiteralExcessProperties.types.diff index 16cea5d93a..d6f08e5826 100644 --- a/testdata/baselines/reference/submodule/compiler/objectLiteralExcessProperties.types.diff +++ b/testdata/baselines/reference/submodule/compiler/objectLiteralExcessProperties.types.diff @@ -8,13 +8,4 @@ +>{ 0: { }, '1': { } } : { 0: {}; "1": {}; } >0 : {} >{ } : {} - >'1' : {} -@@= skipped -48, +48 lines =@@ - - // Excess property checks only on non-generic parts of unions - const obj4: T & { prop: boolean } | { name: string } = { name: "test", prop: true }; -->obj4 : { name: string; } | (T & { prop: boolean; }) -+>obj4 : { name: string; } | T & { prop: boolean; } - >prop : boolean - >name : string - >{ name: "test", prop: true } : { name: string; prop: boolean; } \ No newline at end of file + >'1' : {} \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/partialOfLargeAPIIsAbleToBeWorkedWith.types b/testdata/baselines/reference/submodule/compiler/partialOfLargeAPIIsAbleToBeWorkedWith.types index 347130b2bf..6eaddd180b 100644 --- a/testdata/baselines/reference/submodule/compiler/partialOfLargeAPIIsAbleToBeWorkedWith.types +++ b/testdata/baselines/reference/submodule/compiler/partialOfLargeAPIIsAbleToBeWorkedWith.types @@ -224,7 +224,7 @@ for (const k of keys) { obj[k] = () => "12"; // shouldn't cause a complexity error >obj[k] = () => "12" : () => string ->obj[k] : ((x: 0) => string) & ((x: 1) => string) & ((x: 2) => string) & ((x: 3) => string) & ((x: 4) => string) & ((x: 5) => string) & ((x: 6) => string) & ((x: 7) => string) & ((x: 8) => string) & ((x: 9) => string) & ((x: 10) => string) & ((x: 11) => string) & ((x: 12) => string) & ((x: 13) => string) & ((x: 14) => string) & ((x: 15) => string) & ((x: 16) => string) & ((x: 17) => string) & ((x: 18) => string) & ((x: 19) => string) & ((x: 20) => string) & ((x: 21) => string) & ((x: 22) => string) & ((x: 23) => string) & ((x: 24) => string) & ((x: 25) => string) & ((x: 26) => string) & ((x: 27) => string) & ((x: 28) => string) & ((x: 29) => string) & ((x: 30) => string) & ((x: 31) => string) & ((x: 32) => string) & ((x: 33) => string) & ((x: 34) => string) & ((x: 35) => string) & ((x: 36) => string) & ((x: 37) => string) & ((x: 38) => string) & ((x: 39) => string) & ((x: 40) => string) & ((x: 41) => string) & ((x: 42) => string) & ((x: 43) => string) & ((x: 44) => string) & ((x: 45) => string) & ((x: 46) => string) & ((x: 47) => string) & ((x: 48) => string) & ((x: 49) => string) & ((x: 50) => string) & ((x: 51) => string) | undefined +>obj[k] : (((x: 0) => string) & ((x: 1) => string) & ((x: 2) => string) & ((x: 3) => string) & ((x: 4) => string) & ((x: 5) => string) & ((x: 6) => string) & ((x: 7) => string) & ((x: 8) => string) & ((x: 9) => string) & ((x: 10) => string) & ((x: 11) => string) & ((x: 12) => string) & ((x: 13) => string) & ((x: 14) => string) & ((x: 15) => string) & ((x: 16) => string) & ((x: 17) => string) & ((x: 18) => string) & ((x: 19) => string) & ((x: 20) => string) & ((x: 21) => string) & ((x: 22) => string) & ((x: 23) => string) & ((x: 24) => string) & ((x: 25) => string) & ((x: 26) => string) & ((x: 27) => string) & ((x: 28) => string) & ((x: 29) => string) & ((x: 30) => string) & ((x: 31) => string) & ((x: 32) => string) & ((x: 33) => string) & ((x: 34) => string) & ((x: 35) => string) & ((x: 36) => string) & ((x: 37) => string) & ((x: 38) => string) & ((x: 39) => string) & ((x: 40) => string) & ((x: 41) => string) & ((x: 42) => string) & ((x: 43) => string) & ((x: 44) => string) & ((x: 45) => string) & ((x: 46) => string) & ((x: 47) => string) & ((x: 48) => string) & ((x: 49) => string) & ((x: 50) => string) & ((x: 51) => string)) | undefined >obj : Partial >k : keyof MyAPI >() => "12" : () => string @@ -244,7 +244,7 @@ for (const k of keys) { obj2[k] = () => "12"; // shouldn't cause a complexity error >obj2[k] = () => "12" : () => string ->obj2[k] : ((x: 0) => string) & ((x: 1) => string) & ((x: 2) => string) & ((x: 3) => string) & ((x: 4) => string) & ((x: 5) => string) & ((x: 6) => string) & ((x: 7) => string) & ((x: 8) => string) & ((x: 9) => string) & ((x: 10) => string) & ((x: 11) => string) & ((x: 12) => string) & ((x: 13) => string) & ((x: 14) => string) & ((x: 15) => string) & ((x: 16) => string) & ((x: 17) => string) & ((x: 18) => string) & ((x: 19) => string) & ((x: 20) => string) & ((x: 21) => string) & ((x: 22) => string) & ((x: 23) => string) & ((x: 24) => string) & ((x: 25) => string) & ((x: 26) => string) & ((x: 27) => string) & ((x: 28) => string) & ((x: 29) => string) & ((x: 30) => string) & ((x: 31) => string) & ((x: 32) => string) & ((x: 33) => string) & ((x: 34) => string) & ((x: 35) => string) & ((x: 36) => string) & ((x: 37) => string) & ((x: 38) => string) & ((x: 39) => string) & ((x: 40) => string) & ((x: 41) => string) & ((x: 42) => string) & ((x: 43) => string) & ((x: 44) => string) & ((x: 45) => string) & ((x: 46) => string) & ((x: 47) => string) & ((x: 48) => string) & ((x: 49) => string) & ((x: 50) => string) & ((x: 51) => string) | null | undefined +>obj2[k] : (((x: 0) => string) & ((x: 1) => string) & ((x: 2) => string) & ((x: 3) => string) & ((x: 4) => string) & ((x: 5) => string) & ((x: 6) => string) & ((x: 7) => string) & ((x: 8) => string) & ((x: 9) => string) & ((x: 10) => string) & ((x: 11) => string) & ((x: 12) => string) & ((x: 13) => string) & ((x: 14) => string) & ((x: 15) => string) & ((x: 16) => string) & ((x: 17) => string) & ((x: 18) => string) & ((x: 19) => string) & ((x: 20) => string) & ((x: 21) => string) & ((x: 22) => string) & ((x: 23) => string) & ((x: 24) => string) & ((x: 25) => string) & ((x: 26) => string) & ((x: 27) => string) & ((x: 28) => string) & ((x: 29) => string) & ((x: 30) => string) & ((x: 31) => string) & ((x: 32) => string) & ((x: 33) => string) & ((x: 34) => string) & ((x: 35) => string) & ((x: 36) => string) & ((x: 37) => string) & ((x: 38) => string) & ((x: 39) => string) & ((x: 40) => string) & ((x: 41) => string) & ((x: 42) => string) & ((x: 43) => string) & ((x: 44) => string) & ((x: 45) => string) & ((x: 46) => string) & ((x: 47) => string) & ((x: 48) => string) & ((x: 49) => string) & ((x: 50) => string) & ((x: 51) => string)) | null | undefined >obj2 : PartialNull >k : keyof MyAPI >() => "12" : () => string diff --git a/testdata/baselines/reference/submodule/compiler/partialOfLargeAPIIsAbleToBeWorkedWith.types.diff b/testdata/baselines/reference/submodule/compiler/partialOfLargeAPIIsAbleToBeWorkedWith.types.diff deleted file mode 100644 index daa369bce4..0000000000 --- a/testdata/baselines/reference/submodule/compiler/partialOfLargeAPIIsAbleToBeWorkedWith.types.diff +++ /dev/null @@ -1,20 +0,0 @@ ---- old.partialOfLargeAPIIsAbleToBeWorkedWith.types -+++ new.partialOfLargeAPIIsAbleToBeWorkedWith.types -@@= skipped -223, +223 lines =@@ - - obj[k] = () => "12"; // shouldn't cause a complexity error - >obj[k] = () => "12" : () => string -->obj[k] : (((x: 0) => string) & ((x: 1) => string) & ((x: 2) => string) & ((x: 3) => string) & ((x: 4) => string) & ((x: 5) => string) & ((x: 6) => string) & ((x: 7) => string) & ((x: 8) => string) & ((x: 9) => string) & ((x: 10) => string) & ((x: 11) => string) & ((x: 12) => string) & ((x: 13) => string) & ((x: 14) => string) & ((x: 15) => string) & ((x: 16) => string) & ((x: 17) => string) & ((x: 18) => string) & ((x: 19) => string) & ((x: 20) => string) & ((x: 21) => string) & ((x: 22) => string) & ((x: 23) => string) & ((x: 24) => string) & ((x: 25) => string) & ((x: 26) => string) & ((x: 27) => string) & ((x: 28) => string) & ((x: 29) => string) & ((x: 30) => string) & ((x: 31) => string) & ((x: 32) => string) & ((x: 33) => string) & ((x: 34) => string) & ((x: 35) => string) & ((x: 36) => string) & ((x: 37) => string) & ((x: 38) => string) & ((x: 39) => string) & ((x: 40) => string) & ((x: 41) => string) & ((x: 42) => string) & ((x: 43) => string) & ((x: 44) => string) & ((x: 45) => string) & ((x: 46) => string) & ((x: 47) => string) & ((x: 48) => string) & ((x: 49) => string) & ((x: 50) => string) & ((x: 51) => string)) | undefined -+>obj[k] : ((x: 0) => string) & ((x: 1) => string) & ((x: 2) => string) & ((x: 3) => string) & ((x: 4) => string) & ((x: 5) => string) & ((x: 6) => string) & ((x: 7) => string) & ((x: 8) => string) & ((x: 9) => string) & ((x: 10) => string) & ((x: 11) => string) & ((x: 12) => string) & ((x: 13) => string) & ((x: 14) => string) & ((x: 15) => string) & ((x: 16) => string) & ((x: 17) => string) & ((x: 18) => string) & ((x: 19) => string) & ((x: 20) => string) & ((x: 21) => string) & ((x: 22) => string) & ((x: 23) => string) & ((x: 24) => string) & ((x: 25) => string) & ((x: 26) => string) & ((x: 27) => string) & ((x: 28) => string) & ((x: 29) => string) & ((x: 30) => string) & ((x: 31) => string) & ((x: 32) => string) & ((x: 33) => string) & ((x: 34) => string) & ((x: 35) => string) & ((x: 36) => string) & ((x: 37) => string) & ((x: 38) => string) & ((x: 39) => string) & ((x: 40) => string) & ((x: 41) => string) & ((x: 42) => string) & ((x: 43) => string) & ((x: 44) => string) & ((x: 45) => string) & ((x: 46) => string) & ((x: 47) => string) & ((x: 48) => string) & ((x: 49) => string) & ((x: 50) => string) & ((x: 51) => string) | undefined - >obj : Partial - >k : keyof MyAPI - >() => "12" : () => string -@@= skipped -20, +20 lines =@@ - - obj2[k] = () => "12"; // shouldn't cause a complexity error - >obj2[k] = () => "12" : () => string -->obj2[k] : (((x: 0) => string) & ((x: 1) => string) & ((x: 2) => string) & ((x: 3) => string) & ((x: 4) => string) & ((x: 5) => string) & ((x: 6) => string) & ((x: 7) => string) & ((x: 8) => string) & ((x: 9) => string) & ((x: 10) => string) & ((x: 11) => string) & ((x: 12) => string) & ((x: 13) => string) & ((x: 14) => string) & ((x: 15) => string) & ((x: 16) => string) & ((x: 17) => string) & ((x: 18) => string) & ((x: 19) => string) & ((x: 20) => string) & ((x: 21) => string) & ((x: 22) => string) & ((x: 23) => string) & ((x: 24) => string) & ((x: 25) => string) & ((x: 26) => string) & ((x: 27) => string) & ((x: 28) => string) & ((x: 29) => string) & ((x: 30) => string) & ((x: 31) => string) & ((x: 32) => string) & ((x: 33) => string) & ((x: 34) => string) & ((x: 35) => string) & ((x: 36) => string) & ((x: 37) => string) & ((x: 38) => string) & ((x: 39) => string) & ((x: 40) => string) & ((x: 41) => string) & ((x: 42) => string) & ((x: 43) => string) & ((x: 44) => string) & ((x: 45) => string) & ((x: 46) => string) & ((x: 47) => string) & ((x: 48) => string) & ((x: 49) => string) & ((x: 50) => string) & ((x: 51) => string)) | null | undefined -+>obj2[k] : ((x: 0) => string) & ((x: 1) => string) & ((x: 2) => string) & ((x: 3) => string) & ((x: 4) => string) & ((x: 5) => string) & ((x: 6) => string) & ((x: 7) => string) & ((x: 8) => string) & ((x: 9) => string) & ((x: 10) => string) & ((x: 11) => string) & ((x: 12) => string) & ((x: 13) => string) & ((x: 14) => string) & ((x: 15) => string) & ((x: 16) => string) & ((x: 17) => string) & ((x: 18) => string) & ((x: 19) => string) & ((x: 20) => string) & ((x: 21) => string) & ((x: 22) => string) & ((x: 23) => string) & ((x: 24) => string) & ((x: 25) => string) & ((x: 26) => string) & ((x: 27) => string) & ((x: 28) => string) & ((x: 29) => string) & ((x: 30) => string) & ((x: 31) => string) & ((x: 32) => string) & ((x: 33) => string) & ((x: 34) => string) & ((x: 35) => string) & ((x: 36) => string) & ((x: 37) => string) & ((x: 38) => string) & ((x: 39) => string) & ((x: 40) => string) & ((x: 41) => string) & ((x: 42) => string) & ((x: 43) => string) & ((x: 44) => string) & ((x: 45) => string) & ((x: 46) => string) & ((x: 47) => string) & ((x: 48) => string) & ((x: 49) => string) & ((x: 50) => string) & ((x: 51) => string) | null | undefined - >obj2 : PartialNull - >k : keyof MyAPI - >() => "12" : () => string \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/primitiveUnionDetection.types b/testdata/baselines/reference/submodule/compiler/primitiveUnionDetection.types index 8065b83fb4..c0658f9c03 100644 --- a/testdata/baselines/reference/submodule/compiler/primitiveUnionDetection.types +++ b/testdata/baselines/reference/submodule/compiler/primitiveUnionDetection.types @@ -7,15 +7,15 @@ type Kind = "one" | "two" | "three"; >Kind : Kind declare function getInterfaceFromString(options?: { type?: T } & { type?: Kind }): T; ->getInterfaceFromString : (options?: { type?: T | undefined; } & { type?: Kind | undefined; } | undefined) => T ->options : { type?: T | undefined; } & { type?: Kind | undefined; } | undefined +>getInterfaceFromString : (options?: ({ type?: T | undefined; } & { type?: Kind | undefined; }) | undefined) => T +>options : ({ type?: T | undefined; } & { type?: Kind | undefined; }) | undefined >type : T | undefined >type : Kind | undefined const result = getInterfaceFromString({ type: 'two' }); >result : "two" >getInterfaceFromString({ type: 'two' }) : "two" ->getInterfaceFromString : (options?: { type?: T | undefined; } & { type?: Kind | undefined; } | undefined) => T +>getInterfaceFromString : (options?: ({ type?: T | undefined; } & { type?: Kind | undefined; }) | undefined) => T >{ type: 'two' } : { type: "two"; } >type : "two" >'two' : "two" diff --git a/testdata/baselines/reference/submodule/compiler/primitiveUnionDetection.types.diff b/testdata/baselines/reference/submodule/compiler/primitiveUnionDetection.types.diff index 3753a245e9..339a560164 100644 --- a/testdata/baselines/reference/submodule/compiler/primitiveUnionDetection.types.diff +++ b/testdata/baselines/reference/submodule/compiler/primitiveUnionDetection.types.diff @@ -6,8 +6,8 @@ declare function getInterfaceFromString(options?: { type?: T } & { type?: Kind }): T; ->getInterfaceFromString : (options?: { type?: T; } & { type?: Kind; }) => T ->options : ({ type?: T; } & { type?: Kind; }) | undefined -+>getInterfaceFromString : (options?: { type?: T | undefined; } & { type?: Kind | undefined; } | undefined) => T -+>options : { type?: T | undefined; } & { type?: Kind | undefined; } | undefined ++>getInterfaceFromString : (options?: ({ type?: T | undefined; } & { type?: Kind | undefined; }) | undefined) => T ++>options : ({ type?: T | undefined; } & { type?: Kind | undefined; }) | undefined >type : T | undefined >type : Kind | undefined @@ -15,7 +15,7 @@ >result : "two" >getInterfaceFromString({ type: 'two' }) : "two" ->getInterfaceFromString : (options?: { type?: T; } & { type?: Kind; }) => T -+>getInterfaceFromString : (options?: { type?: T | undefined; } & { type?: Kind | undefined; } | undefined) => T ++>getInterfaceFromString : (options?: ({ type?: T | undefined; } & { type?: Kind | undefined; }) | undefined) => T >{ type: 'two' } : { type: "two"; } >type : "two" >'two' : "two" \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/uncalledFunctionChecksInConditional2.types b/testdata/baselines/reference/submodule/compiler/uncalledFunctionChecksInConditional2.types index 1a14bea821..9bce59101c 100644 --- a/testdata/baselines/reference/submodule/compiler/uncalledFunctionChecksInConditional2.types +++ b/testdata/baselines/reference/submodule/compiler/uncalledFunctionChecksInConditional2.types @@ -231,7 +231,7 @@ function isMobile() { typeof window !== 'undefined' && >typeof window !== 'undefined' && window.matchMedia && // no error window.matchMedia('(max-device-width: 680px)') : false | MediaQueryList ->typeof window !== 'undefined' && window.matchMedia : false | ((query: string) => MediaQueryList) & ((query: string) => MediaQueryList) +>typeof window !== 'undefined' && window.matchMedia : false | (((query: string) => MediaQueryList) & ((query: string) => MediaQueryList)) >typeof window !== 'undefined' : boolean >typeof window : "bigint" | "boolean" | "function" | "number" | "object" | "string" | "symbol" | "undefined" >window : Window & typeof globalThis diff --git a/testdata/baselines/reference/submodule/compiler/uncalledFunctionChecksInConditional2.types.diff b/testdata/baselines/reference/submodule/compiler/uncalledFunctionChecksInConditional2.types.diff index e13946b209..39c4e72feb 100644 --- a/testdata/baselines/reference/submodule/compiler/uncalledFunctionChecksInConditional2.types.diff +++ b/testdata/baselines/reference/submodule/compiler/uncalledFunctionChecksInConditional2.types.diff @@ -231,13 +231,4 @@ +>clearMarks : (markName?: string | undefined) => void >endTag : any - // perf.clearMeasures(name) -@@= skipped -42, +42 lines =@@ - - typeof window !== 'undefined' && - >typeof window !== 'undefined' && window.matchMedia && // no error window.matchMedia('(max-device-width: 680px)') : false | MediaQueryList -->typeof window !== 'undefined' && window.matchMedia : false | (((query: string) => MediaQueryList) & ((query: string) => MediaQueryList)) -+>typeof window !== 'undefined' && window.matchMedia : false | ((query: string) => MediaQueryList) & ((query: string) => MediaQueryList) - >typeof window !== 'undefined' : boolean - >typeof window : "bigint" | "boolean" | "function" | "number" | "object" | "string" | "symbol" | "undefined" - >window : Window & typeof globalThis \ No newline at end of file + // perf.clearMeasures(name) \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/voidUndefinedReduction.types b/testdata/baselines/reference/submodule/compiler/voidUndefinedReduction.types index 72ea79282b..aad8f30f07 100644 --- a/testdata/baselines/reference/submodule/compiler/voidUndefinedReduction.types +++ b/testdata/baselines/reference/submodule/compiler/voidUndefinedReduction.types @@ -13,7 +13,7 @@ function isDefined(value: T | undefined | null | void): value is T { >value : void | T | null | undefined >undefined : undefined >value !== null : boolean ->value : T & {} | null +>value : (T & {}) | null } declare const foo: string | undefined; diff --git a/testdata/baselines/reference/submodule/compiler/voidUndefinedReduction.types.diff b/testdata/baselines/reference/submodule/compiler/voidUndefinedReduction.types.diff index a55823e6b1..f17c32a1b2 100644 --- a/testdata/baselines/reference/submodule/compiler/voidUndefinedReduction.types.diff +++ b/testdata/baselines/reference/submodule/compiler/voidUndefinedReduction.types.diff @@ -9,16 +9,7 @@ >value : void | T | null | undefined return value !== undefined && value !== null; -@@= skipped -9, +9 lines =@@ - >value : void | T | null | undefined - >undefined : undefined - >value !== null : boolean -->value : (T & {}) | null -+>value : T & {} | null - } - - declare const foo: string | undefined; -@@= skipped -8, +8 lines =@@ +@@= skipped -17, +17 lines =@@ if (isDefined(foo)) { >isDefined(foo) : boolean diff --git a/testdata/baselines/reference/submodule/conformance/controlFlowIfStatement.types b/testdata/baselines/reference/submodule/conformance/controlFlowIfStatement.types index 723a3b8933..03da018ff8 100644 --- a/testdata/baselines/reference/submodule/conformance/controlFlowIfStatement.types +++ b/testdata/baselines/reference/submodule/conformance/controlFlowIfStatement.types @@ -106,7 +106,7 @@ function c(data: string | T): T { >JSON.parse : (text: string, reviver?: (this: any, key: string, value: any) => any) => any >JSON : JSON >parse : (text: string, reviver?: (this: any, key: string, value: any) => any) => any ->data : string | T & string +>data : string | (T & string) } else { return data; diff --git a/testdata/baselines/reference/submodule/conformance/controlFlowIfStatement.types.diff b/testdata/baselines/reference/submodule/conformance/controlFlowIfStatement.types.diff deleted file mode 100644 index 118caab64d..0000000000 --- a/testdata/baselines/reference/submodule/conformance/controlFlowIfStatement.types.diff +++ /dev/null @@ -1,11 +0,0 @@ ---- old.controlFlowIfStatement.types -+++ new.controlFlowIfStatement.types -@@= skipped -105, +105 lines =@@ - >JSON.parse : (text: string, reviver?: (this: any, key: string, value: any) => any) => any - >JSON : JSON - >parse : (text: string, reviver?: (this: any, key: string, value: any) => any) => any -->data : string | (T & string) -+>data : string | T & string - } - else { - return data; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/discriminatedUnionTypes2.types b/testdata/baselines/reference/submodule/conformance/discriminatedUnionTypes2.types index 08c9e6c191..74a13972ee 100644 --- a/testdata/baselines/reference/submodule/conformance/discriminatedUnionTypes2.types +++ b/testdata/baselines/reference/submodule/conformance/discriminatedUnionTypes2.types @@ -382,15 +382,15 @@ function foo1(x: RuntimeValue & { type: 'number' }) { } function foo2(x: RuntimeValue & ({ type: 'number' } | { type: 'string' })) { ->foo2 : (x: { type: "number"; value: number; } & { type: "number"; } | { type: "string"; value: string; } & { type: "string"; }) => void ->x : { type: "number"; value: number; } & { type: "number"; } | { type: "string"; value: string; } & { type: "string"; } +>foo2 : (x: ({ type: "number"; value: number; } & { type: "number"; }) | ({ type: "string"; value: string; } & { type: "string"; })) => void +>x : ({ type: "number"; value: number; } & { type: "number"; }) | ({ type: "string"; value: string; } & { type: "string"; }) >type : "number" >type : "string" if (x.type === 'number') { >x.type === 'number' : boolean >x.type : "number" | "string" ->x : { type: "number"; value: number; } & { type: "number"; } | { type: "string"; value: string; } & { type: "string"; } +>x : ({ type: "number"; value: number; } & { type: "number"; }) | ({ type: "string"; value: string; } & { type: "string"; }) >type : "number" | "string" >'number' : "number" diff --git a/testdata/baselines/reference/submodule/conformance/discriminatedUnionTypes2.types.diff b/testdata/baselines/reference/submodule/conformance/discriminatedUnionTypes2.types.diff index 8ba6dc8bef..dbb863f62a 100644 --- a/testdata/baselines/reference/submodule/conformance/discriminatedUnionTypes2.types.diff +++ b/testdata/baselines/reference/submodule/conformance/discriminatedUnionTypes2.types.diff @@ -23,16 +23,7 @@ function foo2(x: RuntimeValue & ({ type: 'number' } | { type: 'string' })) { ->foo2 : (x: RuntimeValue & ({ type: "number"; } | { type: "string"; })) => void -->x : ({ type: "number"; value: number; } & { type: "number"; }) | ({ type: "string"; value: string; } & { type: "string"; }) -+>foo2 : (x: { type: "number"; value: number; } & { type: "number"; } | { type: "string"; value: string; } & { type: "string"; }) => void -+>x : { type: "number"; value: number; } & { type: "number"; } | { type: "string"; value: string; } & { type: "string"; } ++>foo2 : (x: ({ type: "number"; value: number; } & { type: "number"; }) | ({ type: "string"; value: string; } & { type: "string"; })) => void + >x : ({ type: "number"; value: number; } & { type: "number"; }) | ({ type: "string"; value: string; } & { type: "string"; }) >type : "number" - >type : "string" - - if (x.type === 'number') { - >x.type === 'number' : boolean - >x.type : "number" | "string" -->x : ({ type: "number"; value: number; } & { type: "number"; }) | ({ type: "string"; value: string; } & { type: "string"; }) -+>x : { type: "number"; value: number; } & { type: "number"; } | { type: "string"; value: string; } & { type: "string"; } - >type : "number" | "string" - >'number' : "number" + >type : "string" \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/generatorYieldContextualType.types b/testdata/baselines/reference/submodule/conformance/generatorYieldContextualType.types index fb0d700541..a49d73efce 100644 --- a/testdata/baselines/reference/submodule/conformance/generatorYieldContextualType.types +++ b/testdata/baselines/reference/submodule/conformance/generatorYieldContextualType.types @@ -70,9 +70,9 @@ namespace Directive { >value : T | Directive >"number" : "number" >Directive[value] != null : boolean ->Directive[value] : typeof Directive[Directive | T & number] +>Directive[value] : typeof Directive[Directive | (T & number)] >Directive : typeof Directive ->value : Directive | T & number +>value : Directive | (T & number) } } diff --git a/testdata/baselines/reference/submodule/conformance/generatorYieldContextualType.types.diff b/testdata/baselines/reference/submodule/conformance/generatorYieldContextualType.types.diff index ca7da0060c..ce96977cc7 100644 --- a/testdata/baselines/reference/submodule/conformance/generatorYieldContextualType.types.diff +++ b/testdata/baselines/reference/submodule/conformance/generatorYieldContextualType.types.diff @@ -30,13 +30,10 @@ >"number" : "number" >Directive[value] != null : boolean ->Directive[value] : (typeof Directive)[Directive | (T & number)] -+>Directive[value] : typeof Directive[Directive | T & number] ++>Directive[value] : typeof Directive[Directive | (T & number)] >Directive : typeof Directive -->value : Directive | (T & number) -+>value : Directive | T & number + >value : Directive | (T & number) } - } - @@= skipped -122, +122 lines =@@ }; diff --git a/testdata/baselines/reference/submodule/conformance/intersectionAndUnionTypes.errors.txt b/testdata/baselines/reference/submodule/conformance/intersectionAndUnionTypes.errors.txt index 3d03c47934..69450109b9 100644 --- a/testdata/baselines/reference/submodule/conformance/intersectionAndUnionTypes.errors.txt +++ b/testdata/baselines/reference/submodule/conformance/intersectionAndUnionTypes.errors.txt @@ -2,23 +2,23 @@ intersectionAndUnionTypes.ts(19,1): error TS2322: Type 'A' is not assignable to Property 'b' is missing in type 'A' but required in type 'B'. intersectionAndUnionTypes.ts(20,1): error TS2322: Type 'B' is not assignable to type 'A & B'. Property 'a' is missing in type 'B' but required in type 'A'. -intersectionAndUnionTypes.ts(23,1): error TS2322: Type 'A | B' is not assignable to type 'A & B | C & D'. - Type 'A' is not assignable to type 'A & B | C & D'. +intersectionAndUnionTypes.ts(23,1): error TS2322: Type 'A | B' is not assignable to type '(A & B) | (C & D)'. + Type 'A' is not assignable to type '(A & B) | (C & D)'. Type 'A' is not assignable to type 'A & B'. Property 'b' is missing in type 'A' but required in type 'B'. -intersectionAndUnionTypes.ts(25,1): error TS2322: Type 'C | D' is not assignable to type 'A & B | C & D'. - Type 'C' is not assignable to type 'A & B | C & D'. +intersectionAndUnionTypes.ts(25,1): error TS2322: Type 'C | D' is not assignable to type '(A & B) | (C & D)'. + Type 'C' is not assignable to type '(A & B) | (C & D)'. Type 'C' is not assignable to type 'C & D'. Property 'd' is missing in type 'C' but required in type 'D'. -intersectionAndUnionTypes.ts(26,1): error TS2322: Type 'A & B | C & D' is not assignable to type 'A & B'. +intersectionAndUnionTypes.ts(26,1): error TS2322: Type '(A & B) | (C & D)' is not assignable to type 'A & B'. Type 'C & D' is not assignable to type 'A & B'. Property 'a' is missing in type 'C & D' but required in type 'A'. -intersectionAndUnionTypes.ts(27,1): error TS2322: Type 'A & B | C & D' is not assignable to type 'A | B'. +intersectionAndUnionTypes.ts(27,1): error TS2322: Type '(A & B) | (C & D)' is not assignable to type 'A | B'. Type 'C & D' is not assignable to type 'A | B'. -intersectionAndUnionTypes.ts(28,1): error TS2322: Type 'A & B | C & D' is not assignable to type 'C & D'. +intersectionAndUnionTypes.ts(28,1): error TS2322: Type '(A & B) | (C & D)' is not assignable to type 'C & D'. Type 'A & B' is not assignable to type 'C & D'. Property 'c' is missing in type 'A & B' but required in type 'C'. -intersectionAndUnionTypes.ts(29,1): error TS2322: Type 'A & B | C & D' is not assignable to type 'C | D'. +intersectionAndUnionTypes.ts(29,1): error TS2322: Type '(A & B) | (C & D)' is not assignable to type 'C | D'. Type 'A & B' is not assignable to type 'C | D'. intersectionAndUnionTypes.ts(31,1): error TS2322: Type 'A & B' is not assignable to type '(A | B) & (C | D)'. Type 'A & B' is not assignable to type 'B & D'. @@ -75,38 +75,38 @@ intersectionAndUnionTypes.ts(37,1): error TS2322: Type '(A | B) & (C | D)' is no x = anb; // Ok x = aob; ~ -!!! error TS2322: Type 'A | B' is not assignable to type 'A & B | C & D'. -!!! error TS2322: Type 'A' is not assignable to type 'A & B | C & D'. +!!! error TS2322: Type 'A | B' is not assignable to type '(A & B) | (C & D)'. +!!! error TS2322: Type 'A' is not assignable to type '(A & B) | (C & D)'. !!! error TS2322: Type 'A' is not assignable to type 'A & B'. !!! error TS2322: Property 'b' is missing in type 'A' but required in type 'B'. !!! related TS2728 intersectionAndUnionTypes.ts:2:15: 'b' is declared here. x = cnd; // Ok x = cod; ~ -!!! error TS2322: Type 'C | D' is not assignable to type 'A & B | C & D'. -!!! error TS2322: Type 'C' is not assignable to type 'A & B | C & D'. +!!! error TS2322: Type 'C | D' is not assignable to type '(A & B) | (C & D)'. +!!! error TS2322: Type 'C' is not assignable to type '(A & B) | (C & D)'. !!! error TS2322: Type 'C' is not assignable to type 'C & D'. !!! error TS2322: Property 'd' is missing in type 'C' but required in type 'D'. !!! related TS2728 intersectionAndUnionTypes.ts:4:15: 'd' is declared here. anb = x; ~~~ -!!! error TS2322: Type 'A & B | C & D' is not assignable to type 'A & B'. +!!! error TS2322: Type '(A & B) | (C & D)' is not assignable to type 'A & B'. !!! error TS2322: Type 'C & D' is not assignable to type 'A & B'. !!! error TS2322: Property 'a' is missing in type 'C & D' but required in type 'A'. !!! related TS2728 intersectionAndUnionTypes.ts:1:15: 'a' is declared here. aob = x; ~~~ -!!! error TS2322: Type 'A & B | C & D' is not assignable to type 'A | B'. +!!! error TS2322: Type '(A & B) | (C & D)' is not assignable to type 'A | B'. !!! error TS2322: Type 'C & D' is not assignable to type 'A | B'. cnd = x; ~~~ -!!! error TS2322: Type 'A & B | C & D' is not assignable to type 'C & D'. +!!! error TS2322: Type '(A & B) | (C & D)' is not assignable to type 'C & D'. !!! error TS2322: Type 'A & B' is not assignable to type 'C & D'. !!! error TS2322: Property 'c' is missing in type 'A & B' but required in type 'C'. !!! related TS2728 intersectionAndUnionTypes.ts:3:15: 'c' is declared here. cod = x; ~~~ -!!! error TS2322: Type 'A & B | C & D' is not assignable to type 'C | D'. +!!! error TS2322: Type '(A & B) | (C & D)' is not assignable to type 'C | D'. !!! error TS2322: Type 'A & B' is not assignable to type 'C | D'. y = anb; diff --git a/testdata/baselines/reference/submodule/conformance/intersectionAndUnionTypes.errors.txt.diff b/testdata/baselines/reference/submodule/conformance/intersectionAndUnionTypes.errors.txt.diff deleted file mode 100644 index 2a8ddf29ad..0000000000 --- a/testdata/baselines/reference/submodule/conformance/intersectionAndUnionTypes.errors.txt.diff +++ /dev/null @@ -1,81 +0,0 @@ ---- old.intersectionAndUnionTypes.errors.txt -+++ new.intersectionAndUnionTypes.errors.txt -@@= skipped -1, +1 lines =@@ - Property 'b' is missing in type 'A' but required in type 'B'. - intersectionAndUnionTypes.ts(20,1): error TS2322: Type 'B' is not assignable to type 'A & B'. - Property 'a' is missing in type 'B' but required in type 'A'. --intersectionAndUnionTypes.ts(23,1): error TS2322: Type 'A | B' is not assignable to type '(A & B) | (C & D)'. -- Type 'A' is not assignable to type '(A & B) | (C & D)'. -+intersectionAndUnionTypes.ts(23,1): error TS2322: Type 'A | B' is not assignable to type 'A & B | C & D'. -+ Type 'A' is not assignable to type 'A & B | C & D'. - Type 'A' is not assignable to type 'A & B'. - Property 'b' is missing in type 'A' but required in type 'B'. --intersectionAndUnionTypes.ts(25,1): error TS2322: Type 'C | D' is not assignable to type '(A & B) | (C & D)'. -- Type 'C' is not assignable to type '(A & B) | (C & D)'. -+intersectionAndUnionTypes.ts(25,1): error TS2322: Type 'C | D' is not assignable to type 'A & B | C & D'. -+ Type 'C' is not assignable to type 'A & B | C & D'. - Type 'C' is not assignable to type 'C & D'. - Property 'd' is missing in type 'C' but required in type 'D'. --intersectionAndUnionTypes.ts(26,1): error TS2322: Type '(A & B) | (C & D)' is not assignable to type 'A & B'. -+intersectionAndUnionTypes.ts(26,1): error TS2322: Type 'A & B | C & D' is not assignable to type 'A & B'. - Type 'C & D' is not assignable to type 'A & B'. - Property 'a' is missing in type 'C & D' but required in type 'A'. --intersectionAndUnionTypes.ts(27,1): error TS2322: Type '(A & B) | (C & D)' is not assignable to type 'A | B'. -+intersectionAndUnionTypes.ts(27,1): error TS2322: Type 'A & B | C & D' is not assignable to type 'A | B'. - Type 'C & D' is not assignable to type 'A | B'. --intersectionAndUnionTypes.ts(28,1): error TS2322: Type '(A & B) | (C & D)' is not assignable to type 'C & D'. -+intersectionAndUnionTypes.ts(28,1): error TS2322: Type 'A & B | C & D' is not assignable to type 'C & D'. - Type 'A & B' is not assignable to type 'C & D'. - Property 'c' is missing in type 'A & B' but required in type 'C'. --intersectionAndUnionTypes.ts(29,1): error TS2322: Type '(A & B) | (C & D)' is not assignable to type 'C | D'. -+intersectionAndUnionTypes.ts(29,1): error TS2322: Type 'A & B | C & D' is not assignable to type 'C | D'. - Type 'A & B' is not assignable to type 'C | D'. - intersectionAndUnionTypes.ts(31,1): error TS2322: Type 'A & B' is not assignable to type '(A | B) & (C | D)'. - Type 'A & B' is not assignable to type 'B & D'. -@@= skipped -73, +73 lines =@@ - x = anb; // Ok - x = aob; - ~ --!!! error TS2322: Type 'A | B' is not assignable to type '(A & B) | (C & D)'. --!!! error TS2322: Type 'A' is not assignable to type '(A & B) | (C & D)'. -+!!! error TS2322: Type 'A | B' is not assignable to type 'A & B | C & D'. -+!!! error TS2322: Type 'A' is not assignable to type 'A & B | C & D'. - !!! error TS2322: Type 'A' is not assignable to type 'A & B'. - !!! error TS2322: Property 'b' is missing in type 'A' but required in type 'B'. - !!! related TS2728 intersectionAndUnionTypes.ts:2:15: 'b' is declared here. - x = cnd; // Ok - x = cod; - ~ --!!! error TS2322: Type 'C | D' is not assignable to type '(A & B) | (C & D)'. --!!! error TS2322: Type 'C' is not assignable to type '(A & B) | (C & D)'. -+!!! error TS2322: Type 'C | D' is not assignable to type 'A & B | C & D'. -+!!! error TS2322: Type 'C' is not assignable to type 'A & B | C & D'. - !!! error TS2322: Type 'C' is not assignable to type 'C & D'. - !!! error TS2322: Property 'd' is missing in type 'C' but required in type 'D'. - !!! related TS2728 intersectionAndUnionTypes.ts:4:15: 'd' is declared here. - anb = x; - ~~~ --!!! error TS2322: Type '(A & B) | (C & D)' is not assignable to type 'A & B'. -+!!! error TS2322: Type 'A & B | C & D' is not assignable to type 'A & B'. - !!! error TS2322: Type 'C & D' is not assignable to type 'A & B'. - !!! error TS2322: Property 'a' is missing in type 'C & D' but required in type 'A'. - !!! related TS2728 intersectionAndUnionTypes.ts:1:15: 'a' is declared here. - aob = x; - ~~~ --!!! error TS2322: Type '(A & B) | (C & D)' is not assignable to type 'A | B'. -+!!! error TS2322: Type 'A & B | C & D' is not assignable to type 'A | B'. - !!! error TS2322: Type 'C & D' is not assignable to type 'A | B'. - cnd = x; - ~~~ --!!! error TS2322: Type '(A & B) | (C & D)' is not assignable to type 'C & D'. -+!!! error TS2322: Type 'A & B | C & D' is not assignable to type 'C & D'. - !!! error TS2322: Type 'A & B' is not assignable to type 'C & D'. - !!! error TS2322: Property 'c' is missing in type 'A & B' but required in type 'C'. - !!! related TS2728 intersectionAndUnionTypes.ts:3:15: 'c' is declared here. - cod = x; - ~~~ --!!! error TS2322: Type '(A & B) | (C & D)' is not assignable to type 'C | D'. -+!!! error TS2322: Type 'A & B | C & D' is not assignable to type 'C | D'. - !!! error TS2322: Type 'A & B' is not assignable to type 'C | D'. - - y = anb; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/intersectionAndUnionTypes.types b/testdata/baselines/reference/submodule/conformance/intersectionAndUnionTypes.types index 68dfe52f70..7cfa1d9856 100644 --- a/testdata/baselines/reference/submodule/conformance/intersectionAndUnionTypes.types +++ b/testdata/baselines/reference/submodule/conformance/intersectionAndUnionTypes.types @@ -38,7 +38,7 @@ var cod: C | D; >cod : C | D var x: A & B | C & D; ->x : A & B | C & D +>x : (A & B) | (C & D) var y: (A | B) & (C | D); >y : (A | B) & (C | D) @@ -65,43 +65,43 @@ anb = b; x = anb; // Ok >x = anb : A & B ->x : A & B | C & D +>x : (A & B) | (C & D) >anb : A & B x = aob; >x = aob : A | B ->x : A & B | C & D +>x : (A & B) | (C & D) >aob : A | B x = cnd; // Ok >x = cnd : C & D ->x : A & B | C & D +>x : (A & B) | (C & D) >cnd : C & D x = cod; >x = cod : C | D ->x : A & B | C & D +>x : (A & B) | (C & D) >cod : C | D anb = x; ->anb = x : A & B | C & D +>anb = x : (A & B) | (C & D) >anb : A & B ->x : A & B | C & D +>x : (A & B) | (C & D) aob = x; ->aob = x : A & B | C & D +>aob = x : (A & B) | (C & D) >aob : A | B ->x : A & B | C & D +>x : (A & B) | (C & D) cnd = x; ->cnd = x : A & B | C & D +>cnd = x : (A & B) | (C & D) >cnd : C & D ->x : A & B | C & D +>x : (A & B) | (C & D) cod = x; ->cod = x : A & B | C & D +>cod = x : (A & B) | (C & D) >cod : C | D ->x : A & B | C & D +>x : (A & B) | (C & D) y = anb; >y = anb : A & B diff --git a/testdata/baselines/reference/submodule/conformance/intersectionAndUnionTypes.types.diff b/testdata/baselines/reference/submodule/conformance/intersectionAndUnionTypes.types.diff deleted file mode 100644 index 89aa87af10..0000000000 --- a/testdata/baselines/reference/submodule/conformance/intersectionAndUnionTypes.types.diff +++ /dev/null @@ -1,67 +0,0 @@ ---- old.intersectionAndUnionTypes.types -+++ new.intersectionAndUnionTypes.types -@@= skipped -37, +37 lines =@@ - >cod : C | D - - var x: A & B | C & D; -->x : (A & B) | (C & D) -+>x : A & B | C & D - - var y: (A | B) & (C | D); - >y : (A | B) & (C | D) -@@= skipped -27, +27 lines =@@ - - x = anb; // Ok - >x = anb : A & B -->x : (A & B) | (C & D) -+>x : A & B | C & D - >anb : A & B - - x = aob; - >x = aob : A | B -->x : (A & B) | (C & D) -+>x : A & B | C & D - >aob : A | B - - x = cnd; // Ok - >x = cnd : C & D -->x : (A & B) | (C & D) -+>x : A & B | C & D - >cnd : C & D - - x = cod; - >x = cod : C | D -->x : (A & B) | (C & D) -+>x : A & B | C & D - >cod : C | D - - anb = x; -->anb = x : (A & B) | (C & D) -+>anb = x : A & B | C & D - >anb : A & B -->x : (A & B) | (C & D) -+>x : A & B | C & D - - aob = x; -->aob = x : (A & B) | (C & D) -+>aob = x : A & B | C & D - >aob : A | B -->x : (A & B) | (C & D) -+>x : A & B | C & D - - cnd = x; -->cnd = x : (A & B) | (C & D) -+>cnd = x : A & B | C & D - >cnd : C & D -->x : (A & B) | (C & D) -+>x : A & B | C & D - - cod = x; -->cod = x : (A & B) | (C & D) -+>cod = x : A & B | C & D - >cod : C | D -->x : (A & B) | (C & D) -+>x : A & B | C & D - - y = anb; - >y = anb : A & B \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/intersectionNarrowing.types b/testdata/baselines/reference/submodule/conformance/intersectionNarrowing.types index 247df157bf..a0eef45bfc 100644 --- a/testdata/baselines/reference/submodule/conformance/intersectionNarrowing.types +++ b/testdata/baselines/reference/submodule/conformance/intersectionNarrowing.types @@ -4,11 +4,11 @@ // Repros from #43130 function f1(x: T & string | T & undefined) { ->f1 : (x: T & undefined | T & string) => void ->x : T & undefined | T & string +>f1 : (x: (T & undefined) | (T & string)) => void +>x : (T & undefined) | (T & string) if (x) { ->x : T & undefined | T & string +>x : (T & undefined) | (T & string) x; // Should narrow to T & string >x : T & string @@ -16,12 +16,12 @@ function f1(x: T & string | T & undefined) { } function f2(x: T & string | T & undefined) { ->f2 : (x: T & undefined | T & string) => void ->x : T & undefined | T & string +>f2 : (x: (T & undefined) | (T & string)) => void +>x : (T & undefined) | (T & string) if (x !== undefined) { >x !== undefined : boolean ->x : T & undefined | T & string +>x : (T & undefined) | (T & string) >undefined : undefined x; // Should narrow to T & string @@ -34,13 +34,13 @@ function f2(x: T & string | T & undefined) { } function f3(x: T & string | T & number) { ->f3 : (x: T & string | T & number) => void ->x : T & string | T & number +>f3 : (x: (T & string) | (T & number)) => void +>x : (T & string) | (T & number) if (typeof x === "string") { >typeof x === "string" : boolean >typeof x : "bigint" | "boolean" | "function" | "number" | "object" | "string" | "symbol" | "undefined" ->x : T & string | T & number +>x : (T & string) | (T & number) >"string" : "string" x; // Should narrow to T & string @@ -53,11 +53,11 @@ function f3(x: T & string | T & number) { } function f4(x: T & 1 | T & 2) { ->f4 : (x: T & 1 | T & 2) => void ->x : T & 1 | T & 2 +>f4 : (x: (T & 1) | (T & 2)) => void +>x : (T & 1) | (T & 2) switch (x) { ->x : T & 1 | T & 2 +>x : (T & 1) | (T & 2) case 1: x; break; // T & 1 >1 : 1 diff --git a/testdata/baselines/reference/submodule/conformance/intersectionNarrowing.types.diff b/testdata/baselines/reference/submodule/conformance/intersectionNarrowing.types.diff index f0ddd2d804..b8ce96b1d4 100644 --- a/testdata/baselines/reference/submodule/conformance/intersectionNarrowing.types.diff +++ b/testdata/baselines/reference/submodule/conformance/intersectionNarrowing.types.diff @@ -5,61 +5,16 @@ function f1(x: T & string | T & undefined) { ->f1 : (x: (T & string) | (T & undefined)) => void -->x : (T & undefined) | (T & string) -+>f1 : (x: T & undefined | T & string) => void -+>x : T & undefined | T & string ++>f1 : (x: (T & undefined) | (T & string)) => void + >x : (T & undefined) | (T & string) if (x) { -->x : (T & undefined) | (T & string) -+>x : T & undefined | T & string - - x; // Should narrow to T & string - >x : T & string @@= skipped -12, +12 lines =@@ } function f2(x: T & string | T & undefined) { ->f2 : (x: (T & string) | (T & undefined)) => void -->x : (T & undefined) | (T & string) -+>f2 : (x: T & undefined | T & string) => void -+>x : T & undefined | T & string - - if (x !== undefined) { - >x !== undefined : boolean -->x : (T & undefined) | (T & string) -+>x : T & undefined | T & string - >undefined : undefined - - x; // Should narrow to T & string -@@= skipped -18, +18 lines =@@ - } - - function f3(x: T & string | T & number) { -->f3 : (x: (T & string) | (T & number)) => void -->x : (T & string) | (T & number) -+>f3 : (x: T & string | T & number) => void -+>x : T & string | T & number - - if (typeof x === "string") { - >typeof x === "string" : boolean - >typeof x : "bigint" | "boolean" | "function" | "number" | "object" | "string" | "symbol" | "undefined" -->x : (T & string) | (T & number) -+>x : T & string | T & number - >"string" : "string" - - x; // Should narrow to T & string -@@= skipped -19, +19 lines =@@ - } - - function f4(x: T & 1 | T & 2) { -->f4 : (x: (T & 1) | (T & 2)) => void -->x : (T & 1) | (T & 2) -+>f4 : (x: T & 1 | T & 2) => void -+>x : T & 1 | T & 2 - - switch (x) { -->x : (T & 1) | (T & 2) -+>x : T & 1 | T & 2 ++>f2 : (x: (T & undefined) | (T & string)) => void + >x : (T & undefined) | (T & string) - case 1: x; break; // T & 1 - >1 : 1 \ No newline at end of file + if (x !== undefined) { \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/intersectionOfUnionNarrowing.types b/testdata/baselines/reference/submodule/conformance/intersectionOfUnionNarrowing.types index 0cedab2aa7..a092948b57 100644 --- a/testdata/baselines/reference/submodule/conformance/intersectionOfUnionNarrowing.types +++ b/testdata/baselines/reference/submodule/conformance/intersectionOfUnionNarrowing.types @@ -22,9 +22,9 @@ declare const q: X & AorB; if (q.a !== undefined) { >q.a !== undefined : boolean ->q.a : { aProp: string; } & object | undefined +>q.a : ({ aProp: string; } & object) | undefined >q : X & AorB ->a : { aProp: string; } & object | undefined +>a : ({ aProp: string; } & object) | undefined >undefined : undefined q.a.aProp; diff --git a/testdata/baselines/reference/submodule/conformance/intersectionOfUnionNarrowing.types.diff b/testdata/baselines/reference/submodule/conformance/intersectionOfUnionNarrowing.types.diff deleted file mode 100644 index c1de63cfe1..0000000000 --- a/testdata/baselines/reference/submodule/conformance/intersectionOfUnionNarrowing.types.diff +++ /dev/null @@ -1,14 +0,0 @@ ---- old.intersectionOfUnionNarrowing.types -+++ new.intersectionOfUnionNarrowing.types -@@= skipped -21, +21 lines =@@ - - if (q.a !== undefined) { - >q.a !== undefined : boolean -->q.a : ({ aProp: string; } & object) | undefined -+>q.a : { aProp: string; } & object | undefined - >q : X & AorB -->a : ({ aProp: string; } & object) | undefined -+>a : { aProp: string; } & object | undefined - >undefined : undefined - - q.a.aProp; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/intersectionWithUnionConstraint.types b/testdata/baselines/reference/submodule/conformance/intersectionWithUnionConstraint.types index d5bba2c83a..93cfdcc52c 100644 --- a/testdata/baselines/reference/submodule/conformance/intersectionWithUnionConstraint.types +++ b/testdata/baselines/reference/submodule/conformance/intersectionWithUnionConstraint.types @@ -44,8 +44,8 @@ type T1 = (string | number | undefined) & (string | null | undefined); // strin >T1 : string | undefined function f3(x: T & (number | object | undefined)) { ->f3 : (x: T & undefined | T & number) => void ->x : T & undefined | T & number +>f3 : (x: (T & undefined) | (T & number)) => void +>x : (T & undefined) | (T & number) const y: number | undefined = x; >y : number | undefined diff --git a/testdata/baselines/reference/submodule/conformance/intersectionWithUnionConstraint.types.diff b/testdata/baselines/reference/submodule/conformance/intersectionWithUnionConstraint.types.diff index 78d1c6d412..f843d5d4a8 100644 --- a/testdata/baselines/reference/submodule/conformance/intersectionWithUnionConstraint.types.diff +++ b/testdata/baselines/reference/submodule/conformance/intersectionWithUnionConstraint.types.diff @@ -5,12 +5,10 @@ function f3(x: T & (number | object | undefined)) { ->f3 : (x: T & (number | object | undefined)) => void -->x : (T & undefined) | (T & number) -+>f3 : (x: T & undefined | T & number) => void -+>x : T & undefined | T & number ++>f3 : (x: (T & undefined) | (T & number)) => void + >x : (T & undefined) | (T & number) const y: number | undefined = x; - >y : number | undefined @@= skipped -9, +9 lines =@@ } diff --git a/testdata/baselines/reference/submodule/conformance/keyofAndIndexedAccess2.types b/testdata/baselines/reference/submodule/conformance/keyofAndIndexedAccess2.types index c1ca5d2422..0602e87d7c 100644 --- a/testdata/baselines/reference/submodule/conformance/keyofAndIndexedAccess2.types +++ b/testdata/baselines/reference/submodule/conformance/keyofAndIndexedAccess2.types @@ -566,7 +566,7 @@ for (const action of actions) { window[action](x, y); >window[action](x, y) : void ->window[action] : ((x: number, y: number) => void) & ((x: number, y: number) => void) | ((width: number, height: number) => void) & ((width: number, height: number) => void) +>window[action] : (((x: number, y: number) => void) & ((x: number, y: number) => void)) | (((width: number, height: number) => void) & ((width: number, height: number) => void)) >window : Window & typeof globalThis >action : "resizeBy" | "resizeTo" >x : number diff --git a/testdata/baselines/reference/submodule/conformance/keyofAndIndexedAccess2.types.diff b/testdata/baselines/reference/submodule/conformance/keyofAndIndexedAccess2.types.diff index e05aaa8a96..a0e1ed337a 100644 --- a/testdata/baselines/reference/submodule/conformance/keyofAndIndexedAccess2.types.diff +++ b/testdata/baselines/reference/submodule/conformance/keyofAndIndexedAccess2.types.diff @@ -81,13 +81,4 @@ +>fn3 : (param: T, cb: (element: T[number]) => void) => void >param : T >cb : (element: T[number]) => void - >element : T[number] -@@= skipped -90, +90 lines =@@ - - window[action](x, y); - >window[action](x, y) : void -->window[action] : (((x: number, y: number) => void) & ((x: number, y: number) => void)) | (((width: number, height: number) => void) & ((width: number, height: number) => void)) -+>window[action] : ((x: number, y: number) => void) & ((x: number, y: number) => void) | ((width: number, height: number) => void) & ((width: number, height: number) => void) - >window : Window & typeof globalThis - >action : "resizeBy" | "resizeTo" - >x : number \ No newline at end of file + >element : T[number] \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/mappedTypes4.types b/testdata/baselines/reference/submodule/conformance/mappedTypes4.types index fcbdf252e9..9f739b2323 100644 --- a/testdata/baselines/reference/submodule/conformance/mappedTypes4.types +++ b/testdata/baselines/reference/submodule/conformance/mappedTypes4.types @@ -29,7 +29,7 @@ function boxify(obj: T): Boxified { for (let k in obj) { >k : Extract ->obj : T & null | T & object +>obj : (T & null) | (T & object) result[k] = { value: obj[k] }; >result[k] = { value: obj[k] } : { value: (T & object)[Extract]; } diff --git a/testdata/baselines/reference/submodule/conformance/mappedTypes4.types.diff b/testdata/baselines/reference/submodule/conformance/mappedTypes4.types.diff deleted file mode 100644 index e323cb2082..0000000000 --- a/testdata/baselines/reference/submodule/conformance/mappedTypes4.types.diff +++ /dev/null @@ -1,11 +0,0 @@ ---- old.mappedTypes4.types -+++ new.mappedTypes4.types -@@= skipped -28, +28 lines =@@ - - for (let k in obj) { - >k : Extract -->obj : (T & null) | (T & object) -+>obj : T & null | T & object - - result[k] = { value: obj[k] }; - >result[k] = { value: obj[k] } : { value: (T & object)[Extract]; } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nonPrimitiveAndEmptyObject.types b/testdata/baselines/reference/submodule/conformance/nonPrimitiveAndEmptyObject.types index 39b39b7381..b357cc5d53 100644 --- a/testdata/baselines/reference/submodule/conformance/nonPrimitiveAndEmptyObject.types +++ b/testdata/baselines/reference/submodule/conformance/nonPrimitiveAndEmptyObject.types @@ -10,7 +10,7 @@ export interface BarProps { export interface FooProps { fooProps?: BarProps & object; ->fooProps : BarProps & object | undefined +>fooProps : (BarProps & object) | undefined } declare const foo: FooProps; diff --git a/testdata/baselines/reference/submodule/conformance/nonPrimitiveAndEmptyObject.types.diff b/testdata/baselines/reference/submodule/conformance/nonPrimitiveAndEmptyObject.types.diff deleted file mode 100644 index 224cce581f..0000000000 --- a/testdata/baselines/reference/submodule/conformance/nonPrimitiveAndEmptyObject.types.diff +++ /dev/null @@ -1,11 +0,0 @@ ---- old.nonPrimitiveAndEmptyObject.types -+++ new.nonPrimitiveAndEmptyObject.types -@@= skipped -9, +9 lines =@@ - - export interface FooProps { - fooProps?: BarProps & object; -->fooProps : (BarProps & object) | undefined -+>fooProps : BarProps & object | undefined - } - - declare const foo: FooProps; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/objectSpread.types b/testdata/baselines/reference/submodule/conformance/objectSpread.types index c79e0af4c7..e35a2b452d 100644 --- a/testdata/baselines/reference/submodule/conformance/objectSpread.types +++ b/testdata/baselines/reference/submodule/conformance/objectSpread.types @@ -672,8 +672,8 @@ function genericSpread(t: T, u: U, v: T | U, w: T | { s: string }, obj: { >v : T | U let x12 = { ...v, ...obj }; ->x12 : T & { x: number; } | U & { x: number; } ->{ ...v, ...obj } : T & { x: number; } | U & { x: number; } +>x12 : (T & { x: number; }) | (U & { x: number; }) +>{ ...v, ...obj } : (T & { x: number; }) | (U & { x: number; }) >v : T | U >obj : { x: number; } @@ -683,33 +683,33 @@ function genericSpread(t: T, u: U, v: T | U, w: T | { s: string }, obj: { >w : T | { s: string; } let x14 = { ...w, ...obj }; ->x14 : { s: string; x: number; } | T & { x: number; } ->{ ...w, ...obj } : { s: string; x: number; } | T & { x: number; } +>x14 : { s: string; x: number; } | (T & { x: number; }) +>{ ...w, ...obj } : { s: string; x: number; } | (T & { x: number; }) >w : T | { s: string; } >obj : { x: number; } let x15 = { ...t, ...v }; ->x15 : T | T & U ->{ ...t, ...v } : T | T & U +>x15 : T | (T & U) +>{ ...t, ...v } : T | (T & U) >t : T >v : T | U let x16 = { ...t, ...w }; ->x16 : T | T & { s: string; } ->{ ...t, ...w } : T | T & { s: string; } +>x16 : T | (T & { s: string; }) +>{ ...t, ...w } : T | (T & { s: string; }) >t : T >w : T | { s: string; } let x17 = { ...t, ...w, ...obj }; ->x17 : T & { x: number; } | T & { s: string; x: number; } ->{ ...t, ...w, ...obj } : T & { x: number; } | T & { s: string; x: number; } +>x17 : (T & { x: number; }) | (T & { s: string; x: number; }) +>{ ...t, ...w, ...obj } : (T & { x: number; }) | (T & { s: string; x: number; }) >t : T >w : T | { s: string; } >obj : { x: number; } let x18 = { ...t, ...v, ...w }; ->x18 : T | T & U | T & { s: string; } | T & U & { s: string; } ->{ ...t, ...v, ...w } : T | T & U | T & { s: string; } | T & U & { s: string; } +>x18 : T | (T & U) | (T & { s: string; }) | (T & U & { s: string; }) +>{ ...t, ...v, ...w } : T | (T & U) | (T & { s: string; }) | (T & U & { s: string; }) >t : T >v : T | U >w : T | { s: string; } diff --git a/testdata/baselines/reference/submodule/conformance/objectSpread.types.diff b/testdata/baselines/reference/submodule/conformance/objectSpread.types.diff index 6039df0a1e..12114244a3 100644 --- a/testdata/baselines/reference/submodule/conformance/objectSpread.types.diff +++ b/testdata/baselines/reference/submodule/conformance/objectSpread.types.diff @@ -52,59 +52,4 @@ +>optionalNumber : { sn?: number | undefined; } // computed property - let computedFirst: { a: number, b: string, "before everything": number } = -@@= skipped -244, +244 lines =@@ - >v : T | U - - let x12 = { ...v, ...obj }; -->x12 : (T & { x: number; }) | (U & { x: number; }) -->{ ...v, ...obj } : (T & { x: number; }) | (U & { x: number; }) -+>x12 : T & { x: number; } | U & { x: number; } -+>{ ...v, ...obj } : T & { x: number; } | U & { x: number; } - >v : T | U - >obj : { x: number; } - -@@= skipped -11, +11 lines =@@ - >w : T | { s: string; } - - let x14 = { ...w, ...obj }; -->x14 : { s: string; x: number; } | (T & { x: number; }) -->{ ...w, ...obj } : { s: string; x: number; } | (T & { x: number; }) -+>x14 : { s: string; x: number; } | T & { x: number; } -+>{ ...w, ...obj } : { s: string; x: number; } | T & { x: number; } - >w : T | { s: string; } - >obj : { x: number; } - - let x15 = { ...t, ...v }; -->x15 : T | (T & U) -->{ ...t, ...v } : T | (T & U) -+>x15 : T | T & U -+>{ ...t, ...v } : T | T & U - >t : T - >v : T | U - - let x16 = { ...t, ...w }; -->x16 : T | (T & { s: string; }) -->{ ...t, ...w } : T | (T & { s: string; }) -+>x16 : T | T & { s: string; } -+>{ ...t, ...w } : T | T & { s: string; } - >t : T - >w : T | { s: string; } - - let x17 = { ...t, ...w, ...obj }; -->x17 : (T & { x: number; }) | (T & { s: string; x: number; }) -->{ ...t, ...w, ...obj } : (T & { x: number; }) | (T & { s: string; x: number; }) -+>x17 : T & { x: number; } | T & { s: string; x: number; } -+>{ ...t, ...w, ...obj } : T & { x: number; } | T & { s: string; x: number; } - >t : T - >w : T | { s: string; } - >obj : { x: number; } - - let x18 = { ...t, ...v, ...w }; -->x18 : T | (T & U) | (T & { s: string; }) | (T & U & { s: string; }) -->{ ...t, ...v, ...w } : T | (T & U) | (T & { s: string; }) | (T & U & { s: string; }) -+>x18 : T | T & U | T & { s: string; } | T & U & { s: string; } -+>{ ...t, ...v, ...w } : T | T & U | T & { s: string; } | T & U & { s: string; } - >t : T - >v : T | U - >w : T | { s: string; } \ No newline at end of file + let computedFirst: { a: number, b: string, "before everything": number } = \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/spreadObjectOrFalsy.js b/testdata/baselines/reference/submodule/conformance/spreadObjectOrFalsy.js index 0c5fa33708..127c238252 100644 --- a/testdata/baselines/reference/submodule/conformance/spreadObjectOrFalsy.js +++ b/testdata/baselines/reference/submodule/conformance/spreadObjectOrFalsy.js @@ -94,7 +94,7 @@ class Foo { //// [spreadObjectOrFalsy.d.ts] declare function f1(a: T & undefined): any; -declare function f2(a: T | T & undefined): T | T & undefined; +declare function f2(a: T | (T & undefined)): T | (T & undefined); declare function f3(a: T): any; declare function f4(a: object | T): {}; declare function f5(a: S | T): S | T; diff --git a/testdata/baselines/reference/submodule/conformance/spreadObjectOrFalsy.js.diff b/testdata/baselines/reference/submodule/conformance/spreadObjectOrFalsy.js.diff index 55a888d349..ad293c9e65 100644 --- a/testdata/baselines/reference/submodule/conformance/spreadObjectOrFalsy.js.diff +++ b/testdata/baselines/reference/submodule/conformance/spreadObjectOrFalsy.js.diff @@ -58,7 +58,7 @@ //// [spreadObjectOrFalsy.d.ts] declare function f1(a: T & undefined): any; -declare function f2(a: T | T & undefined): T | (T & undefined); -+declare function f2(a: T | T & undefined): T | T & undefined; ++declare function f2(a: T | (T & undefined)): T | (T & undefined); declare function f3(a: T): any; declare function f4(a: object | T): {}; declare function f5(a: S | T): S | T; diff --git a/testdata/baselines/reference/submodule/conformance/spreadObjectOrFalsy.types b/testdata/baselines/reference/submodule/conformance/spreadObjectOrFalsy.types index 270318d4fe..fef37c9a6a 100644 --- a/testdata/baselines/reference/submodule/conformance/spreadObjectOrFalsy.types +++ b/testdata/baselines/reference/submodule/conformance/spreadObjectOrFalsy.types @@ -11,12 +11,12 @@ function f1(a: T & undefined) { } function f2(a: T | T & undefined) { ->f2 : (a: T | T & undefined) => T | T & undefined ->a : T | T & undefined +>f2 : (a: T | (T & undefined)) => T | (T & undefined) +>a : T | (T & undefined) return { ...a }; ->{ ...a } : T | T & undefined ->a : T | T & undefined +>{ ...a } : T | (T & undefined) +>a : T | (T & undefined) } function f3(a: T) { diff --git a/testdata/baselines/reference/submodule/conformance/spreadObjectOrFalsy.types.diff b/testdata/baselines/reference/submodule/conformance/spreadObjectOrFalsy.types.diff index 9e6404ed0e..64a745c098 100644 --- a/testdata/baselines/reference/submodule/conformance/spreadObjectOrFalsy.types.diff +++ b/testdata/baselines/reference/submodule/conformance/spreadObjectOrFalsy.types.diff @@ -1,23 +1,6 @@ --- old.spreadObjectOrFalsy.types +++ new.spreadObjectOrFalsy.types -@@= skipped -10, +10 lines =@@ - } - - function f2(a: T | T & undefined) { -->f2 : (a: T | (T & undefined)) => T | (T & undefined) -->a : T | (T & undefined) -+>f2 : (a: T | T & undefined) => T | T & undefined -+>a : T | T & undefined - - return { ...a }; -->{ ...a } : T | (T & undefined) -->a : T | (T & undefined) -+>{ ...a } : T | T & undefined -+>a : T | T & undefined - } - - function f3(a: T) { -@@= skipped -47, +47 lines =@@ +@@= skipped -57, +57 lines =@@ // Repro from #46976 function g1(a: A) { diff --git a/testdata/baselines/reference/submodule/conformance/templateLiteralTypes2.types b/testdata/baselines/reference/submodule/conformance/templateLiteralTypes2.types index 7083c95b64..9f142ccbd8 100644 --- a/testdata/baselines/reference/submodule/conformance/templateLiteralTypes2.types +++ b/testdata/baselines/reference/submodule/conformance/templateLiteralTypes2.types @@ -403,13 +403,13 @@ const interpolatedStyle = { rotate: 12 }; >12 : 12 function C2(transform: "-moz-initial" | (string & {})) { return 12; } ->C2 : (transform: "-moz-initial" | string & {}) => number ->transform : "-moz-initial" | string & {} +>C2 : (transform: "-moz-initial" | (string & {})) => number +>transform : "-moz-initial" | (string & {}) >12 : 12 C2(`rotate(${interpolatedStyle.rotate}dig)`); >C2(`rotate(${interpolatedStyle.rotate}dig)`) : number ->C2 : (transform: "-moz-initial" | string & {}) => number +>C2 : (transform: "-moz-initial" | (string & {})) => number >`rotate(${interpolatedStyle.rotate}dig)` : `rotate(${number}dig)` >interpolatedStyle.rotate : number >interpolatedStyle : { rotate: number; } diff --git a/testdata/baselines/reference/submodule/conformance/templateLiteralTypes2.types.diff b/testdata/baselines/reference/submodule/conformance/templateLiteralTypes2.types.diff index b98b9435bf..0695b36656 100644 --- a/testdata/baselines/reference/submodule/conformance/templateLiteralTypes2.types.diff +++ b/testdata/baselines/reference/submodule/conformance/templateLiteralTypes2.types.diff @@ -8,21 +8,4 @@ +>ft1 : (s: string, n: number, u: "bar" | "baz" | "foo", t: T) => void >s : string >n : number - >u : "bar" | "baz" | "foo" -@@= skipped -401, +401 lines =@@ - >12 : 12 - - function C2(transform: "-moz-initial" | (string & {})) { return 12; } -->C2 : (transform: "-moz-initial" | (string & {})) => number -->transform : "-moz-initial" | (string & {}) -+>C2 : (transform: "-moz-initial" | string & {}) => number -+>transform : "-moz-initial" | string & {} - >12 : 12 - - C2(`rotate(${interpolatedStyle.rotate}dig)`); - >C2(`rotate(${interpolatedStyle.rotate}dig)`) : number -->C2 : (transform: "-moz-initial" | (string & {})) => number -+>C2 : (transform: "-moz-initial" | string & {}) => number - >`rotate(${interpolatedStyle.rotate}dig)` : `rotate(${number}dig)` - >interpolatedStyle.rotate : number - >interpolatedStyle : { rotate: number; } \ No newline at end of file + >u : "bar" | "baz" | "foo" \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/templateLiteralTypes3.types b/testdata/baselines/reference/submodule/conformance/templateLiteralTypes3.types index 6f2290166e..a33d749d3b 100644 --- a/testdata/baselines/reference/submodule/conformance/templateLiteralTypes3.types +++ b/testdata/baselines/reference/submodule/conformance/templateLiteralTypes3.types @@ -608,16 +608,16 @@ function a() { >id : string let x: keyof T & string | `-${keyof T & string}`; ->x : `-${keyof T & string}` | keyof T & string +>x : `-${keyof T & string}` | (keyof T & string) x = "id"; >x = "id" : "id" ->x : `-${keyof T & string}` | keyof T & string +>x : `-${keyof T & string}` | (keyof T & string) >"id" : "id" x = "-id"; >x = "-id" : "-id" ->x : `-${keyof T & string}` | keyof T & string +>x : `-${keyof T & string}` | (keyof T & string) >"-id" : "-id" } diff --git a/testdata/baselines/reference/submodule/conformance/templateLiteralTypes3.types.diff b/testdata/baselines/reference/submodule/conformance/templateLiteralTypes3.types.diff index e3c5a47fed..8bce7669b0 100644 --- a/testdata/baselines/reference/submodule/conformance/templateLiteralTypes3.types.diff +++ b/testdata/baselines/reference/submodule/conformance/templateLiteralTypes3.types.diff @@ -106,23 +106,4 @@ +>spread :

(...args: P[]) => P >u1 : `1.${Uppercase}.3` >u2 : `1.${Uppercase}.4` - } -@@= skipped -17, +17 lines =@@ - >id : string - - let x: keyof T & string | `-${keyof T & string}`; -->x : `-${keyof T & string}` | (keyof T & string) -+>x : `-${keyof T & string}` | keyof T & string - - x = "id"; - >x = "id" : "id" -->x : `-${keyof T & string}` | (keyof T & string) -+>x : `-${keyof T & string}` | keyof T & string - >"id" : "id" - - x = "-id"; - >x = "-id" : "-id" -->x : `-${keyof T & string}` | (keyof T & string) -+>x : `-${keyof T & string}` | keyof T & string - >"-id" : "-id" - } + } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/templateLiteralTypesPatterns.types b/testdata/baselines/reference/submodule/conformance/templateLiteralTypesPatterns.types index 61ad1487be..b90cae9fa1 100644 --- a/testdata/baselines/reference/submodule/conformance/templateLiteralTypesPatterns.types +++ b/testdata/baselines/reference/submodule/conformance/templateLiteralTypesPatterns.types @@ -637,21 +637,21 @@ export abstract class BB { // repro from https://github.com/microsoft/TypeScript/issues/54177#issuecomment-1538436654 function conversionTest(groupName: | "downcast" | "dataDowncast" | "editingDowncast" | `${string}Downcast` & {}) {} ->conversionTest : (groupName: "dataDowncast" | "downcast" | "editingDowncast" | `${string}Downcast` & {}) => void ->groupName : "dataDowncast" | "downcast" | "editingDowncast" | `${string}Downcast` & {} +>conversionTest : (groupName: "dataDowncast" | "downcast" | "editingDowncast" | (`${string}Downcast` & {})) => void +>groupName : "dataDowncast" | "downcast" | "editingDowncast" | (`${string}Downcast` & {}) conversionTest("testDowncast"); >conversionTest("testDowncast") : void ->conversionTest : (groupName: "dataDowncast" | "downcast" | "editingDowncast" | `${string}Downcast` & {}) => void +>conversionTest : (groupName: "dataDowncast" | "downcast" | "editingDowncast" | (`${string}Downcast` & {})) => void >"testDowncast" : "testDowncast" function conversionTest2(groupName: | "downcast" | "dataDowncast" | "editingDowncast" | {} & `${string}Downcast`) {} ->conversionTest2 : (groupName: "dataDowncast" | "downcast" | "editingDowncast" | {} & `${string}Downcast`) => void ->groupName : "dataDowncast" | "downcast" | "editingDowncast" | {} & `${string}Downcast` +>conversionTest2 : (groupName: "dataDowncast" | "downcast" | "editingDowncast" | ({} & `${string}Downcast`)) => void +>groupName : "dataDowncast" | "downcast" | "editingDowncast" | ({} & `${string}Downcast`) conversionTest2("testDowncast"); >conversionTest2("testDowncast") : void ->conversionTest2 : (groupName: "dataDowncast" | "downcast" | "editingDowncast" | {} & `${string}Downcast`) => void +>conversionTest2 : (groupName: "dataDowncast" | "downcast" | "editingDowncast" | ({} & `${string}Downcast`)) => void >"testDowncast" : "testDowncast" function conversionTest3(groupName: | "downcast" | "dataDowncast" | "editingDowncast" | `${string & {}}Downcast`) {} diff --git a/testdata/baselines/reference/submodule/conformance/templateLiteralTypesPatterns.types.diff b/testdata/baselines/reference/submodule/conformance/templateLiteralTypesPatterns.types.diff index 0febbd4809..c595ea3000 100644 --- a/testdata/baselines/reference/submodule/conformance/templateLiteralTypesPatterns.types.diff +++ b/testdata/baselines/reference/submodule/conformance/templateLiteralTypesPatterns.types.diff @@ -139,26 +139,24 @@ // repro from https://github.com/microsoft/TypeScript/issues/54177#issuecomment-1538436654 function conversionTest(groupName: | "downcast" | "dataDowncast" | "editingDowncast" | `${string}Downcast` & {}) {} ->conversionTest : (groupName: "downcast" | "dataDowncast" | "editingDowncast" | (`${string}Downcast` & {})) => void -->groupName : "dataDowncast" | "downcast" | "editingDowncast" | (`${string}Downcast` & {}) -+>conversionTest : (groupName: "dataDowncast" | "downcast" | "editingDowncast" | `${string}Downcast` & {}) => void -+>groupName : "dataDowncast" | "downcast" | "editingDowncast" | `${string}Downcast` & {} ++>conversionTest : (groupName: "dataDowncast" | "downcast" | "editingDowncast" | (`${string}Downcast` & {})) => void + >groupName : "dataDowncast" | "downcast" | "editingDowncast" | (`${string}Downcast` & {}) conversionTest("testDowncast"); >conversionTest("testDowncast") : void ->conversionTest : (groupName: "downcast" | "dataDowncast" | "editingDowncast" | (`${string}Downcast` & {})) => void -+>conversionTest : (groupName: "dataDowncast" | "downcast" | "editingDowncast" | `${string}Downcast` & {}) => void ++>conversionTest : (groupName: "dataDowncast" | "downcast" | "editingDowncast" | (`${string}Downcast` & {})) => void >"testDowncast" : "testDowncast" function conversionTest2(groupName: | "downcast" | "dataDowncast" | "editingDowncast" | {} & `${string}Downcast`) {} ->conversionTest2 : (groupName: "downcast" | "dataDowncast" | "editingDowncast" | ({} & `${string}Downcast`)) => void -->groupName : "dataDowncast" | "downcast" | "editingDowncast" | ({} & `${string}Downcast`) -+>conversionTest2 : (groupName: "dataDowncast" | "downcast" | "editingDowncast" | {} & `${string}Downcast`) => void -+>groupName : "dataDowncast" | "downcast" | "editingDowncast" | {} & `${string}Downcast` ++>conversionTest2 : (groupName: "dataDowncast" | "downcast" | "editingDowncast" | ({} & `${string}Downcast`)) => void + >groupName : "dataDowncast" | "downcast" | "editingDowncast" | ({} & `${string}Downcast`) conversionTest2("testDowncast"); >conversionTest2("testDowncast") : void ->conversionTest2 : (groupName: "downcast" | "dataDowncast" | "editingDowncast" | ({} & `${string}Downcast`)) => void -+>conversionTest2 : (groupName: "dataDowncast" | "downcast" | "editingDowncast" | {} & `${string}Downcast`) => void ++>conversionTest2 : (groupName: "dataDowncast" | "downcast" | "editingDowncast" | ({} & `${string}Downcast`)) => void >"testDowncast" : "testDowncast" function conversionTest3(groupName: | "downcast" | "dataDowncast" | "editingDowncast" | `${string & {}}Downcast`) {} diff --git a/testdata/baselines/reference/submodule/conformance/thisTypeInObjectLiterals2.types b/testdata/baselines/reference/submodule/conformance/thisTypeInObjectLiterals2.types index 8a6f12fb0c..e310cff9af 100644 --- a/testdata/baselines/reference/submodule/conformance/thisTypeInObjectLiterals2.types +++ b/testdata/baselines/reference/submodule/conformance/thisTypeInObjectLiterals2.types @@ -406,7 +406,7 @@ type ObjectDescriptor = { >data : D | undefined methods?: M & ThisType; // Type of 'this' in methods is D & M ->methods : M & ThisType | undefined +>methods : (M & ThisType) | undefined } declare function makeObject(desc: ObjectDescriptor): D & M; diff --git a/testdata/baselines/reference/submodule/conformance/thisTypeInObjectLiterals2.types.diff b/testdata/baselines/reference/submodule/conformance/thisTypeInObjectLiterals2.types.diff index 05b183c797..54977b8e1a 100644 --- a/testdata/baselines/reference/submodule/conformance/thisTypeInObjectLiterals2.types.diff +++ b/testdata/baselines/reference/submodule/conformance/thisTypeInObjectLiterals2.types.diff @@ -8,13 +8,4 @@ +>moveBy : (dx: number, dy: number, dz?: number | undefined) => void >dx : number >dy : number - >dz : number | undefined -@@= skipped -320, +320 lines =@@ - >data : D | undefined - - methods?: M & ThisType; // Type of 'this' in methods is D & M -->methods : (M & ThisType) | undefined -+>methods : M & ThisType | undefined - } - - declare function makeObject(desc: ObjectDescriptor): D & M; \ No newline at end of file + >dz : number | undefined \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/typeGuardIntersectionTypes.types b/testdata/baselines/reference/submodule/conformance/typeGuardIntersectionTypes.types index 8350f3ee0b..2cd1a1602b 100644 --- a/testdata/baselines/reference/submodule/conformance/typeGuardIntersectionTypes.types +++ b/testdata/baselines/reference/submodule/conformance/typeGuardIntersectionTypes.types @@ -94,7 +94,7 @@ function isB(toTest: any): toTest is B { // a function that turns an A into an A & B function union(a: A): A & B | null { ->union : (a: A) => A & B | null +>union : (a: A) => (A & B) | null >a : A if (isB(a)) { diff --git a/testdata/baselines/reference/submodule/conformance/typeGuardIntersectionTypes.types.diff b/testdata/baselines/reference/submodule/conformance/typeGuardIntersectionTypes.types.diff deleted file mode 100644 index 23b3e7bc04..0000000000 --- a/testdata/baselines/reference/submodule/conformance/typeGuardIntersectionTypes.types.diff +++ /dev/null @@ -1,11 +0,0 @@ ---- old.typeGuardIntersectionTypes.types -+++ new.typeGuardIntersectionTypes.types -@@= skipped -93, +93 lines =@@ - - // a function that turns an A into an A & B - function union(a: A): A & B | null { -->union : (a: A) => (A & B) | null -+>union : (a: A) => A & B | null - >a : A - - if (isB(a)) { \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/typeGuardsWithInstanceOf.errors.txt b/testdata/baselines/reference/submodule/conformance/typeGuardsWithInstanceOf.errors.txt index a818f6deb9..a799f0e8d8 100644 --- a/testdata/baselines/reference/submodule/conformance/typeGuardsWithInstanceOf.errors.txt +++ b/testdata/baselines/reference/submodule/conformance/typeGuardsWithInstanceOf.errors.txt @@ -1,8 +1,8 @@ typeGuardsWithInstanceOf.ts(7,20): error TS2339: Property 'global' does not exist on type 'never'. The intersection 'I & RegExp' was reduced to 'never' because property 'global' has conflicting types in some constituents. -typeGuardsWithInstanceOf.ts(36,11): error TS2339: Property 'onChanges' does not exist on type 'C | Validator & Partial'. +typeGuardsWithInstanceOf.ts(36,11): error TS2339: Property 'onChanges' does not exist on type 'C | (Validator & Partial)'. Property 'onChanges' does not exist on type 'C'. -typeGuardsWithInstanceOf.ts(37,11): error TS2339: Property 'onChanges' does not exist on type 'C | Validator & Partial'. +typeGuardsWithInstanceOf.ts(37,11): error TS2339: Property 'onChanges' does not exist on type 'C | (Validator & Partial)'. Property 'onChanges' does not exist on type 'C'. @@ -47,11 +47,11 @@ typeGuardsWithInstanceOf.ts(37,11): error TS2339: Property 'onChanges' does not // before 4.1. if (v.onChanges) { ~~~~~~~~~ -!!! error TS2339: Property 'onChanges' does not exist on type 'C | Validator & Partial'. +!!! error TS2339: Property 'onChanges' does not exist on type 'C | (Validator & Partial)'. !!! error TS2339: Property 'onChanges' does not exist on type 'C'. v.onChanges({}); ~~~~~~~~~ -!!! error TS2339: Property 'onChanges' does not exist on type 'C | Validator & Partial'. +!!! error TS2339: Property 'onChanges' does not exist on type 'C | (Validator & Partial)'. !!! error TS2339: Property 'onChanges' does not exist on type 'C'. } } diff --git a/testdata/baselines/reference/submodule/conformance/typeGuardsWithInstanceOf.errors.txt.diff b/testdata/baselines/reference/submodule/conformance/typeGuardsWithInstanceOf.errors.txt.diff deleted file mode 100644 index 4f4fa6636d..0000000000 --- a/testdata/baselines/reference/submodule/conformance/typeGuardsWithInstanceOf.errors.txt.diff +++ /dev/null @@ -1,27 +0,0 @@ ---- old.typeGuardsWithInstanceOf.errors.txt -+++ new.typeGuardsWithInstanceOf.errors.txt -@@= skipped -0, +0 lines =@@ - typeGuardsWithInstanceOf.ts(7,20): error TS2339: Property 'global' does not exist on type 'never'. - The intersection 'I & RegExp' was reduced to 'never' because property 'global' has conflicting types in some constituents. --typeGuardsWithInstanceOf.ts(36,11): error TS2339: Property 'onChanges' does not exist on type 'C | (Validator & Partial)'. -+typeGuardsWithInstanceOf.ts(36,11): error TS2339: Property 'onChanges' does not exist on type 'C | Validator & Partial'. - Property 'onChanges' does not exist on type 'C'. --typeGuardsWithInstanceOf.ts(37,11): error TS2339: Property 'onChanges' does not exist on type 'C | (Validator & Partial)'. -+typeGuardsWithInstanceOf.ts(37,11): error TS2339: Property 'onChanges' does not exist on type 'C | Validator & Partial'. - Property 'onChanges' does not exist on type 'C'. - - -@@= skipped -46, +46 lines =@@ - // before 4.1. - if (v.onChanges) { - ~~~~~~~~~ --!!! error TS2339: Property 'onChanges' does not exist on type 'C | (Validator & Partial)'. -+!!! error TS2339: Property 'onChanges' does not exist on type 'C | Validator & Partial'. - !!! error TS2339: Property 'onChanges' does not exist on type 'C'. - v.onChanges({}); - ~~~~~~~~~ --!!! error TS2339: Property 'onChanges' does not exist on type 'C | (Validator & Partial)'. -+!!! error TS2339: Property 'onChanges' does not exist on type 'C | Validator & Partial'. - !!! error TS2339: Property 'onChanges' does not exist on type 'C'. - } - } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/typeGuardsWithInstanceOf.types b/testdata/baselines/reference/submodule/conformance/typeGuardsWithInstanceOf.types index 9da6d9c20d..77624c555d 100644 --- a/testdata/baselines/reference/submodule/conformance/typeGuardsWithInstanceOf.types +++ b/testdata/baselines/reference/submodule/conformance/typeGuardsWithInstanceOf.types @@ -68,7 +68,7 @@ function foo() { >v : C } v // Validator & Partial via subtype reduction ->v : C | Validator & Partial +>v : C | (Validator & Partial) // In 4.1, we introduced a change which _fixed_ a bug with CFA // correctly setting this to be the right object. With 4.2, @@ -76,13 +76,13 @@ function foo() { // before 4.1. if (v.onChanges) { >v.onChanges : any ->v : C | Validator & Partial +>v : C | (Validator & Partial) >onChanges : any v.onChanges({}); >v.onChanges({}) : any >v.onChanges : any ->v : C | Validator & Partial +>v : C | (Validator & Partial) >onChanges : any >{} : {} } diff --git a/testdata/baselines/reference/submodule/conformance/typeGuardsWithInstanceOf.types.diff b/testdata/baselines/reference/submodule/conformance/typeGuardsWithInstanceOf.types.diff index 0363992816..67ecee0609 100644 --- a/testdata/baselines/reference/submodule/conformance/typeGuardsWithInstanceOf.types.diff +++ b/testdata/baselines/reference/submodule/conformance/typeGuardsWithInstanceOf.types.diff @@ -8,29 +8,4 @@ +>validate : () => Record | null } - class C { -@@= skipped -30, +30 lines =@@ - >v : C - } - v // Validator & Partial via subtype reduction -->v : C | (Validator & Partial) -+>v : C | Validator & Partial - - // In 4.1, we introduced a change which _fixed_ a bug with CFA - // correctly setting this to be the right object. With 4.2, -@@= skipped -8, +8 lines =@@ - // before 4.1. - if (v.onChanges) { - >v.onChanges : any -->v : C | (Validator & Partial) -+>v : C | Validator & Partial - >onChanges : any - - v.onChanges({}); - >v.onChanges({}) : any - >v.onChanges : any -->v : C | (Validator & Partial) -+>v : C | Validator & Partial - >onChanges : any - >{} : {} - } \ No newline at end of file + class C { \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/unionTypeInference.types b/testdata/baselines/reference/submodule/conformance/unionTypeInference.types index dcdca54235..c89ff9ef84 100644 --- a/testdata/baselines/reference/submodule/conformance/unionTypeInference.types +++ b/testdata/baselines/reference/submodule/conformance/unionTypeInference.types @@ -214,26 +214,26 @@ async function fun(deepPromised: DeepPromised) { >deepPromised : DeepPromised for (const value of Object.values(deepPromisedWithIndexer)) { ->value : Promise<{ [containsPromises]?: true | undefined; } & {}> | {} | { [containsPromises]?: true | undefined; } & {} | null | undefined ->Object.values(deepPromisedWithIndexer) : (Promise<{ [containsPromises]?: true | undefined; } & {}> | {} | { [containsPromises]?: true | undefined; } & {} | null | undefined)[] +>value : Promise<{ [containsPromises]?: true | undefined; } & {}> | {} | ({ [containsPromises]?: true | undefined; } & {}) | null | undefined +>Object.values(deepPromisedWithIndexer) : (Promise<{ [containsPromises]?: true | undefined; } & {}> | {} | ({ [containsPromises]?: true | undefined; } & {}) | null | undefined)[] >Object.values : { (o: ArrayLike | { [s: string]: T_1; }): T_1[]; (o: {}): any[]; } >Object : ObjectConstructor >values : { (o: ArrayLike | { [s: string]: T_1; }): T_1[]; (o: {}): any[]; } >deepPromisedWithIndexer : DeepPromised<{ [name: string]: {} | null | undefined; }> const awaitedValue = await value; ->awaitedValue : {} | { [containsPromises]?: true | undefined; } & {} | null | undefined ->await value : {} | { [containsPromises]?: true | undefined; } & {} | null | undefined ->value : Promise<{ [containsPromises]?: true | undefined; } & {}> | {} | { [containsPromises]?: true | undefined; } & {} | null | undefined +>awaitedValue : {} | ({ [containsPromises]?: true | undefined; } & {}) | null | undefined +>await value : {} | ({ [containsPromises]?: true | undefined; } & {}) | null | undefined +>value : Promise<{ [containsPromises]?: true | undefined; } & {}> | {} | ({ [containsPromises]?: true | undefined; } & {}) | null | undefined if (awaitedValue) ->awaitedValue : {} | { [containsPromises]?: true | undefined; } & {} | null | undefined +>awaitedValue : {} | ({ [containsPromises]?: true | undefined; } & {}) | null | undefined await fun(awaitedValue); >await fun(awaitedValue) : void >fun(awaitedValue) : Promise >fun : (deepPromised: DeepPromised) => Promise ->awaitedValue : {} | { [containsPromises]?: true | undefined; } & {} +>awaitedValue : {} | ({ [containsPromises]?: true | undefined; } & {}) } } diff --git a/testdata/baselines/reference/submodule/conformance/unionTypeInference.types.diff b/testdata/baselines/reference/submodule/conformance/unionTypeInference.types.diff index 6fd6c70a8e..188adf556a 100644 --- a/testdata/baselines/reference/submodule/conformance/unionTypeInference.types.diff +++ b/testdata/baselines/reference/submodule/conformance/unionTypeInference.types.diff @@ -7,8 +7,8 @@ ->value : Promise<{ [containsPromises]?: true; } & {}> | {} | ({ [containsPromises]?: true; } & {}) | null | undefined ->Object.values(deepPromisedWithIndexer) : (Promise<{ [containsPromises]?: true; } & {}> | {} | ({ [containsPromises]?: true; } & {}) | null | undefined)[] ->Object.values : { (o: { [s: string]: T_1; } | ArrayLike): T_1[]; (o: {}): any[]; } -+>value : Promise<{ [containsPromises]?: true | undefined; } & {}> | {} | { [containsPromises]?: true | undefined; } & {} | null | undefined -+>Object.values(deepPromisedWithIndexer) : (Promise<{ [containsPromises]?: true | undefined; } & {}> | {} | { [containsPromises]?: true | undefined; } & {} | null | undefined)[] ++>value : Promise<{ [containsPromises]?: true | undefined; } & {}> | {} | ({ [containsPromises]?: true | undefined; } & {}) | null | undefined ++>Object.values(deepPromisedWithIndexer) : (Promise<{ [containsPromises]?: true | undefined; } & {}> | {} | ({ [containsPromises]?: true | undefined; } & {}) | null | undefined)[] +>Object.values : { (o: ArrayLike | { [s: string]: T_1; }): T_1[]; (o: {}): any[]; } >Object : ObjectConstructor ->values : { (o: { [s: string]: T_1; } | ArrayLike): T_1[]; (o: {}): any[]; } @@ -19,19 +19,19 @@ ->awaitedValue : {} | ({ [containsPromises]?: true; } & {}) | null | undefined ->await value : {} | ({ [containsPromises]?: true; } & {}) | null | undefined ->value : Promise<{ [containsPromises]?: true; } & {}> | {} | ({ [containsPromises]?: true; } & {}) | null | undefined -+>awaitedValue : {} | { [containsPromises]?: true | undefined; } & {} | null | undefined -+>await value : {} | { [containsPromises]?: true | undefined; } & {} | null | undefined -+>value : Promise<{ [containsPromises]?: true | undefined; } & {}> | {} | { [containsPromises]?: true | undefined; } & {} | null | undefined ++>awaitedValue : {} | ({ [containsPromises]?: true | undefined; } & {}) | null | undefined ++>await value : {} | ({ [containsPromises]?: true | undefined; } & {}) | null | undefined ++>value : Promise<{ [containsPromises]?: true | undefined; } & {}> | {} | ({ [containsPromises]?: true | undefined; } & {}) | null | undefined if (awaitedValue) ->awaitedValue : {} | ({ [containsPromises]?: true; } & {}) | null | undefined -+>awaitedValue : {} | { [containsPromises]?: true | undefined; } & {} | null | undefined ++>awaitedValue : {} | ({ [containsPromises]?: true | undefined; } & {}) | null | undefined await fun(awaitedValue); >await fun(awaitedValue) : void >fun(awaitedValue) : Promise >fun : (deepPromised: DeepPromised) => Promise ->awaitedValue : {} | ({ [containsPromises]?: true; } & {}) -+>awaitedValue : {} | { [containsPromises]?: true | undefined; } & {} ++>awaitedValue : {} | ({ [containsPromises]?: true | undefined; } & {}) } } diff --git a/testdata/baselines/reference/submodule/conformance/unknownControlFlow.types b/testdata/baselines/reference/submodule/conformance/unknownControlFlow.types index 8074685c37..a929dbeb30 100644 --- a/testdata/baselines/reference/submodule/conformance/unknownControlFlow.types +++ b/testdata/baselines/reference/submodule/conformance/unknownControlFlow.types @@ -344,14 +344,14 @@ function f23(x: T | undefined | null) { >undefined : undefined x; // T & {} | null ->x : T & {} | null +>x : (T & {}) | null } if (x !== null) { >x !== null : boolean >x : T | null | undefined x; // T & {} | undefined ->x : T & {} | undefined +>x : (T & {}) | undefined } if (x != undefined) { >x != undefined : boolean @@ -396,7 +396,7 @@ function f31(x: T) { >"object" : "object" x; // T & object | T & null ->x : T & null | T & object +>x : (T & null) | (T & object) } if (x && typeof x === "object") { >x && typeof x === "object" : boolean @@ -410,12 +410,12 @@ function f31(x: T) { >x : T & object } if (typeof x === "object" && x) { ->typeof x === "object" && x : false | T & null | T & object +>typeof x === "object" && x : false | (T & null) | (T & object) >typeof x === "object" : boolean >typeof x : "bigint" | "boolean" | "function" | "number" | "object" | "string" | "symbol" | "undefined" >x : T >"object" : "object" ->x : T & null | T & object +>x : (T & null) | (T & object) x; // T & object >x : T & object @@ -557,16 +557,16 @@ function f41(a: T) { >a : T let a3 = ensureNotNull(ensureNotNull(a)); // T & {} | T & undefined ->a3 : T & undefined | T & {} ->ensureNotNull(ensureNotNull(a)) : T & undefined | T & {} +>a3 : (T & undefined) | (T & {}) +>ensureNotNull(ensureNotNull(a)) : (T & undefined) | (T & {}) >ensureNotNull : (x: T_1) => T_1 & ({} | undefined) >ensureNotNull(a) : T & ({} | undefined) >ensureNotNull : (x: T_1) => T_1 & ({} | undefined) >a : T let a4 = ensureNotUndefined(ensureNotUndefined(a)); // T & {} | T & null ->a4 : T & null | T & {} ->ensureNotUndefined(ensureNotUndefined(a)) : T & null | T & {} +>a4 : (T & null) | (T & {}) +>ensureNotUndefined(ensureNotUndefined(a)) : (T & null) | (T & {}) >ensureNotUndefined : (x: T_1) => T_1 & ({} | null) >ensureNotUndefined(a) : T & ({} | null) >ensureNotUndefined : (x: T_1) => T_1 & ({} | null) @@ -581,32 +581,32 @@ function f41(a: T) { >a : T let a6 = ensureNotNull(possiblyNullOrUndefined(a)); // T & {} | undefined ->a6 : T & {} | undefined ->ensureNotNull(possiblyNullOrUndefined(a)) : T & {} | undefined +>a6 : (T & {}) | undefined +>ensureNotNull(possiblyNullOrUndefined(a)) : (T & {}) | undefined >ensureNotNull : (x: T_1) => T_1 & ({} | undefined) >possiblyNullOrUndefined(a) : T | null | undefined >possiblyNullOrUndefined : (x: T_1) => T_1 | null | undefined >a : T let a7 = ensureNotUndefined(possiblyNullOrUndefined(a)); // T & {} | null ->a7 : T & {} | null ->ensureNotUndefined(possiblyNullOrUndefined(a)) : T & {} | null +>a7 : (T & {}) | null +>ensureNotUndefined(possiblyNullOrUndefined(a)) : (T & {}) | null >ensureNotUndefined : (x: T_1) => T_1 & ({} | null) >possiblyNullOrUndefined(a) : T | null | undefined >possiblyNullOrUndefined : (x: T_1) => T_1 | null | undefined >a : T let a8 = ensureNotNull(possiblyUndefined(a)); // T & {} | undefined ->a8 : T & {} | undefined ->ensureNotNull(possiblyUndefined(a)) : T & {} | undefined +>a8 : (T & {}) | undefined +>ensureNotNull(possiblyUndefined(a)) : (T & {}) | undefined >ensureNotNull : (x: T_1) => T_1 & ({} | undefined) >possiblyUndefined(a) : T | undefined >possiblyUndefined : (x: T_1) => T_1 | undefined >a : T let a9 = ensureNotUndefined(possiblyNull(a)); // T & {} | null ->a9 : T & {} | null ->ensureNotUndefined(possiblyNull(a)) : T & {} | null +>a9 : (T & {}) | null +>ensureNotUndefined(possiblyNull(a)) : (T & {}) | null >ensureNotUndefined : (x: T_1) => T_1 & ({} | null) >possiblyNull(a) : T | null >possiblyNull : (x: T_1) => T_1 | null @@ -633,9 +633,9 @@ function deepEquals(a: T, b: T): boolean { >b : T >'object' : "object" >!a : boolean ->a : T & null | T & object +>a : (T & null) | (T & object) >!b : boolean ->b : T & null | T & object +>b : (T & null) | (T & object) return false; >false : false diff --git a/testdata/baselines/reference/submodule/conformance/unknownControlFlow.types.diff b/testdata/baselines/reference/submodule/conformance/unknownControlFlow.types.diff index 593d670144..e334c9b8af 100644 --- a/testdata/baselines/reference/submodule/conformance/unknownControlFlow.types.diff +++ b/testdata/baselines/reference/submodule/conformance/unknownControlFlow.types.diff @@ -9,122 +9,7 @@ >x : T | null | undefined if (x !== undefined) { -@@= skipped -9, +9 lines =@@ - >undefined : undefined - - x; // T & {} | null -->x : (T & {}) | null -+>x : T & {} | null - } - if (x !== null) { - >x !== null : boolean - >x : T | null | undefined - - x; // T & {} | undefined -->x : (T & {}) | undefined -+>x : T & {} | undefined - } - if (x != undefined) { - >x != undefined : boolean -@@= skipped -52, +52 lines =@@ - >"object" : "object" - - x; // T & object | T & null -->x : (T & null) | (T & object) -+>x : T & null | T & object - } - if (x && typeof x === "object") { - >x && typeof x === "object" : boolean -@@= skipped -14, +14 lines =@@ - >x : T & object - } - if (typeof x === "object" && x) { -->typeof x === "object" && x : false | (T & null) | (T & object) -+>typeof x === "object" && x : false | T & null | T & object - >typeof x === "object" : boolean - >typeof x : "bigint" | "boolean" | "function" | "number" | "object" | "string" | "symbol" | "undefined" - >x : T - >"object" : "object" -->x : (T & null) | (T & object) -+>x : T & null | T & object - - x; // T & object - >x : T & object -@@= skipped -147, +147 lines =@@ - >a : T - - let a3 = ensureNotNull(ensureNotNull(a)); // T & {} | T & undefined -->a3 : (T & undefined) | (T & {}) -->ensureNotNull(ensureNotNull(a)) : (T & undefined) | (T & {}) -+>a3 : T & undefined | T & {} -+>ensureNotNull(ensureNotNull(a)) : T & undefined | T & {} - >ensureNotNull : (x: T_1) => T_1 & ({} | undefined) - >ensureNotNull(a) : T & ({} | undefined) - >ensureNotNull : (x: T_1) => T_1 & ({} | undefined) - >a : T - - let a4 = ensureNotUndefined(ensureNotUndefined(a)); // T & {} | T & null -->a4 : (T & null) | (T & {}) -->ensureNotUndefined(ensureNotUndefined(a)) : (T & null) | (T & {}) -+>a4 : T & null | T & {} -+>ensureNotUndefined(ensureNotUndefined(a)) : T & null | T & {} - >ensureNotUndefined : (x: T_1) => T_1 & ({} | null) - >ensureNotUndefined(a) : T & ({} | null) - >ensureNotUndefined : (x: T_1) => T_1 & ({} | null) -@@= skipped -24, +24 lines =@@ - >a : T - - let a6 = ensureNotNull(possiblyNullOrUndefined(a)); // T & {} | undefined -->a6 : (T & {}) | undefined -->ensureNotNull(possiblyNullOrUndefined(a)) : (T & {}) | undefined -+>a6 : T & {} | undefined -+>ensureNotNull(possiblyNullOrUndefined(a)) : T & {} | undefined - >ensureNotNull : (x: T_1) => T_1 & ({} | undefined) - >possiblyNullOrUndefined(a) : T | null | undefined - >possiblyNullOrUndefined : (x: T_1) => T_1 | null | undefined - >a : T - - let a7 = ensureNotUndefined(possiblyNullOrUndefined(a)); // T & {} | null -->a7 : (T & {}) | null -->ensureNotUndefined(possiblyNullOrUndefined(a)) : (T & {}) | null -+>a7 : T & {} | null -+>ensureNotUndefined(possiblyNullOrUndefined(a)) : T & {} | null - >ensureNotUndefined : (x: T_1) => T_1 & ({} | null) - >possiblyNullOrUndefined(a) : T | null | undefined - >possiblyNullOrUndefined : (x: T_1) => T_1 | null | undefined - >a : T - - let a8 = ensureNotNull(possiblyUndefined(a)); // T & {} | undefined -->a8 : (T & {}) | undefined -->ensureNotNull(possiblyUndefined(a)) : (T & {}) | undefined -+>a8 : T & {} | undefined -+>ensureNotNull(possiblyUndefined(a)) : T & {} | undefined - >ensureNotNull : (x: T_1) => T_1 & ({} | undefined) - >possiblyUndefined(a) : T | undefined - >possiblyUndefined : (x: T_1) => T_1 | undefined - >a : T - - let a9 = ensureNotUndefined(possiblyNull(a)); // T & {} | null -->a9 : (T & {}) | null -->ensureNotUndefined(possiblyNull(a)) : (T & {}) | null -+>a9 : T & {} | null -+>ensureNotUndefined(possiblyNull(a)) : T & {} | null - >ensureNotUndefined : (x: T_1) => T_1 & ({} | null) - >possiblyNull(a) : T | null - >possiblyNull : (x: T_1) => T_1 | null -@@= skipped -52, +52 lines =@@ - >b : T - >'object' : "object" - >!a : boolean -->a : (T & null) | (T & object) -+>a : T & null | T & object - >!b : boolean -->b : (T & null) | (T & object) -+>b : T & null | T & object - - return false; - >false : false -@@= skipped -185, +185 lines =@@ +@@= skipped -483, +483 lines =@@ } function fx2(value: T & ({} | null)) { From 264347f51672ffe8630bf3089b842231711057de Mon Sep 17 00:00:00 2001 From: Sheetal Nandi Date: Thu, 19 Jun 2025 15:26:26 -0700 Subject: [PATCH 06/15] Watch type reference locations too and handle auto type refs (#1239) --- internal/compiler/fileloader.go | 36 ++++++++++++++++++----- internal/compiler/parsetask.go | 28 +++++++++++++----- internal/compiler/program.go | 4 +++ internal/module/types.go | 8 +++++ internal/project/project.go | 52 ++++++++++++++++++++------------- 5 files changed, 92 insertions(+), 36 deletions(-) diff --git a/internal/compiler/fileloader.go b/internal/compiler/fileloader.go index d39c5b74e5..4d20561070 100644 --- a/internal/compiler/fileloader.go +++ b/internal/compiler/fileloader.go @@ -113,10 +113,16 @@ func processAllProgramFiles( var unsupportedExtensions []string loader.parseTasks.collect(&loader, loader.rootTasks, func(task *parseTask, _ []tspath.Path) { - file := task.file if task.isRedirected { return } + + if task.isForAutomaticTypeDirective { + typeResolutionsInFile[task.path] = task.typeResolutionsInFile + return + } + file := task.file + path := task.path if file == nil { missingFiles = append(missingFiles, task.normalizedFilePath) return @@ -126,7 +132,6 @@ func processAllProgramFiles( } else { files = append(files, file) } - path := file.Path() filesByPath[path] = file resolvedModules[path] = task.resolutionsInFile @@ -189,14 +194,31 @@ func (p *fileLoader) addAutomaticTypeDirectiveTasks() { containingDirectory = p.opts.Host.GetCurrentDirectory() } containingFileName := tspath.CombinePaths(containingDirectory, module.InferredTypesContainingFile) + p.rootTasks = append(p.rootTasks, &parseTask{normalizedFilePath: containingFileName, isLib: false, isForAutomaticTypeDirective: true}) +} - automaticTypeDirectiveNames := module.GetAutomaticTypeDirectiveNames(compilerOptions, p.opts.Host) - for _, name := range automaticTypeDirectiveNames { - resolved := p.resolver.ResolveTypeReferenceDirective(name, containingFileName, core.ModuleKindNodeNext, nil) - if resolved.IsResolved() { - p.rootTasks = append(p.rootTasks, &parseTask{normalizedFilePath: resolved.ResolvedFileName, isLib: false}) +func (p *fileLoader) resolveAutomaticTypeDirectives(containingFileName string) ( + toParse []resolvedRef, + typeResolutionsInFile module.ModeAwareCache[*module.ResolvedTypeReferenceDirective], +) { + automaticTypeDirectiveNames := module.GetAutomaticTypeDirectiveNames(p.opts.Config.CompilerOptions(), p.opts.Host) + if len(automaticTypeDirectiveNames) != 0 { + toParse = make([]resolvedRef, 0, len(automaticTypeDirectiveNames)) + typeResolutionsInFile = make(module.ModeAwareCache[*module.ResolvedTypeReferenceDirective], len(automaticTypeDirectiveNames)) + for _, name := range automaticTypeDirectiveNames { + resolutionMode := core.ModuleKindNodeNext + resolved := p.resolver.ResolveTypeReferenceDirective(name, containingFileName, resolutionMode, nil) + typeResolutionsInFile[module.ModeAwareCacheKey{Name: name, Mode: resolutionMode}] = resolved + if resolved.IsResolved() { + toParse = append(toParse, resolvedRef{ + fileName: resolved.ResolvedFileName, + increaseDepth: resolved.IsExternalLibraryImport, + elideOnDepth: false, + }) + } } } + return toParse, typeResolutionsInFile } func (p *fileLoader) addProjectReferenceTasks() { diff --git a/internal/compiler/parsetask.go b/internal/compiler/parsetask.go index fab536949f..5ff235e239 100644 --- a/internal/compiler/parsetask.go +++ b/internal/compiler/parsetask.go @@ -9,13 +9,14 @@ import ( ) type parseTask struct { - normalizedFilePath string - path tspath.Path - file *ast.SourceFile - isLib bool - isRedirected bool - subTasks []*parseTask - loaded bool + normalizedFilePath string + path tspath.Path + file *ast.SourceFile + isLib bool + isRedirected bool + subTasks []*parseTask + loaded bool + isForAutomaticTypeDirective bool metadata ast.SourceFileMetaData resolutionsInFile module.ModeAwareCache[*module.ResolvedModule] @@ -36,8 +37,11 @@ func (t *parseTask) Path() tspath.Path { func (t *parseTask) load(loader *fileLoader) { t.loaded = true - t.path = loader.toPath(t.normalizedFilePath) + if t.isForAutomaticTypeDirective { + t.loadAutomaticTypeDirectives(loader) + return + } redirect := loader.projectReferenceFileMapper.getParseFileRedirect(t) if redirect != "" { t.redirect(loader, redirect) @@ -97,6 +101,14 @@ func (t *parseTask) redirect(loader *fileLoader, fileName string) { t.subTasks = []*parseTask{{normalizedFilePath: tspath.NormalizePath(fileName), isLib: t.isLib}} } +func (t *parseTask) loadAutomaticTypeDirectives(loader *fileLoader) { + toParseTypeRefs, typeResolutionsInFile := loader.resolveAutomaticTypeDirectives(t.normalizedFilePath) + t.typeResolutionsInFile = typeResolutionsInFile + for _, typeResolution := range toParseTypeRefs { + t.addSubTask(typeResolution, false) + } +} + type resolvedRef struct { fileName string increaseDepth bool diff --git a/internal/compiler/program.go b/internal/compiler/program.go index 8928bba703..0b0a2a62bd 100644 --- a/internal/compiler/program.go +++ b/internal/compiler/program.go @@ -813,6 +813,10 @@ func (p *Program) GetResolvedTypeReferenceDirectiveFromTypeReferenceDirective(ty return nil } +func (p *Program) GetResolvedTypeReferenceDirectives() map[tspath.Path]module.ModeAwareCache[*module.ResolvedTypeReferenceDirective] { + return p.typeResolutionsInFile +} + func (p *Program) getModeForTypeReferenceDirectiveInFile(ref *ast.FileReference, sourceFile *ast.SourceFile) core.ResolutionMode { if ref.ResolutionMode != core.ResolutionModeNone { return ref.ResolutionMode diff --git a/internal/module/types.go b/internal/module/types.go index 5077d6e568..d0acc036da 100644 --- a/internal/module/types.go +++ b/internal/module/types.go @@ -81,6 +81,10 @@ func (r *ResolvedModule) IsResolved() bool { return r != nil && r.ResolvedFileName != "" } +func (r *ResolvedModule) GetLookupLocations() *LookupLocations { + return &r.LookupLocations +} + type ResolvedTypeReferenceDirective struct { LookupLocations Primary bool @@ -94,6 +98,10 @@ func (r *ResolvedTypeReferenceDirective) IsResolved() bool { return r.ResolvedFileName != "" } +func (r *ResolvedTypeReferenceDirective) GetLookupLocations() *LookupLocations { + return &r.LookupLocations +} + type extensions int32 const ( diff --git a/internal/project/project.go b/internal/project/project.go index 6bd7227b85..51dea44d06 100644 --- a/internal/project/project.go +++ b/internal/project/project.go @@ -347,37 +347,47 @@ func (p *Project) GetLanguageServiceForRequest(ctx context.Context) (*ls.Languag return languageService, cleanup } -func (p *Project) getModuleResolutionWatchGlobs() (failedLookups map[tspath.Path]string, affectingLocaions map[tspath.Path]string) { - failedLookups = make(map[tspath.Path]string) - affectingLocaions = make(map[tspath.Path]string) - for _, resolvedModulesInFile := range p.program.GetResolvedModules() { +func (p *Project) updateModuleResolutionWatches(ctx context.Context) { + client := p.Client() + if !p.host.IsWatchEnabled() || client == nil { + return + } + + failedLookups := make(map[tspath.Path]string) + affectingLocations := make(map[tspath.Path]string) + extractLookups(p, failedLookups, affectingLocations, p.program.GetResolvedModules()) + extractLookups(p, failedLookups, affectingLocations, p.program.GetResolvedTypeReferenceDirectives()) + + p.failedLookupsWatch.update(ctx, failedLookups) + p.affectingLocationsWatch.update(ctx, affectingLocations) +} + +type ResolutionWithLookupLocations interface { + GetLookupLocations() *module.LookupLocations +} + +func extractLookups[T ResolutionWithLookupLocations]( + p *Project, + failedLookups map[tspath.Path]string, + affectingLocations map[tspath.Path]string, + cache map[tspath.Path]module.ModeAwareCache[T], +) { + for _, resolvedModulesInFile := range cache { for _, resolvedModule := range resolvedModulesInFile { - for _, failedLookupLocation := range resolvedModule.FailedLookupLocations { + for _, failedLookupLocation := range resolvedModule.GetLookupLocations().FailedLookupLocations { path := p.toPath(failedLookupLocation) if _, ok := failedLookups[path]; !ok { failedLookups[path] = failedLookupLocation } } - for _, affectingLocation := range resolvedModule.AffectingLocations { + for _, affectingLocation := range resolvedModule.GetLookupLocations().AffectingLocations { path := p.toPath(affectingLocation) - if _, ok := affectingLocaions[path]; !ok { - affectingLocaions[path] = affectingLocation + if _, ok := affectingLocations[path]; !ok { + affectingLocations[path] = affectingLocation } } } } - return failedLookups, affectingLocaions -} - -func (p *Project) updateWatchers(ctx context.Context) { - client := p.Client() - if !p.host.IsWatchEnabled() || client == nil { - return - } - - failedLookupGlobs, affectingLocationGlobs := p.getModuleResolutionWatchGlobs() - p.failedLookupsWatch.update(ctx, failedLookupGlobs) - p.affectingLocationsWatch.update(ctx, affectingLocationGlobs) } // onWatchEventForNilScriptInfo is fired for watch events that are not the @@ -530,7 +540,7 @@ func (p *Project) updateGraph() (*compiler.Program, bool) { p.enqueueInstallTypingsForProject(oldProgram, hasAddedOrRemovedFiles) // TODO: this is currently always synchronously called by some kind of updating request, // but in Strada we throttle, so at least sometimes this should be considered top-level? - p.updateWatchers(context.TODO()) + p.updateModuleResolutionWatches(context.TODO()) } p.Logf("Finishing updateGraph: Project: %s version: %d in %s", p.name, p.version, time.Since(start)) return p.program, true From 652b18c4bd74ecd4bb9d18c44fbaf39d69aa4cc6 Mon Sep 17 00:00:00 2001 From: Max Schwenk Date: Thu, 19 Jun 2025 20:20:29 -0400 Subject: [PATCH 07/15] Port IsSourceFileFromExternalLibrary, fix node18 emit (#1234) Co-authored-by: Jake Bailey <5341706+jakebailey@users.noreply.github.com> --- internal/ast/utilities.go | 2 +- internal/compiler/emitHost.go | 4 + internal/compiler/emitter.go | 6 +- internal/compiler/fileloader.go | 104 ++++--- internal/compiler/fileloadertask.go | 46 ++- internal/compiler/parsetask.go | 50 +-- internal/compiler/program.go | 4 + .../compiler/projectreferenceparsetask.go | 10 + internal/printer/emithost.go | 1 + internal/project/project.go | 1 + internal/transformers/transformer.go | 1 + .../moduleAugmentationInDependency2.js | 3 + .../moduleAugmentationInDependency2.js.diff | 12 - ...moduleNodeDefaultImports(module=node18).js | 41 ++- ...eNodeDefaultImports(module=node18).js.diff | 54 ---- ...NonRelativeWithoutExtensionResolvesToTs.js | 5 +- ...lativeWithoutExtensionResolvesToTs.js.diff | 11 +- ...arationFileForTsJsImport(module=node18).js | 3 +- ...onFileForTsJsImport(module=node18).js.diff | 9 - ...rbitraryextensions=false,module=node18).js | 6 +- ...aryextensions=false,module=node18).js.diff | 13 - ...arbitraryextensions=true,module=node18).js | 6 +- ...raryextensions=true,module=node18).js.diff | 13 - .../importAttributes6(module=node18).js | 3 +- .../importAttributes6(module=node18).js.diff | 9 - ...olutionWithoutExtension3(module=node18).js | 3 +- ...onWithoutExtension3(module=node18).js.diff | 9 - ...olutionWithoutExtension4(module=node18).js | 3 +- ...onWithoutExtension4(module=node18).js.diff | 9 - ...deAllowJsPackageSelfName(module=node18).js | 8 +- ...owJsPackageSelfName(module=node18).js.diff | 17 +- .../nodeModules1(module=node18).js | 170 +++++----- .../nodeModules1(module=node18).js.diff | 289 +---------------- .../nodeModulesAllowJs1(module=node18).js | 170 +++++----- ...nodeModulesAllowJs1(module=node18).js.diff | 291 +----------------- ...onditionalPackageExports(module=node18).js | 32 +- ...ionalPackageExports(module=node18).js.diff | 55 +--- ...ulesAllowJsDynamicImport(module=node18).js | 5 +- ...llowJsDynamicImport(module=node18).js.diff | 13 +- ...sAllowJsExportAssignment(module=node18).js | 7 +- ...wJsExportAssignment(module=node18).js.diff | 53 ++-- ...sGeneratedNameCollisions(module=node18).js | 9 +- ...ratedNameCollisions(module=node18).js.diff | 45 +-- ...sAllowJsImportAssignment(module=node18).js | 18 +- ...wJsImportAssignment(module=node18).js.diff | 44 +-- ...ImportHelpersCollisions1(module=node18).js | 8 +- ...tHelpersCollisions1(module=node18).js.diff | 12 +- ...ImportHelpersCollisions2(module=node18).js | 8 +- ...tHelpersCollisions2(module=node18).js.diff | 31 +- ...ImportHelpersCollisions3(module=node18).js | 12 +- ...tHelpersCollisions3(module=node18).js.diff | 30 +- ...ModulesAllowJsImportMeta(module=node18).js | 5 +- ...esAllowJsImportMeta(module=node18).js.diff | 26 +- ...lesAllowJsPackageExports(module=node18).js | 28 +- ...lowJsPackageExports(module=node18).js.diff | 47 +-- ...lesAllowJsPackageImports(module=node18).js | 16 +- ...lowJsPackageImports(module=node18).js.diff | 29 +- ...wJsPackagePatternExports(module=node18).js | 16 +- ...ckagePatternExports(module=node18).js.diff | 29 +- ...agePatternExportsExclude(module=node18).js | 16 +- ...tternExportsExclude(module=node18).js.diff | 29 +- ...gePatternExportsTrailers(module=node18).js | 16 +- ...ternExportsTrailers(module=node18).js.diff | 29 +- ...wJsSynchronousCallErrors(module=node18).js | 17 +- ...nchronousCallErrors(module=node18).js.diff | 29 +- ...ulesAllowJsTopLevelAwait(module=node18).js | 5 +- ...llowJsTopLevelAwait(module=node18).js.diff | 13 +- ...rmatFileAlwaysHasDefault(module=node18).js | 6 +- ...ileAlwaysHasDefault(module=node18).js.diff | 12 +- ...onditionalPackageExports(module=node18).js | 32 +- ...ionalPackageExports(module=node18).js.diff | 55 +--- ...ImportWithPackageExports(module=node18).js | 42 +-- ...tWithPackageExports(module=node18).js.diff | 63 +--- ...onEmitWithPackageExports(module=node18).js | 54 ++-- ...tWithPackageExports(module=node18).js.diff | 66 +--- ...nodeModulesDynamicImport(module=node18).js | 5 +- ...odulesDynamicImport(module=node18).js.diff | 13 +- ...ModulesExportAssignments(module=node18).js | 3 +- ...esExportAssignments(module=node18).js.diff | 10 +- ...locksSpecifierResolution(module=node18).js | 5 +- ...SpecifierResolution(module=node18).js.diff | 9 +- ...portsBlocksTypesVersions(module=node18).js | 3 +- ...BlocksTypesVersions(module=node18).js.diff | 9 - ...deModulesExportsSourceTs(module=node16).js | 13 + ...ulesExportsSourceTs(module=node16).js.diff | 25 +- ...deModulesExportsSourceTs(module=node18).js | 18 +- ...ulesExportsSourceTs(module=node18).js.diff | 34 +- ...ModulesExportsSourceTs(module=nodenext).js | 13 + ...esExportsSourceTs(module=nodenext).js.diff | 25 +- ...fierGenerationConditions(module=node18).js | 5 +- ...enerationConditions(module=node18).js.diff | 14 - ...ifierGenerationDirectory(module=node18).js | 5 +- ...GenerationDirectory(module=node18).js.diff | 14 - ...ecifierGenerationPattern(module=node18).js | 5 +- ...erGenerationPattern(module=node18).js.diff | 14 - ...odeModulesForbidenSyntax(module=node18).js | 30 +- ...dulesForbidenSyntax(module=node18).js.diff | 134 +------- ...sGeneratedNameCollisions(module=node18).js | 9 +- ...ratedNameCollisions(module=node18).js.diff | 21 +- ...eModulesImportAssertions(module=node18).js | 3 +- ...lesImportAssertions(module=node18).js.diff | 12 - ...ModulesImportAssignments(module=node18).js | 18 +- ...esImportAssignments(module=node18).js.diff | 34 -- ...eModulesImportAttributes(module=node18).js | 3 +- ...lesImportAttributes(module=node18).js.diff | 12 - ...utesModeDeclarationEmit2(module=node18).js | 3 +- ...odeDeclarationEmit2(module=node18).js.diff | 12 - ...sImportHelpersCollisions(module=node18).js | 8 +- ...rtHelpersCollisions(module=node18).js.diff | 12 +- ...ImportHelpersCollisions2(module=node18).js | 8 +- ...tHelpersCollisions2(module=node18).js.diff | 31 +- ...ImportHelpersCollisions3(module=node18).js | 6 +- ...tHelpersCollisions3(module=node18).js.diff | 25 +- .../nodeModulesImportMeta(module=node18).js | 5 +- ...deModulesImportMeta(module=node18).js.diff | 12 +- ...portModeDeclarationEmit2(module=node18).js | 3 +- ...odeDeclarationEmit2(module=node18).js.diff | 12 - ...portResolutionIntoExport(module=node18).js | 8 +- ...esolutionIntoExport(module=node18).js.diff | 15 +- ...sImportResolutionNoCycle(module=node18).js | 8 +- ...rtResolutionNoCycle(module=node18).js.diff | 17 +- ...odeModulesPackageExports(module=node18).js | 28 +- ...dulesPackageExports(module=node18).js.diff | 47 +-- ...odeModulesPackageImports(module=node18).js | 16 +- ...dulesPackageImports(module=node18).js.diff | 29 +- ...lesPackagePatternExports(module=node18).js | 16 +- ...ckagePatternExports(module=node18).js.diff | 29 +- ...agePatternExportsExclude(module=node18).js | 28 +- ...tternExportsExclude(module=node18).js.diff | 47 +-- ...gePatternExportsTrailers(module=node18).js | 16 +- ...ternExportsTrailers(module=node18).js.diff | 29 +- ...ModulesResolveJsonModule(module=node18).js | 26 +- ...esResolveJsonModule(module=node18).js.diff | 35 +-- ...lesSynchronousCallErrors(module=node18).js | 9 +- ...nchronousCallErrors(module=node18).js.diff | 20 -- ...nodeModulesTopLevelAwait(module=node18).js | 5 +- ...odulesTopLevelAwait(module=node18).js.diff | 13 +- ...enceModeDeclarationEmit2(module=node18).js | 3 +- ...odeDeclarationEmit2(module=node18).js.diff | 9 +- ...enceModeDeclarationEmit3(module=node18).js | 3 +- ...odeDeclarationEmit3(module=node18).js.diff | 9 +- ...enceModeDeclarationEmit7(module=node18).js | 12 +- ...odeDeclarationEmit7(module=node18).js.diff | 27 +- ...shReferenceModeOverride2(module=node18).js | 3 +- ...erenceModeOverride2(module=node18).js.diff | 12 - ...shReferenceModeOverride3(module=node18).js | 3 +- ...erenceModeOverride3(module=node18).js.diff | 12 - ...pesVersionPackageExports(module=node18).js | 8 +- ...rsionPackageExports(module=node18).js.diff | 17 +- .../nodePackageSelfName(module=node18).js | 8 +- ...nodePackageSelfName(module=node18).js.diff | 17 +- ...odePackageSelfNameScoped(module=node18).js | 8 +- ...ckageSelfNameScoped(module=node18).js.diff | 17 +- .../nonTSExtensions(module=node18).js | 3 +- .../nonTSExtensions(module=node18).js.diff | 9 - ...packageJsonImportsErrors(module=node18).js | 14 +- ...geJsonImportsErrors(module=node18).js.diff | 22 -- ...typeOnlyESMImportFromCJS(module=node18).js | 3 +- ...nlyESMImportFromCJS(module=node18).js.diff | 12 - 159 files changed, 797 insertions(+), 2978 deletions(-) delete mode 100644 testdata/baselines/reference/submodule/compiler/moduleAugmentationInDependency2.js.diff delete mode 100644 testdata/baselines/reference/submodule/compiler/moduleNodeDefaultImports(module=node18).js.diff delete mode 100644 testdata/baselines/reference/submodule/conformance/declarationFileForTsJsImport(module=node18).js.diff delete mode 100644 testdata/baselines/reference/submodule/conformance/declarationFilesForNodeNativeModules(allowarbitraryextensions=false,module=node18).js.diff delete mode 100644 testdata/baselines/reference/submodule/conformance/declarationFilesForNodeNativeModules(allowarbitraryextensions=true,module=node18).js.diff delete mode 100644 testdata/baselines/reference/submodule/conformance/importAttributes6(module=node18).js.diff delete mode 100644 testdata/baselines/reference/submodule/conformance/moduleResolutionWithoutExtension3(module=node18).js.diff delete mode 100644 testdata/baselines/reference/submodule/conformance/moduleResolutionWithoutExtension4(module=node18).js.diff delete mode 100644 testdata/baselines/reference/submodule/conformance/nodeModulesExportsBlocksTypesVersions(module=node18).js.diff delete mode 100644 testdata/baselines/reference/submodule/conformance/nodeModulesExportsSpecifierGenerationConditions(module=node18).js.diff delete mode 100644 testdata/baselines/reference/submodule/conformance/nodeModulesExportsSpecifierGenerationDirectory(module=node18).js.diff delete mode 100644 testdata/baselines/reference/submodule/conformance/nodeModulesExportsSpecifierGenerationPattern(module=node18).js.diff delete mode 100644 testdata/baselines/reference/submodule/conformance/nodeModulesImportAssertions(module=node18).js.diff delete mode 100644 testdata/baselines/reference/submodule/conformance/nodeModulesImportAssignments(module=node18).js.diff delete mode 100644 testdata/baselines/reference/submodule/conformance/nodeModulesImportAttributes(module=node18).js.diff delete mode 100644 testdata/baselines/reference/submodule/conformance/nodeModulesImportAttributesModeDeclarationEmit2(module=node18).js.diff delete mode 100644 testdata/baselines/reference/submodule/conformance/nodeModulesImportModeDeclarationEmit2(module=node18).js.diff delete mode 100644 testdata/baselines/reference/submodule/conformance/nodeModulesSynchronousCallErrors(module=node18).js.diff delete mode 100644 testdata/baselines/reference/submodule/conformance/nodeModulesTripleSlashReferenceModeOverride2(module=node18).js.diff delete mode 100644 testdata/baselines/reference/submodule/conformance/nodeModulesTripleSlashReferenceModeOverride3(module=node18).js.diff delete mode 100644 testdata/baselines/reference/submodule/conformance/nonTSExtensions(module=node18).js.diff delete mode 100644 testdata/baselines/reference/submodule/conformance/packageJsonImportsErrors(module=node18).js.diff delete mode 100644 testdata/baselines/reference/submodule/conformance/typeOnlyESMImportFromCJS(module=node18).js.diff diff --git a/internal/ast/utilities.go b/internal/ast/utilities.go index 6e6fdad7c2..248db74ab3 100644 --- a/internal/ast/utilities.go +++ b/internal/ast/utilities.go @@ -1611,7 +1611,7 @@ func IsEffectiveExternalModule(node *SourceFile, compilerOptions *core.CompilerO } func isCommonJSContainingModuleKind(kind core.ModuleKind) bool { - return kind == core.ModuleKindCommonJS || kind == core.ModuleKindNode16 || kind == core.ModuleKindNodeNext + return kind == core.ModuleKindCommonJS || core.ModuleKindNode16 <= kind && kind <= core.ModuleKindNodeNext } func IsExternalModuleIndicator(node *Statement) bool { diff --git a/internal/compiler/emitHost.go b/internal/compiler/emitHost.go index 3fa146826c..a2d450abe7 100644 --- a/internal/compiler/emitHost.go +++ b/internal/compiler/emitHost.go @@ -124,3 +124,7 @@ func (host *emitHost) GetEmitResolver(file *ast.SourceFile, skipDiagnostics bool defer done() return checker.GetEmitResolver(file, skipDiagnostics) } + +func (host *emitHost) IsSourceFileFromExternalLibrary(file *ast.SourceFile) bool { + return host.program.IsSourceFileFromExternalLibrary(file) +} diff --git a/internal/compiler/emitter.go b/internal/compiler/emitter.go index b8a91a6609..a01185fea7 100644 --- a/internal/compiler/emitter.go +++ b/internal/compiler/emitter.go @@ -2,7 +2,6 @@ package compiler import ( "encoding/base64" - "strings" "github.com/microsoft/typescript-go/internal/ast" "github.com/microsoft/typescript-go/internal/core" @@ -305,10 +304,7 @@ func sourceFileMayBeEmitted(sourceFile *ast.SourceFile, host printer.EmitHost, f return false } - // !!! Source file from node_modules are not emitted. In Strada, this depends on module resolution and uses - // `sourceFilesFoundSearchingNodeModules` in `createProgram`. For now, we will just check for `/node_modules/` in - // the file name. - if strings.Contains(sourceFile.FileName(), "/node_modules/") { + if host.IsSourceFileFromExternalLibrary(sourceFile) { return false } diff --git a/internal/compiler/fileloader.go b/internal/compiler/fileloader.go index 4d20561070..40f45b408d 100644 --- a/internal/compiler/fileloader.go +++ b/internal/compiler/fileloader.go @@ -49,7 +49,8 @@ type processedFiles struct { jsxRuntimeImportSpecifiers map[tspath.Path]*jsxRuntimeImportSpecifier importHelpersImportSpecifiers map[tspath.Path]*ast.Node // List of present unsupported extensions - unsupportedExtensions []string + unsupportedExtensions []string + sourceFilesFoundSearchingNodeModules collections.Set[tspath.Path] } type jsxRuntimeImportSpecifier struct { @@ -111,6 +112,7 @@ func processAllProgramFiles( var jsxRuntimeImportSpecifiers map[tspath.Path]*jsxRuntimeImportSpecifier var importHelpersImportSpecifiers map[tspath.Path]*ast.Node var unsupportedExtensions []string + var sourceFilesFoundSearchingNodeModules collections.Set[tspath.Path] loader.parseTasks.collect(&loader, loader.rootTasks, func(task *parseTask, _ []tspath.Path) { if task.isRedirected { @@ -153,22 +155,26 @@ func processAllProgramFiles( if slices.Contains(tspath.SupportedJSExtensionsFlat, extension) { unsupportedExtensions = core.AppendIfUnique(unsupportedExtensions, extension) } + if task.fromExternalLibrary { + sourceFilesFoundSearchingNodeModules.Add(path) + } }) loader.sortLibs(libFiles) allFiles := append(libFiles, files...) return processedFiles{ - resolver: loader.resolver, - files: allFiles, - filesByPath: filesByPath, - projectReferenceFileMapper: loader.projectReferenceFileMapper, - resolvedModules: resolvedModules, - typeResolutionsInFile: typeResolutionsInFile, - sourceFileMetaDatas: sourceFileMetaDatas, - jsxRuntimeImportSpecifiers: jsxRuntimeImportSpecifiers, - importHelpersImportSpecifiers: importHelpersImportSpecifiers, - unsupportedExtensions: unsupportedExtensions, + resolver: loader.resolver, + files: allFiles, + filesByPath: filesByPath, + projectReferenceFileMapper: loader.projectReferenceFileMapper, + resolvedModules: resolvedModules, + typeResolutionsInFile: typeResolutionsInFile, + sourceFileMetaDatas: sourceFileMetaDatas, + jsxRuntimeImportSpecifiers: jsxRuntimeImportSpecifiers, + importHelpersImportSpecifiers: importHelpersImportSpecifiers, + unsupportedExtensions: unsupportedExtensions, + sourceFilesFoundSearchingNodeModules: sourceFilesFoundSearchingNodeModules, } } @@ -180,7 +186,7 @@ func (p *fileLoader) addRootTasks(files []string, isLib bool) { for _, fileName := range files { absPath := tspath.GetNormalizedAbsolutePath(fileName, p.opts.Host.GetCurrentDirectory()) if core.Tristate.IsTrue(p.opts.Config.CompilerOptions().AllowNonTsExtensions) || slices.Contains(p.supportedExtensions, tspath.TryGetExtensionFromPath(absPath)) { - p.rootTasks = append(p.rootTasks, &parseTask{normalizedFilePath: absPath, isLib: isLib}) + p.rootTasks = append(p.rootTasks, &parseTask{normalizedFilePath: absPath, isLib: isLib, root: true}) } } } @@ -327,38 +333,38 @@ func (p *fileLoader) resolveTripleslashPathReference(moduleName string, containi } } -func (p *fileLoader) resolveTypeReferenceDirectives(file *ast.SourceFile, meta ast.SourceFileMetaData) ( - toParse []resolvedRef, - typeResolutionsInFile module.ModeAwareCache[*module.ResolvedTypeReferenceDirective], -) { - if len(file.TypeReferenceDirectives) != 0 { - toParse = make([]resolvedRef, 0, len(file.TypeReferenceDirectives)) - typeResolutionsInFile = make(module.ModeAwareCache[*module.ResolvedTypeReferenceDirective], len(file.TypeReferenceDirectives)) - for _, ref := range file.TypeReferenceDirectives { - redirect := p.projectReferenceFileMapper.getRedirectForResolution(file) - resolutionMode := getModeForTypeReferenceDirectiveInFile(ref, file, meta, module.GetCompilerOptionsWithRedirect(p.opts.Config.CompilerOptions(), redirect)) - resolved := p.resolver.ResolveTypeReferenceDirective(ref.FileName, file.FileName(), resolutionMode, redirect) - typeResolutionsInFile[module.ModeAwareCacheKey{Name: ref.FileName, Mode: resolutionMode}] = resolved - if resolved.IsResolved() { - toParse = append(toParse, resolvedRef{ - fileName: resolved.ResolvedFileName, - increaseDepth: resolved.IsExternalLibraryImport, - elideOnDepth: false, - }) - } +func (p *fileLoader) resolveTypeReferenceDirectives(t *parseTask) { + file := t.file + if len(file.TypeReferenceDirectives) == 0 { + return + } + meta := t.metadata + + typeResolutionsInFile := make(module.ModeAwareCache[*module.ResolvedTypeReferenceDirective], len(file.TypeReferenceDirectives)) + for _, ref := range file.TypeReferenceDirectives { + redirect := p.projectReferenceFileMapper.getRedirectForResolution(file) + resolutionMode := getModeForTypeReferenceDirectiveInFile(ref, file, meta, module.GetCompilerOptionsWithRedirect(p.opts.Config.CompilerOptions(), redirect)) + resolved := p.resolver.ResolveTypeReferenceDirective(ref.FileName, file.FileName(), resolutionMode, redirect) + typeResolutionsInFile[module.ModeAwareCacheKey{Name: ref.FileName, Mode: resolutionMode}] = resolved + if resolved.IsResolved() { + t.addSubTask(resolvedRef{ + fileName: resolved.ResolvedFileName, + increaseDepth: resolved.IsExternalLibraryImport, + elideOnDepth: false, + isFromExternalLibrary: resolved.IsExternalLibraryImport, + }, false) } } - return toParse, typeResolutionsInFile + + t.typeResolutionsInFile = typeResolutionsInFile } const externalHelpersModuleNameText = "tslib" // TODO(jakebailey): dedupe -func (p *fileLoader) resolveImportsAndModuleAugmentations(file *ast.SourceFile, meta ast.SourceFileMetaData) ( - toParse []resolvedRef, - resolutionsInFile module.ModeAwareCache[*module.ResolvedModule], - importHelpersImportSpecifier *ast.Node, - jsxRuntimeImportSpecifier_ *jsxRuntimeImportSpecifier, -) { +func (p *fileLoader) resolveImportsAndModuleAugmentations(t *parseTask) { + file := t.file + meta := t.metadata + moduleNames := make([]*ast.Node, 0, len(file.Imports())+len(file.ModuleAugmentations)+2) isJavaScriptFile := ast.IsSourceFileJS(file) @@ -370,14 +376,14 @@ func (p *fileLoader) resolveImportsAndModuleAugmentations(file *ast.SourceFile, if optionsForFile.ImportHelpers.IsTrue() { specifier := p.createSyntheticImport(externalHelpersModuleNameText, file) moduleNames = append(moduleNames, specifier) - importHelpersImportSpecifier = specifier + t.importHelpersImportSpecifier = specifier } jsxImport := ast.GetJSXRuntimeImport(ast.GetJSXImplicitImportBase(optionsForFile, file), optionsForFile) if jsxImport != "" { specifier := p.createSyntheticImport(jsxImport, file) moduleNames = append(moduleNames, specifier) - jsxRuntimeImportSpecifier_ = &jsxRuntimeImportSpecifier{ + t.jsxRuntimeImportSpecifier = &jsxRuntimeImportSpecifier{ moduleReference: jsxImport, specifier: specifier, } @@ -395,8 +401,7 @@ func (p *fileLoader) resolveImportsAndModuleAugmentations(file *ast.SourceFile, } if len(moduleNames) != 0 { - toParse = make([]resolvedRef, 0, len(moduleNames)) - resolutionsInFile = make(module.ModeAwareCache[*module.ResolvedModule], len(moduleNames)) + resolutionsInFile := make(module.ModeAwareCache[*module.ResolvedModule], len(moduleNames)) for index, entry := range moduleNames { moduleName := entry.Text() @@ -433,16 +438,17 @@ func (p *fileLoader) resolveImportsAndModuleAugmentations(file *ast.SourceFile, (importIndex < 0 || (importIndex < len(file.Imports()) && (ast.IsInJSFile(file.Imports()[importIndex]) || file.Imports()[importIndex].Flags&ast.NodeFlagsJSDoc == 0))) if shouldAddFile { - toParse = append(toParse, resolvedRef{ - fileName: resolvedFileName, - increaseDepth: resolvedModule.IsExternalLibraryImport, - elideOnDepth: isJsFileFromNodeModules, - }) + t.addSubTask(resolvedRef{ + fileName: resolvedFileName, + increaseDepth: resolvedModule.IsExternalLibraryImport, + elideOnDepth: isJsFileFromNodeModules, + isFromExternalLibrary: resolvedModule.IsExternalLibraryImport, + }, false) } } - } - return toParse, resolutionsInFile, importHelpersImportSpecifier, jsxRuntimeImportSpecifier_ + t.resolutionsInFile = resolutionsInFile + } } // Returns a DiagnosticMessage if we won't include a resolved module due to its extension. diff --git a/internal/compiler/fileloadertask.go b/internal/compiler/fileloadertask.go index 8dbf9ce76f..898dd785b3 100644 --- a/internal/compiler/fileloadertask.go +++ b/internal/compiler/fileloadertask.go @@ -17,6 +17,9 @@ type fileLoaderWorkerTask[T any] interface { getSubTasks() []T shouldIncreaseDepth() bool shouldElideOnDepth() bool + isRoot() bool + isFromExternalLibrary() bool + markFromExternalLibrary() } type fileLoaderWorker[K fileLoaderWorkerTask[K]] struct { @@ -32,12 +35,13 @@ type queuedTask[K fileLoaderWorkerTask[K]] struct { } func (w *fileLoaderWorker[K]) runAndWait(loader *fileLoader, tasks []K) { - w.start(loader, tasks, 0) + w.start(loader, tasks, 0, false) w.wg.RunAndWait() } -func (w *fileLoaderWorker[K]) start(loader *fileLoader, tasks []K, depth int) { +func (w *fileLoaderWorker[K]) start(loader *fileLoader, tasks []K, depth int, isFromExternalLibrary bool) { for i, task := range tasks { + taskIsFromExternalLibrary := isFromExternalLibrary || task.isFromExternalLibrary() newTask := &queuedTask[K]{task: task, lowestDepth: math.MaxInt} loadedTask, loaded := w.tasksByFileName.LoadOrStore(task.FileName(), newTask) task = loadedTask.task @@ -45,29 +49,41 @@ func (w *fileLoaderWorker[K]) start(loader *fileLoader, tasks []K, depth int) { tasks[i] = task } - currentDepth := depth - if task.shouldIncreaseDepth() { - currentDepth++ - } - - if task.shouldElideOnDepth() && currentDepth > w.maxDepth { - continue - } - w.wg.Queue(func() { loadedTask.mu.Lock() defer loadedTask.mu.Unlock() - if !task.isLoaded() { - task.load(loader) + currentDepth := depth + if task.shouldIncreaseDepth() { + currentDepth++ } + startSubtasks := false + if currentDepth < loadedTask.lowestDepth { // If we're seeing this task at a lower depth than before, // reprocess its subtasks to ensure they are loaded. loadedTask.lowestDepth = currentDepth - subTasks := task.getSubTasks() - w.start(loader, subTasks, currentDepth) + startSubtasks = true + } + + if !task.isRoot() && taskIsFromExternalLibrary && !task.isFromExternalLibrary() { + // If we're seeing this task now as an external library, + // reprocess its subtasks to ensure they are also marked as external. + task.markFromExternalLibrary() + startSubtasks = true + } + + if task.shouldElideOnDepth() && currentDepth > w.maxDepth { + return + } + + if !task.isLoaded() { + task.load(loader) + } + + if startSubtasks { + w.start(loader, task.getSubTasks(), loadedTask.lowestDepth, task.isFromExternalLibrary()) } }) } diff --git a/internal/compiler/parsetask.go b/internal/compiler/parsetask.go index 5ff235e239..75b2e63825 100644 --- a/internal/compiler/parsetask.go +++ b/internal/compiler/parsetask.go @@ -17,6 +17,7 @@ type parseTask struct { subTasks []*parseTask loaded bool isForAutomaticTypeDirective bool + root bool metadata ast.SourceFileMetaData resolutionsInFile module.ModeAwareCache[*module.ResolvedModule] @@ -25,6 +26,10 @@ type parseTask struct { jsxRuntimeImportSpecifier *jsxRuntimeImportSpecifier increaseDepth bool elideOnDepth bool + + // Track if this file is from an external library (node_modules) + // This mirrors the TypeScript currentNodeModulesDepth > 0 check + fromExternalLibrary bool } func (t *parseTask) FileName() string { @@ -60,7 +65,6 @@ func (t *parseTask) load(loader *fileLoader) { } t.file = file - t.subTasks = make([]*parseTask, 0, len(file.ReferencedFiles)+len(file.Imports())+len(file.ModuleAugmentations)) for _, ref := range file.ReferencedFiles { @@ -69,11 +73,7 @@ func (t *parseTask) load(loader *fileLoader) { } compilerOptions := loader.opts.Config.CompilerOptions() - toParseTypeRefs, typeResolutionsInFile := loader.resolveTypeReferenceDirectives(file, t.metadata) - t.typeResolutionsInFile = typeResolutionsInFile - for _, typeResolution := range toParseTypeRefs { - t.addSubTask(typeResolution, false) - } + loader.resolveTypeReferenceDirectives(t) if compilerOptions.NoLib != core.TSTrue { for _, lib := range file.LibReferenceDirectives { @@ -85,20 +85,13 @@ func (t *parseTask) load(loader *fileLoader) { } } - toParse, resolutionsInFile, importHelpersImportSpecifier, jsxRuntimeImportSpecifier := loader.resolveImportsAndModuleAugmentations(file, t.metadata) - for _, imp := range toParse { - t.addSubTask(imp, false) - } - - t.resolutionsInFile = resolutionsInFile - t.importHelpersImportSpecifier = importHelpersImportSpecifier - t.jsxRuntimeImportSpecifier = jsxRuntimeImportSpecifier + loader.resolveImportsAndModuleAugmentations(t) } func (t *parseTask) redirect(loader *fileLoader, fileName string) { t.isRedirected = true // increaseDepth and elideOnDepth are not copied to redirects, otherwise their depth would be double counted. - t.subTasks = []*parseTask{{normalizedFilePath: tspath.NormalizePath(fileName), isLib: t.isLib}} + t.subTasks = []*parseTask{{normalizedFilePath: tspath.NormalizePath(fileName), isLib: t.isLib, fromExternalLibrary: t.fromExternalLibrary}} } func (t *parseTask) loadAutomaticTypeDirectives(loader *fileLoader) { @@ -110,14 +103,21 @@ func (t *parseTask) loadAutomaticTypeDirectives(loader *fileLoader) { } type resolvedRef struct { - fileName string - increaseDepth bool - elideOnDepth bool + fileName string + increaseDepth bool + elideOnDepth bool + isFromExternalLibrary bool } func (t *parseTask) addSubTask(ref resolvedRef, isLib bool) { normalizedFilePath := tspath.NormalizePath(ref.fileName) - subTask := &parseTask{normalizedFilePath: normalizedFilePath, isLib: isLib, increaseDepth: ref.increaseDepth, elideOnDepth: ref.elideOnDepth} + subTask := &parseTask{ + normalizedFilePath: normalizedFilePath, + isLib: isLib, + increaseDepth: ref.increaseDepth, + elideOnDepth: ref.elideOnDepth, + fromExternalLibrary: ref.isFromExternalLibrary, + } t.subTasks = append(t.subTasks, subTask) } @@ -136,3 +136,15 @@ func (t *parseTask) shouldElideOnDepth() bool { func (t *parseTask) isLoaded() bool { return t.loaded } + +func (t *parseTask) isRoot() bool { + return t.root +} + +func (t *parseTask) isFromExternalLibrary() bool { + return t.fromExternalLibrary +} + +func (t *parseTask) markFromExternalLibrary() { + t.fromExternalLibrary = true +} diff --git a/internal/compiler/program.go b/internal/compiler/program.go index 0b0a2a62bd..7cddb367a2 100644 --- a/internal/compiler/program.go +++ b/internal/compiler/program.go @@ -824,6 +824,10 @@ func (p *Program) getModeForTypeReferenceDirectiveInFile(ref *ast.FileReference, return p.GetDefaultResolutionModeForFile(sourceFile) } +func (p *Program) IsSourceFileFromExternalLibrary(file *ast.SourceFile) bool { + return p.sourceFilesFoundSearchingNodeModules.Has(file.Path()) +} + type FileIncludeKind int const ( diff --git a/internal/compiler/projectreferenceparsetask.go b/internal/compiler/projectreferenceparsetask.go index 647a3f6273..8428a078ec 100644 --- a/internal/compiler/projectreferenceparsetask.go +++ b/internal/compiler/projectreferenceparsetask.go @@ -51,6 +51,16 @@ func (t *projectReferenceParseTask) isLoaded() bool { return t.loaded } +func (t *projectReferenceParseTask) isRoot() bool { + return true +} + +func (t *projectReferenceParseTask) isFromExternalLibrary() bool { + return false +} + +func (t *projectReferenceParseTask) markFromExternalLibrary() {} + func createProjectReferenceParseTasks(projectReferences []string) []*projectReferenceParseTask { return core.Map(projectReferences, func(configName string) *projectReferenceParseTask { return &projectReferenceParseTask{ diff --git a/internal/printer/emithost.go b/internal/printer/emithost.go index dc5710171d..05b4073986 100644 --- a/internal/printer/emithost.go +++ b/internal/printer/emithost.go @@ -27,4 +27,5 @@ type EmitHost interface { GetEmitModuleFormatOfFile(file ast.HasFileName) core.ModuleKind GetEmitResolver(file *ast.SourceFile, skipDiagnostics bool) EmitResolver GetOutputAndProjectReference(path tspath.Path) *tsoptions.OutputDtsAndProjectReference + IsSourceFileFromExternalLibrary(file *ast.SourceFile) bool } diff --git a/internal/project/project.go b/internal/project/project.go index 51dea44d06..a6d02be374 100644 --- a/internal/project/project.go +++ b/internal/project/project.go @@ -983,6 +983,7 @@ func (p *Project) GetFileNames(excludeFilesFromExternalLibraries bool, excludeCo result := []string{} sourceFiles := p.program.GetSourceFiles() for _, sourceFile := range sourceFiles { + // !! This is probably ready to be implemented now? // if excludeFilesFromExternalLibraries && p.program.IsSourceFileFromExternalLibrary(sourceFile) { // continue; // } diff --git a/internal/transformers/transformer.go b/internal/transformers/transformer.go index 55a571cf45..5ff107e250 100644 --- a/internal/transformers/transformer.go +++ b/internal/transformers/transformer.go @@ -52,6 +52,7 @@ func getModuleTransformer(emitContext *printer.EmitContext, options *core.Compil core.ModuleKindES2022, core.ModuleKindES2020, core.ModuleKindES2015, + core.ModuleKindNode18, core.ModuleKindNode16, core.ModuleKindNodeNext, core.ModuleKindCommonJS: diff --git a/testdata/baselines/reference/submodule/compiler/moduleAugmentationInDependency2.js b/testdata/baselines/reference/submodule/compiler/moduleAugmentationInDependency2.js index 44c280e374..f1d72fd5f1 100644 --- a/testdata/baselines/reference/submodule/compiler/moduleAugmentationInDependency2.js +++ b/testdata/baselines/reference/submodule/compiler/moduleAugmentationInDependency2.js @@ -8,6 +8,9 @@ export {}; //// [app.ts] import "A" +//// [index.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); //// [app.js] "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/testdata/baselines/reference/submodule/compiler/moduleAugmentationInDependency2.js.diff b/testdata/baselines/reference/submodule/compiler/moduleAugmentationInDependency2.js.diff deleted file mode 100644 index 39990e58e9..0000000000 --- a/testdata/baselines/reference/submodule/compiler/moduleAugmentationInDependency2.js.diff +++ /dev/null @@ -1,12 +0,0 @@ ---- old.moduleAugmentationInDependency2.js -+++ new.moduleAugmentationInDependency2.js -@@= skipped -7, +7 lines =@@ - //// [app.ts] - import "A" - --//// [index.js] --"use strict"; --Object.defineProperty(exports, "__esModule", { value: true }); - //// [app.js] - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/moduleNodeDefaultImports(module=node18).js b/testdata/baselines/reference/submodule/compiler/moduleNodeDefaultImports(module=node18).js index 678b845724..1d6e31ec0a 100644 --- a/testdata/baselines/reference/submodule/compiler/moduleNodeDefaultImports(module=node18).js +++ b/testdata/baselines/reference/submodule/compiler/moduleNodeDefaultImports(module=node18).js @@ -38,33 +38,28 @@ self.def.default(); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = fun; //// [b.mjs] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.def = exports.default = void 0; -const mod_cjs_1 = require("./mod.cjs"); -const mod_cjs_2 = require("./mod.cjs"); -const mod_cjs_3 = require("./mod.cjs"); -const self = require("./b.mjs"); -const mod_cjs_4 = require("./mod.cjs"); -Object.defineProperty(exports, "default", { enumerable: true, get: function () { return mod_cjs_4.default; } }); -const mod_cjs_5 = require("./mod.cjs"); -Object.defineProperty(exports, "def", { enumerable: true, get: function () { return mod_cjs_5.default; } }); -mod_cjs_1.default === mod_cjs_2.default; -mod_cjs_2.default === mod_cjs_3.default; -mod_cjs_3.default === mod_cjs_3.default; -mod_cjs_3.default === self.default; +import a from "./mod.cjs"; +import { default as b } from "./mod.cjs"; +import c, { default as d } from "./mod.cjs"; +import * as self from "./b.mjs"; +export { default } from "./mod.cjs"; +export { default as def } from "./mod.cjs"; +a === b; +b === c; +c === d; +d === self.default; self.default === self.def; // should all fail -(0, mod_cjs_1.default)(); -(0, mod_cjs_2.default)(); -(0, mod_cjs_3.default)(); -(0, mod_cjs_3.default)(); +a(); +b(); +c(); +d(); self.default(); self.def(); // should all work -mod_cjs_1.default.default(); -mod_cjs_2.default.default(); -mod_cjs_3.default.default(); -mod_cjs_3.default.default(); +a.default(); +b.default(); +c.default(); +d.default(); self.default.default(); self.def.default(); diff --git a/testdata/baselines/reference/submodule/compiler/moduleNodeDefaultImports(module=node18).js.diff b/testdata/baselines/reference/submodule/compiler/moduleNodeDefaultImports(module=node18).js.diff deleted file mode 100644 index ca6091002e..0000000000 --- a/testdata/baselines/reference/submodule/compiler/moduleNodeDefaultImports(module=node18).js.diff +++ /dev/null @@ -1,54 +0,0 @@ ---- old.moduleNodeDefaultImports(module=node18).js -+++ new.moduleNodeDefaultImports(module=node18).js -@@= skipped -37, +37 lines =@@ - Object.defineProperty(exports, "__esModule", { value: true }); - exports.default = fun; - //// [b.mjs] --import a from "./mod.cjs"; --import { default as b } from "./mod.cjs"; --import c, { default as d } from "./mod.cjs"; --import * as self from "./b.mjs"; --export { default } from "./mod.cjs"; --export { default as def } from "./mod.cjs"; --a === b; --b === c; --c === d; --d === self.default; -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); -+exports.def = exports.default = void 0; -+const mod_cjs_1 = require("./mod.cjs"); -+const mod_cjs_2 = require("./mod.cjs"); -+const mod_cjs_3 = require("./mod.cjs"); -+const self = require("./b.mjs"); -+const mod_cjs_4 = require("./mod.cjs"); -+Object.defineProperty(exports, "default", { enumerable: true, get: function () { return mod_cjs_4.default; } }); -+const mod_cjs_5 = require("./mod.cjs"); -+Object.defineProperty(exports, "def", { enumerable: true, get: function () { return mod_cjs_5.default; } }); -+mod_cjs_1.default === mod_cjs_2.default; -+mod_cjs_2.default === mod_cjs_3.default; -+mod_cjs_3.default === mod_cjs_3.default; -+mod_cjs_3.default === self.default; - self.default === self.def; - // should all fail --a(); --b(); --c(); --d(); -+(0, mod_cjs_1.default)(); -+(0, mod_cjs_2.default)(); -+(0, mod_cjs_3.default)(); -+(0, mod_cjs_3.default)(); - self.default(); - self.def(); - // should all work --a.default(); --b.default(); --c.default(); --d.default(); -+mod_cjs_1.default.default(); -+mod_cjs_2.default.default(); -+mod_cjs_3.default.default(); -+mod_cjs_3.default.default(); - self.default.default(); - self.def.default(); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/requireOfJsonFileNonRelativeWithoutExtensionResolvesToTs.js b/testdata/baselines/reference/submodule/compiler/requireOfJsonFileNonRelativeWithoutExtensionResolvesToTs.js index a6256ccc6b..cd11ded81c 100644 --- a/testdata/baselines/reference/submodule/compiler/requireOfJsonFileNonRelativeWithoutExtensionResolvesToTs.js +++ b/testdata/baselines/reference/submodule/compiler/requireOfJsonFileNonRelativeWithoutExtensionResolvesToTs.js @@ -14,7 +14,10 @@ let fnumber: number = f; export = 10; -//// [out/file1.js] +//// [out/node_modules/f.js] +"use strict"; +module.exports = 10; +//// [out/projects/file1.js] "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const f = require("f"); // should work to f.ts diff --git a/testdata/baselines/reference/submodule/compiler/requireOfJsonFileNonRelativeWithoutExtensionResolvesToTs.js.diff b/testdata/baselines/reference/submodule/compiler/requireOfJsonFileNonRelativeWithoutExtensionResolvesToTs.js.diff index d909de317c..8a071a32b4 100644 --- a/testdata/baselines/reference/submodule/compiler/requireOfJsonFileNonRelativeWithoutExtensionResolvesToTs.js.diff +++ b/testdata/baselines/reference/submodule/compiler/requireOfJsonFileNonRelativeWithoutExtensionResolvesToTs.js.diff @@ -1,14 +1,7 @@ --- old.requireOfJsonFileNonRelativeWithoutExtensionResolvesToTs.js +++ new.requireOfJsonFileNonRelativeWithoutExtensionResolvesToTs.js -@@= skipped -13, +13 lines =@@ - export = 10; - - --//// [out/node_modules/f.js] --"use strict"; --module.exports = 10; --//// [out/projects/file1.js] -+//// [out/file1.js] +@@= skipped -19, +19 lines =@@ + //// [out/projects/file1.js] "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -var f = require("f"); // should work to f.ts diff --git a/testdata/baselines/reference/submodule/conformance/declarationFileForTsJsImport(module=node18).js b/testdata/baselines/reference/submodule/conformance/declarationFileForTsJsImport(module=node18).js index 5779a33d13..aec21f826c 100644 --- a/testdata/baselines/reference/submodule/conformance/declarationFileForTsJsImport(module=node18).js +++ b/testdata/baselines/reference/submodule/conformance/declarationFileForTsJsImport(module=node18).js @@ -53,5 +53,4 @@ declare var bad: "bad12"; export default bad; //// [main.js] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); +export {}; diff --git a/testdata/baselines/reference/submodule/conformance/declarationFileForTsJsImport(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/declarationFileForTsJsImport(module=node18).js.diff deleted file mode 100644 index 84b37e1194..0000000000 --- a/testdata/baselines/reference/submodule/conformance/declarationFileForTsJsImport(module=node18).js.diff +++ /dev/null @@ -1,9 +0,0 @@ ---- old.declarationFileForTsJsImport(module=node18).js -+++ new.declarationFileForTsJsImport(module=node18).js -@@= skipped -52, +52 lines =@@ - export default bad; - - //// [main.js] --export {}; -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/declarationFilesForNodeNativeModules(allowarbitraryextensions=false,module=node18).js b/testdata/baselines/reference/submodule/conformance/declarationFilesForNodeNativeModules(allowarbitraryextensions=false,module=node18).js index 78bf96bca9..0db936c68b 100644 --- a/testdata/baselines/reference/submodule/conformance/declarationFilesForNodeNativeModules(allowarbitraryextensions=false,module=node18).js +++ b/testdata/baselines/reference/submodule/conformance/declarationFilesForNodeNativeModules(allowarbitraryextensions=false,module=node18).js @@ -12,7 +12,7 @@ mod.doNativeThing("good"); //// [main.js] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -const mod = require("./dir/native.node"); +import { createRequire as _createRequire } from "module"; +const __require = _createRequire(import.meta.url); +const mod = __require("./dir/native.node"); mod.doNativeThing("good"); diff --git a/testdata/baselines/reference/submodule/conformance/declarationFilesForNodeNativeModules(allowarbitraryextensions=false,module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/declarationFilesForNodeNativeModules(allowarbitraryextensions=false,module=node18).js.diff deleted file mode 100644 index 7a703b4a20..0000000000 --- a/testdata/baselines/reference/submodule/conformance/declarationFilesForNodeNativeModules(allowarbitraryextensions=false,module=node18).js.diff +++ /dev/null @@ -1,13 +0,0 @@ ---- old.declarationFilesForNodeNativeModules(allowarbitraryextensions=false,module=node18).js -+++ new.declarationFilesForNodeNativeModules(allowarbitraryextensions=false,module=node18).js -@@= skipped -11, +11 lines =@@ - - - //// [main.js] --import { createRequire as _createRequire } from "module"; --const __require = _createRequire(import.meta.url); --const mod = __require("./dir/native.node"); -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); -+const mod = require("./dir/native.node"); - mod.doNativeThing("good"); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/declarationFilesForNodeNativeModules(allowarbitraryextensions=true,module=node18).js b/testdata/baselines/reference/submodule/conformance/declarationFilesForNodeNativeModules(allowarbitraryextensions=true,module=node18).js index 78bf96bca9..0db936c68b 100644 --- a/testdata/baselines/reference/submodule/conformance/declarationFilesForNodeNativeModules(allowarbitraryextensions=true,module=node18).js +++ b/testdata/baselines/reference/submodule/conformance/declarationFilesForNodeNativeModules(allowarbitraryextensions=true,module=node18).js @@ -12,7 +12,7 @@ mod.doNativeThing("good"); //// [main.js] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -const mod = require("./dir/native.node"); +import { createRequire as _createRequire } from "module"; +const __require = _createRequire(import.meta.url); +const mod = __require("./dir/native.node"); mod.doNativeThing("good"); diff --git a/testdata/baselines/reference/submodule/conformance/declarationFilesForNodeNativeModules(allowarbitraryextensions=true,module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/declarationFilesForNodeNativeModules(allowarbitraryextensions=true,module=node18).js.diff deleted file mode 100644 index 8916f4d87c..0000000000 --- a/testdata/baselines/reference/submodule/conformance/declarationFilesForNodeNativeModules(allowarbitraryextensions=true,module=node18).js.diff +++ /dev/null @@ -1,13 +0,0 @@ ---- old.declarationFilesForNodeNativeModules(allowarbitraryextensions=true,module=node18).js -+++ new.declarationFilesForNodeNativeModules(allowarbitraryextensions=true,module=node18).js -@@= skipped -11, +11 lines =@@ - - - //// [main.js] --import { createRequire as _createRequire } from "module"; --const __require = _createRequire(import.meta.url); --const mod = __require("./dir/native.node"); -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); -+const mod = require("./dir/native.node"); - mod.doNativeThing("good"); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/importAttributes6(module=node18).js b/testdata/baselines/reference/submodule/conformance/importAttributes6(module=node18).js index e12f467618..6d346c55c8 100644 --- a/testdata/baselines/reference/submodule/conformance/importAttributes6(module=node18).js +++ b/testdata/baselines/reference/submodule/conformance/importAttributes6(module=node18).js @@ -10,5 +10,4 @@ import * as thing6 from "./mod.mjs" with { type: "json", field: 0..toString() }; //// [mod.mjs] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); +export {}; diff --git a/testdata/baselines/reference/submodule/conformance/importAttributes6(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/importAttributes6(module=node18).js.diff deleted file mode 100644 index 033ccb86a9..0000000000 --- a/testdata/baselines/reference/submodule/conformance/importAttributes6(module=node18).js.diff +++ /dev/null @@ -1,9 +0,0 @@ ---- old.importAttributes6(module=node18).js -+++ new.importAttributes6(module=node18).js -@@= skipped -9, +9 lines =@@ - - - //// [mod.mjs] --export {}; -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/moduleResolutionWithoutExtension3(module=node18).js b/testdata/baselines/reference/submodule/conformance/moduleResolutionWithoutExtension3(module=node18).js index 06f320fa23..3b4e816e48 100644 --- a/testdata/baselines/reference/submodule/conformance/moduleResolutionWithoutExtension3(module=node18).js +++ b/testdata/baselines/reference/submodule/conformance/moduleResolutionWithoutExtension3(module=node18).js @@ -18,5 +18,4 @@ function foo() { return ""; } //// [bar.mjs] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); +export {}; diff --git a/testdata/baselines/reference/submodule/conformance/moduleResolutionWithoutExtension3(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/moduleResolutionWithoutExtension3(module=node18).js.diff deleted file mode 100644 index 4e88f93391..0000000000 --- a/testdata/baselines/reference/submodule/conformance/moduleResolutionWithoutExtension3(module=node18).js.diff +++ /dev/null @@ -1,9 +0,0 @@ ---- old.moduleResolutionWithoutExtension3(module=node18).js -+++ new.moduleResolutionWithoutExtension3(module=node18).js -@@= skipped -17, +17 lines =@@ - return ""; - } - //// [bar.mjs] --export {}; -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/moduleResolutionWithoutExtension4(module=node18).js b/testdata/baselines/reference/submodule/conformance/moduleResolutionWithoutExtension4(module=node18).js index 698f97a9cf..9fe42ebd8f 100644 --- a/testdata/baselines/reference/submodule/conformance/moduleResolutionWithoutExtension4(module=node18).js +++ b/testdata/baselines/reference/submodule/conformance/moduleResolutionWithoutExtension4(module=node18).js @@ -18,5 +18,4 @@ function foo() { return ""; } //// [bar.mjs] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); +export {}; diff --git a/testdata/baselines/reference/submodule/conformance/moduleResolutionWithoutExtension4(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/moduleResolutionWithoutExtension4(module=node18).js.diff deleted file mode 100644 index 7f2ac8c2bf..0000000000 --- a/testdata/baselines/reference/submodule/conformance/moduleResolutionWithoutExtension4(module=node18).js.diff +++ /dev/null @@ -1,9 +0,0 @@ ---- old.moduleResolutionWithoutExtension4(module=node18).js -+++ new.moduleResolutionWithoutExtension4(module=node18).js -@@= skipped -17, +17 lines =@@ - return ""; - } - //// [bar.mjs] --export {}; -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeAllowJsPackageSelfName(module=node18).js b/testdata/baselines/reference/submodule/conformance/nodeAllowJsPackageSelfName(module=node18).js index b7f552a39e..dec5d49ea5 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeAllowJsPackageSelfName(module=node18).js +++ b/testdata/baselines/reference/submodule/conformance/nodeAllowJsPackageSelfName(module=node18).js @@ -21,16 +21,12 @@ self; } //// [index.js] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); // esm format file -const self = require("package"); +import * as self from "package"; self; //// [index.mjs] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); // esm format file -const self = require("package"); +import * as self from "package"; self; //// [index.cjs] "use strict"; diff --git a/testdata/baselines/reference/submodule/conformance/nodeAllowJsPackageSelfName(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/nodeAllowJsPackageSelfName(module=node18).js.diff index ebf8f5bd1d..a617204d98 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeAllowJsPackageSelfName(module=node18).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeAllowJsPackageSelfName(module=node18).js.diff @@ -1,21 +1,6 @@ --- old.nodeAllowJsPackageSelfName(module=node18).js +++ new.nodeAllowJsPackageSelfName(module=node18).js -@@= skipped -20, +20 lines =@@ - } - - //// [index.js] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); - // esm format file --import * as self from "package"; -+const self = require("package"); - self; - //// [index.mjs] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); - // esm format file --import * as self from "package"; -+const self = require("package"); +@@= skipped -29, +29 lines =@@ self; //// [index.cjs] "use strict"; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModules1(module=node18).js b/testdata/baselines/reference/submodule/conformance/nodeModules1(module=node18).js index bedfe939b8..53ef354c42 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModules1(module=node18).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModules1(module=node18).js @@ -335,12 +335,9 @@ exports.x = void 0; const x = 1; exports.x = x; //// [index.mjs] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.x = void 0; // esm format file const x = 1; -exports.x = x; +export { x }; //// [index.js] "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); @@ -356,26 +353,17 @@ exports.x = void 0; const x = 1; exports.x = x; //// [index.mjs] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.x = void 0; // esm format file const x = 1; -exports.x = x; +export { x }; //// [index.js] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.x = void 0; // esm format file const x = 1; -exports.x = x; +export { x }; //// [index.mjs] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.x = void 0; // esm format file const x = 1; -exports.x = x; +export { x }; //// [index.cjs] "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); @@ -474,33 +462,32 @@ const _m45 = import("./subfolder2/another/index"); const x = 1; exports.x = x; //// [index.js] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.x = void 0; -const m1 = require("./index.js"); -const m2 = require("./index.mjs"); -const m3 = require("./index.cjs"); -const m4 = require("./subfolder/index.js"); -const m5 = require("./subfolder/index.mjs"); -const m6 = require("./subfolder/index.cjs"); -const m7 = require("./subfolder2/index.js"); -const m8 = require("./subfolder2/index.mjs"); -const m9 = require("./subfolder2/index.cjs"); -const m10 = require("./subfolder2/another/index.js"); -const m11 = require("./subfolder2/another/index.mjs"); -const m12 = require("./subfolder2/another/index.cjs"); +import { createRequire as _createRequire } from "module"; +const __require = _createRequire(import.meta.url); +import * as m1 from "./index.js"; +import * as m2 from "./index.mjs"; +import * as m3 from "./index.cjs"; +import * as m4 from "./subfolder/index.js"; +import * as m5 from "./subfolder/index.mjs"; +import * as m6 from "./subfolder/index.cjs"; +import * as m7 from "./subfolder2/index.js"; +import * as m8 from "./subfolder2/index.mjs"; +import * as m9 from "./subfolder2/index.cjs"; +import * as m10 from "./subfolder2/another/index.js"; +import * as m11 from "./subfolder2/another/index.mjs"; +import * as m12 from "./subfolder2/another/index.cjs"; // The next ones shouldn't all work - esm format files have no index resolution or extension resolution -const m13 = require("./"); -const m14 = require("./index"); -const m15 = require("./subfolder"); -const m16 = require("./subfolder/"); -const m17 = require("./subfolder/index"); -const m18 = require("./subfolder2"); -const m19 = require("./subfolder2/"); -const m20 = require("./subfolder2/index"); -const m21 = require("./subfolder2/another"); -const m22 = require("./subfolder2/another/"); -const m23 = require("./subfolder2/another/index"); +import * as m13 from "./"; +import * as m14 from "./index"; +import * as m15 from "./subfolder"; +import * as m16 from "./subfolder/"; +import * as m17 from "./subfolder/index"; +import * as m18 from "./subfolder2"; +import * as m19 from "./subfolder2/"; +import * as m20 from "./subfolder2/index"; +import * as m21 from "./subfolder2/another"; +import * as m22 from "./subfolder2/another/"; +import * as m23 from "./subfolder2/another/index"; void m1; void m2; void m3; @@ -525,17 +512,17 @@ void m21; void m22; void m23; // These should _mostly_ work - `import = require` always desugars to require calls, which do have extension and index resolution (but can't load anything that resolves to esm!) -const m24 = require("./"); -const m25 = require("./index"); -const m26 = require("./subfolder"); -const m27 = require("./subfolder/"); -const m28 = require("./subfolder/index"); -const m29 = require("./subfolder2"); -const m30 = require("./subfolder2/"); -const m31 = require("./subfolder2/index"); -const m32 = require("./subfolder2/another"); -const m33 = require("./subfolder2/another/"); -const m34 = require("./subfolder2/another/index"); +const m24 = __require("./"); +const m25 = __require("./index"); +const m26 = __require("./subfolder"); +const m27 = __require("./subfolder/"); +const m28 = __require("./subfolder/index"); +const m29 = __require("./subfolder2"); +const m30 = __require("./subfolder2/"); +const m31 = __require("./subfolder2/index"); +const m32 = __require("./subfolder2/another"); +const m33 = __require("./subfolder2/another/"); +const m34 = __require("./subfolder2/another/index"); void m24; void m25; void m26; @@ -561,35 +548,34 @@ const _m44 = import("./subfolder2/another/"); const _m45 = import("./subfolder2/another/index"); // esm format file const x = 1; -exports.x = x; +export { x }; //// [index.mjs] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.x = void 0; -const m1 = require("./index.js"); -const m2 = require("./index.mjs"); -const m3 = require("./index.cjs"); -const m4 = require("./subfolder/index.js"); -const m5 = require("./subfolder/index.mjs"); -const m6 = require("./subfolder/index.cjs"); -const m7 = require("./subfolder2/index.js"); -const m8 = require("./subfolder2/index.mjs"); -const m9 = require("./subfolder2/index.cjs"); -const m10 = require("./subfolder2/another/index.js"); -const m11 = require("./subfolder2/another/index.mjs"); -const m12 = require("./subfolder2/another/index.cjs"); +import { createRequire as _createRequire } from "module"; +const __require = _createRequire(import.meta.url); +import * as m1 from "./index.js"; +import * as m2 from "./index.mjs"; +import * as m3 from "./index.cjs"; +import * as m4 from "./subfolder/index.js"; +import * as m5 from "./subfolder/index.mjs"; +import * as m6 from "./subfolder/index.cjs"; +import * as m7 from "./subfolder2/index.js"; +import * as m8 from "./subfolder2/index.mjs"; +import * as m9 from "./subfolder2/index.cjs"; +import * as m10 from "./subfolder2/another/index.js"; +import * as m11 from "./subfolder2/another/index.mjs"; +import * as m12 from "./subfolder2/another/index.cjs"; // The next ones should all fail - esm format files have no index resolution or extension resolution -const m13 = require("./"); -const m14 = require("./index"); -const m15 = require("./subfolder"); -const m16 = require("./subfolder/"); -const m17 = require("./subfolder/index"); -const m18 = require("./subfolder2"); -const m19 = require("./subfolder2/"); -const m20 = require("./subfolder2/index"); -const m21 = require("./subfolder2/another"); -const m22 = require("./subfolder2/another/"); -const m23 = require("./subfolder2/another/index"); +import * as m13 from "./"; +import * as m14 from "./index"; +import * as m15 from "./subfolder"; +import * as m16 from "./subfolder/"; +import * as m17 from "./subfolder/index"; +import * as m18 from "./subfolder2"; +import * as m19 from "./subfolder2/"; +import * as m20 from "./subfolder2/index"; +import * as m21 from "./subfolder2/another"; +import * as m22 from "./subfolder2/another/"; +import * as m23 from "./subfolder2/another/index"; void m1; void m2; void m3; @@ -614,17 +600,17 @@ void m21; void m22; void m23; // These should _mostly_ work - `import = require` always desugars to require calls, which do have extension and index resolution (but can't load anything that resolves to esm!) -const m24 = require("./"); -const m25 = require("./index"); -const m26 = require("./subfolder"); -const m27 = require("./subfolder/"); -const m28 = require("./subfolder/index"); -const m29 = require("./subfolder2"); -const m30 = require("./subfolder2/"); -const m31 = require("./subfolder2/index"); -const m32 = require("./subfolder2/another"); -const m33 = require("./subfolder2/another/"); -const m34 = require("./subfolder2/another/index"); +const m24 = __require("./"); +const m25 = __require("./index"); +const m26 = __require("./subfolder"); +const m27 = __require("./subfolder/"); +const m28 = __require("./subfolder/index"); +const m29 = __require("./subfolder2"); +const m30 = __require("./subfolder2/"); +const m31 = __require("./subfolder2/index"); +const m32 = __require("./subfolder2/another"); +const m33 = __require("./subfolder2/another/"); +const m34 = __require("./subfolder2/another/index"); void m24; void m25; void m26; @@ -650,7 +636,7 @@ const _m44 = import("./subfolder2/another/"); const _m45 = import("./subfolder2/another/index"); // esm format file const x = 1; -exports.x = x; +export { x }; //// [index.d.ts] diff --git a/testdata/baselines/reference/submodule/conformance/nodeModules1(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModules1(module=node18).js.diff index 891597d978..4bad96ec43 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModules1(module=node18).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModules1(module=node18).js.diff @@ -1,47 +1,9 @@ --- old.nodeModules1(module=node18).js +++ new.nodeModules1(module=node18).js -@@= skipped -334, +334 lines =@@ - const x = 1; +@@= skipped -372, +372 lines =@@ exports.x = x; - //// [index.mjs] --// esm format file --const x = 1; --export { x }; --//// [index.js] --"use strict"; --Object.defineProperty(exports, "__esModule", { value: true }); --exports.x = void 0; --// cjs format file --const x = 1; --exports.x = x; --//// [index.cjs] --"use strict"; --Object.defineProperty(exports, "__esModule", { value: true }); --exports.x = void 0; --// cjs format file --const x = 1; --exports.x = x; --//// [index.mjs] --// esm format file --const x = 1; --export { x }; --//// [index.js] --// esm format file --const x = 1; --export { x }; --//// [index.mjs] --// esm format file --const x = 1; --export { x }; --//// [index.cjs] --"use strict"; --Object.defineProperty(exports, "__esModule", { value: true }); --exports.x = void 0; --// cjs format file --const x = 1; --exports.x = x; --//// [index.cjs] --"use strict"; + //// [index.cjs] + "use strict"; -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); @@ -75,56 +37,6 @@ - return result; - }; -})(); -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); -+exports.x = void 0; -+// esm format file -+const x = 1; -+exports.x = x; -+//// [index.js] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); -+exports.x = void 0; -+// cjs format file -+const x = 1; -+exports.x = x; -+//// [index.cjs] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); -+exports.x = void 0; -+// cjs format file -+const x = 1; -+exports.x = x; -+//// [index.mjs] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); -+exports.x = void 0; -+// esm format file -+const x = 1; -+exports.x = x; -+//// [index.js] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); -+exports.x = void 0; -+// esm format file -+const x = 1; -+exports.x = x; -+//// [index.mjs] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); -+exports.x = void 0; -+// esm format file -+const x = 1; -+exports.x = x; -+//// [index.cjs] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); -+exports.x = void 0; -+// cjs format file -+const x = 1; -+exports.x = x; -+//// [index.cjs] -+"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.x = void 0; // ESM-format imports below should issue errors @@ -178,193 +90,10 @@ void m1; void m2; void m3; -@@= skipped -160, +139 lines =@@ - const x = 1; - exports.x = x; - //// [index.js] --import { createRequire as _createRequire } from "module"; --const __require = _createRequire(import.meta.url); --import * as m1 from "./index.js"; --import * as m2 from "./index.mjs"; --import * as m3 from "./index.cjs"; --import * as m4 from "./subfolder/index.js"; --import * as m5 from "./subfolder/index.mjs"; --import * as m6 from "./subfolder/index.cjs"; --import * as m7 from "./subfolder2/index.js"; --import * as m8 from "./subfolder2/index.mjs"; --import * as m9 from "./subfolder2/index.cjs"; --import * as m10 from "./subfolder2/another/index.js"; --import * as m11 from "./subfolder2/another/index.mjs"; --import * as m12 from "./subfolder2/another/index.cjs"; -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); -+exports.x = void 0; -+const m1 = require("./index.js"); -+const m2 = require("./index.mjs"); -+const m3 = require("./index.cjs"); -+const m4 = require("./subfolder/index.js"); -+const m5 = require("./subfolder/index.mjs"); -+const m6 = require("./subfolder/index.cjs"); -+const m7 = require("./subfolder2/index.js"); -+const m8 = require("./subfolder2/index.mjs"); -+const m9 = require("./subfolder2/index.cjs"); -+const m10 = require("./subfolder2/another/index.js"); -+const m11 = require("./subfolder2/another/index.mjs"); -+const m12 = require("./subfolder2/another/index.cjs"); - // The next ones shouldn't all work - esm format files have no index resolution or extension resolution --import * as m13 from "./"; --import * as m14 from "./index"; --import * as m15 from "./subfolder"; --import * as m16 from "./subfolder/"; --import * as m17 from "./subfolder/index"; --import * as m18 from "./subfolder2"; --import * as m19 from "./subfolder2/"; --import * as m20 from "./subfolder2/index"; --import * as m21 from "./subfolder2/another"; --import * as m22 from "./subfolder2/another/"; --import * as m23 from "./subfolder2/another/index"; -+const m13 = require("./"); -+const m14 = require("./index"); -+const m15 = require("./subfolder"); -+const m16 = require("./subfolder/"); -+const m17 = require("./subfolder/index"); -+const m18 = require("./subfolder2"); -+const m19 = require("./subfolder2/"); -+const m20 = require("./subfolder2/index"); -+const m21 = require("./subfolder2/another"); -+const m22 = require("./subfolder2/another/"); -+const m23 = require("./subfolder2/another/index"); - void m1; - void m2; - void m3; -@@= skipped -50, +51 lines =@@ - void m22; - void m23; - // These should _mostly_ work - `import = require` always desugars to require calls, which do have extension and index resolution (but can't load anything that resolves to esm!) --const m24 = __require("./"); --const m25 = __require("./index"); --const m26 = __require("./subfolder"); --const m27 = __require("./subfolder/"); --const m28 = __require("./subfolder/index"); --const m29 = __require("./subfolder2"); --const m30 = __require("./subfolder2/"); --const m31 = __require("./subfolder2/index"); --const m32 = __require("./subfolder2/another"); --const m33 = __require("./subfolder2/another/"); --const m34 = __require("./subfolder2/another/index"); -+const m24 = require("./"); -+const m25 = require("./index"); -+const m26 = require("./subfolder"); -+const m27 = require("./subfolder/"); -+const m28 = require("./subfolder/index"); -+const m29 = require("./subfolder2"); -+const m30 = require("./subfolder2/"); -+const m31 = require("./subfolder2/index"); -+const m32 = require("./subfolder2/another"); -+const m33 = require("./subfolder2/another/"); -+const m34 = require("./subfolder2/another/index"); - void m24; - void m25; - void m26; -@@= skipped -36, +36 lines =@@ - const _m45 = import("./subfolder2/another/index"); - // esm format file - const x = 1; --export { x }; -+exports.x = x; - //// [index.mjs] --import { createRequire as _createRequire } from "module"; --const __require = _createRequire(import.meta.url); --import * as m1 from "./index.js"; --import * as m2 from "./index.mjs"; --import * as m3 from "./index.cjs"; --import * as m4 from "./subfolder/index.js"; --import * as m5 from "./subfolder/index.mjs"; --import * as m6 from "./subfolder/index.cjs"; --import * as m7 from "./subfolder2/index.js"; --import * as m8 from "./subfolder2/index.mjs"; --import * as m9 from "./subfolder2/index.cjs"; --import * as m10 from "./subfolder2/another/index.js"; --import * as m11 from "./subfolder2/another/index.mjs"; --import * as m12 from "./subfolder2/another/index.cjs"; -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); -+exports.x = void 0; -+const m1 = require("./index.js"); -+const m2 = require("./index.mjs"); -+const m3 = require("./index.cjs"); -+const m4 = require("./subfolder/index.js"); -+const m5 = require("./subfolder/index.mjs"); -+const m6 = require("./subfolder/index.cjs"); -+const m7 = require("./subfolder2/index.js"); -+const m8 = require("./subfolder2/index.mjs"); -+const m9 = require("./subfolder2/index.cjs"); -+const m10 = require("./subfolder2/another/index.js"); -+const m11 = require("./subfolder2/another/index.mjs"); -+const m12 = require("./subfolder2/another/index.cjs"); - // The next ones should all fail - esm format files have no index resolution or extension resolution --import * as m13 from "./"; --import * as m14 from "./index"; --import * as m15 from "./subfolder"; --import * as m16 from "./subfolder/"; --import * as m17 from "./subfolder/index"; --import * as m18 from "./subfolder2"; --import * as m19 from "./subfolder2/"; --import * as m20 from "./subfolder2/index"; --import * as m21 from "./subfolder2/another"; --import * as m22 from "./subfolder2/another/"; --import * as m23 from "./subfolder2/another/index"; -+const m13 = require("./"); -+const m14 = require("./index"); -+const m15 = require("./subfolder"); -+const m16 = require("./subfolder/"); -+const m17 = require("./subfolder/index"); -+const m18 = require("./subfolder2"); -+const m19 = require("./subfolder2/"); -+const m20 = require("./subfolder2/index"); -+const m21 = require("./subfolder2/another"); -+const m22 = require("./subfolder2/another/"); -+const m23 = require("./subfolder2/another/index"); - void m1; - void m2; - void m3; -@@= skipped -52, +53 lines =@@ - void m22; - void m23; - // These should _mostly_ work - `import = require` always desugars to require calls, which do have extension and index resolution (but can't load anything that resolves to esm!) --const m24 = __require("./"); --const m25 = __require("./index"); --const m26 = __require("./subfolder"); --const m27 = __require("./subfolder/"); --const m28 = __require("./subfolder/index"); --const m29 = __require("./subfolder2"); --const m30 = __require("./subfolder2/"); --const m31 = __require("./subfolder2/index"); --const m32 = __require("./subfolder2/another"); --const m33 = __require("./subfolder2/another/"); --const m34 = __require("./subfolder2/another/index"); -+const m24 = require("./"); -+const m25 = require("./index"); -+const m26 = require("./subfolder"); -+const m27 = require("./subfolder/"); -+const m28 = require("./subfolder/index"); -+const m29 = require("./subfolder2"); -+const m30 = require("./subfolder2/"); -+const m31 = require("./subfolder2/index"); -+const m32 = require("./subfolder2/another"); -+const m33 = require("./subfolder2/another/"); -+const m34 = require("./subfolder2/another/index"); - void m24; - void m25; - void m26; -@@= skipped -36, +36 lines =@@ - const _m45 = import("./subfolder2/another/index"); - // esm format file - const x = 1; --export { x }; -- -- --//// [index.d.ts] +@@= skipped -300, +267 lines =@@ + + + //// [index.d.ts] -declare const x = 1; -export { x }; -//// [index.d.cts] @@ -398,10 +127,6 @@ -declare const x = 1; -export { x }; -//// [index.d.mts] -+exports.x = x; -+ -+ -+//// [index.d.ts] +// cjs format file +declare const x = 1; +export { x }; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJs1(module=node18).js b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJs1(module=node18).js index fceee457d1..fb40dfae97 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJs1(module=node18).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJs1(module=node18).js @@ -335,12 +335,9 @@ exports.x = void 0; const x = 1; exports.x = x; //// [index.mjs] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.x = void 0; // esm format file const x = 1; -exports.x = x; +export { x }; //// [index.js] "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); @@ -356,19 +353,13 @@ exports.x = void 0; const x = 1; exports.x = x; //// [index.mjs] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.x = void 0; // esm format file const x = 1; -exports.x = x; +export { x }; //// [index.js] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.x = void 0; // esm format file const x = 1; -exports.x = x; +export { x }; //// [index.cjs] "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); @@ -377,12 +368,9 @@ exports.x = void 0; const x = 1; exports.x = x; //// [index.mjs] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.x = void 0; // esm format file const x = 1; -exports.x = x; +export { x }; //// [index.cjs] "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); @@ -474,33 +462,32 @@ const _m45 = import("./subfolder2/another/index"); const x = 1; exports.x = x; //// [index.mjs] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.x = void 0; -const m1 = require("./index.js"); -const m2 = require("./index.mjs"); -const m3 = require("./index.cjs"); -const m4 = require("./subfolder/index.js"); -const m5 = require("./subfolder/index.mjs"); -const m6 = require("./subfolder/index.cjs"); -const m7 = require("./subfolder2/index.js"); -const m8 = require("./subfolder2/index.mjs"); -const m9 = require("./subfolder2/index.cjs"); -const m10 = require("./subfolder2/another/index.js"); -const m11 = require("./subfolder2/another/index.mjs"); -const m12 = require("./subfolder2/another/index.cjs"); +import { createRequire as _createRequire } from "module"; +const __require = _createRequire(import.meta.url); +import * as m1 from "./index.js"; +import * as m2 from "./index.mjs"; +import * as m3 from "./index.cjs"; +import * as m4 from "./subfolder/index.js"; +import * as m5 from "./subfolder/index.mjs"; +import * as m6 from "./subfolder/index.cjs"; +import * as m7 from "./subfolder2/index.js"; +import * as m8 from "./subfolder2/index.mjs"; +import * as m9 from "./subfolder2/index.cjs"; +import * as m10 from "./subfolder2/another/index.js"; +import * as m11 from "./subfolder2/another/index.mjs"; +import * as m12 from "./subfolder2/another/index.cjs"; // The next ones should all fail - esm format files have no index resolution or extension resolution -const m13 = require("./"); -const m14 = require("./index"); -const m15 = require("./subfolder"); -const m16 = require("./subfolder/"); -const m17 = require("./subfolder/index"); -const m18 = require("./subfolder2"); -const m19 = require("./subfolder2/"); -const m20 = require("./subfolder2/index"); -const m21 = require("./subfolder2/another"); -const m22 = require("./subfolder2/another/"); -const m23 = require("./subfolder2/another/index"); +import * as m13 from "./"; +import * as m14 from "./index"; +import * as m15 from "./subfolder"; +import * as m16 from "./subfolder/"; +import * as m17 from "./subfolder/index"; +import * as m18 from "./subfolder2"; +import * as m19 from "./subfolder2/"; +import * as m20 from "./subfolder2/index"; +import * as m21 from "./subfolder2/another"; +import * as m22 from "./subfolder2/another/"; +import * as m23 from "./subfolder2/another/index"; void m1; void m2; void m3; @@ -525,17 +512,17 @@ void m21; void m22; void m23; // These should _mostly_ work - `import = require` always desugars to require calls, which do have extension and index resolution (but can't load anything that resolves to esm!) -const m24 = require("./"); -const m25 = require("./index"); -const m26 = require("./subfolder"); -const m27 = require("./subfolder/"); -const m28 = require("./subfolder/index"); -const m29 = require("./subfolder2"); -const m30 = require("./subfolder2/"); -const m31 = require("./subfolder2/index"); -const m32 = require("./subfolder2/another"); -const m33 = require("./subfolder2/another/"); -const m34 = require("./subfolder2/another/index"); +const m24 = __require("./"); +const m25 = __require("./index"); +const m26 = __require("./subfolder"); +const m27 = __require("./subfolder/"); +const m28 = __require("./subfolder/index"); +const m29 = __require("./subfolder2"); +const m30 = __require("./subfolder2/"); +const m31 = __require("./subfolder2/index"); +const m32 = __require("./subfolder2/another"); +const m33 = __require("./subfolder2/another/"); +const m34 = __require("./subfolder2/another/index"); void m24; void m25; void m26; @@ -561,35 +548,34 @@ const _m44 = import("./subfolder2/another/"); const _m45 = import("./subfolder2/another/index"); // esm format file const x = 1; -exports.x = x; +export { x }; //// [index.js] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.x = void 0; -const m1 = require("./index.js"); -const m2 = require("./index.mjs"); -const m3 = require("./index.cjs"); -const m4 = require("./subfolder/index.js"); -const m5 = require("./subfolder/index.mjs"); -const m6 = require("./subfolder/index.cjs"); -const m7 = require("./subfolder2/index.js"); -const m8 = require("./subfolder2/index.mjs"); -const m9 = require("./subfolder2/index.cjs"); -const m10 = require("./subfolder2/another/index.js"); -const m11 = require("./subfolder2/another/index.mjs"); -const m12 = require("./subfolder2/another/index.cjs"); +import { createRequire as _createRequire } from "module"; +const __require = _createRequire(import.meta.url); +import * as m1 from "./index.js"; +import * as m2 from "./index.mjs"; +import * as m3 from "./index.cjs"; +import * as m4 from "./subfolder/index.js"; +import * as m5 from "./subfolder/index.mjs"; +import * as m6 from "./subfolder/index.cjs"; +import * as m7 from "./subfolder2/index.js"; +import * as m8 from "./subfolder2/index.mjs"; +import * as m9 from "./subfolder2/index.cjs"; +import * as m10 from "./subfolder2/another/index.js"; +import * as m11 from "./subfolder2/another/index.mjs"; +import * as m12 from "./subfolder2/another/index.cjs"; // The next ones shouldn't all work - esm format files have no index resolution or extension resolution -const m13 = require("./"); -const m14 = require("./index"); -const m15 = require("./subfolder"); -const m16 = require("./subfolder/"); -const m17 = require("./subfolder/index"); -const m18 = require("./subfolder2"); -const m19 = require("./subfolder2/"); -const m20 = require("./subfolder2/index"); -const m21 = require("./subfolder2/another"); -const m22 = require("./subfolder2/another/"); -const m23 = require("./subfolder2/another/index"); +import * as m13 from "./"; +import * as m14 from "./index"; +import * as m15 from "./subfolder"; +import * as m16 from "./subfolder/"; +import * as m17 from "./subfolder/index"; +import * as m18 from "./subfolder2"; +import * as m19 from "./subfolder2/"; +import * as m20 from "./subfolder2/index"; +import * as m21 from "./subfolder2/another"; +import * as m22 from "./subfolder2/another/"; +import * as m23 from "./subfolder2/another/index"; void m1; void m2; void m3; @@ -614,17 +600,17 @@ void m21; void m22; void m23; // These should _mostly_ work - `import = require` always desugars to require calls, which do have extension and index resolution (but can't load anything that resolves to esm!) -const m24 = require("./"); -const m25 = require("./index"); -const m26 = require("./subfolder"); -const m27 = require("./subfolder/"); -const m28 = require("./subfolder/index"); -const m29 = require("./subfolder2"); -const m30 = require("./subfolder2/"); -const m31 = require("./subfolder2/index"); -const m32 = require("./subfolder2/another"); -const m33 = require("./subfolder2/another/"); -const m34 = require("./subfolder2/another/index"); +const m24 = __require("./"); +const m25 = __require("./index"); +const m26 = __require("./subfolder"); +const m27 = __require("./subfolder/"); +const m28 = __require("./subfolder/index"); +const m29 = __require("./subfolder2"); +const m30 = __require("./subfolder2/"); +const m31 = __require("./subfolder2/index"); +const m32 = __require("./subfolder2/another"); +const m33 = __require("./subfolder2/another/"); +const m34 = __require("./subfolder2/another/index"); void m24; void m25; void m26; @@ -650,7 +636,7 @@ const _m44 = import("./subfolder2/another/"); const _m45 = import("./subfolder2/another/index"); // esm format file const x = 1; -exports.x = x; +export { x }; //// [index.d.ts] diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJs1(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJs1(module=node18).js.diff index 1dddd2bd27..546ae3167c 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJs1(module=node18).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJs1(module=node18).js.diff @@ -1,47 +1,9 @@ --- old.nodeModulesAllowJs1(module=node18).js +++ new.nodeModulesAllowJs1(module=node18).js -@@= skipped -334, +334 lines =@@ - const x = 1; - exports.x = x; - //// [index.mjs] --// esm format file --const x = 1; --export { x }; --//// [index.js] --"use strict"; --Object.defineProperty(exports, "__esModule", { value: true }); --exports.x = void 0; --// cjs format file --const x = 1; --exports.x = x; --//// [index.cjs] --"use strict"; --Object.defineProperty(exports, "__esModule", { value: true }); --exports.x = void 0; --// cjs format file --const x = 1; --exports.x = x; --//// [index.mjs] --// esm format file --const x = 1; --export { x }; --//// [index.js] --// esm format file --const x = 1; --export { x }; --//// [index.cjs] --"use strict"; --Object.defineProperty(exports, "__esModule", { value: true }); --exports.x = void 0; --// cjs format file --const x = 1; --exports.x = x; --//// [index.mjs] --// esm format file --const x = 1; --export { x }; --//// [index.cjs] --"use strict"; +@@= skipped -372, +372 lines =@@ + export { x }; + //// [index.cjs] + "use strict"; -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); @@ -75,56 +37,6 @@ - return result; - }; -})(); -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); -+exports.x = void 0; -+// esm format file -+const x = 1; -+exports.x = x; -+//// [index.js] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); -+exports.x = void 0; -+// cjs format file -+const x = 1; -+exports.x = x; -+//// [index.cjs] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); -+exports.x = void 0; -+// cjs format file -+const x = 1; -+exports.x = x; -+//// [index.mjs] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); -+exports.x = void 0; -+// esm format file -+const x = 1; -+exports.x = x; -+//// [index.js] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); -+exports.x = void 0; -+// esm format file -+const x = 1; -+exports.x = x; -+//// [index.cjs] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); -+exports.x = void 0; -+// cjs format file -+const x = 1; -+exports.x = x; -+//// [index.mjs] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); -+exports.x = void 0; -+// esm format file -+const x = 1; -+exports.x = x; -+//// [index.cjs] -+"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.x = void 0; // ESM-format imports below should issue errors @@ -178,193 +90,10 @@ void m1; void m2; void m3; -@@= skipped -160, +139 lines =@@ - const x = 1; - exports.x = x; - //// [index.mjs] --import { createRequire as _createRequire } from "module"; --const __require = _createRequire(import.meta.url); --import * as m1 from "./index.js"; --import * as m2 from "./index.mjs"; --import * as m3 from "./index.cjs"; --import * as m4 from "./subfolder/index.js"; --import * as m5 from "./subfolder/index.mjs"; --import * as m6 from "./subfolder/index.cjs"; --import * as m7 from "./subfolder2/index.js"; --import * as m8 from "./subfolder2/index.mjs"; --import * as m9 from "./subfolder2/index.cjs"; --import * as m10 from "./subfolder2/another/index.js"; --import * as m11 from "./subfolder2/another/index.mjs"; --import * as m12 from "./subfolder2/another/index.cjs"; -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); -+exports.x = void 0; -+const m1 = require("./index.js"); -+const m2 = require("./index.mjs"); -+const m3 = require("./index.cjs"); -+const m4 = require("./subfolder/index.js"); -+const m5 = require("./subfolder/index.mjs"); -+const m6 = require("./subfolder/index.cjs"); -+const m7 = require("./subfolder2/index.js"); -+const m8 = require("./subfolder2/index.mjs"); -+const m9 = require("./subfolder2/index.cjs"); -+const m10 = require("./subfolder2/another/index.js"); -+const m11 = require("./subfolder2/another/index.mjs"); -+const m12 = require("./subfolder2/another/index.cjs"); - // The next ones should all fail - esm format files have no index resolution or extension resolution --import * as m13 from "./"; --import * as m14 from "./index"; --import * as m15 from "./subfolder"; --import * as m16 from "./subfolder/"; --import * as m17 from "./subfolder/index"; --import * as m18 from "./subfolder2"; --import * as m19 from "./subfolder2/"; --import * as m20 from "./subfolder2/index"; --import * as m21 from "./subfolder2/another"; --import * as m22 from "./subfolder2/another/"; --import * as m23 from "./subfolder2/another/index"; -+const m13 = require("./"); -+const m14 = require("./index"); -+const m15 = require("./subfolder"); -+const m16 = require("./subfolder/"); -+const m17 = require("./subfolder/index"); -+const m18 = require("./subfolder2"); -+const m19 = require("./subfolder2/"); -+const m20 = require("./subfolder2/index"); -+const m21 = require("./subfolder2/another"); -+const m22 = require("./subfolder2/another/"); -+const m23 = require("./subfolder2/another/index"); - void m1; - void m2; - void m3; -@@= skipped -50, +51 lines =@@ - void m22; - void m23; - // These should _mostly_ work - `import = require` always desugars to require calls, which do have extension and index resolution (but can't load anything that resolves to esm!) --const m24 = __require("./"); --const m25 = __require("./index"); --const m26 = __require("./subfolder"); --const m27 = __require("./subfolder/"); --const m28 = __require("./subfolder/index"); --const m29 = __require("./subfolder2"); --const m30 = __require("./subfolder2/"); --const m31 = __require("./subfolder2/index"); --const m32 = __require("./subfolder2/another"); --const m33 = __require("./subfolder2/another/"); --const m34 = __require("./subfolder2/another/index"); -+const m24 = require("./"); -+const m25 = require("./index"); -+const m26 = require("./subfolder"); -+const m27 = require("./subfolder/"); -+const m28 = require("./subfolder/index"); -+const m29 = require("./subfolder2"); -+const m30 = require("./subfolder2/"); -+const m31 = require("./subfolder2/index"); -+const m32 = require("./subfolder2/another"); -+const m33 = require("./subfolder2/another/"); -+const m34 = require("./subfolder2/another/index"); - void m24; - void m25; - void m26; -@@= skipped -36, +36 lines =@@ - const _m45 = import("./subfolder2/another/index"); - // esm format file - const x = 1; --export { x }; -+exports.x = x; - //// [index.js] --import { createRequire as _createRequire } from "module"; --const __require = _createRequire(import.meta.url); --import * as m1 from "./index.js"; --import * as m2 from "./index.mjs"; --import * as m3 from "./index.cjs"; --import * as m4 from "./subfolder/index.js"; --import * as m5 from "./subfolder/index.mjs"; --import * as m6 from "./subfolder/index.cjs"; --import * as m7 from "./subfolder2/index.js"; --import * as m8 from "./subfolder2/index.mjs"; --import * as m9 from "./subfolder2/index.cjs"; --import * as m10 from "./subfolder2/another/index.js"; --import * as m11 from "./subfolder2/another/index.mjs"; --import * as m12 from "./subfolder2/another/index.cjs"; -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); -+exports.x = void 0; -+const m1 = require("./index.js"); -+const m2 = require("./index.mjs"); -+const m3 = require("./index.cjs"); -+const m4 = require("./subfolder/index.js"); -+const m5 = require("./subfolder/index.mjs"); -+const m6 = require("./subfolder/index.cjs"); -+const m7 = require("./subfolder2/index.js"); -+const m8 = require("./subfolder2/index.mjs"); -+const m9 = require("./subfolder2/index.cjs"); -+const m10 = require("./subfolder2/another/index.js"); -+const m11 = require("./subfolder2/another/index.mjs"); -+const m12 = require("./subfolder2/another/index.cjs"); - // The next ones shouldn't all work - esm format files have no index resolution or extension resolution --import * as m13 from "./"; --import * as m14 from "./index"; --import * as m15 from "./subfolder"; --import * as m16 from "./subfolder/"; --import * as m17 from "./subfolder/index"; --import * as m18 from "./subfolder2"; --import * as m19 from "./subfolder2/"; --import * as m20 from "./subfolder2/index"; --import * as m21 from "./subfolder2/another"; --import * as m22 from "./subfolder2/another/"; --import * as m23 from "./subfolder2/another/index"; -+const m13 = require("./"); -+const m14 = require("./index"); -+const m15 = require("./subfolder"); -+const m16 = require("./subfolder/"); -+const m17 = require("./subfolder/index"); -+const m18 = require("./subfolder2"); -+const m19 = require("./subfolder2/"); -+const m20 = require("./subfolder2/index"); -+const m21 = require("./subfolder2/another"); -+const m22 = require("./subfolder2/another/"); -+const m23 = require("./subfolder2/another/index"); - void m1; - void m2; - void m3; -@@= skipped -52, +53 lines =@@ - void m22; - void m23; - // These should _mostly_ work - `import = require` always desugars to require calls, which do have extension and index resolution (but can't load anything that resolves to esm!) --const m24 = __require("./"); --const m25 = __require("./index"); --const m26 = __require("./subfolder"); --const m27 = __require("./subfolder/"); --const m28 = __require("./subfolder/index"); --const m29 = __require("./subfolder2"); --const m30 = __require("./subfolder2/"); --const m31 = __require("./subfolder2/index"); --const m32 = __require("./subfolder2/another"); --const m33 = __require("./subfolder2/another/"); --const m34 = __require("./subfolder2/another/index"); -+const m24 = require("./"); -+const m25 = require("./index"); -+const m26 = require("./subfolder"); -+const m27 = require("./subfolder/"); -+const m28 = require("./subfolder/index"); -+const m29 = require("./subfolder2"); -+const m30 = require("./subfolder2/"); -+const m31 = require("./subfolder2/index"); -+const m32 = require("./subfolder2/another"); -+const m33 = require("./subfolder2/another/"); -+const m34 = require("./subfolder2/another/index"); - void m24; - void m25; - void m26; -@@= skipped -36, +36 lines =@@ - const _m45 = import("./subfolder2/another/index"); - // esm format file - const x = 1; --export { x }; -- -- --//// [index.d.ts] +@@= skipped -300, +267 lines =@@ + + + //// [index.d.ts] -export const x: 1; -//// [index.d.cts] -export const x: 1; @@ -388,10 +117,6 @@ -export const x: 1; -//// [index.d.ts] -export const x: 1; -+exports.x = x; -+ -+ -+//// [index.d.ts] +// cjs format file +declare const x = 1; +export { x }; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsConditionalPackageExports(module=node18).js b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsConditionalPackageExports(module=node18).js index 0099063304..bc92faebf9 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsConditionalPackageExports(module=node18).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsConditionalPackageExports(module=node18).js @@ -123,19 +123,17 @@ export const cjsSource = true; } //// [index.mjs] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); // esm format file -const cjs = require("package/cjs"); -const mjs = require("package/mjs"); -const type = require("package"); +import * as cjs from "package/cjs"; +import * as mjs from "package/mjs"; +import * as type from "package"; cjs; mjs; type; -const cjsi = require("inner/a"); -const mjsi = require("inner/b"); -const typei = require("inner"); -const ts = require("inner/types"); +import * as cjsi from "inner/a"; +import * as mjsi from "inner/b"; +import * as typei from "inner"; +import * as ts from "inner/types"; cjsi.mjsSource; mjsi.mjsSource; typei.mjsSource; @@ -159,19 +157,17 @@ mjsi.cjsSource; typei.implicitCjsSource; ts.cjsSource; //// [index.js] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); // esm format file -const cjs = require("package/cjs"); -const mjs = require("package/mjs"); -const type = require("package"); +import * as cjs from "package/cjs"; +import * as mjs from "package/mjs"; +import * as type from "package"; cjs; mjs; type; -const cjsi = require("inner/a"); -const mjsi = require("inner/b"); -const typei = require("inner"); -const ts = require("inner/types"); +import * as cjsi from "inner/a"; +import * as mjsi from "inner/b"; +import * as typei from "inner"; +import * as ts from "inner/types"; cjsi.mjsSource; mjsi.mjsSource; typei.mjsSource; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsConditionalPackageExports(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsConditionalPackageExports(module=node18).js.diff index 852ec6e844..591822ad6f 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsConditionalPackageExports(module=node18).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsConditionalPackageExports(module=node18).js.diff @@ -1,32 +1,6 @@ --- old.nodeModulesAllowJsConditionalPackageExports(module=node18).js +++ new.nodeModulesAllowJsConditionalPackageExports(module=node18).js -@@= skipped -122, +122 lines =@@ - } - - //// [index.mjs] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); - // esm format file --import * as cjs from "package/cjs"; --import * as mjs from "package/mjs"; --import * as type from "package"; -+const cjs = require("package/cjs"); -+const mjs = require("package/mjs"); -+const type = require("package"); - cjs; - mjs; - type; --import * as cjsi from "inner/a"; --import * as mjsi from "inner/b"; --import * as typei from "inner"; --import * as ts from "inner/types"; -+const cjsi = require("inner/a"); -+const mjsi = require("inner/b"); -+const typei = require("inner"); -+const ts = require("inner/types"); - cjsi.mjsSource; - mjsi.mjsSource; - typei.mjsSource; +@@= skipped -139, +139 lines =@@ ts.mjsSource; //// [index.cjs] "use strict"; @@ -84,29 +58,4 @@ +const ts = require("inner/types"); cjsi.cjsSource; mjsi.cjsSource; - typei.implicitCjsSource; - ts.cjsSource; - //// [index.js] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); - // esm format file --import * as cjs from "package/cjs"; --import * as mjs from "package/mjs"; --import * as type from "package"; -+const cjs = require("package/cjs"); -+const mjs = require("package/mjs"); -+const type = require("package"); - cjs; - mjs; - type; --import * as cjsi from "inner/a"; --import * as mjsi from "inner/b"; --import * as typei from "inner"; --import * as ts from "inner/types"; -+const cjsi = require("inner/a"); -+const mjsi = require("inner/b"); -+const typei = require("inner"); -+const ts = require("inner/types"); - cjsi.mjsSource; - mjsi.mjsSource; - typei.mjsSource; \ No newline at end of file + typei.implicitCjsSource; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsDynamicImport(module=node18).js b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsDynamicImport(module=node18).js index a87bd0d5fa..59027fbfed 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsDynamicImport(module=node18).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsDynamicImport(module=node18).js @@ -32,11 +32,8 @@ async function main() { const { readFile } = await import("fs"); } //// [index.js] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.main = main; // esm format file -async function main() { +export async function main() { const { readFile } = await import("fs"); } diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsDynamicImport(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsDynamicImport(module=node18).js.diff index 03676d80ce..0c460481a8 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsDynamicImport(module=node18).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsDynamicImport(module=node18).js.diff @@ -1,17 +1,6 @@ --- old.nodeModulesAllowJsDynamicImport(module=node18).js +++ new.nodeModulesAllowJsDynamicImport(module=node18).js -@@= skipped -31, +31 lines =@@ - const { readFile } = await import("fs"); - } - //// [index.js] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); -+exports.main = main; - // esm format file --export async function main() { -+async function main() { - const { readFile } = await import("fs"); - } +@@= skipped -38, +38 lines =@@ //// [index.d.ts] diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsExportAssignment(module=node18).js b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsExportAssignment(module=node18).js index ce4449e488..91ecea6d0b 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsExportAssignment(module=node18).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsExportAssignment(module=node18).js @@ -39,15 +39,12 @@ const a = {}; export = a; module.exports = a; //// [index.js] -"use strict"; // esm format file const a = {}; -module.exports = a; +export {}; //// [file.js] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); // esm format file -require("fs"); +import "fs"; const a = {}; export = a; module.exports = a; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsExportAssignment(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsExportAssignment(module=node18).js.diff index 0572935149..4cf48c8e26 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsExportAssignment(module=node18).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsExportAssignment(module=node18).js.diff @@ -10,47 +10,30 @@ +export = a; module.exports = a; //// [index.js] -+"use strict"; // esm format file +@@= skipped -12, +12 lines =@@ + // esm format file + import "fs"; const a = {}; --export {}; -+module.exports = a; - //// [file.js] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); -+// esm format file -+require("fs"); -+const a = {}; +export = a; -+module.exports = a; -+ -+ -+//// [index.d.ts] + module.exports = a; + + + //// [index.d.ts] +-export = a; +// cjs format file -+declare const a: {}; -+export = a; -+//// [file.d.ts] -+export = a; -+//// [index.d.ts] -+// esm format file -+declare const a: {}; + declare const a: {}; +export = a; -+//// [file.d.ts] - // esm format file - import "fs"; --const a = {}; --module.exports = a; -- -- --//// [index.d.ts] --export = a; --declare const a: {}; --//// [file.d.ts] --export = a; + //// [file.d.ts] + export = a; -declare const a: {}; --//// [index.d.ts] + //// [index.d.ts] -export = a; --declare const a: {}; --//// [file.d.ts] ++// esm format file + declare const a: {}; ++export = a; + //// [file.d.ts] -export {}; ++// esm format file ++import "fs"; +export = a; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsGeneratedNameCollisions(module=node18).js b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsGeneratedNameCollisions(module=node18).js index a5606935ec..847c8e47c2 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsGeneratedNameCollisions(module=node18).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsGeneratedNameCollisions(module=node18).js @@ -39,18 +39,13 @@ class Object { exports.Object = Object; exports.__esModule = false; //// [index.js] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.Object = exports.exports = exports.__esModule = void 0; -exports.require = require; // esm format file function require() { } const exports = {}; -exports.exports = exports; class Object { } -exports.Object = Object; -exports.__esModule = false; +export const __esModule = false; +export { require, exports, Object }; //// [index.d.ts] diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsGeneratedNameCollisions(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsGeneratedNameCollisions(module=node18).js.diff index 8f901e92de..2c197aef27 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsGeneratedNameCollisions(module=node18).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsGeneratedNameCollisions(module=node18).js.diff @@ -1,52 +1,29 @@ --- old.nodeModulesAllowJsGeneratedNameCollisions(module=node18).js +++ new.nodeModulesAllowJsGeneratedNameCollisions(module=node18).js -@@= skipped -38, +38 lines =@@ - exports.Object = Object; - exports.__esModule = false; - //// [index.js] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); -+exports.Object = exports.exports = exports.__esModule = void 0; -+exports.require = require; - // esm format file - function require() { } - const exports = {}; -+exports.exports = exports; - class Object { - } --export const __esModule = false; --export { require, exports, Object }; -- -- --//// [index.d.ts] --export const __esModule: false; --export function require(): void; --export const exports: {}; --export class Object { --} --//// [index.d.ts] +@@= skipped -48, +48 lines =@@ + + + //// [index.d.ts] -export const __esModule: false; -export function require(): void; -export const exports: {}; -export class Object { --} -+exports.Object = Object; -+exports.__esModule = false; -+ -+ -+//// [index.d.ts] +// cjs format file +declare function require(): void; +declare const exports: {}; +declare class Object { -+} + } +export declare const __esModule = false; +export { require, exports, Object }; -+//// [index.d.ts] + //// [index.d.ts] +-export const __esModule: false; +-export function require(): void; +-export const exports: {}; +-export class Object { +// esm format file +declare function require(): void; +declare const exports: {}; +declare class Object { -+} + } +export declare const __esModule = false; +export { require, exports, Object }; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportAssignment(module=node18).js b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportAssignment(module=node18).js index 2cef9a1e63..80990ff3ca 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportAssignment(module=node18).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportAssignment(module=node18).js @@ -38,21 +38,23 @@ const fs = require("fs"); fs.readFile; exports.fs2 = require("fs"); //// [index.js] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); +import { createRequire as _createRequire } from "module"; +const __require = _createRequire(import.meta.url); // esm format file -const fs = require("fs"); +const fs = __require("fs"); fs.readFile; -exports.fs2 = require("fs"); +const fs2 = __require("fs"); +export { fs2 }; //// [file.js] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); +import { createRequire as _createRequire_1 } from "module"; +const __require_1 = _createRequire_1(import.meta.url); // esm format file const __require = null; const _createRequire = null; -const fs = require("fs"); +const fs = __require_1("fs"); fs.readFile; -exports.fs2 = require("fs"); +const fs2 = __require_1("fs"); +export { fs2 }; //// [index.d.ts] diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportAssignment(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportAssignment(module=node18).js.diff index a9d8b18538..1d67920842 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportAssignment(module=node18).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportAssignment(module=node18).js.diff @@ -1,45 +1,13 @@ --- old.nodeModulesAllowJsImportAssignment(module=node18).js +++ new.nodeModulesAllowJsImportAssignment(module=node18).js -@@= skipped -37, +37 lines =@@ - fs.readFile; - exports.fs2 = require("fs"); - //// [index.js] --import { createRequire as _createRequire } from "module"; --const __require = _createRequire(import.meta.url); -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); - // esm format file --const fs = __require("fs"); -+const fs = require("fs"); - fs.readFile; --const fs2 = __require("fs"); --export { fs2 }; -+exports.fs2 = require("fs"); - //// [file.js] --import { createRequire as _createRequire_1 } from "module"; --const __require_1 = _createRequire_1(import.meta.url); -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); - // esm format file - const __require = null; - const _createRequire = null; --const fs = __require_1("fs"); -+const fs = require("fs"); - fs.readFile; --const fs2 = __require_1("fs"); --export { fs2 }; -- -- --//// [index.d.ts] +@@= skipped -57, +57 lines =@@ + + + //// [index.d.ts] -import fs2 = require("fs"); --//// [index.d.ts] --import fs2 = require("fs"); -+exports.fs2 = require("fs"); -+ -+ -+//// [index.d.ts] +export import fs2 = require("fs"); -+//// [index.d.ts] + //// [index.d.ts] +-import fs2 = require("fs"); +export import fs2 = require("fs"); //// [file.d.ts] -import fs2 = require("fs"); diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportHelpersCollisions1(module=node18).js b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportHelpersCollisions1(module=node18).js index 1210148c3a..a2dd953a21 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportHelpersCollisions1(module=node18).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportHelpersCollisions1(module=node18).js @@ -38,12 +38,10 @@ fs_1.default.readFile; const fs = require("fs"); fs.readFile; //// [index.js] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); // esm format file -const fs_1 = require("fs"); -fs_1.default.readFile; -const fs = require("fs"); +import { default as _fs } from "fs"; +_fs.readFile; +import * as fs from "fs"; fs.readFile; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportHelpersCollisions1(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportHelpersCollisions1(module=node18).js.diff index b1557f6472..fa913e9ede 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportHelpersCollisions1(module=node18).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportHelpersCollisions1(module=node18).js.diff @@ -13,14 +13,4 @@ +const fs = require("fs"); fs.readFile; //// [index.js] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); - // esm format file --import { default as _fs } from "fs"; --_fs.readFile; --import * as fs from "fs"; -+const fs_1 = require("fs"); -+fs_1.default.readFile; -+const fs = require("fs"); - fs.readFile; - + // esm format file \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportHelpersCollisions2(module=node18).js b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportHelpersCollisions2(module=node18).js index 30071155df..64405d2cb8 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportHelpersCollisions2(module=node18).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportHelpersCollisions2(module=node18).js @@ -34,13 +34,9 @@ const tslib_1 = require("tslib"); tslib_1.__exportStar(require("fs"), exports); exports.fs = require("fs"); //// [index.js] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.fs = void 0; -const tslib_1 = require("tslib"); // esm format file -__exportStar(require("fs"), exports); -exports.fs = require("fs"); +export * from "fs"; +export * as fs from "fs"; //// [index.d.ts] diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportHelpersCollisions2(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportHelpersCollisions2(module=node18).js.diff index 8891e5a9e6..2e51e5d0c7 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportHelpersCollisions2(module=node18).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportHelpersCollisions2(module=node18).js.diff @@ -7,29 +7,16 @@ -exports.fs = tslib_1.__importStar(require("fs")); +exports.fs = require("fs"); //// [index.js] --// esm format file --export * from "fs"; --export * as fs from "fs"; -- -- --//// [index.d.ts] --export * from "fs"; --export * as fs from "fs"; --//// [index.d.ts] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); -+exports.fs = void 0; -+const tslib_1 = require("tslib"); -+// esm format file -+__exportStar(require("fs"), exports); -+exports.fs = require("fs"); -+ -+ -+//// [index.d.ts] + // esm format file + export * from "fs"; +@@= skipped -8, +8 lines =@@ + + + //// [index.d.ts] +// cjs format file -+export * from "fs"; -+export * as fs from "fs"; -+//// [index.d.ts] + export * from "fs"; + export * as fs from "fs"; + //// [index.d.ts] +// esm format file export * from "fs"; export * as fs from "fs"; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportHelpersCollisions3(module=node18).js b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportHelpersCollisions3(module=node18).js index a7cd4a1ee1..878a995831 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportHelpersCollisions3(module=node18).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportHelpersCollisions3(module=node18).js @@ -39,16 +39,10 @@ Object.defineProperty(exports, "foo", { enumerable: true, get: function () { ret const fs_3 = require("fs"); Object.defineProperty(exports, "baz", { enumerable: true, get: function () { return fs_3.bar; } }); //// [index.js] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.baz = exports.foo = exports.default = void 0; // esm format file -const fs_1 = require("fs"); -Object.defineProperty(exports, "default", { enumerable: true, get: function () { return fs_1.default; } }); -const fs_2 = require("fs"); -Object.defineProperty(exports, "foo", { enumerable: true, get: function () { return fs_2.default; } }); -const fs_3 = require("fs"); -Object.defineProperty(exports, "baz", { enumerable: true, get: function () { return fs_3.bar; } }); +export { default } from "fs"; +export { default as foo } from "fs"; +export { bar as baz } from "fs"; //// [index.d.ts] diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportHelpersCollisions3(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportHelpersCollisions3(module=node18).js.diff index 549427edf3..4aace85945 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportHelpersCollisions3(module=node18).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportHelpersCollisions3(module=node18).js.diff @@ -18,34 +18,18 @@ +const fs_3 = require("fs"); Object.defineProperty(exports, "baz", { enumerable: true, get: function () { return fs_3.bar; } }); //// [index.js] --// esm format file --export { default } from "fs"; --export { default as foo } from "fs"; --export { bar as baz } from "fs"; -- -- --//// [index.d.ts] + // esm format file +@@= skipped -16, +15 lines =@@ + + + //// [index.d.ts] -export { default, default as foo, bar as baz } from "fs"; --//// [index.d.ts] --export { default, default as foo, bar as baz } from "fs"; -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); -+exports.baz = exports.foo = exports.default = void 0; -+// esm format file -+const fs_1 = require("fs"); -+Object.defineProperty(exports, "default", { enumerable: true, get: function () { return fs_1.default; } }); -+const fs_2 = require("fs"); -+Object.defineProperty(exports, "foo", { enumerable: true, get: function () { return fs_2.default; } }); -+const fs_3 = require("fs"); -+Object.defineProperty(exports, "baz", { enumerable: true, get: function () { return fs_3.bar; } }); -+ -+ -+//// [index.d.ts] +// cjs format file +export { default } from "fs"; +export { default as foo } from "fs"; +export { bar as baz } from "fs"; -+//// [index.d.ts] + //// [index.d.ts] +-export { default, default as foo, bar as baz } from "fs"; +// esm format file +export { default } from "fs"; +export { default as foo } from "fs"; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportMeta(module=node18).js b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportMeta(module=node18).js index 98d404af57..23c6e47c50 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportMeta(module=node18).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportMeta(module=node18).js @@ -27,12 +27,9 @@ exports.x = void 0; const x = import.meta.url; exports.x = x; //// [index.js] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.x = void 0; // esm format file const x = import.meta.url; -exports.x = x; +export { x }; //// [index.d.ts] diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportMeta(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportMeta(module=node18).js.diff index 5af2feb917..e8e3f59b89 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportMeta(module=node18).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportMeta(module=node18).js.diff @@ -1,29 +1,15 @@ --- old.nodeModulesAllowJsImportMeta(module=node18).js +++ new.nodeModulesAllowJsImportMeta(module=node18).js -@@= skipped -26, +26 lines =@@ - const x = import.meta.url; - exports.x = x; - //// [index.js] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); -+exports.x = void 0; - // esm format file - const x = import.meta.url; --export { x }; -- -- --//// [index.d.ts] +@@= skipped -32, +32 lines =@@ + + + //// [index.d.ts] -export const x: string; --//// [index.d.ts] --export const x: string; -+exports.x = x; -+ -+ -+//// [index.d.ts] +// cjs format file +declare const x: string; +export { x }; -+//// [index.d.ts] + //// [index.d.ts] +-export const x: string; +// esm format file +declare const x: string; +export { x }; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsPackageExports(module=node18).js b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsPackageExports(module=node18).js index 6f3679e8cc..acd2fda96f 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsPackageExports(module=node18).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsPackageExports(module=node18).js @@ -89,18 +89,16 @@ export { type }; } //// [index.mjs] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); // esm format file -const cjs = require("package/cjs"); -const mjs = require("package/mjs"); -const type = require("package"); +import * as cjs from "package/cjs"; +import * as mjs from "package/mjs"; +import * as type from "package"; cjs; mjs; type; -const cjsi = require("inner/cjs"); -const mjsi = require("inner/mjs"); -const typei = require("inner"); +import * as cjsi from "inner/cjs"; +import * as mjsi from "inner/mjs"; +import * as typei from "inner"; cjsi; mjsi; typei; @@ -121,18 +119,16 @@ cjsi; mjsi; typei; //// [index.js] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); // esm format file -const cjs = require("package/cjs"); -const mjs = require("package/mjs"); -const type = require("package"); +import * as cjs from "package/cjs"; +import * as mjs from "package/mjs"; +import * as type from "package"; cjs; mjs; type; -const cjsi = require("inner/cjs"); -const mjsi = require("inner/mjs"); -const typei = require("inner"); +import * as cjsi from "inner/cjs"; +import * as mjsi from "inner/mjs"; +import * as typei from "inner"; cjsi; mjsi; typei; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsPackageExports(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsPackageExports(module=node18).js.diff index f7bd80c825..d1e301cc9d 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsPackageExports(module=node18).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsPackageExports(module=node18).js.diff @@ -1,29 +1,6 @@ --- old.nodeModulesAllowJsPackageExports(module=node18).js +++ new.nodeModulesAllowJsPackageExports(module=node18).js -@@= skipped -88, +88 lines =@@ - } - - //// [index.mjs] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); - // esm format file --import * as cjs from "package/cjs"; --import * as mjs from "package/mjs"; --import * as type from "package"; -+const cjs = require("package/cjs"); -+const mjs = require("package/mjs"); -+const type = require("package"); - cjs; - mjs; - type; --import * as cjsi from "inner/cjs"; --import * as mjsi from "inner/mjs"; --import * as typei from "inner"; -+const cjsi = require("inner/cjs"); -+const mjsi = require("inner/mjs"); -+const typei = require("inner"); - cjsi; - mjsi; +@@= skipped -103, +103 lines =@@ typei; //// [index.cjs] "use strict"; @@ -76,28 +53,6 @@ -const typei = __importStar(require("inner")); +const cjsi = require("inner/cjs"); +const mjsi = require("inner/mjs"); -+const typei = require("inner"); - cjsi; - mjsi; - typei; - //// [index.js] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); - // esm format file --import * as cjs from "package/cjs"; --import * as mjs from "package/mjs"; --import * as type from "package"; -+const cjs = require("package/cjs"); -+const mjs = require("package/mjs"); -+const type = require("package"); - cjs; - mjs; - type; --import * as cjsi from "inner/cjs"; --import * as mjsi from "inner/mjs"; --import * as typei from "inner"; -+const cjsi = require("inner/cjs"); -+const mjsi = require("inner/mjs"); +const typei = require("inner"); cjsi; mjsi; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsPackageImports(module=node18).js b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsPackageImports(module=node18).js index 669c01ed68..85adfd4979 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsPackageImports(module=node18).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsPackageImports(module=node18).js @@ -38,12 +38,10 @@ type; } //// [index.mjs] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); // esm format file -const cjs = require("#cjs"); -const mjs = require("#mjs"); -const type = require("#type"); +import * as cjs from "#cjs"; +import * as mjs from "#mjs"; +import * as type from "#type"; cjs; mjs; type; @@ -58,12 +56,10 @@ cjs; mjs; type; //// [index.js] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); // esm format file -const cjs = require("#cjs"); -const mjs = require("#mjs"); -const type = require("#type"); +import * as cjs from "#cjs"; +import * as mjs from "#mjs"; +import * as type from "#type"; cjs; mjs; type; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsPackageImports(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsPackageImports(module=node18).js.diff index 4ce8d947cc..ee6583bebc 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsPackageImports(module=node18).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsPackageImports(module=node18).js.diff @@ -1,20 +1,6 @@ --- old.nodeModulesAllowJsPackageImports(module=node18).js +++ new.nodeModulesAllowJsPackageImports(module=node18).js -@@= skipped -37, +37 lines =@@ - } - - //// [index.mjs] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); - // esm format file --import * as cjs from "#cjs"; --import * as mjs from "#mjs"; --import * as type from "#type"; -+const cjs = require("#cjs"); -+const mjs = require("#mjs"); -+const type = require("#type"); - cjs; - mjs; +@@= skipped -46, +46 lines =@@ type; //// [index.cjs] "use strict"; @@ -58,19 +44,6 @@ -const type = __importStar(require("#type")); +const cjs = require("#cjs"); +const mjs = require("#mjs"); -+const type = require("#type"); - cjs; - mjs; - type; - //// [index.js] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); - // esm format file --import * as cjs from "#cjs"; --import * as mjs from "#mjs"; --import * as type from "#type"; -+const cjs = require("#cjs"); -+const mjs = require("#mjs"); +const type = require("#type"); cjs; mjs; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsPackagePatternExports(module=node18).js b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsPackagePatternExports(module=node18).js index 066c2c6afb..3751d171e1 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsPackagePatternExports(module=node18).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsPackagePatternExports(module=node18).js @@ -66,22 +66,18 @@ export { type }; } //// [index.js] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); // esm format file -const cjsi = require("inner/cjs/index"); -const mjsi = require("inner/mjs/index"); -const typei = require("inner/js/index"); +import * as cjsi from "inner/cjs/index"; +import * as mjsi from "inner/mjs/index"; +import * as typei from "inner/js/index"; cjsi; mjsi; typei; //// [index.mjs] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); // esm format file -const cjsi = require("inner/cjs/index"); -const mjsi = require("inner/mjs/index"); -const typei = require("inner/js/index"); +import * as cjsi from "inner/cjs/index"; +import * as mjsi from "inner/mjs/index"; +import * as typei from "inner/js/index"; cjsi; mjsi; typei; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsPackagePatternExports(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsPackagePatternExports(module=node18).js.diff index 977d31df92..6448f56f3f 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsPackagePatternExports(module=node18).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsPackagePatternExports(module=node18).js.diff @@ -1,33 +1,6 @@ --- old.nodeModulesAllowJsPackagePatternExports(module=node18).js +++ new.nodeModulesAllowJsPackagePatternExports(module=node18).js -@@= skipped -65, +65 lines =@@ - } - - //// [index.js] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); - // esm format file --import * as cjsi from "inner/cjs/index"; --import * as mjsi from "inner/mjs/index"; --import * as typei from "inner/js/index"; -+const cjsi = require("inner/cjs/index"); -+const mjsi = require("inner/mjs/index"); -+const typei = require("inner/js/index"); - cjsi; - mjsi; - typei; - //// [index.mjs] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); - // esm format file --import * as cjsi from "inner/cjs/index"; --import * as mjsi from "inner/mjs/index"; --import * as typei from "inner/js/index"; -+const cjsi = require("inner/cjs/index"); -+const mjsi = require("inner/mjs/index"); -+const typei = require("inner/js/index"); - cjsi; - mjsi; +@@= skipped -82, +82 lines =@@ typei; //// [index.cjs] "use strict"; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsPackagePatternExportsExclude(module=node18).js b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsPackagePatternExportsExclude(module=node18).js index 6e380318eb..38ad4085f6 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsPackagePatternExportsExclude(module=node18).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsPackagePatternExportsExclude(module=node18).js @@ -69,22 +69,18 @@ export { type }; } //// [index.js] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); // esm format file -const cjsi = require("inner/cjs/exclude/index"); -const mjsi = require("inner/mjs/exclude/index"); -const typei = require("inner/js/exclude/index"); +import * as cjsi from "inner/cjs/exclude/index"; +import * as mjsi from "inner/mjs/exclude/index"; +import * as typei from "inner/js/exclude/index"; cjsi; mjsi; typei; //// [index.mjs] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); // esm format file -const cjsi = require("inner/cjs/exclude/index"); -const mjsi = require("inner/mjs/exclude/index"); -const typei = require("inner/js/exclude/index"); +import * as cjsi from "inner/cjs/exclude/index"; +import * as mjsi from "inner/mjs/exclude/index"; +import * as typei from "inner/js/exclude/index"; cjsi; mjsi; typei; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsPackagePatternExportsExclude(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsPackagePatternExportsExclude(module=node18).js.diff index 72341d7bd8..3dfc3da1cd 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsPackagePatternExportsExclude(module=node18).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsPackagePatternExportsExclude(module=node18).js.diff @@ -1,33 +1,6 @@ --- old.nodeModulesAllowJsPackagePatternExportsExclude(module=node18).js +++ new.nodeModulesAllowJsPackagePatternExportsExclude(module=node18).js -@@= skipped -68, +68 lines =@@ - } - - //// [index.js] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); - // esm format file --import * as cjsi from "inner/cjs/exclude/index"; --import * as mjsi from "inner/mjs/exclude/index"; --import * as typei from "inner/js/exclude/index"; -+const cjsi = require("inner/cjs/exclude/index"); -+const mjsi = require("inner/mjs/exclude/index"); -+const typei = require("inner/js/exclude/index"); - cjsi; - mjsi; - typei; - //// [index.mjs] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); - // esm format file --import * as cjsi from "inner/cjs/exclude/index"; --import * as mjsi from "inner/mjs/exclude/index"; --import * as typei from "inner/js/exclude/index"; -+const cjsi = require("inner/cjs/exclude/index"); -+const mjsi = require("inner/mjs/exclude/index"); -+const typei = require("inner/js/exclude/index"); - cjsi; - mjsi; +@@= skipped -85, +85 lines =@@ typei; //// [index.cjs] "use strict"; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsPackagePatternExportsTrailers(module=node18).js b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsPackagePatternExportsTrailers(module=node18).js index d269d9f483..a4bc4ac46e 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsPackagePatternExportsTrailers(module=node18).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsPackagePatternExportsTrailers(module=node18).js @@ -66,22 +66,18 @@ export { type }; } //// [index.js] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); // esm format file -const cjsi = require("inner/cjs/index.cjs"); -const mjsi = require("inner/mjs/index.mjs"); -const typei = require("inner/js/index.js"); +import * as cjsi from "inner/cjs/index.cjs"; +import * as mjsi from "inner/mjs/index.mjs"; +import * as typei from "inner/js/index.js"; cjsi; mjsi; typei; //// [index.mjs] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); // esm format file -const cjsi = require("inner/cjs/index.cjs"); -const mjsi = require("inner/mjs/index.mjs"); -const typei = require("inner/js/index.js"); +import * as cjsi from "inner/cjs/index.cjs"; +import * as mjsi from "inner/mjs/index.mjs"; +import * as typei from "inner/js/index.js"; cjsi; mjsi; typei; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsPackagePatternExportsTrailers(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsPackagePatternExportsTrailers(module=node18).js.diff index d526cae854..de63598d0b 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsPackagePatternExportsTrailers(module=node18).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsPackagePatternExportsTrailers(module=node18).js.diff @@ -1,33 +1,6 @@ --- old.nodeModulesAllowJsPackagePatternExportsTrailers(module=node18).js +++ new.nodeModulesAllowJsPackagePatternExportsTrailers(module=node18).js -@@= skipped -65, +65 lines =@@ - } - - //// [index.js] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); - // esm format file --import * as cjsi from "inner/cjs/index.cjs"; --import * as mjsi from "inner/mjs/index.mjs"; --import * as typei from "inner/js/index.js"; -+const cjsi = require("inner/cjs/index.cjs"); -+const mjsi = require("inner/mjs/index.mjs"); -+const typei = require("inner/js/index.js"); - cjsi; - mjsi; - typei; - //// [index.mjs] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); - // esm format file --import * as cjsi from "inner/cjs/index.cjs"; --import * as mjsi from "inner/mjs/index.mjs"; --import * as typei from "inner/js/index.js"; -+const cjsi = require("inner/cjs/index.cjs"); -+const mjsi = require("inner/mjs/index.mjs"); -+const typei = require("inner/js/index.js"); - cjsi; - mjsi; +@@= skipped -82, +82 lines =@@ typei; //// [index.cjs] "use strict"; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsSynchronousCallErrors(module=node18).js b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsSynchronousCallErrors(module=node18).js index df11fc187e..3ea5819786 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsSynchronousCallErrors(module=node18).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsSynchronousCallErrors(module=node18).js @@ -34,18 +34,17 @@ export async function h() { } //// [index.js] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.h = h; +import { createRequire as _createRequire } from "module"; +const __require = _createRequire(import.meta.url); // esm format file -const index_js_1 = require("./index.js"); -const mod = require("./index.js"); -const index_js_2 = require("./subfolder/index.js"); -const mod2 = require("./subfolder/index.js"); -async function h() { +import { h as _h } from "./index.js"; +const mod = __require("./index.js"); +import { f } from "./subfolder/index.js"; +const mod2 = __require("./subfolder/index.js"); +export async function h() { const mod3 = await import("./index.js"); const mod4 = await import("./subfolder/index.js"); - (0, index_js_2.f)(); + f(); } //// [index.js] "use strict"; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsSynchronousCallErrors(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsSynchronousCallErrors(module=node18).js.diff index 2db2a9c034..e30c6e4ffc 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsSynchronousCallErrors(module=node18).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsSynchronousCallErrors(module=node18).js.diff @@ -1,33 +1,6 @@ --- old.nodeModulesAllowJsSynchronousCallErrors(module=node18).js +++ new.nodeModulesAllowJsSynchronousCallErrors(module=node18).js -@@= skipped -33, +33 lines =@@ - } - - //// [index.js] --import { createRequire as _createRequire } from "module"; --const __require = _createRequire(import.meta.url); -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); -+exports.h = h; - // esm format file --import { h as _h } from "./index.js"; --const mod = __require("./index.js"); --import { f } from "./subfolder/index.js"; --const mod2 = __require("./subfolder/index.js"); --export async function h() { -+const index_js_1 = require("./index.js"); -+const mod = require("./index.js"); -+const index_js_2 = require("./subfolder/index.js"); -+const mod2 = require("./subfolder/index.js"); -+async function h() { - const mod3 = await import("./index.js"); - const mod4 = await import("./subfolder/index.js"); -- f(); -+ (0, index_js_2.f)(); - } - //// [index.js] - "use strict"; -@@= skipped -29, +30 lines =@@ +@@= skipped -62, +62 lines =@@ //// [index.d.ts] diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsTopLevelAwait(module=node18).js b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsTopLevelAwait(module=node18).js index 83ba969813..d7e534e7c4 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsTopLevelAwait(module=node18).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsTopLevelAwait(module=node18).js @@ -30,12 +30,9 @@ const x = await 1; exports.x = x; for await (const y of []) { } //// [index.js] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.x = void 0; // esm format file const x = await 1; -exports.x = x; +export { x }; for await (const y of []) { } diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsTopLevelAwait(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsTopLevelAwait(module=node18).js.diff index 05093d7f3f..01f87ccf86 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsTopLevelAwait(module=node18).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsTopLevelAwait(module=node18).js.diff @@ -1,17 +1,6 @@ --- old.nodeModulesAllowJsTopLevelAwait(module=node18).js +++ new.nodeModulesAllowJsTopLevelAwait(module=node18).js -@@= skipped -29, +29 lines =@@ - exports.x = x; - for await (const y of []) { } - //// [index.js] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); -+exports.x = void 0; - // esm format file - const x = await 1; --export { x }; -+exports.x = x; - for await (const y of []) { } +@@= skipped -36, +36 lines =@@ //// [index.d.ts] diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesCjsFormatFileAlwaysHasDefault(module=node18).js b/testdata/baselines/reference/submodule/conformance/nodeModulesCjsFormatFileAlwaysHasDefault(module=node18).js index 1efea14d47..5653139603 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesCjsFormatFileAlwaysHasDefault(module=node18).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesCjsFormatFileAlwaysHasDefault(module=node18).js @@ -25,11 +25,9 @@ exports.a = void 0; // cjs format file exports.a = 1; //// [index.js] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); // esm format file -const index_js_1 = require("./subfolder/index.js"); -index_js_1.default; +import mod from "./subfolder/index.js"; +mod; //// [index.d.ts] diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesCjsFormatFileAlwaysHasDefault(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesCjsFormatFileAlwaysHasDefault(module=node18).js.diff index b8e99b4bdc..10fc6b270b 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesCjsFormatFileAlwaysHasDefault(module=node18).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesCjsFormatFileAlwaysHasDefault(module=node18).js.diff @@ -1,16 +1,6 @@ --- old.nodeModulesCjsFormatFileAlwaysHasDefault(module=node18).js +++ new.nodeModulesCjsFormatFileAlwaysHasDefault(module=node18).js -@@= skipped -24, +24 lines =@@ - // cjs format file - exports.a = 1; - //// [index.js] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); - // esm format file --import mod from "./subfolder/index.js"; --mod; -+const index_js_1 = require("./subfolder/index.js"); -+index_js_1.default; +@@= skipped -30, +30 lines =@@ //// [index.d.ts] diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesConditionalPackageExports(module=node18).js b/testdata/baselines/reference/submodule/conformance/nodeModulesConditionalPackageExports(module=node18).js index 4054eb19a5..c632632d5c 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesConditionalPackageExports(module=node18).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesConditionalPackageExports(module=node18).js @@ -123,19 +123,17 @@ export const cjsSource = true; } //// [index.mjs] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); // esm format file -const cjs = require("package/cjs"); -const mjs = require("package/mjs"); -const type = require("package"); +import * as cjs from "package/cjs"; +import * as mjs from "package/mjs"; +import * as type from "package"; cjs; mjs; type; -const cjsi = require("inner/a"); -const mjsi = require("inner/b"); -const typei = require("inner"); -const ts = require("inner/types"); +import * as cjsi from "inner/a"; +import * as mjsi from "inner/b"; +import * as typei from "inner"; +import * as ts from "inner/types"; cjsi.mjsSource; mjsi.mjsSource; typei.mjsSource; @@ -159,19 +157,17 @@ mjsi.cjsSource; typei.implicitCjsSource; ts.cjsSource; //// [index.js] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); // esm format file -const cjs = require("package/cjs"); -const mjs = require("package/mjs"); -const type = require("package"); +import * as cjs from "package/cjs"; +import * as mjs from "package/mjs"; +import * as type from "package"; cjs; mjs; type; -const cjsi = require("inner/a"); -const mjsi = require("inner/b"); -const typei = require("inner"); -const ts = require("inner/types"); +import * as cjsi from "inner/a"; +import * as mjsi from "inner/b"; +import * as typei from "inner"; +import * as ts from "inner/types"; cjsi.mjsSource; mjsi.mjsSource; typei.mjsSource; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesConditionalPackageExports(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesConditionalPackageExports(module=node18).js.diff index 6dd37fc06a..f2420e32b9 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesConditionalPackageExports(module=node18).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesConditionalPackageExports(module=node18).js.diff @@ -1,32 +1,6 @@ --- old.nodeModulesConditionalPackageExports(module=node18).js +++ new.nodeModulesConditionalPackageExports(module=node18).js -@@= skipped -122, +122 lines =@@ - } - - //// [index.mjs] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); - // esm format file --import * as cjs from "package/cjs"; --import * as mjs from "package/mjs"; --import * as type from "package"; -+const cjs = require("package/cjs"); -+const mjs = require("package/mjs"); -+const type = require("package"); - cjs; - mjs; - type; --import * as cjsi from "inner/a"; --import * as mjsi from "inner/b"; --import * as typei from "inner"; --import * as ts from "inner/types"; -+const cjsi = require("inner/a"); -+const mjsi = require("inner/b"); -+const typei = require("inner"); -+const ts = require("inner/types"); - cjsi.mjsSource; - mjsi.mjsSource; - typei.mjsSource; +@@= skipped -139, +139 lines =@@ ts.mjsSource; //// [index.cjs] "use strict"; @@ -84,29 +58,4 @@ +const ts = require("inner/types"); cjsi.cjsSource; mjsi.cjsSource; - typei.implicitCjsSource; - ts.cjsSource; - //// [index.js] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); - // esm format file --import * as cjs from "package/cjs"; --import * as mjs from "package/mjs"; --import * as type from "package"; -+const cjs = require("package/cjs"); -+const mjs = require("package/mjs"); -+const type = require("package"); - cjs; - mjs; - type; --import * as cjsi from "inner/a"; --import * as mjsi from "inner/b"; --import * as typei from "inner"; --import * as ts from "inner/types"; -+const cjsi = require("inner/a"); -+const mjsi = require("inner/b"); -+const typei = require("inner"); -+const ts = require("inner/types"); - cjsi.mjsSource; - mjsi.mjsSource; - typei.mjsSource; \ No newline at end of file + typei.implicitCjsSource; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesDeclarationEmitDynamicImportWithPackageExports(module=node18).js b/testdata/baselines/reference/submodule/conformance/nodeModulesDeclarationEmitDynamicImportWithPackageExports(module=node18).js index 5b00ba5489..9cf59460af 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesDeclarationEmitDynamicImportWithPackageExports(module=node18).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesDeclarationEmitDynamicImportWithPackageExports(module=node18).js @@ -71,46 +71,32 @@ export const cjsNonmain = true; } //// [index.js] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); +export {}; //// [index.mjs] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); +export {}; //// [index.cjs] "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); //// [other.js] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.f = exports.c = exports.b = exports.a = void 0; // esm format file -exports.a = await import("package/cjs"); -exports.b = await import("package/mjs"); -exports.c = await import("package"); -exports.f = await import("inner"); +export const a = await import("package/cjs"); +export const b = await import("package/mjs"); +export const c = await import("package"); +export const f = await import("inner"); //// [other2.js] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.e = exports.d = void 0; // esm format file -exports.d = await import("inner/cjs"); -exports.e = await import("inner/mjs"); +export const d = await import("inner/cjs"); +export const e = await import("inner/mjs"); //// [other.mjs] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.f = exports.c = exports.b = exports.a = void 0; // esm format file -exports.a = await import("package/cjs"); -exports.b = await import("package/mjs"); -exports.c = await import("package"); -exports.f = await import("inner"); +export const a = await import("package/cjs"); +export const b = await import("package/mjs"); +export const c = await import("package"); +export const f = await import("inner"); //// [other2.mjs] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.e = exports.d = void 0; // esm format file -exports.d = await import("inner/cjs"); -exports.e = await import("inner/mjs"); +export const d = await import("inner/cjs"); +export const e = await import("inner/mjs"); //// [other.cjs] "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesDeclarationEmitDynamicImportWithPackageExports(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesDeclarationEmitDynamicImportWithPackageExports(module=node18).js.diff index a5c478595a..62041dcb9f 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesDeclarationEmitDynamicImportWithPackageExports(module=node18).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesDeclarationEmitDynamicImportWithPackageExports(module=node18).js.diff @@ -1,67 +1,6 @@ --- old.nodeModulesDeclarationEmitDynamicImportWithPackageExports(module=node18).js +++ new.nodeModulesDeclarationEmitDynamicImportWithPackageExports(module=node18).js -@@= skipped -70, +70 lines =@@ - } - - //// [index.js] --export {}; -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); - //// [index.mjs] --export {}; -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); - //// [index.cjs] - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - //// [other.js] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); -+exports.f = exports.c = exports.b = exports.a = void 0; - // esm format file --export const a = await import("package/cjs"); --export const b = await import("package/mjs"); --export const c = await import("package"); --export const f = await import("inner"); -+exports.a = await import("package/cjs"); -+exports.b = await import("package/mjs"); -+exports.c = await import("package"); -+exports.f = await import("inner"); - //// [other2.js] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); -+exports.e = exports.d = void 0; - // esm format file --export const d = await import("inner/cjs"); --export const e = await import("inner/mjs"); -+exports.d = await import("inner/cjs"); -+exports.e = await import("inner/mjs"); - //// [other.mjs] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); -+exports.f = exports.c = exports.b = exports.a = void 0; - // esm format file --export const a = await import("package/cjs"); --export const b = await import("package/mjs"); --export const c = await import("package"); --export const f = await import("inner"); -+exports.a = await import("package/cjs"); -+exports.b = await import("package/mjs"); -+exports.c = await import("package"); -+exports.f = await import("inner"); - //// [other2.mjs] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); -+exports.e = exports.d = void 0; - // esm format file --export const d = await import("inner/cjs"); --export const e = await import("inner/mjs"); -+exports.d = await import("inner/cjs"); -+exports.e = await import("inner/mjs"); - //// [other.cjs] - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); -@@= skipped -45, +59 lines =@@ +@@= skipped -115, +115 lines =@@ //// [index.d.ts] diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesDeclarationEmitWithPackageExports(module=node18).js b/testdata/baselines/reference/submodule/conformance/nodeModulesDeclarationEmitWithPackageExports(module=node18).js index 9b4abfd62b..d13987b541 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesDeclarationEmitWithPackageExports(module=node18).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesDeclarationEmitWithPackageExports(module=node18).js @@ -92,22 +92,19 @@ export const cjsNonmain = true; } //// [index.mjs] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.f = exports.e = exports.d = exports.c = exports.b = exports.a = void 0; // esm format file -const cjs = require("package/cjs"); -const mjs = require("package/mjs"); -const type = require("package"); -exports.a = cjs; -exports.b = mjs; -exports.c = type; -const cjsi = require("inner/cjs"); -const mjsi = require("inner/mjs"); -const typei = require("inner"); -exports.d = cjsi; -exports.e = mjsi; -exports.f = typei; +import * as cjs from "package/cjs"; +import * as mjs from "package/mjs"; +import * as type from "package"; +export const a = cjs; +export const b = mjs; +export const c = type; +import * as cjsi from "inner/cjs"; +import * as mjsi from "inner/mjs"; +import * as typei from "inner"; +export const d = cjsi; +export const e = mjsi; +export const f = typei; //// [index.cjs] "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); @@ -126,22 +123,19 @@ exports.d = cjsi; exports.e = mjsi; exports.f = typei; //// [index.js] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.f = exports.e = exports.d = exports.c = exports.b = exports.a = void 0; // esm format file -const cjs = require("package/cjs"); -const mjs = require("package/mjs"); -const type = require("package"); -exports.a = cjs; -exports.b = mjs; -exports.c = type; -const cjsi = require("inner/cjs"); -const mjsi = require("inner/mjs"); -const typei = require("inner"); -exports.d = cjsi; -exports.e = mjsi; -exports.f = typei; +import * as cjs from "package/cjs"; +import * as mjs from "package/mjs"; +import * as type from "package"; +export const a = cjs; +export const b = mjs; +export const c = type; +import * as cjsi from "inner/cjs"; +import * as mjsi from "inner/mjs"; +import * as typei from "inner"; +export const d = cjsi; +export const e = mjsi; +export const f = typei; //// [index.d.mts] diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesDeclarationEmitWithPackageExports(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesDeclarationEmitWithPackageExports(module=node18).js.diff index 229d49e8bf..4443916e75 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesDeclarationEmitWithPackageExports(module=node18).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesDeclarationEmitWithPackageExports(module=node18).js.diff @@ -1,37 +1,7 @@ --- old.nodeModulesDeclarationEmitWithPackageExports(module=node18).js +++ new.nodeModulesDeclarationEmitWithPackageExports(module=node18).js -@@= skipped -91, +91 lines =@@ - } - - //// [index.mjs] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); -+exports.f = exports.e = exports.d = exports.c = exports.b = exports.a = void 0; - // esm format file --import * as cjs from "package/cjs"; --import * as mjs from "package/mjs"; --import * as type from "package"; --export const a = cjs; --export const b = mjs; --export const c = type; --import * as cjsi from "inner/cjs"; --import * as mjsi from "inner/mjs"; --import * as typei from "inner"; --export const d = cjsi; --export const e = mjsi; --export const f = typei; -+const cjs = require("package/cjs"); -+const mjs = require("package/mjs"); -+const type = require("package"); -+exports.a = cjs; -+exports.b = mjs; -+exports.c = type; -+const cjsi = require("inner/cjs"); -+const mjsi = require("inner/mjs"); -+const typei = require("inner"); -+exports.d = cjsi; -+exports.e = mjsi; -+exports.f = typei; +@@= skipped -106, +106 lines =@@ + export const f = typei; //// [index.cjs] "use strict"; -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { @@ -88,35 +58,7 @@ exports.d = cjsi; exports.e = mjsi; exports.f = typei; - //// [index.js] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); -+exports.f = exports.e = exports.d = exports.c = exports.b = exports.a = void 0; - // esm format file --import * as cjs from "package/cjs"; --import * as mjs from "package/mjs"; --import * as type from "package"; --export const a = cjs; --export const b = mjs; --export const c = type; --import * as cjsi from "inner/cjs"; --import * as mjsi from "inner/mjs"; --import * as typei from "inner"; --export const d = cjsi; --export const e = mjsi; --export const f = typei; -+const cjs = require("package/cjs"); -+const mjs = require("package/mjs"); -+const type = require("package"); -+exports.a = cjs; -+exports.b = mjs; -+exports.c = type; -+const cjsi = require("inner/cjs"); -+const mjsi = require("inner/mjs"); -+const typei = require("inner"); -+exports.d = cjsi; -+exports.e = mjsi; -+exports.f = typei; +@@= skipped -65, +32 lines =@@ //// [index.d.mts] @@ -124,7 +66,7 @@ import * as cjs from "package/cjs"; import * as mjs from "package/mjs"; import * as type from "package"; -@@= skipped -93, +67 lines =@@ +@@= skipped -13, +14 lines =@@ export declare const e: typeof mjsi; export declare const f: typeof typei; //// [index.d.cts] diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesDynamicImport(module=node18).js b/testdata/baselines/reference/submodule/conformance/nodeModulesDynamicImport(module=node18).js index f5f694667d..2c495b6d6f 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesDynamicImport(module=node18).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesDynamicImport(module=node18).js @@ -32,11 +32,8 @@ async function main() { const { readFile } = await import("fs"); } //// [index.js] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.main = main; // esm format file -async function main() { +export async function main() { const { readFile } = await import("fs"); } diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesDynamicImport(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesDynamicImport(module=node18).js.diff index 4c8eed3d9b..6aa2977844 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesDynamicImport(module=node18).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesDynamicImport(module=node18).js.diff @@ -1,17 +1,6 @@ --- old.nodeModulesDynamicImport(module=node18).js +++ new.nodeModulesDynamicImport(module=node18).js -@@= skipped -31, +31 lines =@@ - const { readFile } = await import("fs"); - } - //// [index.js] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); -+exports.main = main; - // esm format file --export async function main() { -+async function main() { - const { readFile } = await import("fs"); - } +@@= skipped -38, +38 lines =@@ //// [index.d.ts] diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesExportAssignments(module=node18).js b/testdata/baselines/reference/submodule/conformance/nodeModulesExportAssignments(module=node18).js index 0544f67b1f..c313c5a4e3 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesExportAssignments(module=node18).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesExportAssignments(module=node18).js @@ -25,10 +25,9 @@ export = a; const a = {}; module.exports = a; //// [index.js] -"use strict"; // esm format file const a = {}; -module.exports = a; +export {}; //// [index.d.ts] diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesExportAssignments(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesExportAssignments(module=node18).js.diff index f91df92763..6039080c15 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesExportAssignments(module=node18).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesExportAssignments(module=node18).js.diff @@ -1,14 +1,6 @@ --- old.nodeModulesExportAssignments(module=node18).js +++ new.nodeModulesExportAssignments(module=node18).js -@@= skipped -24, +24 lines =@@ - const a = {}; - module.exports = a; - //// [index.js] -+"use strict"; - // esm format file - const a = {}; --export {}; -+module.exports = a; +@@= skipped -30, +30 lines =@@ //// [index.d.ts] diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesExportsBlocksSpecifierResolution(module=node18).js b/testdata/baselines/reference/submodule/conformance/nodeModulesExportsBlocksSpecifierResolution(module=node18).js index f558b624be..8ce6f039f9 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesExportsBlocksSpecifierResolution(module=node18).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesExportsBlocksSpecifierResolution(module=node18).js @@ -27,10 +27,7 @@ export const x: () => Thing; } //// [index.js] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.a = void 0; -exports.a = (await import("inner")).x(); +export const a = (await import("inner")).x(); //// [index.d.ts] diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesExportsBlocksSpecifierResolution(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesExportsBlocksSpecifierResolution(module=node18).js.diff index 6273ee13d9..47fcb643b1 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesExportsBlocksSpecifierResolution(module=node18).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesExportsBlocksSpecifierResolution(module=node18).js.diff @@ -1,14 +1,9 @@ --- old.nodeModulesExportsBlocksSpecifierResolution(module=node18).js +++ new.nodeModulesExportsBlocksSpecifierResolution(module=node18).js -@@= skipped -26, +26 lines =@@ - } +@@= skipped -27, +27 lines =@@ //// [index.js] --export const a = (await import("inner")).x(); -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); -+exports.a = void 0; -+exports.a = (await import("inner")).x(); + export const a = (await import("inner")).x(); + + +//// [index.d.ts] diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesExportsBlocksTypesVersions(module=node18).js b/testdata/baselines/reference/submodule/conformance/nodeModulesExportsBlocksTypesVersions(module=node18).js index f7796d030e..396ca2dfc4 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesExportsBlocksTypesVersions(module=node18).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesExportsBlocksTypesVersions(module=node18).js @@ -67,5 +67,4 @@ import {} from "just-types-versions/foo"; "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); //// [main.mjs] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); +export {}; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesExportsBlocksTypesVersions(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesExportsBlocksTypesVersions(module=node18).js.diff deleted file mode 100644 index f9ce834ef0..0000000000 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesExportsBlocksTypesVersions(module=node18).js.diff +++ /dev/null @@ -1,9 +0,0 @@ ---- old.nodeModulesExportsBlocksTypesVersions(module=node18).js -+++ new.nodeModulesExportsBlocksTypesVersions(module=node18).js -@@= skipped -66, +66 lines =@@ - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - //// [main.mjs] --export {}; -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSourceTs(module=node16).js b/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSourceTs(module=node16).js index 13ace6ff04..40ad0b0219 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSourceTs(module=node16).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSourceTs(module=node16).js @@ -27,9 +27,22 @@ export const x: () => Thing = null as any; "exports": "./index.ts" } +//// [other.js] +export const x = null; +//// [index.js] +// esm format file +export { x } from "./other.js"; //// [index.js] export const a = (await import("inner")).x(); +//// [other.d.ts] +// esm format file +export interface Thing { +} +export declare const x: () => Thing; +//// [index.d.ts] +// esm format file +export { x } from "./other.js"; //// [index.d.ts] export declare const a: any; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSourceTs(module=node16).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSourceTs(module=node16).js.diff index 03f70d8990..92d3bf86a9 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSourceTs(module=node16).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSourceTs(module=node16).js.diff @@ -1,22 +1,15 @@ --- old.nodeModulesExportsSourceTs(module=node16).js +++ new.nodeModulesExportsSourceTs(module=node16).js -@@= skipped -26, +26 lines =@@ - "exports": "./index.ts" - } - --//// [other.js] --export const x = null; --//// [index.js] --// esm format file --export { x } from "./other.js"; - //// [index.js] - export const a = (await import("inner")).x(); +@@= skipped -36, +36 lines =@@ --//// [other.d.ts] --export interface Thing { --} --export declare const x: () => Thing; + //// [other.d.ts] ++// esm format file + export interface Thing { + } + export declare const x: () => Thing; //// [index.d.ts] --export { x } from "./other.js"; ++// esm format file + export { x } from "./other.js"; ++//// [index.d.ts] +export declare const a: any; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSourceTs(module=node18).js b/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSourceTs(module=node18).js index 93cdfaead0..40ad0b0219 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSourceTs(module=node18).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSourceTs(module=node18).js @@ -27,12 +27,22 @@ export const x: () => Thing = null as any; "exports": "./index.ts" } +//// [other.js] +export const x = null; //// [index.js] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.a = void 0; -exports.a = (await import("inner")).x(); +// esm format file +export { x } from "./other.js"; +//// [index.js] +export const a = (await import("inner")).x(); +//// [other.d.ts] +// esm format file +export interface Thing { +} +export declare const x: () => Thing; +//// [index.d.ts] +// esm format file +export { x } from "./other.js"; //// [index.d.ts] export declare const a: any; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSourceTs(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSourceTs(module=node18).js.diff index 0e3d4a6ccf..01e4bdcd4a 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSourceTs(module=node18).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSourceTs(module=node18).js.diff @@ -1,29 +1,15 @@ --- old.nodeModulesExportsSourceTs(module=node18).js +++ new.nodeModulesExportsSourceTs(module=node18).js -@@= skipped -26, +26 lines =@@ - "exports": "./index.ts" - } +@@= skipped -36, +36 lines =@@ + --//// [other.js] --export const x = null; --//// [index.js] --// esm format file --export { x } from "./other.js"; --//// [index.js] --export const a = (await import("inner")).x(); -- -- --//// [other.d.ts] --export interface Thing { --} --export declare const x: () => Thing; -+//// [index.js] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); -+exports.a = void 0; -+exports.a = (await import("inner")).x(); -+ -+ + //// [other.d.ts] ++// esm format file + export interface Thing { + } + export declare const x: () => Thing; //// [index.d.ts] --export { x } from "./other.js"; ++// esm format file + export { x } from "./other.js"; ++//// [index.d.ts] +export declare const a: any; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSourceTs(module=nodenext).js b/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSourceTs(module=nodenext).js index 13ace6ff04..40ad0b0219 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSourceTs(module=nodenext).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSourceTs(module=nodenext).js @@ -27,9 +27,22 @@ export const x: () => Thing = null as any; "exports": "./index.ts" } +//// [other.js] +export const x = null; +//// [index.js] +// esm format file +export { x } from "./other.js"; //// [index.js] export const a = (await import("inner")).x(); +//// [other.d.ts] +// esm format file +export interface Thing { +} +export declare const x: () => Thing; +//// [index.d.ts] +// esm format file +export { x } from "./other.js"; //// [index.d.ts] export declare const a: any; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSourceTs(module=nodenext).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSourceTs(module=nodenext).js.diff index cf67565186..b5a19f47ad 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSourceTs(module=nodenext).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSourceTs(module=nodenext).js.diff @@ -1,22 +1,15 @@ --- old.nodeModulesExportsSourceTs(module=nodenext).js +++ new.nodeModulesExportsSourceTs(module=nodenext).js -@@= skipped -26, +26 lines =@@ - "exports": "./index.ts" - } - --//// [other.js] --export const x = null; --//// [index.js] --// esm format file --export { x } from "./other.js"; - //// [index.js] - export const a = (await import("inner")).x(); +@@= skipped -36, +36 lines =@@ --//// [other.d.ts] --export interface Thing { --} --export declare const x: () => Thing; + //// [other.d.ts] ++// esm format file + export interface Thing { + } + export declare const x: () => Thing; //// [index.d.ts] --export { x } from "./other.js"; ++// esm format file + export { x } from "./other.js"; ++//// [index.d.ts] +export declare const a: any; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSpecifierGenerationConditions(module=node18).js b/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSpecifierGenerationConditions(module=node18).js index 0b91e6e8c2..5db58ae2f7 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSpecifierGenerationConditions(module=node18).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSpecifierGenerationConditions(module=node18).js @@ -34,10 +34,7 @@ export const x: () => Thing; } //// [index.js] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.a = void 0; -exports.a = (await import("inner")).x(); +export const a = (await import("inner")).x(); //// [index.d.ts] diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSpecifierGenerationConditions(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSpecifierGenerationConditions(module=node18).js.diff deleted file mode 100644 index 7f96d4e79d..0000000000 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSpecifierGenerationConditions(module=node18).js.diff +++ /dev/null @@ -1,14 +0,0 @@ ---- old.nodeModulesExportsSpecifierGenerationConditions(module=node18).js -+++ new.nodeModulesExportsSpecifierGenerationConditions(module=node18).js -@@= skipped -33, +33 lines =@@ - } - - //// [index.js] --export const a = (await import("inner")).x(); -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); -+exports.a = void 0; -+exports.a = (await import("inner")).x(); - - - //// [index.d.ts] \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSpecifierGenerationDirectory(module=node18).js b/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSpecifierGenerationDirectory(module=node18).js index a29dc3b42f..c0d6b006b3 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSpecifierGenerationDirectory(module=node18).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSpecifierGenerationDirectory(module=node18).js @@ -29,10 +29,7 @@ export const x: () => Thing; } //// [index.js] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.a = void 0; -exports.a = (await import("inner/index.js")).x(); +export const a = (await import("inner/index.js")).x(); //// [index.d.ts] diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSpecifierGenerationDirectory(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSpecifierGenerationDirectory(module=node18).js.diff deleted file mode 100644 index 266c59ef77..0000000000 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSpecifierGenerationDirectory(module=node18).js.diff +++ /dev/null @@ -1,14 +0,0 @@ ---- old.nodeModulesExportsSpecifierGenerationDirectory(module=node18).js -+++ new.nodeModulesExportsSpecifierGenerationDirectory(module=node18).js -@@= skipped -28, +28 lines =@@ - } - - //// [index.js] --export const a = (await import("inner/index.js")).x(); -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); -+exports.a = void 0; -+exports.a = (await import("inner/index.js")).x(); - - - //// [index.d.ts] \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSpecifierGenerationPattern(module=node18).js b/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSpecifierGenerationPattern(module=node18).js index 691f9516da..dcdd62bed6 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSpecifierGenerationPattern(module=node18).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSpecifierGenerationPattern(module=node18).js @@ -29,10 +29,7 @@ export const x: () => Thing; } //// [index.js] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.a = void 0; -exports.a = (await import("inner/index.js")).x(); +export const a = (await import("inner/index.js")).x(); //// [index.d.ts] diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSpecifierGenerationPattern(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSpecifierGenerationPattern(module=node18).js.diff deleted file mode 100644 index dd2a33ad0f..0000000000 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSpecifierGenerationPattern(module=node18).js.diff +++ /dev/null @@ -1,14 +0,0 @@ ---- old.nodeModulesExportsSpecifierGenerationPattern(module=node18).js -+++ new.nodeModulesExportsSpecifierGenerationPattern(module=node18).js -@@= skipped -28, +28 lines =@@ - } - - //// [index.js] --export const a = (await import("inner/index.js")).x(); -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); -+exports.a = void 0; -+exports.a = (await import("inner/index.js")).x(); - - - //// [index.d.ts] \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesForbidenSyntax(module=node18).js b/testdata/baselines/reference/submodule/conformance/nodeModulesForbidenSyntax(module=node18).js index 74838d8ee3..6971e6bd1f 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesForbidenSyntax(module=node18).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesForbidenSyntax(module=node18).js @@ -81,12 +81,9 @@ exports.x = void 0; const x = () => (void 0); exports.x = x; //// [index.mjs] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.x = void 0; // esm format file const x = () => (void 0); -exports.x = x; +export { x }; //// [index.js] "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); @@ -102,26 +99,17 @@ exports.x = void 0; const x = () => (void 0); exports.x = x; //// [index.mjs] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.x = void 0; // esm format file const x = () => (void 0); -exports.x = x; +export { x }; //// [index.js] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.x = void 0; // esm format file const x = () => (void 0); -exports.x = x; +export { x }; //// [index.mjs] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.x = void 0; // esm format file const x = () => (void 0); -exports.x = x; +export { x }; //// [index.cjs] "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); @@ -130,12 +118,9 @@ exports.x = void 0; const x = () => (void 0); exports.x = x; //// [index.mjs] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.x = void 0; // esm format file const x = () => (void 0); -exports.x = x; +export { x }; //// [index.cjs] "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); @@ -144,12 +129,9 @@ exports.x = void 0; const x = () => (void 0); exports.x = x; //// [index.js] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.x = void 0; // esm format file const x = () => (void 0); -exports.x = x; +export { x }; //// [index.d.ts] diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesForbidenSyntax(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesForbidenSyntax(module=node18).js.diff index acf7db9767..2f8d7ce15b 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesForbidenSyntax(module=node18).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesForbidenSyntax(module=node18).js.diff @@ -1,63 +1,9 @@ --- old.nodeModulesForbidenSyntax(module=node18).js +++ new.nodeModulesForbidenSyntax(module=node18).js -@@= skipped -80, +80 lines =@@ - const x = () => (void 0); - exports.x = x; - //// [index.mjs] --// esm format file --const x = () => (void 0); --export { x }; --//// [index.js] --"use strict"; --Object.defineProperty(exports, "__esModule", { value: true }); --exports.x = void 0; --// cjs format file --const x = () => (void 0); --exports.x = x; --//// [index.cjs] --"use strict"; --Object.defineProperty(exports, "__esModule", { value: true }); --exports.x = void 0; --// cjs format file --const x = () => (void 0); --exports.x = x; --//// [index.mjs] --// esm format file --const x = () => (void 0); --export { x }; --//// [index.js] --// esm format file --const x = () => (void 0); --export { x }; --//// [index.mjs] --// esm format file --const x = () => (void 0); --export { x }; --//// [index.cjs] --"use strict"; --Object.defineProperty(exports, "__esModule", { value: true }); --exports.x = void 0; --// cjs format file --const x = () => (void 0); --exports.x = x; --//// [index.mjs] --// esm format file --const x = () => (void 0); --export { x }; --//// [index.cjs] --"use strict"; --Object.defineProperty(exports, "__esModule", { value: true }); --exports.x = void 0; --// cjs format file --const x = () => (void 0); --exports.x = x; --//// [index.js] --// esm format file --const x = () => (void 0); --export { x }; -- -- --//// [index.d.ts] +@@= skipped -134, +134 lines =@@ + + + //// [index.d.ts] -declare const x: () => T; -export { x }; -//// [index.d.cts] @@ -91,78 +37,6 @@ -declare const x: () => T; -export { x }; -//// [index.d.ts] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); -+exports.x = void 0; -+// esm format file -+const x = () => (void 0); -+exports.x = x; -+//// [index.js] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); -+exports.x = void 0; -+// cjs format file -+const x = () => (void 0); -+exports.x = x; -+//// [index.cjs] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); -+exports.x = void 0; -+// cjs format file -+const x = () => (void 0); -+exports.x = x; -+//// [index.mjs] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); -+exports.x = void 0; -+// esm format file -+const x = () => (void 0); -+exports.x = x; -+//// [index.js] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); -+exports.x = void 0; -+// esm format file -+const x = () => (void 0); -+exports.x = x; -+//// [index.mjs] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); -+exports.x = void 0; -+// esm format file -+const x = () => (void 0); -+exports.x = x; -+//// [index.cjs] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); -+exports.x = void 0; -+// cjs format file -+const x = () => (void 0); -+exports.x = x; -+//// [index.mjs] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); -+exports.x = void 0; -+// esm format file -+const x = () => (void 0); -+exports.x = x; -+//// [index.cjs] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); -+exports.x = void 0; -+// cjs format file -+const x = () => (void 0); -+exports.x = x; -+//// [index.js] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); -+exports.x = void 0; -+// esm format file -+const x = () => (void 0); -+exports.x = x; -+ -+ -+//// [index.d.ts] +// cjs format file +declare const x: () => T; +export { x }; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesGeneratedNameCollisions(module=node18).js b/testdata/baselines/reference/submodule/conformance/nodeModulesGeneratedNameCollisions(module=node18).js index 6c9362e51d..f6d7e91e77 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesGeneratedNameCollisions(module=node18).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesGeneratedNameCollisions(module=node18).js @@ -39,18 +39,13 @@ class Object { exports.Object = Object; exports.__esModule = false; //// [index.js] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.Object = exports.exports = exports.__esModule = void 0; -exports.require = require; // esm format file function require() { } const exports = {}; -exports.exports = exports; class Object { } -exports.Object = Object; -exports.__esModule = false; +export const __esModule = false; +export { require, exports, Object }; //// [index.d.ts] diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesGeneratedNameCollisions(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesGeneratedNameCollisions(module=node18).js.diff index d18df47808..77e75ace75 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesGeneratedNameCollisions(module=node18).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesGeneratedNameCollisions(module=node18).js.diff @@ -1,23 +1,6 @@ --- old.nodeModulesGeneratedNameCollisions(module=node18).js +++ new.nodeModulesGeneratedNameCollisions(module=node18).js -@@= skipped -38, +38 lines =@@ - exports.Object = Object; - exports.__esModule = false; - //// [index.js] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); -+exports.Object = exports.exports = exports.__esModule = void 0; -+exports.require = require; - // esm format file - function require() { } - const exports = {}; -+exports.exports = exports; - class Object { - } --export const __esModule = false; --export { require, exports, Object }; -+exports.Object = Object; -+exports.__esModule = false; +@@= skipped -48, +48 lines =@@ //// [index.d.ts] @@ -25,7 +8,7 @@ declare function require(): void; declare const exports: {}; declare class Object { -@@= skipped -17, +23 lines =@@ +@@= skipped -7, +8 lines =@@ export declare const __esModule = false; export { require, exports, Object }; //// [index.d.ts] diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesImportAssertions(module=node18).js b/testdata/baselines/reference/submodule/conformance/nodeModulesImportAssertions(module=node18).js index e8d43f0ad3..091166d523 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesImportAssertions(module=node18).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesImportAssertions(module=node18).js @@ -13,8 +13,7 @@ const json2 = import("./package.json", { assert: { type: "json" } }); // should } //// [index.js] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); +export {}; //// [otherc.cjs] "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesImportAssertions(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesImportAssertions(module=node18).js.diff deleted file mode 100644 index d7362002ab..0000000000 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesImportAssertions(module=node18).js.diff +++ /dev/null @@ -1,12 +0,0 @@ ---- old.nodeModulesImportAssertions(module=node18).js -+++ new.nodeModulesImportAssertions(module=node18).js -@@= skipped -12, +12 lines =@@ - } - - //// [index.js] --export {}; -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); - //// [otherc.cjs] - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesImportAssignments(module=node18).js b/testdata/baselines/reference/submodule/conformance/nodeModulesImportAssignments(module=node18).js index 4a8f44fd00..c73ff1177a 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesImportAssignments(module=node18).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesImportAssignments(module=node18).js @@ -38,21 +38,23 @@ const fs = require("fs"); fs.readFile; exports.fs2 = require("fs"); //// [index.js] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); +import { createRequire as _createRequire } from "module"; +const __require = _createRequire(import.meta.url); // esm format file -const fs = require("fs"); +const fs = __require("fs"); fs.readFile; -exports.fs2 = require("fs"); +const fs2 = __require("fs"); +export { fs2 }; //// [file.js] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); +import { createRequire as _createRequire_1 } from "module"; +const __require_1 = _createRequire_1(import.meta.url); // esm format file const __require = null; const _createRequire = null; -const fs = require("fs"); +const fs = __require_1("fs"); fs.readFile; -exports.fs2 = require("fs"); +const fs2 = __require_1("fs"); +export { fs2 }; //// [index.d.ts] diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesImportAssignments(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesImportAssignments(module=node18).js.diff deleted file mode 100644 index cb056d2ff3..0000000000 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesImportAssignments(module=node18).js.diff +++ /dev/null @@ -1,34 +0,0 @@ ---- old.nodeModulesImportAssignments(module=node18).js -+++ new.nodeModulesImportAssignments(module=node18).js -@@= skipped -37, +37 lines =@@ - fs.readFile; - exports.fs2 = require("fs"); - //// [index.js] --import { createRequire as _createRequire } from "module"; --const __require = _createRequire(import.meta.url); -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); - // esm format file --const fs = __require("fs"); -+const fs = require("fs"); - fs.readFile; --const fs2 = __require("fs"); --export { fs2 }; -+exports.fs2 = require("fs"); - //// [file.js] --import { createRequire as _createRequire_1 } from "module"; --const __require_1 = _createRequire_1(import.meta.url); -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); - // esm format file - const __require = null; - const _createRequire = null; --const fs = __require_1("fs"); -+const fs = require("fs"); - fs.readFile; --const fs2 = __require_1("fs"); --export { fs2 }; -+exports.fs2 = require("fs"); - - - //// [index.d.ts] \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesImportAttributes(module=node18).js b/testdata/baselines/reference/submodule/conformance/nodeModulesImportAttributes(module=node18).js index 9653caaf24..fb3984fd32 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesImportAttributes(module=node18).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesImportAttributes(module=node18).js @@ -14,8 +14,7 @@ const json2 = import("./package.json", { with: { type: "json" } }); // should be //// [index.js] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); +export {}; //// [otherc.cjs] "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesImportAttributes(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesImportAttributes(module=node18).js.diff deleted file mode 100644 index 07ba2cc729..0000000000 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesImportAttributes(module=node18).js.diff +++ /dev/null @@ -1,12 +0,0 @@ ---- old.nodeModulesImportAttributes(module=node18).js -+++ new.nodeModulesImportAttributes(module=node18).js -@@= skipped -13, +13 lines =@@ - - - //// [index.js] --export {}; -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); - //// [otherc.cjs] - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesImportAttributesModeDeclarationEmit2(module=node18).js b/testdata/baselines/reference/submodule/conformance/nodeModulesImportAttributesModeDeclarationEmit2(module=node18).js index 69c5d82a55..afe399f85b 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesImportAttributesModeDeclarationEmit2(module=node18).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesImportAttributesModeDeclarationEmit2(module=node18).js @@ -33,8 +33,7 @@ export type { ImportInterface } from "pkg" with { "resolution-mode": "import" }; //// [index.js] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); +export {}; //// [index.d.ts] diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesImportAttributesModeDeclarationEmit2(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesImportAttributesModeDeclarationEmit2(module=node18).js.diff deleted file mode 100644 index 146f1252d6..0000000000 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesImportAttributesModeDeclarationEmit2(module=node18).js.diff +++ /dev/null @@ -1,12 +0,0 @@ ---- old.nodeModulesImportAttributesModeDeclarationEmit2(module=node18).js -+++ new.nodeModulesImportAttributesModeDeclarationEmit2(module=node18).js -@@= skipped -32, +32 lines =@@ - - - //// [index.js] --export {}; -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); - - - //// [index.d.ts] \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesImportHelpersCollisions(module=node18).js b/testdata/baselines/reference/submodule/conformance/nodeModulesImportHelpersCollisions(module=node18).js index aab681b9db..3d9892e080 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesImportHelpersCollisions(module=node18).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesImportHelpersCollisions(module=node18).js @@ -38,12 +38,10 @@ fs_1.default.readFile; const fs = require("fs"); fs.readFile; //// [index.js] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); // esm format file -const fs_1 = require("fs"); -fs_1.default.readFile; -const fs = require("fs"); +import { default as _fs } from "fs"; +_fs.readFile; +import * as fs from "fs"; fs.readFile; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesImportHelpersCollisions(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesImportHelpersCollisions(module=node18).js.diff index 786cbf3cc6..09914a654b 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesImportHelpersCollisions(module=node18).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesImportHelpersCollisions(module=node18).js.diff @@ -13,14 +13,4 @@ +const fs = require("fs"); fs.readFile; //// [index.js] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); - // esm format file --import { default as _fs } from "fs"; --_fs.readFile; --import * as fs from "fs"; -+const fs_1 = require("fs"); -+fs_1.default.readFile; -+const fs = require("fs"); - fs.readFile; - + // esm format file \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesImportHelpersCollisions2(module=node18).js b/testdata/baselines/reference/submodule/conformance/nodeModulesImportHelpersCollisions2(module=node18).js index 8dd77961a8..898916a8c8 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesImportHelpersCollisions2(module=node18).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesImportHelpersCollisions2(module=node18).js @@ -34,13 +34,9 @@ const tslib_1 = require("tslib"); tslib_1.__exportStar(require("fs"), exports); exports.fs = require("fs"); //// [index.js] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.fs = void 0; -const tslib_1 = require("tslib"); // esm format file -__exportStar(require("fs"), exports); -exports.fs = require("fs"); +export * from "fs"; +export * as fs from "fs"; //// [index.d.ts] diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesImportHelpersCollisions2(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesImportHelpersCollisions2(module=node18).js.diff index c14f215bf2..93658bb97c 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesImportHelpersCollisions2(module=node18).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesImportHelpersCollisions2(module=node18).js.diff @@ -7,29 +7,16 @@ -exports.fs = tslib_1.__importStar(require("fs")); +exports.fs = require("fs"); //// [index.js] --// esm format file --export * from "fs"; --export * as fs from "fs"; -- -- --//// [index.d.ts] --export * from "fs"; --export * as fs from "fs"; --//// [index.d.ts] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); -+exports.fs = void 0; -+const tslib_1 = require("tslib"); -+// esm format file -+__exportStar(require("fs"), exports); -+exports.fs = require("fs"); -+ -+ -+//// [index.d.ts] + // esm format file + export * from "fs"; +@@= skipped -8, +8 lines =@@ + + + //// [index.d.ts] +// cjs format file -+export * from "fs"; -+export * as fs from "fs"; -+//// [index.d.ts] + export * from "fs"; + export * as fs from "fs"; + //// [index.d.ts] +// esm format file export * from "fs"; export * as fs from "fs"; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesImportHelpersCollisions3(module=node18).js b/testdata/baselines/reference/submodule/conformance/nodeModulesImportHelpersCollisions3(module=node18).js index a02a775c7b..ea40ccdcd2 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesImportHelpersCollisions3(module=node18).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesImportHelpersCollisions3(module=node18).js @@ -31,12 +31,8 @@ exports.default = void 0; const fs_1 = require("fs"); Object.defineProperty(exports, "default", { enumerable: true, get: function () { return fs_1.default; } }); //// [index.js] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.default = void 0; // esm format file -const fs_1 = require("fs"); -Object.defineProperty(exports, "default", { enumerable: true, get: function () { return fs_1.default; } }); +export { default } from "fs"; //// [index.d.ts] diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesImportHelpersCollisions3(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesImportHelpersCollisions3(module=node18).js.diff index 973473e599..025ed636d5 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesImportHelpersCollisions3(module=node18).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesImportHelpersCollisions3(module=node18).js.diff @@ -11,24 +11,13 @@ +const fs_1 = require("fs"); +Object.defineProperty(exports, "default", { enumerable: true, get: function () { return fs_1.default; } }); //// [index.js] --// esm format file --export { default } from "fs"; -- -- --//// [index.d.ts] --export { default } from "fs"; --//// [index.d.ts] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); -+exports.default = void 0; -+// esm format file -+const fs_1 = require("fs"); -+Object.defineProperty(exports, "default", { enumerable: true, get: function () { return fs_1.default; } }); -+ -+ -+//// [index.d.ts] + // esm format file + export { default } from "fs"; + + + //// [index.d.ts] +// cjs format file -+export { default } from "fs"; -+//// [index.d.ts] + export { default } from "fs"; + //// [index.d.ts] +// esm format file export { default } from "fs"; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesImportMeta(module=node18).js b/testdata/baselines/reference/submodule/conformance/nodeModulesImportMeta(module=node18).js index 1d28f5cae8..1a527e246c 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesImportMeta(module=node18).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesImportMeta(module=node18).js @@ -27,12 +27,9 @@ exports.x = void 0; const x = import.meta.url; exports.x = x; //// [index.js] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.x = void 0; // esm format file const x = import.meta.url; -exports.x = x; +export { x }; //// [index.d.ts] diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesImportMeta(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesImportMeta(module=node18).js.diff index 34da05dee1..4fcb37cf58 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesImportMeta(module=node18).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesImportMeta(module=node18).js.diff @@ -1,16 +1,6 @@ --- old.nodeModulesImportMeta(module=node18).js +++ new.nodeModulesImportMeta(module=node18).js -@@= skipped -26, +26 lines =@@ - const x = import.meta.url; - exports.x = x; - //// [index.js] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); -+exports.x = void 0; - // esm format file - const x = import.meta.url; --export { x }; -+exports.x = x; +@@= skipped -32, +32 lines =@@ //// [index.d.ts] diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesImportModeDeclarationEmit2(module=node18).js b/testdata/baselines/reference/submodule/conformance/nodeModulesImportModeDeclarationEmit2(module=node18).js index 7495778bd6..fad19d466a 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesImportModeDeclarationEmit2(module=node18).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesImportModeDeclarationEmit2(module=node18).js @@ -33,8 +33,7 @@ export type { ImportInterface } from "pkg" assert { "resolution-mode": "import" //// [index.js] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); +export {}; //// [index.d.ts] diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesImportModeDeclarationEmit2(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesImportModeDeclarationEmit2(module=node18).js.diff deleted file mode 100644 index 975254ff9a..0000000000 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesImportModeDeclarationEmit2(module=node18).js.diff +++ /dev/null @@ -1,12 +0,0 @@ ---- old.nodeModulesImportModeDeclarationEmit2(module=node18).js -+++ new.nodeModulesImportModeDeclarationEmit2(module=node18).js -@@= skipped -32, +32 lines =@@ - - - //// [index.js] --export {}; -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); - - - //// [index.d.ts] \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesImportResolutionIntoExport(module=node18).js b/testdata/baselines/reference/submodule/conformance/nodeModulesImportResolutionIntoExport(module=node18).js index 1a56ef1572..5fa5db8901 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesImportResolutionIntoExport(module=node18).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesImportResolutionIntoExport(module=node18).js @@ -30,16 +30,12 @@ Object.defineProperty(exports, "__esModule", { value: true }); const type = require("#type"); type; //// [index.js] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); // esm format file -const type = require("#type"); +import * as type from "#type"; type; //// [index.mjs] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); // esm format file -const type = require("#type"); +import * as type from "#type"; type; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesImportResolutionIntoExport(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesImportResolutionIntoExport(module=node18).js.diff index dbb658b961..7681881ed7 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesImportResolutionIntoExport(module=node18).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesImportResolutionIntoExport(module=node18).js.diff @@ -43,17 +43,4 @@ +const type = require("#type"); type; //// [index.js] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); - // esm format file --import * as type from "#type"; -+const type = require("#type"); - type; - //// [index.mjs] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); - // esm format file --import * as type from "#type"; -+const type = require("#type"); - type; - + // esm format file \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesImportResolutionNoCycle(module=node18).js b/testdata/baselines/reference/submodule/conformance/nodeModulesImportResolutionNoCycle(module=node18).js index 4d9239ee43..66855a1118 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesImportResolutionNoCycle(module=node18).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesImportResolutionNoCycle(module=node18).js @@ -24,16 +24,12 @@ type; } //// [index.js] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); // esm format file -const type = require("#type"); +import * as type from "#type"; type; //// [index.mjs] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); // esm format file -const type = require("#type"); +import * as type from "#type"; type; //// [index.cjs] "use strict"; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesImportResolutionNoCycle(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesImportResolutionNoCycle(module=node18).js.diff index 9437116310..8dd53dfcc3 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesImportResolutionNoCycle(module=node18).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesImportResolutionNoCycle(module=node18).js.diff @@ -1,21 +1,6 @@ --- old.nodeModulesImportResolutionNoCycle(module=node18).js +++ new.nodeModulesImportResolutionNoCycle(module=node18).js -@@= skipped -23, +23 lines =@@ - } - - //// [index.js] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); - // esm format file --import * as type from "#type"; -+const type = require("#type"); - type; - //// [index.mjs] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); - // esm format file --import * as type from "#type"; -+const type = require("#type"); +@@= skipped -32, +32 lines =@@ type; //// [index.cjs] "use strict"; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesPackageExports(module=node18).js b/testdata/baselines/reference/submodule/conformance/nodeModulesPackageExports(module=node18).js index 4c8e3b229d..afeca4d652 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesPackageExports(module=node18).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesPackageExports(module=node18).js @@ -89,18 +89,16 @@ export { type }; } //// [index.mjs] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); // esm format file -const cjs = require("package/cjs"); -const mjs = require("package/mjs"); -const type = require("package"); +import * as cjs from "package/cjs"; +import * as mjs from "package/mjs"; +import * as type from "package"; cjs; mjs; type; -const cjsi = require("inner/cjs"); -const mjsi = require("inner/mjs"); -const typei = require("inner"); +import * as cjsi from "inner/cjs"; +import * as mjsi from "inner/mjs"; +import * as typei from "inner"; cjsi; mjsi; typei; @@ -121,18 +119,16 @@ cjsi; mjsi; typei; //// [index.js] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); // esm format file -const cjs = require("package/cjs"); -const mjs = require("package/mjs"); -const type = require("package"); +import * as cjs from "package/cjs"; +import * as mjs from "package/mjs"; +import * as type from "package"; cjs; mjs; type; -const cjsi = require("inner/cjs"); -const mjsi = require("inner/mjs"); -const typei = require("inner"); +import * as cjsi from "inner/cjs"; +import * as mjsi from "inner/mjs"; +import * as typei from "inner"; cjsi; mjsi; typei; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesPackageExports(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesPackageExports(module=node18).js.diff index d87bdb89ea..684c35f444 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesPackageExports(module=node18).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesPackageExports(module=node18).js.diff @@ -1,29 +1,6 @@ --- old.nodeModulesPackageExports(module=node18).js +++ new.nodeModulesPackageExports(module=node18).js -@@= skipped -88, +88 lines =@@ - } - - //// [index.mjs] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); - // esm format file --import * as cjs from "package/cjs"; --import * as mjs from "package/mjs"; --import * as type from "package"; -+const cjs = require("package/cjs"); -+const mjs = require("package/mjs"); -+const type = require("package"); - cjs; - mjs; - type; --import * as cjsi from "inner/cjs"; --import * as mjsi from "inner/mjs"; --import * as typei from "inner"; -+const cjsi = require("inner/cjs"); -+const mjsi = require("inner/mjs"); -+const typei = require("inner"); - cjsi; - mjsi; +@@= skipped -103, +103 lines =@@ typei; //// [index.cjs] "use strict"; @@ -76,28 +53,6 @@ -const typei = __importStar(require("inner")); +const cjsi = require("inner/cjs"); +const mjsi = require("inner/mjs"); -+const typei = require("inner"); - cjsi; - mjsi; - typei; - //// [index.js] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); - // esm format file --import * as cjs from "package/cjs"; --import * as mjs from "package/mjs"; --import * as type from "package"; -+const cjs = require("package/cjs"); -+const mjs = require("package/mjs"); -+const type = require("package"); - cjs; - mjs; - type; --import * as cjsi from "inner/cjs"; --import * as mjsi from "inner/mjs"; --import * as typei from "inner"; -+const cjsi = require("inner/cjs"); -+const mjsi = require("inner/mjs"); +const typei = require("inner"); cjsi; mjsi; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesPackageImports(module=node18).js b/testdata/baselines/reference/submodule/conformance/nodeModulesPackageImports(module=node18).js index 0144a3d9cd..c51cf9fc0d 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesPackageImports(module=node18).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesPackageImports(module=node18).js @@ -38,12 +38,10 @@ type; } //// [index.mjs] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); // esm format file -const cjs = require("#cjs"); -const mjs = require("#mjs"); -const type = require("#type"); +import * as cjs from "#cjs"; +import * as mjs from "#mjs"; +import * as type from "#type"; cjs; mjs; type; @@ -58,12 +56,10 @@ cjs; mjs; type; //// [index.js] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); // esm format file -const cjs = require("#cjs"); -const mjs = require("#mjs"); -const type = require("#type"); +import * as cjs from "#cjs"; +import * as mjs from "#mjs"; +import * as type from "#type"; cjs; mjs; type; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesPackageImports(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesPackageImports(module=node18).js.diff index 6207758d64..0483f1b912 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesPackageImports(module=node18).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesPackageImports(module=node18).js.diff @@ -1,20 +1,6 @@ --- old.nodeModulesPackageImports(module=node18).js +++ new.nodeModulesPackageImports(module=node18).js -@@= skipped -37, +37 lines =@@ - } - - //// [index.mjs] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); - // esm format file --import * as cjs from "#cjs"; --import * as mjs from "#mjs"; --import * as type from "#type"; -+const cjs = require("#cjs"); -+const mjs = require("#mjs"); -+const type = require("#type"); - cjs; - mjs; +@@= skipped -46, +46 lines =@@ type; //// [index.cjs] "use strict"; @@ -58,19 +44,6 @@ -const type = __importStar(require("#type")); +const cjs = require("#cjs"); +const mjs = require("#mjs"); -+const type = require("#type"); - cjs; - mjs; - type; - //// [index.js] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); - // esm format file --import * as cjs from "#cjs"; --import * as mjs from "#mjs"; --import * as type from "#type"; -+const cjs = require("#cjs"); -+const mjs = require("#mjs"); +const type = require("#type"); cjs; mjs; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesPackagePatternExports(module=node18).js b/testdata/baselines/reference/submodule/conformance/nodeModulesPackagePatternExports(module=node18).js index eea8a56131..4b17e66606 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesPackagePatternExports(module=node18).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesPackagePatternExports(module=node18).js @@ -66,22 +66,18 @@ export { type }; } //// [index.js] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); // esm format file -const cjsi = require("inner/cjs/index"); -const mjsi = require("inner/mjs/index"); -const typei = require("inner/js/index"); +import * as cjsi from "inner/cjs/index"; +import * as mjsi from "inner/mjs/index"; +import * as typei from "inner/js/index"; cjsi; mjsi; typei; //// [index.mjs] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); // esm format file -const cjsi = require("inner/cjs/index"); -const mjsi = require("inner/mjs/index"); -const typei = require("inner/js/index"); +import * as cjsi from "inner/cjs/index"; +import * as mjsi from "inner/mjs/index"; +import * as typei from "inner/js/index"; cjsi; mjsi; typei; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesPackagePatternExports(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesPackagePatternExports(module=node18).js.diff index aaaf511197..ed73d7a279 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesPackagePatternExports(module=node18).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesPackagePatternExports(module=node18).js.diff @@ -1,33 +1,6 @@ --- old.nodeModulesPackagePatternExports(module=node18).js +++ new.nodeModulesPackagePatternExports(module=node18).js -@@= skipped -65, +65 lines =@@ - } - - //// [index.js] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); - // esm format file --import * as cjsi from "inner/cjs/index"; --import * as mjsi from "inner/mjs/index"; --import * as typei from "inner/js/index"; -+const cjsi = require("inner/cjs/index"); -+const mjsi = require("inner/mjs/index"); -+const typei = require("inner/js/index"); - cjsi; - mjsi; - typei; - //// [index.mjs] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); - // esm format file --import * as cjsi from "inner/cjs/index"; --import * as mjsi from "inner/mjs/index"; --import * as typei from "inner/js/index"; -+const cjsi = require("inner/cjs/index"); -+const mjsi = require("inner/mjs/index"); -+const typei = require("inner/js/index"); - cjsi; - mjsi; +@@= skipped -82, +82 lines =@@ typei; //// [index.cjs] "use strict"; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesPackagePatternExportsExclude(module=node18).js b/testdata/baselines/reference/submodule/conformance/nodeModulesPackagePatternExportsExclude(module=node18).js index 47d4d67006..cea2e74915 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesPackagePatternExportsExclude(module=node18).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesPackagePatternExportsExclude(module=node18).js @@ -111,34 +111,30 @@ export { type }; } //// [index.js] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); // esm format file -const cjsi = require("inner/cjs/exclude/index"); -const mjsi = require("inner/mjs/exclude/index"); -const typei = require("inner/js/exclude/index"); +import * as cjsi from "inner/cjs/exclude/index"; +import * as mjsi from "inner/mjs/exclude/index"; +import * as typei from "inner/js/exclude/index"; cjsi; mjsi; typei; -const cjsi2 = require("inner/cjs/index"); -const mjsi2 = require("inner/mjs/index"); -const typei2 = require("inner/js/index"); +import * as cjsi2 from "inner/cjs/index"; +import * as mjsi2 from "inner/mjs/index"; +import * as typei2 from "inner/js/index"; cjsi2; mjsi2; typei2; //// [index.mjs] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); // esm format file -const cjsi = require("inner/cjs/exclude/index"); -const mjsi = require("inner/mjs/exclude/index"); -const typei = require("inner/js/exclude/index"); +import * as cjsi from "inner/cjs/exclude/index"; +import * as mjsi from "inner/mjs/exclude/index"; +import * as typei from "inner/js/exclude/index"; cjsi; mjsi; typei; -const cjsi2 = require("inner/cjs/index"); -const mjsi2 = require("inner/mjs/index"); -const typei2 = require("inner/js/index"); +import * as cjsi2 from "inner/cjs/index"; +import * as mjsi2 from "inner/mjs/index"; +import * as typei2 from "inner/js/index"; cjsi2; mjsi2; typei2; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesPackagePatternExportsExclude(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesPackagePatternExportsExclude(module=node18).js.diff index 2610150cc7..069f8f4eed 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesPackagePatternExportsExclude(module=node18).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesPackagePatternExportsExclude(module=node18).js.diff @@ -1,51 +1,6 @@ --- old.nodeModulesPackagePatternExportsExclude(module=node18).js +++ new.nodeModulesPackagePatternExportsExclude(module=node18).js -@@= skipped -110, +110 lines =@@ - } - - //// [index.js] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); - // esm format file --import * as cjsi from "inner/cjs/exclude/index"; --import * as mjsi from "inner/mjs/exclude/index"; --import * as typei from "inner/js/exclude/index"; -+const cjsi = require("inner/cjs/exclude/index"); -+const mjsi = require("inner/mjs/exclude/index"); -+const typei = require("inner/js/exclude/index"); - cjsi; - mjsi; - typei; --import * as cjsi2 from "inner/cjs/index"; --import * as mjsi2 from "inner/mjs/index"; --import * as typei2 from "inner/js/index"; -+const cjsi2 = require("inner/cjs/index"); -+const mjsi2 = require("inner/mjs/index"); -+const typei2 = require("inner/js/index"); - cjsi2; - mjsi2; - typei2; - //// [index.mjs] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); - // esm format file --import * as cjsi from "inner/cjs/exclude/index"; --import * as mjsi from "inner/mjs/exclude/index"; --import * as typei from "inner/js/exclude/index"; -+const cjsi = require("inner/cjs/exclude/index"); -+const mjsi = require("inner/mjs/exclude/index"); -+const typei = require("inner/js/exclude/index"); - cjsi; - mjsi; - typei; --import * as cjsi2 from "inner/cjs/index"; --import * as mjsi2 from "inner/mjs/index"; --import * as typei2 from "inner/js/index"; -+const cjsi2 = require("inner/cjs/index"); -+const mjsi2 = require("inner/mjs/index"); -+const typei2 = require("inner/js/index"); - cjsi2; - mjsi2; +@@= skipped -139, +139 lines =@@ typei2; //// [index.cjs] "use strict"; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesPackagePatternExportsTrailers(module=node18).js b/testdata/baselines/reference/submodule/conformance/nodeModulesPackagePatternExportsTrailers(module=node18).js index 09239e1b57..ca0158174b 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesPackagePatternExportsTrailers(module=node18).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesPackagePatternExportsTrailers(module=node18).js @@ -66,22 +66,18 @@ export { type }; } //// [index.js] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); // esm format file -const cjsi = require("inner/cjs/index.cjs"); -const mjsi = require("inner/mjs/index.mjs"); -const typei = require("inner/js/index.js"); +import * as cjsi from "inner/cjs/index.cjs"; +import * as mjsi from "inner/mjs/index.mjs"; +import * as typei from "inner/js/index.js"; cjsi; mjsi; typei; //// [index.mjs] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); // esm format file -const cjsi = require("inner/cjs/index.cjs"); -const mjsi = require("inner/mjs/index.mjs"); -const typei = require("inner/js/index.js"); +import * as cjsi from "inner/cjs/index.cjs"; +import * as mjsi from "inner/mjs/index.mjs"; +import * as typei from "inner/js/index.js"; cjsi; mjsi; typei; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesPackagePatternExportsTrailers(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesPackagePatternExportsTrailers(module=node18).js.diff index 008395f2bc..54dc3740aa 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesPackagePatternExportsTrailers(module=node18).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesPackagePatternExportsTrailers(module=node18).js.diff @@ -1,33 +1,6 @@ --- old.nodeModulesPackagePatternExportsTrailers(module=node18).js +++ new.nodeModulesPackagePatternExportsTrailers(module=node18).js -@@= skipped -65, +65 lines =@@ - } - - //// [index.js] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); - // esm format file --import * as cjsi from "inner/cjs/index.cjs"; --import * as mjsi from "inner/mjs/index.mjs"; --import * as typei from "inner/js/index.js"; -+const cjsi = require("inner/cjs/index.cjs"); -+const mjsi = require("inner/mjs/index.mjs"); -+const typei = require("inner/js/index.js"); - cjsi; - mjsi; - typei; - //// [index.mjs] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); - // esm format file --import * as cjsi from "inner/cjs/index.cjs"; --import * as mjsi from "inner/mjs/index.mjs"; --import * as typei from "inner/js/index.js"; -+const cjsi = require("inner/cjs/index.cjs"); -+const mjsi = require("inner/mjs/index.mjs"); -+const typei = require("inner/js/index.js"); - cjsi; - mjsi; +@@= skipped -82, +82 lines =@@ typei; //// [index.cjs] "use strict"; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesResolveJsonModule(module=node18).js b/testdata/baselines/reference/submodule/conformance/nodeModulesResolveJsonModule(module=node18).js index 7575e58f0c..87a4cfeb47 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesResolveJsonModule(module=node18).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesResolveJsonModule(module=node18).js @@ -27,14 +27,11 @@ export const name2 = ns.default.name; } //// [index.js] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.name2 = exports.thing = exports.name = void 0; -const package_json_1 = require("./package.json"); -exports.name = package_json_1.default.name; -const ns = require("./package.json"); -exports.thing = ns; -exports.name2 = ns.default.name; +import pkg from "./package.json" with { type: "json" }; +export const name = pkg.name; +import * as ns from "./package.json" with { type: "json" }; +export const thing = ns; +export const name2 = ns.default.name; //// [index.cjs] "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); @@ -45,14 +42,11 @@ const ns = require("./package.json"); exports.thing = ns; exports.name2 = ns.default.name; //// [index.mjs] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.name2 = exports.thing = exports.name = void 0; -const package_json_1 = require("./package.json"); -exports.name = package_json_1.default.name; -const ns = require("./package.json"); -exports.thing = ns; -exports.name2 = ns.default.name; +import pkg from "./package.json" with { type: "json" }; +export const name = pkg.name; +import * as ns from "./package.json" with { type: "json" }; +export const thing = ns; +export const name2 = ns.default.name; //// [index.d.ts] diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesResolveJsonModule(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesResolveJsonModule(module=node18).js.diff index 2a50e0db74..3e647c09ed 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesResolveJsonModule(module=node18).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesResolveJsonModule(module=node18).js.diff @@ -12,19 +12,10 @@ - "default": "misedirection" -} //// [index.js] --import pkg from "./package.json" with { type: "json" }; --export const name = pkg.name; --import * as ns from "./package.json" with { type: "json" }; --export const thing = ns; --export const name2 = ns.default.name; -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); -+exports.name2 = exports.thing = exports.name = void 0; -+const package_json_1 = require("./package.json"); -+exports.name = package_json_1.default.name; -+const ns = require("./package.json"); -+exports.thing = ns; -+exports.name2 = ns.default.name; + import pkg from "./package.json" with { type: "json" }; + export const name = pkg.name; +@@= skipped -15, +8 lines =@@ + export const name2 = ns.default.name; //// [index.cjs] "use strict"; -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { @@ -73,23 +64,7 @@ exports.thing = ns; exports.name2 = ns.default.name; //// [index.mjs] --import pkg from "./package.json" with { type: "json" }; --export const name = pkg.name; --import * as ns from "./package.json" with { type: "json" }; --export const thing = ns; --export const name2 = ns.default.name; -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); -+exports.name2 = exports.thing = exports.name = void 0; -+const package_json_1 = require("./package.json"); -+exports.name = package_json_1.default.name; -+const ns = require("./package.json"); -+exports.thing = ns; -+exports.name2 = ns.default.name; - - - //// [index.d.ts] -@@= skipped -78, +41 lines =@@ +@@= skipped -63, +27 lines =@@ }; export declare const name2: string; //// [index.d.cts] diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesSynchronousCallErrors(module=node18).js b/testdata/baselines/reference/submodule/conformance/nodeModulesSynchronousCallErrors(module=node18).js index 0b0f71fc7f..f317196b7b 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesSynchronousCallErrors(module=node18).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesSynchronousCallErrors(module=node18).js @@ -34,14 +34,11 @@ export async function h() { } //// [index.js] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.h = h; -const index_js_1 = require("./subfolder/index.js"); -async function h() { +import { f } from "./subfolder/index.js"; +export async function h() { const mod3 = await import("./index.js"); const mod4 = await import("./subfolder/index.js"); - (0, index_js_1.f)(); + f(); } //// [index.js] "use strict"; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesSynchronousCallErrors(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesSynchronousCallErrors(module=node18).js.diff deleted file mode 100644 index 05eff5db29..0000000000 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesSynchronousCallErrors(module=node18).js.diff +++ /dev/null @@ -1,20 +0,0 @@ ---- old.nodeModulesSynchronousCallErrors(module=node18).js -+++ new.nodeModulesSynchronousCallErrors(module=node18).js -@@= skipped -33, +33 lines =@@ - } - - //// [index.js] --import { f } from "./subfolder/index.js"; --export async function h() { -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); -+exports.h = h; -+const index_js_1 = require("./subfolder/index.js"); -+async function h() { - const mod3 = await import("./index.js"); - const mod4 = await import("./subfolder/index.js"); -- f(); -+ (0, index_js_1.f)(); - } - //// [index.js] - "use strict"; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesTopLevelAwait(module=node18).js b/testdata/baselines/reference/submodule/conformance/nodeModulesTopLevelAwait(module=node18).js index d55f8ee5af..322d38627a 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesTopLevelAwait(module=node18).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesTopLevelAwait(module=node18).js @@ -30,12 +30,9 @@ const x = await 1; exports.x = x; for await (const y of []) { } //// [index.js] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.x = void 0; // esm format file const x = await 1; -exports.x = x; +export { x }; for await (const y of []) { } diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesTopLevelAwait(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesTopLevelAwait(module=node18).js.diff index 3aee12d2da..0f17fbb0a0 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesTopLevelAwait(module=node18).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesTopLevelAwait(module=node18).js.diff @@ -1,17 +1,6 @@ --- old.nodeModulesTopLevelAwait(module=node18).js +++ new.nodeModulesTopLevelAwait(module=node18).js -@@= skipped -29, +29 lines =@@ - exports.x = x; - for await (const y of []) { } - //// [index.js] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); -+exports.x = void 0; - // esm format file - const x = await 1; --export { x }; -+exports.x = x; - for await (const y of []) { } +@@= skipped -36, +36 lines =@@ //// [index.d.ts] diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesTripleSlashReferenceModeDeclarationEmit2(module=node18).js b/testdata/baselines/reference/submodule/conformance/nodeModulesTripleSlashReferenceModeDeclarationEmit2(module=node18).js index ad43258895..1ba9e42041 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesTripleSlashReferenceModeDeclarationEmit2(module=node18).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesTripleSlashReferenceModeDeclarationEmit2(module=node18).js @@ -29,9 +29,8 @@ declare global { export interface LocalInterface extends ImportInterface {} //// [index.js] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); /// +export {}; //// [index.d.ts] diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesTripleSlashReferenceModeDeclarationEmit2(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesTripleSlashReferenceModeDeclarationEmit2(module=node18).js.diff index 8029440b1d..76d0ce5cc5 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesTripleSlashReferenceModeDeclarationEmit2(module=node18).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesTripleSlashReferenceModeDeclarationEmit2(module=node18).js.diff @@ -1,13 +1,6 @@ --- old.nodeModulesTripleSlashReferenceModeDeclarationEmit2(module=node18).js +++ new.nodeModulesTripleSlashReferenceModeDeclarationEmit2(module=node18).js -@@= skipped -28, +28 lines =@@ - export interface LocalInterface extends ImportInterface {} - - //// [index.js] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); - /// --export {}; +@@= skipped -33, +33 lines =@@ //// [index.d.ts] diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesTripleSlashReferenceModeDeclarationEmit3(module=node18).js b/testdata/baselines/reference/submodule/conformance/nodeModulesTripleSlashReferenceModeDeclarationEmit3(module=node18).js index e2101c5b26..015af34735 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesTripleSlashReferenceModeDeclarationEmit3(module=node18).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesTripleSlashReferenceModeDeclarationEmit3(module=node18).js @@ -29,9 +29,8 @@ declare global { export interface LocalInterface extends RequireInterface {} //// [index.js] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); /// +export {}; //// [index.d.ts] diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesTripleSlashReferenceModeDeclarationEmit3(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesTripleSlashReferenceModeDeclarationEmit3(module=node18).js.diff index b9f38be185..67dcd3a69e 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesTripleSlashReferenceModeDeclarationEmit3(module=node18).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesTripleSlashReferenceModeDeclarationEmit3(module=node18).js.diff @@ -1,13 +1,6 @@ --- old.nodeModulesTripleSlashReferenceModeDeclarationEmit3(module=node18).js +++ new.nodeModulesTripleSlashReferenceModeDeclarationEmit3(module=node18).js -@@= skipped -28, +28 lines =@@ - export interface LocalInterface extends RequireInterface {} - - //// [index.js] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); - /// --export {}; +@@= skipped -33, +33 lines =@@ //// [index.d.ts] diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesTripleSlashReferenceModeDeclarationEmit7(module=node18).js b/testdata/baselines/reference/submodule/conformance/nodeModulesTripleSlashReferenceModeDeclarationEmit7(module=node18).js index bb5bbb5856..41e3b9ac02 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesTripleSlashReferenceModeDeclarationEmit7(module=node18).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesTripleSlashReferenceModeDeclarationEmit7(module=node18).js @@ -49,22 +49,18 @@ import obj2 from "./sub2/uses.js" export default [obj1, obj2.default] as const; //// [uses.js] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); /// -exports.default = getInterI(); +export default getInterI(); //// [uses.js] "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); /// exports.default = getInterR(); //// [index.js] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); // only an esm file can `import` both kinds of files -const uses_js_1 = require("./sub1/uses.js"); -const uses_js_2 = require("./sub2/uses.js"); -exports.default = [uses_js_1.default, uses_js_2.default.default]; +import obj1 from "./sub1/uses.js"; +import obj2 from "./sub2/uses.js"; +export default [obj1, obj2.default]; //// [uses.d.ts] diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesTripleSlashReferenceModeDeclarationEmit7(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesTripleSlashReferenceModeDeclarationEmit7(module=node18).js.diff index b6bda16489..819efaa96f 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesTripleSlashReferenceModeDeclarationEmit7(module=node18).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesTripleSlashReferenceModeDeclarationEmit7(module=node18).js.diff @@ -1,29 +1,6 @@ --- old.nodeModulesTripleSlashReferenceModeDeclarationEmit7(module=node18).js +++ new.nodeModulesTripleSlashReferenceModeDeclarationEmit7(module=node18).js -@@= skipped -48, +48 lines =@@ - export default [obj1, obj2.default] as const; - - //// [uses.js] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); - /// --export default getInterI(); -+exports.default = getInterI(); - //// [uses.js] - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - /// - exports.default = getInterR(); - //// [index.js] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); - // only an esm file can `import` both kinds of files --import obj1 from "./sub1/uses.js"; --import obj2 from "./sub2/uses.js"; --export default [obj1, obj2.default]; -+const uses_js_1 = require("./sub1/uses.js"); -+const uses_js_2 = require("./sub2/uses.js"); -+exports.default = [uses_js_1.default, uses_js_2.default.default]; +@@= skipped -63, +63 lines =@@ //// [uses.d.ts] @@ -35,7 +12,7 @@ declare const _default: RequireInterface; export default _default; //// [index.d.ts] -@@= skipped -64, +66 lines =@@ +@@= skipped -49, +47 lines =@@ function getInterR(): RequireInterface; } ==== out/sub1/uses.d.ts (0 errors) ==== diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesTripleSlashReferenceModeOverride2(module=node18).js b/testdata/baselines/reference/submodule/conformance/nodeModulesTripleSlashReferenceModeOverride2(module=node18).js index 70cf2e6b25..aee176689b 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesTripleSlashReferenceModeOverride2(module=node18).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesTripleSlashReferenceModeOverride2(module=node18).js @@ -31,8 +31,7 @@ bar; export {}; //// [index.js] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); /// foo; // foo should resolve while bar should not, since index.js is esm bar; +export {}; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesTripleSlashReferenceModeOverride2(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesTripleSlashReferenceModeOverride2(module=node18).js.diff deleted file mode 100644 index f1b7a36bca..0000000000 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesTripleSlashReferenceModeOverride2(module=node18).js.diff +++ /dev/null @@ -1,12 +0,0 @@ ---- old.nodeModulesTripleSlashReferenceModeOverride2(module=node18).js -+++ new.nodeModulesTripleSlashReferenceModeOverride2(module=node18).js -@@= skipped -30, +30 lines =@@ - export {}; - - //// [index.js] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); - /// - foo; // foo should resolve while bar should not, since index.js is esm - bar; --export {}; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesTripleSlashReferenceModeOverride3(module=node18).js b/testdata/baselines/reference/submodule/conformance/nodeModulesTripleSlashReferenceModeOverride3(module=node18).js index 7bde651a81..c6806f897d 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesTripleSlashReferenceModeOverride3(module=node18).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesTripleSlashReferenceModeOverride3(module=node18).js @@ -31,8 +31,7 @@ bar; // bar should resolve while foo should not, since even though index.js is e export {}; //// [index.js] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); /// foo; bar; // bar should resolve while foo should not, since even though index.js is esm, the reference is cjs +export {}; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesTripleSlashReferenceModeOverride3(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesTripleSlashReferenceModeOverride3(module=node18).js.diff deleted file mode 100644 index 3cead8cad9..0000000000 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesTripleSlashReferenceModeOverride3(module=node18).js.diff +++ /dev/null @@ -1,12 +0,0 @@ ---- old.nodeModulesTripleSlashReferenceModeOverride3(module=node18).js -+++ new.nodeModulesTripleSlashReferenceModeOverride3(module=node18).js -@@= skipped -30, +30 lines =@@ - export {}; - - //// [index.js] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); - /// - foo; - bar; // bar should resolve while foo should not, since even though index.js is esm, the reference is cjs --export {}; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesTypesVersionPackageExports(module=node18).js b/testdata/baselines/reference/submodule/conformance/nodeModulesTypesVersionPackageExports(module=node18).js index d2267d0661..e134277196 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesTypesVersionPackageExports(module=node18).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesTypesVersionPackageExports(module=node18).js @@ -52,16 +52,12 @@ export const futureVersionApplied = true; } //// [index.js] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); // esm format file -const mod = require("inner"); +import * as mod from "inner"; mod.correctVersionApplied; //// [index.mjs] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); // esm format file -const mod = require("inner"); +import * as mod from "inner"; mod.correctVersionApplied; //// [index.cjs] "use strict"; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesTypesVersionPackageExports(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesTypesVersionPackageExports(module=node18).js.diff index 7120d13e9c..ef3e0f5684 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesTypesVersionPackageExports(module=node18).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesTypesVersionPackageExports(module=node18).js.diff @@ -1,21 +1,6 @@ --- old.nodeModulesTypesVersionPackageExports(module=node18).js +++ new.nodeModulesTypesVersionPackageExports(module=node18).js -@@= skipped -51, +51 lines =@@ - } - - //// [index.js] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); - // esm format file --import * as mod from "inner"; -+const mod = require("inner"); - mod.correctVersionApplied; - //// [index.mjs] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); - // esm format file --import * as mod from "inner"; -+const mod = require("inner"); +@@= skipped -60, +60 lines =@@ mod.correctVersionApplied; //// [index.cjs] "use strict"; diff --git a/testdata/baselines/reference/submodule/conformance/nodePackageSelfName(module=node18).js b/testdata/baselines/reference/submodule/conformance/nodePackageSelfName(module=node18).js index 808f7208b8..e1a383e4d9 100644 --- a/testdata/baselines/reference/submodule/conformance/nodePackageSelfName(module=node18).js +++ b/testdata/baselines/reference/submodule/conformance/nodePackageSelfName(module=node18).js @@ -21,16 +21,12 @@ self; } //// [index.js] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); // esm format file -const self = require("package"); +import * as self from "package"; self; //// [index.mjs] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); // esm format file -const self = require("package"); +import * as self from "package"; self; //// [index.cjs] "use strict"; diff --git a/testdata/baselines/reference/submodule/conformance/nodePackageSelfName(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/nodePackageSelfName(module=node18).js.diff index 419b17006a..6f36f54177 100644 --- a/testdata/baselines/reference/submodule/conformance/nodePackageSelfName(module=node18).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodePackageSelfName(module=node18).js.diff @@ -1,21 +1,6 @@ --- old.nodePackageSelfName(module=node18).js +++ new.nodePackageSelfName(module=node18).js -@@= skipped -20, +20 lines =@@ - } - - //// [index.js] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); - // esm format file --import * as self from "package"; -+const self = require("package"); - self; - //// [index.mjs] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); - // esm format file --import * as self from "package"; -+const self = require("package"); +@@= skipped -29, +29 lines =@@ self; //// [index.cjs] "use strict"; diff --git a/testdata/baselines/reference/submodule/conformance/nodePackageSelfNameScoped(module=node18).js b/testdata/baselines/reference/submodule/conformance/nodePackageSelfNameScoped(module=node18).js index 0ab838fc3e..d8b9f2d540 100644 --- a/testdata/baselines/reference/submodule/conformance/nodePackageSelfNameScoped(module=node18).js +++ b/testdata/baselines/reference/submodule/conformance/nodePackageSelfNameScoped(module=node18).js @@ -21,16 +21,12 @@ self; } //// [index.js] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); // esm format file -const self = require("@scope/package"); +import * as self from "@scope/package"; self; //// [index.mjs] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); // esm format file -const self = require("@scope/package"); +import * as self from "@scope/package"; self; //// [index.cjs] "use strict"; diff --git a/testdata/baselines/reference/submodule/conformance/nodePackageSelfNameScoped(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/nodePackageSelfNameScoped(module=node18).js.diff index b0e6f1c773..fae08d9236 100644 --- a/testdata/baselines/reference/submodule/conformance/nodePackageSelfNameScoped(module=node18).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodePackageSelfNameScoped(module=node18).js.diff @@ -1,21 +1,6 @@ --- old.nodePackageSelfNameScoped(module=node18).js +++ new.nodePackageSelfNameScoped(module=node18).js -@@= skipped -20, +20 lines =@@ - } - - //// [index.js] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); - // esm format file --import * as self from "@scope/package"; -+const self = require("@scope/package"); - self; - //// [index.mjs] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); - // esm format file --import * as self from "@scope/package"; -+const self = require("@scope/package"); +@@= skipped -29, +29 lines =@@ self; //// [index.cjs] "use strict"; diff --git a/testdata/baselines/reference/submodule/conformance/nonTSExtensions(module=node18).js b/testdata/baselines/reference/submodule/conformance/nonTSExtensions(module=node18).js index 7952812e2f..117d199aa7 100644 --- a/testdata/baselines/reference/submodule/conformance/nonTSExtensions(module=node18).js +++ b/testdata/baselines/reference/submodule/conformance/nonTSExtensions(module=node18).js @@ -11,5 +11,4 @@ import {} from "./example.json" with { type: "json" }; // Ok import {} from "./styles.css"; // Ok //// [index.mjs] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); +export {}; diff --git a/testdata/baselines/reference/submodule/conformance/nonTSExtensions(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/nonTSExtensions(module=node18).js.diff deleted file mode 100644 index 8a2da2c058..0000000000 --- a/testdata/baselines/reference/submodule/conformance/nonTSExtensions(module=node18).js.diff +++ /dev/null @@ -1,9 +0,0 @@ ---- old.nonTSExtensions(module=node18).js -+++ new.nonTSExtensions(module=node18).js -@@= skipped -10, +10 lines =@@ - import {} from "./styles.css"; // Ok - - //// [index.mjs] --export {}; -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/packageJsonImportsErrors(module=node18).js b/testdata/baselines/reference/submodule/conformance/packageJsonImportsErrors(module=node18).js index c735076d9e..5a0805f046 100644 --- a/testdata/baselines/reference/submodule/conformance/packageJsonImportsErrors(module=node18).js +++ b/testdata/baselines/reference/submodule/conformance/packageJsonImportsErrors(module=node18).js @@ -28,14 +28,10 @@ import {} from "#internal/foo.ts"; // Error import {} from "pkg/foo.ts"; // Ok //// [foo.js] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); +export {}; //// [foo.js] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); +export {}; //// [index.js] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -const _foo_ts_1 = require("#foo.ts"); // Ok -const foo_ts_1 = require("#internal/foo.ts"); // Error -const foo_ts_2 = require("pkg/foo.ts"); // Ok +import {} from "#foo.ts"; // Ok +import {} from "#internal/foo.ts"; // Error +import {} from "pkg/foo.ts"; // Ok diff --git a/testdata/baselines/reference/submodule/conformance/packageJsonImportsErrors(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/packageJsonImportsErrors(module=node18).js.diff deleted file mode 100644 index e94f0783f4..0000000000 --- a/testdata/baselines/reference/submodule/conformance/packageJsonImportsErrors(module=node18).js.diff +++ /dev/null @@ -1,22 +0,0 @@ ---- old.packageJsonImportsErrors(module=node18).js -+++ new.packageJsonImportsErrors(module=node18).js -@@= skipped -27, +27 lines =@@ - import {} from "pkg/foo.ts"; // Ok - - //// [foo.js] --export {}; -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); - //// [foo.js] --export {}; -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); - //// [index.js] --import {} from "#foo.ts"; // Ok --import {} from "#internal/foo.ts"; // Error --import {} from "pkg/foo.ts"; // Ok -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); -+const _foo_ts_1 = require("#foo.ts"); // Ok -+const foo_ts_1 = require("#internal/foo.ts"); // Error -+const foo_ts_2 = require("pkg/foo.ts"); // Ok \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/typeOnlyESMImportFromCJS(module=node18).js b/testdata/baselines/reference/submodule/conformance/typeOnlyESMImportFromCJS(module=node18).js index 5ba6ae1ae7..01b406ded5 100644 --- a/testdata/baselines/reference/submodule/conformance/typeOnlyESMImportFromCJS(module=node18).js +++ b/testdata/baselines/reference/submodule/conformance/typeOnlyESMImportFromCJS(module=node18).js @@ -13,8 +13,7 @@ type _3 = typeof import("./module.mts", { with: { "resolution-mode": "require" } //// [module.mjs] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); +export {}; //// [common.cjs] "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/testdata/baselines/reference/submodule/conformance/typeOnlyESMImportFromCJS(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/typeOnlyESMImportFromCJS(module=node18).js.diff deleted file mode 100644 index 91e7042d3e..0000000000 --- a/testdata/baselines/reference/submodule/conformance/typeOnlyESMImportFromCJS(module=node18).js.diff +++ /dev/null @@ -1,12 +0,0 @@ ---- old.typeOnlyESMImportFromCJS(module=node18).js -+++ new.typeOnlyESMImportFromCJS(module=node18).js -@@= skipped -12, +12 lines =@@ - - - //// [module.mjs] --export {}; -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); - //// [common.cjs] - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); \ No newline at end of file From fe5949c505ff5027e9c64ca1c39252b0c2c94684 Mon Sep 17 00:00:00 2001 From: Jake Bailey <5341706+jakebailey@users.noreply.github.com> Date: Fri, 20 Jun 2025 11:24:36 -0700 Subject: [PATCH 08/15] Port more resolveExternalModule, fix copy paste error in GetResolutionDiagnostic (#1248) --- internal/checker/checker.go | 58 ++++++++++++------- internal/compiler/fileloader.go | 54 +---------------- internal/module/util.go | 56 ++++++++++++++++++ .../compiler/checkJsxNotSetError.errors.txt | 5 +- ...tionWithExtensions_notSupported.errors.txt | 9 ++- ...ithExtensions_notSupported.errors.txt.diff | 22 ------- ...ionWithExtensions_notSupported2.errors.txt | 10 ++++ ...thExtensions_notSupported2.errors.txt.diff | 14 ----- ...sextensions=false,noemit=false).errors.txt | 5 +- ...tsextensions=false,noemit=true).errors.txt | 5 +- ...tsextensions=true,noemit=false).errors.txt | 5 +- ...gtsextensions=true,noemit=true).errors.txt | 5 +- ...allowarbitraryextensions=false).errors.txt | 27 +++++++++ ...arbitraryextensions=false).errors.txt.diff | 31 ---------- ...rt(allowarbitraryextensions=false).symbols | 6 -- ...lowarbitraryextensions=false).symbols.diff | 8 +-- ...port(allowarbitraryextensions=false).types | 22 +++---- ...allowarbitraryextensions=false).types.diff | 47 --------------- ...extensions=false,module=node18).errors.txt | 4 +- ...sions=false,module=node18).errors.txt.diff | 15 ----- ...tensions=false,module=nodenext).errors.txt | 4 +- ...ons=false,module=nodenext).errors.txt.diff | 15 ----- .../checkJsxNotSetError.errors.txt.diff | 19 ------ ...nsions=false,noemit=false).errors.txt.diff | 25 +------- ...ensions=false,noemit=true).errors.txt.diff | 25 +------- ...ensions=true,noemit=false).errors.txt.diff | 22 +------ ...tensions=true,noemit=true).errors.txt.diff | 22 +------ 27 files changed, 181 insertions(+), 359 deletions(-) delete mode 100644 testdata/baselines/reference/submodule/compiler/moduleResolutionWithExtensions_notSupported.errors.txt.diff create mode 100644 testdata/baselines/reference/submodule/compiler/moduleResolutionWithExtensions_notSupported2.errors.txt delete mode 100644 testdata/baselines/reference/submodule/compiler/moduleResolutionWithExtensions_notSupported2.errors.txt.diff create mode 100644 testdata/baselines/reference/submodule/conformance/declarationFileForHtmlImport(allowarbitraryextensions=false).errors.txt delete mode 100644 testdata/baselines/reference/submodule/conformance/declarationFileForHtmlImport(allowarbitraryextensions=false).errors.txt.diff delete mode 100644 testdata/baselines/reference/submodule/conformance/declarationFileForHtmlImport(allowarbitraryextensions=false).types.diff delete mode 100644 testdata/baselines/reference/submodule/conformance/declarationFilesForNodeNativeModules(allowarbitraryextensions=false,module=node18).errors.txt.diff delete mode 100644 testdata/baselines/reference/submodule/conformance/declarationFilesForNodeNativeModules(allowarbitraryextensions=false,module=nodenext).errors.txt.diff delete mode 100644 testdata/baselines/reference/submoduleAccepted/compiler/checkJsxNotSetError.errors.txt.diff diff --git a/internal/checker/checker.go b/internal/checker/checker.go index 31d4728a6b..a20cd5ddd8 100644 --- a/internal/checker/checker.go +++ b/internal/checker/checker.go @@ -14482,14 +14482,24 @@ func (c *Checker) resolveExternalModule(location *ast.Node, moduleReference stri mode = c.program.GetDefaultResolutionModeForFile(importingSourceFile) } - var sourceFile *ast.SourceFile resolvedModule := c.program.GetResolvedModule(importingSourceFile, moduleReference, mode) - if resolvedModule.IsResolved() { + + var resolutionDiagnostic *diagnostics.Message + if errorNode != nil && resolvedModule.IsResolved() { + resolutionDiagnostic = module.GetResolutionDiagnostic(c.compilerOptions, resolvedModule, importingSourceFile) + } + + var sourceFile *ast.SourceFile + if resolvedModule.IsResolved() && (resolutionDiagnostic == nil || resolutionDiagnostic == diagnostics.Module_0_was_resolved_to_1_but_jsx_is_not_set) { sourceFile = c.program.GetSourceFileForResolvedModule(resolvedModule.ResolvedFileName) } if sourceFile != nil { - // !!! + // If there's a resolutionDiagnostic we need to report it even if a sourceFile is found. + if resolutionDiagnostic != nil { + c.error(errorNode, resolutionDiagnostic, moduleReference, resolvedModule.ResolvedFileName) + } + if errorNode != nil { if resolvedModule.ResolvedUsingTsExtension && tspath.IsDeclarationFileName(moduleReference) { if ast.FindAncestor(location, ast.IsEmittableImport) != nil { @@ -14577,7 +14587,7 @@ func (c *Checker) resolveExternalModule(location *ast.Node, moduleReference stri if sourceFile.Symbol != nil { if errorNode != nil { - if resolvedModule.IsExternalLibraryImport && !(tspath.ExtensionIsTs(resolvedModule.Extension) || resolvedModule.Extension == tspath.ExtensionJson) { + if resolvedModule.IsExternalLibraryImport && !resolutionExtensionIsTSOrJson(resolvedModule.Extension) { c.errorOnImplicitAnyModule(false /*isError*/, errorNode, mode, resolvedModule, moduleReference) } if c.moduleKind == core.ModuleKindNode16 || c.moduleKind == core.ModuleKindNode18 { @@ -14633,7 +14643,7 @@ func (c *Checker) resolveExternalModule(location *ast.Node, moduleReference stri return nil } - if resolvedModule.IsResolved() && !(tspath.ExtensionIsTs(resolvedModule.Extension) || resolvedModule.Extension == tspath.ExtensionJson) { + if resolvedModule.IsResolved() && !resolutionExtensionIsTSOrJson(resolvedModule.Extension) && resolutionDiagnostic == nil || resolutionDiagnostic == diagnostics.Could_not_find_a_declaration_file_for_module_0_1_implicitly_has_an_any_type { if isForAugmentation { c.error( errorNode, @@ -14648,7 +14658,6 @@ func (c *Checker) resolveExternalModule(location *ast.Node, moduleReference stri } if moduleNotFoundError != nil { - // See if this was possibly a projectReference redirect if resolvedModule.IsResolved() { redirect := c.program.GetOutputAndProjectReference(tspath.ToPath(resolvedModule.ResolvedFileName, c.program.GetCurrentDirectory(), c.program.UseCaseSensitiveFileNames())) @@ -14663,29 +14672,36 @@ func (c *Checker) resolveExternalModule(location *ast.Node, moduleReference stri } } - // !!! - isExtensionlessRelativePathImport := tspath.PathIsRelative(moduleReference) && !tspath.HasExtension(moduleReference) - resolutionIsNode16OrNext := c.moduleResolutionKind == core.ModuleResolutionKindNode16 || c.moduleResolutionKind == core.ModuleResolutionKindNodeNext - if !c.compilerOptions.GetResolveJsonModule() && tspath.FileExtensionIs(moduleReference, tspath.ExtensionJson) { - c.error(errorNode, diagnostics.Cannot_find_module_0_Consider_using_resolveJsonModule_to_import_module_with_json_extension, moduleReference) - } else if mode == core.ResolutionModeESM && resolutionIsNode16OrNext && isExtensionlessRelativePathImport { - absoluteRef := tspath.GetNormalizedAbsolutePath(moduleReference, tspath.GetDirectoryPath(importingSourceFile.FileName())) - if suggestedExt := c.getSuggestedImportExtension(absoluteRef); suggestedExt != "" { - c.error(errorNode, diagnostics.Relative_import_paths_need_explicit_file_extensions_in_ECMAScript_imports_when_moduleResolution_is_node16_or_nodenext_Did_you_mean_0, moduleReference+suggestedExt) + if resolutionDiagnostic != nil { + c.error(errorNode, resolutionDiagnostic, moduleReference, resolvedModule.ResolvedFileName) + } else { + isExtensionlessRelativePathImport := tspath.PathIsRelative(moduleReference) && !tspath.HasExtension(moduleReference) + resolutionIsNode16OrNext := c.moduleResolutionKind == core.ModuleResolutionKindNode16 || c.moduleResolutionKind == core.ModuleResolutionKindNodeNext + if !c.compilerOptions.GetResolveJsonModule() && tspath.FileExtensionIs(moduleReference, tspath.ExtensionJson) { + c.error(errorNode, diagnostics.Cannot_find_module_0_Consider_using_resolveJsonModule_to_import_module_with_json_extension, moduleReference) + } else if mode == core.ResolutionModeESM && resolutionIsNode16OrNext && isExtensionlessRelativePathImport { + absoluteRef := tspath.GetNormalizedAbsolutePath(moduleReference, tspath.GetDirectoryPath(importingSourceFile.FileName())) + if suggestedExt := c.getSuggestedImportExtension(absoluteRef); suggestedExt != "" { + c.error(errorNode, diagnostics.Relative_import_paths_need_explicit_file_extensions_in_ECMAScript_imports_when_moduleResolution_is_node16_or_nodenext_Did_you_mean_0, moduleReference+suggestedExt) + } else { + c.error(errorNode, diagnostics.Relative_import_paths_need_explicit_file_extensions_in_ECMAScript_imports_when_moduleResolution_is_node16_or_nodenext_Consider_adding_an_extension_to_the_import_path) + } + } else if resolvedModule != nil && resolvedModule.AlternateResult != "" { + errorInfo := c.createModuleNotFoundChain(resolvedModule, errorNode, moduleReference, mode, moduleReference) + c.diagnostics.Add(NewDiagnosticChainForNode(errorInfo, errorNode, moduleNotFoundError, moduleReference)) } else { - c.error(errorNode, diagnostics.Relative_import_paths_need_explicit_file_extensions_in_ECMAScript_imports_when_moduleResolution_is_node16_or_nodenext_Consider_adding_an_extension_to_the_import_path) + c.error(errorNode, moduleNotFoundError, moduleReference) } - } else if resolvedModule != nil && resolvedModule.AlternateResult != "" { - errorInfo := c.createModuleNotFoundChain(resolvedModule, errorNode, moduleReference, mode, moduleReference) - c.diagnostics.Add(NewDiagnosticChainForNode(errorInfo, errorNode, moduleNotFoundError, moduleReference)) - } else { - c.error(errorNode, moduleNotFoundError, moduleReference) } } return nil } +func resolutionExtensionIsTSOrJson(ext string) bool { + return tspath.ExtensionIsTs(ext) || ext == tspath.ExtensionJson +} + func (c *Checker) getSuggestedImportSource(moduleReference string, tsExtension string, mode core.ResolutionMode) string { importSourceWithoutExtension := tspath.RemoveExtension(moduleReference, tsExtension) diff --git a/internal/compiler/fileloader.go b/internal/compiler/fileloader.go index 40f45b408d..9396bc89d5 100644 --- a/internal/compiler/fileloader.go +++ b/internal/compiler/fileloader.go @@ -10,7 +10,6 @@ import ( "github.com/microsoft/typescript-go/internal/ast" "github.com/microsoft/typescript-go/internal/collections" "github.com/microsoft/typescript-go/internal/core" - "github.com/microsoft/typescript-go/internal/diagnostics" "github.com/microsoft/typescript-go/internal/module" "github.com/microsoft/typescript-go/internal/tsoptions" "github.com/microsoft/typescript-go/internal/tspath" @@ -432,7 +431,7 @@ func (p *fileLoader) resolveImportsAndModuleAugmentations(t *parseTask) { importIndex := index - importsStart shouldAddFile := moduleName != "" && - getResolutionDiagnostic(optionsForFile, resolvedModule, file) == nil && + module.GetResolutionDiagnostic(optionsForFile, resolvedModule, file) == nil && !optionsForFile.NoResolve.IsTrue() && !(isJsFile && !optionsForFile.GetAllowJS()) && (importIndex < 0 || (importIndex < len(file.Imports()) && (ast.IsInJSFile(file.Imports()[importIndex]) || file.Imports()[importIndex].Flags&ast.NodeFlagsJSDoc == 0))) @@ -451,57 +450,6 @@ func (p *fileLoader) resolveImportsAndModuleAugmentations(t *parseTask) { } } -// Returns a DiagnosticMessage if we won't include a resolved module due to its extension. -// The DiagnosticMessage's parameters are the imported module name, and the filename it resolved to. -// This returns a diagnostic even if the module will be an untyped module. -func getResolutionDiagnostic(options *core.CompilerOptions, resolvedModule *module.ResolvedModule, file *ast.SourceFile) *diagnostics.Message { - needJsx := func() *diagnostics.Message { - if options.Jsx != core.JsxEmitNone { - return nil - } - return diagnostics.Module_0_was_resolved_to_1_but_jsx_is_not_set - } - - needAllowJs := func() *diagnostics.Message { - if options.GetAllowJS() || !options.NoImplicitAny.DefaultIfUnknown(options.Strict).IsTrue() { - return nil - } - return diagnostics.Module_0_was_resolved_to_1_but_resolveJsonModule_is_not_used - } - - needResolveJsonModule := func() *diagnostics.Message { - if options.GetResolveJsonModule() { - return nil - } - return diagnostics.Module_0_was_resolved_to_1_but_resolveJsonModule_is_not_used - } - - needAllowArbitraryExtensions := func() *diagnostics.Message { - if file.IsDeclarationFile || options.AllowArbitraryExtensions.IsTrue() { - return nil - } - return diagnostics.Module_0_was_resolved_to_1_but_allowArbitraryExtensions_is_not_set - } - - switch resolvedModule.Extension { - case tspath.ExtensionTs, tspath.ExtensionDts, - tspath.ExtensionMts, tspath.ExtensionDmts, - tspath.ExtensionCts, tspath.ExtensionDcts: - // These are always allowed. - return nil - case tspath.ExtensionTsx: - return needJsx() - case tspath.ExtensionJsx: - return core.Coalesce(needJsx(), needAllowJs()) - case tspath.ExtensionJs, tspath.ExtensionMjs, tspath.ExtensionCjs: - return needAllowJs() - case tspath.ExtensionJson: - return needResolveJsonModule() - default: - return needAllowArbitraryExtensions() - } -} - func (p *fileLoader) createSyntheticImport(text string, file *ast.SourceFile) *ast.Node { p.factoryMu.Lock() defer p.factoryMu.Unlock() diff --git a/internal/module/util.go b/internal/module/util.go index 179042a5d6..7f6d093d05 100644 --- a/internal/module/util.go +++ b/internal/module/util.go @@ -3,7 +3,9 @@ package module import ( "strings" + "github.com/microsoft/typescript-go/internal/ast" "github.com/microsoft/typescript-go/internal/core" + "github.com/microsoft/typescript-go/internal/diagnostics" "github.com/microsoft/typescript-go/internal/semver" "github.com/microsoft/typescript-go/internal/tspath" ) @@ -97,3 +99,57 @@ func ComparePatternKeys(a, b string) int { } return 0 } + +// Returns a DiagnosticMessage if we won't include a resolved module due to its extension. +// The DiagnosticMessage's parameters are the imported module name, and the filename it resolved to. +// This returns a diagnostic even if the module will be an untyped module. +func GetResolutionDiagnostic(options *core.CompilerOptions, resolvedModule *ResolvedModule, file *ast.SourceFile) *diagnostics.Message { + needJsx := func() *diagnostics.Message { + if options.Jsx != core.JsxEmitNone { + return nil + } + return diagnostics.Module_0_was_resolved_to_1_but_jsx_is_not_set + } + + needAllowJs := func() *diagnostics.Message { + if options.GetAllowJS() || !options.NoImplicitAny.DefaultIfUnknown(options.Strict).IsTrue() { + return nil + } + return diagnostics.Could_not_find_a_declaration_file_for_module_0_1_implicitly_has_an_any_type + } + + needResolveJsonModule := func() *diagnostics.Message { + if options.GetResolveJsonModule() { + return nil + } + return diagnostics.Module_0_was_resolved_to_1_but_resolveJsonModule_is_not_used + } + + needAllowArbitraryExtensions := func() *diagnostics.Message { + if file.IsDeclarationFile || options.AllowArbitraryExtensions.IsTrue() { + return nil + } + return diagnostics.Module_0_was_resolved_to_1_but_allowArbitraryExtensions_is_not_set + } + + switch resolvedModule.Extension { + case tspath.ExtensionTs, tspath.ExtensionDts, + tspath.ExtensionMts, tspath.ExtensionDmts, + tspath.ExtensionCts, tspath.ExtensionDcts: + // These are always allowed. + return nil + case tspath.ExtensionTsx: + return needJsx() + case tspath.ExtensionJsx: + if message := needJsx(); message != nil { + return message + } + return needAllowJs() + case tspath.ExtensionJs, tspath.ExtensionMjs, tspath.ExtensionCjs: + return needAllowJs() + case tspath.ExtensionJson: + return needResolveJsonModule() + default: + return needAllowArbitraryExtensions() + } +} diff --git a/testdata/baselines/reference/submodule/compiler/checkJsxNotSetError.errors.txt b/testdata/baselines/reference/submodule/compiler/checkJsxNotSetError.errors.txt index 2d04383c93..55dbe1b239 100644 --- a/testdata/baselines/reference/submodule/compiler/checkJsxNotSetError.errors.txt +++ b/testdata/baselines/reference/submodule/compiler/checkJsxNotSetError.errors.txt @@ -1,3 +1,4 @@ +/bar.jsx(1,17): error TS6142: Module '/foo' was resolved to '/foo.jsx', but '--jsx' is not set. /bar.jsx(2,11): error TS17004: Cannot use JSX unless the '--jsx' flag is provided. /foo.jsx(2,5): error TS17004: Cannot use JSX unless the '--jsx' flag is provided. @@ -10,8 +11,10 @@ ); export default Foo; -==== /bar.jsx (1 errors) ==== +==== /bar.jsx (2 errors) ==== import Foo from '/foo'; + ~~~~~~ +!!! error TS6142: Module '/foo' was resolved to '/foo.jsx', but '--jsx' is not set. const a = ~~~~~~~ !!! error TS17004: Cannot use JSX unless the '--jsx' flag is provided. \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/moduleResolutionWithExtensions_notSupported.errors.txt b/testdata/baselines/reference/submodule/compiler/moduleResolutionWithExtensions_notSupported.errors.txt index b756d61a76..991b83bc30 100644 --- a/testdata/baselines/reference/submodule/compiler/moduleResolutionWithExtensions_notSupported.errors.txt +++ b/testdata/baselines/reference/submodule/compiler/moduleResolutionWithExtensions_notSupported.errors.txt @@ -1,11 +1,14 @@ -/a.ts(1,17): error TS2307: Cannot find module './tsx' or its corresponding type declarations. +/a.ts(1,17): error TS6142: Module './tsx' was resolved to '/tsx.tsx', but '--jsx' is not set. +/a.ts(2,17): error TS6142: Module './jsx' was resolved to '/jsx.jsx', but '--jsx' is not set. -==== /a.ts (1 errors) ==== +==== /a.ts (2 errors) ==== import tsx from "./tsx"; // Not allowed. ~~~~~~~ -!!! error TS2307: Cannot find module './tsx' or its corresponding type declarations. +!!! error TS6142: Module './tsx' was resolved to '/tsx.tsx', but '--jsx' is not set. import jsx from "./jsx"; // Not allowed. + ~~~~~~~ +!!! error TS6142: Module './jsx' was resolved to '/jsx.jsx', but '--jsx' is not set. import js from "./js"; // OK because it's an untyped module. ==== /tsx.tsx (0 errors) ==== diff --git a/testdata/baselines/reference/submodule/compiler/moduleResolutionWithExtensions_notSupported.errors.txt.diff b/testdata/baselines/reference/submodule/compiler/moduleResolutionWithExtensions_notSupported.errors.txt.diff deleted file mode 100644 index ac4179cf7c..0000000000 --- a/testdata/baselines/reference/submodule/compiler/moduleResolutionWithExtensions_notSupported.errors.txt.diff +++ /dev/null @@ -1,22 +0,0 @@ ---- old.moduleResolutionWithExtensions_notSupported.errors.txt -+++ new.moduleResolutionWithExtensions_notSupported.errors.txt -@@= skipped -0, +0 lines =@@ --/a.ts(1,17): error TS6142: Module './tsx' was resolved to '/tsx.tsx', but '--jsx' is not set. --/a.ts(2,17): error TS6142: Module './jsx' was resolved to '/jsx.jsx', but '--jsx' is not set. -- -- --==== /a.ts (2 errors) ==== -+/a.ts(1,17): error TS2307: Cannot find module './tsx' or its corresponding type declarations. -+ -+ -+==== /a.ts (1 errors) ==== - import tsx from "./tsx"; // Not allowed. - ~~~~~~~ --!!! error TS6142: Module './tsx' was resolved to '/tsx.tsx', but '--jsx' is not set. -+!!! error TS2307: Cannot find module './tsx' or its corresponding type declarations. - import jsx from "./jsx"; // Not allowed. -- ~~~~~~~ --!!! error TS6142: Module './jsx' was resolved to '/jsx.jsx', but '--jsx' is not set. - import js from "./js"; // OK because it's an untyped module. - - ==== /tsx.tsx (0 errors) ==== \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/moduleResolutionWithExtensions_notSupported2.errors.txt b/testdata/baselines/reference/submodule/compiler/moduleResolutionWithExtensions_notSupported2.errors.txt new file mode 100644 index 0000000000..d37beb38a1 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/moduleResolutionWithExtensions_notSupported2.errors.txt @@ -0,0 +1,10 @@ +/a.ts(1,17): error TS6142: Module './jsx' was resolved to '/jsx.jsx', but '--jsx' is not set. + + +==== /a.ts (1 errors) ==== + import jsx from "./jsx"; + ~~~~~~~ +!!! error TS6142: Module './jsx' was resolved to '/jsx.jsx', but '--jsx' is not set. + +==== /jsx.jsx (0 errors) ==== + \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/moduleResolutionWithExtensions_notSupported2.errors.txt.diff b/testdata/baselines/reference/submodule/compiler/moduleResolutionWithExtensions_notSupported2.errors.txt.diff deleted file mode 100644 index a933fc4fb2..0000000000 --- a/testdata/baselines/reference/submodule/compiler/moduleResolutionWithExtensions_notSupported2.errors.txt.diff +++ /dev/null @@ -1,14 +0,0 @@ ---- old.moduleResolutionWithExtensions_notSupported2.errors.txt -+++ new.moduleResolutionWithExtensions_notSupported2.errors.txt -@@= skipped -0, +0 lines =@@ --/a.ts(1,17): error TS6142: Module './jsx' was resolved to '/jsx.jsx', but '--jsx' is not set. -- -- --==== /a.ts (1 errors) ==== -- import jsx from "./jsx"; -- ~~~~~~~ --!!! error TS6142: Module './jsx' was resolved to '/jsx.jsx', but '--jsx' is not set. -- --==== /jsx.jsx (0 errors) ==== -- -+ \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/bundlerImportTsExtensions(allowimportingtsextensions=false,noemit=false).errors.txt b/testdata/baselines/reference/submodule/conformance/bundlerImportTsExtensions(allowimportingtsextensions=false,noemit=false).errors.txt index 0641005dbf..ddd2bdfc26 100644 --- a/testdata/baselines/reference/submodule/conformance/bundlerImportTsExtensions(allowimportingtsextensions=false,noemit=false).errors.txt +++ b/testdata/baselines/reference/submodule/conformance/bundlerImportTsExtensions(allowimportingtsextensions=false,noemit=false).errors.txt @@ -3,6 +3,7 @@ /project/main.ts(8,16): error TS2846: A declaration file cannot be imported without 'import type'. Did you mean to import an implementation file './b.js' instead? /project/main.ts(11,16): error TS5097: An import path can only end with a '.ts' extension when 'allowImportingTsExtensions' is enabled. /project/main.ts(12,16): error TS5097: An import path can only end with a '.tsx' extension when 'allowImportingTsExtensions' is enabled. +/project/main.ts(12,16): error TS6142: Module './c.tsx' was resolved to '/project/c.tsx', but '--jsx' is not set. /project/main.ts(16,16): error TS5097: An import path can only end with a '.ts' extension when 'allowImportingTsExtensions' is enabled. /project/types.d.ts(2,16): error TS2846: A declaration file cannot be imported without 'import type'. Did you mean to import an implementation file './a.js' instead? @@ -43,7 +44,7 @@ ==== /project/e.txt.ts (0 errors) ==== export {}; -==== /project/main.ts (6 errors) ==== +==== /project/main.ts (7 errors) ==== import {} from "./a"; import {} from "./a.js"; import {} from "./a.ts"; @@ -66,6 +67,8 @@ import {} from "./c.tsx"; ~~~~~~~~~ !!! error TS5097: An import path can only end with a '.tsx' extension when 'allowImportingTsExtensions' is enabled. + ~~~~~~~~~ +!!! error TS6142: Module './c.tsx' was resolved to '/project/c.tsx', but '--jsx' is not set. import {} from "./d"; import {} from "./d/index"; diff --git a/testdata/baselines/reference/submodule/conformance/bundlerImportTsExtensions(allowimportingtsextensions=false,noemit=true).errors.txt b/testdata/baselines/reference/submodule/conformance/bundlerImportTsExtensions(allowimportingtsextensions=false,noemit=true).errors.txt index 0641005dbf..ddd2bdfc26 100644 --- a/testdata/baselines/reference/submodule/conformance/bundlerImportTsExtensions(allowimportingtsextensions=false,noemit=true).errors.txt +++ b/testdata/baselines/reference/submodule/conformance/bundlerImportTsExtensions(allowimportingtsextensions=false,noemit=true).errors.txt @@ -3,6 +3,7 @@ /project/main.ts(8,16): error TS2846: A declaration file cannot be imported without 'import type'. Did you mean to import an implementation file './b.js' instead? /project/main.ts(11,16): error TS5097: An import path can only end with a '.ts' extension when 'allowImportingTsExtensions' is enabled. /project/main.ts(12,16): error TS5097: An import path can only end with a '.tsx' extension when 'allowImportingTsExtensions' is enabled. +/project/main.ts(12,16): error TS6142: Module './c.tsx' was resolved to '/project/c.tsx', but '--jsx' is not set. /project/main.ts(16,16): error TS5097: An import path can only end with a '.ts' extension when 'allowImportingTsExtensions' is enabled. /project/types.d.ts(2,16): error TS2846: A declaration file cannot be imported without 'import type'. Did you mean to import an implementation file './a.js' instead? @@ -43,7 +44,7 @@ ==== /project/e.txt.ts (0 errors) ==== export {}; -==== /project/main.ts (6 errors) ==== +==== /project/main.ts (7 errors) ==== import {} from "./a"; import {} from "./a.js"; import {} from "./a.ts"; @@ -66,6 +67,8 @@ import {} from "./c.tsx"; ~~~~~~~~~ !!! error TS5097: An import path can only end with a '.tsx' extension when 'allowImportingTsExtensions' is enabled. + ~~~~~~~~~ +!!! error TS6142: Module './c.tsx' was resolved to '/project/c.tsx', but '--jsx' is not set. import {} from "./d"; import {} from "./d/index"; diff --git a/testdata/baselines/reference/submodule/conformance/bundlerImportTsExtensions(allowimportingtsextensions=true,noemit=false).errors.txt b/testdata/baselines/reference/submodule/conformance/bundlerImportTsExtensions(allowimportingtsextensions=true,noemit=false).errors.txt index 18463589db..ce138220b1 100644 --- a/testdata/baselines/reference/submodule/conformance/bundlerImportTsExtensions(allowimportingtsextensions=true,noemit=false).errors.txt +++ b/testdata/baselines/reference/submodule/conformance/bundlerImportTsExtensions(allowimportingtsextensions=true,noemit=false).errors.txt @@ -1,4 +1,5 @@ /project/main.ts(8,16): error TS2846: A declaration file cannot be imported without 'import type'. Did you mean to import an implementation file './b.ts' instead? +/project/main.ts(12,16): error TS6142: Module './c.tsx' was resolved to '/project/c.tsx', but '--jsx' is not set. /project/types.d.ts(2,16): error TS2846: A declaration file cannot be imported without 'import type'. Did you mean to import an implementation file './a.ts' instead? @@ -38,7 +39,7 @@ ==== /project/e.txt.ts (0 errors) ==== export {}; -==== /project/main.ts (1 errors) ==== +==== /project/main.ts (2 errors) ==== import {} from "./a"; import {} from "./a.js"; import {} from "./a.ts"; @@ -53,6 +54,8 @@ import {} from "./c.ts"; import {} from "./c.tsx"; + ~~~~~~~~~ +!!! error TS6142: Module './c.tsx' was resolved to '/project/c.tsx', but '--jsx' is not set. import {} from "./d"; import {} from "./d/index"; diff --git a/testdata/baselines/reference/submodule/conformance/bundlerImportTsExtensions(allowimportingtsextensions=true,noemit=true).errors.txt b/testdata/baselines/reference/submodule/conformance/bundlerImportTsExtensions(allowimportingtsextensions=true,noemit=true).errors.txt index 18463589db..ce138220b1 100644 --- a/testdata/baselines/reference/submodule/conformance/bundlerImportTsExtensions(allowimportingtsextensions=true,noemit=true).errors.txt +++ b/testdata/baselines/reference/submodule/conformance/bundlerImportTsExtensions(allowimportingtsextensions=true,noemit=true).errors.txt @@ -1,4 +1,5 @@ /project/main.ts(8,16): error TS2846: A declaration file cannot be imported without 'import type'. Did you mean to import an implementation file './b.ts' instead? +/project/main.ts(12,16): error TS6142: Module './c.tsx' was resolved to '/project/c.tsx', but '--jsx' is not set. /project/types.d.ts(2,16): error TS2846: A declaration file cannot be imported without 'import type'. Did you mean to import an implementation file './a.ts' instead? @@ -38,7 +39,7 @@ ==== /project/e.txt.ts (0 errors) ==== export {}; -==== /project/main.ts (1 errors) ==== +==== /project/main.ts (2 errors) ==== import {} from "./a"; import {} from "./a.js"; import {} from "./a.ts"; @@ -53,6 +54,8 @@ import {} from "./c.ts"; import {} from "./c.tsx"; + ~~~~~~~~~ +!!! error TS6142: Module './c.tsx' was resolved to '/project/c.tsx', but '--jsx' is not set. import {} from "./d"; import {} from "./d/index"; diff --git a/testdata/baselines/reference/submodule/conformance/declarationFileForHtmlImport(allowarbitraryextensions=false).errors.txt b/testdata/baselines/reference/submodule/conformance/declarationFileForHtmlImport(allowarbitraryextensions=false).errors.txt new file mode 100644 index 0000000000..d79c53bb4d --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/declarationFileForHtmlImport(allowarbitraryextensions=false).errors.txt @@ -0,0 +1,27 @@ +file.ts(1,22): error TS6263: Module './component.html' was resolved to 'component.d.html.ts', but '--allowArbitraryExtensions' is not set. + + +==== component.d.html.ts (0 errors) ==== + // html modules were proposed at https://github.com/WICG/webcomponents/blob/gh-pages/proposals/html-modules-explainer.md + + // per proposal, `default` is user-defined, but if not present, will be the document of the imported module + declare var doc: Document; + export default doc; + + // all other exports are just whatever was exported in module script blocks in the html file + export const blogPost: Element; + + export class HTML5Element extends HTMLElement { + connectedCallback(): void; + } + +==== file.ts (1 errors) ==== + import * as mod from "./component.html"; + ~~~~~~~~~~~~~~~~~~ +!!! error TS6263: Module './component.html' was resolved to 'component.d.html.ts', but '--allowArbitraryExtensions' is not set. + + window.customElements.define("my-html5-element", mod.HTML5Element); + + if (document !== mod.default) { + document.body.appendChild(mod.blogPost); + } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/declarationFileForHtmlImport(allowarbitraryextensions=false).errors.txt.diff b/testdata/baselines/reference/submodule/conformance/declarationFileForHtmlImport(allowarbitraryextensions=false).errors.txt.diff deleted file mode 100644 index 3b859c2cb0..0000000000 --- a/testdata/baselines/reference/submodule/conformance/declarationFileForHtmlImport(allowarbitraryextensions=false).errors.txt.diff +++ /dev/null @@ -1,31 +0,0 @@ ---- old.declarationFileForHtmlImport(allowarbitraryextensions=false).errors.txt -+++ new.declarationFileForHtmlImport(allowarbitraryextensions=false).errors.txt -@@= skipped -0, +0 lines =@@ --file.ts(1,22): error TS6263: Module './component.html' was resolved to 'component.d.html.ts', but '--allowArbitraryExtensions' is not set. -- -- --==== component.d.html.ts (0 errors) ==== -- // html modules were proposed at https://github.com/WICG/webcomponents/blob/gh-pages/proposals/html-modules-explainer.md -- -- // per proposal, `default` is user-defined, but if not present, will be the document of the imported module -- declare var doc: Document; -- export default doc; -- -- // all other exports are just whatever was exported in module script blocks in the html file -- export const blogPost: Element; -- -- export class HTML5Element extends HTMLElement { -- connectedCallback(): void; -- } -- --==== file.ts (1 errors) ==== -- import * as mod from "./component.html"; -- ~~~~~~~~~~~~~~~~~~ --!!! error TS6263: Module './component.html' was resolved to 'component.d.html.ts', but '--allowArbitraryExtensions' is not set. -- -- window.customElements.define("my-html5-element", mod.HTML5Element); -- -- if (document !== mod.default) { -- document.body.appendChild(mod.blogPost); -- } -+ \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/declarationFileForHtmlImport(allowarbitraryextensions=false).symbols b/testdata/baselines/reference/submodule/conformance/declarationFileForHtmlImport(allowarbitraryextensions=false).symbols index 7eb3c4febb..a872d5ee49 100644 --- a/testdata/baselines/reference/submodule/conformance/declarationFileForHtmlImport(allowarbitraryextensions=false).symbols +++ b/testdata/baselines/reference/submodule/conformance/declarationFileForHtmlImport(allowarbitraryextensions=false).symbols @@ -34,15 +34,11 @@ window.customElements.define("my-html5-element", mod.HTML5Element); >window : Symbol(window, Decl(lib.dom.d.ts, --, --)) >customElements : Symbol(customElements, Decl(lib.dom.d.ts, --, --), Decl(lib.dom.d.ts, --, --)) >define : Symbol(define, Decl(lib.dom.d.ts, --, --)) ->mod.HTML5Element : Symbol(HTML5Element, Decl(component.d.html.ts, 7, 31)) >mod : Symbol(mod, Decl(file.ts, 0, 6)) ->HTML5Element : Symbol(HTML5Element, Decl(component.d.html.ts, 7, 31)) if (document !== mod.default) { >document : Symbol(document, Decl(lib.dom.d.ts, --, --)) ->mod.default : Symbol(doc, Decl(component.d.html.ts, 3, 26)) >mod : Symbol(mod, Decl(file.ts, 0, 6)) ->default : Symbol(doc, Decl(component.d.html.ts, 3, 26)) document.body.appendChild(mod.blogPost); >document.body.appendChild : Symbol(appendChild, Decl(lib.dom.d.ts, --, --)) @@ -50,7 +46,5 @@ if (document !== mod.default) { >document : Symbol(document, Decl(lib.dom.d.ts, --, --)) >body : Symbol(body, Decl(lib.dom.d.ts, --, --)) >appendChild : Symbol(appendChild, Decl(lib.dom.d.ts, --, --)) ->mod.blogPost : Symbol(blogPost, Decl(component.d.html.ts, 7, 12)) >mod : Symbol(mod, Decl(file.ts, 0, 6)) ->blogPost : Symbol(blogPost, Decl(component.d.html.ts, 7, 12)) } diff --git a/testdata/baselines/reference/submodule/conformance/declarationFileForHtmlImport(allowarbitraryextensions=false).symbols.diff b/testdata/baselines/reference/submodule/conformance/declarationFileForHtmlImport(allowarbitraryextensions=false).symbols.diff index 07e5f5bed6..8618d5c9eb 100644 --- a/testdata/baselines/reference/submodule/conformance/declarationFileForHtmlImport(allowarbitraryextensions=false).symbols.diff +++ b/testdata/baselines/reference/submodule/conformance/declarationFileForHtmlImport(allowarbitraryextensions=false).symbols.diff @@ -20,15 +20,11 @@ >customElements : Symbol(customElements, Decl(lib.dom.d.ts, --, --), Decl(lib.dom.d.ts, --, --)) ->define : Symbol(CustomElementRegistry.define, Decl(lib.dom.d.ts, --, --)) +>define : Symbol(define, Decl(lib.dom.d.ts, --, --)) -+>mod.HTML5Element : Symbol(HTML5Element, Decl(component.d.html.ts, 7, 31)) >mod : Symbol(mod, Decl(file.ts, 0, 6)) -+>HTML5Element : Symbol(HTML5Element, Decl(component.d.html.ts, 7, 31)) if (document !== mod.default) { - >document : Symbol(document, Decl(lib.dom.d.ts, --, --)) -+>mod.default : Symbol(doc, Decl(component.d.html.ts, 3, 26)) +@@= skipped -12, +12 lines =@@ >mod : Symbol(mod, Decl(file.ts, 0, 6)) -+>default : Symbol(doc, Decl(component.d.html.ts, 3, 26)) document.body.appendChild(mod.blogPost); ->document.body.appendChild : Symbol(Node.appendChild, Decl(lib.dom.d.ts, --, --)) @@ -40,7 +36,5 @@ ->appendChild : Symbol(Node.appendChild, Decl(lib.dom.d.ts, --, --)) +>body : Symbol(body, Decl(lib.dom.d.ts, --, --)) +>appendChild : Symbol(appendChild, Decl(lib.dom.d.ts, --, --)) -+>mod.blogPost : Symbol(blogPost, Decl(component.d.html.ts, 7, 12)) >mod : Symbol(mod, Decl(file.ts, 0, 6)) -+>blogPost : Symbol(blogPost, Decl(component.d.html.ts, 7, 12)) } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/declarationFileForHtmlImport(allowarbitraryextensions=false).types b/testdata/baselines/reference/submodule/conformance/declarationFileForHtmlImport(allowarbitraryextensions=false).types index 76a136254a..0fce08e790 100644 --- a/testdata/baselines/reference/submodule/conformance/declarationFileForHtmlImport(allowarbitraryextensions=false).types +++ b/testdata/baselines/reference/submodule/conformance/declarationFileForHtmlImport(allowarbitraryextensions=false).types @@ -24,7 +24,7 @@ export class HTML5Element extends HTMLElement { === file.ts === import * as mod from "./component.html"; ->mod : typeof mod +>mod : any window.customElements.define("my-html5-element", mod.HTML5Element); >window.customElements.define("my-html5-element", mod.HTML5Element) : void @@ -34,25 +34,25 @@ window.customElements.define("my-html5-element", mod.HTML5Element); >customElements : CustomElementRegistry >define : (name: string, constructor: CustomElementConstructor, options?: ElementDefinitionOptions) => void >"my-html5-element" : "my-html5-element" ->mod.HTML5Element : typeof mod.HTML5Element ->mod : typeof mod ->HTML5Element : typeof mod.HTML5Element +>mod.HTML5Element : any +>mod : any +>HTML5Element : any if (document !== mod.default) { >document !== mod.default : boolean >document : Document ->mod.default : Document ->mod : typeof mod ->default : Document +>mod.default : any +>mod : any +>default : any document.body.appendChild(mod.blogPost); ->document.body.appendChild(mod.blogPost) : Element +>document.body.appendChild(mod.blogPost) : any >document.body.appendChild : (node: T) => T >document.body : HTMLElement >document : Document >body : HTMLElement >appendChild : (node: T) => T ->mod.blogPost : Element ->mod : typeof mod ->blogPost : Element +>mod.blogPost : any +>mod : any +>blogPost : any } diff --git a/testdata/baselines/reference/submodule/conformance/declarationFileForHtmlImport(allowarbitraryextensions=false).types.diff b/testdata/baselines/reference/submodule/conformance/declarationFileForHtmlImport(allowarbitraryextensions=false).types.diff deleted file mode 100644 index be6029de0f..0000000000 --- a/testdata/baselines/reference/submodule/conformance/declarationFileForHtmlImport(allowarbitraryextensions=false).types.diff +++ /dev/null @@ -1,47 +0,0 @@ ---- old.declarationFileForHtmlImport(allowarbitraryextensions=false).types -+++ new.declarationFileForHtmlImport(allowarbitraryextensions=false).types -@@= skipped -23, +23 lines =@@ - - === file.ts === - import * as mod from "./component.html"; -->mod : any -+>mod : typeof mod - - window.customElements.define("my-html5-element", mod.HTML5Element); - >window.customElements.define("my-html5-element", mod.HTML5Element) : void -@@= skipped -10, +10 lines =@@ - >customElements : CustomElementRegistry - >define : (name: string, constructor: CustomElementConstructor, options?: ElementDefinitionOptions) => void - >"my-html5-element" : "my-html5-element" -->mod.HTML5Element : any -->mod : any -->HTML5Element : any -+>mod.HTML5Element : typeof mod.HTML5Element -+>mod : typeof mod -+>HTML5Element : typeof mod.HTML5Element - - if (document !== mod.default) { - >document !== mod.default : boolean - >document : Document -->mod.default : any -->mod : any -->default : any -+>mod.default : Document -+>mod : typeof mod -+>default : Document - - document.body.appendChild(mod.blogPost); -->document.body.appendChild(mod.blogPost) : any -+>document.body.appendChild(mod.blogPost) : Element - >document.body.appendChild : (node: T) => T - >document.body : HTMLElement - >document : Document - >body : HTMLElement - >appendChild : (node: T) => T -->mod.blogPost : any -->mod : any -->blogPost : any -+>mod.blogPost : Element -+>mod : typeof mod -+>blogPost : Element - } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/declarationFilesForNodeNativeModules(allowarbitraryextensions=false,module=node18).errors.txt b/testdata/baselines/reference/submodule/conformance/declarationFilesForNodeNativeModules(allowarbitraryextensions=false,module=node18).errors.txt index b02d019f6c..04c3dfd21d 100644 --- a/testdata/baselines/reference/submodule/conformance/declarationFilesForNodeNativeModules(allowarbitraryextensions=false,module=node18).errors.txt +++ b/testdata/baselines/reference/submodule/conformance/declarationFilesForNodeNativeModules(allowarbitraryextensions=false,module=node18).errors.txt @@ -1,10 +1,10 @@ -main.ts(1,22): error TS2307: Cannot find module './dir/native.node' or its corresponding type declarations. +main.ts(1,22): error TS6263: Module './dir/native.node' was resolved to 'dir/native.d.node.ts', but '--allowArbitraryExtensions' is not set. ==== main.ts (1 errors) ==== import mod = require("./dir/native.node"); ~~~~~~~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './dir/native.node' or its corresponding type declarations. +!!! error TS6263: Module './dir/native.node' was resolved to 'dir/native.d.node.ts', but '--allowArbitraryExtensions' is not set. mod.doNativeThing("good"); ==== package.json (0 errors) ==== diff --git a/testdata/baselines/reference/submodule/conformance/declarationFilesForNodeNativeModules(allowarbitraryextensions=false,module=node18).errors.txt.diff b/testdata/baselines/reference/submodule/conformance/declarationFilesForNodeNativeModules(allowarbitraryextensions=false,module=node18).errors.txt.diff deleted file mode 100644 index 3a70da5bf4..0000000000 --- a/testdata/baselines/reference/submodule/conformance/declarationFilesForNodeNativeModules(allowarbitraryextensions=false,module=node18).errors.txt.diff +++ /dev/null @@ -1,15 +0,0 @@ ---- old.declarationFilesForNodeNativeModules(allowarbitraryextensions=false,module=node18).errors.txt -+++ new.declarationFilesForNodeNativeModules(allowarbitraryextensions=false,module=node18).errors.txt -@@= skipped -0, +0 lines =@@ --main.ts(1,22): error TS6263: Module './dir/native.node' was resolved to 'dir/native.d.node.ts', but '--allowArbitraryExtensions' is not set. -+main.ts(1,22): error TS2307: Cannot find module './dir/native.node' or its corresponding type declarations. - - - ==== main.ts (1 errors) ==== - import mod = require("./dir/native.node"); - ~~~~~~~~~~~~~~~~~~~ --!!! error TS6263: Module './dir/native.node' was resolved to 'dir/native.d.node.ts', but '--allowArbitraryExtensions' is not set. -+!!! error TS2307: Cannot find module './dir/native.node' or its corresponding type declarations. - mod.doNativeThing("good"); - - ==== package.json (0 errors) ==== \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/declarationFilesForNodeNativeModules(allowarbitraryextensions=false,module=nodenext).errors.txt b/testdata/baselines/reference/submodule/conformance/declarationFilesForNodeNativeModules(allowarbitraryextensions=false,module=nodenext).errors.txt index b02d019f6c..04c3dfd21d 100644 --- a/testdata/baselines/reference/submodule/conformance/declarationFilesForNodeNativeModules(allowarbitraryextensions=false,module=nodenext).errors.txt +++ b/testdata/baselines/reference/submodule/conformance/declarationFilesForNodeNativeModules(allowarbitraryextensions=false,module=nodenext).errors.txt @@ -1,10 +1,10 @@ -main.ts(1,22): error TS2307: Cannot find module './dir/native.node' or its corresponding type declarations. +main.ts(1,22): error TS6263: Module './dir/native.node' was resolved to 'dir/native.d.node.ts', but '--allowArbitraryExtensions' is not set. ==== main.ts (1 errors) ==== import mod = require("./dir/native.node"); ~~~~~~~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './dir/native.node' or its corresponding type declarations. +!!! error TS6263: Module './dir/native.node' was resolved to 'dir/native.d.node.ts', but '--allowArbitraryExtensions' is not set. mod.doNativeThing("good"); ==== package.json (0 errors) ==== diff --git a/testdata/baselines/reference/submodule/conformance/declarationFilesForNodeNativeModules(allowarbitraryextensions=false,module=nodenext).errors.txt.diff b/testdata/baselines/reference/submodule/conformance/declarationFilesForNodeNativeModules(allowarbitraryextensions=false,module=nodenext).errors.txt.diff deleted file mode 100644 index 5ab7ae5bd1..0000000000 --- a/testdata/baselines/reference/submodule/conformance/declarationFilesForNodeNativeModules(allowarbitraryextensions=false,module=nodenext).errors.txt.diff +++ /dev/null @@ -1,15 +0,0 @@ ---- old.declarationFilesForNodeNativeModules(allowarbitraryextensions=false,module=nodenext).errors.txt -+++ new.declarationFilesForNodeNativeModules(allowarbitraryextensions=false,module=nodenext).errors.txt -@@= skipped -0, +0 lines =@@ --main.ts(1,22): error TS6263: Module './dir/native.node' was resolved to 'dir/native.d.node.ts', but '--allowArbitraryExtensions' is not set. -+main.ts(1,22): error TS2307: Cannot find module './dir/native.node' or its corresponding type declarations. - - - ==== main.ts (1 errors) ==== - import mod = require("./dir/native.node"); - ~~~~~~~~~~~~~~~~~~~ --!!! error TS6263: Module './dir/native.node' was resolved to 'dir/native.d.node.ts', but '--allowArbitraryExtensions' is not set. -+!!! error TS2307: Cannot find module './dir/native.node' or its corresponding type declarations. - mod.doNativeThing("good"); - - ==== package.json (0 errors) ==== \ No newline at end of file diff --git a/testdata/baselines/reference/submoduleAccepted/compiler/checkJsxNotSetError.errors.txt.diff b/testdata/baselines/reference/submoduleAccepted/compiler/checkJsxNotSetError.errors.txt.diff deleted file mode 100644 index 55feb5fdcd..0000000000 --- a/testdata/baselines/reference/submoduleAccepted/compiler/checkJsxNotSetError.errors.txt.diff +++ /dev/null @@ -1,19 +0,0 @@ ---- old.checkJsxNotSetError.errors.txt -+++ new.checkJsxNotSetError.errors.txt -@@= skipped -0, +0 lines =@@ --/bar.jsx(1,17): error TS6142: Module '/foo' was resolved to '/foo.jsx', but '--jsx' is not set. - /bar.jsx(2,11): error TS17004: Cannot use JSX unless the '--jsx' flag is provided. - /foo.jsx(2,5): error TS17004: Cannot use JSX unless the '--jsx' flag is provided. - -@@= skipped -10, +9 lines =@@ - ); - export default Foo; - --==== /bar.jsx (2 errors) ==== -+==== /bar.jsx (1 errors) ==== - import Foo from '/foo'; -- ~~~~~~ --!!! error TS6142: Module '/foo' was resolved to '/foo.jsx', but '--jsx' is not set. - const a = - ~~~~~~~ - !!! error TS17004: Cannot use JSX unless the '--jsx' flag is provided. \ No newline at end of file diff --git a/testdata/baselines/reference/submoduleAccepted/conformance/bundlerImportTsExtensions(allowimportingtsextensions=false,noemit=false).errors.txt.diff b/testdata/baselines/reference/submoduleAccepted/conformance/bundlerImportTsExtensions(allowimportingtsextensions=false,noemit=false).errors.txt.diff index e6caa39db1..41175e8df6 100644 --- a/testdata/baselines/reference/submoduleAccepted/conformance/bundlerImportTsExtensions(allowimportingtsextensions=false,noemit=false).errors.txt.diff +++ b/testdata/baselines/reference/submoduleAccepted/conformance/bundlerImportTsExtensions(allowimportingtsextensions=false,noemit=false).errors.txt.diff @@ -9,10 +9,7 @@ /project/main.ts(3,16): error TS5097: An import path can only end with a '.ts' extension when 'allowImportingTsExtensions' is enabled. /project/main.ts(7,16): error TS5097: An import path can only end with a '.ts' extension when 'allowImportingTsExtensions' is enabled. /project/main.ts(8,16): error TS2846: A declaration file cannot be imported without 'import type'. Did you mean to import an implementation file './b.js' instead? - /project/main.ts(11,16): error TS5097: An import path can only end with a '.ts' extension when 'allowImportingTsExtensions' is enabled. - /project/main.ts(12,16): error TS5097: An import path can only end with a '.tsx' extension when 'allowImportingTsExtensions' is enabled. --/project/main.ts(12,16): error TS6142: Module './c.tsx' was resolved to '/project/c.tsx', but '--jsx' is not set. - /project/main.ts(16,16): error TS5097: An import path can only end with a '.ts' extension when 'allowImportingTsExtensions' is enabled. +@@= skipped -12, +7 lines =@@ /project/types.d.ts(2,16): error TS2846: A declaration file cannot be imported without 'import type'. Did you mean to import an implementation file './a.js' instead? @@ -23,22 +20,4 @@ -!!! error TS6054: Root file specified for compilation ==== /project/a.ts (0 errors) ==== export {}; - -@@= skipped -53, +42 lines =@@ - ==== /project/e.txt.ts (0 errors) ==== - export {}; - --==== /project/main.ts (7 errors) ==== -+==== /project/main.ts (6 errors) ==== - import {} from "./a"; - import {} from "./a.js"; - import {} from "./a.ts"; -@@= skipped -23, +23 lines =@@ - import {} from "./c.tsx"; - ~~~~~~~~~ - !!! error TS5097: An import path can only end with a '.tsx' extension when 'allowImportingTsExtensions' is enabled. -- ~~~~~~~~~ --!!! error TS6142: Module './c.tsx' was resolved to '/project/c.tsx', but '--jsx' is not set. - - import {} from "./d"; - import {} from "./d/index"; \ No newline at end of file + \ No newline at end of file diff --git a/testdata/baselines/reference/submoduleAccepted/conformance/bundlerImportTsExtensions(allowimportingtsextensions=false,noemit=true).errors.txt.diff b/testdata/baselines/reference/submoduleAccepted/conformance/bundlerImportTsExtensions(allowimportingtsextensions=false,noemit=true).errors.txt.diff index 7beb92a08d..39bd898b4d 100644 --- a/testdata/baselines/reference/submoduleAccepted/conformance/bundlerImportTsExtensions(allowimportingtsextensions=false,noemit=true).errors.txt.diff +++ b/testdata/baselines/reference/submoduleAccepted/conformance/bundlerImportTsExtensions(allowimportingtsextensions=false,noemit=true).errors.txt.diff @@ -7,10 +7,7 @@ /project/main.ts(3,16): error TS5097: An import path can only end with a '.ts' extension when 'allowImportingTsExtensions' is enabled. /project/main.ts(7,16): error TS5097: An import path can only end with a '.ts' extension when 'allowImportingTsExtensions' is enabled. /project/main.ts(8,16): error TS2846: A declaration file cannot be imported without 'import type'. Did you mean to import an implementation file './b.js' instead? - /project/main.ts(11,16): error TS5097: An import path can only end with a '.ts' extension when 'allowImportingTsExtensions' is enabled. - /project/main.ts(12,16): error TS5097: An import path can only end with a '.tsx' extension when 'allowImportingTsExtensions' is enabled. --/project/main.ts(12,16): error TS6142: Module './c.tsx' was resolved to '/project/c.tsx', but '--jsx' is not set. - /project/main.ts(16,16): error TS5097: An import path can only end with a '.ts' extension when 'allowImportingTsExtensions' is enabled. +@@= skipped -10, +7 lines =@@ /project/types.d.ts(2,16): error TS2846: A declaration file cannot be imported without 'import type'. Did you mean to import an implementation file './a.js' instead? @@ -19,22 +16,4 @@ -!!! error TS6054: Root file specified for compilation ==== /project/a.ts (0 errors) ==== export {}; - -@@= skipped -49, +42 lines =@@ - ==== /project/e.txt.ts (0 errors) ==== - export {}; - --==== /project/main.ts (7 errors) ==== -+==== /project/main.ts (6 errors) ==== - import {} from "./a"; - import {} from "./a.js"; - import {} from "./a.ts"; -@@= skipped -23, +23 lines =@@ - import {} from "./c.tsx"; - ~~~~~~~~~ - !!! error TS5097: An import path can only end with a '.tsx' extension when 'allowImportingTsExtensions' is enabled. -- ~~~~~~~~~ --!!! error TS6142: Module './c.tsx' was resolved to '/project/c.tsx', but '--jsx' is not set. - - import {} from "./d"; - import {} from "./d/index"; \ No newline at end of file + \ No newline at end of file diff --git a/testdata/baselines/reference/submoduleAccepted/conformance/bundlerImportTsExtensions(allowimportingtsextensions=true,noemit=false).errors.txt.diff b/testdata/baselines/reference/submoduleAccepted/conformance/bundlerImportTsExtensions(allowimportingtsextensions=true,noemit=false).errors.txt.diff index 0f570f3b79..f755b9e8b9 100644 --- a/testdata/baselines/reference/submoduleAccepted/conformance/bundlerImportTsExtensions(allowimportingtsextensions=true,noemit=false).errors.txt.diff +++ b/testdata/baselines/reference/submoduleAccepted/conformance/bundlerImportTsExtensions(allowimportingtsextensions=true,noemit=false).errors.txt.diff @@ -8,7 +8,7 @@ - The file is in the program because: - Root file specified for compilation /project/main.ts(8,16): error TS2846: A declaration file cannot be imported without 'import type'. Did you mean to import an implementation file './b.ts' instead? --/project/main.ts(12,16): error TS6142: Module './c.tsx' was resolved to '/project/c.tsx', but '--jsx' is not set. + /project/main.ts(12,16): error TS6142: Module './c.tsx' was resolved to '/project/c.tsx', but '--jsx' is not set. /project/types.d.ts(2,16): error TS2846: A declaration file cannot be imported without 'import type'. Did you mean to import an implementation file './a.ts' instead? @@ -20,22 +20,4 @@ -!!! error TS6054: Root file specified for compilation ==== /project/a.ts (0 errors) ==== export {}; - -@@= skipped -50, +37 lines =@@ - ==== /project/e.txt.ts (0 errors) ==== - export {}; - --==== /project/main.ts (2 errors) ==== -+==== /project/main.ts (1 errors) ==== - import {} from "./a"; - import {} from "./a.js"; - import {} from "./a.ts"; -@@= skipped -15, +15 lines =@@ - - import {} from "./c.ts"; - import {} from "./c.tsx"; -- ~~~~~~~~~ --!!! error TS6142: Module './c.tsx' was resolved to '/project/c.tsx', but '--jsx' is not set. - - import {} from "./d"; - import {} from "./d/index"; \ No newline at end of file + \ No newline at end of file diff --git a/testdata/baselines/reference/submoduleAccepted/conformance/bundlerImportTsExtensions(allowimportingtsextensions=true,noemit=true).errors.txt.diff b/testdata/baselines/reference/submoduleAccepted/conformance/bundlerImportTsExtensions(allowimportingtsextensions=true,noemit=true).errors.txt.diff index e17ded846d..d1f5232a81 100644 --- a/testdata/baselines/reference/submoduleAccepted/conformance/bundlerImportTsExtensions(allowimportingtsextensions=true,noemit=true).errors.txt.diff +++ b/testdata/baselines/reference/submoduleAccepted/conformance/bundlerImportTsExtensions(allowimportingtsextensions=true,noemit=true).errors.txt.diff @@ -5,7 +5,7 @@ - The file is in the program because: - Root file specified for compilation /project/main.ts(8,16): error TS2846: A declaration file cannot be imported without 'import type'. Did you mean to import an implementation file './b.ts' instead? --/project/main.ts(12,16): error TS6142: Module './c.tsx' was resolved to '/project/c.tsx', but '--jsx' is not set. + /project/main.ts(12,16): error TS6142: Module './c.tsx' was resolved to '/project/c.tsx', but '--jsx' is not set. /project/types.d.ts(2,16): error TS2846: A declaration file cannot be imported without 'import type'. Did you mean to import an implementation file './a.ts' instead? @@ -14,22 +14,4 @@ -!!! error TS6054: Root file specified for compilation ==== /project/a.ts (0 errors) ==== export {}; - -@@= skipped -44, +37 lines =@@ - ==== /project/e.txt.ts (0 errors) ==== - export {}; - --==== /project/main.ts (2 errors) ==== -+==== /project/main.ts (1 errors) ==== - import {} from "./a"; - import {} from "./a.js"; - import {} from "./a.ts"; -@@= skipped -15, +15 lines =@@ - - import {} from "./c.ts"; - import {} from "./c.tsx"; -- ~~~~~~~~~ --!!! error TS6142: Module './c.tsx' was resolved to '/project/c.tsx', but '--jsx' is not set. - - import {} from "./d"; - import {} from "./d/index"; \ No newline at end of file + \ No newline at end of file From 2aa0eb5d92ba30e24710a5fa95a8781ae8ef285a Mon Sep 17 00:00:00 2001 From: Sheetal Nandi Date: Fri, 20 Jun 2025 12:36:48 -0700 Subject: [PATCH 09/15] Skip looking up external files for typings (#1249) --- internal/project/ata_test.go | 28 ++++++++++------------------ internal/project/project.go | 28 ++++++++++++++++------------ 2 files changed, 26 insertions(+), 30 deletions(-) diff --git a/internal/project/ata_test.go b/internal/project/ata_test.go index b0ce457c55..cced33e9f6 100644 --- a/internal/project/ata_test.go +++ b/internal/project/ata_test.go @@ -285,14 +285,13 @@ func TestAta(t *testing.T) { }) t.Run("discover from node_modules", func(t *testing.T) { - t.Skip("Skip for now - to add back when we skip external library files to lookup typings for") t.Parallel() files := map[string]any{ "/user/username/projects/project/app.js": "", "/user/username/projects/project/package.json": `{ "dependencies": { - "jquery": "1.0.0", - }, + "jquery": "1.0.0" + } }`, "/user/username/projects/project/jsconfig.json": `{}`, "/user/username/projects/project/node_modules/commander/index.js": "", @@ -312,7 +311,6 @@ func TestAta(t *testing.T) { service.OpenFile("/user/username/projects/project/app.js", files["/user/username/projects/project/app.js"].(string), core.ScriptKindJS, "") _, p := service.EnsureDefaultProjectForFile("/user/username/projects/project/app.js") - // Order is determinate since second install will run only after completing first one status := <-host.ServiceOptions.InstallStatus assert.Equal(t, status, project.TypingsInstallerStatus{ RequestId: 1, @@ -323,14 +321,13 @@ func TestAta(t *testing.T) { // Explicit types prevent automatic inclusion from package.json listing t.Run("discover from node_modules empty types", func(t *testing.T) { - t.Skip("Skip for now - to add back when we skip external library files to lookup typings for") t.Parallel() files := map[string]any{ "/user/username/projects/project/app.js": "", "/user/username/projects/project/package.json": `{ "dependencies": { - "jquery": "1.0.0", - }, + "jquery": "1.0.0" + } }`, "/user/username/projects/project/jsconfig.json": `{ "compilerOptions": { @@ -354,25 +351,23 @@ func TestAta(t *testing.T) { service.OpenFile("/user/username/projects/project/app.js", files["/user/username/projects/project/app.js"].(string), core.ScriptKindJS, "") _, p := service.EnsureDefaultProjectForFile("/user/username/projects/project/app.js") - // Order is determinate since second install will run only after completing first one status := <-host.ServiceOptions.InstallStatus assert.Equal(t, status, project.TypingsInstallerStatus{ RequestId: 1, Project: p, - Status: "Success", + Status: "Skipped 0 typings", }) }) // A type reference directive will not resolve to the global typings cache t.Run("discover from node_modules explicit types", func(t *testing.T) { - t.Skip("Skip for now - to add back when we skip external library files to lookup typings for") t.Parallel() files := map[string]any{ "/user/username/projects/project/app.js": "", "/user/username/projects/project/package.json": `{ "dependencies": { - "jquery": "1.0.0", - }, + "jquery": "1.0.0" + } }`, "/user/username/projects/project/jsconfig.json": `{ "compilerOptions": { @@ -396,25 +391,23 @@ func TestAta(t *testing.T) { service.OpenFile("/user/username/projects/project/app.js", files["/user/username/projects/project/app.js"].(string), core.ScriptKindJS, "") _, p := service.EnsureDefaultProjectForFile("/user/username/projects/project/app.js") - // Order is determinate since second install will run only after completing first one status := <-host.ServiceOptions.InstallStatus assert.Equal(t, status, project.TypingsInstallerStatus{ RequestId: 1, Project: p, - Status: "Success", + Status: "Skipped 0 typings", }) }) // However, explicit types will not prevent unresolved imports from pulling in typings t.Run("discover from node_modules empty types has import", func(t *testing.T) { - t.Skip("Skip for now - to add back when we skip external library files to lookup typings for") t.Parallel() files := map[string]any{ "/user/username/projects/project/app.js": `import "jquery";`, "/user/username/projects/project/package.json": `{ "dependencies": { - "jquery": "1.0.0", - }, + "jquery": "1.0.0" + } }`, "/user/username/projects/project/jsconfig.json": `{ "compilerOptions": { @@ -438,7 +431,6 @@ func TestAta(t *testing.T) { service.OpenFile("/user/username/projects/project/app.js", files["/user/username/projects/project/app.js"].(string), core.ScriptKindJS, "") _, p := service.EnsureDefaultProjectForFile("/user/username/projects/project/app.js") - // Order is determinate since second install will run only after completing first one status := <-host.ServiceOptions.InstallStatus assert.Equal(t, status, project.TypingsInstallerStatus{ RequestId: 1, diff --git a/internal/project/project.go b/internal/project/project.go index a6d02be374..d2c5d6606c 100644 --- a/internal/project/project.go +++ b/internal/project/project.go @@ -635,6 +635,15 @@ func (p *Project) getTypeAcquisition() *core.TypeAcquisition { return p.typeAcquisition } +func (p *Project) setTypeAcquisition(typeAcquisition *core.TypeAcquisition) { + if typeAcquisition == nil || !typeAcquisition.Enable.IsTrue() { + p.unresolvedImports = nil + p.unresolvedImportsPerFile = nil + p.typingFiles = nil + } + p.typeAcquisition = typeAcquisition +} + func (p *Project) enqueueInstallTypingsForProject(oldProgram *compiler.Program, forceRefresh bool) { typingsInstaller := p.host.TypingsInstaller() if typingsInstaller == nil { @@ -643,10 +652,6 @@ func (p *Project) enqueueInstallTypingsForProject(oldProgram *compiler.Program, typeAcquisition := p.getTypeAcquisition() if typeAcquisition == nil || !typeAcquisition.Enable.IsTrue() { - // !!! sheetal Should be probably done where we set typeAcquisition - p.unresolvedImports = nil - p.unresolvedImportsPerFile = nil - p.typingFiles = nil return } @@ -871,7 +876,7 @@ func (p *Project) RemoveFile(info *ScriptInfo, fileExists bool) { defer p.mu.Unlock() if p.isRoot(info) && p.kind == KindInferred { p.rootFileNames.Delete(info.path) - p.typeAcquisition = nil + p.setTypeAcquisition(nil) p.programConfig = nil } p.onFileAddedOrRemoved() @@ -895,7 +900,7 @@ func (p *Project) AddInferredProjectRoot(info *ScriptInfo) { } p.rootFileNames.Set(info.path, info.fileName) p.programConfig = nil - p.typeAcquisition = nil + p.setTypeAcquisition(nil) // !!! // if p.kind == KindInferred { // p.host.startWatchingConfigFilesForInferredProjectRoot(info.path); @@ -924,11 +929,11 @@ func (p *Project) LoadConfig() error { ) p.compilerOptions = p.parsedCommandLine.CompilerOptions() - p.typeAcquisition = p.parsedCommandLine.TypeAcquisition() + p.setTypeAcquisition(p.parsedCommandLine.TypeAcquisition()) p.setRootFiles(p.parsedCommandLine.FileNames()) } else { p.compilerOptions = &core.CompilerOptions{} - p.typeAcquisition = nil + p.setTypeAcquisition(nil) return fmt.Errorf("could not read file %q", p.configFileName) } return nil @@ -983,10 +988,9 @@ func (p *Project) GetFileNames(excludeFilesFromExternalLibraries bool, excludeCo result := []string{} sourceFiles := p.program.GetSourceFiles() for _, sourceFile := range sourceFiles { - // !! This is probably ready to be implemented now? - // if excludeFilesFromExternalLibraries && p.program.IsSourceFileFromExternalLibrary(sourceFile) { - // continue; - // } + if excludeFilesFromExternalLibraries && p.program.IsSourceFileFromExternalLibrary(sourceFile) { + continue + } result = append(result, sourceFile.FileName()) } // if (!excludeConfigFiles) { From 16ce71d3e6e3a7905dc84e25fc9837959cb1ae15 Mon Sep 17 00:00:00 2001 From: Jake Bailey <5341706+jakebailey@users.noreply.github.com> Date: Fri, 20 Jun 2025 15:04:02 -0700 Subject: [PATCH 10/15] Set maxNodeModuleJsDepth in JS-containing projects (#1213) --- internal/project/project.go | 40 ++++++++++++++++++++++++++++++++++--- 1 file changed, 37 insertions(+), 3 deletions(-) diff --git a/internal/project/project.go b/internal/project/project.go index d2c5d6606c..d23850af30 100644 --- a/internal/project/project.go +++ b/internal/project/project.go @@ -150,6 +150,7 @@ type Project struct { // rootFileNames was a map from Path to { NormalizedPath, ScriptInfo? } in the original code. // But the ProjectService owns script infos, so it's not clear why there was an extra pointer. rootFileNames *collections.OrderedMap[tspath.Path, string] + rootJSFileCount int compilerOptions *core.CompilerOptions typeAcquisition *core.TypeAcquisition parsedCommandLine *tsoptions.ParsedCommandLine @@ -571,6 +572,12 @@ func (p *Project) updateProgram() bool { } else { rootFileNames := p.GetRootFileNames() compilerOptions := p.compilerOptions + + if compilerOptions.MaxNodeModuleJsDepth == nil && p.rootJSFileCount > 0 { + compilerOptions = compilerOptions.Clone() + compilerOptions.MaxNodeModuleJsDepth = ptrTo(2) + } + p.programConfig = &tsoptions.ParsedCommandLine{ ParsedConfig: &core.ParsedOptions{ CompilerOptions: compilerOptions, @@ -875,7 +882,7 @@ func (p *Project) RemoveFile(info *ScriptInfo, fileExists bool) { p.mu.Lock() defer p.mu.Unlock() if p.isRoot(info) && p.kind == KindInferred { - p.rootFileNames.Delete(info.path) + p.deleteRootFileNameOfInferred(info.path) p.setTypeAcquisition(nil) p.programConfig = nil } @@ -898,13 +905,12 @@ func (p *Project) AddInferredProjectRoot(info *ScriptInfo) { if p.isRoot(info) { panic("script info is already a root") } - p.rootFileNames.Set(info.path, info.fileName) + p.setRootFileNameOfInferred(info.path, info.fileName) p.programConfig = nil p.setTypeAcquisition(nil) // !!! // if p.kind == KindInferred { // p.host.startWatchingConfigFilesForInferredProjectRoot(info.path); - // // handle JS toggling // } info.attachToProject(p) p.markAsDirtyLocked() @@ -964,6 +970,33 @@ func (p *Project) setRootFiles(rootFileNames []string) { } } +func (p *Project) setRootFileNameOfInferred(path tspath.Path, fileName string) { + if p.kind != KindInferred { + panic("setRootFileNameOfInferred called on non-inferred project") + } + + has := p.rootFileNames.Has(path) + p.rootFileNames.Set(path, fileName) + if !has && tspath.HasJSFileExtension(fileName) { + p.rootJSFileCount++ + } +} + +func (p *Project) deleteRootFileNameOfInferred(path tspath.Path) { + if p.kind != KindInferred { + panic("deleteRootFileNameOfInferred called on non-inferred project") + } + + fileName, ok := p.rootFileNames.Get(path) + if !ok { + return + } + p.rootFileNames.Delete(path) + if tspath.HasJSFileExtension(fileName) { + p.rootJSFileCount-- + } +} + func (p *Project) clearSourceMapperCache() { // !!! } @@ -1080,6 +1113,7 @@ func (p *Project) Close() { } } p.rootFileNames = nil + p.rootJSFileCount = 0 p.parsedCommandLine = nil p.programConfig = nil p.checkerPool = nil From 0c36c62f9c376d4a5bfa4ebac00c4a7e5c8b44ae Mon Sep 17 00:00:00 2001 From: Ben Kraft Date: Fri, 20 Jun 2025 18:37:51 -0700 Subject: [PATCH 11/15] Fix NodeBuilder.ctxStack management (#1252) --- internal/checker/nodebuilder.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/checker/nodebuilder.go b/internal/checker/nodebuilder.go index 5a9a54b4c5..0a8570ea8f 100644 --- a/internal/checker/nodebuilder.go +++ b/internal/checker/nodebuilder.go @@ -18,6 +18,7 @@ func (b *NodeBuilder) EmitContext() *printer.EmitContext { } func (b *NodeBuilder) enterContext(enclosingDeclaration *ast.Node, flags nodebuilder.Flags, internalFlags nodebuilder.InternalFlags, tracker nodebuilder.SymbolTracker) { + b.ctxStack = append(b.ctxStack, b.impl.ctx) b.impl.ctx = &NodeBuilderContext{ tracker: tracker, flags: flags, @@ -36,7 +37,6 @@ func (b *NodeBuilder) enterContext(enclosingDeclaration *ast.Node, flags nodebui tracker = NewSymbolTrackerImpl(b.impl.ctx, nil, b.host) b.impl.ctx.tracker = tracker } - b.ctxStack = append(b.ctxStack, b.impl.ctx) } func (b *NodeBuilder) popContext() { From 35f3043124af20a5c9aeb7463adfd50e6c23d107 Mon Sep 17 00:00:00 2001 From: Jake Bailey <5341706+jakebailey@users.noreply.github.com> Date: Sat, 21 Jun 2025 11:12:11 -0700 Subject: [PATCH 12/15] Move libsyncrpc to new name (#1259) --- _packages/api/package.json | 2 +- _packages/api/src/client.ts | 2 +- package-lock.json | 30 ++++++++++++++++-------------- 3 files changed, 18 insertions(+), 16 deletions(-) diff --git a/_packages/api/package.json b/_packages/api/package.json index 1b8e2f2c80..ea0aeeb8a3 100644 --- a/_packages/api/package.json +++ b/_packages/api/package.json @@ -46,6 +46,6 @@ }, "dependencies": { "@typescript/ast": "1.0.0", - "libsyncrpc": "github:microsoft/libsyncrpc#bb02d84" + "@typescript/libsyncrpc": "github:microsoft/libsyncrpc#8cdae454cc482536c5844bef83b796f95464da85" } } diff --git a/_packages/api/src/client.ts b/_packages/api/src/client.ts index 6c560a3a64..2c9e21e44a 100644 --- a/_packages/api/src/client.ts +++ b/_packages/api/src/client.ts @@ -1,4 +1,4 @@ -import { SyncRpcChannel } from "libsyncrpc"; +import { SyncRpcChannel } from "@typescript/libsyncrpc"; import type { FileSystem } from "./fs.ts"; export interface ClientOptions { diff --git a/package-lock.json b/package-lock.json index c52f9d3c9a..ef29c9609d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -49,7 +49,7 @@ "version": "1.0.0", "dependencies": { "@typescript/ast": "1.0.0", - "libsyncrpc": "github:microsoft/libsyncrpc#bb02d84" + "@typescript/libsyncrpc": "github:microsoft/libsyncrpc#8cdae454cc482536c5844bef83b796f95464da85" }, "devDependencies": { "tinybench": "^3.1.1" @@ -1340,6 +1340,15 @@ "resolved": "_packages/ast", "link": true }, + "node_modules/@typescript/libsyncrpc": { + "version": "0.0.0", + "resolved": "git+ssh://git@github.com/microsoft/libsyncrpc.git#8cdae454cc482536c5844bef83b796f95464da85", + "integrity": "sha512-XTN4mdpDCOYtSklb8Fq8kJE5autHRS9A+n2DwAgy3Vu+gf4pvsz4pnG7oKymw0CfCPHtgYHB8JZ0EiP4fU39qg==", + "license": "MIT", + "engines": { + "node": ">= 10.16.0 < 11 || >= 11.8.0 < 12 || >= 12.0.0" + } + }, "node_modules/@typescript/native-preview": { "resolved": "_packages/native-preview", "link": true @@ -3492,14 +3501,6 @@ "node": ">=6" } }, - "node_modules/libsyncrpc": { - "version": "0.0.0", - "resolved": "git+ssh://git@github.com/microsoft/libsyncrpc.git#bb02d8458da5b6dda1507b3390ea7cca80b99ca3", - "license": "MIT", - "engines": { - "node": ">= 10.16.0 < 11 || >= 11.8.0 < 12 || >= 12.0.0" - } - }, "node_modules/lines-and-columns": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-2.0.4.tgz", @@ -6336,13 +6337,18 @@ "version": "file:_packages/api", "requires": { "@typescript/ast": "1.0.0", - "libsyncrpc": "github:microsoft/libsyncrpc#bb02d84", + "@typescript/libsyncrpc": "github:microsoft/libsyncrpc#8cdae454cc482536c5844bef83b796f95464da85", "tinybench": "^3.1.1" } }, "@typescript/ast": { "version": "file:_packages/ast" }, + "@typescript/libsyncrpc": { + "version": "git+ssh://git@github.com/microsoft/libsyncrpc.git#8cdae454cc482536c5844bef83b796f95464da85", + "integrity": "sha512-XTN4mdpDCOYtSklb8Fq8kJE5autHRS9A+n2DwAgy3Vu+gf4pvsz4pnG7oKymw0CfCPHtgYHB8JZ0EiP4fU39qg==", + "from": "@typescript/libsyncrpc@github:microsoft/libsyncrpc#8cdae454cc482536c5844bef83b796f95464da85" + }, "@typescript/native-preview": { "version": "file:_packages/native-preview" }, @@ -7866,10 +7872,6 @@ "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", "dev": true }, - "libsyncrpc": { - "version": "git+ssh://git@github.com/microsoft/libsyncrpc.git#bb02d8458da5b6dda1507b3390ea7cca80b99ca3", - "from": "libsyncrpc@github:microsoft/libsyncrpc#bb02d84" - }, "lines-and-columns": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-2.0.4.tgz", From 6e03d625d15ccaf727cb9a44b455eefb16f3d450 Mon Sep 17 00:00:00 2001 From: "Oleksandr T." Date: Sat, 21 Jun 2025 22:43:46 +0300 Subject: [PATCH 13/15] fix(1250): fix bigint literal type declaration emit (#1258) --- internal/checker/emitresolver.go | 23 ++++++------------- .../compiler/declarationEmitBigInt.js | 21 +++++++++++++++++ .../compiler/declarationEmitBigInt.symbols | 15 ++++++++++++ .../compiler/declarationEmitBigInt.types | 21 +++++++++++++++++ .../submodule/compiler/bigintWithLib.js | 4 ++-- .../submodule/compiler/bigintWithLib.js.diff | 4 ++-- .../isolatedDeclarationErrorsExpressions.js | 4 ++-- ...olatedDeclarationErrorsExpressions.js.diff | 4 ++-- .../compiler/isolatedDeclarationsLiterals.js | 4 ++-- .../isolatedDeclarationsLiterals.js.diff | 13 ----------- .../cases/compiler/declarationEmitBigInt.ts | 7 ++++++ 11 files changed, 81 insertions(+), 39 deletions(-) create mode 100644 testdata/baselines/reference/compiler/declarationEmitBigInt.js create mode 100644 testdata/baselines/reference/compiler/declarationEmitBigInt.symbols create mode 100644 testdata/baselines/reference/compiler/declarationEmitBigInt.types delete mode 100644 testdata/baselines/reference/submodule/compiler/isolatedDeclarationsLiterals.js.diff create mode 100644 testdata/tests/cases/compiler/declarationEmitBigInt.ts diff --git a/internal/checker/emitresolver.go b/internal/checker/emitresolver.go index 0939def9d7..4be45bc033 100644 --- a/internal/checker/emitresolver.go +++ b/internal/checker/emitresolver.go @@ -900,12 +900,10 @@ func (r *emitResolver) CreateLiteralConstValue(emitContext *printer.EmitContext, if t.flags&TypeFlagsLiteral == 0 { return nil // non-literal type } - literalValue := t.AsLiteralType().value - switch literalValue.(type) { + switch value := t.AsLiteralType().value.(type) { case string: - return emitContext.Factory.NewStringLiteral(literalValue.(string)) + return emitContext.Factory.NewStringLiteral(value) case jsnum.Number: - value := literalValue.(jsnum.Number) if value.Abs() != value { // negative return emitContext.Factory.NewPrefixUnaryExpression( @@ -915,20 +913,13 @@ func (r *emitResolver) CreateLiteralConstValue(emitContext *printer.EmitContext, } return emitContext.Factory.NewNumericLiteral(value.String()) case jsnum.PseudoBigInt: - value := literalValue.(jsnum.PseudoBigInt) - if value.Negative { - // negative - return emitContext.Factory.NewPrefixUnaryExpression( - ast.KindMinusToken, - emitContext.Factory.NewBigIntLiteral(value.Base10Value), - ) - } - return emitContext.Factory.NewNumericLiteral(value.Base10Value) + return emitContext.Factory.NewBigIntLiteral(pseudoBigIntToString(value) + "n") case bool: - if literalValue.(bool) { - return emitContext.Factory.NewKeywordExpression(ast.KindTrueKeyword) + kind := ast.KindFalseKeyword + if value { + kind = ast.KindTrueKeyword } - return emitContext.Factory.NewKeywordExpression(ast.KindFalseKeyword) + return emitContext.Factory.NewKeywordExpression(kind) } panic("unhandled literal const value kind") } diff --git a/testdata/baselines/reference/compiler/declarationEmitBigInt.js b/testdata/baselines/reference/compiler/declarationEmitBigInt.js new file mode 100644 index 0000000000..9c47f7441c --- /dev/null +++ b/testdata/baselines/reference/compiler/declarationEmitBigInt.js @@ -0,0 +1,21 @@ +//// [tests/cases/compiler/declarationEmitBigInt.ts] //// + +//// [a.ts] +export const a = 0n; +export const b = 10n; +export const c = -0n; +export const d = -10n; + + +//// [a.js] +export const a = 0n; +export const b = 10n; +export const c = -0n; +export const d = -10n; + + +//// [a.d.ts] +export declare const a = 0n; +export declare const b = 10n; +export declare const c = 0n; +export declare const d = -10n; diff --git a/testdata/baselines/reference/compiler/declarationEmitBigInt.symbols b/testdata/baselines/reference/compiler/declarationEmitBigInt.symbols new file mode 100644 index 0000000000..3f513f7177 --- /dev/null +++ b/testdata/baselines/reference/compiler/declarationEmitBigInt.symbols @@ -0,0 +1,15 @@ +//// [tests/cases/compiler/declarationEmitBigInt.ts] //// + +=== a.ts === +export const a = 0n; +>a : Symbol(a, Decl(a.ts, 0, 12)) + +export const b = 10n; +>b : Symbol(b, Decl(a.ts, 1, 12)) + +export const c = -0n; +>c : Symbol(c, Decl(a.ts, 2, 12)) + +export const d = -10n; +>d : Symbol(d, Decl(a.ts, 3, 12)) + diff --git a/testdata/baselines/reference/compiler/declarationEmitBigInt.types b/testdata/baselines/reference/compiler/declarationEmitBigInt.types new file mode 100644 index 0000000000..2ea33de57c --- /dev/null +++ b/testdata/baselines/reference/compiler/declarationEmitBigInt.types @@ -0,0 +1,21 @@ +//// [tests/cases/compiler/declarationEmitBigInt.ts] //// + +=== a.ts === +export const a = 0n; +>a : 0n +>0n : 0n + +export const b = 10n; +>b : 10n +>10n : 10n + +export const c = -0n; +>c : 0n +>-0n : 0n +>0n : 0n + +export const d = -10n; +>d : -10n +>-10n : -10n +>10n : 10n + diff --git a/testdata/baselines/reference/submodule/compiler/bigintWithLib.js b/testdata/baselines/reference/submodule/compiler/bigintWithLib.js index 34eee0837a..5983e31689 100644 --- a/testdata/baselines/reference/submodule/compiler/bigintWithLib.js +++ b/testdata/baselines/reference/submodule/compiler/bigintWithLib.js @@ -134,7 +134,7 @@ declare let bigUintArray: BigUint64Array; // Test added DataView methods declare const dataView: DataView; // Test emitted declarations files -declare const w = 12; // should emit as const w = 12n -declare const x = -12; // should emit as const x = -12n +declare const w = 12n; // should emit as const w = 12n +declare const x = -12n; // should emit as const x = -12n declare const y: 12n; // should emit type 12n declare let z: bigint; // should emit type bigint in declaration file diff --git a/testdata/baselines/reference/submodule/compiler/bigintWithLib.js.diff b/testdata/baselines/reference/submodule/compiler/bigintWithLib.js.diff index 699daf3b58..dcea084192 100644 --- a/testdata/baselines/reference/submodule/compiler/bigintWithLib.js.diff +++ b/testdata/baselines/reference/submodule/compiler/bigintWithLib.js.diff @@ -20,7 +20,7 @@ -declare const y: 12n; -declare let z: bigint; +// Test emitted declarations files -+declare const w = 12; // should emit as const w = 12n -+declare const x = -12; // should emit as const x = -12n ++declare const w = 12n; // should emit as const w = 12n ++declare const x = -12n; // should emit as const x = -12n +declare const y: 12n; // should emit type 12n +declare let z: bigint; // should emit type bigint in declaration file \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/isolatedDeclarationErrorsExpressions.js b/testdata/baselines/reference/submodule/compiler/isolatedDeclarationErrorsExpressions.js index e576a16eb3..d6f3328390 100644 --- a/testdata/baselines/reference/submodule/compiler/isolatedDeclarationErrorsExpressions.js +++ b/testdata/baselines/reference/submodule/compiler/isolatedDeclarationErrorsExpressions.js @@ -242,10 +242,10 @@ export declare const numberConst = 1; export declare const numberConstBad1: number; export declare const numberConstBad2: number; export declare const numberConstBad3 = 1; -export declare const bigIntConst = 1; +export declare const bigIntConst = 1n; export declare const bigIntConstBad1: bigint; export declare const bigIntConstBad2: bigint; -export declare const bigIntConstBad3 = 1; +export declare const bigIntConstBad3 = 1n; export declare const stringConst = "s"; export declare const stringConstBad: string; // These are just strings diff --git a/testdata/baselines/reference/submodule/compiler/isolatedDeclarationErrorsExpressions.js.diff b/testdata/baselines/reference/submodule/compiler/isolatedDeclarationErrorsExpressions.js.diff index 82bcab4e71..7cbfdbb9b6 100644 --- a/testdata/baselines/reference/submodule/compiler/isolatedDeclarationErrorsExpressions.js.diff +++ b/testdata/baselines/reference/submodule/compiler/isolatedDeclarationErrorsExpressions.js.diff @@ -11,10 +11,10 @@ +export declare const numberConstBad1: number; +export declare const numberConstBad2: number; +export declare const numberConstBad3 = 1; -+export declare const bigIntConst = 1; ++export declare const bigIntConst = 1n; +export declare const bigIntConstBad1: bigint; +export declare const bigIntConstBad2: bigint; -+export declare const bigIntConstBad3 = 1; ++export declare const bigIntConstBad3 = 1n; +export declare const stringConst = "s"; +export declare const stringConstBad: string; +// These are just strings diff --git a/testdata/baselines/reference/submodule/compiler/isolatedDeclarationsLiterals.js b/testdata/baselines/reference/submodule/compiler/isolatedDeclarationsLiterals.js index 71c6e280cd..24f3eba443 100644 --- a/testdata/baselines/reference/submodule/compiler/isolatedDeclarationsLiterals.js +++ b/testdata/baselines/reference/submodule/compiler/isolatedDeclarationsLiterals.js @@ -154,8 +154,8 @@ export declare const oneOctal = 1; export declare const oneHex = 1; export declare const pOne = 1; export declare const mOne = -1; -export declare const onen = 1; -export declare const mOnen = -1; +export declare const onen = 1n; +export declare const mOnen = -1n; export declare const oneStrDoubleQuote = "1"; export declare const oneStrSingleQuote = "1"; export declare const oneStrTemplate = "1"; diff --git a/testdata/baselines/reference/submodule/compiler/isolatedDeclarationsLiterals.js.diff b/testdata/baselines/reference/submodule/compiler/isolatedDeclarationsLiterals.js.diff deleted file mode 100644 index e62b0959da..0000000000 --- a/testdata/baselines/reference/submodule/compiler/isolatedDeclarationsLiterals.js.diff +++ /dev/null @@ -1,13 +0,0 @@ ---- old.isolatedDeclarationsLiterals.js -+++ new.isolatedDeclarationsLiterals.js -@@= skipped -153, +153 lines =@@ - export declare const oneHex = 1; - export declare const pOne = 1; - export declare const mOne = -1; --export declare const onen = 1n; --export declare const mOnen = -1n; -+export declare const onen = 1; -+export declare const mOnen = -1; - export declare const oneStrDoubleQuote = "1"; - export declare const oneStrSingleQuote = "1"; - export declare const oneStrTemplate = "1"; \ No newline at end of file diff --git a/testdata/tests/cases/compiler/declarationEmitBigInt.ts b/testdata/tests/cases/compiler/declarationEmitBigInt.ts new file mode 100644 index 0000000000..c8cacebf13 --- /dev/null +++ b/testdata/tests/cases/compiler/declarationEmitBigInt.ts @@ -0,0 +1,7 @@ +// @target: es2020 +// @declaration: true +// @filename: a.ts +export const a = 0n; +export const b = 10n; +export const c = -0n; +export const d = -10n; From b7ca2d305774d4e4e0b90a6bcc837329ecaa2648 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateusz=20Burzy=C5=84ski?= Date: Mon, 23 Jun 2025 19:33:05 +0200 Subject: [PATCH 14/15] Handle `blockedStringType` (#1266) --- internal/ast/nodeflags.go | 2 -- internal/checker/checker.go | 4 +++- internal/checker/services.go | 17 ++++++++--------- internal/fourslash/_scripts/failingTests.txt | 4 ---- ...tionsLiteralMatchingGenericSignature_test.go | 2 +- ...tionalTypesUsingTemplateLiteralTypes_test.go | 2 +- ...tionalTypesUsingTemplateLiteralTypes_test.go | 2 +- ...lCompletionsInPositionTypedUsingRest_test.go | 2 +- 8 files changed, 15 insertions(+), 20 deletions(-) diff --git a/internal/ast/nodeflags.go b/internal/ast/nodeflags.go index 5b6441ed58..2feb4f2a52 100644 --- a/internal/ast/nodeflags.go +++ b/internal/ast/nodeflags.go @@ -43,8 +43,6 @@ const ( NodeFlagsJsonFile NodeFlags = 1 << 25 // If node was parsed in a Json NodeFlagsDeprecated NodeFlags = 1 << 26 // If has '@deprecated' JSDoc tag - NodeFlagsSkipDirectInference NodeFlags = 1 << 27 // If the node should skip direct type inference. - NodeFlagsBlockScoped = NodeFlagsLet | NodeFlagsConst | NodeFlagsUsing NodeFlagsConstant = NodeFlagsConst | NodeFlagsUsing NodeFlagsAwaitUsing = NodeFlagsConst | NodeFlagsUsing // Variable declaration (NOTE: on a single node these flags would otherwise be mutually exclusive) diff --git a/internal/checker/checker.go b/internal/checker/checker.go index a20cd5ddd8..4b595b6e2e 100644 --- a/internal/checker/checker.go +++ b/internal/checker/checker.go @@ -7352,7 +7352,9 @@ func (c *Checker) checkExpressionWorker(node *ast.Node, checkMode CheckMode) *Ty case ast.KindNullKeyword: return c.nullWideningType case ast.KindStringLiteral, ast.KindNoSubstitutionTemplateLiteral: - // !!! Handle blockedStringType + if c.isSkipDirectInferenceNode(node) { + return c.blockedStringType + } return c.getFreshTypeOfLiteralType(c.getStringLiteralType(node.Text())) case ast.KindNumericLiteral: c.checkGrammarNumericLiteral(node.AsNumericLiteral()) diff --git a/internal/checker/services.go b/internal/checker/services.go index 62b842f1be..ad5e39b857 100644 --- a/internal/checker/services.go +++ b/internal/checker/services.go @@ -585,28 +585,27 @@ func (c *Checker) getResolvedSignatureWorker(node *ast.Node, checkMode CheckMode } func (c *Checker) GetCandidateSignaturesForStringLiteralCompletions(call *ast.CallLikeExpression, editingArgument *ast.Node) []*Signature { - candidatesSet := collections.Set[*Signature]{} - // first, get candidates when inference is blocked from the source node. candidates := runWithInferenceBlockedFromSourceNode(c, editingArgument, func() []*Signature { _, blockedInferenceCandidates := c.getResolvedSignatureWorker(call, CheckModeNormal, 0) return blockedInferenceCandidates }) - for _, candidate := range candidates { - candidatesSet.Add(candidate) - } + candidatesSet := collections.NewSetFromItems(candidates...) // next, get candidates where the source node is considered for inference. - candidates = runWithoutResolvedSignatureCaching(c, editingArgument, func() []*Signature { + otherCandidates := runWithoutResolvedSignatureCaching(c, editingArgument, func() []*Signature { _, inferenceCandidates := c.getResolvedSignatureWorker(call, CheckModeNormal, 0) return inferenceCandidates }) - for _, candidate := range candidates { - candidatesSet.Add(candidate) + for _, candidate := range otherCandidates { + if candidatesSet.Has(candidate) { + continue + } + candidates = append(candidates, candidate) } - return slices.Collect(maps.Keys(candidatesSet.Keys())) + return candidates } func (c *Checker) GetTypeParameterAtPosition(s *Signature, pos int) *Type { diff --git a/internal/fourslash/_scripts/failingTests.txt b/internal/fourslash/_scripts/failingTests.txt index e8d7eed736..44318e35a7 100644 --- a/internal/fourslash/_scripts/failingTests.txt +++ b/internal/fourslash/_scripts/failingTests.txt @@ -115,7 +115,6 @@ TestCompletionsJsPropertyAssignment TestCompletionsJsxAttribute2 TestCompletionsKeyof TestCompletionsLiteralFromInferenceWithinInferredType3 -TestCompletionsLiteralMatchingGenericSignature TestCompletionsNamespaceName TestCompletionsNewTarget TestCompletionsNonExistentImport @@ -237,11 +236,8 @@ TestPathCompletionsPackageJsonImportsWildcard9 TestPathCompletionsTypesVersionsLocal TestPathCompletionsTypesVersionsWildcard2 TestSatisfiesOperatorCompletion -TestStringCompletionsFromGenericConditionalTypesUsingTemplateLiteralTypes TestStringCompletionsImportOrExportSpecifier TestStringCompletionsVsEscaping -TestStringLiteralCompletionsForGenericConditionalTypesUsingTemplateLiteralTypes -TestStringLiteralCompletionsInPositionTypedUsingRest TestStringLiteralTypeCompletionsInTypeArgForNonGeneric1 TestTripleSlashRefPathCompletionAbsolutePaths TestTripleSlashRefPathCompletionContext diff --git a/internal/fourslash/tests/gen/completionsLiteralMatchingGenericSignature_test.go b/internal/fourslash/tests/gen/completionsLiteralMatchingGenericSignature_test.go index 35c3199418..52e1a7f4a0 100644 --- a/internal/fourslash/tests/gen/completionsLiteralMatchingGenericSignature_test.go +++ b/internal/fourslash/tests/gen/completionsLiteralMatchingGenericSignature_test.go @@ -10,7 +10,7 @@ import ( func TestCompletionsLiteralMatchingGenericSignature(t *testing.T) { t.Parallel() - t.Skip() + defer testutil.RecoverAndFail(t, "Panic on fourslash test") const content = `// @Filename: /a.tsx declare function bar1

(p: P): void; diff --git a/internal/fourslash/tests/gen/stringCompletionsFromGenericConditionalTypesUsingTemplateLiteralTypes_test.go b/internal/fourslash/tests/gen/stringCompletionsFromGenericConditionalTypesUsingTemplateLiteralTypes_test.go index 736800e502..9a0a4bf8b1 100644 --- a/internal/fourslash/tests/gen/stringCompletionsFromGenericConditionalTypesUsingTemplateLiteralTypes_test.go +++ b/internal/fourslash/tests/gen/stringCompletionsFromGenericConditionalTypesUsingTemplateLiteralTypes_test.go @@ -10,7 +10,7 @@ import ( func TestStringCompletionsFromGenericConditionalTypesUsingTemplateLiteralTypes(t *testing.T) { t.Parallel() - t.Skip() + defer testutil.RecoverAndFail(t, "Panic on fourslash test") const content = `// @strict: true type keyword = "foo" | "bar" | "baz" diff --git a/internal/fourslash/tests/gen/stringLiteralCompletionsForGenericConditionalTypesUsingTemplateLiteralTypes_test.go b/internal/fourslash/tests/gen/stringLiteralCompletionsForGenericConditionalTypesUsingTemplateLiteralTypes_test.go index 928a41ccda..d51a867f4c 100644 --- a/internal/fourslash/tests/gen/stringLiteralCompletionsForGenericConditionalTypesUsingTemplateLiteralTypes_test.go +++ b/internal/fourslash/tests/gen/stringLiteralCompletionsForGenericConditionalTypesUsingTemplateLiteralTypes_test.go @@ -10,7 +10,7 @@ import ( func TestStringLiteralCompletionsForGenericConditionalTypesUsingTemplateLiteralTypes(t *testing.T) { t.Parallel() - t.Skip() + defer testutil.RecoverAndFail(t, "Panic on fourslash test") const content = ` type PathOf = K extends ` + "`" + `${infer U}.${infer V}` + "`" + ` diff --git a/internal/fourslash/tests/gen/stringLiteralCompletionsInPositionTypedUsingRest_test.go b/internal/fourslash/tests/gen/stringLiteralCompletionsInPositionTypedUsingRest_test.go index 2b9cb483e5..0a77fc5807 100644 --- a/internal/fourslash/tests/gen/stringLiteralCompletionsInPositionTypedUsingRest_test.go +++ b/internal/fourslash/tests/gen/stringLiteralCompletionsInPositionTypedUsingRest_test.go @@ -10,7 +10,7 @@ import ( func TestStringLiteralCompletionsInPositionTypedUsingRest(t *testing.T) { t.Parallel() - t.Skip() + defer testutil.RecoverAndFail(t, "Panic on fourslash test") const content = `declare function pick(obj: T, ...keys: K[]): Pick; declare function pick2(obj: T, ...keys: K): Pick; From a8d79ee97d36538d8c2ba4694f4664b5567ed162 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateusz=20Burzy=C5=84ski?= Date: Mon, 23 Jun 2025 19:36:46 +0200 Subject: [PATCH 15/15] Default expected `sortText` to `LocationPriority` when verifying completions (#1264) --- internal/fourslash/_scripts/failingTests.txt | 8 -------- internal/fourslash/fourslash.go | 8 +++++++- .../tests/gen/completionsConditionalMember_test.go | 2 +- .../tests/gen/completionsGenericIndexedAccess1_test.go | 2 +- .../tests/gen/completionsGenericIndexedAccess2_test.go | 2 +- .../tests/gen/completionsGenericIndexedAccess6_test.go | 2 +- ...completionsObjectLiteralUnionStringMappingType_test.go | 2 +- ...mpletionsObjectLiteralUnionTemplateLiteralType_test.go | 2 +- .../gen/completionsPropertiesWithPromiseUnionType_test.go | 2 +- ...mpletionsWithOptionalPropertiesGenericPartial3_test.go | 2 +- 10 files changed, 15 insertions(+), 17 deletions(-) diff --git a/internal/fourslash/_scripts/failingTests.txt b/internal/fourslash/_scripts/failingTests.txt index 44318e35a7..47d087c737 100644 --- a/internal/fourslash/_scripts/failingTests.txt +++ b/internal/fourslash/_scripts/failingTests.txt @@ -96,12 +96,8 @@ TestCompletionsAfterKeywordsInBlock TestCompletionsAsserts TestCompletionsAtIncompleteObjectLiteralProperty TestCompletionsClassPropertiesAfterPrivateProperty -TestCompletionsConditionalMember TestCompletionsECMAPrivateMemberTriggerCharacter TestCompletionsGeneratorFunctions -TestCompletionsGenericIndexedAccess1 -TestCompletionsGenericIndexedAccess2 -TestCompletionsGenericIndexedAccess6 TestCompletionsImportDefaultExportCrash1 TestCompletionsImport_promoteTypeOnly2 TestCompletionsImport_umdDefaultNoCrash2 @@ -119,8 +115,6 @@ TestCompletionsNamespaceName TestCompletionsNewTarget TestCompletionsNonExistentImport TestCompletionsObjectLiteralMethod6 -TestCompletionsObjectLiteralUnionStringMappingType -TestCompletionsObjectLiteralUnionTemplateLiteralType TestCompletionsOptionalKindModifier TestCompletionsOptionalMethod TestCompletionsOverridingMethod1 @@ -139,7 +133,6 @@ TestCompletionsPaths_pathMapping TestCompletionsPaths_pathMapping_nonTrailingWildcard1 TestCompletionsPaths_pathMapping_parentDirectory TestCompletionsPropertiesPriorities -TestCompletionsPropertiesWithPromiseUnionType TestCompletionsRecommended_union TestCompletionsRedeclareModuleAsGlobal TestCompletionsSelfDeclaring1 @@ -149,7 +142,6 @@ TestCompletionsSymbolMembers TestCompletionsTriggerCharacter TestCompletionsUniqueSymbol1 TestCompletionsWithDeprecatedTag3 -TestCompletionsWithOptionalPropertiesGenericPartial3 TestCompletionsWithStringReplacementMode1 TestGetJavaScriptCompletions1 TestGetJavaScriptCompletions10 diff --git a/internal/fourslash/fourslash.go b/internal/fourslash/fourslash.go index 2bb33dee37..c2a5739e47 100644 --- a/internal/fourslash/fourslash.go +++ b/internal/fourslash/fourslash.go @@ -466,7 +466,12 @@ func verifyCompletionsAreExactly(t *testing.T, prefix string, actual []*lsproto. func verifyCompletionItem(t *testing.T, prefix string, actual *lsproto.CompletionItem, expected *lsproto.CompletionItem) { ignoreKind := cmp.FilterPath( func(p cmp.Path) bool { - return p.Last().String() == ".Kind" + switch p.Last().String() { + case ".Kind", ".SortText": + return true + default: + return false + } }, cmp.Ignore(), ) @@ -474,6 +479,7 @@ func verifyCompletionItem(t *testing.T, prefix string, actual *lsproto.Completio if expected.Kind != nil { assertDeepEqual(t, actual.Kind, expected.Kind, prefix+" Kind mismatch") } + assertDeepEqual(t, actual.SortText, core.OrElse(expected.SortText, ptrTo(string(ls.SortTextLocationPriority))), prefix+" SortText mismatch") } func getExpectedLabel(t *testing.T, item ExpectedCompletionItem) string { diff --git a/internal/fourslash/tests/gen/completionsConditionalMember_test.go b/internal/fourslash/tests/gen/completionsConditionalMember_test.go index 7d23e2ced3..7927fee961 100644 --- a/internal/fourslash/tests/gen/completionsConditionalMember_test.go +++ b/internal/fourslash/tests/gen/completionsConditionalMember_test.go @@ -10,7 +10,7 @@ import ( func TestCompletionsConditionalMember(t *testing.T) { t.Parallel() - t.Skip() + defer testutil.RecoverAndFail(t, "Panic on fourslash test") const content = `declare function f( p: { a: T extends 'foo' ? { x: string } : { y: string } } diff --git a/internal/fourslash/tests/gen/completionsGenericIndexedAccess1_test.go b/internal/fourslash/tests/gen/completionsGenericIndexedAccess1_test.go index 916c91ca5a..1236ced9c4 100644 --- a/internal/fourslash/tests/gen/completionsGenericIndexedAccess1_test.go +++ b/internal/fourslash/tests/gen/completionsGenericIndexedAccess1_test.go @@ -10,7 +10,7 @@ import ( func TestCompletionsGenericIndexedAccess1(t *testing.T) { t.Parallel() - t.Skip() + defer testutil.RecoverAndFail(t, "Panic on fourslash test") const content = `interface Sample { addBook: { name: string, year: number } diff --git a/internal/fourslash/tests/gen/completionsGenericIndexedAccess2_test.go b/internal/fourslash/tests/gen/completionsGenericIndexedAccess2_test.go index eb608d0f29..02ec459511 100644 --- a/internal/fourslash/tests/gen/completionsGenericIndexedAccess2_test.go +++ b/internal/fourslash/tests/gen/completionsGenericIndexedAccess2_test.go @@ -10,7 +10,7 @@ import ( func TestCompletionsGenericIndexedAccess2(t *testing.T) { t.Parallel() - t.Skip() + defer testutil.RecoverAndFail(t, "Panic on fourslash test") const content = `export type GetMethodsForType = { [K in keyof T]: T[K] extends () => any ? { name: K, group: G, } : T[K] extends (s: infer U) => any ? { name: K, group: G, payload: U } : never }[keyof T]; diff --git a/internal/fourslash/tests/gen/completionsGenericIndexedAccess6_test.go b/internal/fourslash/tests/gen/completionsGenericIndexedAccess6_test.go index 9786ed3dc3..3b713ebcf9 100644 --- a/internal/fourslash/tests/gen/completionsGenericIndexedAccess6_test.go +++ b/internal/fourslash/tests/gen/completionsGenericIndexedAccess6_test.go @@ -10,7 +10,7 @@ import ( func TestCompletionsGenericIndexedAccess6(t *testing.T) { t.Parallel() - t.Skip() + defer testutil.RecoverAndFail(t, "Panic on fourslash test") const content = `// @Filename: component.tsx interface CustomElements { diff --git a/internal/fourslash/tests/gen/completionsObjectLiteralUnionStringMappingType_test.go b/internal/fourslash/tests/gen/completionsObjectLiteralUnionStringMappingType_test.go index 8f354e4fe6..9335886a82 100644 --- a/internal/fourslash/tests/gen/completionsObjectLiteralUnionStringMappingType_test.go +++ b/internal/fourslash/tests/gen/completionsObjectLiteralUnionStringMappingType_test.go @@ -10,7 +10,7 @@ import ( func TestCompletionsObjectLiteralUnionStringMappingType(t *testing.T) { t.Parallel() - t.Skip() + defer testutil.RecoverAndFail(t, "Panic on fourslash test") const content = `type UnionType = { key1: string; diff --git a/internal/fourslash/tests/gen/completionsObjectLiteralUnionTemplateLiteralType_test.go b/internal/fourslash/tests/gen/completionsObjectLiteralUnionTemplateLiteralType_test.go index 0431cc923e..0d99cb0df5 100644 --- a/internal/fourslash/tests/gen/completionsObjectLiteralUnionTemplateLiteralType_test.go +++ b/internal/fourslash/tests/gen/completionsObjectLiteralUnionTemplateLiteralType_test.go @@ -10,7 +10,7 @@ import ( func TestCompletionsObjectLiteralUnionTemplateLiteralType(t *testing.T) { t.Parallel() - t.Skip() + defer testutil.RecoverAndFail(t, "Panic on fourslash test") const content = `type UnionType = { key1: string; diff --git a/internal/fourslash/tests/gen/completionsPropertiesWithPromiseUnionType_test.go b/internal/fourslash/tests/gen/completionsPropertiesWithPromiseUnionType_test.go index afad88c0e6..ca4e03f7c5 100644 --- a/internal/fourslash/tests/gen/completionsPropertiesWithPromiseUnionType_test.go +++ b/internal/fourslash/tests/gen/completionsPropertiesWithPromiseUnionType_test.go @@ -10,7 +10,7 @@ import ( func TestCompletionsPropertiesWithPromiseUnionType(t *testing.T) { t.Parallel() - t.Skip() + defer testutil.RecoverAndFail(t, "Panic on fourslash test") const content = `// @strict: true type MyType = { diff --git a/internal/fourslash/tests/gen/completionsWithOptionalPropertiesGenericPartial3_test.go b/internal/fourslash/tests/gen/completionsWithOptionalPropertiesGenericPartial3_test.go index 4ff647559a..c5e9b6f4bb 100644 --- a/internal/fourslash/tests/gen/completionsWithOptionalPropertiesGenericPartial3_test.go +++ b/internal/fourslash/tests/gen/completionsWithOptionalPropertiesGenericPartial3_test.go @@ -11,7 +11,7 @@ import ( func TestCompletionsWithOptionalPropertiesGenericPartial3(t *testing.T) { t.Parallel() - t.Skip() + defer testutil.RecoverAndFail(t, "Panic on fourslash test") const content = `// @strict: true interface Foo {