@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.
@@ -4346,15 +4346,14 @@ declare namespace ts {
4346
4346
  JSDocTypedefTag = 348,
4347
4347
  JSDocSeeTag = 349,
4348
4348
  JSDocPropertyTag = 350,
4349
- JSDocSatisfiesTag = 351,
4350
- SyntaxList = 352,
4351
- NotEmittedStatement = 353,
4352
- PartiallyEmittedExpression = 354,
4353
- CommaListExpression = 355,
4354
- MergeDeclarationMarker = 356,
4355
- EndOfDeclarationMarker = 357,
4356
- SyntheticReferenceExpression = 358,
4357
- Count = 359,
4349
+ SyntaxList = 351,
4350
+ NotEmittedStatement = 352,
4351
+ PartiallyEmittedExpression = 353,
4352
+ CommaListExpression = 354,
4353
+ MergeDeclarationMarker = 355,
4354
+ EndOfDeclarationMarker = 356,
4355
+ SyntheticReferenceExpression = 357,
4356
+ Count = 358,
4358
4357
  FirstAssignment = 63,
4359
4358
  LastAssignment = 78,
4360
4359
  FirstCompoundAssignment = 64,
@@ -4511,9 +4510,16 @@ declare namespace ts {
4511
4510
  */
4512
4511
  readonly modifiers?: NodeArray<ModifierLike> | undefined;
4513
4512
  }
4514
- interface JSDocContainer {
4513
+ interface JSDocContainer extends Node {
4514
+ _jsdocContainerBrand: any;
4515
4515
  }
4516
- 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;
4516
+ interface LocalsContainer extends Node {
4517
+ _localsContainerBrand: any;
4518
+ }
4519
+ interface FlowContainer extends Node {
4520
+ _flowContainerBrand: any;
4521
+ }
4522
+ 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;
4517
4523
  type HasType = SignatureDeclaration | VariableDeclaration | ParameterDeclaration | PropertySignature | PropertyDeclaration | TypePredicateNode | ParenthesizedTypeNode | TypeOperatorNode | MappedTypeNode | AssertionExpression | TypeAliasDeclaration | JSDocTypeExpression | JSDocNonNullableType | JSDocNullableType | JSDocOptionalType | JSDocVariadicType;
4518
4524
  type HasTypeArguments = CallExpression | NewExpression | TaggedTemplateExpression | JsxOpeningElement | JsxSelfClosingElement;
4519
4525
  type HasInitializer = HasExpressionInitializer | ForStatement | ForInStatement | ForOfStatement | JsxAttribute;
@@ -4581,7 +4587,7 @@ declare namespace ts {
4581
4587
  FileLevel = 32,
4582
4588
  AllowNameSubstitution = 64
4583
4589
  }
4584
- interface Identifier extends PrimaryExpression, Declaration {
4590
+ interface Identifier extends PrimaryExpression, Declaration, JSDocContainer, FlowContainer {
4585
4591
  readonly kind: SyntaxKind.Identifier;
4586
4592
  /**
4587
4593
  * Prefer to use `id.unescapedText`. (Note: This is available only in services, not internally to the TypeScript compiler.)
@@ -4597,7 +4603,7 @@ declare namespace ts {
4597
4603
  interface TransientIdentifier extends Identifier {
4598
4604
  resolvedSymbol: Symbol;
4599
4605
  }
4600
- interface QualifiedName extends Node {
4606
+ interface QualifiedName extends Node, FlowContainer {
4601
4607
  readonly kind: SyntaxKind.QualifiedName;
4602
4608
  readonly left: EntityName;
4603
4609
  readonly right: Identifier;
@@ -4632,7 +4638,7 @@ declare namespace ts {
4632
4638
  readonly parent: NamedDeclaration;
4633
4639
  readonly expression: LeftHandSideExpression;
4634
4640
  }
4635
- interface TypeParameterDeclaration extends NamedDeclaration {
4641
+ interface TypeParameterDeclaration extends NamedDeclaration, JSDocContainer {
4636
4642
  readonly kind: SyntaxKind.TypeParameter;
4637
4643
  readonly parent: DeclarationWithTypeParameterChildren | InferTypeNode;
4638
4644
  readonly modifiers?: NodeArray<Modifier>;
@@ -4650,10 +4656,10 @@ declare namespace ts {
4650
4656
  readonly type?: TypeNode | undefined;
4651
4657
  }
4652
4658
  type SignatureDeclaration = CallSignatureDeclaration | ConstructSignatureDeclaration | MethodSignature | IndexSignatureDeclaration | FunctionTypeNode | ConstructorTypeNode | JSDocFunctionType | FunctionDeclaration | MethodDeclaration | ConstructorDeclaration | AccessorDeclaration | FunctionExpression | ArrowFunction;
4653
- interface CallSignatureDeclaration extends SignatureDeclarationBase, TypeElement {
4659
+ interface CallSignatureDeclaration extends SignatureDeclarationBase, TypeElement, LocalsContainer {
4654
4660
  readonly kind: SyntaxKind.CallSignature;
4655
4661
  }
4656
- interface ConstructSignatureDeclaration extends SignatureDeclarationBase, TypeElement {
4662
+ interface ConstructSignatureDeclaration extends SignatureDeclarationBase, TypeElement, LocalsContainer {
4657
4663
  readonly kind: SyntaxKind.ConstructSignature;
4658
4664
  }
4659
4665
  type BindingName = Identifier | BindingPattern;
@@ -4680,7 +4686,7 @@ declare namespace ts {
4680
4686
  readonly type?: TypeNode;
4681
4687
  readonly initializer?: Expression;
4682
4688
  }
4683
- interface BindingElement extends NamedDeclaration {
4689
+ interface BindingElement extends NamedDeclaration, FlowContainer {
4684
4690
  readonly kind: SyntaxKind.BindingElement;
4685
4691
  readonly parent: BindingPattern;
4686
4692
  readonly propertyName?: PropertyName;
@@ -4690,6 +4696,7 @@ declare namespace ts {
4690
4696
  }
4691
4697
  interface PropertySignature extends TypeElement, JSDocContainer {
4692
4698
  readonly kind: SyntaxKind.PropertySignature;
4699
+ readonly parent: TypeLiteralNode | InterfaceDeclaration;
4693
4700
  readonly modifiers?: NodeArray<Modifier>;
4694
4701
  readonly name: PropertyName;
4695
4702
  readonly questionToken?: QuestionToken;
@@ -4751,9 +4758,6 @@ declare namespace ts {
4751
4758
  readonly expression: Expression;
4752
4759
  }
4753
4760
  type VariableLikeDeclaration = VariableDeclaration | ParameterDeclaration | BindingElement | PropertyDeclaration | PropertyAssignment | PropertySignature | JsxAttribute | ShorthandPropertyAssignment | EnumMember | JSDocPropertyTag | JSDocParameterTag;
4754
- interface PropertyLikeDeclaration extends NamedDeclaration {
4755
- readonly name: PropertyName;
4756
- }
4757
4761
  interface ObjectBindingPattern extends Node {
4758
4762
  readonly kind: SyntaxKind.ObjectBindingPattern;
4759
4763
  readonly parent: VariableDeclaration | ParameterDeclaration | BindingElement;
@@ -4784,26 +4788,26 @@ declare namespace ts {
4784
4788
  type FunctionLikeDeclaration = FunctionDeclaration | MethodDeclaration | GetAccessorDeclaration | SetAccessorDeclaration | ConstructorDeclaration | FunctionExpression | ArrowFunction;
4785
4789
  /** @deprecated Use SignatureDeclaration */
4786
4790
  type FunctionLike = SignatureDeclaration;
4787
- interface FunctionDeclaration extends FunctionLikeDeclarationBase, DeclarationStatement {
4791
+ interface FunctionDeclaration extends FunctionLikeDeclarationBase, DeclarationStatement, LocalsContainer {
4788
4792
  readonly kind: SyntaxKind.FunctionDeclaration;
4789
4793
  readonly modifiers?: NodeArray<Modifier>;
4790
4794
  readonly name?: Identifier;
4791
4795
  readonly body?: FunctionBody;
4792
4796
  }
4793
- interface MethodSignature extends SignatureDeclarationBase, TypeElement {
4797
+ interface MethodSignature extends SignatureDeclarationBase, TypeElement, LocalsContainer {
4794
4798
  readonly kind: SyntaxKind.MethodSignature;
4795
- readonly parent: ObjectTypeDeclaration;
4799
+ readonly parent: TypeLiteralNode | InterfaceDeclaration;
4796
4800
  readonly modifiers?: NodeArray<Modifier>;
4797
4801
  readonly name: PropertyName;
4798
4802
  }
4799
- interface MethodDeclaration extends FunctionLikeDeclarationBase, ClassElement, ObjectLiteralElement, JSDocContainer {
4803
+ interface MethodDeclaration extends FunctionLikeDeclarationBase, ClassElement, ObjectLiteralElement, JSDocContainer, LocalsContainer, FlowContainer {
4800
4804
  readonly kind: SyntaxKind.MethodDeclaration;
4801
4805
  readonly parent: ClassLikeDeclaration | ObjectLiteralExpression;
4802
4806
  readonly modifiers?: NodeArray<ModifierLike> | undefined;
4803
4807
  readonly name: PropertyName;
4804
4808
  readonly body?: FunctionBody | undefined;
4805
4809
  }
4806
- interface ConstructorDeclaration extends FunctionLikeDeclarationBase, ClassElement, JSDocContainer {
4810
+ interface ConstructorDeclaration extends FunctionLikeDeclarationBase, ClassElement, JSDocContainer, LocalsContainer {
4807
4811
  readonly kind: SyntaxKind.Constructor;
4808
4812
  readonly parent: ClassLikeDeclaration;
4809
4813
  readonly modifiers?: NodeArray<Modifier> | undefined;
@@ -4814,14 +4818,14 @@ declare namespace ts {
4814
4818
  readonly kind: SyntaxKind.SemicolonClassElement;
4815
4819
  readonly parent: ClassLikeDeclaration;
4816
4820
  }
4817
- interface GetAccessorDeclaration extends FunctionLikeDeclarationBase, ClassElement, TypeElement, ObjectLiteralElement, JSDocContainer {
4821
+ interface GetAccessorDeclaration extends FunctionLikeDeclarationBase, ClassElement, TypeElement, ObjectLiteralElement, JSDocContainer, LocalsContainer, FlowContainer {
4818
4822
  readonly kind: SyntaxKind.GetAccessor;
4819
4823
  readonly parent: ClassLikeDeclaration | ObjectLiteralExpression | TypeLiteralNode | InterfaceDeclaration;
4820
4824
  readonly modifiers?: NodeArray<ModifierLike>;
4821
4825
  readonly name: PropertyName;
4822
4826
  readonly body?: FunctionBody;
4823
4827
  }
4824
- interface SetAccessorDeclaration extends FunctionLikeDeclarationBase, ClassElement, TypeElement, ObjectLiteralElement, JSDocContainer {
4828
+ interface SetAccessorDeclaration extends FunctionLikeDeclarationBase, ClassElement, TypeElement, ObjectLiteralElement, JSDocContainer, LocalsContainer, FlowContainer {
4825
4829
  readonly kind: SyntaxKind.SetAccessor;
4826
4830
  readonly parent: ClassLikeDeclaration | ObjectLiteralExpression | TypeLiteralNode | InterfaceDeclaration;
4827
4831
  readonly modifiers?: NodeArray<ModifierLike>;
@@ -4829,13 +4833,13 @@ declare namespace ts {
4829
4833
  readonly body?: FunctionBody;
4830
4834
  }
4831
4835
  type AccessorDeclaration = GetAccessorDeclaration | SetAccessorDeclaration;
4832
- interface IndexSignatureDeclaration extends SignatureDeclarationBase, ClassElement, TypeElement {
4836
+ interface IndexSignatureDeclaration extends SignatureDeclarationBase, ClassElement, TypeElement, LocalsContainer {
4833
4837
  readonly kind: SyntaxKind.IndexSignature;
4834
4838
  readonly parent: ObjectTypeDeclaration;
4835
4839
  readonly modifiers?: NodeArray<Modifier>;
4836
4840
  readonly type: TypeNode;
4837
4841
  }
4838
- interface ClassStaticBlockDeclaration extends ClassElement, JSDocContainer {
4842
+ interface ClassStaticBlockDeclaration extends ClassElement, JSDocContainer, LocalsContainer {
4839
4843
  readonly kind: SyntaxKind.ClassStaticBlockDeclaration;
4840
4844
  readonly parent: ClassDeclaration | ClassExpression;
4841
4845
  readonly body: Block;
@@ -4867,14 +4871,14 @@ declare namespace ts {
4867
4871
  readonly kind: SyntaxKind.FunctionType | SyntaxKind.ConstructorType;
4868
4872
  readonly type: TypeNode;
4869
4873
  }
4870
- interface FunctionTypeNode extends FunctionOrConstructorTypeNodeBase {
4874
+ interface FunctionTypeNode extends FunctionOrConstructorTypeNodeBase, LocalsContainer {
4871
4875
  readonly kind: SyntaxKind.FunctionType;
4872
4876
  }
4873
4877
  interface FunctionTypeNode {
4874
4878
  /** @deprecated A function type cannot have modifiers */
4875
4879
  readonly modifiers?: NodeArray<Modifier> | undefined;
4876
4880
  }
4877
- interface ConstructorTypeNode extends FunctionOrConstructorTypeNodeBase {
4881
+ interface ConstructorTypeNode extends FunctionOrConstructorTypeNodeBase, LocalsContainer {
4878
4882
  readonly kind: SyntaxKind.ConstructorType;
4879
4883
  readonly modifiers?: NodeArray<Modifier>;
4880
4884
  }
@@ -4909,7 +4913,7 @@ declare namespace ts {
4909
4913
  readonly kind: SyntaxKind.TupleType;
4910
4914
  readonly elements: NodeArray<TypeNode | NamedTupleMember>;
4911
4915
  }
4912
- interface NamedTupleMember extends TypeNode, JSDocContainer, Declaration {
4916
+ interface NamedTupleMember extends TypeNode, Declaration, JSDocContainer {
4913
4917
  readonly kind: SyntaxKind.NamedTupleMember;
4914
4918
  readonly dotDotDotToken?: Token<SyntaxKind.DotDotDotToken>;
4915
4919
  readonly name: Identifier;
@@ -4933,7 +4937,7 @@ declare namespace ts {
4933
4937
  readonly kind: SyntaxKind.IntersectionType;
4934
4938
  readonly types: NodeArray<TypeNode>;
4935
4939
  }
4936
- interface ConditionalTypeNode extends TypeNode {
4940
+ interface ConditionalTypeNode extends TypeNode, LocalsContainer {
4937
4941
  readonly kind: SyntaxKind.ConditionalType;
4938
4942
  readonly checkType: TypeNode;
4939
4943
  readonly extendsType: TypeNode;
@@ -4958,7 +4962,7 @@ declare namespace ts {
4958
4962
  readonly objectType: TypeNode;
4959
4963
  readonly indexType: TypeNode;
4960
4964
  }
4961
- interface MappedTypeNode extends TypeNode, Declaration {
4965
+ interface MappedTypeNode extends TypeNode, Declaration, LocalsContainer {
4962
4966
  readonly kind: SyntaxKind.MappedType;
4963
4967
  readonly readonlyToken?: ReadonlyKeyword | PlusToken | MinusToken;
4964
4968
  readonly typeParameter: TypeParameterDeclaration;
@@ -5037,10 +5041,10 @@ declare namespace ts {
5037
5041
  readonly kind: SyntaxKind.FalseKeyword;
5038
5042
  }
5039
5043
  type BooleanLiteral = TrueLiteral | FalseLiteral;
5040
- interface ThisExpression extends PrimaryExpression {
5044
+ interface ThisExpression extends PrimaryExpression, FlowContainer {
5041
5045
  readonly kind: SyntaxKind.ThisKeyword;
5042
5046
  }
5043
- interface SuperExpression extends PrimaryExpression {
5047
+ interface SuperExpression extends PrimaryExpression, FlowContainer {
5044
5048
  readonly kind: SyntaxKind.SuperKeyword;
5045
5049
  }
5046
5050
  interface ImportExpression extends PrimaryExpression {
@@ -5094,7 +5098,7 @@ declare namespace ts {
5094
5098
  type BinaryOperator = AssignmentOperatorOrHigher | SyntaxKind.CommaToken;
5095
5099
  type LogicalOrCoalescingAssignmentOperator = SyntaxKind.AmpersandAmpersandEqualsToken | SyntaxKind.BarBarEqualsToken | SyntaxKind.QuestionQuestionEqualsToken;
5096
5100
  type BinaryOperatorToken = Token<BinaryOperator>;
5097
- interface BinaryExpression extends Expression, Declaration {
5101
+ interface BinaryExpression extends Expression, Declaration, JSDocContainer {
5098
5102
  readonly kind: SyntaxKind.BinaryExpression;
5099
5103
  readonly left: Expression;
5100
5104
  readonly operatorToken: BinaryOperatorToken;
@@ -5131,13 +5135,13 @@ declare namespace ts {
5131
5135
  }
5132
5136
  type FunctionBody = Block;
5133
5137
  type ConciseBody = FunctionBody | Expression;
5134
- interface FunctionExpression extends PrimaryExpression, FunctionLikeDeclarationBase, JSDocContainer {
5138
+ interface FunctionExpression extends PrimaryExpression, FunctionLikeDeclarationBase, JSDocContainer, LocalsContainer, FlowContainer {
5135
5139
  readonly kind: SyntaxKind.FunctionExpression;
5136
5140
  readonly modifiers?: NodeArray<Modifier>;
5137
5141
  readonly name?: Identifier;
5138
5142
  readonly body: FunctionBody;
5139
5143
  }
5140
- interface ArrowFunction extends Expression, FunctionLikeDeclarationBase, JSDocContainer {
5144
+ interface ArrowFunction extends Expression, FunctionLikeDeclarationBase, JSDocContainer, LocalsContainer, FlowContainer {
5141
5145
  readonly kind: SyntaxKind.ArrowFunction;
5142
5146
  readonly modifiers?: NodeArray<Modifier>;
5143
5147
  readonly equalsGreaterThanToken: EqualsGreaterThanToken;
@@ -5224,13 +5228,13 @@ declare namespace ts {
5224
5228
  interface ObjectLiteralExpressionBase<T extends ObjectLiteralElement> extends PrimaryExpression, Declaration {
5225
5229
  readonly properties: NodeArray<T>;
5226
5230
  }
5227
- interface ObjectLiteralExpression extends ObjectLiteralExpressionBase<ObjectLiteralElementLike> {
5231
+ interface ObjectLiteralExpression extends ObjectLiteralExpressionBase<ObjectLiteralElementLike>, JSDocContainer {
5228
5232
  readonly kind: SyntaxKind.ObjectLiteralExpression;
5229
5233
  }
5230
5234
  type EntityNameExpression = Identifier | PropertyAccessEntityNameExpression;
5231
5235
  type EntityNameOrEntityNameExpression = EntityName | EntityNameExpression;
5232
5236
  type AccessExpression = PropertyAccessExpression | ElementAccessExpression;
5233
- interface PropertyAccessExpression extends MemberExpression, NamedDeclaration {
5237
+ interface PropertyAccessExpression extends MemberExpression, NamedDeclaration, JSDocContainer, FlowContainer {
5234
5238
  readonly kind: SyntaxKind.PropertyAccessExpression;
5235
5239
  readonly expression: LeftHandSideExpression;
5236
5240
  readonly questionDotToken?: QuestionDotToken;
@@ -5249,7 +5253,7 @@ declare namespace ts {
5249
5253
  readonly expression: EntityNameExpression;
5250
5254
  readonly name: Identifier;
5251
5255
  }
5252
- interface ElementAccessExpression extends MemberExpression {
5256
+ interface ElementAccessExpression extends MemberExpression, Declaration, JSDocContainer, FlowContainer {
5253
5257
  readonly kind: SyntaxKind.ElementAccessExpression;
5254
5258
  readonly expression: LeftHandSideExpression;
5255
5259
  readonly questionDotToken?: QuestionDotToken;
@@ -5319,7 +5323,7 @@ declare namespace ts {
5319
5323
  interface NonNullChain extends NonNullExpression {
5320
5324
  _optionalChainBrand: any;
5321
5325
  }
5322
- interface MetaProperty extends PrimaryExpression {
5326
+ interface MetaProperty extends PrimaryExpression, FlowContainer {
5323
5327
  readonly kind: SyntaxKind.MetaProperty;
5324
5328
  readonly keywordToken: SyntaxKind.NewKeyword | SyntaxKind.ImportKeyword;
5325
5329
  readonly name: Identifier;
@@ -5412,7 +5416,7 @@ declare namespace ts {
5412
5416
  interface EmptyStatement extends Statement {
5413
5417
  readonly kind: SyntaxKind.EmptyStatement;
5414
5418
  }
5415
- interface DebuggerStatement extends Statement {
5419
+ interface DebuggerStatement extends Statement, FlowContainer {
5416
5420
  readonly kind: SyntaxKind.DebuggerStatement;
5417
5421
  }
5418
5422
  interface MissingDeclaration extends DeclarationStatement {
@@ -5420,20 +5424,20 @@ declare namespace ts {
5420
5424
  readonly name?: Identifier;
5421
5425
  }
5422
5426
  type BlockLike = SourceFile | Block | ModuleBlock | CaseOrDefaultClause;
5423
- interface Block extends Statement {
5427
+ interface Block extends Statement, LocalsContainer {
5424
5428
  readonly kind: SyntaxKind.Block;
5425
5429
  readonly statements: NodeArray<Statement>;
5426
5430
  }
5427
- interface VariableStatement extends Statement {
5431
+ interface VariableStatement extends Statement, FlowContainer {
5428
5432
  readonly kind: SyntaxKind.VariableStatement;
5429
5433
  readonly modifiers?: NodeArray<Modifier>;
5430
5434
  readonly declarationList: VariableDeclarationList;
5431
5435
  }
5432
- interface ExpressionStatement extends Statement {
5436
+ interface ExpressionStatement extends Statement, FlowContainer {
5433
5437
  readonly kind: SyntaxKind.ExpressionStatement;
5434
5438
  readonly expression: Expression;
5435
5439
  }
5436
- interface IfStatement extends Statement {
5440
+ interface IfStatement extends Statement, FlowContainer {
5437
5441
  readonly kind: SyntaxKind.IfStatement;
5438
5442
  readonly expression: Expression;
5439
5443
  readonly thenStatement: Statement;
@@ -5442,58 +5446,58 @@ declare namespace ts {
5442
5446
  interface IterationStatement extends Statement {
5443
5447
  readonly statement: Statement;
5444
5448
  }
5445
- interface DoStatement extends IterationStatement {
5449
+ interface DoStatement extends IterationStatement, FlowContainer {
5446
5450
  readonly kind: SyntaxKind.DoStatement;
5447
5451
  readonly expression: Expression;
5448
5452
  }
5449
- interface WhileStatement extends IterationStatement {
5453
+ interface WhileStatement extends IterationStatement, FlowContainer {
5450
5454
  readonly kind: SyntaxKind.WhileStatement;
5451
5455
  readonly expression: Expression;
5452
5456
  }
5453
5457
  type ForInitializer = VariableDeclarationList | Expression;
5454
- interface ForStatement extends IterationStatement {
5458
+ interface ForStatement extends IterationStatement, LocalsContainer, FlowContainer {
5455
5459
  readonly kind: SyntaxKind.ForStatement;
5456
5460
  readonly initializer?: ForInitializer;
5457
5461
  readonly condition?: Expression;
5458
5462
  readonly incrementor?: Expression;
5459
5463
  }
5460
5464
  type ForInOrOfStatement = ForInStatement | ForOfStatement;
5461
- interface ForInStatement extends IterationStatement {
5465
+ interface ForInStatement extends IterationStatement, LocalsContainer, FlowContainer {
5462
5466
  readonly kind: SyntaxKind.ForInStatement;
5463
5467
  readonly initializer: ForInitializer;
5464
5468
  readonly expression: Expression;
5465
5469
  }
5466
- interface ForOfStatement extends IterationStatement {
5470
+ interface ForOfStatement extends IterationStatement, LocalsContainer, FlowContainer {
5467
5471
  readonly kind: SyntaxKind.ForOfStatement;
5468
5472
  readonly awaitModifier?: AwaitKeyword;
5469
5473
  readonly initializer: ForInitializer;
5470
5474
  readonly expression: Expression;
5471
5475
  }
5472
- interface BreakStatement extends Statement {
5476
+ interface BreakStatement extends Statement, FlowContainer {
5473
5477
  readonly kind: SyntaxKind.BreakStatement;
5474
5478
  readonly label?: Identifier;
5475
5479
  }
5476
- interface ContinueStatement extends Statement {
5480
+ interface ContinueStatement extends Statement, FlowContainer {
5477
5481
  readonly kind: SyntaxKind.ContinueStatement;
5478
5482
  readonly label?: Identifier;
5479
5483
  }
5480
5484
  type BreakOrContinueStatement = BreakStatement | ContinueStatement;
5481
- interface ReturnStatement extends Statement {
5485
+ interface ReturnStatement extends Statement, FlowContainer {
5482
5486
  readonly kind: SyntaxKind.ReturnStatement;
5483
5487
  readonly expression?: Expression;
5484
5488
  }
5485
- interface WithStatement extends Statement {
5489
+ interface WithStatement extends Statement, FlowContainer {
5486
5490
  readonly kind: SyntaxKind.WithStatement;
5487
5491
  readonly expression: Expression;
5488
5492
  readonly statement: Statement;
5489
5493
  }
5490
- interface SwitchStatement extends Statement {
5494
+ interface SwitchStatement extends Statement, FlowContainer {
5491
5495
  readonly kind: SyntaxKind.SwitchStatement;
5492
5496
  readonly expression: Expression;
5493
5497
  readonly caseBlock: CaseBlock;
5494
5498
  possiblyExhaustive?: boolean;
5495
5499
  }
5496
- interface CaseBlock extends Node {
5500
+ interface CaseBlock extends Node, LocalsContainer {
5497
5501
  readonly kind: SyntaxKind.CaseBlock;
5498
5502
  readonly parent: SwitchStatement;
5499
5503
  readonly clauses: NodeArray<CaseOrDefaultClause>;
@@ -5510,22 +5514,22 @@ declare namespace ts {
5510
5514
  readonly statements: NodeArray<Statement>;
5511
5515
  }
5512
5516
  type CaseOrDefaultClause = CaseClause | DefaultClause;
5513
- interface LabeledStatement extends Statement {
5517
+ interface LabeledStatement extends Statement, FlowContainer {
5514
5518
  readonly kind: SyntaxKind.LabeledStatement;
5515
5519
  readonly label: Identifier;
5516
5520
  readonly statement: Statement;
5517
5521
  }
5518
- interface ThrowStatement extends Statement {
5522
+ interface ThrowStatement extends Statement, FlowContainer {
5519
5523
  readonly kind: SyntaxKind.ThrowStatement;
5520
5524
  readonly expression: Expression;
5521
5525
  }
5522
- interface TryStatement extends Statement {
5526
+ interface TryStatement extends Statement, FlowContainer {
5523
5527
  readonly kind: SyntaxKind.TryStatement;
5524
5528
  readonly tryBlock: Block;
5525
5529
  readonly catchClause?: CatchClause;
5526
5530
  readonly finallyBlock?: Block;
5527
5531
  }
5528
- interface CatchClause extends Node {
5532
+ interface CatchClause extends Node, LocalsContainer {
5529
5533
  readonly kind: SyntaxKind.CatchClause;
5530
5534
  readonly parent: TryStatement;
5531
5535
  readonly variableDeclaration?: VariableDeclaration;
@@ -5575,7 +5579,7 @@ declare namespace ts {
5575
5579
  readonly token: SyntaxKind.ExtendsKeyword | SyntaxKind.ImplementsKeyword;
5576
5580
  readonly types: NodeArray<ExpressionWithTypeArguments>;
5577
5581
  }
5578
- interface TypeAliasDeclaration extends DeclarationStatement, JSDocContainer {
5582
+ interface TypeAliasDeclaration extends DeclarationStatement, JSDocContainer, LocalsContainer {
5579
5583
  readonly kind: SyntaxKind.TypeAliasDeclaration;
5580
5584
  readonly modifiers?: NodeArray<Modifier>;
5581
5585
  readonly name: Identifier;
@@ -5596,7 +5600,7 @@ declare namespace ts {
5596
5600
  }
5597
5601
  type ModuleName = Identifier | StringLiteral;
5598
5602
  type ModuleBody = NamespaceBody | JSDocNamespaceBody;
5599
- interface ModuleDeclaration extends DeclarationStatement, JSDocContainer {
5603
+ interface ModuleDeclaration extends DeclarationStatement, JSDocContainer, LocalsContainer {
5600
5604
  readonly kind: SyntaxKind.ModuleDeclaration;
5601
5605
  readonly parent: ModuleBody | SourceFile;
5602
5606
  readonly modifiers?: NodeArray<Modifier>;
@@ -5812,7 +5816,7 @@ declare namespace ts {
5812
5816
  readonly kind: SyntaxKind.JSDocOptionalType;
5813
5817
  readonly type: TypeNode;
5814
5818
  }
5815
- interface JSDocFunctionType extends JSDocType, SignatureDeclarationBase {
5819
+ interface JSDocFunctionType extends JSDocType, SignatureDeclarationBase, LocalsContainer {
5816
5820
  readonly kind: SyntaxKind.JSDocFunctionType;
5817
5821
  }
5818
5822
  interface JSDocVariadicType extends JSDocType {
@@ -5898,7 +5902,7 @@ declare namespace ts {
5898
5902
  interface JSDocOverrideTag extends JSDocTag {
5899
5903
  readonly kind: SyntaxKind.JSDocOverrideTag;
5900
5904
  }
5901
- interface JSDocEnumTag extends JSDocTag, Declaration {
5905
+ interface JSDocEnumTag extends JSDocTag, Declaration, LocalsContainer {
5902
5906
  readonly kind: SyntaxKind.JSDocEnumTag;
5903
5907
  readonly parent: JSDoc;
5904
5908
  readonly typeExpression: JSDocTypeExpression;
@@ -5924,21 +5928,21 @@ declare namespace ts {
5924
5928
  readonly kind: SyntaxKind.JSDocTypeTag;
5925
5929
  readonly typeExpression: JSDocTypeExpression;
5926
5930
  }
5927
- interface JSDocTypedefTag extends JSDocTag, NamedDeclaration {
5931
+ interface JSDocTypedefTag extends JSDocTag, NamedDeclaration, LocalsContainer {
5928
5932
  readonly kind: SyntaxKind.JSDocTypedefTag;
5929
5933
  readonly parent: JSDoc;
5930
5934
  readonly fullName?: JSDocNamespaceDeclaration | Identifier;
5931
5935
  readonly name?: Identifier;
5932
5936
  readonly typeExpression?: JSDocTypeExpression | JSDocTypeLiteral;
5933
5937
  }
5934
- interface JSDocCallbackTag extends JSDocTag, NamedDeclaration {
5938
+ interface JSDocCallbackTag extends JSDocTag, NamedDeclaration, LocalsContainer {
5935
5939
  readonly kind: SyntaxKind.JSDocCallbackTag;
5936
5940
  readonly parent: JSDoc;
5937
5941
  readonly fullName?: JSDocNamespaceDeclaration | Identifier;
5938
5942
  readonly name?: Identifier;
5939
5943
  readonly typeExpression: JSDocSignature;
5940
5944
  }
5941
- interface JSDocSignature extends JSDocType, Declaration {
5945
+ interface JSDocSignature extends JSDocType, Declaration, JSDocContainer, LocalsContainer {
5942
5946
  readonly kind: SyntaxKind.JSDocSignature;
5943
5947
  readonly typeParameters?: readonly JSDocTemplateTag[];
5944
5948
  readonly parameters: readonly JSDocParameterTag[];
@@ -5958,16 +5962,12 @@ declare namespace ts {
5958
5962
  interface JSDocParameterTag extends JSDocPropertyLikeTag {
5959
5963
  readonly kind: SyntaxKind.JSDocParameterTag;
5960
5964
  }
5961
- interface JSDocTypeLiteral extends JSDocType {
5965
+ interface JSDocTypeLiteral extends JSDocType, Declaration {
5962
5966
  readonly kind: SyntaxKind.JSDocTypeLiteral;
5963
5967
  readonly jsDocPropertyTags?: readonly JSDocPropertyLikeTag[];
5964
5968
  /** If true, then this type literal represents an *array* of its type. */
5965
5969
  readonly isArrayType: boolean;
5966
5970
  }
5967
- interface JSDocSatisfiesTag extends JSDocTag {
5968
- readonly kind: SyntaxKind.JSDocSatisfiesTag;
5969
- readonly typeExpression: JSDocTypeExpression;
5970
- }
5971
5971
  enum FlowFlags {
5972
5972
  Unreachable = 1,
5973
5973
  Start = 2,
@@ -6042,7 +6042,7 @@ declare namespace ts {
6042
6042
  getLineAndCharacterOfPosition(pos: number): LineAndCharacter;
6043
6043
  }
6044
6044
  type ResolutionMode = ModuleKind.ESNext | ModuleKind.CommonJS | undefined;
6045
- interface SourceFile extends Declaration {
6045
+ interface SourceFile extends Declaration, LocalsContainer {
6046
6046
  readonly kind: SyntaxKind.SourceFile;
6047
6047
  readonly statements: NodeArray<Statement>;
6048
6048
  readonly endOfFileToken: Token<SyntaxKind.EndOfFileToken>;
@@ -7468,11 +7468,12 @@ declare namespace ts {
7468
7468
  createToken(token: SyntaxKind.NullKeyword): NullLiteral;
7469
7469
  createToken(token: SyntaxKind.TrueKeyword): TrueLiteral;
7470
7470
  createToken(token: SyntaxKind.FalseKeyword): FalseLiteral;
7471
+ createToken(token: SyntaxKind.EndOfFileToken): EndOfFileToken;
7472
+ createToken(token: SyntaxKind.Unknown): Token<SyntaxKind.Unknown>;
7471
7473
  createToken<TKind extends PunctuationSyntaxKind>(token: TKind): PunctuationToken<TKind>;
7472
7474
  createToken<TKind extends KeywordTypeSyntaxKind>(token: TKind): KeywordTypeNode<TKind>;
7473
7475
  createToken<TKind extends ModifierSyntaxKind>(token: TKind): ModifierToken<TKind>;
7474
7476
  createToken<TKind extends KeywordSyntaxKind>(token: TKind): KeywordToken<TKind>;
7475
- createToken<TKind extends SyntaxKind.Unknown | SyntaxKind.EndOfFileToken>(token: TKind): Token<TKind>;
7476
7477
  createSuper(): SuperExpression;
7477
7478
  createThis(): ThisExpression;
7478
7479
  createNull(): NullLiteral;
@@ -7803,8 +7804,6 @@ declare namespace ts {
7803
7804
  updateJSDocDeprecatedTag(node: JSDocDeprecatedTag, tagName: Identifier, comment?: string | NodeArray<JSDocComment>): JSDocDeprecatedTag;
7804
7805
  createJSDocOverrideTag(tagName: Identifier, comment?: string | NodeArray<JSDocComment>): JSDocOverrideTag;
7805
7806
  updateJSDocOverrideTag(node: JSDocOverrideTag, tagName: Identifier, comment?: string | NodeArray<JSDocComment>): JSDocOverrideTag;
7806
- createJSDocSatisfiesTag(tagName: Identifier | undefined, typeExpression: JSDocTypeExpression, comment?: string | NodeArray<JSDocComment>): JSDocSatisfiesTag;
7807
- updateJSDocSatisfiesTag(node: JSDocSatisfiesTag, tagName: Identifier | undefined, typeExpression: JSDocTypeExpression, comment: string | NodeArray<JSDocComment> | undefined): JSDocSatisfiesTag;
7808
7807
  createJSDocText(text: string): JSDocText;
7809
7808
  updateJSDocText(node: JSDocText, text: string): JSDocText;
7810
7809
  createJSDocComment(comment?: string | NodeArray<JSDocComment> | undefined, tags?: readonly JSDocTag[] | undefined): JSDoc;
@@ -8645,7 +8644,6 @@ declare namespace ts {
8645
8644
  function getJSDocReturnTag(node: Node): JSDocReturnTag | undefined;
8646
8645
  /** Gets the JSDoc template tag for the node if present */
8647
8646
  function getJSDocTemplateTag(node: Node): JSDocTemplateTag | undefined;
8648
- function getJSDocSatisfiesTag(node: Node): JSDocSatisfiesTag | undefined;
8649
8647
  /** Gets the JSDoc type tag for the node if present and valid */
8650
8648
  function getJSDocTypeTag(node: Node): JSDocTypeTag | undefined;
8651
8649
  /**
@@ -9046,7 +9044,6 @@ declare namespace ts {
9046
9044
  function isJSDocUnknownTag(node: Node): node is JSDocUnknownTag;
9047
9045
  function isJSDocPropertyTag(node: Node): node is JSDocPropertyTag;
9048
9046
  function isJSDocImplementsTag(node: Node): node is JSDocImplementsTag;
9049
- function isJSDocSatisfiesTag(node: Node): node is JSDocSatisfiesTag;
9050
9047
  function setTextRange<T extends TextRange>(range: T, location: TextRange | undefined): T;
9051
9048
  function canHaveModifiers(node: Node): node is HasModifiers;
9052
9049
  function canHaveDecorators(node: Node): node is HasDecorators;
@@ -9196,7 +9193,7 @@ declare namespace ts {
9196
9193
  function resolveModuleName(moduleName: string, containingFile: string, compilerOptions: CompilerOptions, host: ModuleResolutionHost, cache?: ModuleResolutionCache, redirectedReference?: ResolvedProjectReference, resolutionMode?: ResolutionMode): ResolvedModuleWithFailedLookupLocations;
9197
9194
  function nodeModuleNameResolver(moduleName: string, containingFile: string, compilerOptions: CompilerOptions, host: ModuleResolutionHost, cache?: ModuleResolutionCache, redirectedReference?: ResolvedProjectReference): ResolvedModuleWithFailedLookupLocations;
9198
9195
  function classicNameResolver(moduleName: string, containingFile: string, compilerOptions: CompilerOptions, host: ModuleResolutionHost, cache?: NonRelativeModuleNameResolutionCache, redirectedReference?: ResolvedProjectReference): ResolvedModuleWithFailedLookupLocations;
9199
- interface TypeReferenceDirectiveResolutionCache extends PerDirectoryResolutionCache<ResolvedTypeReferenceDirectiveWithFailedLookupLocations>, PackageJsonInfoCache {
9196
+ interface TypeReferenceDirectiveResolutionCache extends PerDirectoryResolutionCache<ResolvedTypeReferenceDirectiveWithFailedLookupLocations>, NonRelativeNameResolutionCache<ResolvedTypeReferenceDirectiveWithFailedLookupLocations>, PackageJsonInfoCache {
9200
9197
  }
9201
9198
  interface ModeAwareCache<T> {
9202
9199
  get(key: string, mode: ResolutionMode): T | undefined;
@@ -9211,6 +9208,7 @@ declare namespace ts {
9211
9208
  * This assumes that any module id will have the same resolution for sibling files located in the same folder.
9212
9209
  */
9213
9210
  interface PerDirectoryResolutionCache<T> {
9211
+ getFromDirectoryCache(name: string, mode: ResolutionMode, directoryName: string, redirectedReference: ResolvedProjectReference | undefined): T | undefined;
9214
9212
  getOrCreateCacheForDirectory(directoryName: string, redirectedReference?: ResolvedProjectReference): ModeAwareCache<T>;
9215
9213
  clear(): void;
9216
9214
  /**
@@ -9219,6 +9217,20 @@ declare namespace ts {
9219
9217
  */
9220
9218
  update(options: CompilerOptions): void;
9221
9219
  }
9220
+ interface NonRelativeNameResolutionCache<T> {
9221
+ getFromNonRelativeNameCache(nonRelativeName: string, mode: ResolutionMode, directoryName: string, redirectedReference: ResolvedProjectReference | undefined): T | undefined;
9222
+ getOrCreateCacheForNonRelativeName(nonRelativeName: string, mode: ResolutionMode, redirectedReference?: ResolvedProjectReference): PerNonRelativeNameCache<T>;
9223
+ clear(): void;
9224
+ /**
9225
+ * Updates with the current compilerOptions the cache will operate with.
9226
+ * This updates the redirects map as well if needed so module resolutions are cached if they can across the projects
9227
+ */
9228
+ update(options: CompilerOptions): void;
9229
+ }
9230
+ interface PerNonRelativeNameCache<T> {
9231
+ get(directory: string): T | undefined;
9232
+ set(directory: string, result: T): void;
9233
+ }
9222
9234
  interface ModuleResolutionCache extends PerDirectoryResolutionCache<ResolvedModuleWithFailedLookupLocations>, NonRelativeModuleNameResolutionCache, PackageJsonInfoCache {
9223
9235
  getPackageJsonInfoCache(): PackageJsonInfoCache;
9224
9236
  }
@@ -9226,16 +9238,14 @@ declare namespace ts {
9226
9238
  * Stored map from non-relative module name to a table: directory -> result of module lookup in this directory
9227
9239
  * We support only non-relative module names because resolution of relative module names is usually more deterministic and thus less expensive.
9228
9240
  */
9229
- interface NonRelativeModuleNameResolutionCache extends PackageJsonInfoCache {
9241
+ interface NonRelativeModuleNameResolutionCache extends NonRelativeNameResolutionCache<ResolvedModuleWithFailedLookupLocations>, PackageJsonInfoCache {
9242
+ /** @deprecated Use getOrCreateCacheForNonRelativeName */
9230
9243
  getOrCreateCacheForModuleName(nonRelativeModuleName: string, mode: ResolutionMode, redirectedReference?: ResolvedProjectReference): PerModuleNameCache;
9231
9244
  }
9232
9245
  interface PackageJsonInfoCache {
9233
9246
  clear(): void;
9234
9247
  }
9235
- interface PerModuleNameCache {
9236
- get(directory: string): ResolvedModuleWithFailedLookupLocations | undefined;
9237
- set(directory: string, result: ResolvedModuleWithFailedLookupLocations): void;
9238
- }
9248
+ type PerModuleNameCache = PerNonRelativeNameCache<ResolvedModuleWithFailedLookupLocations>;
9239
9249
  /**
9240
9250
  * Visits a Node using the supplied visitor, possibly returning a new Node in its place.
9241
9251
  *