hermes-parser 0.10.0 → 0.11.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.
@@ -5,7 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.default = void 0;
7
7
 
8
- var _visitorKeys = require("./generated/visitor-keys");
8
+ var _ParserVisitorKeys = require("./generated/ParserVisitorKeys");
9
9
 
10
10
  /**
11
11
  * Copyright (c) Meta Platforms, Inc. and affiliates.
@@ -17,15 +17,6 @@ var _visitorKeys = require("./generated/visitor-keys");
17
17
  * @format
18
18
  */
19
19
 
20
- /*
21
- This class does some very "javascripty" things in the name of
22
- performance which are ultimately impossible to soundly type.
23
-
24
- So instead of adding strict types and a large number of suppression
25
- comments, instead it is left untyped and subclasses are strictly
26
- typed via a separate flow declaration file.
27
- */
28
-
29
20
  /**
30
21
  * The base class for transforming the Hermes AST to the desired output format.
31
22
  * Extended by concrete adapters which output an ESTree or Babel AST.
@@ -79,18 +70,18 @@ class HermesASTAdapter {
79
70
  }
80
71
 
81
72
  mapNodeDefault(node) {
82
- const visitorKeys = _visitorKeys.HERMES_AST_VISITOR_KEYS[node.type];
73
+ const visitorKeys = _ParserVisitorKeys.HERMES_AST_VISITOR_KEYS[node.type];
83
74
 
84
75
  for (const key in visitorKeys) {
85
76
  const childType = visitorKeys[key];
86
77
 
87
- if (childType === _visitorKeys.NODE_CHILD) {
78
+ if (childType === _ParserVisitorKeys.NODE_CHILD) {
88
79
  const child = node[key];
89
80
 
90
81
  if (child != null) {
91
82
  node[key] = this.mapNode(child);
92
83
  }
93
- } else if (childType === _visitorKeys.NODE_LIST_CHILD) {
84
+ } else if (childType === _ParserVisitorKeys.NODE_LIST_CHILD) {
94
85
  const children = node[key];
95
86
 
96
87
  for (let i = 0; i < children.length; i++) {
@@ -4,19 +4,10 @@
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  *
7
- * @flow
7
+ * @flow strict
8
8
  * @format
9
9
  */
10
10
 
11
- /*
12
- This class does some very "javascripty" things in the name of
13
- performance which are ultimately impossible to soundly type.
14
-
15
- So instead of adding strict types and a large number of suppression
16
- comments, instead it is left untyped and subclasses are strictly
17
- typed via a separate flow declaration file.
18
- */
19
-
20
11
  import type {HermesNode} from './HermesAST';
21
12
  import type {ParserOptions} from './ParserOptions';
22
13
 
@@ -24,7 +15,7 @@ import {
24
15
  HERMES_AST_VISITOR_KEYS,
25
16
  NODE_CHILD,
26
17
  NODE_LIST_CHILD,
27
- } from './generated/visitor-keys';
18
+ } from './generated/ParserVisitorKeys';
28
19
 
29
20
  /**
30
21
  * The base class for transforming the Hermes AST to the desired output format.
@@ -20,7 +20,7 @@ var _HermesParserWASM = _interopRequireDefault(require("./HermesParserWASM"));
20
20
 
21
21
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
22
22
 
23
- const hermesParse = _HermesParserWASM.default.cwrap('hermesParse', 'number', ['number', 'number', 'number', 'number', 'number']);
23
+ const hermesParse = _HermesParserWASM.default.cwrap('hermesParse', 'number', ['number', 'number', 'number', 'number', 'number', 'number']);
24
24
 
25
25
  const hermesParseResult_free = _HermesParserWASM.default.cwrap('hermesParseResult_free', 'void', ['number']);
26
26
 
@@ -56,7 +56,7 @@ function parse(source, options) {
56
56
  try {
57
57
  // Copy source text onto WASM heap
58
58
  copyToHeap(sourceBuffer, sourceAddr);
59
- const parseResult = hermesParse(sourceAddr, sourceBuffer.length + 1, options.flow === 'detect', options.tokens, options.allowReturnOutsideFunction);
59
+ const parseResult = hermesParse(sourceAddr, sourceBuffer.length + 1, options.flow === 'detect', options.enableExperimentalComponentSyntax, options.tokens, options.allowReturnOutsideFunction);
60
60
 
61
61
  try {
62
62
  // Extract and throw error from parse result if parsing failed
@@ -22,6 +22,7 @@ const hermesParse = HermesParserWASM.cwrap('hermesParse', 'number', [
22
22
  'number',
23
23
  'number',
24
24
  'number',
25
+ 'number',
25
26
  ]);
26
27
 
27
28
  const hermesParseResult_free = HermesParserWASM.cwrap(
@@ -88,6 +89,7 @@ export function parse(source: string, options: ParserOptions): HermesNode {
88
89
  sourceAddr,
89
90
  sourceBuffer.length + 1,
90
91
  options.flow === 'detect',
92
+ options.enableExperimentalComponentSyntax,
91
93
  options.tokens,
92
94
  options.allowReturnOutsideFunction,
93
95
  );
@@ -18,7 +18,7 @@
18
18
 
19
19
  /* eslint no-undef: 'error', no-unused-vars: ['error', {vars: "local"}], no-redeclare: 'error' */
