hermes-parser 0.11.0 → 0.12.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.
@@ -20,34 +20,59 @@ 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', 'number']);
24
-
25
- const hermesParseResult_free = _HermesParserWASM.default.cwrap('hermesParseResult_free', 'void', ['number']);
26
-
27
- const hermesParseResult_getError = _HermesParserWASM.default.cwrap('hermesParseResult_getError', 'string', ['number']);
28
-
29
- const hermesParseResult_getErrorLine = _HermesParserWASM.default.cwrap('hermesParseResult_getErrorLine', 'number', ['number']);
30
-
31
- const hermesParseResult_getErrorColumn = _HermesParserWASM.default.cwrap('hermesParseResult_getErrorColumn', 'number', ['number']);
23
+ let HermesParserWASM;
24
+ let hermesParse;
25
+ let hermesParseResult_free;
26
+ let hermesParseResult_getError;
27
+ let hermesParseResult_getErrorLine;
28
+ let hermesParseResult_getErrorColumn;
29
+ let hermesParseResult_getProgramBuffer;
30
+ let hermesParseResult_getPositionBuffer;
31
+ let hermesParseResult_getPositionBufferSize;
32
+ /**
33
+ * Init the WASM wrapper code generated by `emscripten` to preparse the
34
+ * HermesParser WASM code.
35
+ */
32
36
 
33
- const hermesParseResult_getProgramBuffer = _HermesParserWASM.default.cwrap('hermesParseResult_getProgramBuffer', 'number', ['number']);
37
+ function initHermesParserWASM() {
38
+ if (HermesParserWASM != null) {
39
+ return;
40
+ }
34
41
 
35
- const hermesParseResult_getPositionBuffer = _HermesParserWASM.default.cwrap('hermesParseResult_getPositionBuffer', 'number', ['number']);
42
+ HermesParserWASM = (0, _HermesParserWASM.default)({
43
+ /**
44
+ * The emscripten version of `quit` unconditionally assigns the `status` to
45
+ * `process.exitCode` which overrides any pre-existing code that has been
46
+ * set, even if it is non zero. For our use case we never want an
47
+ * `exitCode` to be set so this override removes that functionality.
48
+ */
49
+ quit(_status, toThrow) {
50
+ throw toThrow;
51
+ }
36
52
 
37
- const hermesParseResult_getPositionBufferSize = _HermesParserWASM.default.cwrap('hermesParseResult_getPositionBufferSize', 'number', ['number']); // Copy a string into the WASM heap and null-terminate
53
+ });
54
+ hermesParse = HermesParserWASM.cwrap('hermesParse', 'number', ['number', 'number', 'number', 'number', 'number', 'number']);
55
+ hermesParseResult_free = HermesParserWASM.cwrap('hermesParseResult_free', 'void', ['number']);
56
+ hermesParseResult_getError = HermesParserWASM.cwrap('hermesParseResult_getError', 'string', ['number']);
57
+ hermesParseResult_getErrorLine = HermesParserWASM.cwrap('hermesParseResult_getErrorLine', 'number', ['number']);
58
+ hermesParseResult_getErrorColumn = HermesParserWASM.cwrap('hermesParseResult_getErrorColumn', 'number', ['number']);
59
+ hermesParseResult_getProgramBuffer = HermesParserWASM.cwrap('hermesParseResult_getProgramBuffer', 'number', ['number']);
60
+ hermesParseResult_getPositionBuffer = HermesParserWASM.cwrap('hermesParseResult_getPositionBuffer', 'number', ['number']);
61
+ hermesParseResult_getPositionBufferSize = HermesParserWASM.cwrap('hermesParseResult_getPositionBufferSize', 'number', ['number']);
62
+ } // Copy a string into the WASM heap and null-terminate
38
63
 
39
64
 
40
65
  function copyToHeap(buffer, addr) {
41
- _HermesParserWASM.default.HEAP8.set(buffer, addr);
42
-
43
- _HermesParserWASM.default.HEAP8[addr + buffer.length] = 0;
66
+ HermesParserWASM.HEAP8.set(buffer, addr);
67
+ HermesParserWASM.HEAP8[addr + buffer.length] = 0;
44
68
  }
45
69
 
