hermes-parser 0.28.1 → 0.29.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 (41) hide show
  1. package/dist/HermesASTAdapter.js +1 -2
  2. package/dist/HermesASTAdapter.js.flow +2 -5
  3. package/dist/HermesParserNodeDeserializers.js +3 -2
  4. package/dist/HermesParserWASM.js +1 -1
  5. package/dist/HermesToESTreeAdapter.js +12 -0
  6. package/dist/HermesToESTreeAdapter.js.flow +10 -0
  7. package/dist/babel/TransformESTreeToBabel.js.flow +21 -19
  8. package/dist/estree/StripComponentSyntax.js.flow +6 -5
  9. package/dist/estree/TransformMatchSyntax.js +4 -15
  10. package/dist/estree/TransformMatchSyntax.js.flow +18 -19
  11. package/dist/generated/ESTreeVisitorKeys.js +1 -1
  12. package/dist/generated/ParserVisitorKeys.js +1 -1
  13. package/dist/index.js.flow +1 -1
  14. package/dist/src/HermesASTAdapter.js +192 -0
  15. package/dist/src/HermesParser.js +108 -0
  16. package/dist/src/HermesParserDecodeUTF8String.js +68 -0
  17. package/dist/src/HermesParserDeserializer.js +243 -0
  18. package/dist/src/HermesParserNodeDeserializers.js +2473 -0
  19. package/dist/src/HermesToESTreeAdapter.js +453 -0
  20. package/dist/src/ParserOptions.js +18 -0
  21. package/dist/src/babel/TransformESTreeToBabel.js +1104 -0
  22. package/dist/src/estree/StripComponentSyntax.js +788 -0
  23. package/dist/src/estree/StripFlowTypes.js +175 -0
  24. package/dist/src/estree/StripFlowTypesForBabel.js +215 -0
  25. package/dist/src/estree/TransformMatchSyntax.js +1005 -0
  26. package/dist/src/generated/ESTreeVisitorKeys.js +220 -0
  27. package/dist/src/generated/ParserVisitorKeys.js +790 -0
  28. package/dist/src/getModuleDocblock.js +112 -0
  29. package/dist/src/index.js +153 -0
  30. package/dist/src/transform/SimpleTransform.js +120 -0
  31. package/dist/src/transform/astArrayMutationHelpers.js +62 -0
  32. package/dist/src/transform/astNodeMutationHelpers.js +195 -0
  33. package/dist/src/traverse/SimpleTraverser.js +137 -0
  34. package/dist/src/traverse/getVisitorKeys.js +37 -0
  35. package/dist/src/utils/Builders.js +191 -0
  36. package/dist/src/utils/GenID.js +41 -0
  37. package/dist/src/utils/createSyntaxError.js +25 -0
  38. package/dist/src/utils/mutateESTreeASTForPrettier.js +127 -0
  39. package/dist/utils/Builders.js +17 -0
  40. package/dist/utils/Builders.js.flow +20 -0
  41. package/package.json +2 -2
