@typescript-deploys/pr-build 5.0.0-pr-51753-3 → 5.0.0-pr-51682-13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -413,15 +413,14 @@ declare namespace ts {
413
413
  JSDocTypedefTag = 348,
414
414
  JSDocSeeTag = 349,
415
415
  JSDocPropertyTag = 350,
416
- JSDocSatisfiesTag = 351,
417
- SyntaxList = 352,
418
- NotEmittedStatement = 353,
419
- PartiallyEmittedExpression = 354,
420
- CommaListExpression = 355,
421
- MergeDeclarationMarker = 356,
422
- EndOfDeclarationMarker = 357,
423
- SyntheticReferenceExpression = 358,
424
- Count = 359,
416
+ SyntaxList = 351,
417
+ NotEmittedStatement = 352,
418
+ PartiallyEmittedExpression = 353,
419
+ CommaListExpression = 354,
420
+ MergeDeclarationMarker = 355,
421
+ EndOfDeclarationMarker = 356,
422
+ SyntheticReferenceExpression = 357,
423
+ Count = 358,
425
424
  FirstAssignment = 63,
426
425
  LastAssignment = 78,
427
426
  FirstCompoundAssignment = 64,
@@ -578,9 +577,16 @@ declare namespace ts {
578
577
  */
579
578
  readonly modifiers?: NodeArray<ModifierLike> | undefined;
580
579
  }
581
- interface JSDocContainer {
580
+ interface JSDocContainer extends Node {
581
+ _jsdocContainerBrand: any;
582
582
  }
583
- type HasJSDoc = ParameterDeclaration | CallSignatureDeclaration | ClassStaticBlockDeclaration | ConstructSignatureDeclaration | MethodSignature | PropertySignature | ArrowFunction | ParenthesizedExpression | SpreadAssignment | ShorthandPropertyAssignment | PropertyAssignment | FunctionExpression | EmptyStatement | DebuggerStatement | Block | VariableStatement | ExpressionStatement | IfStatement | DoStatement | WhileStatement | ForStatement | ForInStatement | ForOfStatement | BreakStatement | ContinueStatement | ReturnStatement | WithStatement | SwitchStatement | LabeledStatement | ThrowStatement | TryStatement | FunctionDeclaration | ConstructorDeclaration | MethodDeclaration | VariableDeclaration | PropertyDeclaration | AccessorDeclaration | ClassLikeDeclaration | InterfaceDeclaration | TypeAliasDeclaration | EnumMember | EnumDeclaration | ModuleDeclaration | ImportEqualsDeclaration | ImportDeclaration | NamespaceExportDeclaration | ExportAssignment | IndexSignatureDeclaration | FunctionTypeNode | ConstructorTypeNode | JSDocFunctionType | ExportDeclaration | NamedTupleMember | ExportSpecifier | CaseClause | EndOfFileToken;
583
+ interface LocalsContainer extends Node {
584
+ _localsContainerBrand: any;
585
+ }
586
+ interface FlowContainer extends Node {
587
+ _flowContainerBrand: any;
588
+ }
589
+ type HasJSDoc = AccessorDeclaration | ArrowFunction | BinaryExpression | Block | BreakStatement | CallSignatureDeclaration | CaseClause | ClassLikeDeclaration | ClassStaticBlockDeclaration | ConstructorDeclaration | ConstructorTypeNode | ConstructSignatureDeclaration | ContinueStatement | DebuggerStatement | DoStatement | ElementAccessExpression | EmptyStatement | EndOfFileToken | EnumDeclaration | EnumMember | ExportAssignment | ExportDeclaration | ExportSpecifier | ExpressionStatement | ForInStatement | ForOfStatement | ForStatement | FunctionDeclaration | FunctionExpression | FunctionTypeNode | Identifier | IfStatement | ImportDeclaration | ImportEqualsDeclaration | IndexSignatureDeclaration | InterfaceDeclaration | JSDocFunctionType | JSDocSignature | LabeledStatement | MethodDeclaration | MethodSignature | ModuleDeclaration | NamedTupleMember | NamespaceExportDeclaration | ObjectLiteralExpression | ParameterDeclaration | ParenthesizedExpression | PropertyAccessExpression | PropertyAssignment | PropertyDeclaration | PropertySignature | ReturnStatement | ShorthandPropertyAssignment | SpreadAssignment | SwitchStatement | ThrowStatement | TryStatement | TypeAliasDeclaration | TypeParameterDeclaration | VariableDeclaration | VariableStatement | WhileStatement | WithStatement;
584
590
  type HasType = SignatureDeclaration | VariableDeclaration | ParameterDeclaration | PropertySignature | PropertyDeclaration | TypePredicateNode | ParenthesizedTypeNode | TypeOperatorNode | MappedTypeNode | AssertionExpression | TypeAliasDeclaration | JSDocTypeExpression | JSDocNonNullableType | JSDocNullableType | JSDocOptionalType | JSDocVariadicType;
585
591
  type HasTypeArguments = CallExpression | NewExpression | TaggedTemplateExpression | JsxOpeningElement | JsxSelfClosingElement;
586
592
  type HasInitializer = HasExpressionInitializer | ForStatement | ForInStatement | ForOfStatement | JsxAttribute;
@@ -648,7 +654,7 @@ declare namespace ts {
648
654
  FileLevel = 32,
649
655
  AllowNameSubstitution = 64
650
656
  }
651
- interface Identifier extends PrimaryExpression, Declaration {
657
+ interface Identifier extends PrimaryExpression, Declaration, JSDocContainer, FlowContainer {
652
658
  readonly kind: SyntaxKind.Identifier;
653
659
  /**
654
660
  * Prefer to use `id.unescapedText`. (Note: This is available only in services, not internally to the TypeScript compiler.)
@@ -664,7 +670,7 @@ declare namespace ts {
664
670
  interface TransientIdentifier extends Identifier {
665
671
  resolvedSymbol: Symbol;
666
672
  }
667
- interface QualifiedName extends Node {
673
+ interface QualifiedName extends Node, FlowContainer {
668
674
  readonly kind: SyntaxKind.QualifiedName;
669
675
  readonly left: EntityName;
670
676
  readonly right: Identifier;
@@ -699,7 +705,7 @@ declare namespace ts {
699
705
  readonly parent: NamedDeclaration;
700
706
  readonly expression: LeftHandSideExpression;
701
707
  }
702
- interface TypeParameterDeclaration extends NamedDeclaration {
708
+ interface TypeParameterDeclaration extends NamedDeclaration, JSDocContainer {
703
709
  readonly kind: SyntaxKind.TypeParameter;
704
710
  readonly parent: DeclarationWithTypeParameterChildren | InferTypeNode;
705
711
  readonly modifiers?: NodeArray<Modifier>;
@@ -717,10 +723,10 @@ declare namespace ts {
717
723
  readonly type?: TypeNode | undefined;
718
724
  }
719
725
  type SignatureDeclaration = CallSignatureDeclaration | ConstructSignatureDeclaration | MethodSignature | IndexSignatureDeclaration | FunctionTypeNode | ConstructorTypeNode | JSDocFunctionType | FunctionDeclaration | MethodDeclaration | ConstructorDeclaration | AccessorDeclaration | FunctionExpression | ArrowFunction;
720
- interface CallSignatureDeclaration extends SignatureDeclarationBase, TypeElement {
726
+ interface CallSignatureDeclaration extends SignatureDeclarationBase, TypeElement, LocalsContainer {
721
727
  readonly kind: SyntaxKind.CallSignature;
722
728
  }
723
- interface ConstructSignatureDeclaration extends SignatureDeclarationBase, TypeElement {
729
+ interface ConstructSignatureDeclaration extends SignatureDeclarationBase, TypeElement, LocalsContainer {
724
730
  readonly kind: SyntaxKind.ConstructSignature;
725
731
  }
726
732
  type BindingName = Identifier | BindingPattern;
@@ -747,7 +753,7 @@ declare namespace ts {
747
753
  readonly type?: TypeNode;
748
754
  readonly initializer?: Expression;
749
755
  }
750
- interface BindingElement extends NamedDeclaration {
756
+ interface BindingElement extends NamedDeclaration, FlowContainer {
751
757
  readonly kind: SyntaxKind.BindingElement;
752
758
  readonly parent: BindingPattern;
753
759
  readonly propertyName?: PropertyName;
@@ -757,6 +763,7 @@ declare namespace ts {
757
763
  }
758
764
  interface PropertySignature extends TypeElement, JSDocContainer {
759
765
  readonly kind: SyntaxKind.PropertySignature;
766
+ readonly parent: TypeLiteralNode | InterfaceDeclaration;
760
767
  readonly modifiers?: NodeArray<Modifier>;
761
768
  readonly name: PropertyName;
762
769
  readonly questionToken?: QuestionToken;
@@ -818,9 +825,6 @@ declare namespace ts {
818
825
  readonly expression: Expression;
819
826
  }
820
827
  type VariableLikeDeclaration = VariableDeclaration | ParameterDeclaration | BindingElement | PropertyDeclaration | PropertyAssignment | PropertySignature | JsxAttribute | ShorthandPropertyAssignment | EnumMember | JSDocPropertyTag | JSDocParameterTag;
821
- interface PropertyLikeDeclaration extends NamedDeclaration {
822
- readonly name: PropertyName;
823
- }
824
828
  interface ObjectBindingPattern extends Node {
825
829
  readonly kind: SyntaxKind.ObjectBindingPattern;
826
830
  readonly parent: VariableDeclaration | ParameterDeclaration | BindingElement;
@@ -851,26 +855,26 @@ declare namespace ts {
851
855
  type FunctionLikeDeclaration = FunctionDeclaration | MethodDeclaration | GetAccessorDeclaration | SetAccessorDeclaration | ConstructorDeclaration | FunctionExpression | ArrowFunction;
852
856
  /** @deprecated Use SignatureDeclaration */
853
857
  type FunctionLike = SignatureDeclaration;
854
- interface FunctionDeclaration extends FunctionLikeDeclarationBase, DeclarationStatement {
858
+ interface FunctionDeclaration extends FunctionLikeDeclarationBase, DeclarationStatement, LocalsContainer {
855
859
  readonly kind: SyntaxKind.FunctionDeclaration;
856
860
  readonly modifiers?: NodeArray<Modifier>;
857
861
  readonly name?: Identifier;
858
862
  readonly body?: FunctionBody;
859
863
  }
860
- interface MethodSignature extends SignatureDeclarationBase, TypeElement {
864
+ interface MethodSignature extends SignatureDeclarationBase, TypeElement, LocalsContainer {
861
865
  readonly kind: SyntaxKind.MethodSignature;
862
- readonly parent: ObjectTypeDeclaration;
866
+ readonly parent: TypeLiteralNode | InterfaceDeclaration;
863
867
  readonly modifiers?: NodeArray<Modifier>;
864
868
  readonly name: PropertyName;
865
869
  }
866
- interface MethodDeclaration extends FunctionLikeDeclarationBase, ClassElement, ObjectLiteralElement, JSDocContainer {
870
+ interface MethodDeclaration extends FunctionLikeDeclarationBase, ClassElement, ObjectLiteralElement, JSDocContainer, LocalsContainer, FlowContainer {
867
871
  readonly kind: SyntaxKind.MethodDeclaration;
868
872
  readonly parent: ClassLikeDeclaration | ObjectLiteralExpression;
869
873
  readonly modifiers?: NodeArray<ModifierLike> | undefined;
870
874
  readonly name: PropertyName;
871
875
  readonly body?: FunctionBody | undefined;
872
876
  }
873
- interface ConstructorDeclaration extends FunctionLikeDeclarationBase, ClassElement, JSDocContainer {
877
+ interface ConstructorDeclaration extends FunctionLikeDeclarationBase, ClassElement, JSDocContainer, LocalsContainer {
874
878
  readonly kind: SyntaxKind.Constructor;
875
879
  readonly parent: ClassLikeDeclaration;
876
880
  readonly modifiers?: NodeArray<Modifier> | undefined;
@@ -881,14 +885,14 @@ declare namespace ts {
881
885
  readonly kind: SyntaxKind.SemicolonClassElement;
882
886
  readonly parent: ClassLikeDeclaration;
883
887
  }
884
- interface GetAccessorDeclaration extends FunctionLikeDeclarationBase, ClassElement, TypeElement, ObjectLiteralElement, JSDocContainer {
888
+ interface GetAccessorDeclaration extends FunctionLikeDeclarationBase, ClassElement, TypeElement, ObjectLiteralElement, JSDocContainer, LocalsContainer, FlowContainer {
885
889
  readonly kind: SyntaxKind.GetAccessor;
886
890
  readonly parent: ClassLikeDeclaration | ObjectLiteralExpression | TypeLiteralNode | InterfaceDeclaration;
887
891
  readonly modifiers?: NodeArray<ModifierLike>;
888
892
  readonly name: PropertyName;
889
893
  readonly body?: FunctionBody;
890
894
  }
891
- interface SetAccessorDeclaration extends FunctionLikeDeclarationBase, ClassElement, TypeElement, ObjectLiteralElement, JSDocContainer {
895
+ interface SetAccessorDeclaration extends FunctionLikeDeclarationBase, ClassElement, TypeElement, ObjectLiteralElement, JSDocContainer, LocalsContainer, FlowContainer {
892
896
  readonly kind: SyntaxKind.SetAccessor;
893
897
  readonly parent: ClassLikeDeclaration | ObjectLiteralExpression | TypeLiteralNode | InterfaceDeclaration;
894
898
  readonly modifiers?: NodeArray<ModifierLike>;
@@ -896,13 +900,13 @@ declare namespace ts {
896
900
  readonly body?: FunctionBody;
897
901
  }
898
902
  type AccessorDeclaration = GetAccessorDeclaration | SetAccessorDeclaration;
899
- interface IndexSignatureDeclaration extends SignatureDeclarationBase, ClassElement, TypeElement {
903
+ interface IndexSignatureDeclaration extends SignatureDeclarationBase, ClassElement, TypeElement, LocalsContainer {
900
904
  readonly kind: SyntaxKind.IndexSignature;
901
905
  readonly parent: ObjectTypeDeclaration;
902
906
  readonly modifiers?: NodeArray<Modifier>;
903
907
  readonly type: TypeNode;
904
908
  }
905
- interface ClassStaticBlockDeclaration extends ClassElement, JSDocContainer {
909
+ interface ClassStaticBlockDeclaration extends ClassElement, JSDocContainer, LocalsContainer {
906
910
  readonly kind: SyntaxKind.ClassStaticBlockDeclaration;
907
911
  readonly parent: ClassDeclaration | ClassExpression;
908
912
  readonly body: Block;
@@ -934,14 +938,14 @@ declare namespace ts {
934
938
  readonly kind: SyntaxKind.FunctionType | SyntaxKind.ConstructorType;
935
939
  readonly type: TypeNode;
936
940
  }
937
- interface FunctionTypeNode extends FunctionOrConstructorTypeNodeBase {
941
+ interface FunctionTypeNode extends FunctionOrConstructorTypeNodeBase, LocalsContainer {
938
942
  readonly kind: SyntaxKind.FunctionType;
939
943
  }
940
944
  interface FunctionTypeNode {
941
945
  /** @deprecated A function type cannot have modifiers */
942
946
  readonly modifiers?: NodeArray<Modifier> | undefined;
943
947
  }
944
- interface ConstructorTypeNode extends FunctionOrConstructorTypeNodeBase {
948
+ interface ConstructorTypeNode extends FunctionOrConstructorTypeNodeBase, LocalsContainer {
945
949
  readonly kind: SyntaxKind.ConstructorType;
946
950
  readonly modifiers?: NodeArray<Modifier>;
947
951
  }
@@ -976,7 +980,7 @@ declare namespace ts {
976
980
  readonly kind: SyntaxKind.TupleType;
977
981
  readonly elements: NodeArray<TypeNode | NamedTupleMember>;
978
982
  }
979
- interface NamedTupleMember extends TypeNode, JSDocContainer, Declaration {
983
+ interface NamedTupleMember extends TypeNode, Declaration, JSDocContainer {
980
984
  readonly kind: SyntaxKind.NamedTupleMember;
981
985
  readonly dotDotDotToken?: Token<SyntaxKind.DotDotDotToken>;
982
986
  readonly name: Identifier;
@@ -1000,7 +1004,7 @@ declare namespace ts {
1000
1004
  readonly kind: SyntaxKind.IntersectionType;
1001
1005
  readonly types: NodeArray<TypeNode>;
1002
1006
  }
1003
- interface ConditionalTypeNode extends TypeNode {
1007
+ interface ConditionalTypeNode extends TypeNode, LocalsContainer {
1004
1008
  readonly kind: SyntaxKind.ConditionalType;
1005
1009
  readonly checkType: TypeNode;
1006
1010
  readonly extendsType: TypeNode;
@@ -1025,7 +1029,7 @@ declare namespace ts {
1025
1029
  readonly objectType: TypeNode;
1026
1030
  readonly indexType: TypeNode;
1027
1031
  }
1028
- interface MappedTypeNode extends TypeNode, Declaration {
1032
+ interface MappedTypeNode extends TypeNode, Declaration, LocalsContainer {
1029
1033
  readonly kind: SyntaxKind.MappedType;
1030
1034
  readonly readonlyToken?: ReadonlyKeyword | PlusToken | MinusToken;
1031
1035
  readonly typeParameter: TypeParameterDeclaration;
@@ -1104,10 +1108,10 @@ declare namespace ts {
1104
1108
  readonly kind: SyntaxKind.FalseKeyword;
1105
1109
  }
1106
1110
  type BooleanLiteral = TrueLiteral | FalseLiteral;
1107
- interface ThisExpression extends PrimaryExpression {
1111
+ interface ThisExpression extends PrimaryExpression, FlowContainer {
1108
1112
  readonly kind: SyntaxKind.ThisKeyword;
1109
1113
  }
1110
- interface SuperExpression extends PrimaryExpression {
1114
+ interface SuperExpression extends PrimaryExpression, FlowContainer {
1111
1115
  readonly kind: SyntaxKind.SuperKeyword;
1112
1116
  }
1113
1117
  interface ImportExpression extends PrimaryExpression {
@@ -1161,7 +1165,7 @@ declare namespace ts {
1161
1165
  type BinaryOperator = AssignmentOperatorOrHigher | SyntaxKind.CommaToken;
1162
1166
  type LogicalOrCoalescingAssignmentOperator = SyntaxKind.AmpersandAmpersandEqualsToken | SyntaxKind.BarBarEqualsToken | SyntaxKind.QuestionQuestionEqualsToken;
1163
1167
  type BinaryOperatorToken = Token<BinaryOperator>;
1164
- interface BinaryExpression extends Expression, Declaration {
1168
+ interface BinaryExpression extends Expression, Declaration, JSDocContainer {
1165
1169
  readonly kind: SyntaxKind.BinaryExpression;
1166
1170
  readonly left: Expression;
1167
1171
  readonly operatorToken: BinaryOperatorToken;
@@ -1198,13 +1202,13 @@ declare namespace ts {
1198
1202
  }
1199
1203
  type FunctionBody = Block;
1200
1204
  type ConciseBody = FunctionBody | Expression;
1201
- interface FunctionExpression extends PrimaryExpression, FunctionLikeDeclarationBase, JSDocContainer {
1205
+ interface FunctionExpression extends PrimaryExpression, FunctionLikeDeclarationBase, JSDocContainer, LocalsContainer, FlowContainer {
1202
1206
  readonly kind: SyntaxKind.FunctionExpression;
1203
1207
  readonly modifiers?: NodeArray<Modifier>;
1204
1208
  readonly name?: Identifier;
1205
1209
  readonly body: FunctionBody;
1206
1210
  }
1207
- interface ArrowFunction extends Expression, FunctionLikeDeclarationBase, JSDocContainer {
1211
+ interface ArrowFunction extends Expression, FunctionLikeDeclarationBase, JSDocContainer, LocalsContainer, FlowContainer {
1208
1212
  readonly kind: SyntaxKind.ArrowFunction;
1209
1213
  readonly modifiers?: NodeArray<Modifier>;
1210
1214
  readonly equalsGreaterThanToken: EqualsGreaterThanToken;
@@ -1291,13 +1295,13 @@ declare namespace ts {
1291
1295
  interface ObjectLiteralExpressionBase<T extends ObjectLiteralElement> extends PrimaryExpression, Declaration {
1292
1296
  readonly properties: NodeArray<T>;
1293
1297
  }
1294
- interface ObjectLiteralExpression extends ObjectLiteralExpressionBase<ObjectLiteralElementLike> {
1298
+ interface ObjectLiteralExpression extends ObjectLiteralExpressionBase<ObjectLiteralElementLike>, JSDocContainer {
1295
1299
  readonly kind: SyntaxKind.ObjectLiteralExpression;
1296
1300
  }
1297
1301
  type EntityNameExpression = Identifier | PropertyAccessEntityNameExpression;
1298
1302
  type EntityNameOrEntityNameExpression = EntityName | EntityNameExpression;
1299
1303
  type AccessExpression = PropertyAccessExpression | ElementAccessExpression;
1300
- interface PropertyAccessExpression extends MemberExpression, NamedDeclaration {
1304
+ interface PropertyAccessExpression extends MemberExpression, NamedDeclaration, JSDocContainer, FlowContainer {
1301
1305
  readonly kind: SyntaxKind.PropertyAccessExpression;
1302
1306
  readonly expression: LeftHandSideExpression;
1303
1307
  readonly questionDotToken?: QuestionDotToken;
@@ -1316,7 +1320,7 @@ declare namespace ts {
1316
1320
  readonly expression: EntityNameExpression;
1317
1321
  readonly name: Identifier;
1318
1322
  }
1319
- interface ElementAccessExpression extends MemberExpression {
1323
+ interface ElementAccessExpression extends MemberExpression, Declaration, JSDocContainer, FlowContainer {
1320
1324
  readonly kind: SyntaxKind.ElementAccessExpression;
1321
1325
  readonly expression: LeftHandSideExpression;
1322
1326
  readonly questionDotToken?: QuestionDotToken;
@@ -1386,7 +1390,7 @@ declare namespace ts {
1386
1390
  interface NonNullChain extends NonNullExpression {
1387
1391
  _optionalChainBrand: any;
1388
1392
  }
1389
- interface MetaProperty extends PrimaryExpression {
1393
+ interface MetaProperty extends PrimaryExpression, FlowContainer {
1390
1394
  readonly kind: SyntaxKind.MetaProperty;
1391
1395
  readonly keywordToken: SyntaxKind.NewKeyword | SyntaxKind.ImportKeyword;
1392
1396
  readonly name: Identifier;
@@ -1479,7 +1483,7 @@ declare namespace ts {
1479
1483
  interface EmptyStatement extends Statement {
1480
1484
  readonly kind: SyntaxKind.EmptyStatement;
1481
1485
  }
1482
- interface DebuggerStatement extends Statement {
1486
+ interface DebuggerStatement extends Statement, FlowContainer {
1483
1487
  readonly kind: SyntaxKind.DebuggerStatement;
1484
1488
  }
1485
1489
  interface MissingDeclaration extends DeclarationStatement {
@@ -1487,20 +1491,20 @@ declare namespace ts {
1487
1491
  readonly name?: Identifier;
1488
1492
  }
1489
1493
  type BlockLike = SourceFile | Block | ModuleBlock | CaseOrDefaultClause;
1490
- interface Block extends Statement {
1494
+ interface Block extends Statement, LocalsContainer {
1491
1495
  readonly kind: SyntaxKind.Block;
1492
1496
  readonly statements: NodeArray<Statement>;
1493
1497
  }
1494
- interface VariableStatement extends Statement {
1498
+ interface VariableStatement extends Statement, FlowContainer {
1495
1499
  readonly kind: SyntaxKind.VariableStatement;
1496
1500
  readonly modifiers?: NodeArray<Modifier>;
1497
1501
  readonly declarationList: VariableDeclarationList;
1498
1502
  }
1499
- interface ExpressionStatement extends Statement {
1503
+ interface ExpressionStatement extends Statement, FlowContainer {
1500
1504
  readonly kind: SyntaxKind.ExpressionStatement;
1501
1505
  readonly expression: Expression;
1502
1506
  }
1503
- interface IfStatement extends Statement {
1507
+ interface IfStatement extends Statement, FlowContainer {
1504
1508
  readonly kind: SyntaxKind.IfStatement;
1505
1509
  readonly expression: Expression;
1506
1510
  readonly thenStatement: Statement;
@@ -1509,58 +1513,58 @@ declare namespace ts {
1509
1513
  interface IterationStatement extends Statement {
1510
1514
  readonly statement: Statement;
1511
1515
  }
1512
- interface DoStatement extends IterationStatement {
1516
+ interface DoStatement extends IterationStatement, FlowContainer {
1513
1517
  readonly kind: SyntaxKind.DoStatement;
1514
1518
  readonly expression: Expression;
1515
1519
  }
1516
- interface WhileStatement extends IterationStatement {
1520
+ interface WhileStatement extends IterationStatement, FlowContainer {
1517
1521
  readonly kind: SyntaxKind.WhileStatement;
1518
1522
  readonly expression: Expression;
1519
1523
  }
1520
1524
  type ForInitializer = VariableDeclarationList | Expression;
1521
- interface ForStatement extends IterationStatement {
1525
+ interface ForStatement extends IterationStatement, LocalsContainer, FlowContainer {
1522
1526
  readonly kind: SyntaxKind.ForStatement;
1523
1527
  readonly initializer?: ForInitializer;
1524
1528
  readonly condition?: Expression;
1525
1529
  readonly incrementor?: Expression;
1526
1530
  }
1527
1531
  type ForInOrOfStatement = ForInStatement | ForOfStatement;
1528
- interface ForInStatement extends IterationStatement {
1532
+ interface ForInStatement extends IterationStatement, LocalsContainer, FlowContainer {
1529
1533
  readonly kind: SyntaxKind.ForInStatement;
1530
1534
  readonly initializer: ForInitializer;
1531
1535
  readonly expression: Expression;
1532
1536
  }
1533
- interface ForOfStatement extends IterationStatement {
1537
+ interface ForOfStatement extends IterationStatement, LocalsContainer, FlowContainer {
1534
1538
  readonly kind: SyntaxKind.ForOfStatement;
1535
1539
  readonly awaitModifier?: AwaitKeyword;
1536
1540
  readonly initializer: ForInitializer;
1537
1541
  readonly expression: Expression;
1538
1542
  }
1539
- interface BreakStatement extends Statement {
1543
+ interface BreakStatement extends Statement, FlowContainer {
1540
1544
  readonly kind: SyntaxKind.BreakStatement;
1541
1545
  readonly label?: Identifier;
1542
1546
  }
1543
- interface ContinueStatement extends Statement {
1547
+ interface ContinueStatement extends Statement, FlowContainer {
1544
1548
  readonly kind: SyntaxKind.ContinueStatement;
1545
1549
  readonly label?: Identifier;
1546
1550
  }
1547
1551
  type BreakOrContinueStatement = BreakStatement | ContinueStatement;
1548
- interface ReturnStatement extends Statement {
1552
+ interface ReturnStatement extends Statement, FlowContainer {
1549
1553
  readonly kind: SyntaxKind.ReturnStatement;
1550
1554
  readonly expression?: Expression;
1551
1555
  }
1552
- interface WithStatement extends Statement {
1556
+ interface WithStatement extends Statement, FlowContainer {
1553
1557
  readonly kind: SyntaxKind.WithStatement;
1554
1558
  readonly expression: Expression;
1555
1559
  readonly statement: Statement;
1556
1560
  }
1557
- interface SwitchStatement extends Statement {
1561
+ interface SwitchStatement extends Statement, FlowContainer {
1558
1562
  readonly kind: SyntaxKind.SwitchStatement;
1559
1563
  readonly expression: Expression;
1560
1564
  readonly caseBlock: CaseBlock;
1561
1565
  possiblyExhaustive?: boolean;
1562
1566
  }
1563
- interface CaseBlock extends Node {
1567
+ interface CaseBlock extends Node, LocalsContainer {
1564
1568
  readonly kind: SyntaxKind.CaseBlock;
1565
1569
  readonly parent: SwitchStatement;
1566
1570
  readonly clauses: NodeArray<CaseOrDefaultClause>;
@@ -1577,22 +1581,22 @@ declare namespace ts {
1577
1581
  readonly statements: NodeArray<Statement>;
1578
1582
  }
1579
1583
  type CaseOrDefaultClause = CaseClause | DefaultClause;
1580
- interface LabeledStatement extends Statement {
1584
+ interface LabeledStatement extends Statement, FlowContainer {
1581
1585
  readonly kind: SyntaxKind.LabeledStatement;
1582
1586
  readonly label: Identifier;
1583
1587
  readonly statement: Statement;
1584
1588
  }
1585
- interface ThrowStatement extends Statement {
1589
+ interface ThrowStatement extends Statement, FlowContainer {
1586
1590
  readonly kind: SyntaxKind.ThrowStatement;
1587
1591
  readonly expression: Expression;
1588
1592
  }
1589
- interface TryStatement extends Statement {
1593
+ interface TryStatement extends Statement, FlowContainer {
1590
1594
  readonly kind: SyntaxKind.TryStatement;
1591
1595
  readonly tryBlock: Block;
1592
1596
  readonly catchClause?: CatchClause;
1593
1597
  readonly finallyBlock?: Block;
1594
1598
  }
1595
- interface CatchClause extends Node {
1599
+ interface CatchClause extends Node, LocalsContainer {
1596
1600
  readonly kind: SyntaxKind.CatchClause;
1597
1601
  readonly parent: TryStatement;
1598
1602
  readonly variableDeclaration?: VariableDeclaration;
@@ -1642,7 +1646,7 @@ declare namespace ts {
1642
1646
  readonly token: SyntaxKind.ExtendsKeyword | SyntaxKind.ImplementsKeyword;
1643
1647
  readonly types: NodeArray<ExpressionWithTypeArguments>;
1644
1648
  }
1645
- interface TypeAliasDeclaration extends DeclarationStatement, JSDocContainer {
1649
+ interface TypeAliasDeclaration extends DeclarationStatement, JSDocContainer, LocalsContainer {
1646
1650
  readonly kind: SyntaxKind.TypeAliasDeclaration;
1647
1651
  readonly modifiers?: NodeArray<Modifier>;
1648
1652
  readonly name: Identifier;
@@ -1663,7 +1667,7 @@ declare namespace ts {
1663
1667
  }
1664
1668
  type ModuleName = Identifier | StringLiteral;
1665
1669
  type ModuleBody = NamespaceBody | JSDocNamespaceBody;
1666
- interface ModuleDeclaration extends DeclarationStatement, JSDocContainer {
1670
+ interface ModuleDeclaration extends DeclarationStatement, JSDocContainer, LocalsContainer {
1667
1671
  readonly kind: SyntaxKind.ModuleDeclaration;
1668
1672
  readonly parent: ModuleBody | SourceFile;
1669
1673
  readonly modifiers?: NodeArray<Modifier>;
@@ -1879,7 +1883,7 @@ declare namespace ts {
1879
1883
  readonly kind: SyntaxKind.JSDocOptionalType;
1880
1884
  readonly type: TypeNode;
1881
1885
  }
1882
- interface JSDocFunctionType extends JSDocType, SignatureDeclarationBase {
1886
+ interface JSDocFunctionType extends JSDocType, SignatureDeclarationBase, LocalsContainer {
1883
1887
  readonly kind: SyntaxKind.JSDocFunctionType;
1884
1888
  }
1885
1889
  interface JSDocVariadicType extends JSDocType {
@@ -1965,7 +1969,7 @@ declare namespace ts {
1965
1969
  interface JSDocOverrideTag extends JSDocTag {
1966
1970
  readonly kind: SyntaxKind.JSDocOverrideTag;
1967
1971
  }
1968
- interface JSDocEnumTag extends JSDocTag, Declaration {
1972
+ interface JSDocEnumTag extends JSDocTag, Declaration, LocalsContainer {
1969
1973
  readonly kind: SyntaxKind.JSDocEnumTag;
1970
1974
  readonly parent: JSDoc;
1971
1975
  readonly typeExpression: JSDocTypeExpression;
@@ -1991,21 +1995,21 @@ declare namespace ts {
1991
1995
  readonly kind: SyntaxKind.JSDocTypeTag;
1992
1996
  readonly typeExpression: JSDocTypeExpression;
1993
1997
  }
1994
- interface JSDocTypedefTag extends JSDocTag, NamedDeclaration {
1998
+ interface JSDocTypedefTag extends JSDocTag, NamedDeclaration, LocalsContainer {
1995
1999
  readonly kind: SyntaxKind.JSDocTypedefTag;
1996
2000
  readonly parent: JSDoc;
1997
2001
  readonly fullName?: JSDocNamespaceDeclaration | Identifier;
1998
2002
  readonly name?: Identifier;
1999
2003
  readonly typeExpression?: JSDocTypeExpression | JSDocTypeLiteral;
2000
2004
  }
2001
- interface JSDocCallbackTag extends JSDocTag, NamedDeclaration {
2005
+ interface JSDocCallbackTag extends JSDocTag, NamedDeclaration, LocalsContainer {
2002
2006
  readonly kind: SyntaxKind.JSDocCallbackTag;
2003
2007
  readonly parent: JSDoc;
2004
2008
  readonly fullName?: JSDocNamespaceDeclaration | Identifier;
2005
2009
  readonly name?: Identifier;
2006
2010
  readonly typeExpression: JSDocSignature;
2007
2011
  }
2008
- interface JSDocSignature extends JSDocType, Declaration {
2012
+ interface JSDocSignature extends JSDocType, Declaration, JSDocContainer, LocalsContainer {
2009
2013
  readonly kind: SyntaxKind.JSDocSignature;
2010
2014
  readonly typeParameters?: readonly JSDocTemplateTag[];
2011
2015
  readonly parameters: readonly JSDocParameterTag[];
@@ -2025,16 +2029,12 @@ declare namespace ts {
2025
2029
  interface JSDocParameterTag extends JSDocPropertyLikeTag {
2026
2030
  readonly kind: SyntaxKind.JSDocParameterTag;
2027
2031
  }
2028
- interface JSDocTypeLiteral extends JSDocType {
2032
+ interface JSDocTypeLiteral extends JSDocType, Declaration {
2029
2033
  readonly kind: SyntaxKind.JSDocTypeLiteral;
2030
2034
  readonly jsDocPropertyTags?: readonly JSDocPropertyLikeTag[];
2031
2035
  /** If true, then this type literal represents an *array* of its type. */
2032
2036
  readonly isArrayType: boolean;
2033
2037
  }
2034
- interface JSDocSatisfiesTag extends JSDocTag {
2035
- readonly kind: SyntaxKind.JSDocSatisfiesTag;
2036
- readonly typeExpression: JSDocTypeExpression;
2037
- }
2038
2038
  enum FlowFlags {
2039
2039
  Unreachable = 1,
2040
2040
  Start = 2,
@@ -2109,7 +2109,7 @@ declare namespace ts {
2109
2109
  getLineAndCharacterOfPosition(pos: number): LineAndCharacter;
2110
2110
  }
2111
2111
  type ResolutionMode = ModuleKind.ESNext | ModuleKind.CommonJS | undefined;
2112
- interface SourceFile extends Declaration {
2112
+ interface SourceFile extends Declaration, LocalsContainer {
2113
2113
  readonly kind: SyntaxKind.SourceFile;
2114
2114
  readonly statements: NodeArray<Statement>;
2115
2115
  readonly endOfFileToken: Token<SyntaxKind.EndOfFileToken>;
@@ -3535,11 +3535,12 @@ declare namespace ts {
3535
3535
  createToken(token: SyntaxKind.NullKeyword): NullLiteral;
3536
3536
  createToken(token: SyntaxKind.TrueKeyword): TrueLiteral;
3537
3537
  createToken(token: SyntaxKind.FalseKeyword): FalseLiteral;
3538
+ createToken(token: SyntaxKind.EndOfFileToken): EndOfFileToken;
3539
+ createToken(token: SyntaxKind.Unknown): Token<SyntaxKind.Unknown>;
3538
3540
  createToken<TKind extends PunctuationSyntaxKind>(token: TKind): PunctuationToken<TKind>;
3539
3541
  createToken<TKind extends KeywordTypeSyntaxKind>(token: TKind): KeywordTypeNode<TKind>;
3540
3542
  createToken<TKind extends ModifierSyntaxKind>(token: TKind): ModifierToken<TKind>;
3541
3543
  createToken<TKind extends KeywordSyntaxKind>(token: TKind): KeywordToken<TKind>;
3542
- createToken<TKind extends SyntaxKind.Unknown | SyntaxKind.EndOfFileToken>(token: TKind): Token<TKind>;
3543
3544
  createSuper(): SuperExpression;
3544
3545
  createThis(): ThisExpression;
3545
3546
  createNull(): NullLiteral;
@@ -3870,8 +3871,6 @@ declare namespace ts {
3870
3871
  updateJSDocDeprecatedTag(node: JSDocDeprecatedTag, tagName: Identifier, comment?: string | NodeArray<JSDocComment>): JSDocDeprecatedTag;
3871
3872
  createJSDocOverrideTag(tagName: Identifier, comment?: string | NodeArray<JSDocComment>): JSDocOverrideTag;
3872
3873
  updateJSDocOverrideTag(node: JSDocOverrideTag, tagName: Identifier, comment?: string | NodeArray<JSDocComment>): JSDocOverrideTag;
3873
- createJSDocSatisfiesTag(tagName: Identifier | undefined, typeExpression: JSDocTypeExpression, comment?: string | NodeArray<JSDocComment>): JSDocSatisfiesTag;
3874
- updateJSDocSatisfiesTag(node: JSDocSatisfiesTag, tagName: Identifier | undefined, typeExpression: JSDocTypeExpression, comment: string | NodeArray<JSDocComment> | undefined): JSDocSatisfiesTag;
3875
3874
  createJSDocText(text: string): JSDocText;
3876
3875
  updateJSDocText(node: JSDocText, text: string): JSDocText;
3877
3876
  createJSDocComment(comment?: string | NodeArray<JSDocComment> | undefined, tags?: readonly JSDocTag[] | undefined): JSDoc;
@@ -4712,7 +4711,6 @@ declare namespace ts {
4712
4711
  function getJSDocReturnTag(node: Node): JSDocReturnTag | undefined;
4713
4712
  /** Gets the JSDoc template tag for the node if present */
4714
4713
  function getJSDocTemplateTag(node: Node): JSDocTemplateTag | undefined;
4715
- function getJSDocSatisfiesTag(node: Node): JSDocSatisfiesTag | undefined;
4716
4714
  /** Gets the JSDoc type tag for the node if present and valid */
4717
4715
  function getJSDocTypeTag(node: Node): JSDocTypeTag | undefined;
4718
4716
  /**
@@ -5113,7 +5111,6 @@ declare namespace ts {
5113
5111
  function isJSDocUnknownTag(node: Node): node is JSDocUnknownTag;
5114
5112
  function isJSDocPropertyTag(node: Node): node is JSDocPropertyTag;
5115
5113
  function isJSDocImplementsTag(node: Node): node is JSDocImplementsTag;
5116
- function isJSDocSatisfiesTag(node: Node): node is JSDocSatisfiesTag;
5117
5114
  function setTextRange<T extends TextRange>(range: T, location: TextRange | undefined): T;
5118
5115
  function canHaveModifiers(node: Node): node is HasModifiers;
5119
5116
  function canHaveDecorators(node: Node): node is HasDecorators;
@@ -5263,7 +5260,7 @@ declare namespace ts {
5263
5260
  function resolveModuleName(moduleName: string, containingFile: string, compilerOptions: CompilerOptions, host: ModuleResolutionHost, cache?: ModuleResolutionCache, redirectedReference?: ResolvedProjectReference, resolutionMode?: ResolutionMode): ResolvedModuleWithFailedLookupLocations;
5264
5261
  function nodeModuleNameResolver(moduleName: string, containingFile: string, compilerOptions: CompilerOptions, host: ModuleResolutionHost, cache?: ModuleResolutionCache, redirectedReference?: ResolvedProjectReference): ResolvedModuleWithFailedLookupLocations;
5265
5262
  function classicNameResolver(moduleName: string, containingFile: string, compilerOptions: CompilerOptions, host: ModuleResolutionHost, cache?: NonRelativeModuleNameResolutionCache, redirectedReference?: ResolvedProjectReference): ResolvedModuleWithFailedLookupLocations;
5266
- interface TypeReferenceDirectiveResolutionCache extends PerDirectoryResolutionCache<ResolvedTypeReferenceDirectiveWithFailedLookupLocations>, PackageJsonInfoCache {
5263
+ interface TypeReferenceDirectiveResolutionCache extends PerDirectoryResolutionCache<ResolvedTypeReferenceDirectiveWithFailedLookupLocations>, NonRelativeNameResolutionCache<ResolvedTypeReferenceDirectiveWithFailedLookupLocations>, PackageJsonInfoCache {
5267
5264
  }
5268
5265
  interface ModeAwareCache<T> {
5269
5266
  get(key: string, mode: ResolutionMode): T | undefined;
@@ -5278,6 +5275,7 @@ declare namespace ts {
5278
5275
  * This assumes that any module id will have the same resolution for sibling files located in the same folder.
5279
5276
  */
5280
5277
  interface PerDirectoryResolutionCache<T> {
5278
+ getFromDirectoryCache(name: string, mode: ResolutionMode, directoryName: string, redirectedReference: ResolvedProjectReference | undefined): T | undefined;
5281
5279
  getOrCreateCacheForDirectory(directoryName: string, redirectedReference?: ResolvedProjectReference): ModeAwareCache<T>;
5282
5280
  clear(): void;
5283
5281
  /**
@@ -5286,6 +5284,20 @@ declare namespace ts {
5286
5284
  */
5287
5285
  update(options: CompilerOptions): void;
5288
5286
  }
5287
+ interface NonRelativeNameResolutionCache<T> {
5288
+ getFromNonRelativeNameCache(nonRelativeName: string, mode: ResolutionMode, directoryName: string, redirectedReference: ResolvedProjectReference | undefined): T | undefined;
5289
+ getOrCreateCacheForNonRelativeName(nonRelativeName: string, mode: ResolutionMode, redirectedReference?: ResolvedProjectReference): PerNonRelativeNameCache<T>;
5290
+ clear(): void;
5291
+ /**
5292
+ * Updates with the current compilerOptions the cache will operate with.
5293
+ * This updates the redirects map as well if needed so module resolutions are cached if they can across the projects
5294
+ */
5295
+ update(options: CompilerOptions): void;
5296
+ }
5297
+ interface PerNonRelativeNameCache<T> {
5298
+ get(directory: string): T | undefined;
5299
+ set(directory: string, result: T): void;
5300
+ }
5289
5301
  interface ModuleResolutionCache extends PerDirectoryResolutionCache<ResolvedModuleWithFailedLookupLocations>, NonRelativeModuleNameResolutionCache, PackageJsonInfoCache {
5290
5302
  getPackageJsonInfoCache(): PackageJsonInfoCache;
5291
5303
  }
@@ -5293,16 +5305,14 @@ declare namespace ts {
5293
5305
  * Stored map from non-relative module name to a table: directory -> result of module lookup in this directory
5294
5306
  * We support only non-relative module names because resolution of relative module names is usually more deterministic and thus less expensive.
5295
5307
  */
5296
- interface NonRelativeModuleNameResolutionCache extends PackageJsonInfoCache {
5308
+ interface NonRelativeModuleNameResolutionCache extends NonRelativeNameResolutionCache<ResolvedModuleWithFailedLookupLocations>, PackageJsonInfoCache {
5309
+ /** @deprecated Use getOrCreateCacheForNonRelativeName */
5297
5310
  getOrCreateCacheForModuleName(nonRelativeModuleName: string, mode: ResolutionMode, redirectedReference?: ResolvedProjectReference): PerModuleNameCache;
5298
5311
  }
5299
5312
  interface PackageJsonInfoCache {
5300
5313
  clear(): void;
5301
5314
  }
5302
- interface PerModuleNameCache {
5303
- get(directory: string): ResolvedModuleWithFailedLookupLocations | undefined;
5304
- set(directory: string, result: ResolvedModuleWithFailedLookupLocations): void;
5305
- }
5315
+ type PerModuleNameCache = PerNonRelativeNameCache<ResolvedModuleWithFailedLookupLocations>;
5306
5316
  /**
5307
5317
  * Visits a Node using the supplied visitor, possibly returning a new Node in its place.
5308
5318
  *