@oxc-project/types 0.93.0 → 0.94.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/package.json +1 -1
  2. package/types.d.ts +181 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@oxc-project/types",
3
- "version": "0.93.0",
3
+ "version": "0.94.0",
4
4
  "description": "Types for Oxc AST nodes",
5
5
  "type": "module",
6
6
  "keywords": [
package/types.d.ts CHANGED
@@ -6,6 +6,7 @@ export interface Program extends Span {
6
6
  body: Array<Directive | Statement>;
7
7
  sourceType: ModuleKind;
8
8
  hashbang: Hashbang | null;
9
+ parent?: null;
9
10
  }
10
11
 
11
12
  export type Expression =
@@ -57,6 +58,7 @@ export interface IdentifierName extends Span {
57
58
  name: string;
58
59
  optional?: false;
59
60
  typeAnnotation?: null;
61
+ parent?: Node;
60
62
  }
61
63
 
62
64
  export interface IdentifierReference extends Span {
@@ -65,6 +67,7 @@ export interface IdentifierReference extends Span {
65
67
  name: string;
66
68
  optional?: false;
67
69
  typeAnnotation?: null;
70
+ parent?: Node;
68
71
  }
69
72
 
70
73
  export interface BindingIdentifier extends Span {
@@ -73,6 +76,7 @@ export interface BindingIdentifier extends Span {
73
76
  name: string;
74
77
  optional?: false;
75
78
  typeAnnotation?: null;
79
+ parent?: Node;
76
80
  }
77
81
 
78
82
  export interface LabelIdentifier extends Span {
@@ -81,15 +85,18 @@ export interface LabelIdentifier extends Span {
81
85
  name: string;
82
86
  optional?: false;
83
87
  typeAnnotation?: null;
88
+ parent?: Node;
84
89
  }
85
90
 
86
91
  export interface ThisExpression extends Span {
87
92
  type: 'ThisExpression';
93
+ parent?: Node;
88
94
  }
89
95
 
90
96
  export interface ArrayExpression extends Span {
91
97
  type: 'ArrayExpression';
92
98
  elements: Array<ArrayExpressionElement>;
99
+ parent?: Node;
93
100
  }
94
101
 
95
102
  export type ArrayExpressionElement = SpreadElement | null | Expression;
@@ -97,6 +104,7 @@ export type ArrayExpressionElement = SpreadElement | null | Expression;
97
104
  export interface ObjectExpression extends Span {
98
105
  type: 'ObjectExpression';
99
106
  properties: Array<ObjectPropertyKind>;
107
+ parent?: Node;
100
108
  }
101
109
 
102
110
  export type ObjectPropertyKind = ObjectProperty | SpreadElement;
@@ -110,6 +118,7 @@ export interface ObjectProperty extends Span {
110
118
  shorthand: boolean;
111
119
  computed: boolean;
112
120
  optional?: false;
121
+ parent?: Node;
113
122
  }
114
123
 
115
124
  export type PropertyKey = IdentifierName | PrivateIdentifier | Expression;
@@ -120,6 +129,7 @@ export interface TemplateLiteral extends Span {
120
129
  type: 'TemplateLiteral';
121
130
  quasis: Array<TemplateElement>;
122
131
  expressions: Array<Expression>;
132
+ parent?: Node;
123
133
  }
124
134
 
125
135
  export interface TaggedTemplateExpression extends Span {
@@ -127,12 +137,14 @@ export interface TaggedTemplateExpression extends Span {
127
137
  tag: Expression;
128
138
  typeArguments?: TSTypeParameterInstantiation | null;
129
139
  quasi: TemplateLiteral;
140
+ parent?: Node;
130
141
  }
131
142
 
132
143
  export interface TemplateElement extends Span {
133
144
  type: 'TemplateElement';
134
145
  value: TemplateElementValue;
135
146
  tail: boolean;
147
+ parent?: Node;
136
148
  }
137
149
 
138
150
  export interface TemplateElementValue {
@@ -148,6 +160,7 @@ export interface ComputedMemberExpression extends Span {
148
160
  property: Expression;
149
161
  optional: boolean;
150
162
  computed: true;
163
+ parent?: Node;
151
164
  }
152
165
 
153
166
  export interface StaticMemberExpression extends Span {
@@ -156,6 +169,7 @@ export interface StaticMemberExpression extends Span {
156
169
  property: IdentifierName;
157
170
  optional: boolean;
158
171
  computed: false;
172
+ parent?: Node;
159
173
  }
160
174
 
161
175
  export interface PrivateFieldExpression extends Span {
@@ -164,6 +178,7 @@ export interface PrivateFieldExpression extends Span {
164
178
  property: PrivateIdentifier;
165
179
  optional: boolean;
166
180
  computed: false;
181
+ parent?: Node;
167
182
  }
168
183
 
169
184
  export interface CallExpression extends Span {
@@ -172,6 +187,7 @@ export interface CallExpression extends Span {
172
187
  typeArguments?: TSTypeParameterInstantiation | null;
173
188
  arguments: Array<Argument>;
174
189
  optional: boolean;
190
+ parent?: Node;
175
191
  }
176
192
 
177
193
  export interface NewExpression extends Span {
@@ -179,17 +195,20 @@ export interface NewExpression extends Span {
179
195
  callee: Expression;
180
196
  typeArguments?: TSTypeParameterInstantiation | null;
181
197
  arguments: Array<Argument>;
198
+ parent?: Node;
182
199
  }
183
200
 
184
201
  export interface MetaProperty extends Span {
185
202
  type: 'MetaProperty';
186
203
  meta: IdentifierName;
187
204
  property: IdentifierName;
205
+ parent?: Node;
188
206
  }
189
207
 
190
208
  export interface SpreadElement extends Span {
191
209
  type: 'SpreadElement';
192
210
  argument: Expression;
211
+ parent?: Node;
193
212
  }
194
213
 
195
214
  export type Argument = SpreadElement | Expression;
@@ -199,6 +218,7 @@ export interface UpdateExpression extends Span {
199
218
  operator: UpdateOperator;
200
219
  prefix: boolean;
201
220
  argument: SimpleAssignmentTarget;
221
+ parent?: Node;
202
222
  }
203
223
 
204
224
  export interface UnaryExpression extends Span {
@@ -206,6 +226,7 @@ export interface UnaryExpression extends Span {
206
226
  operator: UnaryOperator;
207
227
  argument: Expression;
208
228
  prefix: true;
229
+ parent?: Node;
209
230
  }
210
231
 
211
232
  export interface BinaryExpression extends Span {
@@ -213,6 +234,7 @@ export interface BinaryExpression extends Span {
213
234
  left: Expression;
214
235
  operator: BinaryOperator;
215
236
  right: Expression;
237
+ parent?: Node;
216
238
  }
217
239
 
218
240
  export interface PrivateInExpression extends Span {
@@ -220,6 +242,7 @@ export interface PrivateInExpression extends Span {
220
242
  left: PrivateIdentifier;
221
243
  operator: 'in';
222
244
  right: Expression;
245
+ parent?: Node;
223
246
  }
224
247
 
225
248
  export interface LogicalExpression extends Span {
@@ -227,6 +250,7 @@ export interface LogicalExpression extends Span {
227
250
  left: Expression;
228
251
  operator: LogicalOperator;
229
252
  right: Expression;
253
+ parent?: Node;
230
254
  }
231
255
 
232
256
  export interface ConditionalExpression extends Span {
@@ -234,6 +258,7 @@ export interface ConditionalExpression extends Span {
234
258
  test: Expression;
235
259
  consequent: Expression;
236
260
  alternate: Expression;
261
+ parent?: Node;
237
262
  }
238
263
 
239
264
  export interface AssignmentExpression extends Span {
@@ -241,6 +266,7 @@ export interface AssignmentExpression extends Span {
241
266
  operator: AssignmentOperator;
242
267
  left: AssignmentTarget;
243
268
  right: Expression;
269
+ parent?: Node;
244
270
  }
245
271
 
246
272
  export type AssignmentTarget = SimpleAssignmentTarget | AssignmentTargetPattern;
@@ -261,6 +287,7 @@ export interface ArrayAssignmentTarget extends Span {
261
287
  elements: Array<AssignmentTargetMaybeDefault | AssignmentTargetRest | null>;
262
288
  optional?: false;
263
289
  typeAnnotation?: null;
290
+ parent?: Node;
264
291
  }
265
292
 
266
293
  export interface ObjectAssignmentTarget extends Span {
@@ -269,6 +296,7 @@ export interface ObjectAssignmentTarget extends Span {
269
296
  properties: Array<AssignmentTargetProperty | AssignmentTargetRest>;
270
297
  optional?: false;
271
298
  typeAnnotation?: null;
299
+ parent?: Node;
272
300
  }
273
301
 
274
302
  export interface AssignmentTargetRest extends Span {
@@ -278,6 +306,7 @@ export interface AssignmentTargetRest extends Span {
278
306
  optional?: false;
279
307
  typeAnnotation?: null;
280
308
  value?: null;
309
+ parent?: Node;
281
310
  }
282
311
 
283
312
  export type AssignmentTargetMaybeDefault = AssignmentTargetWithDefault | AssignmentTarget;
@@ -289,6 +318,7 @@ export interface AssignmentTargetWithDefault extends Span {
289
318
  right: Expression;
290
319
  optional?: false;
291
320
  typeAnnotation?: null;
321
+ parent?: Node;
292
322
  }
293
323
 
294
324
  export type AssignmentTargetProperty = AssignmentTargetPropertyIdentifier | AssignmentTargetPropertyProperty;
@@ -302,6 +332,7 @@ export interface AssignmentTargetPropertyIdentifier extends Span {
302
332
  shorthand: true;
303
333
  computed: false;
304
334
  optional?: false;
335
+ parent?: Node;
305
336
  }
306
337
 
307
338
  export interface AssignmentTargetPropertyProperty extends Span {
@@ -313,25 +344,30 @@ export interface AssignmentTargetPropertyProperty extends Span {
313
344
  shorthand: false;
314
345
  computed: boolean;
315
346
  optional?: false;
347
+ parent?: Node;
316
348
  }
317
349
 
318
350
  export interface SequenceExpression extends Span {
319
351
  type: 'SequenceExpression';
320
352
  expressions: Array<Expression>;
353
+ parent?: Node;
321
354
  }
322
355
 
323
356
  export interface Super extends Span {
324
357
  type: 'Super';
358
+ parent?: Node;
325
359
  }
326
360
 
327
361
  export interface AwaitExpression extends Span {
328
362
  type: 'AwaitExpression';
329
363
  argument: Expression;
364
+ parent?: Node;
330
365
  }
331
366
 
332
367
  export interface ChainExpression extends Span {
333
368
  type: 'ChainExpression';
334
369
  expression: ChainElement;
370
+ parent?: Node;
335
371
  }
336
372
 
337
373
  export type ChainElement = CallExpression | TSNonNullExpression | MemberExpression;
@@ -339,6 +375,7 @@ export type ChainElement = CallExpression | TSNonNullExpression | MemberExpressi
339
375
  export interface ParenthesizedExpression extends Span {
340
376
  type: 'ParenthesizedExpression';
341
377
  expression: Expression;
378
+ parent?: Node;
342
379
  }
343
380
 
344
381
  export type Statement =
@@ -367,16 +404,19 @@ export interface Directive extends Span {
367
404
  type: 'ExpressionStatement';
368
405
  expression: StringLiteral;
369
406
  directive: string;
407
+ parent?: Node;
370
408
  }
371
409
 
372
410
  export interface Hashbang extends Span {
373
411
  type: 'Hashbang';
374
412
  value: string;
413
+ parent?: Node;
375
414
  }
376
415
 
377
416
  export interface BlockStatement extends Span {
378
417
  type: 'BlockStatement';
379
418
  body: Array<Statement>;
419
+ parent?: Node;
380
420
  }
381
421
 
382
422
  export type Declaration =
@@ -394,6 +434,7 @@ export interface VariableDeclaration extends Span {
394
434
  kind: VariableDeclarationKind;
395
435
  declarations: Array<VariableDeclarator>;
396
436
  declare?: boolean;
437
+ parent?: Node;
397
438
  }
398
439
 
399
440
  export type VariableDeclarationKind = 'var' | 'let' | 'const' | 'using' | 'await using';
@@ -403,16 +444,19 @@ export interface VariableDeclarator extends Span {
403
444
  id: BindingPattern;
404
445
  init: Expression | null;
405
446
  definite?: boolean;
447
+ parent?: Node;
406
448
  }
407
449
 
408
450
  export interface EmptyStatement extends Span {
409
451
  type: 'EmptyStatement';
452
+ parent?: Node;
410
453
  }
411
454
 
412
455
  export interface ExpressionStatement extends Span {
413
456
  type: 'ExpressionStatement';
414
457
  expression: Expression;
415
458
  directive?: string | null;
459
+ parent?: Node;
416
460
  }
417
461
 
418
462
  export interface IfStatement extends Span {
@@ -420,18 +464,21 @@ export interface IfStatement extends Span {
420
464
  test: Expression;
421
465
  consequent: Statement;
422
466
  alternate: Statement | null;
467
+ parent?: Node;
423
468
  }
424
469
 
425
470
  export interface DoWhileStatement extends Span {
426
471
  type: 'DoWhileStatement';
427
472
  body: Statement;
428
473
  test: Expression;
474
+ parent?: Node;
429
475
  }
430
476
 
431
477
  export interface WhileStatement extends Span {
432
478
  type: 'WhileStatement';
433
479
  test: Expression;
434
480
  body: Statement;
481
+ parent?: Node;
435
482
  }
436
483
 
437
484
  export interface ForStatement extends Span {
@@ -440,6 +487,7 @@ export interface ForStatement extends Span {
440
487
  test: Expression | null;
441
488
  update: Expression | null;
442
489
  body: Statement;
490
+ parent?: Node;
443
491
  }
444
492
 
445
493
  export type ForStatementInit = VariableDeclaration | Expression;
@@ -449,6 +497,7 @@ export interface ForInStatement extends Span {
449
497
  left: ForStatementLeft;
450
498
  right: Expression;
451
499
  body: Statement;
500
+ parent?: Node;
452
501
  }
453
502
 
454
503
  export type ForStatementLeft = VariableDeclaration | AssignmentTarget;
@@ -459,50 +508,59 @@ export interface ForOfStatement extends Span {
459
508
  left: ForStatementLeft;
460
509
  right: Expression;
461
510
  body: Statement;
511
+ parent?: Node;
462
512
  }
463
513
 
464
514
  export interface ContinueStatement extends Span {
465
515
  type: 'ContinueStatement';
466
516
  label: LabelIdentifier | null;
517
+ parent?: Node;
467
518
  }
468
519
 
469
520
  export interface BreakStatement extends Span {
470
521
  type: 'BreakStatement';
471
522
  label: LabelIdentifier | null;
523
+ parent?: Node;
472
524
  }
473
525
 
474
526
  export interface ReturnStatement extends Span {
475
527
  type: 'ReturnStatement';
476
528
  argument: Expression | null;
529
+ parent?: Node;
477
530
  }
478
531
 
479
532
  export interface WithStatement extends Span {
480
533
  type: 'WithStatement';
481
534
  object: Expression;
482
535
  body: Statement;
536
+ parent?: Node;
483
537
  }
484
538
 
485
539
  export interface SwitchStatement extends Span {
486
540
  type: 'SwitchStatement';
487
541
  discriminant: Expression;
488
542
  cases: Array<SwitchCase>;
543
+ parent?: Node;
489
544
  }
490
545
 
491
546
  export interface SwitchCase extends Span {
492
547
  type: 'SwitchCase';
493
548
  test: Expression | null;
494
549
  consequent: Array<Statement>;
550
+ parent?: Node;
495
551
  }
496
552
 
497
553
  export interface LabeledStatement extends Span {
498
554
  type: 'LabeledStatement';
499
555
  label: LabelIdentifier;
500
556
  body: Statement;
557
+ parent?: Node;
501
558
  }
502
559
 
503
560
  export interface ThrowStatement extends Span {
504
561
  type: 'ThrowStatement';
505
562
  argument: Expression;
563
+ parent?: Node;
506
564
  }
507
565
 
508
566
  export interface TryStatement extends Span {
@@ -510,16 +568,19 @@ export interface TryStatement extends Span {
510
568
  block: BlockStatement;
511
569
  handler: CatchClause | null;
512
570
  finalizer: BlockStatement | null;
571
+ parent?: Node;
513
572
  }
514
573
 
515
574
  export interface CatchClause extends Span {
516
575
  type: 'CatchClause';
517
576
  param: BindingPattern | null;
518
577
  body: BlockStatement;
578
+ parent?: Node;
519
579
  }
520
580
 
521
581
  export interface DebuggerStatement extends Span {
522
582
  type: 'DebuggerStatement';
583
+ parent?: Node;
523
584
  }
524
585
 
525
586
  export type BindingPattern =
@@ -538,6 +599,7 @@ export interface AssignmentPattern extends Span {
538
599
  right: Expression;
539
600
  optional?: false;
540
601
  typeAnnotation?: null;
602
+ parent?: Node;
541
603
  }
542
604
 
543
605
  export interface ObjectPattern extends Span {
@@ -546,6 +608,7 @@ export interface ObjectPattern extends Span {
546
608
  properties: Array<BindingProperty | BindingRestElement>;
547
609
  optional?: false;
548
610
  typeAnnotation?: null;
611
+ parent?: Node;
549
612
  }
550
613
 
551
614
  export interface BindingProperty extends Span {
@@ -557,6 +620,7 @@ export interface BindingProperty extends Span {
557
620
  shorthand: boolean;
558
621
  computed: boolean;
559
622
  optional?: false;
623
+ parent?: Node;
560
624
  }
561
625
 
562
626
  export interface ArrayPattern extends Span {
@@ -565,6 +629,7 @@ export interface ArrayPattern extends Span {
565
629
  elements: Array<BindingPattern | BindingRestElement | null>;
566
630
  optional?: false;
567
631
  typeAnnotation?: null;
632
+ parent?: Node;
568
633
  }
569
634
 
570
635
  export interface BindingRestElement extends Span {
@@ -574,6 +639,7 @@ export interface BindingRestElement extends Span {
574
639
  optional?: false;
575
640
  typeAnnotation?: null;
576
641
  value?: null;
642
+ parent?: Node;
577
643
  }
578
644
 
579
645
  export interface Function extends Span {
@@ -587,6 +653,7 @@ export interface Function extends Span {
587
653
  returnType?: TSTypeAnnotation | null;
588
654
  body: FunctionBody | null;
589
655
  expression: false;
656
+ parent?: Node;
590
657
  }
591
658
 
592
659
  export type ParamPattern = FormalParameter | TSParameterProperty | FormalParameterRest;
@@ -625,6 +692,7 @@ export interface TSParameterProperty extends Span {
625
692
  export interface FunctionBody extends Span {
626
693
  type: 'BlockStatement';
627
694
  body: Array<Directive | Statement>;
695
+ parent?: Node;
628
696
  }
629
697
 
630
698
  export interface ArrowFunctionExpression extends Span {
@@ -637,12 +705,14 @@ export interface ArrowFunctionExpression extends Span {
637
705
  body: FunctionBody | Expression;
638
706
  id: null;
639
707
  generator: false;
708
+ parent?: Node;
640
709
  }
641
710
 
642
711
  export interface YieldExpression extends Span {
643
712
  type: 'YieldExpression';
644
713
  delegate: boolean;
645
714
  argument: Expression | null;
715
+ parent?: Node;
646
716
  }
647
717
 
648
718
  export interface Class extends Span {
@@ -656,6 +726,7 @@ export interface Class extends Span {
656
726
  body: ClassBody;
657
727
  abstract?: boolean;
658
728
  declare?: boolean;
729
+ parent?: Node;
659
730
  }
660
731
 
661
732
  export type ClassType = 'ClassDeclaration' | 'ClassExpression';
@@ -663,6 +734,7 @@ export type ClassType = 'ClassDeclaration' | 'ClassExpression';
663
734
  export interface ClassBody extends Span {
664
735
  type: 'ClassBody';
665
736
  body: Array<ClassElement>;
737
+ parent?: Node;
666
738
  }
667
739
 
668
740
  export type ClassElement = StaticBlock | MethodDefinition | PropertyDefinition | AccessorProperty | TSIndexSignature;
@@ -678,6 +750,7 @@ export interface MethodDefinition extends Span {
678
750
  override?: boolean;
679
751
  optional?: boolean;
680
752
  accessibility?: TSAccessibility | null;
753
+ parent?: Node;
681
754
  }
682
755
 
683
756
  export type MethodDefinitionType = 'MethodDefinition' | 'TSAbstractMethodDefinition';
@@ -696,6 +769,7 @@ export interface PropertyDefinition extends Span {
696
769
  definite?: boolean;
697
770
  readonly?: boolean;
698
771
  accessibility?: TSAccessibility | null;
772
+ parent?: Node;
699
773
  }
700
774
 
701
775
  export type PropertyDefinitionType = 'PropertyDefinition' | 'TSAbstractPropertyDefinition';
@@ -705,11 +779,13 @@ export type MethodDefinitionKind = 'constructor' | 'method' | 'get' | 'set';
705
779
  export interface PrivateIdentifier extends Span {
706
780
  type: 'PrivateIdentifier';
707
781
  name: string;
782
+ parent?: Node;
708
783
  }
709
784
 
710
785
  export interface StaticBlock extends Span {
711
786
  type: 'StaticBlock';
712
787
  body: Array<Statement>;
788
+ parent?: Node;
713
789
  }
714
790
 
715
791
  export type ModuleDeclaration =
@@ -736,6 +812,7 @@ export interface AccessorProperty extends Span {
736
812
  declare?: false;
737
813
  optional?: false;
738
814
  readonly?: false;
815
+ parent?: Node;
739
816
  }
740
817
 
741
818
  export interface ImportExpression extends Span {
@@ -743,6 +820,7 @@ export interface ImportExpression extends Span {
743
820
  source: Expression;
744
821
  options: Expression | null;
745
822
  phase: ImportPhase | null;
823
+ parent?: Node;
746
824
  }
747
825
 
748
826
  export interface ImportDeclaration extends Span {
@@ -752,6 +830,7 @@ export interface ImportDeclaration extends Span {
752
830
  phase: ImportPhase | null;
753
831
  attributes: Array<ImportAttribute>;
754
832
  importKind?: ImportOrExportKind;
833
+ parent?: Node;
755
834
  }
756
835
 
757
836
  export type ImportPhase = 'source' | 'defer';
@@ -763,22 +842,26 @@ export interface ImportSpecifier extends Span {
763
842
  imported: ModuleExportName;
764
843
  local: BindingIdentifier;
765
844
  importKind?: ImportOrExportKind;
845
+ parent?: Node;
766
846
  }
767
847
 
768
848
  export interface ImportDefaultSpecifier extends Span {
769
849
  type: 'ImportDefaultSpecifier';
770
850
  local: BindingIdentifier;
851
+ parent?: Node;
771
852
  }
772
853
 
773
854
  export interface ImportNamespaceSpecifier extends Span {
774
855
  type: 'ImportNamespaceSpecifier';
775
856
  local: BindingIdentifier;
857
+ parent?: Node;
776
858
  }
777
859
 
778
860
  export interface ImportAttribute extends Span {
779
861
  type: 'ImportAttribute';
780
862
  key: ImportAttributeKey;
781
863
  value: StringLiteral;
864
+ parent?: Node;
782
865
  }
783
866
 
784
867
  export type ImportAttributeKey = IdentifierName | StringLiteral;
@@ -790,12 +873,14 @@ export interface ExportNamedDeclaration extends Span {
790
873
  source: StringLiteral | null;
791
874
  exportKind?: ImportOrExportKind;
792
875
  attributes: Array<ImportAttribute>;
876
+ parent?: Node;
793
877
  }
794
878
 
795
879
  export interface ExportDefaultDeclaration extends Span {
796
880
  type: 'ExportDefaultDeclaration';
797
881
  declaration: ExportDefaultDeclarationKind;
798
882
  exportKind?: 'value';
883
+ parent?: Node;
799
884
  }
800
885
 
801
886
  export interface ExportAllDeclaration extends Span {
@@ -804,6 +889,7 @@ export interface ExportAllDeclaration extends Span {
804
889
  source: StringLiteral;
805
890
  attributes: Array<ImportAttribute>;
806
891
  exportKind?: ImportOrExportKind;
892
+ parent?: Node;
807
893
  }
808
894
 
809
895
  export interface ExportSpecifier extends Span {
@@ -811,6 +897,7 @@ export interface ExportSpecifier extends Span {
811
897
  local: ModuleExportName;
812
898
  exported: ModuleExportName;
813
899
  exportKind?: ImportOrExportKind;
900
+ parent?: Node;
814
901
  }
815
902
 
816
903
  export type ExportDefaultDeclarationKind = Function | Class | TSInterfaceDeclaration | Expression;
@@ -821,30 +908,35 @@ export interface V8IntrinsicExpression extends Span {
821
908
  type: 'V8IntrinsicExpression';
822
909
  name: IdentifierName;
823
910
  arguments: Array<Argument>;
911
+ parent?: Node;
824
912
  }
825
913
 
826
914
  export interface BooleanLiteral extends Span {
827
915
  type: 'Literal';
828
916
  value: boolean;
829
917
  raw: string | null;
918
+ parent?: Node;
830
919
  }
831
920
 
832
921
  export interface NullLiteral extends Span {
833
922
  type: 'Literal';
834
923
  value: null;
835
924
  raw: 'null' | null;
925
+ parent?: Node;
836
926
  }
837
927
 
838
928
  export interface NumericLiteral extends Span {
839
929
  type: 'Literal';
840
930
  value: number;
841
931
  raw: string | null;
932
+ parent?: Node;
842
933
  }
843
934
 
844
935
  export interface StringLiteral extends Span {
845
936
  type: 'Literal';
846
937
  value: string;
847
938
  raw: string | null;
939
+ parent?: Node;
848
940
  }
849
941
 
850
942
  export interface BigIntLiteral extends Span {
@@ -852,6 +944,7 @@ export interface BigIntLiteral extends Span {
852
944
  value: bigint;
853
945
  raw: string | null;
854
946
  bigint: string;
947
+ parent?: Node;
855
948
  }
856
949
 
857
950
  export interface RegExpLiteral extends Span {
@@ -859,6 +952,7 @@ export interface RegExpLiteral extends Span {
859
952
  value: RegExp | null;
860
953
  raw: string | null;
861
954
  regex: { pattern: string; flags: string };
955
+ parent?: Node;
862
956
  }
863
957
 
864
958
  export interface JSXElement extends Span {
@@ -866,6 +960,7 @@ export interface JSXElement extends Span {
866
960
  openingElement: JSXOpeningElement;
867
961
  children: Array<JSXChild>;
868
962
  closingElement: JSXClosingElement | null;
963
+ parent?: Node;
869
964
  }
870
965
 
871
966
  export interface JSXOpeningElement extends Span {
@@ -874,11 +969,13 @@ export interface JSXOpeningElement extends Span {
874
969
  typeArguments?: TSTypeParameterInstantiation | null;
875
970
  attributes: Array<JSXAttributeItem>;
876
971
  selfClosing: boolean;
972
+ parent?: Node;
877
973
  }
878
974
 
879
975
  export interface JSXClosingElement extends Span {
880
976
  type: 'JSXClosingElement';
881
977
  name: JSXElementName;
978
+ parent?: Node;
882
979
  }
883
980
 
884
981
  export interface JSXFragment extends Span {
@@ -886,16 +983,19 @@ export interface JSXFragment extends Span {
886
983
  openingFragment: JSXOpeningFragment;
887
984
  children: Array<JSXChild>;
888
985
  closingFragment: JSXClosingFragment;
986
+ parent?: Node;
889
987
  }
890
988
 
891
989
  export interface JSXOpeningFragment extends Span {
892
990
  type: 'JSXOpeningFragment';
893
991
  attributes?: [];
894
992
  selfClosing?: false;
993
+ parent?: Node;
895
994
  }
896
995
 
897
996
  export interface JSXClosingFragment extends Span {
898
997
  type: 'JSXClosingFragment';
998
+ parent?: Node;
899
999
  }
900
1000
 
901
1001
  export type JSXElementName = JSXIdentifier | JSXNamespacedName | JSXMemberExpression;
@@ -904,12 +1004,14 @@ export interface JSXNamespacedName extends Span {
904
1004
  type: 'JSXNamespacedName';
905
1005
  namespace: JSXIdentifier;
906
1006
  name: JSXIdentifier;
1007
+ parent?: Node;
907
1008
  }
908
1009
 
909
1010
  export interface JSXMemberExpression extends Span {
910
1011
  type: 'JSXMemberExpression';
911
1012
  object: JSXMemberExpressionObject;
912
1013
  property: JSXIdentifier;
1014
+ parent?: Node;
913
1015
  }
914
1016
 
915
1017
  export type JSXMemberExpressionObject = JSXIdentifier | JSXMemberExpression;
@@ -917,12 +1019,14 @@ export type JSXMemberExpressionObject = JSXIdentifier | JSXMemberExpression;
917
1019
  export interface JSXExpressionContainer extends Span {
918
1020
  type: 'JSXExpressionContainer';
919
1021
  expression: JSXExpression;
1022
+ parent?: Node;
920
1023
  }
921
1024
 
922
1025
  export type JSXExpression = JSXEmptyExpression | Expression;
923
1026
 
924
1027
  export interface JSXEmptyExpression extends Span {
925
1028
  type: 'JSXEmptyExpression';
1029
+ parent?: Node;
926
1030
  }
927
1031
 
928
1032
  export type JSXAttributeItem = JSXAttribute | JSXSpreadAttribute;
@@ -931,11 +1035,13 @@ export interface JSXAttribute extends Span {
931
1035
  type: 'JSXAttribute';
932
1036
  name: JSXAttributeName;
933
1037
  value: JSXAttributeValue | null;
1038
+ parent?: Node;
934
1039
  }
935
1040
 
936
1041
  export interface JSXSpreadAttribute extends Span {
937
1042
  type: 'JSXSpreadAttribute';
938
1043
  argument: Expression;
1044
+ parent?: Node;
939
1045
  }
940
1046
 
941
1047
  export type JSXAttributeName = JSXIdentifier | JSXNamespacedName;
@@ -945,6 +1051,7 @@ export type JSXAttributeValue = StringLiteral | JSXExpressionContainer | JSXElem
945
1051
  export interface JSXIdentifier extends Span {
946
1052
  type: 'JSXIdentifier';
947
1053
  name: string;
1054
+ parent?: Node;
948
1055
  }
949
1056
 
950
1057
  export type JSXChild = JSXText | JSXElement | JSXFragment | JSXExpressionContainer | JSXSpreadChild;
@@ -952,12 +1059,14 @@ export type JSXChild = JSXText | JSXElement | JSXFragment | JSXExpressionContain
952
1059
  export interface JSXSpreadChild extends Span {
953
1060
  type: 'JSXSpreadChild';
954
1061
  expression: Expression;
1062
+ parent?: Node;
955
1063
  }
956
1064
 
957
1065
  export interface JSXText extends Span {
958
1066
  type: 'JSXText';
959
1067
  value: string;
960
1068
  raw: string | null;
1069
+ parent?: Node;
961
1070
  }
962
1071
 
963
1072
  export interface TSThisParameter extends Span {
@@ -966,6 +1075,7 @@ export interface TSThisParameter extends Span {
966
1075
  name: 'this';
967
1076
  optional: false;
968
1077
  typeAnnotation: TSTypeAnnotation | null;
1078
+ parent?: Node;
969
1079
  }
970
1080
 
971
1081
  export interface TSEnumDeclaration extends Span {
@@ -974,11 +1084,13 @@ export interface TSEnumDeclaration extends Span {
974
1084
  body: TSEnumBody;
975
1085
  const: boolean;
976
1086
  declare: boolean;
1087
+ parent?: Node;
977
1088
  }
978
1089
 
979
1090
  export interface TSEnumBody extends Span {
980
1091
  type: 'TSEnumBody';
981
1092
  members: Array<TSEnumMember>;
1093
+ parent?: Node;
982
1094
  }
983
1095
 
984
1096
  export interface TSEnumMember extends Span {
@@ -986,6 +1098,7 @@ export interface TSEnumMember extends Span {
986
1098
  id: TSEnumMemberName;
987
1099
  initializer: Expression | null;
988
1100
  computed: boolean;
1101
+ parent?: Node;
989
1102
  }
990
1103
 
991
1104
  export type TSEnumMemberName = IdentifierName | StringLiteral | TemplateLiteral;
@@ -993,11 +1106,13 @@ export type TSEnumMemberName = IdentifierName | StringLiteral | TemplateLiteral;
993
1106
  export interface TSTypeAnnotation extends Span {
994
1107
  type: 'TSTypeAnnotation';
995
1108
  typeAnnotation: TSType;
1109
+ parent?: Node;
996
1110
  }
997
1111
 
998
1112
  export interface TSLiteralType extends Span {
999
1113
  type: 'TSLiteralType';
1000
1114
  literal: TSLiteral;
1115
+ parent?: Node;
1001
1116
  }
1002
1117
 
1003
1118
  export type TSLiteral =
@@ -1053,27 +1168,32 @@ export interface TSConditionalType extends Span {
1053
1168
  extendsType: TSType;
1054
1169
  trueType: TSType;
1055
1170
  falseType: TSType;
1171
+ parent?: Node;
1056
1172
  }
1057
1173
 
1058
1174
  export interface TSUnionType extends Span {
1059
1175
  type: 'TSUnionType';
1060
1176
  types: Array<TSType>;
1177
+ parent?: Node;
1061
1178
  }
1062
1179
 
1063
1180
  export interface TSIntersectionType extends Span {
1064
1181
  type: 'TSIntersectionType';
1065
1182
  types: Array<TSType>;
1183
+ parent?: Node;
1066
1184
  }
1067
1185
 
1068
1186
  export interface TSParenthesizedType extends Span {
1069
1187
  type: 'TSParenthesizedType';
1070
1188
  typeAnnotation: TSType;
1189
+ parent?: Node;
1071
1190
  }
1072
1191
 
1073
1192
  export interface TSTypeOperator extends Span {
1074
1193
  type: 'TSTypeOperator';
1075
1194
  operator: TSTypeOperatorOperator;
1076
1195
  typeAnnotation: TSType;
1196
+ parent?: Node;
1077
1197
  }
1078
1198
 
1079
1199
  export type TSTypeOperatorOperator = 'keyof' | 'unique' | 'readonly';
@@ -1081,17 +1201,20 @@ export type TSTypeOperatorOperator = 'keyof' | 'unique' | 'readonly';
1081
1201
  export interface TSArrayType extends Span {
1082
1202
  type: 'TSArrayType';
1083
1203
  elementType: TSType;
1204
+ parent?: Node;
1084
1205
  }
1085
1206
 
1086
1207
  export interface TSIndexedAccessType extends Span {
1087
1208
  type: 'TSIndexedAccessType';
1088
1209
  objectType: TSType;
1089
1210
  indexType: TSType;
1211
+ parent?: Node;
1090
1212
  }
1091
1213
 
1092
1214
  export interface TSTupleType extends Span {
1093
1215
  type: 'TSTupleType';
1094
1216
  elementTypes: Array<TSTupleElement>;
1217
+ parent?: Node;
1095
1218
  }
1096
1219
 
1097
1220
  export interface TSNamedTupleMember extends Span {
@@ -1099,80 +1222,98 @@ export interface TSNamedTupleMember extends Span {
1099
1222
  label: IdentifierName;
1100
1223
  elementType: TSTupleElement;
1101
1224
  optional: boolean;
1225
+ parent?: Node;
1102
1226
  }
1103
1227
 
1104
1228
  export interface TSOptionalType extends Span {
1105
1229
  type: 'TSOptionalType';
1106
1230
  typeAnnotation: TSType;
1231
+ parent?: Node;
1107
1232
  }
1108
1233
 
1109
1234
  export interface TSRestType extends Span {
1110
1235
  type: 'TSRestType';
1111
1236
  typeAnnotation: TSType;
1237
+ parent?: Node;
1112
1238
  }
1113
1239
 
1114
1240
  export type TSTupleElement = TSOptionalType | TSRestType | TSType;
1115
1241
 
1116
1242
  export interface TSAnyKeyword extends Span {
1117
1243
  type: 'TSAnyKeyword';
1244
+ parent?: Node;
1118
1245
  }
1119
1246
 
1120
1247
  export interface TSStringKeyword extends Span {
1121
1248
  type: 'TSStringKeyword';
1249
+ parent?: Node;
1122
1250
  }
1123
1251
 
1124
1252
  export interface TSBooleanKeyword extends Span {
1125
1253
  type: 'TSBooleanKeyword';
1254
+ parent?: Node;
1126
1255
  }
1127
1256
 
1128
1257
  export interface TSNumberKeyword extends Span {
1129
1258
  type: 'TSNumberKeyword';
1259
+ parent?: Node;
1130
1260
  }
1131
1261
 
1132
1262
  export interface TSNeverKeyword extends Span {
1133
1263
  type: 'TSNeverKeyword';
1264
+ parent?: Node;
1134
1265
  }
1135
1266
 
1136
1267
  export interface TSIntrinsicKeyword extends Span {
1137
1268
  type: 'TSIntrinsicKeyword';
1269
+ parent?: Node;
1138
1270
  }
1139
1271
 
1140
1272
  export interface TSUnknownKeyword extends Span {
1141
1273
  type: 'TSUnknownKeyword';
1274
+ parent?: Node;
1142
1275
  }
1143
1276
 
1144
1277
  export interface TSNullKeyword extends Span {
1145
1278
  type: 'TSNullKeyword';
1279
+ parent?: Node;
1146
1280
  }
1147
1281
 
1148
1282
  export interface TSUndefinedKeyword extends Span {
1149
1283
  type: 'TSUndefinedKeyword';
1284
+ parent?: Node;
1150
1285
  }
1151
1286
 
1152
1287
  export interface TSVoidKeyword extends Span {
1153
1288
  type: 'TSVoidKeyword';
1289
+ parent?: Node;
1154
1290
  }
1155
1291
 
1156
1292
  export interface TSSymbolKeyword extends Span {
1157
1293
  type: 'TSSymbolKeyword';
1294
+ parent?: Node;
1158
1295
  }
1159
1296
 
1160
1297
  export interface TSThisType extends Span {
1161
1298
  type: 'TSThisType';
1299
+ parent?: Node;
1162
1300
  }
1163
1301
 
1164
1302
  export interface TSObjectKeyword extends Span {
1165
1303
  type: 'TSObjectKeyword';
1304
+ parent?: Node;
1166
1305
  }
1167
1306
 
1168
1307
  export interface TSBigIntKeyword extends Span {
1169
1308
  type: 'TSBigIntKeyword';
1309
+ parent?: Node;
1170
1310
  }
1171
1311
 
1172
1312
  export interface TSTypeReference extends Span {
1173
1313
  type: 'TSTypeReference';
1174
1314
  typeName: TSTypeName;
1175
1315
  typeArguments: TSTypeParameterInstantiation | null;
1316
+ parent?: Node;
1176
1317
  }
1177
1318
 
1178
1319
  export type TSTypeName = IdentifierReference | TSQualifiedName | ThisExpression;
@@ -1181,11 +1322,13 @@ export interface TSQualifiedName extends Span {
1181
1322
  type: 'TSQualifiedName';
1182
1323
  left: TSTypeName;
1183
1324
  right: IdentifierName;
1325
+ parent?: Node;
1184
1326
  }
1185
1327
 
1186
1328
  export interface TSTypeParameterInstantiation extends Span {
1187
1329
  type: 'TSTypeParameterInstantiation';
1188
1330
  params: Array<TSType>;
1331
+ parent?: Node;
1189
1332
  }
1190
1333
 
1191
1334
  export interface TSTypeParameter extends Span {
@@ -1196,11 +1339,13 @@ export interface TSTypeParameter extends Span {
1196
1339
  in: boolean;
1197
1340
  out: boolean;
1198
1341
  const: boolean;
1342
+ parent?: Node;
1199
1343
  }
1200
1344
 
1201
1345
  export interface TSTypeParameterDeclaration extends Span {
1202
1346
  type: 'TSTypeParameterDeclaration';
1203
1347
  params: Array<TSTypeParameter>;
1348
+ parent?: Node;
1204
1349
  }
1205
1350
 
1206
1351
  export interface TSTypeAliasDeclaration extends Span {
@@ -1209,6 +1354,7 @@ export interface TSTypeAliasDeclaration extends Span {
1209
1354
  typeParameters: TSTypeParameterDeclaration | null;
1210
1355
  typeAnnotation: TSType;
1211
1356
  declare: boolean;
1357
+ parent?: Node;
1212
1358
  }
1213
1359
 
1214
1360
  export type TSAccessibility = 'private' | 'protected' | 'public';
@@ -1217,6 +1363,7 @@ export interface TSClassImplements extends Span {
1217
1363
  type: 'TSClassImplements';
1218
1364
  expression: IdentifierReference | ThisExpression | MemberExpression;
1219
1365
  typeArguments: TSTypeParameterInstantiation | null;
1366
+ parent?: Node;
1220
1367
  }
1221
1368
 
1222
1369
  export interface TSInterfaceDeclaration extends Span {
@@ -1226,11 +1373,13 @@ export interface TSInterfaceDeclaration extends Span {
1226
1373
  extends: Array<TSInterfaceHeritage>;
1227
1374
  body: TSInterfaceBody;
1228
1375
  declare: boolean;
1376
+ parent?: Node;
1229
1377
  }
1230
1378
 
1231
1379
  export interface TSInterfaceBody extends Span {
1232
1380
  type: 'TSInterfaceBody';
1233
1381
  body: Array<TSSignature>;
1382
+ parent?: Node;
1234
1383
  }
1235
1384
 
1236
1385
  export interface TSPropertySignature extends Span {
@@ -1242,6 +1391,7 @@ export interface TSPropertySignature extends Span {
1242
1391
  typeAnnotation: TSTypeAnnotation | null;
1243
1392
  accessibility: null;
1244
1393
  static: false;
1394
+ parent?: Node;
1245
1395
  }
1246
1396
 
1247
1397
  export type TSSignature =
@@ -1258,6 +1408,7 @@ export interface TSIndexSignature extends Span {
1258
1408
  readonly: boolean;
1259
1409
  static: boolean;
1260
1410
  accessibility: null;
1411
+ parent?: Node;
1261
1412
  }
1262
1413
 
1263
1414
  export interface TSCallSignatureDeclaration extends Span {
@@ -1265,6 +1416,7 @@ export interface TSCallSignatureDeclaration extends Span {
1265
1416
  typeParameters: TSTypeParameterDeclaration | null;
1266
1417
  params: ParamPattern[];
1267
1418
  returnType: TSTypeAnnotation | null;
1419
+ parent?: Node;
1268
1420
  }
1269
1421
 
1270
1422
  export type TSMethodSignatureKind = 'method' | 'get' | 'set';
@@ -1281,6 +1433,7 @@ export interface TSMethodSignature extends Span {
1281
1433
  accessibility: null;
1282
1434
  readonly: false;
1283
1435
  static: false;
1436
+ parent?: Node;
1284
1437
  }
1285
1438
 
1286
1439
  export interface TSConstructSignatureDeclaration extends Span {
@@ -1288,6 +1441,7 @@ export interface TSConstructSignatureDeclaration extends Span {
1288
1441
  typeParameters: TSTypeParameterDeclaration | null;
1289
1442
  params: ParamPattern[];
1290
1443
  returnType: TSTypeAnnotation | null;
1444
+ parent?: Node;
1291
1445
  }
1292
1446
 
1293
1447
  export interface TSIndexSignatureName extends Span {
@@ -1296,12 +1450,14 @@ export interface TSIndexSignatureName extends Span {
1296
1450
  name: string;
1297
1451
  optional: false;
1298
1452
  typeAnnotation: TSTypeAnnotation;
1453
+ parent?: Node;
1299
1454
  }
1300
1455
 
1301
1456
  export interface TSInterfaceHeritage extends Span {
1302
1457
  type: 'TSInterfaceHeritage';
1303
1458
  expression: Expression;
1304
1459
  typeArguments: TSTypeParameterInstantiation | null;
1460
+ parent?: Node;
1305
1461
  }
1306
1462
 
1307
1463
  export interface TSTypePredicate extends Span {
@@ -1309,6 +1465,7 @@ export interface TSTypePredicate extends Span {
1309
1465
  parameterName: TSTypePredicateName;
1310
1466
  asserts: boolean;
1311
1467
  typeAnnotation: TSTypeAnnotation | null;
1468
+ parent?: Node;
1312
1469
  }
1313
1470
 
1314
1471
  export type TSTypePredicateName = IdentifierName | TSThisType;
@@ -1320,6 +1477,7 @@ export interface TSModuleDeclaration extends Span {
1320
1477
  kind: TSModuleDeclarationKind;
1321
1478
  declare: boolean;
1322
1479
  global: boolean;
1480
+ parent?: Node;
1323
1481
  }
1324
1482
 
1325
1483
  export type TSModuleDeclarationKind = 'global' | 'module' | 'namespace';
@@ -1327,22 +1485,26 @@ export type TSModuleDeclarationKind = 'global' | 'module' | 'namespace';
1327
1485
  export interface TSModuleBlock extends Span {
1328
1486
  type: 'TSModuleBlock';
1329
1487
  body: Array<Directive | Statement>;
1488
+ parent?: Node;
1330
1489
  }
1331
1490
 
1332
1491
  export interface TSTypeLiteral extends Span {
1333
1492
  type: 'TSTypeLiteral';
1334
1493
  members: Array<TSSignature>;
1494
+ parent?: Node;
1335
1495
  }
1336
1496
 
1337
1497
  export interface TSInferType extends Span {
1338
1498
  type: 'TSInferType';
1339
1499
  typeParameter: TSTypeParameter;
1500
+ parent?: Node;
1340
1501
  }
1341
1502
 
1342
1503
  export interface TSTypeQuery extends Span {
1343
1504
  type: 'TSTypeQuery';
1344
1505
  exprName: TSTypeQueryExprName;
1345
1506
  typeArguments: TSTypeParameterInstantiation | null;
1507
+ parent?: Node;
1346
1508
  }
1347
1509
 
1348
1510
  export type TSTypeQueryExprName = TSImportType | TSTypeName;
@@ -1353,6 +1515,7 @@ export interface TSImportType extends Span {
1353
1515
  options: ObjectExpression | null;
1354
1516
  qualifier: TSImportTypeQualifier | null;
1355
1517
  typeArguments: TSTypeParameterInstantiation | null;
1518
+ parent?: Node;
1356
1519
  }
1357
1520
 
1358
1521
  export type TSImportTypeQualifier = IdentifierName | TSImportTypeQualifiedName;
@@ -1361,6 +1524,7 @@ export interface TSImportTypeQualifiedName extends Span {
1361
1524
  type: 'TSQualifiedName';
1362
1525
  left: TSImportTypeQualifier;
1363
1526
  right: IdentifierName;
1527
+ parent?: Node;
1364
1528
  }
1365
1529
 
1366
1530
  export interface TSFunctionType extends Span {
@@ -1368,6 +1532,7 @@ export interface TSFunctionType extends Span {
1368
1532
  typeParameters: TSTypeParameterDeclaration | null;
1369
1533
  params: ParamPattern[];
1370
1534
  returnType: TSTypeAnnotation;
1535
+ parent?: Node;
1371
1536
  }
1372
1537
 
1373
1538
  export interface TSConstructorType extends Span {
@@ -1376,6 +1541,7 @@ export interface TSConstructorType extends Span {
1376
1541
  typeParameters: TSTypeParameterDeclaration | null;
1377
1542
  params: ParamPattern[];
1378
1543
  returnType: TSTypeAnnotation;
1544
+ parent?: Node;
1379
1545
  }
1380
1546
 
1381
1547
  export interface TSMappedType extends Span {
@@ -1386,6 +1552,7 @@ export interface TSMappedType extends Span {
1386
1552
  typeAnnotation: TSType | null;
1387
1553
  optional: TSMappedTypeModifierOperator | false;
1388
1554
  readonly: TSMappedTypeModifierOperator | null;
1555
+ parent?: Node;
1389
1556
  }
1390
1557
 
1391
1558
  export type TSMappedTypeModifierOperator = true | '+' | '-';
@@ -1394,24 +1561,28 @@ export interface TSTemplateLiteralType extends Span {
1394
1561
  type: 'TSTemplateLiteralType';
1395
1562
  quasis: Array<TemplateElement>;
1396
1563
  types: Array<TSType>;
1564
+ parent?: Node;
1397
1565
  }
1398
1566
 
1399
1567
  export interface TSAsExpression extends Span {
1400
1568
  type: 'TSAsExpression';
1401
1569
  expression: Expression;
1402
1570
  typeAnnotation: TSType;
1571
+ parent?: Node;
1403
1572
  }
1404
1573
 
1405
1574
  export interface TSSatisfiesExpression extends Span {
1406
1575
  type: 'TSSatisfiesExpression';
1407
1576
  expression: Expression;
1408
1577
  typeAnnotation: TSType;
1578
+ parent?: Node;
1409
1579
  }
1410
1580
 
1411
1581
  export interface TSTypeAssertion extends Span {
1412
1582
  type: 'TSTypeAssertion';
1413
1583
  typeAnnotation: TSType;
1414
1584
  expression: Expression;
1585
+ parent?: Node;
1415
1586
  }
1416
1587
 
1417
1588
  export interface TSImportEqualsDeclaration extends Span {
@@ -1419,6 +1590,7 @@ export interface TSImportEqualsDeclaration extends Span {
1419
1590
  id: BindingIdentifier;
1420
1591
  moduleReference: TSModuleReference;
1421
1592
  importKind: ImportOrExportKind;
1593
+ parent?: Node;
1422
1594
  }
1423
1595
 
1424
1596
  export type TSModuleReference = TSExternalModuleReference | TSTypeName;
@@ -1426,32 +1598,38 @@ export type TSModuleReference = TSExternalModuleReference | TSTypeName;
1426
1598
  export interface TSExternalModuleReference extends Span {
1427
1599
  type: 'TSExternalModuleReference';
1428
1600
  expression: StringLiteral;
1601
+ parent?: Node;
1429
1602
  }
1430
1603
 
1431
1604
  export interface TSNonNullExpression extends Span {
1432
1605
  type: 'TSNonNullExpression';
1433
1606
  expression: Expression;
1607
+ parent?: Node;
1434
1608
  }
1435
1609
 
1436
1610
  export interface Decorator extends Span {
1437
1611
  type: 'Decorator';
1438
1612
  expression: Expression;
1613
+ parent?: Node;
1439
1614
  }
1440
1615
 
1441
1616
  export interface TSExportAssignment extends Span {
1442
1617
  type: 'TSExportAssignment';
1443
1618
  expression: Expression;
1619
+ parent?: Node;
1444
1620
  }
1445
1621
 
1446
1622
  export interface TSNamespaceExportDeclaration extends Span {
1447
1623
  type: 'TSNamespaceExportDeclaration';
1448
1624
  id: IdentifierName;
1625
+ parent?: Node;
1449
1626
  }
1450
1627
 
1451
1628
  export interface TSInstantiationExpression extends Span {
1452
1629
  type: 'TSInstantiationExpression';
1453
1630
  expression: Expression;
1454
1631
  typeArguments: TSTypeParameterInstantiation;
1632
+ parent?: Node;
1455
1633
  }
1456
1634
 
1457
1635
  export type ImportOrExportKind = 'value' | 'type';
@@ -1460,16 +1638,19 @@ export interface JSDocNullableType extends Span {
1460
1638
  type: 'TSJSDocNullableType';
1461
1639
  typeAnnotation: TSType;
1462
1640
  postfix: boolean;
1641
+ parent?: Node;
1463
1642
  }
1464
1643
 
1465
1644
  export interface JSDocNonNullableType extends Span {
1466
1645
  type: 'TSJSDocNonNullableType';
1467
1646
  typeAnnotation: TSType;
1468
1647
  postfix: boolean;
1648
+ parent?: Node;
1469
1649
  }
1470
1650
 
1471
1651
  export interface JSDocUnknownType extends Span {
1472
1652
  type: 'TSJSDocUnknownType';
1653
+ parent?: Node;
1473
1654
  }
1474
1655
 
1475
1656
  export type AssignmentOperator =