@@ -0,0 +1,790 @@
1
+ /**
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ *
7
+ *
8
+ * @format
9
+ * @generated
10
+ */
11
+
12
+ /*
13
+ * !!! GENERATED FILE !!!
14
+ *
15
+ * Any manual changes to this file will be overwritten. To regenerate run `yarn build`.
16
+ */
17
+ // lint directives to let us do some basic validation of generated files
18
+
19
+ /* eslint no-undef: 'error', no-unused-vars: ['error', {vars: "local"}], no-redeclare: 'error' */
20
+
21
+ /* global $NonMaybeType, Partial, $ReadOnly, $ReadOnlyArray, $FlowFixMe */
22
+ 'use strict';
23
+
24
+ Object.defineProperty(exports, "__esModule", {
25
+ value: true
26
+ });
27
+ exports.NODE_LIST_CHILD = exports.NODE_CHILD = exports.HERMES_AST_VISITOR_KEYS = void 0;
28
+ const NODE_CHILD = 'Node';
29
+ exports.NODE_CHILD = NODE_CHILD;
30
+ const NODE_LIST_CHILD = 'NodeList';
31
+ exports.NODE_LIST_CHILD = NODE_LIST_CHILD;
32
+ const HERMES_AST_VISITOR_KEYS = {
33
+ AnyTypeAnnotation: {},
34
+ ArrayExpression: {
35
+ elements: 'NodeList'
36
+ },
37
+ ArrayPattern: {
38
+ elements: 'NodeList',
39
+ typeAnnotation: 'Node'
40
+ },
41
+ ArrayTypeAnnotation: {
42
+ elementType: 'Node'
43
+ },
44
+ ArrowFunctionExpression: {
45
+ id: 'Node',
46
+ params: 'NodeList',
47
+ body: 'Node',
48
+ typeParameters: 'Node',
49
+ returnType: 'Node',
50
+ predicate: 'Node'
51
+ },
52
+ AsConstExpression: {
53
+ expression: 'Node'
54
+ },
55
+ AsExpression: {
56
+ expression: 'Node',
57
+ typeAnnotation: 'Node'
58
+ },
59
+ AssignmentExpression: {
60
+ left: 'Node',
61
+ right: 'Node'
62
+ },
63
+ AssignmentPattern: {
64
+ left: 'Node',
65
+ right: 'Node'
66
+ },
67
+ AwaitExpression: {
68
+ argument: 'Node'
69
+ },
70
+ BigIntLiteral: {},
71
+ BigIntLiteralTypeAnnotation: {},
72
+ BigIntTypeAnnotation: {},
73
+ BinaryExpression: {
74
+ left: 'Node',
75
+ right: 'Node'
76
+ },
77
+ BlockStatement: {
78
+ body: 'NodeList'
79
+ },
80
+ BooleanLiteral: {},
81
+ BooleanLiteralTypeAnnotation: {},
82
+ BooleanTypeAnnotation: {},
83
+ BreakStatement: {
84
+ label: 'Node'
85
+ },
86
+ CallExpression: {
87
+ callee: 'Node',
88
+ typeArguments: 'Node',
89
+ arguments: 'NodeList'
90
+ },
91
+ CatchClause: {
92
+ param: 'Node',
93
+ body: 'Node'
94
+ },
95
+ ChainExpression: {
96
+ expression: 'Node'
97
+ },
98
+ ClassBody: {
99
+ body: 'NodeList'
100
+ },
101
+ ClassDeclaration: {
102
+ id: 'Node',
103
+ typeParameters: 'Node',
104
+ superClass: 'Node',
105
+ superTypeParameters: 'Node',
106
+ implements: 'NodeList',
107
+ decorators: 'NodeList',
108
+ body: 'Node'
109
+ },
110
+ ClassExpression: {
111
+ id: 'Node',
112
+ typeParameters: 'Node',
113
+ superClass: 'Node',
114
+ superTypeParameters: 'Node',
115
+ implements: 'NodeList',
116
+ decorators: 'NodeList',
117
+ body: 'Node'
118
+ },
119
+ ClassImplements: {
120
+ id: 'Node',
121
+ typeParameters: 'Node'
122
+ },
123
+ ComponentDeclaration: {
124
+ id: 'Node',
125
+ params: 'NodeList',
126
+ body: 'Node',
127
+ typeParameters: 'Node',
128
+ rendersType: 'Node'
129
+ },
130
+ ComponentParameter: {
131
+ name: 'Node',
132
+ local: 'Node'
133
+ },
134
+ ComponentTypeAnnotation: {
135
+ params: 'NodeList',
136
+ rest: 'Node',
137
+ typeParameters: 'Node',
138
+ rendersType: 'Node'
139
+ },
140
+ ComponentTypeParameter: {
141
+ name: 'Node',
142
+ typeAnnotation: 'Node'
143
+ },
144
+ ConditionalExpression: {
145
+ test: 'Node',
146
+ alternate: 'Node',
147
+ consequent: 'Node'
148
+ },
149
+ ConditionalTypeAnnotation: {
150
+ checkType: 'Node',
151
+ extendsType: 'Node',
152
+ trueType: 'Node',
153
+ falseType: 'Node'
154
+ },
155
+ ContinueStatement: {
156
+ label: 'Node'
157
+ },
158
+ DebuggerStatement: {},
159
+ DeclareClass: {
160
+ id: 'Node',
161
+ typeParameters: 'Node',
162
+ extends: 'NodeList',
163
+ implements: 'NodeList',
164
+ mixins: 'NodeList',
165
+ body: 'Node'
166
+ },
167
+ DeclareComponent: {
168
+ id: 'Node',
169
+ params: 'NodeList',
170
+ rest: 'Node',
171
+ typeParameters: 'Node',
172
+ rendersType: 'Node'
173
+ },
174
+ DeclaredPredicate: {
175
+ value: 'Node'
176
+ },
177
+ DeclareEnum: {
178
+ id: 'Node',
179
+ body: 'Node'
180
+ },
181
+ DeclareExportAllDeclaration: {
182
+ source: 'Node'
183
+ },
184
+ DeclareExportDeclaration: {
185
+ declaration: 'Node',
186
+ specifiers: 'NodeList',
187
+ source: 'Node'
188
+ },
189
+ DeclareFunction: {
190
+ id: 'Node',
191
+ predicate: 'Node'
192
+ },
193
+ DeclareHook: {
194
+ id: 'Node'
195
+ },
196
+ DeclareInterface: {
197
+ id: 'Node',
198
+ typeParameters: 'Node',
199
+ extends: 'NodeList',
200
+ body: 'Node'
201
+ },
202
+ DeclareModule: {
203
+ id: 'Node',
204
+ body: 'Node'
205
+ },
206
+ DeclareModuleExports: {
207
+ typeAnnotation: 'Node'
208
+ },
209
+ DeclareNamespace: {
210
+ id: 'Node',
211
+ body: 'Node'
212
+ },
213
+ DeclareOpaqueType: {
214
+ id: 'Node',
215
+ typeParameters: 'Node',
216
+ impltype: 'Node',
217
+ supertype: 'Node'
218
+ },
219
+ DeclareTypeAlias: {
220
+ id: 'Node',
221
+ typeParameters: 'Node',
222
+ right: 'Node'
223
+ },
224
+ DeclareVariable: {
225
+ id: 'Node'
226
+ },
227
+ DoWhileStatement: {
228
+ body: 'Node',
229
+ test: 'Node'
230
+ },
231
+ EmptyStatement: {},
232
+ EmptyTypeAnnotation: {},
233
+ EnumBigIntBody: {
234
+ members: 'NodeList'
235
+ },
236
+ EnumBigIntMember: {
237
+ id: 'Node',
238
+ init: 'Node'
239
+ },
240
+ EnumBooleanBody: {
241
+ members: 'NodeList'
242
+ },
243
+ EnumBooleanMember: {
244
+ id: 'Node',
245
+ init: 'Node'
246
+ },
247
+ EnumDeclaration: {
248
+ id: 'Node',
249
+ body: 'Node'
250
+ },
251
+ EnumDefaultedMember: {
252
+ id: 'Node'
253
+ },
254
+ EnumNumberBody: {
255
+ members: 'NodeList'
256
+ },
257
+ EnumNumberMember: {
258
+ id: 'Node',
259
+ init: 'Node'
260
+ },
261
+ EnumStringBody: {
262
+ members: 'NodeList'
263
+ },
264
+ EnumStringMember: {
265
+ id: 'Node',
266
+ init: 'Node'
267
+ },
268
+ EnumSymbolBody: {
269
+ members: 'NodeList'
270
+ },
271
+ ExistsTypeAnnotation: {},
272
+ ExportAllDeclaration: {
273
+ exported: 'Node',
274
+ source: 'Node'
275
+ },
276
+ ExportDefaultDeclaration: {
277
+ declaration: 'Node'
278
+ },
279
+ ExportNamedDeclaration: {
280
+ declaration: 'Node',
281
+ specifiers: 'NodeList',
282
+ source: 'Node'
283
+ },
284
+ ExportSpecifier: {
285
+ exported: 'Node',
286
+ local: 'Node'
287
+ },
288
+ ExpressionStatement: {
289
+ expression: 'Node'
290
+ },
291
+ ForInStatement: {
292
+ left: 'Node',
293
+ right: 'Node',
294
+ body: 'Node'
295
+ },
296
+ ForOfStatement: {
297
+ left: 'Node',
298
+ right: 'Node',
299
+ body: 'Node'
300
+ },
301
+ ForStatement: {
302
+ init: 'Node',
303
+ test: 'Node',
304
+ update: 'Node',
305
+ body: 'Node'
306
+ },
307
+ FunctionDeclaration: {
308
+ id: 'Node',
309
+ params: 'NodeList',
310
+ body: 'Node',
311
+ typeParameters: 'Node',
312
+ returnType: 'Node',
313
+ predicate: 'Node'
314
+ },
315
+ FunctionExpression: {
316
+ id: 'Node',
317
+ params: 'NodeList',
318
+ body: 'Node',
319
+ typeParameters: 'Node',
320
+ returnType: 'Node',
321
+ predicate: 'Node'
322
+ },
323
+ FunctionTypeAnnotation: {
324
+ params: 'NodeList',
325
+ this: 'Node',
326
+ returnType: 'Node',
327
+ rest: 'Node',
328
+ typeParameters: 'Node'
329
+ },
330
+ FunctionTypeParam: {
331
+ name: 'Node',
332
+ typeAnnotation: 'Node'
333
+ },
334
+ GenericTypeAnnotation: {
335
+ id: 'Node',
336
+ typeParameters: 'Node'
337
+ },
338
+ HookDeclaration: {
339
+ id: 'Node',
340
+ params: 'NodeList',
341
+ body: 'Node',
342
+ typeParameters: 'Node',
343
+ returnType: 'Node'
344
+ },
345
+ HookTypeAnnotation: {
346
+ params: 'NodeList',
347
+ returnType: 'Node',
348
+ rest: 'Node',
349
+ typeParameters: 'Node'
350
+ },
351
+ Identifier: {
352
+ typeAnnotation: 'Node'
353
+ },
354
+ IfStatement: {
355
+ test: 'Node',
356
+ consequent: 'Node',
357
+ alternate: 'Node'
358
+ },
359
+ ImportAttribute: {
360
+ key: 'Node',
361
+ value: 'Node'
362
+ },
363
+ ImportDeclaration: {
364
+ specifiers: 'NodeList',
365
+ source: 'Node',
366
+ assertions: 'NodeList'
367
+ },
368
+ ImportDefaultSpecifier: {
369
+ local: 'Node'
370
+ },
371
+ ImportExpression: {
372
+ source: 'Node',
373
+ options: 'Node'
374
+ },
375
+ ImportNamespaceSpecifier: {
376
+ local: 'Node'
377
+ },
378
+ ImportSpecifier: {
379
+ imported: 'Node',
380
+ local: 'Node'
381
+ },
382
+ IndexedAccessType: {
383
+ objectType: 'Node',
384
+ indexType: 'Node'
385
+ },
386
+ InferredPredicate: {},
387
+ InferTypeAnnotation: {
388
+ typeParameter: 'Node'
389
+ },
390
+ InterfaceDeclaration: {
391
+ id: 'Node',
392
+ typeParameters: 'Node',
393
+ extends: 'NodeList',
394
+ body: 'Node'
395
+ },
396
+ InterfaceExtends: {
397
+ id: 'Node',
398
+ typeParameters: 'Node'
399
+ },
400
+ InterfaceTypeAnnotation: {
401
+ extends: 'NodeList',
402
+ body: 'Node'
403
+ },
404
+ IntersectionTypeAnnotation: {
405
+ types: 'NodeList'
406
+ },
407
+ JSXAttribute: {
408
+ name: 'Node',
409
+ value: 'Node'
410
+ },
411
+ JSXClosingElement: {
412
+ name: 'Node'
413
+ },
414
+ JSXClosingFragment: {},
415
+ JSXElement: {
416
+ openingElement: 'Node',
417
+ children: 'NodeList',
418
+ closingElement: 'Node'
419
+ },
420
+ JSXEmptyExpression: {},
421
+ JSXExpressionContainer: {
422
+ expression: 'Node'
423
+ },
424
+ JSXFragment: {
425
+ openingFragment: 'Node',
426
+ children: 'NodeList',
427
+ closingFragment: 'Node'
428
+ },
429
+ JSXIdentifier: {},
430
+ JSXMemberExpression: {
431
+ object: 'Node',
432
+ property: 'Node'
433
+ },
434
+ JSXNamespacedName: {
435
+ namespace: 'Node',
436
+ name: 'Node'
437
+ },
438
+ JSXOpeningElement: {
439
+ name: 'Node',
440
+ attributes: 'NodeList',
441
+ typeArguments: 'Node'
442
+ },
443
+ JSXOpeningFragment: {},
444
+ JSXSpreadAttribute: {
445
+ argument: 'Node'
446
+ },
447
+ JSXSpreadChild: {
448
+ expression: 'Node'
449
+ },
450
+ JSXText: {},
451
+ KeyofTypeAnnotation: {
452
+ argument: 'Node'
453
+ },
454
+ LabeledStatement: {
455
+ label: 'Node',
456
+ body: 'Node'
457
+ },
458
+ LogicalExpression: {
459
+ left: 'Node',
460
+ right: 'Node'
461
+ },
462
+ MatchArrayPattern: {
463
+ elements: 'NodeList',
464
+ rest: 'Node'
465
+ },
466
+ MatchAsPattern: {
467
+ pattern: 'Node',
468
+ target: 'Node'
469
+ },
470
+ MatchBindingPattern: {
471
+ id: 'Node'
472
+ },
473
+ MatchExpression: {
474
+ argument: 'Node',
475
+ cases: 'NodeList'
476
+ },
477
+ MatchExpressionCase: {
478
+ pattern: 'Node',
479
+ body: 'Node',
480
+ guard: 'Node'
481
+ },
482
+ MatchIdentifierPattern: {
483
+ id: 'Node'
484
+ },
485
+ MatchLiteralPattern: {
486
+ literal: 'Node'
487
+ },
488
+ MatchMemberPattern: {
489
+ base: 'Node',
490
+ property: 'Node'
491
+ },
492
+ MatchObjectPattern: {
493
+ properties: 'NodeList',
494
+ rest: 'Node'
495
+ },
496
+ MatchObjectPatternProperty: {
497
+ key: 'Node',
498
+ pattern: 'Node'
499
+ },
500
+ MatchOrPattern: {
501
+ patterns: 'NodeList'
502
+ },
503
+ MatchRestPattern: {
504
+ argument: 'Node'
505
+ },
506
+ MatchStatement: {
507
+ argument: 'Node',
508
+ cases: 'NodeList'
509
+ },
510
+ MatchStatementCase: {
511
+ pattern: 'Node',
512
+ body: 'Node',
513
+ guard: 'Node'
514
+ },
515
+ MatchUnaryPattern: {
516
+ argument: 'Node'
517
+ },
518
+ MatchWildcardPattern: {},
519
+ MemberExpression: {
520
+ object: 'Node',
521
+ property: 'Node'
522
+ },
523
+ MetaProperty: {
524
+ meta: 'Node',
525
+ property: 'Node'
526
+ },
527
+ MethodDefinition: {
528
+ key: 'Node',
529
+ value: 'Node'
530
+ },
531
+ MixedTypeAnnotation: {},
532
+ NewExpression: {
533
+ callee: 'Node',
534
+ typeArguments: 'Node',
535
+ arguments: 'NodeList'
536
+ },
537
+ NullableTypeAnnotation: {
538
+ typeAnnotation: 'Node'
539
+ },
540
+ NullLiteral: {},
541
+ NullLiteralTypeAnnotation: {},
542
+ NumberLiteralTypeAnnotation: {},
543
+ NumberTypeAnnotation: {},
544
+ NumericLiteral: {},
545
+ ObjectExpression: {
546
+ properties: 'NodeList'
547
+ },
548
+ ObjectPattern: {
549
+ properties: 'NodeList',
550
+ typeAnnotation: 'Node'
551
+ },
552
+ ObjectTypeAnnotation: {
553
+ properties: 'NodeList',
554
+ indexers: 'NodeList',
555
+ callProperties: 'NodeList',
556
+ internalSlots: 'NodeList'
557
+ },
558
+ ObjectTypeCallProperty: {
559
+ value: 'Node'
560
+ },
561
+ ObjectTypeIndexer: {
562
+ id: 'Node',
563
+ key: 'Node',
564
+ value: 'Node',
565
+ variance: 'Node'
566
+ },
567
+ ObjectTypeInternalSlot: {
568
+ id: 'Node',
569
+ value: 'Node'
570
+ },
571
+ ObjectTypeMappedTypeProperty: {
572
+ keyTparam: 'Node',
573
+ propType: 'Node',
574
+ sourceType: 'Node',
575
+ variance: 'Node'
576
+ },
577
+ ObjectTypeProperty: {
578
+ key: 'Node',
579
+ value: 'Node',
580
+ variance: 'Node'
581
+ },
582
+ ObjectTypeSpreadProperty: {
583
+ argument: 'Node'
584
+ },
585
+ OpaqueType: {
586
+ id: 'Node',
587
+ typeParameters: 'Node',
588
+ impltype: 'Node',
589
+ supertype: 'Node'
590
+ },
591
+ OptionalIndexedAccessType: {
592
+ objectType: 'Node',
593
+ indexType: 'Node'
594
+ },
595
+ PrivateIdentifier: {},
596
+ Program: {
597
+ body: 'NodeList'
598
+ },
599
+ Property: {
600
+ key: 'Node',
601
+ value: 'Node'
602
+ },
603
+ PropertyDefinition: {
604
+ key: 'Node',
605
+ value: 'Node',
606
+ variance: 'Node',
607
+ typeAnnotation: 'Node'
608
+ },
609
+ QualifiedTypeIdentifier: {
610
+ qualification: 'Node',
611
+ id: 'Node'
612
+ },
613
+ QualifiedTypeofIdentifier: {
614
+ qualification: 'Node',
615
+ id: 'Node'
616
+ },
617
+ RegExpLiteral: {},
618
+ RestElement: {
619
+ argument: 'Node'
620
+ },
621
+ ReturnStatement: {
622
+ argument: 'Node'
623
+ },
624
+ SequenceExpression: {
625
+ expressions: 'NodeList'
626
+ },
627
+ SpreadElement: {
628
+ argument: 'Node'
629
+ },
630
+ StaticBlock: {
631
+ body: 'NodeList'
632
+ },
633
+ StringLiteral: {},
634
+ StringLiteralTypeAnnotation: {},
635
+ StringTypeAnnotation: {},
636
+ Super: {},
637
+ SwitchCase: {
638
+ test: 'Node',
639
+ consequent: 'NodeList'
640
+ },
641
+ SwitchStatement: {
642
+ discriminant: 'Node',
643
+ cases: 'NodeList'
644
+ },
645
+ SymbolTypeAnnotation: {},
646
+ TaggedTemplateExpression: {
647
+ tag: 'Node',
648
+ quasi: 'Node'
649
+ },
650
+ TemplateElement: {},
651
+ TemplateLiteral: {
652
+ quasis: 'NodeList',
653
+ expressions: 'NodeList'
654
+ },
655
+ ThisExpression: {},
656
+ ThisTypeAnnotation: {},
657
+ ThrowStatement: {
658
+ argument: 'Node'
659
+ },
660
+ TryStatement: {
661
+ block: 'Node',
662
+ handler: 'Node',
663
+ finalizer: 'Node'
664
+ },
665
+ TupleTypeAnnotation: {
666
+ types: 'NodeList'
667
+ },
668
+ TupleTypeLabeledElement: {
669
+ label: 'Node',
670
+ elementType: 'Node',
671
+ variance: 'Node'
672
+ },
673
+ TupleTypeSpreadElement: {
674
+ label: 'Node',
675
+ typeAnnotation: 'Node'
676
+ },
677
+ TypeAlias: {
678
+ id: 'Node',
679
+ typeParameters: 'Node',
680
+ right: 'Node'
681
+ },
682
+ TypeAnnotation: {
683
+ typeAnnotation: 'Node'
684
+ },
685
+ TypeCastExpression: {
686
+ expression: 'Node',
687
+ typeAnnotation: 'Node'
688
+ },
689
+ TypeofTypeAnnotation: {
690
+ argument: 'Node',
691
+ typeArguments: 'Node'
692
+ },
693
+ TypeOperator: {
694
+ typeAnnotation: 'Node'
695
+ },
696
+ TypeParameter: {
697
+ bound: 'Node',
698
+ variance: 'Node',
699
+ default: 'Node'
700
+ },
701
+ TypeParameterDeclaration: {
702
+ params: 'NodeList'
703
+ },
704
+ TypeParameterInstantiation: {
705
+ params: 'NodeList'
706
+ },
707
+ TypePredicate: {
708
+ parameterName: 'Node',
709
+ typeAnnotation: 'Node'
710
+ },
711
+ UnaryExpression: {
712
+ argument: 'Node'
713
+ },
714
+ UnionTypeAnnotation: {
715
+ types: 'NodeList'
716
+ },
717
+ UpdateExpression: {
718
+ argument: 'Node'
719
+ },
720
+ VariableDeclaration: {
721
+ declarations: 'NodeList'
722
+ },
723
+ VariableDeclarator: {
724
+ init: 'Node',
725
+ id: 'Node'
726
+ },
727
+ Variance: {},
728
+ VoidTypeAnnotation: {},
729
+ WhileStatement: {
730
+ body: 'Node',
731
+ test: 'Node'
732
+ },
733
+ WithStatement: {
734
+ object: 'Node',
735
+ body: 'Node'
736
+ },
737
+ YieldExpression: {
738
+ argument: 'Node'
739
+ },
740
+ File: {
741
+ program: 'Node'
742
+ },
743
+ ObjectProperty: {
744
+ key: 'Node',
745
+ value: 'Node'
746
+ },
747
+ ObjectMethod: {
748
+ key: 'Node',
749
+ params: 'NodeList',
750
+ body: 'Node',
751
+ returnType: 'Node',
752
+ typeParameters: 'NodeList'
753
+ },
754
+ ClassMethod: {
755
+ key: 'Node',
756
+ params: 'NodeList',
757
+ body: 'Node',
758
+ returnType: 'Node',
759
+ typeParameters: 'NodeList'
760
+ },
761
+ Import: {},
762
+ ClassProperty: {
763
+ key: 'Node',
764
+ value: 'Node',
765
+ variance: 'Node',
766
+ typeAnnotation: 'Node'
767
+ },
768
+ ClassPrivateProperty: {
769
+ key: 'Node',
770
+ value: 'Node',
771
+ variance: 'Node',
772
+ typeAnnotation: 'Node'
773
+ },
774
+ PrivateName: {
775
+ id: 'Node'
776
+ },
777
+ OptionalCallExpression: {
778
+ callee: 'Node',
779
+ typeArguments: 'Node',
780
+ arguments: 'NodeList'
781
+ },
782
+ OptionalMemberExpression: {
783
+ object: 'Node',
784
+ property: 'Node'
785
+ },
786
+ ExportNamespaceSpecifier: {
787
+ exported: 'Node'
788
+ }
789
+ };
790
+ exports.HERMES_AST_VISITOR_KEYS = HERMES_AST_VISITOR_KEYS;