46
70
  function parse(source, options) {
47
- // Allocate space on heap for source text
71
+ initHermesParserWASM(); // Allocate space on heap for source text
72
+
48
73
  const sourceBuffer = Buffer.from(source, 'utf8');
49
74
 
50
- const sourceAddr = _HermesParserWASM.default._malloc(sourceBuffer.length + 1);
75
+ const sourceAddr = HermesParserWASM._malloc(sourceBuffer.length + 1);
51
76
 
52
77
  if (!sourceAddr) {
53
78
  throw new Error('Parser out of memory');
@@ -72,12 +97,12 @@ function parse(source, options) {
72
97
  throw syntaxError;
73
98
  }
74
99
 
75
- const deserializer = new _HermesParserDeserializer.default(hermesParseResult_getProgramBuffer(parseResult), hermesParseResult_getPositionBuffer(parseResult), hermesParseResult_getPositionBufferSize(parseResult), _HermesParserWASM.default, options);
100
+ const deserializer = new _HermesParserDeserializer.default(hermesParseResult_getProgramBuffer(parseResult), hermesParseResult_getPositionBuffer(parseResult), hermesParseResult_getPositionBufferSize(parseResult), HermesParserWASM, options);
76
101
  return deserializer.deserialize();
77
102
  } finally {
78
103
  hermesParseResult_free(parseResult);
79
104
  }
80
105
  } finally {
81
- _HermesParserWASM.default._free(sourceAddr);
106
+ HermesParserWASM._free(sourceAddr);
82
107
  }
83
108
  }
@@ -14,58 +14,90 @@ import type {HermesNode} from './HermesAST';
14
14
  import type {ParserOptions} from './ParserOptions';
15
15
 
16
16
  import HermesParserDeserializer from './HermesParserDeserializer';
17
- import HermesParserWASM from './HermesParserWASM';
18
-
19
- const hermesParse = HermesParserWASM.cwrap('hermesParse', 'number', [
20
- 'number',
21
- 'number',
22
- 'number',
23
- 'number',
24
- 'number',
25
- 'number',
26
- ]);
27
-
28
- const hermesParseResult_free = HermesParserWASM.cwrap(
29
- 'hermesParseResult_free',
30
- 'void',
31
- ['number'],
32
- );
33
-
34
- const hermesParseResult_getError = HermesParserWASM.cwrap(
35
- 'hermesParseResult_getError',
36
- 'string',
37
- ['number'],
38
- );
39
-
40
- const hermesParseResult_getErrorLine = HermesParserWASM.cwrap(
41
- 'hermesParseResult_getErrorLine',
42
- 'number',
43
- ['number'],
44
- );
45
-
46
- const hermesParseResult_getErrorColumn = HermesParserWASM.cwrap(
47
- 'hermesParseResult_getErrorColumn',
48
- 'number',
49
- ['number'],
50
- );
51
-
52
- const hermesParseResult_getProgramBuffer = HermesParserWASM.cwrap(
53
- 'hermesParseResult_getProgramBuffer',
54
- 'number',
55
- ['number'],
56
- );
57
-
58
- const hermesParseResult_getPositionBuffer = HermesParserWASM.cwrap(
59
- 'hermesParseResult_getPositionBuffer',
60
- 'number',
61
- ['number'],
62
- );
63
-
64
- const hermesParseResult_getPositionBufferSize = HermesParserWASM.cwrap(
65
- 'hermesParseResult_getPositionBufferSize',
66
- 'number',
67
- ['number'],
68
- );
17
+ import HermesParserWASMModule from './HermesParserWASM';
18
+
19
+ let HermesParserWASM;
20
+ let hermesParse;
21
+ let hermesParseResult_free;
22
+ let hermesParseResult_getError;
23
+ let hermesParseResult_getErrorLine;
24
+ let hermesParseResult_getErrorColumn;
25
+ let hermesParseResult_getProgramBuffer;
26
+ let hermesParseResult_getPositionBuffer;
27
+ let hermesParseResult_getPositionBufferSize;
28
+
29
+ /**
30
+ * Init the WASM wrapper code generated by `emscripten` to preparse the
31
+ * HermesParser WASM code.
32
+ */
33
+ function initHermesParserWASM() {
34
+ if (HermesParserWASM != null) {
35
+ return;
36
+ }
37
+
38
+ HermesParserWASM = HermesParserWASMModule({
39
+ /**
40
+ * The emscripten version of `quit` unconditionally assigns the `status` to
41
+ * `process.exitCode` which overrides any pre-existing code that has been
42
+ * set, even if it is non zero. For our use case we never want an
43
+ * `exitCode` to be set so this override removes that functionality.
44
+ */
45
+ quit(_status: number, toThrow: Error) {
46
+ throw toThrow;
47
+ },
48
+ });
49
+
50
+ hermesParse = HermesParserWASM.cwrap('hermesParse', 'number', [
51
+ 'number',
52
+ 'number',
53
+ 'number',
54
+ 'number',
55
+ 'number',
56
+ 'number',
57
+ ]);
58
+
59
+ hermesParseResult_free = HermesParserWASM.cwrap(
60
+ 'hermesParseResult_free',
61
+ 'void',
62
+ ['number'],
63
+ );
64
+
65
+ hermesParseResult_getError = HermesParserWASM.cwrap(
66
+ 'hermesParseResult_getError',
67
+ 'string',
68
+ ['number'],
69
+ );
70
+
71
+ hermesParseResult_getErrorLine = HermesParserWASM.cwrap(
72
+ 'hermesParseResult_getErrorLine',
73
+ 'number',
74
+ ['number'],
75
+ );
76
+
77
+ hermesParseResult_getErrorColumn = HermesParserWASM.cwrap(
78
+ 'hermesParseResult_getErrorColumn',
79
+ 'number',
80
+ ['number'],
81
+ );
82
+
83
+ hermesParseResult_getProgramBuffer = HermesParserWASM.cwrap(
84
+ 'hermesParseResult_getProgramBuffer',
85
+ 'number',
86
+ ['number'],
87
+ );
88
+
89
+ hermesParseResult_getPositionBuffer = HermesParserWASM.cwrap(
90
+ 'hermesParseResult_getPositionBuffer',
91
+ 'number',
92
+ ['number'],
93
+ );
94
+
95
+ hermesParseResult_getPositionBufferSize = HermesParserWASM.cwrap(
96
+ 'hermesParseResult_getPositionBufferSize',
97
+ 'number',
98
+ ['number'],
99
+ );
100
+ }
69
101
 