20
20
 
21
- /* global $NonMaybeType, $Partial, $ReadOnly, $ReadOnlyArray */
21
+ /* global $NonMaybeType, Partial, $ReadOnly, $ReadOnlyArray */
22
22
  'use strict';
23
23
 
24
24
  function deserializeEmpty() {
@@ -909,7 +909,8 @@ function deserializeJSXOpeningElement() {
909
909
  loc: this.addEmptyLoc(),
910
910
  name: this.deserializeNode(),
911
911
  attributes: this.deserializeNodeList(),
912
- selfClosing: this.deserializeBoolean()
912
+ selfClosing: this.deserializeBoolean(),
913
+ typeArguments: this.deserializeNode()
913
914
  };
914
915
  }
915
916
 
@@ -1124,6 +1125,27 @@ function deserializeFunctionTypeParam() {
1124
1125
  };
1125
1126
  }
1126
1127
 
1128
+ function deserializeComponentTypeAnnotation() {
1129
+ return {
1130
+ type: 'ComponentTypeAnnotation',
1131
+ loc: this.addEmptyLoc(),
1132
+ params: this.deserializeNodeList(),
1133
+ rest: this.deserializeNode(),
1134
+ typeParameters: this.deserializeNode(),
1135
+ returnType: this.deserializeNode()
1136
+ };
1137
+ }
1138
+
1139
+ function deserializeComponentTypeParameter() {
1140
+ return {
1141
+ type: 'ComponentTypeParameter',
1142
+ loc: this.addEmptyLoc(),
1143
+ name: this.deserializeNode(),
1144
+ typeAnnotation: this.deserializeNode(),
1145
+ optional: this.deserializeBoolean()
1146
+ };
1147
+ }
1148
+
1127
1149
  function deserializeNullableTypeAnnotation() {
1128
1150
  return {
1129
1151
  type: 'NullableTypeAnnotation',
@@ -1149,6 +1171,23 @@ function deserializeTypeofTypeAnnotation() {
1149
1171
  };
1150
1172
  }
1151
1173
 
1174
+ function deserializeKeyofTypeAnnotation() {
1175
+ return {
1176
+ type: 'KeyofTypeAnnotation',
1177
+ loc: this.addEmptyLoc(),
1178
+ argument: this.deserializeNode()
1179
+ };
1180
+ }
1181
+
1182
+ function deserializeQualifiedTypeofIdentifier() {
1183
+ return {
1184
+ type: 'QualifiedTypeofIdentifier',
1185
+ loc: this.addEmptyLoc(),
1186
+ qualification: this.deserializeNode(),
1187
+ id: this.deserializeNode()
1188
+ };
1189
+ }
1190
+
1152
1191
  function deserializeTupleTypeAnnotation() {
1153
1192
  return {
1154
1193
  type: 'TupleTypeAnnotation',
@@ -1157,6 +1196,26 @@ function deserializeTupleTypeAnnotation() {
1157
1196
  };
1158
1197
  }
1159
1198
 
1199
+ function deserializeTupleTypeSpreadElement() {
1200
+ return {
1201
+ type: 'TupleTypeSpreadElement',
1202
+ loc: this.addEmptyLoc(),
1203
+ label: this.deserializeNode(),
1204
+ typeAnnotation: this.deserializeNode()
1205
+ };
1206
+ }
1207
+
1208
+ function deserializeTupleTypeLabeledElement() {
1209
+ return {
1210
+ type: 'TupleTypeLabeledElement',
1211
+ loc: this.addEmptyLoc(),
1212
+ label: this.deserializeNode(),
1213
+ elementType: this.deserializeNode(),
1214
+ optional: this.deserializeBoolean(),
1215
+ variance: this.deserializeNode()
1216
+ };
1217
+ }
1218
+
1160
1219
  function deserializeArrayTypeAnnotation() {
1161
1220
  return {
1162
1221
  type: 'ArrayTypeAnnotation',
@@ -1165,6 +1224,14 @@ function deserializeArrayTypeAnnotation() {
1165
1224
  };
1166
1225
  }
1167
1226
 
1227
+ function deserializeInferTypeAnnotation() {
1228
+ return {
1229
+ type: 'InferTypeAnnotation',
1230
+ loc: this.addEmptyLoc(),
1231
+ typeParameter: this.deserializeNode()
1232
+ };
1233
+ }
1234
+
1168
1235
  function deserializeUnionTypeAnnotation() {
1169
1236
  return {
1170
1237
  type: 'UnionTypeAnnotation',
@@ -1209,6 +1276,27 @@ function deserializeOptionalIndexedAccessType() {
1209
1276
  };
1210
1277
  }
1211
1278
 
1279
+ function deserializeConditionalTypeAnnotation() {
1280
+ return {
1281
+ type: 'ConditionalTypeAnnotation',
1282
+ loc: this.addEmptyLoc(),
1283
+ checkType: this.deserializeNode(),
1284
+ extendsType: this.deserializeNode(),
1285
+ trueType: this.deserializeNode(),
1286
+ falseType: this.deserializeNode()
1287
+ };
1288
+ }
1289
+
1290
+ function deserializeTypePredicate() {
1291
+ return {
1292
+ type: 'TypePredicate',
1293
+ loc: this.addEmptyLoc(),
1294
+ parameterName: this.deserializeNode(),
1295
+ typeAnnotation: this.deserializeNode(),
1296
+ asserts: this.deserializeBoolean()
1297
+ };
1298
+ }
1299
+
1212
1300
  function deserializeInterfaceTypeAnnotation() {
1213
1301
  return {
1214
1302
  type: 'InterfaceTypeAnnotation',
@@ -1304,11 +1392,33 @@ function deserializeDeclareFunction() {
1304
1392
  };
1305
1393
  }
1306
1394
 
1395
+ function deserializeDeclareComponent() {
1396
+ return {
1397
+ type: 'DeclareComponent',
1398
+ loc: this.addEmptyLoc(),
1399
+ id: this.deserializeNode(),
1400
+ params: this.deserializeNodeList(),
1401
+ rest: this.deserializeNode(),
1402
+ typeParameters: this.deserializeNode(),
1403
+ returnType: this.deserializeNode()
1404
+ };
1405
+ }
1406
+
1307
1407
  function deserializeDeclareVariable() {
1308
1408
  return {
1309
1409
  type: 'DeclareVariable',
1310
1410
  loc: this.addEmptyLoc(),
1311
- id: this.deserializeNode()
1411
+ id: this.deserializeNode(),
1412
+ kind: this.deserializeString()
1413
+ };
1414
+ }
1415
+
1416
+ function deserializeDeclareEnum() {
1417
+ return {
1418
+ type: 'DeclareEnum',
1419
+ loc: this.addEmptyLoc(),
1420
+ id: this.deserializeNode(),
1421
+ body: this.deserializeNode()
1312
1422
  };
1313
1423
  }
1314
1424
 
@@ -1444,6 +1554,18 @@ function deserializeObjectTypeIndexer() {
1444
1554
  };
1445
1555
  }
1446
1556
 
1557
+ function deserializeObjectTypeMappedTypeProperty() {
1558
+ return {
1559
+ type: 'ObjectTypeMappedTypeProperty',
1560
+ loc: this.addEmptyLoc(),
1561
+ keyTparam: this.deserializeNode(),
1562
+ propType: this.deserializeNode(),
1563
+ sourceType: this.deserializeNode(),
1564
+ variance: this.deserializeNode(),
1565
+ optional: this.deserializeString()
1566
+ };
1567
+ }
1568
+
1447
1569
  function deserializeVariance() {
1448
1570
  return {
1449
1571
  type: 'Variance',
@@ -1586,6 +1708,28 @@ function deserializeEnumBooleanMember() {
1586
1708
  };
1587
1709
  }
1588
1710
 
1711
+ function deserializeComponentDeclaration() {
1712
+ return {
1713
+ type: 'ComponentDeclaration',
1714
+ loc: this.addEmptyLoc(),
1715
+ id: this.deserializeNode(),
1716
+ params: this.deserializeNodeList(),
1717
+ body: this.deserializeNode(),
1718
+ typeParameters: this.deserializeNode(),
1719
+ returnType: this.deserializeNode()
1720
+ };
1721
+ }
1722
+
1723
+ function deserializeComponentParameter() {
1724
+ return {
1725
+ type: 'ComponentParameter',
1726
+ loc: this.addEmptyLoc(),
1727
+ name: this.deserializeNode(),
1728
+ local: this.deserializeNode(),
1729
+ shorthand: this.deserializeBoolean()
1730
+ };
1731
+ }
1732
+
1589
1733
  function deserializeTSTypeAnnotation() {
1590
1734
  return {
1591
1735
  type: 'TSTypeAnnotation',
@@ -1889,10 +2033,10 @@ function deserializeTSConditionalType() {
1889
2033
  return {
1890
2034
  type: 'TSConditionalType',
1891
2035
  loc: this.addEmptyLoc(),
1892
- extendsType: this.deserializeNode(),
1893
2036
  checkType: this.deserializeNode(),
2037
+ extendsType: this.deserializeNode(),
1894
2038
  trueType: this.deserializeNode(),
1895
- falseTYpe: this.deserializeNode()
2039
+ falseType: this.deserializeNode()
1896
2040
  };
1897
2041
  }
1898
2042
 
@@ -2005,4 +2149,4 @@ function deserializeCoverLast() {
2005
2149
  throw new Error('Cover' + ' should not appear in program buffer');
2006
2150
  }
2007
2151
 
2008
- module.exports = [deserializeEmpty, deserializeMetadata, deserializeFunctionLikeFirst, deserializeProgram, deserializeFunctionExpression, deserializeArrowFunctionExpression, deserializeFunctionDeclaration, deserializeFunctionLikeLast, deserializeStatementFirst, deserializeLoopStatementFirst, deserializeWhileStatement, deserializeDoWhileStatement, deserializeForInStatement, deserializeForOfStatement, deserializeForStatement, deserializeLoopStatementLast, deserializeDebuggerStatement, deserializeEmptyStatement, deserializeBlockStatement, deserializeBreakStatement, deserializeContinueStatement, deserializeThrowStatement, deserializeReturnStatement, deserializeWithStatement, deserializeSwitchStatement, deserializeLabeledStatement, deserializeExpressionStatement, deserializeTryStatement, deserializeIfStatement, deserializeStatementLast, deserializeNullLiteral, deserializeBooleanLiteral, deserializeStringLiteral, deserializeNumericLiteral, deserializeRegExpLiteral, deserializeBigIntLiteral, deserializeThisExpression, deserializeSuper, deserializeSequenceExpression, deserializeObjectExpression, deserializeArrayExpression, deserializeSpreadElement, deserializeNewExpression, deserializeYieldExpression, deserializeAwaitExpression, deserializeImportExpression, deserializeCallExpressionLikeFirst, deserializeCallExpression, deserializeOptionalCallExpression, deserializeCallExpressionLikeLast, deserializeAssignmentExpression, deserializeUnaryExpression, deserializeUpdateExpression, deserializeMemberExpressionLikeFirst, deserializeMemberExpression, deserializeOptionalMemberExpression, deserializeMemberExpressionLikeLast, deserializeLogicalExpression, deserializeConditionalExpression, deserializeBinaryExpression, deserializeDirective, deserializeDirectiveLiteral, deserializeIdentifier, deserializePrivateName, deserializeMetaProperty, deserializeSwitchCase, deserializeCatchClause, deserializeVariableDeclarator, deserializeVariableDeclaration, deserializeTemplateLiteral, deserializeTaggedTemplateExpression, deserializeTemplateElement, deserializeProperty, deserializeClassDeclaration, deserializeClassExpression, deserializeClassBody, deserializeClassProperty, deserializeClassPrivateProperty, deserializeMethodDefinition, deserializeImportDeclaration, deserializeImportSpecifier, deserializeImportDefaultSpecifier, deserializeImportNamespaceSpecifier, deserializeImportAttribute, deserializeExportNamedDeclaration, deserializeExportSpecifier, deserializeExportNamespaceSpecifier, deserializeExportDefaultDeclaration, deserializeExportAllDeclaration, deserializePatternFirst, deserializeObjectPattern, deserializeArrayPattern, deserializeRestElement, deserializeAssignmentPattern, deserializePatternLast, deserializeJSXIdentifier, deserializeJSXMemberExpression, deserializeJSXNamespacedName, deserializeJSXEmptyExpression, deserializeJSXExpressionContainer, deserializeJSXSpreadChild, deserializeJSXOpeningElement, deserializeJSXClosingElement, deserializeJSXAttribute, deserializeJSXSpreadAttribute, deserializeJSXStringLiteral, deserializeJSXText, deserializeJSXElement, deserializeJSXFragment, deserializeJSXOpeningFragment, deserializeJSXClosingFragment, deserializeExistsTypeAnnotation, deserializeEmptyTypeAnnotation, deserializeStringTypeAnnotation, deserializeNumberTypeAnnotation, deserializeStringLiteralTypeAnnotation, deserializeNumberLiteralTypeAnnotation, deserializeBigIntLiteralTypeAnnotation, deserializeBooleanTypeAnnotation, deserializeBooleanLiteralTypeAnnotation, deserializeNullLiteralTypeAnnotation, deserializeSymbolTypeAnnotation, deserializeAnyTypeAnnotation, deserializeMixedTypeAnnotation, deserializeBigIntTypeAnnotation, deserializeVoidTypeAnnotation, deserializeFunctionTypeAnnotation, deserializeFunctionTypeParam, deserializeNullableTypeAnnotation, deserializeQualifiedTypeIdentifier, deserializeTypeofTypeAnnotation, deserializeTupleTypeAnnotation, deserializeArrayTypeAnnotation, deserializeUnionTypeAnnotation, deserializeIntersectionTypeAnnotation, deserializeGenericTypeAnnotation, deserializeIndexedAccessType, deserializeOptionalIndexedAccessType, deserializeInterfaceTypeAnnotation, deserializeTypeAlias, deserializeOpaqueType, deserializeInterfaceDeclaration, deserializeDeclareTypeAlias, deserializeDeclareOpaqueType, deserializeDeclareInterface, deserializeDeclareClass, deserializeDeclareFunction, deserializeDeclareVariable, deserializeDeclareExportDeclaration, deserializeDeclareExportAllDeclaration, deserializeDeclareModule, deserializeDeclareModuleExports, deserializeInterfaceExtends, deserializeClassImplements, deserializeTypeAnnotation, deserializeObjectTypeAnnotation, deserializeObjectTypeProperty, deserializeObjectTypeSpreadProperty, deserializeObjectTypeInternalSlot, deserializeObjectTypeCallProperty, deserializeObjectTypeIndexer, deserializeVariance, deserializeTypeParameterDeclaration, deserializeTypeParameter, deserializeTypeParameterInstantiation, deserializeTypeCastExpression, deserializeInferredPredicate, deserializeDeclaredPredicate, deserializeEnumDeclaration, deserializeEnumStringBody, deserializeEnumNumberBody, deserializeEnumBooleanBody, deserializeEnumSymbolBody, deserializeEnumDefaultedMember, deserializeEnumStringMember, deserializeEnumNumberMember, deserializeEnumBooleanMember, deserializeTSTypeAnnotation, deserializeTSAnyKeyword, deserializeTSNumberKeyword, deserializeTSBooleanKeyword, deserializeTSStringKeyword, deserializeTSSymbolKeyword, deserializeTSVoidKeyword, deserializeTSThisType, deserializeTSLiteralType, deserializeTSIndexedAccessType, deserializeTSArrayType, deserializeTSTypeReference, deserializeTSQualifiedName, deserializeTSFunctionType, deserializeTSConstructorType, deserializeTSTypePredicate, deserializeTSTupleType, deserializeTSTypeAssertion, deserializeTSAsExpression, deserializeTSParameterProperty, deserializeTSTypeAliasDeclaration, deserializeTSInterfaceDeclaration, deserializeTSInterfaceHeritage, deserializeTSInterfaceBody, deserializeTSEnumDeclaration, deserializeTSEnumMember, deserializeTSModuleDeclaration, deserializeTSModuleBlock, deserializeTSModuleMember, deserializeTSTypeParameterDeclaration, deserializeTSTypeParameter, deserializeTSTypeParameterInstantiation, deserializeTSUnionType, deserializeTSIntersectionType, deserializeTSTypeQuery, deserializeTSConditionalType, deserializeTSTypeLiteral, deserializeTSPropertySignature, deserializeTSMethodSignature, deserializeTSIndexSignature, deserializeTSCallSignatureDeclaration, deserializeTSModifiers, deserializeCoverFirst, deserializeCoverEmptyArgs, deserializeCoverTrailingComma, deserializeCoverInitializer, deserializeCoverRestElement, deserializeCoverTypedIdentifier, deserializeCoverLast];
2152
+ module.exports = [deserializeEmpty, deserializeMetadata, deserializeFunctionLikeFirst, deserializeProgram, deserializeFunctionExpression, deserializeArrowFunctionExpression, deserializeFunctionDeclaration, deserializeFunctionLikeLast, deserializeStatementFirst, deserializeLoopStatementFirst, deserializeWhileStatement, deserializeDoWhileStatement, deserializeForInStatement, deserializeForOfStatement, deserializeForStatement, deserializeLoopStatementLast, deserializeDebuggerStatement, deserializeEmptyStatement, deserializeBlockStatement, deserializeBreakStatement, deserializeContinueStatement, deserializeThrowStatement, deserializeReturnStatement, deserializeWithStatement, deserializeSwitchStatement, deserializeLabeledStatement, deserializeExpressionStatement, deserializeTryStatement, deserializeIfStatement, deserializeStatementLast, deserializeNullLiteral, deserializeBooleanLiteral, deserializeStringLiteral, deserializeNumericLiteral, deserializeRegExpLiteral, deserializeBigIntLiteral, deserializeThisExpression, deserializeSuper, deserializeSequenceExpression, deserializeObjectExpression, deserializeArrayExpression, deserializeSpreadElement, deserializeNewExpression, deserializeYieldExpression, deserializeAwaitExpression, deserializeImportExpression, deserializeCallExpressionLikeFirst, deserializeCallExpression, deserializeOptionalCallExpression, deserializeCallExpressionLikeLast, deserializeAssignmentExpression, deserializeUnaryExpression, deserializeUpdateExpression, deserializeMemberExpressionLikeFirst, deserializeMemberExpression, deserializeOptionalMemberExpression, deserializeMemberExpressionLikeLast, deserializeLogicalExpression, deserializeConditionalExpression, deserializeBinaryExpression, deserializeDirective, deserializeDirectiveLiteral, deserializeIdentifier, deserializePrivateName, deserializeMetaProperty, deserializeSwitchCase, deserializeCatchClause, deserializeVariableDeclarator, deserializeVariableDeclaration, deserializeTemplateLiteral, deserializeTaggedTemplateExpression, deserializeTemplateElement, deserializeProperty, deserializeClassDeclaration, deserializeClassExpression, deserializeClassBody, deserializeClassProperty, deserializeClassPrivateProperty, deserializeMethodDefinition, deserializeImportDeclaration, deserializeImportSpecifier, deserializeImportDefaultSpecifier, deserializeImportNamespaceSpecifier, deserializeImportAttribute, deserializeExportNamedDeclaration, deserializeExportSpecifier, deserializeExportNamespaceSpecifier, deserializeExportDefaultDeclaration, deserializeExportAllDeclaration, deserializePatternFirst, deserializeObjectPattern, deserializeArrayPattern, deserializeRestElement, deserializeAssignmentPattern, deserializePatternLast, deserializeJSXIdentifier, deserializeJSXMemberExpression, deserializeJSXNamespacedName, deserializeJSXEmptyExpression, deserializeJSXExpressionContainer, deserializeJSXSpreadChild, deserializeJSXOpeningElement, deserializeJSXClosingElement, deserializeJSXAttribute, deserializeJSXSpreadAttribute, deserializeJSXStringLiteral, deserializeJSXText, deserializeJSXElement, deserializeJSXFragment, deserializeJSXOpeningFragment, deserializeJSXClosingFragment, deserializeExistsTypeAnnotation, deserializeEmptyTypeAnnotation, deserializeStringTypeAnnotation, deserializeNumberTypeAnnotation, deserializeStringLiteralTypeAnnotation, deserializeNumberLiteralTypeAnnotation, deserializeBigIntLiteralTypeAnnotation, deserializeBooleanTypeAnnotation, deserializeBooleanLiteralTypeAnnotation, deserializeNullLiteralTypeAnnotation, deserializeSymbolTypeAnnotation, deserializeAnyTypeAnnotation, deserializeMixedTypeAnnotation, deserializeBigIntTypeAnnotation, deserializeVoidTypeAnnotation, deserializeFunctionTypeAnnotation, deserializeFunctionTypeParam, deserializeComponentTypeAnnotation, deserializeComponentTypeParameter, deserializeNullableTypeAnnotation, deserializeQualifiedTypeIdentifier, deserializeTypeofTypeAnnotation, deserializeKeyofTypeAnnotation, deserializeQualifiedTypeofIdentifier, deserializeTupleTypeAnnotation, deserializeTupleTypeSpreadElement, deserializeTupleTypeLabeledElement, deserializeArrayTypeAnnotation, deserializeInferTypeAnnotation, deserializeUnionTypeAnnotation, deserializeIntersectionTypeAnnotation, deserializeGenericTypeAnnotation, deserializeIndexedAccessType, deserializeOptionalIndexedAccessType, deserializeConditionalTypeAnnotation, deserializeTypePredicate, deserializeInterfaceTypeAnnotation, deserializeTypeAlias, deserializeOpaqueType, deserializeInterfaceDeclaration, deserializeDeclareTypeAlias, deserializeDeclareOpaqueType, deserializeDeclareInterface, deserializeDeclareClass, deserializeDeclareFunction, deserializeDeclareComponent, deserializeDeclareVariable, deserializeDeclareEnum, deserializeDeclareExportDeclaration, deserializeDeclareExportAllDeclaration, deserializeDeclareModule, deserializeDeclareModuleExports, deserializeInterfaceExtends, deserializeClassImplements, deserializeTypeAnnotation, deserializeObjectTypeAnnotation, deserializeObjectTypeProperty, deserializeObjectTypeSpreadProperty, deserializeObjectTypeInternalSlot, deserializeObjectTypeCallProperty, deserializeObjectTypeIndexer, deserializeObjectTypeMappedTypeProperty, deserializeVariance, deserializeTypeParameterDeclaration, deserializeTypeParameter, deserializeTypeParameterInstantiation, deserializeTypeCastExpression, deserializeInferredPredicate, deserializeDeclaredPredicate, deserializeEnumDeclaration, deserializeEnumStringBody, deserializeEnumNumberBody, deserializeEnumBooleanBody, deserializeEnumSymbolBody, deserializeEnumDefaultedMember, deserializeEnumStringMember, deserializeEnumNumberMember, deserializeEnumBooleanMember, deserializeComponentDeclaration, deserializeComponentParameter, deserializeTSTypeAnnotation, deserializeTSAnyKeyword, deserializeTSNumberKeyword, deserializeTSBooleanKeyword, deserializeTSStringKeyword, deserializeTSSymbolKeyword, deserializeTSVoidKeyword, deserializeTSThisType, deserializeTSLiteralType, deserializeTSIndexedAccessType, deserializeTSArrayType, deserializeTSTypeReference, deserializeTSQualifiedName, deserializeTSFunctionType, deserializeTSConstructorType, deserializeTSTypePredicate, deserializeTSTupleType, deserializeTSTypeAssertion, deserializeTSAsExpression, deserializeTSParameterProperty, deserializeTSTypeAliasDeclaration, deserializeTSInterfaceDeclaration, deserializeTSInterfaceHeritage, deserializeTSInterfaceBody, deserializeTSEnumDeclaration, deserializeTSEnumMember, deserializeTSModuleDeclaration, deserializeTSModuleBlock, deserializeTSModuleMember, deserializeTSTypeParameterDeclaration, deserializeTSTypeParameter, deserializeTSTypeParameterInstantiation, deserializeTSUnionType, deserializeTSIntersectionType, deserializeTSTypeQuery, deserializeTSConditionalType, deserializeTSTypeLiteral, deserializeTSPropertySignature, deserializeTSMethodSignature, deserializeTSIndexSignature, deserializeTSCallSignatureDeclaration, deserializeTSModifiers, deserializeCoverFirst, deserializeCoverEmptyArgs, deserializeCoverTrailingComma, deserializeCoverInitializer, deserializeCoverRestElement, deserializeCoverTypedIdentifier, deserializeCoverLast];