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