70
102
  // Copy a string into the WASM heap and null-terminate
71
103
  function copyToHeap(buffer: Buffer, addr: number) {
@@ -74,6 +106,8 @@ function copyToHeap(buffer: Buffer, addr: number) {
74
106
  }
75
107
 
76
108
  export function parse(source: string, options: ParserOptions): HermesNode {
109
+ initHermesParserWASM();
110
+
77
111
  // Allocate space on heap for source text
78
112
  const sourceBuffer = Buffer.from(source, 'utf8');
79
113
  const sourceAddr = HermesParserWASM._malloc(sourceBuffer.length + 1);
@@ -16,7 +16,7 @@ import type {
16
16
  HermesToken,
17
17
  HermesComment,
18
18
  } from './HermesAST';
19
- import typeof HermesParserWASM from './HermesParserWASM';
19
+ import type {HermesParserWASM} from './HermesParserWASM';
20
20
  import type {ParserOptions} from './ParserOptions';
21
21
 
22
22
  import HermesParserDecodeUTF8String from './HermesParserDecodeUTF8String';
@@ -92,6 +92,18 @@ function deserializeFunctionDeclaration() {
92
92
  };
93
93
  }
94
94
 
95
+ function deserializeComponentDeclaration() {
96
+ return {
97
+ type: 'ComponentDeclaration',
98
+ loc: this.addEmptyLoc(),
99
+ id: this.deserializeNode(),
100
+ params: this.deserializeNodeList(),
101
+ body: this.deserializeNode(),
102
+ typeParameters: this.deserializeNode(),
103
+ rendersType: this.deserializeNode()
104
+ };
105
+ }
106
+
95
107
  function deserializeFunctionLikeLast() {
96
108
  throw new Error('FunctionLike' + ' should not appear in program buffer');
97
109
  }
@@ -1132,7 +1144,7 @@ function deserializeComponentTypeAnnotation() {
1132
1144
  params: this.deserializeNodeList(),
1133
1145
  rest: this.deserializeNode(),
1134
1146
  typeParameters: this.deserializeNode(),
1135
- returnType: this.deserializeNode()
1147
+ rendersType: this.deserializeNode()
1136
1148
  };
1137
1149
  }
1138
1150
 
@@ -1400,7 +1412,7 @@ function deserializeDeclareComponent() {
1400
1412
  params: this.deserializeNodeList(),
1401
1413
  rest: this.deserializeNode(),
1402
1414
  typeParameters: this.deserializeNode(),
1403
- returnType: this.deserializeNode()
1415
+ rendersType: this.deserializeNode()
1404
1416
  };
1405
1417
  }
1406
1418
 
@@ -1589,7 +1601,8 @@ function deserializeTypeParameter() {
1589
1601
  name: this.deserializeString(),
1590
1602
  bound: this.deserializeNode(),
1591
1603
  variance: this.deserializeNode(),
1592
- default: this.deserializeNode()
1604
+ default: this.deserializeNode(),
1605
+ usesExtendsBound: this.deserializeBoolean()
1593
1606
  };
1594
1607
  }
1595
1608
 
@@ -1708,18 +1721,6 @@ function deserializeEnumBooleanMember() {
1708
1721
  };
1709
1722
  }
1710
1723
 
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
1724
  function deserializeComponentParameter() {
1724
1725
  return {
1725
1726
  type: 'ComponentParameter',
@@ -2149,4 +2150,4 @@ function deserializeCoverLast() {
2149
2150
  throw new Error('Cover' + ' should not appear in program buffer');
2150
2151
  }
2151
2152
 
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];
2153
+ module.exports = [deserializeEmpty, deserializeMetadata, deserializeFunctionLikeFirst, deserializeProgram, deserializeFunctionExpression, deserializeArrowFunctionExpression, deserializeFunctionDeclaration, deserializeComponentDeclaration, 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, 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];